JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Avoid initialization of vt100_0 in each call to tsetchar
[st.git] / st.c
diff --git a/st.c b/st.c
index 85b0b59..33a1501 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1183,7 +1183,7 @@ tmoveto(int x, int y) {
 
 void
 tsetchar(char *c) {
-       char *vt100_0[62] = { /* 0x41 - 0x7e */
+       static char *vt100_0[62] = { /* 0x41 - 0x7e */
                "↑", "↓", "→", "←", "█", "▚", "☃", /* A - G */
                0, 0, 0, 0, 0, 0, 0, 0, /* H - O */
                0, 0, 0, 0, 0, 0, 0, 0, /* P - W */
@@ -1514,7 +1514,7 @@ csihandle(void) {
                break;
        case 'c': /* DA -- Device Attributes */
                if(csiescseq.arg[0] == 0)
-                       ttywrite(VT102ID, sizeof(VT102ID));
+                       ttywrite(VT102ID, sizeof(VT102ID) - 1);
                break;
        case 'C': /* CUF -- Cursor <n> Forward */
        case 'a':
@@ -1940,7 +1940,8 @@ tputc(char *c, int len) {
                                term.esc = 0;
                                break;
                        case 'Z': /* DECID -- Identify Terminal */
-                               ttywrite(VT102ID, sizeof(VT102ID));
+                               ttywrite(VT102ID, sizeof(VT102ID) - 1);
+                               term.esc = 0;
                                break;
                        case 'c': /* RIS -- Reset to inital state */
                                treset();