From: Alexander Sedov <elec.lomy...@gmail.com>

---
 TODO |    1 -
 st.c |   14 +++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/TODO b/TODO
index 2f42720..67615f8 100644
--- 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
diff --git a/st.c b/st.c
index 300e5ec..5c26d22 100644
--- a/st.c
+++ b/st.c
@@ -1858,6 +1858,7 @@ csireset(void) {
 void
 strhandle(void) {
        char *p;
+       XTextProperty prop;
 
        /*
         * TODO: make this being useful in case of color palette change.
@@ -1872,15 +1873,18 @@ strhandle(void) {
                case '0':
                case '1':
                case '2':
-                       /*
-                        * TODO: Handle special chars in string, like umlauts.
-                        */
                        if(p[1] == ';') {
-                               XStoreName(xw.dpy, xw.win, strescseq.buf+2);
+                               p += 2;
+                               Xutf8TextListToTextProperty(xw.dpy, &p, 1, 
XUTF8StringStyle,
+                                               &prop);
+                XSetWMName(xw.dpy, xw.win, &prop);                             
 
                        }
                        break;
                case ';':
-                       XStoreName(xw.dpy, xw.win, strescseq.buf+1);
+                       p += 1;
+                       Xutf8TextListToTextProperty(xw.dpy, &p, 1, 
XUTF8StringStyle,
+                                       &prop);
+                       XSetWMName(xw.dpy, xw.win, &prop);                      
        
                        break;
                case '4': /* TODO: Set color (arg0) to "rgb:%hexr/$hexg/$hexb" 
(arg1) */
                        break;
-- 
1.7.10.4


Reply via email to