dont print color warning on color reset OSC 104 without parameter
authorHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 15 Mar 2019 13:44:28 +0000 (14:44 +0100)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Fri, 15 Mar 2019 13:47:08 +0000 (14:47 +0100)
also print explicitly "(null)" when printf "%s" p=NULL.

noticed when exiting mutt: printf '\x1b]104\x07'

st.c

diff --git a/st.c b/st.c
index f342e5c..48d65ca 100644 (file)
--- a/st.c
+++ b/st.c
@@ -1865,7 +1865,10 @@ strhandle(void)
                case 104: /* color reset, here p = NULL */
                        j = (narg > 1) ? atoi(strescseq.args[1]) : -1;
                        if (xsetcolorname(j, p)) {
-                               fprintf(stderr, "erresc: invalid color %s\n", p);
+                               if (par == 104 && narg <= 1)
+                                       return; /* color reset without parameter */
+                               fprintf(stderr, "erresc: invalid color j=%d, p=%s\n",
+                                       j, p ? p : "(null)");
                        } else {
                                /*
                                 * TODO if defaultbg color is changed, borders