JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Call XdbeQueryExtension before of calling any Xdbe function
authorRoberto E. Vargas Caballero <k0ga@shike2.com>
Sun, 16 Sep 2012 08:45:36 +0000 (10:45 +0200)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Sun, 16 Sep 2012 08:45:36 +0000 (10:45 +0200)
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(-)

st.c

diff --git a/st.c b/st.c
index 2e1ac67..b013bca 100644 (file)
--- 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