92 |
* strbuf_dump: dump string buffers |
* strbuf_dump: dump string buffers |
93 |
*/ |
*/ |
94 |
void |
void |
95 |
strbuf_dump(msg) |
strbuf_dump(const char *msg) |
|
const char *msg; |
|
96 |
{ |
{ |
97 |
STRBUF *sb; |
STRBUF *sb; |
98 |
int i = 0; |
int i = 0; |
121 |
* i) length required room |
* i) length required room |
122 |
*/ |
*/ |
123 |
void |
void |
124 |
__strbuf_expandbuf(sb, length) |
__strbuf_expandbuf(STRBUF *sb, int length) |
|
STRBUF *sb; |
|
|
int length; |
|
125 |
{ |
{ |
126 |
int count = sb->curp - sb->sbuf; |
int count = sb->curp - sb->sbuf; |
127 |
int newsize = sb->sbufsize + (length > EXPANDSIZE ? length : EXPANDSIZE); |
int newsize = sb->sbufsize + (length > EXPANDSIZE ? length : EXPANDSIZE); |
149 |
* r) sb STRBUF structure |
* r) sb STRBUF structure |
150 |
*/ |
*/ |
151 |
STRBUF * |
STRBUF * |
152 |
strbuf_open(init) |
strbuf_open(int init) |
|
int init; |
|
153 |
{ |
{ |
154 |
STRBUF *sb = (STRBUF *)calloc(sizeof(STRBUF), 1); |
STRBUF *sb = (STRBUF *)calloc(sizeof(STRBUF), 1); |
155 |
|
|
188 |
* For the detail, see 'STATIC_STRBUF(sb)' macro in strbuf.h. |
* For the detail, see 'STATIC_STRBUF(sb)' macro in strbuf.h. |
189 |
*/ |
*/ |
190 |
void |
void |
191 |
strbuf_clear(sb) |
strbuf_clear(STRBUF *sb) |
|
STRBUF *sb; |
|
192 |
{ |
{ |
193 |
if (sb == NULL) |
if (sb == NULL) |
194 |
die("NULL string buffer. (strbuf_clear)"); |
die("NULL string buffer. (strbuf_clear)"); |
212 |
* i) len length of string |
* i) len length of string |
213 |
*/ |
*/ |
214 |
void |
void |
215 |
strbuf_nputs(sb, s, len) |
strbuf_nputs(STRBUF *sb, const char *s, int len) |
|
STRBUF *sb; |
|
|
const char *s; |
|
|
int len; |
|
216 |
{ |
{ |
217 |
if (!sb->alloc_failed && len > 0) { |
if (!sb->alloc_failed && len > 0) { |
218 |
if (sb->curp + len > sb->endp) |
if (sb->curp + len > sb->endp) |
228 |
* i) s string |
* i) s string |
229 |
*/ |
*/ |
230 |
void |
void |
231 |
strbuf_puts(sb, s) |
strbuf_puts(STRBUF *sb, const char *s) |
|
STRBUF *sb; |
|
|
const char *s; |
|
232 |
{ |
{ |
233 |
if (!sb->alloc_failed) { |
if (!sb->alloc_failed) { |
234 |
while (*s) { |
while (*s) { |
245 |
* i) s string |
* i) s string |
246 |
*/ |
*/ |
247 |
void |
void |
248 |
strbuf_puts_nl(sb, s) |
strbuf_puts_nl(STRBUF *sb, const char *s) |
|
STRBUF *sb; |
|
|
const char *s; |
|
249 |
{ |
{ |
250 |
if (!sb->alloc_failed) { |
if (!sb->alloc_failed) { |
251 |
while (*s) { |
while (*s) { |
265 |
* i) n number |
* i) n number |
266 |
*/ |
*/ |
267 |
void |
void |
268 |
strbuf_putn(sb, n) |
strbuf_putn(STRBUF *sb, int n) |
|
STRBUF *sb; |
|
|
int n; |
|
269 |
{ |
{ |
270 |
if (n == 0) { |
if (n == 0) { |
271 |
strbuf_putc(sb, '0'); |
strbuf_putc(sb, '0'); |
291 |
* r) 0: do nothing, 1: removed |
* r) 0: do nothing, 1: removed |
292 |
*/ |
*/ |
293 |
int |
int |
294 |
strbuf_unputc(sb, c) |
strbuf_unputc(STRBUF *sb, int c) |
|
STRBUF *sb; |
|
|
int c; |
|
295 |
{ |
{ |
296 |
if (sb->curp > sb->sbuf && *(sb->curp - 1) == c) { |
if (sb->curp > sb->sbuf && *(sb->curp - 1) == c) { |
297 |
sb->curp--; |
sb->curp--; |
306 |
* r) string |
* r) string |
307 |
*/ |
*/ |
308 |
char * |
char * |
309 |
strbuf_value(sb) |
strbuf_value(STRBUF *sb) |
|
STRBUF *sb; |
|
310 |
{ |
{ |
311 |
*sb->curp = 0; |
*sb->curp = 0; |
312 |
return sb->sbuf; |
return sb->sbuf; |
317 |
* i) sb STRBUR structure |
* i) sb STRBUR structure |
318 |
*/ |
*/ |
319 |
void |
void |
320 |
strbuf_trim(sb) |
strbuf_trim(STRBUF *sb) |
|
STRBUF *sb; |
|
321 |
{ |
{ |
322 |
char *p = sb->curp; |
char *p = sb->curp; |
323 |
|
|
340 |
* include '\r' and '\n'. |
* include '\r' and '\n'. |
341 |
*/ |
*/ |
342 |
char * |
char * |
343 |
strbuf_fgets(sb, ip, flags) |
strbuf_fgets(STRBUF *sb, FILE *ip, int flags) |
|
STRBUF *sb; |
|
|
FILE *ip; |
|
|
int flags; |
|
344 |
{ |
{ |
345 |
if (!(flags & STRBUF_APPEND)) |
if (!(flags & STRBUF_APPEND)) |
346 |
strbuf_reset(sb); |
strbuf_reset(sb); |
456 |
* i) sb STRBUF structure |
* i) sb STRBUF structure |
457 |
*/ |
*/ |
458 |
void |
void |
459 |
strbuf_close(sb) |
strbuf_close(STRBUF *sb) |
|
STRBUF *sb; |
|
460 |
{ |
{ |
461 |
#ifdef STRBUF_LINK |
#ifdef STRBUF_LINK |
462 |
sb->prev->next = sb->next; |
sb->prev->next = sb->next; |
492 |
return sb; |
return sb; |
493 |
} |
} |
494 |
void |
void |
495 |
strbuf_release_tempbuf(sb) |
strbuf_release_tempbuf(STRBUF *sb) |
|
STRBUF *sb; |
|
496 |
{ |
{ |
497 |
used = 0; |
used = 0; |
498 |
} |
} |
504 |
* i) name name |
* i) name name |
505 |
*/ |
*/ |
506 |
void |
void |
507 |
strbuf_setname(sb, name) |
strbuf_setname(STRBUF *sb, const char *name) |
|
STRBUF *sb; |
|
|
const char *name; |
|
508 |
{ |
{ |
509 |
char *p = strdup(name); |
char *p = strdup(name); |
510 |
if (p == NULL) { |
if (p == NULL) { |
523 |
* r) STRBUF structure |
* r) STRBUF structure |
524 |
*/ |
*/ |
525 |
STRBUF * |
STRBUF * |
526 |
strbuf_getbuf(name) |
strbuf_getbuf(const char *name) |
|
const char *name; |
|
527 |
{ |
{ |
528 |
STRBUF *sb; |
STRBUF *sb; |
529 |
|
|