diff --git a/ChangeLog b/ChangeLog index 7220de3..e4bc07d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2440,3 +2440,10 @@ Mon Sep 20 21:00:46 PDT 1999 Michael Jennings background image. ------------------------------------------------------------------------------- +Mon Sep 20 21:25:46 PDT 1999 Michael Jennings + + Added support for xterm's property change escape sequence as requested + by Greg Badros , the originator of the + sequence. + +------------------------------------------------------------------------------- diff --git a/src/term.c b/src/term.c index c674110..4e5e7fa 100644 --- a/src/term.c +++ b/src/term.c @@ -1628,11 +1628,11 @@ xterm_seq(int op, const char *str) { XColor xcol; - char *nstr, *tnstr, *orig_tnstr; + char *nstr, *tnstr, *orig_tnstr, *valptr; unsigned char eterm_seq_op, which = 0; #ifdef PIXMAP_SUPPORT unsigned char changed = 0, scaled = 0; - char *color, *mod, *valptr; + char *color, *mod; #endif if (!str) @@ -1647,7 +1647,13 @@ xterm_seq(int op, const char *str) set_title(str); break; case XTerm_prop: - + if ((nstr = strsep(&tnstr, ";")) == NULL) { + break; + } + if ((valptr = strchr(nstr, '=')) != NULL) { + *(valptr++) = 0; + } + set_text_property(TermWin.parent, nstr, valptr); break; case XTerm_name: set_title(str); /* drop */ diff --git a/src/windows.c b/src/windows.c index 34e01ef..d490b44 100644 --- a/src/windows.c +++ b/src/windows.c @@ -78,6 +78,30 @@ const char *def_fontName[] = }; Cursor TermWin_cursor; /* cursor for vt window */ +void +set_text_property(Window win, char *propname, char *value) +{ + XTextProperty prop; + Atom atom; + + ASSERT(propname != NULL); + + if (value == NULL) { + atom = XInternAtom(Xdisplay, propname, True); + if (atom == None) { + return; + } + XDeleteProperty(Xdisplay, win, atom); + } else { + atom = XInternAtom(Xdisplay, propname, False); + prop.value = value; + prop.encoding = XA_STRING; + prop.format = 8; + prop.nitems = strlen(value); + XSetTextProperty(Xdisplay, win, &prop, atom); + } +} + Pixel get_bottom_shadow_color(Pixel norm_color, const char *type) { diff --git a/src/windows.h b/src/windows.h index 8b58cf3..38a3ef9 100644 --- a/src/windows.h +++ b/src/windows.h @@ -62,6 +62,7 @@ extern const char *rs_mfont[NFONTS]; /************ Function Prototypes ************/ _XFUNCPROTOBEGIN +extern void set_text_property(Window, char *, char *); extern Pixel get_bottom_shadow_color(Pixel, const char *); extern Pixel get_top_shadow_color(Pixel, const char *); extern void Create_Windows(int, char * []);