=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tr/tr.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/tr/tr.c 2015/10/09 01:37:09 1.19 --- src/usr.bin/tr/tr.c 2021/11/02 15:45:52 1.20 *************** *** 1,4 **** ! /* $OpenBSD: tr.c,v 1.19 2015/10/09 01:37:09 deraadt Exp $ */ /* $NetBSD: tr.c,v 1.5 1995/08/31 22:13:48 jtc Exp $ */ /* --- 1,4 ---- ! /* $OpenBSD: tr.c,v 1.20 2021/11/02 15:45:52 cheloha Exp $ */ /* $NetBSD: tr.c,v 1.5 1995/08/31 22:13:48 jtc Exp $ */ /* *************** *** 85,91 **** main(int argc, char *argv[]) { int ch, cnt, lastch, *p; ! int cflag, dflag, sflag, isstring2; if (pledge("stdio", NULL) == -1) err(1, "pledge"); --- 85,91 ---- main(int argc, char *argv[]) { int ch, cnt, lastch, *p; ! int cflag, dflag, sflag; if (pledge("stdio", NULL) == -1) err(1, "pledge"); *************** *** 110,127 **** argc -= optind; argv += optind; ! switch(argc) { ! case 0: ! default: usage(); - /* NOTREACHED */ - case 1: - isstring2 = 0; - break; - case 2: - isstring2 = 1; - break; - } /* * tr -ds [-Cc] string1 string2 --- 110,117 ---- argc -= optind; argv += optind; ! if (argc < 1 || argc > 2) usage(); /* * tr -ds [-Cc] string1 string2 *************** *** 129,135 **** * Squeeze all characters in string2. */ if (dflag && sflag) { ! if (!isstring2) usage(); setup(string1, argv[0], &s1, cflag); --- 119,125 ---- * Squeeze all characters in string2. */ if (dflag && sflag) { ! if (argc != 2) usage(); setup(string1, argv[0], &s1, cflag); *************** *** 148,154 **** * Delete all characters (or complemented characters) in string1. */ if (dflag) { ! if (isstring2) usage(); setup(string1, argv[0], &s1, cflag); --- 138,144 ---- * Delete all characters (or complemented characters) in string1. */ if (dflag) { ! if (argc != 1) usage(); setup(string1, argv[0], &s1, cflag); *************** *** 163,169 **** * tr -s [-Cc] string1 * Squeeze all characters (or complemented characters) in string1. */ ! if (sflag && !isstring2) { setup(string1, argv[0], &s1, cflag); for (lastch = OOBCH; (ch = getchar()) != EOF;) --- 153,159 ---- * tr -s [-Cc] string1 * Squeeze all characters (or complemented characters) in string1. */ ! if (sflag && argc == 1) { setup(string1, argv[0], &s1, cflag); for (lastch = OOBCH; (ch = getchar()) != EOF;) *************** *** 180,186 **** * the character in the same position in string2. If the -s option is * specified, squeeze all the characters in string2. */ ! if (!isstring2) usage(); s1.str = (unsigned char *)argv[0]; --- 170,176 ---- * the character in the same position in string2. If the -s option is * specified, squeeze all the characters in string2. */ ! if (argc != 2) usage(); s1.str = (unsigned char *)argv[0];