aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim J. Robbins <tjr@FreeBSD.org>2002-07-29 14:50:54 +0000
committerTim J. Robbins <tjr@FreeBSD.org>2002-07-29 14:50:54 +0000
commit482711cfa6466dc2ec7c601474c349d36d2a2a64 (patch)
treedd86d18e59ae8170623114290968505e139feca3
parentd2893b161bbea64e099654c0dd78073cfb5667b0 (diff)
Notes
-rw-r--r--usr.bin/tr/tr.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/usr.bin/tr/tr.c b/usr.bin/tr/tr.c
index 524f66b88e6b..ff623cd57196 100644
--- a/usr.bin/tr/tr.c
+++ b/usr.bin/tr/tr.c
@@ -238,12 +238,17 @@ main(argc, argv)
(void)next(&s2);
}
- if (cflag)
- for (cnt = 0, p = string1; cnt < NCHARS; ++p, ++cnt)
- *p = *p == OOBCH ? ch : cnt;
- else if (Cflag)
- for (cnt = 0, p = string1; cnt < NCHARS; ++p, ++cnt)
- *p = *p == OOBCH && ISCHAR(cnt) ? ch : cnt;
+ if (cflag || Cflag) {
+ s2.str = argv[1];
+ s2.state = NORMAL;
+ for (cnt = 0, p = string1; cnt < NCHARS; ++p, ++cnt) {
+ if (*p == OOBCH && (!Cflag || ISCHAR(cnt))) {
+ (void)next(&s2);
+ *p = s2.lastch;
+ } else
+ *p = cnt;
+ }
+ }
if (sflag)
for (lastch = OOBCH; (ch = getchar()) != EOF;) {