diff options
| -rw-r--r-- | std.c | 19 | 
1 files changed, 8 insertions, 11 deletions
@@ -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;  | 
