]> git.armaanb.net Git - st.git/commitdiff
STREscape: don't trim prematurely
authorAvi Halachmi (:avih) <avihpit@yahoo.com>
Wed, 16 Oct 2019 09:19:49 +0000 (12:19 +0300)
committerHiltjo Posthuma <hiltjo@codemadness.org>
Sun, 10 Nov 2019 21:45:54 +0000 (22:45 +0100)
STRescape holds strings in escape sequences such as OSC and DCS, and
its buffer is 512 bytes.

If the input is too big then trailing chars are ignored, but the test
was off-by-1 such that it took 510 chars instead of 511 (before a
terminating NULL is added).

Now the full size can be utilized.

st.c

diff --git a/st.c b/st.c
index a8f8232e3539f31cc39e599ebabd2f144058e6c1..50226d1677b230d290d9e802742e85f27dc1d4b4 100644 (file)
--- a/st.c
+++ b/st.c
@@ -2330,7 +2330,7 @@ tputc(Rune u)
                if (term.esc&ESC_DCS && strescseq.len == 0 && u == 'q')
                        term.mode |= MODE_SIXEL;
 
-               if (strescseq.len+len >= sizeof(strescseq.buf)-1) {
+               if (strescseq.len+len >= sizeof(strescseq.buf)) {
                        /*
                         * Here is a bug in terminals. If the user never sends
                         * some code to stop the str or esc command, then st