# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit e31829f659a818e438bf2fe45708abb2983f8765
    parent 5e917ab2874de556de12ce43e9a97300c9c722a2
    Author: Colona <colona@ycc.fr>
    Date:   Fri,  9 May 2014 10:23:53 +0200

    End a sequence only on CAN, SUB, \a and C1s.

    Diffstat:
    Mst.c | 14++++++++------

    1 file changed, 8 insertions(+), 6 deletions(-)
    diff --git a/st.c b/st.c
    @@ -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 */
    @@ -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 */
    @@ -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 */
    @@ -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;
     }