ksh/ksh93-cut.dif

19 lines
521 B
Plaintext

--- src/lib/libcmd/cut.c
+++ src/lib/libcmd/cut.c 2006-07-03 18:58:50.000000000 +0000
@@ -248,10 +248,13 @@
inp = sfreserve(fdin,cuthdr->reclen, -1);
else
inp = sfgetr(fdin, '\n', 0);
+ if(!(len=cuthdr->reclen)) {
+ len = sfvalue(fdin);
+ if (len && !inp) /* this lonely line does not end with newline */
+ inp = sfgetr(fdin, 0, SF_LASTR);
+ }
if(!inp)
break;
- if(!(len=cuthdr->reclen))
- len = sfvalue(fdin);
if((ncol = skip = *(lp = cuthdr->list)) == 0)
ncol = *++lp;
while(1)