225 |
|
{ |
226 |
|
int incomm = 0; |
227 |
|
char *cp = buf; |
228 |
< |
char dummyc; |
228 |
> |
char dummys[2]; |
229 |
|
int c; |
230 |
|
|
231 |
|
if ((buf == NULL) | (len <= 0)) { |
232 |
< |
buf = &dummyc; |
233 |
< |
len = 1; |
232 |
> |
buf = dummys; |
233 |
> |
len = sizeof(dummys); |
234 |
|
} |
235 |
|
while ((c = getc(fp)) != EOF && |
236 |
|
(isspace(c) || (incomm += (c == '!')))) { |
237 |
|
if (c == '\n') |
238 |
|
incomm = 0; |
239 |
< |
if (cp-buf < len-1) |
239 |
> |
if (cp-buf < len-2) |
240 |
|
*cp++ = c; |
241 |
+ |
else if (cp-buf == len-2) |
242 |
+ |
*cp++ = '\n'; |
243 |
|
} |
244 |
|
*cp = '\0'; |
245 |
|
if (c != EOF) |