JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
add break;s for last cases in switch statements
[st.git] / st.c
diff --git a/st.c b/st.c
index 297eb3f..49df792 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1228,6 +1228,7 @@ ttynew(void) {
                                        opt_io, strerror(errno));
                        }
                }
+               break;
        }
 }
 
@@ -1673,6 +1674,7 @@ tdefcolor(int *attr, int *npar, int l) {
        default:
                fprintf(stderr,
                        "erresc(38): gfx attr %d unknown\n", attr[*npar]);
+               break;
        }
 
        return idx;
@@ -2298,7 +2300,7 @@ techo(char *buf, int len) {
        for(; len > 0; buf++, len--) {
                char c = *buf;
 
-               if(c < 0x20 || c == 0177) { /* control code */
+               if(BETWEEN(c, 0x00, 0x1f) || c == 0x7f) { /* control code */
                        if(c != '\n' && c != '\r' && c != '\t') {
                                c ^= '\x40';
                                tputc("^", 1);
@@ -2387,6 +2389,7 @@ tputc(char *c, int len) {
                         * strhandle();
                         */
                        }
+                       break;
                }
                return;
        }
@@ -2452,10 +2455,6 @@ tputc(char *c, int len) {
                                csiparse();
                                csihandle();
                        }
-               } else if(term.esc & ESC_STR_END) {
-                       term.esc = 0;
-                       if(ascii == '\\')
-                               strhandle();
                } else if(term.esc & ESC_ALTCHARSET) {
                        tdeftran(ascii);
                        tselcs();
@@ -2545,13 +2544,16 @@ tputc(char *c, int len) {
                                tcursor(CURSOR_LOAD);
                                term.esc = 0;
                                break;
-                       case '\\': /* ST -- Stop */
+                       case '\\': /* ST -- String Terminator */
+                               if(term.esc & ESC_STR_END)
+                                       strhandle();
                                term.esc = 0;
                                break;
                        default:
                                fprintf(stderr, "erresc: unknown sequence ESC 0x%02X '%c'\n",
                                        (uchar) ascii, isprint(ascii)? ascii:'.');
                                term.esc = 0;
+                               break;
                        }
                }
                /*