X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=st.c;h=3940bbddad4f4c7894add413c21d5b0a79b85fe3;hb=d5f4554431f82424af40600ed6835672ab8e44ae;hp=a203c72cfb9e1c0093b6acda7e6bfcc4359f22f6;hpb=8b4bfe31ec1075316dbb2e7d21753771ae3e5590;p=st.git diff --git a/st.c b/st.c index a203c72..3940bbd 100644 --- a/st.c +++ b/st.c @@ -1,5 +1,4 @@ /* See LICENSE for licence details. */ -/* See LICENSE for licence details. */ #define _XOPEN_SOURCE #include #include @@ -37,8 +36,8 @@ /* Attribute, Cursor, Character state, Terminal mode, Screen draw mode */ enum { ATnone=0 , ATreverse=1 , ATunderline=2, ATbold=4 }; enum { CSup, CSdown, CSright, CSleft, CShide, CSdraw, CSwrap, CSsave, CSload }; -enum { CRset=1 , CRupdate=2 }; -enum { TMwrap=1 , TMinsert=2, TMaltcharset }; +enum { CRset=1, CRupdate=2 }; +enum { TMwrap=1, TMinsert=2, TMaltcharset }; enum { SCupdate, SCredraw }; typedef int Color; @@ -592,10 +591,16 @@ tsetscroll(int t, int b) { void eschandle(void) { - /* escdump(); */ switch(escseq.pre) { + default: + goto unknown_seq; case '[': switch(escseq.mode) { + default: + unknown_seq: + fprintf(stderr, "erresc: unknown sequence\n"); + escdump(); + break; case '@': /* Insert blank char */ DEFAULT(escseq.arg[0], 1); tinsertblank(escseq.arg[0]); @@ -713,15 +718,13 @@ eschandle(void) { void escdump(void) { int i; - puts("------"); printf("rawbuf : %s\n", escseq.buf); printf("prechar : %c\n", escseq.pre); printf("private : %c\n", escseq.priv ? '?' : ' '); printf("narg : %d\n", escseq.narg); - if(escseq.narg) { + if(escseq.narg) for(i = 0; i < escseq.narg; i++) printf("\targ %d = %d\n", i, escseq.arg[i]); - } printf("mode : %c\n", escseq.mode); }