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(-)
        XSetWindowAttributes attrs;
        Cursor cursor;
        Window parent;
        XSetWindowAttributes attrs;
        Cursor cursor;
        Window parent;
+       int sw, sh, major, minor;
 
        if(!(xw.dpy = XOpenDisplay(NULL)))
                die("Can't open display\n");
 
        if(!(xw.dpy = XOpenDisplay(NULL)))
                die("Can't open display\n");
                        CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask
                        | CWColormap,
                        &attrs);
                        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);
 
        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
        /* input methods */
        xw.xim = XOpenIM(xw.dpy, NULL, NULL, NULL);
        xw.xic = XCreateIC(xw.xim, XNInputStyle, XIMPreeditNothing