st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit ba1e9daeef0d7e6e52a9889d8f7eb61d74480cf0
parent a62789788c87425fd90209bad15b324f8dee84da
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Sun, 16 Sep 2012 10:45:36 +0200

Call XdbeQueryExtension before of calling any Xdbe function

XdbeQueryExtension() tells to the caller if the Xdbe extension is present in
the X server, so it should be called for sanity. But like is said in
XdbeQueryExtension(3):

	No other Xdbe functions may be called before this function.  If a
	client violates this rule, the effects of all subsequent Xdbe calls
	that it makes are undefined.

it is mandatory call this function.
---
 st.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Diffstat:
Mst.c | 5+++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/st.c b/st.c
@@ -1970,7 +1970,7 @@ xinit(void) {
     XSetWindowAttributes attrs;
     Cursor cursor;
     Window parent;
-    int sw, sh;
+    int sw, sh, major, minor;
 
     if(!(xw.dpy = XOpenDisplay(NULL)))
         die("Can't open display\n");
@@ -2021,9 +2021,10 @@ xinit(void) {
             CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask
             | CWColormap,
             &attrs);
+    if(!XdbeQueryExtension(xw.dpy, &major, &minor))
+        die("Xdbe extension is not present\n");
     xw.buf = XdbeAllocateBackBufferName(xw.dpy, xw.win, XdbeCopied);
 
-
     /* input methods */
     xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL);
     xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing