Only in b/xkb: ._xkbInit.c diff -r -C2 a/xkb/xkbInit.c b/xkb/xkbInit.c *** a/xkb/xkbInit.c 2011-02-16 14:07:03.000000000 -0600 --- b/xkb/xkbInit.c 2011-02-16 14:08:08.000000000 -0600 *************** *** 875,879 **** --- 875,900 ---- } return j; + } else if (strncmp(argv[i], "-xkbcompdir", 11)==0) { + if (++i < argc) { + #if !defined(WIN32) && !defined(__CYGWIN__) + if (getuid() != geteuid()) { + LogMessage(X_WARNING, "-xkbdir is not available for setuid X servers\n"); + return -1; + } else + #endif + { + if (strlen(argv[i]) < PATH_MAX) { + XkbBinDirectory = argv[i]; + return 2; + } else { + LogMessage(X_ERROR, "-xkbcompdir pathname too long\n"); + return -1; + } + } + } else { + return -1; + } } + if ((strcmp(argv[i], "-ardelay") == 0) || (strcmp (argv[i], "-ar1") == 0)) { /* -ardelay int */