| @@ -318,27 +318,29 @@ void fldbld(void) /* create fields from | | | @@ -318,27 +318,29 @@ void fldbld(void) /* create fields from |
318 | return; | | 318 | return; |
319 | if (!isstr(fldtab[0])) | | 319 | if (!isstr(fldtab[0])) |
320 | getsval(fldtab[0]); | | 320 | getsval(fldtab[0]); |
321 | r = fldtab[0]->sval; | | 321 | r = fldtab[0]->sval; |
322 | n = strlen(r); | | 322 | n = strlen(r); |
323 | if (n > fieldssize) { | | 323 | if (n > fieldssize) { |
324 | xfree(fields); | | 324 | xfree(fields); |
325 | if ((fields = malloc(n+1)) == NULL) | | 325 | if ((fields = malloc(n+1)) == NULL) |
326 | FATAL("out of space for fields in fldbld %d", n); | | 326 | FATAL("out of space for fields in fldbld %d", n); |
327 | fieldssize = n; | | 327 | fieldssize = n; |
328 | } | | 328 | } |
329 | fr = fields; | | 329 | fr = fields; |
330 | i = 0; /* number of fields accumulated here */ | | 330 | i = 0; /* number of fields accumulated here */ |
331 | if (inputFS[0] && inputFS[1]) { /* it's a regular expression */ | | 331 | if (!inputFS) { |
| | | 332 | /* do nothing */ |
| | | 333 | } else if (inputFS[0] && inputFS[1]) { /* it's a regular expression */ |
332 | i = refldbld(r, inputFS); | | 334 | i = refldbld(r, inputFS); |
333 | } else if ((sep = *inputFS) == ' ') { /* default whitespace */ | | 335 | } else if ((sep = *inputFS) == ' ') { /* default whitespace */ |
334 | for (i = 0; ; ) { | | 336 | for (i = 0; ; ) { |
335 | while (*r == ' ' || *r == '\t' || *r == '\n') | | 337 | while (*r == ' ' || *r == '\t' || *r == '\n') |
336 | r++; | | 338 | r++; |
337 | if (*r == 0) | | 339 | if (*r == 0) |
338 | break; | | 340 | break; |
339 | i++; | | 341 | i++; |
340 | if (i > nfields) | | 342 | if (i > nfields) |
341 | growfldtab(i); | | 343 | growfldtab(i); |
342 | if (freeable(fldtab[i])) | | 344 | if (freeable(fldtab[i])) |
343 | xfree(fldtab[i]->sval); | | 345 | xfree(fldtab[i]->sval); |
344 | fldtab[i]->sval = fr; | | 346 | fldtab[i]->sval = fr; |