version 1.6, 2003/06/18 18:39:52 |
version 1.7, 2004/04/08 15:18:28 |
|
|
static int |
static int |
expand_linebuf() |
expand_linebuf() |
{ |
{ |
int new_size = size_linebuf + LINEBUF_SIZE; |
int new_size = size_linebuf * 2; |
char *new_buf = (char *) calloc(new_size, sizeof(char)); |
char *new_buf = (char *) realloc(linebuf, new_size); |
char *new_attr = (char *) calloc(new_size, sizeof(char)); |
char *new_attr = (char *) realloc(attr, new_size); |
if (new_buf == NULL || new_attr == NULL) |
if (new_buf == NULL || new_attr == NULL) |
{ |
{ |
if (new_attr != NULL) |
if (new_attr != NULL) |
|
|
free(new_buf); |
free(new_buf); |
return 1; |
return 1; |
} |
} |
memcpy(new_buf, linebuf, size_linebuf * sizeof(char)); |
memset(new_buf + size_linebuf, 0, new_size - size_linebuf); |
memcpy(new_attr, attr, size_linebuf * sizeof(char)); |
memset(new_attr + size_linebuf, 0, new_size - size_linebuf); |
free(attr); |
|
free(linebuf); |
|
linebuf = new_buf; |
linebuf = new_buf; |
attr = new_attr; |
attr = new_attr; |
size_linebuf = new_size; |
size_linebuf = new_size; |