Support OSC 110, 111, and 112 for resetting colors - st - simple terminal
 (HTM) git clone git://git.suckless.org/st
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit d6c431859c6c0201e0668ed24a9f17cebf0a68f5
 (DIR) parent f114bcedd113017d907aad32031db92c050f4bf3
 (HTM) Author: Ayman Bagabas <ayman.bagabas@gmail.com>
       Date:   Fri,  8 Aug 2025 17:11:59 -0400
       
       Support OSC 110, 111, and 112 for resetting colors
       
       This adds support for OSC 110, 111, and 112 escape sequences to reset
       the foreground, background, and cursor colors in the terminal. The
       changes include handling these sequences in the `strhandle` function of
       `st.c`, allowing applications to reset colors to their default values.
       
       The OSC sequences originated from Xterm control sequences and are now
       widely used in terminal applications and supported by many terminal
       emulators. For applications, this allows them to reset colors to
       default values without needing to know the colors beforehand.
       
       Signed-off-by: Ayman Bagabas <ayman.bagabas@gmail.com>
       
       Diffstat:
         M st.c                                |      13 +++++++++++++
       
       1 file changed, 13 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -1967,6 +1967,19 @@ strhandle(void)
                                        tfulldirt();
                                }
                                return;
       +                case 110:
       +                case 111:
       +                case 112:
       +                        if (narg != 1)
       +                                break;
       +                        if ((j = par - 110) < 0 || j >= LEN(osc_table))
       +                                break; /* shouldn't be possible */
       +                        if (xsetcolorname(osc_table[j].idx, NULL)) {
       +                                fprintf(stderr, "erresc: %s color not found\n", osc_table[j].str);
       +                        } else {
       +                                tfulldirt();
       +                        }
       +                        return;
                        }
                        break;
                case 'k': /* old title set compatibility */