From 512ca99d8c74e9813c78d2f98d4ea8c2c72e63f0 Mon Sep 17 00:00:00 2001
From: Matthias-Christian Ott <ott@enolink.de>
Date: Sun, 8 Jun 2008 20:47:08 +0200
Subject: replace state with separate variables

---
 std.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/std.c b/std.c
index 4afdc3c..4808db4 100644
--- a/std.c
+++ b/std.c
@@ -31,8 +31,6 @@ void shell(void);
 void sigchld(int n);
 char unbuffer(void);
 
-enum { QuestionMark = 1, Digit = 2 };
-
 typedef struct {
 	unsigned char data[BUFSIZ];
 	int s, e;
@@ -41,10 +39,10 @@ typedef struct {
 
 int cols = 80, lines = 25;
 int cx = 0, cy = 0;
-int c, s;
+int c;
 FILE *fptm = NULL;
 int ptm, pts;
-_Bool bold;
+_Bool bold, digit, qmark;
 pid_t pid;
 RingBuffer buf;
 
@@ -151,28 +149,27 @@ parseesc(void) {
 	int arg[16];
 
 	memset(arg, 0, LENGTH(arg));
-	s = 0;
 	c = getc(fptm);
 	switch(c) {
 	case '[':
 		c = getc(fptm);
 		for(j = 0; j < LENGTH(arg);) {
 			if(isdigit(c)) {
-				s |= Digit;
+				digit = 1;
 				arg[j] *= 10;
 				arg[j] += c - '0';
 			}
 			else if(c == '?')
-				s |= QuestionMark; 
+				qmark = 1;
 			else if(c == ';') {
-				if(!(s & Digit))
+				if(!digit)
 					eprint("syntax error\n");
-				s &= ~Digit;
+				digit = 0;
 				j++;
 			}
 			else {
-				if(s & Digit) {
-					s &= ~Digit;
+				if(digit) {
+					digit = 0;
 					j++;
 				}
 				break;
-- 
cgit v1.2.3