diff options
| author | Devin J. Pohly <djpohly@gmail.com> | 2018-02-22 00:42:23 -0600 | 
|---|---|---|
| committer | Devin J. Pohly <djpohly@gmail.com> | 2018-02-25 21:53:24 -0600 | 
| commit | 52d6fb1ab1f7d41839edebb63c3408578cd44e3c (patch) | |
| tree | d33c81682f014f242b1c4d138ede71d90ca39b8e | |
| parent | cfc7acdfd923924ae150a32061fb95987697b159 (diff) | |
| download | st-52d6fb1ab1f7d41839edebb63c3408578cd44e3c.tar.gz st-52d6fb1ab1f7d41839edebb63c3408578cd44e3c.tar.bz2 | |
Move terminal echo logic into st.c
The only thing differentiating ttywrite and ttysend was the potential
for echo; make this a parameter and remove ttysend.
Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
| -rw-r--r-- | st.c | 23 | ||||
| -rw-r--r-- | st.h | 3 | ||||
| -rw-r--r-- | x.c | 18 | 
3 files changed, 19 insertions, 25 deletions
| @@ -784,12 +784,15 @@ ttyread(void)  }  void -ttywrite(const char *s, size_t n) +ttywrite(const char *s, size_t n, int may_echo)  {  	fd_set wfd, rfd;  	ssize_t r;  	size_t lim = 256; +	if (may_echo && IS_SET(MODE_ECHO)) +		twrite(s, n, 1); +  	/*  	 * Remember that we are using a pty, which might be a modem line.  	 * Writing too much will clog the line. That's why we are doing this @@ -841,14 +844,6 @@ write_error:  }  void -ttysend(char *s, size_t n) -{ -	ttywrite(s, n); -	if (IS_SET(MODE_ECHO)) -		twrite(s, n, 1); -} - -void  ttyresize(int tw, int th)  {  	struct winsize w; @@ -1570,7 +1565,7 @@ csihandle(void)  		break;  	case 'c': /* DA -- Device Attributes */  		if (csiescseq.arg[0] == 0) -			ttywrite(vtiden, strlen(vtiden)); +			ttywrite(vtiden, strlen(vtiden), 0);  		break;  	case 'C': /* CUF -- Cursor <n> Forward */  	case 'a': /* HPR -- Cursor <n> Forward */ @@ -1698,7 +1693,7 @@ csihandle(void)  		if (csiescseq.arg[0] == 6) {  			len = snprintf(buf, sizeof(buf),"\033[%i;%iR",  					term.c.y+1, term.c.x+1); -			ttywrite(buf, len); +			ttywrite(buf, len, 0);  		}  		break;  	case 'r': /* DECSTBM -- Set Scrolling Region */ @@ -1916,7 +1911,7 @@ iso14755(const Arg *arg)  	    (*e != '\n' && *e != '\0'))  		return; -	ttysend(uc, utf8encode(utf32, uc)); +	ttywrite(uc, utf8encode(utf32, uc), 1);  }  void @@ -2129,7 +2124,7 @@ tcontrolcode(uchar ascii)  	case 0x99:   /* TODO: SGCI */  		break;  	case 0x9a:   /* DECID -- Identify Terminal */ -		ttywrite(vtiden, strlen(vtiden)); +		ttywrite(vtiden, strlen(vtiden), 0);  		break;  	case 0x9b:   /* TODO: CSI */  	case 0x9c:   /* TODO: ST */ @@ -2201,7 +2196,7 @@ eschandle(uchar ascii)  		}  		break;  	case 'Z': /* DECID -- Identify Terminal */ -		ttywrite(vtiden, strlen(vtiden)); +		ttywrite(vtiden, strlen(vtiden), 0);  		break;  	case 'c': /* RIS -- Reset to inital state */  		treset(); @@ -176,8 +176,7 @@ void tsetdirtattr(int);  void ttynew(char *, char *, char **);  size_t ttyread(void);  void ttyresize(int, int); -void ttysend(char *, size_t); -void ttywrite(const char *, size_t); +void ttywrite(const char *, size_t, int);  void resettitle(void); @@ -390,7 +390,7 @@ mousereport(XEvent *e)  		return;  	} -	ttywrite(buf, len); +	ttywrite(buf, len, 0);  }  void @@ -408,7 +408,7 @@ bpress(XEvent *e)  	for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) {  		if (e->xbutton.button == ms->b  				&& match(ms->mask, e->xbutton.state)) { -			ttysend(ms->s, strlen(ms->s)); +			ttywrite(ms->s, strlen(ms->s), 1);  			return;  		}  	} @@ -520,10 +520,10 @@ selnotify(XEvent *e)  		}  		if (IS_SET(MODE_BRCKTPASTE) && ofs == 0) -			ttywrite("\033[200~", 6); -		ttysend((char *)data, nitems * format / 8); +			ttywrite("\033[200~", 6, 0); +		ttywrite((char *)data, nitems * format / 8, 1);  		if (IS_SET(MODE_BRCKTPASTE) && rem == 0) -			ttywrite("\033[201~", 6); +			ttywrite("\033[201~", 6, 0);  		XFree(data);  		/* number of 32-bit chunks returned */  		ofs += nitems * format / 32; @@ -1634,12 +1634,12 @@ focus(XEvent *ev)  		win.state |= WIN_FOCUSED;  		xseturgency(0);  		if (IS_SET(MODE_FOCUS)) -			ttywrite("\033[I", 3); +			ttywrite("\033[I", 3, 0);  	} else {  		XUnsetICFocus(xw.xic);  		win.state &= ~WIN_FOCUSED;  		if (IS_SET(MODE_FOCUS)) -			ttywrite("\033[O", 3); +			ttywrite("\033[O", 3, 0);  	}  } @@ -1714,7 +1714,7 @@ kpress(XEvent *ev)  	/* 2. custom keys from config.h */  	if ((customkey = kmap(ksym, e->state))) { -		ttysend(customkey, strlen(customkey)); +		ttywrite(customkey, strlen(customkey), 1);  		return;  	} @@ -1733,7 +1733,7 @@ kpress(XEvent *ev)  			len = 2;  		}  	} -	ttysend(buf, len); +	ttywrite(buf, len, 1);  } | 
