X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/771ece25e89882a39700d0a24febbda42363d2ef..a6efc851b6b0fa9befe1f81627c5c5955d48e6f6:/std.c?ds=sidebyside

diff --git a/std.c b/std.c
index a0d9a54..4808db4 100644
--- a/std.c
+++ b/std.c
@@ -13,7 +13,7 @@
 #include <string.h>
 #include <unistd.h>
 
-#define LENGTH(x)	(sizeof (x) / sizeof (x)[0])
+#define LENGTH(x)	(sizeof(x) / sizeof((x)[0]))
 #define MAX(a,b)	(((a) > (b)) ? (a) : (b))
 #define MIN(a,b)	(((a) < (b)) ? (a) : (b))
 
@@ -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;
 
@@ -107,45 +105,28 @@ getpty(void) {
 	ptm = getpt();
 #elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
 	ptm = posix_openpt(O_RDWR);
-#elif defined(__sgi)
-	ttydev = _getpty(&ptm, O_RDWR, 0622, 0);
-#elif defined(_AIX)
-	ptm = open("/dev/ptc", O_RDWR);
 #else
 	ptm = open("/dev/ptmx", O_RDWR);
-#if defined(__hpux)
 	if(ptm == -1)
-		ptm = open("/dev/ptym/clone", O_RDWR);
-#endif
-	if(ptm == -1) {
 		if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1)
 			eprintn("error, cannot open pty");
-		return;
-	}
 #endif
+#if defined(_XOPEN_SOURCE)
 	if(ptm != -1) {
-#if defined(_XOPEN_SOURCE) || !defined(__sgi) || !defined(_AIX)
 		if(grantpt(ptm) == -1)
 			eprintn("error, cannot grant access to pty");
 		if(unlockpt(ptm) == -1)
 			eprintn("error, cannot unlock pty");
 		ptsdev = ptsname(ptm);
-#elif defined(_AIX)
-		ptsdev = ttyname(ptm);
-#endif
 		if(!ptsdev)
 			eprintn("error, slave pty name undefined");
 		pts = open(ptsdev, O_RDWR);
 		if(pts == -1)
 			eprintn("error, cannot open slave pty");
-		puts(ptsdev);
-#if defined(__hpux) || defined(sun) || defined(__sun)
-		ioctl(pts, I_PUSH, "ptem");
-		ioctl(pts, I_PUSH, "ldterm");
-#endif
 	}
 	else
 		eprintn("error, cannot open pty");
+#endif
 }
 
 void
@@ -168,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))
-					eprint("syntax error");
-				s &= ~Digit;
+				if(!digit)
+					eprint("syntax error\n");
+				digit = 0;
 				j++;
 			}
 			else {
-				if(s & Digit) {
-					s &= ~Digit;
+				if(digit) {
+					digit = 0;
 					j++;
 				}
 				break;
@@ -333,8 +313,5 @@ main(int argc, char *argv[]) {
 		eprint("usage: st [-v]\n");
 	getpty();
 	shell();
-	fdopen(fptm, "r+");
-	if(!fptm)
-		eprintn("cannot open slave pty");
 	return 0;
 }