Add umlaut support for title change. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit efaf1c2a94ed9193c04c3a67f374d31f988b0e9a
 (DIR) parent 1b6c6535c10172facb350f4b8fef442f7f8ddc5a
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat, 23 Feb 2013 21:20:21 +0100
       
       Add umlaut support for title change.
       
       Thanks Alexander Sedov <alex0player@gmail.com>!
       
       Diffstat:
         M TODO                                |       1 -
         M st.c                                |      23 ++++++++++++-----------
       
       2 files changed, 12 insertions(+), 12 deletions(-)
       ---
 (DIR) diff --git a/TODO b/TODO
       @@ -18,7 +18,6 @@ bugs
        
        * fix shift up/down (shift selection in emacs)
        * fix selection paste for xatom STRING
       -* fix umlaut handling in settitle
        * fix rows and column definition in fixed geometry
        * fix -e handling
        * remove DEC test sequence when appropriate
 (DIR) diff --git a/st.c b/st.c
       @@ -1861,12 +1861,9 @@ csireset(void) {
        void
        strhandle(void) {
                char *p = NULL;
       -        int i, j;
       -        int narg;
       +        int i, j, narg;
       +        XTextProperty prop;
        
       -        /*
       -         * TODO: make this being useful in case of color palette change.
       -         */
                strparse();
                narg = strescseq.narg;
        
       @@ -1876,11 +1873,12 @@ strhandle(void) {
                        case 0:
                        case 1:
                        case 2:
       -                        /*
       -                         * TODO: Handle special chars in string, like umlauts.
       -                         */
       -                        if(narg > 1)
       -                                XStoreName(xw.dpy, xw.win, strescseq.args[2]);
       +                        if(narg > 1) {
       +                                p += 2;
       +                                Xutf8TextListToTextProperty(xw.dpy, &p, 1,
       +                                                XUTF8StringStyle, &prop);
       +                                XSetWMName(xw.dpy, xw.win, &prop);
       +                        }
                                break;
                        case 4: /* color set */
                                if(narg < 3)
       @@ -1902,7 +1900,10 @@ strhandle(void) {
                        }
                        break;
                case 'k': /* old title set compatibility */
       -                XStoreName(xw.dpy, xw.win, strescseq.buf);
       +                p += 1;
       +                Xutf8TextListToTextProperty(xw.dpy, &p, 1, XUTF8StringStyle,
       +                                &prop);
       +                XSetWMName(xw.dpy, xw.win, &prop);
                        break;
                case 'P': /* DSC -- Device Control String */
                case '_': /* APC -- Application Program Command */