diff options
| author | Matthias-Christian Ott <ott@enolink.de> | 2008-06-08 20:47:08 +0200 | 
|---|---|---|
| committer | Matthias-Christian Ott <ott@enolink.de> | 2008-06-08 20:47:08 +0200 | 
| commit | a6efc851b6b0fa9befe1f81627c5c5955d48e6f6 (patch) | |
| tree | 6bc23194617d6f47175bfcd55a870809401eb90b | |
| parent | 50b4785f2650a741f827f4be17ecc18844a1b175 (diff) | |
| download | st-transparency-a6efc851b6b0fa9befe1f81627c5c5955d48e6f6.tar.gz st-transparency-a6efc851b6b0fa9befe1f81627c5c5955d48e6f6.tar.xz st-transparency-a6efc851b6b0fa9befe1f81627c5c5955d48e6f6.zip  | |
replace state with separate variables
| -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;  | 
