Make fmt ctype-aware
Fix non-critical bug with getting EOF double times Not call strlen for zero length test
This commit is contained in:
parent
5469943802
commit
d293af2d2e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=8461
@ -134,7 +134,7 @@ fmt(fi)
|
||||
FILE *fi;
|
||||
{
|
||||
char linebuf[BUFSIZ], canonb[BUFSIZ];
|
||||
register char *cp, *cp2;
|
||||
register char *cp, *cp2, cc;
|
||||
register int c, col;
|
||||
|
||||
c = getc(fi);
|
||||
@ -151,7 +151,7 @@ fmt(fi)
|
||||
c = getc(fi);
|
||||
continue;
|
||||
}
|
||||
if ((c < ' ' || c >= 0177) && c != '\t') {
|
||||
if (!isprint(c) && c != '\t') {
|
||||
c = getc(fi);
|
||||
continue;
|
||||
}
|
||||
@ -172,11 +172,11 @@ fmt(fi)
|
||||
col = 0;
|
||||
cp = linebuf;
|
||||
cp2 = canonb;
|
||||
while (c = *cp++) {
|
||||
if (c != '\t') {
|
||||
while (cc = *cp++) {
|
||||
if (cc != '\t') {
|
||||
col++;
|
||||
if (cp2-canonb < BUFSIZ-1)
|
||||
*cp2++ = c;
|
||||
*cp2++ = cc;
|
||||
continue;
|
||||
}
|
||||
do {
|
||||
@ -211,7 +211,7 @@ prefix(line)
|
||||
register char *cp, **hp;
|
||||
register int np, h;
|
||||
|
||||
if (strlen(line) == 0) {
|
||||
if (!*line) {
|
||||
oflush();
|
||||
putchar('\n');
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user