[dev] [st] [PATCH] End a sequence only on CAN, SUB, \a and C1s.

From: Colona <colona_AT_ycc.fr>
Date: Fri, 9 May 2014 10:23:53 +0200

---
 st.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/st.c b/st.c
index fe44608..da5e493 100644
--- a/st.c
+++ b/st.c
_AT_@ -2335,19 +2335,19 @@ tcontrolcode(uchar ascii) {
 	switch(ascii) {
 	case '\t':   /* HT */
 		tputtab(1);
-		break;
+		return;
 	case '\b':   /* BS */
 		tmoveto(term.c.x-1, term.c.y);
-		break;
+		return;
 	case '\r':   /* CR */
 		tmoveto(0, term.c.y);
-		break;
+		return;
 	case '\f':   /* LF */
 	case '\v':   /* VT */
 	case '\n':   /* LF */
 		/* go to first col if the mode is set */
 		tnewline(IS_SET(MODE_CRLF));
-		break;
+		return;
 	case '\a':   /* BEL */
 		if(term.esc & ESC_STR_END) {
 			/* backwards compatibility to xterm */
_AT_@ -2366,10 +2366,10 @@ tcontrolcode(uchar ascii) {
 		return;
 	case '\016': /* SO */
 		term.charset = 0;
-		break;
+		return;
 	case '\017': /* SI */
 		term.charset = 1;
-		break;
+		return;
 	case '\032': /* SUB */
 		tsetchar(question, &term.c.attr, term.c.x, term.c.y);
 	case '\030': /* CAN */
_AT_@ -2380,6 +2380,7 @@ tcontrolcode(uchar ascii) {
 	case '\021': /* XON (IGNORED) */
 	case '\023': /* XOFF (IGNORED) */
 	case 0177:   /* DEL (IGNORED) */
+		return;
 	case 0x84:   /* TODO: IND */
 	case 0x85:   /* TODO: NEL */
 	case 0x88:   /* TODO: HTS */
_AT_@ -2396,6 +2397,7 @@ tcontrolcode(uchar ascii) {
 	case 0x9f:   /* TODO: APC */
 		break;
 	}
+	/* only CAN, SUB, \a and C1 chars interrupt a sequence */
 	term.esc &= ~(ESC_STR_END|ESC_STR);
 	return;
 }
-- 
1.9.2
-- 
Ivan "Colona" Delalande
Received on Fri May 09 2014 - 10:23:53 CEST

This archive was generated by hypermail 2.3.0 : Fri May 09 2014 - 10:36:02 CEST