# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit efaf1c2a94ed9193c04c3a67f374d31f988b0e9a
    parent 1b6c6535c10172facb350f4b8fef442f7f8ddc5a
    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:
    MTODO | 1-
    Mst.c | 23++++++++++++-----------

    2 files changed, 12 insertions(+), 12 deletions(-)
    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
    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 */