=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ul/ul.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- src/usr.bin/ul/ul.c 2004/03/13 22:11:56 1.12 +++ src/usr.bin/ul/ul.c 2004/07/06 14:37:59 1.13 @@ -1,4 +1,4 @@ -/* $OpenBSD: ul.c,v 1.12 2004/03/13 22:11:56 tedu Exp $ */ +/* $OpenBSD: ul.c,v 1.13 2004/07/06 14:37:59 jaredy Exp $ */ /* $NetBSD: ul.c,v 1.3 1994/12/07 00:28:24 jtc Exp $ */ /* @@ -40,16 +40,17 @@ #if 0 static char sccsid[] = "@(#)ul.c 8.1 (Berkeley) 6/6/93"; #endif -static const char rcsid[] = "$OpenBSD: ul.c,v 1.12 2004/03/13 22:11:56 tedu Exp $"; +static const char rcsid[] = "$OpenBSD: ul.c,v 1.13 2004/07/06 14:37:59 jaredy Exp $"; #endif /* not lint */ +#include +#include #include #include -#include -#include #include -#include +#include #include +#include #define IESC '\033' #define SO '\016' @@ -127,7 +128,7 @@ default: fprintf(stderr, - "usage: %s [ -i ] [ -tTerm ] file...\n", + "usage: %s [-i] [-t terminal] file...\n", argv[0]); exit(1); } @@ -138,8 +139,8 @@ break; default: - fprintf(stderr,"trouble reading termcap"); - /* fall through to ... */ + warnx("trouble reading termcap"); + /* FALLTHROUGH */ case 0: /* No such terminal type - assume dumb */ @@ -156,10 +157,8 @@ mfilter(stdin); else for (; optind maxcol) @@ -323,10 +321,13 @@ overstrike(void) { int i; - char lbuf[256]; - char *cp = lbuf; + char *buf, *cp; int hadbold=0; + if ((buf = malloc(maxcol + 1)) == NULL) + err(1, NULL); + cp = buf; + /* Set up overstrike buffer */ for (i=0; i buf && *(cp - 1) == ' ') + cp--; + *cp = '\0'; + for (cp = buf; *cp != '\0'; cp++) putchar(*cp); if (hadbold) { putchar('\r'); - for (cp=lbuf; *cp; cp++) + for (cp = buf; *cp != '\0'; cp++) putchar(*cp=='_' ? ' ' : *cp); putchar('\r'); - for (cp=lbuf; *cp; cp++) + for (cp = buf; *cp != '\0'; cp++) putchar(*cp=='_' ? ' ' : *cp); } + free(buf); } void iattr(void) { int i; - char lbuf[256]; - char *cp = lbuf; + char *buf, *cp; + if ((buf = malloc(maxcol + 1)) == NULL) + err(1, NULL); + cp = buf; + for (i=0; i buf && *(cp - 1) == ' ') + cp--; + *cp = '\0'; + for (cp = buf; *cp != '\0'; cp++) putchar(*cp); + free(buf); putchar('\n'); }