version 1.1.1.1, 2012/02/21 16:23:02
|
version 1.1.1.2, 2012/05/29 12:26:49
|
Line 47
|
Line 47
|
#include "alloc.h" |
#include "alloc.h" |
#include "error.h" |
#include "error.h" |
#include "lbuf.h" |
#include "lbuf.h" |
|
#include "sudo_debug.h" |
|
|
void |
void |
lbuf_init(struct lbuf *lbuf, int (*output)(const char *), |
lbuf_init(struct lbuf *lbuf, int (*output)(const char *), |
int indent, const char *continuation, int cols) |
int indent, const char *continuation, int cols) |
{ |
{ |
|
debug_decl(lbuf_init, SUDO_DEBUG_UTIL) |
|
|
lbuf->output = output; |
lbuf->output = output; |
lbuf->continuation = continuation; |
lbuf->continuation = continuation; |
lbuf->indent = indent; |
lbuf->indent = indent; |
Line 59 lbuf_init(struct lbuf *lbuf, int (*output)(const char
|
Line 62 lbuf_init(struct lbuf *lbuf, int (*output)(const char
|
lbuf->len = 0; |
lbuf->len = 0; |
lbuf->size = 0; |
lbuf->size = 0; |
lbuf->buf = NULL; |
lbuf->buf = NULL; |
|
|
|
debug_return; |
} |
} |
|
|
void |
void |
lbuf_destroy(struct lbuf *lbuf) |
lbuf_destroy(struct lbuf *lbuf) |
{ |
{ |
|
debug_decl(lbuf_destroy, SUDO_DEBUG_UTIL) |
|
|
efree(lbuf->buf); |
efree(lbuf->buf); |
lbuf->buf = NULL; |
lbuf->buf = NULL; |
|
|
|
debug_return; |
} |
} |
|
|
/* |
/* |
Line 78 lbuf_append_quoted(struct lbuf *lbuf, const char *set,
|
Line 87 lbuf_append_quoted(struct lbuf *lbuf, const char *set,
|
va_list ap; |
va_list ap; |
int len; |
int len; |
char *cp, *s = NULL; |
char *cp, *s = NULL; |
|
debug_decl(lbuf_append_quoted, SUDO_DEBUG_UTIL) |
|
|
va_start(ap, fmt); |
va_start(ap, fmt); |
while (*fmt != '\0') { |
while (*fmt != '\0') { |
Line 118 lbuf_append_quoted(struct lbuf *lbuf, const char *set,
|
Line 128 lbuf_append_quoted(struct lbuf *lbuf, const char *set,
|
} |
} |
lbuf->buf[lbuf->len] = '\0'; |
lbuf->buf[lbuf->len] = '\0'; |
va_end(ap); |
va_end(ap); |
|
|
|
debug_return; |
} |
} |
|
|
/* |
/* |
Line 129 lbuf_append(struct lbuf *lbuf, const char *fmt, ...)
|
Line 141 lbuf_append(struct lbuf *lbuf, const char *fmt, ...)
|
va_list ap; |
va_list ap; |
int len; |
int len; |
char *s = NULL; |
char *s = NULL; |
|
debug_decl(lbuf_append, SUDO_DEBUG_UTIL) |
|
|
va_start(ap, fmt); |
va_start(ap, fmt); |
while (*fmt != '\0') { |
while (*fmt != '\0') { |
Line 155 lbuf_append(struct lbuf *lbuf, const char *fmt, ...)
|
Line 168 lbuf_append(struct lbuf *lbuf, const char *fmt, ...)
|
} |
} |
lbuf->buf[lbuf->len] = '\0'; |
lbuf->buf[lbuf->len] = '\0'; |
va_end(ap); |
va_end(ap); |
|
|
|
debug_return; |
} |
} |
|
|
static void |
static void |
Line 162 lbuf_println(struct lbuf *lbuf, char *line, int len)
|
Line 177 lbuf_println(struct lbuf *lbuf, char *line, int len)
|
{ |
{ |
char *cp, save; |
char *cp, save; |
int i, have, contlen; |
int i, have, contlen; |
|
debug_decl(lbuf_println, SUDO_DEBUG_UTIL) |
|
|
contlen = lbuf->continuation ? strlen(lbuf->continuation) : 0; |
contlen = lbuf->continuation ? strlen(lbuf->continuation) : 0; |
|
|
Line 210 lbuf_println(struct lbuf *lbuf, char *line, int len)
|
Line 226 lbuf_println(struct lbuf *lbuf, char *line, int len)
|
} |
} |
lbuf->output("\n"); |
lbuf->output("\n"); |
} |
} |
|
|
|
debug_return; |
} |
} |
|
|
/* |
/* |
Line 221 lbuf_print(struct lbuf *lbuf)
|
Line 239 lbuf_print(struct lbuf *lbuf)
|
{ |
{ |
char *cp, *ep; |
char *cp, *ep; |
int len; |
int len; |
|
debug_decl(lbuf_print, SUDO_DEBUG_UTIL) |
|
|
if (lbuf->buf == NULL || lbuf->len == 0) |
if (lbuf->buf == NULL || lbuf->len == 0) |
goto done; |
goto done; |
Line 250 lbuf_print(struct lbuf *lbuf)
|
Line 269 lbuf_print(struct lbuf *lbuf)
|
|
|
done: |
done: |
lbuf->len = 0; /* reset the buffer for re-use. */ |
lbuf->len = 0; /* reset the buffer for re-use. */ |
|
|
|
debug_return; |
} |
} |