| 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) |