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