# HG changeset patch # User Gerd Moellmann # Date 978020555 0 # Node ID 4cdfcac861d7c7e1752d58d4aba329184ce068ac # Parent fb1262412e0e1414a9e480d224d99d4022c4f5b5 (Fx_backspace_delete_keys_p): Check library and server XKB versions. Call XkbFreeKeyboard with 2nd arg 0. diff -r fb1262412e0e -r 4cdfcac861d7 src/xfns.c --- a/src/xfns.c Thu Dec 28 15:16:15 2000 +0000 +++ b/src/xfns.c Thu Dec 28 16:22:35 2000 +0000 @@ -11096,10 +11096,23 @@ struct frame *f = check_x_frame (frame); Display *dpy = FRAME_X_DISPLAY (f); Lisp_Object have_keys; - - have_keys = Qnil; + int major, minor, op, event, error; BLOCK_INPUT; + + /* Check library version in case we're dynamically linked. */ + major = XkbMajorVersion; + minor = XkbMinorVersion; + if (!XkbLibraryVersion (&major, &minor)) + return Qnil; + + /* Check that the server supports XKB. */ + major = XkbMajorVersion; + minor = XkbMinorVersion; + if (!XkbQueryExtension (dpy, &op, &event, &error, &major, &minor)) + return Qnil; + + have_keys = Qnil; kb = XkbGetKeyboard (dpy, XkbAllComponentsMask, XkbUseCoreKbd); if (kb) { @@ -11118,7 +11131,7 @@ backspace_keycode = i; } - XkbFreeKeyboard (kb, XkbAllComponentsMask, True); + XkbFreeKeyboard (kb, 0, True); if (delete_keycode && backspace_keycode