summaryrefslogtreecommitdiffstats
path: root/usr.bin/window/scanner.c
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-10-30 04:05:50 +0000
committerache <ache@FreeBSD.org>1994-10-30 04:05:50 +0000
commite8cc63c3bb3b5dc1015abf84a6b9eee2453f6898 (patch)
tree98f244c6b5bf842f3b8d541748cb595b796e9a32 /usr.bin/window/scanner.c
parent491abb609952c74e827584e709db09c2ea9aed74 (diff)
downloadFreeBSD-src-e8cc63c3bb3b5dc1015abf84a6b9eee2453f6898.zip
FreeBSD-src-e8cc63c3bb3b5dc1015abf84a6b9eee2453f6898.tar.gz
More 8bit/ctype fixes, command mode
Diffstat (limited to 'usr.bin/window/scanner.c')
-rw-r--r--usr.bin/window/scanner.c45
1 files changed, 11 insertions, 34 deletions
diff --git a/usr.bin/window/scanner.c b/usr.bin/window/scanner.c
index d10719c..9bf691b 100644
--- a/usr.bin/window/scanner.c
+++ b/usr.bin/window/scanner.c
@@ -38,6 +38,7 @@
static char sccsid[] = "@(#)scanner.c 8.1 (Berkeley) 6/6/93";
#endif /* not lint */
+#include <ctype.h>
#include "value.h"
#include "token.h"
#include "context.h"
@@ -110,22 +111,6 @@ loop:
cx.x_token = T_EOF;
state = -1;
break;
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '_': case '.':
- *p++ = c;
- state = 2;
- break;
case '"':
state = 3;
break;
@@ -231,6 +216,11 @@ loop:
state = -1;
break;
default:
+ if (isalpha(c) || c == '_' || c == '.') {
+ *p++ = c;
+ state = 2;
+ break;
+ }
cx.x_val.v_num = c;
cx.x_token = T_CHAR;
state = -1;
@@ -245,24 +235,6 @@ loop:
break;
case 2: /* unquoted string */
switch (c) {
- case 'a': case 'b': case 'c': case 'd': case 'e':
- case 'f': case 'g': case 'h': case 'i': case 'j':
- case 'k': case 'l': case 'm': case 'n': case 'o':
- case 'p': case 'q': case 'r': case 's': case 't':
- case 'u': case 'v': case 'w': case 'x': case 'y':
- case 'z':
- case 'A': case 'B': case 'C': case 'D': case 'E':
- case 'F': case 'G': case 'H': case 'I': case 'J':
- case 'K': case 'L': case 'M': case 'N': case 'O':
- case 'P': case 'Q': case 'R': case 'S': case 'T':
- case 'U': case 'V': case 'W': case 'X': case 'Y':
- case 'Z':
- case '_': case '.':
- case '0': case '1': case '2': case '3': case '4':
- case '5': case '6': case '7': case '8': case '9':
- if (p < buf + sizeof buf - 1)
- *p++ = c;
- break;
case '"':
state = 3;
break;
@@ -281,6 +253,11 @@ loop:
}
break;
default:
+ if (isalnum(c) || c == '_' || c == '.') {
+ if (p < buf + sizeof buf - 1)
+ *p++ = c;
+ break;
+ }
(void) s_ungetc(c);
case EOF:
*p = 0;
OpenPOWER on IntegriCloud