version 1.11, 2003/06/10 22:20:51 |
version 1.12, 2003/11/07 02:58:23 |
|
|
cp = cp->u.c; |
cp = cp->u.c; |
goto redirect; |
goto redirect; |
case 'a': |
case 'a': |
if (appendx >= appendnum) |
if (appendx >= appendnum) { |
appends = xrealloc(appends, |
appends = xrealloc(appends, |
sizeof(struct s_appends) * |
sizeof(struct s_appends) * |
(appendnum *= 2)); |
(appendnum * 2)); |
|
appendnum *= 2; |
|
} |
appends[appendx].type = AP_STRING; |
appends[appendx].type = AP_STRING; |
appends[appendx].s = cp->t; |
appends[appendx].s = cp->t; |
appends[appendx].len = strlen(cp->t); |
appends[appendx].len = strlen(cp->t); |
|
|
char c, *dst; |
char c, *dst; |
|
|
#define NEEDSP(reqlen) \ |
#define NEEDSP(reqlen) \ |
if (sp->len >= sp->blen - (reqlen) - 1) { \ |
if (sp->len + (reqlen) + 1 >= sp->blen) { \ |
sp->blen += (reqlen) + 1024; \ |
size_t newlen = sp->blen + (reqlen) + 1024; \ |
sp->space = sp->back = xrealloc(sp->back, sp->blen); \ |
sp->space = sp->back = xrealloc(sp->back, newlen); \ |
|
sp->blen = newlen; \ |
dst = sp->space + sp->len; \ |
dst = sp->space + sp->len; \ |
} |
} |
|
|
|
|
/* Make sure SPACE has enough memory and ramp up quickly. */ |
/* Make sure SPACE has enough memory and ramp up quickly. */ |
tlen = sp->len + len + 1; |
tlen = sp->len + len + 1; |
if (tlen > sp->blen) { |
if (tlen > sp->blen) { |
sp->blen = tlen + 1024; |
size_t newlen = tlen + 1024; |
sp->space = sp->back = xrealloc(sp->back, sp->blen); |
sp->space = sp->back = xrealloc(sp->back, newlen); |
|
sp->blen = newlen; |
} |
} |
|
|
if (spflag == REPLACE) |
if (spflag == REPLACE) |