This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch 3.6.x in repository nx-libs. from a6cb858 Revert "nx-libs.spec: Starting with Fedora 28 / RHEL 8, SunRPC support is being split out into a separate libraries (libtirpc)." new 9e6f87e Lift xkb to xorg-xserver-7.1/1.1.0 state new 00e3e95 Lift xkb to xorg-xserver-7.1/1.1.0 state - non-functional changes only new 1918bcb Merge branch 'uli42-pr/update_xkb' into 3.6.x new 9822e97 nxagent: rearrange nx options in usage new 809206d os: hide ttyxx option new 5c4777b Merge branch 'uli42-pr/fix_autodpi_in_usage' into 3.6.x The 6 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: nx-X11/programs/Xserver/hw/nxagent/Args.c | 8 +- nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 | 13 +- nx-X11/programs/Xserver/os/utils.c | 6 + nx-X11/programs/Xserver/xkb/Imakefile | 20 +- nx-X11/programs/Xserver/xkb/XKBAlloc.c | 4 - nx-X11/programs/Xserver/xkb/XKBGAlloc.c | 3 - nx-X11/programs/Xserver/xkb/XKBMAlloc.c | 4 +- nx-X11/programs/Xserver/xkb/XKBMisc.c | 2 - nx-X11/programs/Xserver/xkb/ddxConfig.c | 208 ---- nx-X11/programs/Xserver/xkb/ddxKillSrv.c | 18 +- nx-X11/programs/Xserver/xkb/ddxPrivate.c | 24 - nx-X11/programs/Xserver/xkb/ddxVT.c | 20 - nx-X11/programs/Xserver/xkb/maprules.c | 19 +- nx-X11/programs/Xserver/xkb/xkb.c | 2 +- nx-X11/programs/Xserver/xkb/xkbInit.c | 67 +- nx-X11/programs/Xserver/xkb/xkbUtils.c | 6 + nx-X11/programs/Xserver/xkb/xkbconfig.c | 6 + nx-X11/programs/Xserver/xkb/xkberrs.c | 2 - nx-X11/programs/Xserver/xkb/xkbfmisc.c | 484 +------- nx-X11/programs/Xserver/xkb/xkbout.c | 1051 ----------------- nx-X11/programs/Xserver/xkb/xkbtext.c | 1326 ---------------------- nx-X11/programs/Xserver/xkb/xkmread.c | 98 +- 22 files changed, 170 insertions(+), 3221 deletions(-) delete mode 100644 nx-X11/programs/Xserver/xkb/ddxConfig.c delete mode 100644 nx-X11/programs/Xserver/xkb/xkbout.c delete mode 100644 nx-X11/programs/Xserver/xkb/xkbtext.c -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 9e6f87e20d8a9145be9faca0502b23de7809c5e4 Author: Ulrich Sibiller <uli42@gmx.de> Date: Sun Nov 5 02:02:58 2017 +0100 Lift xkb to xorg-xserver-7.1/1.1.0 state In XORG-7_1 xkbconfig.c had been dropped. We must keep this file because it is used by hw/nxagent/Keyboard.c to load the xkb configuration file. Maybe we should move the relevant code to there or drop xkb configuration file support from nxagent. --- nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 | 10 +- nx-X11/programs/Xserver/xkb/Imakefile | 20 +- nx-X11/programs/Xserver/xkb/XKBAlloc.c | 2 - nx-X11/programs/Xserver/xkb/XKBGAlloc.c | 2 - nx-X11/programs/Xserver/xkb/XKBMAlloc.c | 2 +- nx-X11/programs/Xserver/xkb/ddxConfig.c | 208 ---- nx-X11/programs/Xserver/xkb/ddxKillSrv.c | 18 +- nx-X11/programs/Xserver/xkb/ddxPrivate.c | 23 - nx-X11/programs/Xserver/xkb/ddxVT.c | 20 - nx-X11/programs/Xserver/xkb/maprules.c | 16 +- nx-X11/programs/Xserver/xkb/xkb.c | 2 +- nx-X11/programs/Xserver/xkb/xkbInit.c | 65 +- nx-X11/programs/Xserver/xkb/xkbUtils.c | 6 + nx-X11/programs/Xserver/xkb/xkbconfig.c | 6 + nx-X11/programs/Xserver/xkb/xkberrs.c | 2 - nx-X11/programs/Xserver/xkb/xkbfmisc.c | 483 +------- nx-X11/programs/Xserver/xkb/xkbout.c | 1051 ----------------- nx-X11/programs/Xserver/xkb/xkbtext.c | 1326 ---------------------- nx-X11/programs/Xserver/xkb/xkmread.c | 96 +- 19 files changed, 159 insertions(+), 3199 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 index d3069bf..e860857 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 +++ b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 @@ -724,20 +724,14 @@ base directory for keyboard layout files. This option is not available for setuid X servers (i.e., when the X server's real and effective uids are different). .TP 8 -.B \-ar1 \fImilliseconds\fP +.B \-ardelay \fImilliseconds\fP sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts). .TP 8 -.B \-ar2 \fImilliseconds\fP +.B \-arinterval \fImilliseconds\fP sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes). .TP 8 -.B \-noloadxkb -disables loading of an XKB keymap description on server startup. -.TP 8 -.B \-xkbdb \fIfilename\fP -uses \fIfilename\fP for default keyboard keymaps. -.TP 8 .B \-xkbmap \fIfilename\fP loads keyboard description in \fIfilename\fP on server startup. diff --git a/nx-X11/programs/Xserver/xkb/Imakefile b/nx-X11/programs/Xserver/xkb/Imakefile index 89e0422..61ec8ee 100644 --- a/nx-X11/programs/Xserver/xkb/Imakefile +++ b/nx-X11/programs/Xserver/xkb/Imakefile @@ -18,25 +18,20 @@ XKB_DDXDEFS = XkbServerDefines NX_DEFINES = -DNXAGENT_SERVER #endif -#if (defined(XorgServer) && XorgServer) -XF86INCLUDES = -I$(XF86COMSRC) -I$(XF86OSSRC) - XF86_OBJS = xf86KillSrv.o xf86VT.o xf86Private.o -#endif - DDX_SRCS = ddxBeep.c ddxCtrls.c ddxFakeBtn.c ddxFakeMtn.c ddxInit.c \ ddxKeyClick.c ddxKillSrv.c ddxLEDs.c ddxVT.c ddxLoad.c \ - ddxList.c ddxConfig.c ddxDevBtn.c ddxPrivate.c xkbconfig.c + ddxList.c ddxDevBtn.c ddxPrivate.c xkbconfig.c DDX_OBJS = ddxBeep.o ddxCtrls.o ddxFakeBtn.o ddxFakeMtn.o ddxInit.o \ ddxKeyClick.o ddxKillSrv.o ddxLEDs.o ddxVT.o ddxLoad.o \ - ddxList.o ddxConfig.o ddxDevBtn.o ddxPrivate.o xkbconfig.o + ddxList.o ddxDevBtn.o ddxPrivate.o xkbconfig.o SRCS = xkb.c xkbUtils.c xkbEvents.c xkbAccessX.c xkbSwap.c \ xkbLEDs.c xkbInit.c xkbActions.c xkbPrKeyEv.c \ - xkmread.c xkbtext.c xkbfmisc.c xkberrs.c xkbout.c maprules.c \ + xkmread.c xkbfmisc.c xkberrs.c maprules.c \ XKBMisc.c XKBMAlloc.c XKBAlloc.c XKBGAlloc.c \ $(XKBXI_SRCS) $(DDX_SRCS) OBJS = xkb.o xkbUtils.o xkbEvents.o xkbAccessX.o xkbSwap.o \ xkbLEDs.o xkbInit.o xkbActions.o xkbPrKeyEv.o \ - xkmread.o xkbtext.o xkbfmisc.o xkberrs.o xkbout.o maprules.o \ + xkmread.o xkbfmisc.o xkberrs.o maprules.o \ XKBMisc.o XKBMAlloc.o XKBAlloc.o XKBGAlloc.o \ $(XKBXI_OBJS) $(DDX_OBJS) INCLUDES = -I../include -I$(XINCLUDESRC) -I$(EXTINCSRC) -I$(SERVERSRC)/Xext \ @@ -52,13 +47,6 @@ NormalLibraryTarget(xkb,$(OBJS)) LintLibraryTarget(xkb,$(SRCS)) NormalLintTarget($(SRCS)) -#if (defined(XorgServer) && XorgServer) -ObjectFromSpecialSource(xf86KillSrv,ddxKillSrv,-DXF86DDXACTIONS) -ObjectFromSpecialSource(xf86VT,ddxVT,-DXF86DDXACTIONS) -ObjectFromSpecialSource(xf86Private,ddxPrivate,-DXF86DDXACTIONS) -AllTarget($(XF86_OBJS)) -#endif - SpecialCObjectRule(xkbInit,$(ICONFIGFILES),$(XKB_DEFINES)) #if BuildLibraries diff --git a/nx-X11/programs/Xserver/xkb/XKBAlloc.c b/nx-X11/programs/Xserver/xkb/XKBAlloc.c index bc0206f..a8e72ca 100644 --- a/nx-X11/programs/Xserver/xkb/XKBAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBAlloc.c @@ -26,8 +26,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif diff --git a/nx-X11/programs/Xserver/xkb/XKBGAlloc.c b/nx-X11/programs/Xserver/xkb/XKBGAlloc.c index 50e5982..bb46bbd 100644 --- a/nx-X11/programs/Xserver/xkb/XKBGAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBGAlloc.c @@ -26,8 +26,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif diff --git a/nx-X11/programs/Xserver/xkb/XKBMAlloc.c b/nx-X11/programs/Xserver/xkb/XKBMAlloc.c index 66b20b8..04af166 100644 --- a/nx-X11/programs/Xserver/xkb/XKBMAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBMAlloc.c @@ -298,7 +298,7 @@ XkbClientMapPtr map; } } } - if ((!map)||(!map->types)||(!map->num_types<XkbNumRequiredTypes)) { + if ((!map)||(!map->types)||(!(map->num_types<XkbNumRequiredTypes))) { tmp= XkbNumRequiredTypes+1; if (XkbAllocClientMap(xkb,XkbKeyTypesMask,tmp)!=Success) return NULL; diff --git a/nx-X11/programs/Xserver/xkb/ddxConfig.c b/nx-X11/programs/Xserver/xkb/ddxConfig.c deleted file mode 100644 index 0046b85..0000000 --- a/nx-X11/programs/Xserver/xkb/ddxConfig.c +++ /dev/null @@ -1,208 +0,0 @@ -/************************************************************ -Copyright (c) 1995 by Silicon Graphics Computer Systems, Inc. - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright -notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting -documentation, and that the name of Silicon Graphics not be -used in advertising or publicity pertaining to distribution -of the software without specific prior written permission. -Silicon Graphics makes no representation about the suitability -of this software for any purpose. It is provided "as is" -without any express or implied warranty. - -SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON -GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL -DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - -********************************************************/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#endif - -#include <stdio.h> -#include <nx-X11/X.h> -#include <nx-X11/Xproto.h> -#include <nx-X11/keysym.h> -#include "inputstr.h" -#include "scrnintstr.h" -#include "windowstr.h" -#include "os.h" -#include <xkbsrv.h> -#include <nx-X11/extensions/XKBconfig.h> - -Bool -XkbDDXApplyConfig(XPointer cfg_in,XkbSrvInfoPtr info) -{ -XkbConfigRtrnPtr rtrn; -XkbDescPtr xkb; -Bool ok; -XkbEventCauseRec cause; - - xkb= info->desc; - rtrn= (XkbConfigRtrnPtr)cfg_in; - if (rtrn==NULL) - return True; - ok= XkbCFApplyRtrnValues(rtrn,XkbCFDflts,xkb); - if (rtrn->initial_mods.replace) { - info->state.locked_mods= rtrn->initial_mods.mods; - } - else { - info->state.locked_mods|= rtrn->initial_mods.mods; - if (rtrn->initial_mods.mods_clear) - info->state.locked_mods&= ~rtrn->initial_mods.mods_clear; - } - XkbComputeDerivedState(info); - XkbSetCauseUnknown(&cause); - XkbUpdateIndicators(info->device,XkbAllIndicatorsMask,False,NULL,&cause); - if (info->device && info->device->kbdfeed) { - DeviceIntPtr dev; - KeybdCtrl newCtrl; - dev= info->device; - newCtrl= dev->kbdfeed->ctrl; - if (rtrn->click_volume>=0) - newCtrl.click= rtrn->click_volume; - if (rtrn->bell_volume>=0) - newCtrl.bell= rtrn->bell_volume; - if (rtrn->bell_pitch>0) - newCtrl.bell_pitch= rtrn->bell_pitch; - if (rtrn->bell_duration>0) - newCtrl.bell_duration= rtrn->bell_duration; - if (dev->kbdfeed->CtrlProc) - (*dev->kbdfeed->CtrlProc)(dev,&newCtrl); - } - XkbCFFreeRtrn(rtrn,XkbCFDflts,xkb); - return ok; -} - -XPointer -XkbDDXPreloadConfig( char ** rulesRtrn, - XkbRF_VarDefsPtr defs, - XkbComponentNamesPtr names, - DeviceIntPtr dev) -{ -char buf[PATH_MAX]; -char * dName; -FILE * file; -XkbConfigRtrnPtr rtrn; - -#if defined(MetroLink) - if (dev && dev->name) - dName= dev->name; - else dName= ""; - /* It doesn't appear that XkbBaseDirectory could ever get set to NULL */ - sprintf(buf,"%s/X%s-config%s%s",XkbBaseDirectory,display, - (dName[0]?".":""),dName); -#else - if (dev && dev->name) - dName= dev->name; - else dName= ""; - if (XkbBaseDirectory!=NULL) { - if (strlen(XkbBaseDirectory)+strlen(display) - +strlen(dName)+10+(dName[0]?1:0) > PATH_MAX) - { -#ifdef DEBUG - ErrorF("path exceeds max length\n"); -#endif - return NULL; - } - sprintf(buf,"%s/X%s-config%s%s",XkbBaseDirectory,display, - (dName[0]?".":""),dName); - } - else { - if (strlen(display)+strlen(dName)+10+(dName[0]?1:0) > PATH_MAX) - { -#ifdef DEBUG - ErrorF("path exceeds max length\n"); -#endif - return NULL; - } - sprintf(buf,"X%s-config%s%s",display,(dName[0]?".":""),dName); - } -#endif -#ifdef DEBUG - ErrorF("Looking for keyboard configuration in %s...",buf); -#endif - file= fopen(buf,"r"); - if (file==NULL) { -#ifdef DEBUG - ErrorF("file not found\n"); -#endif - return NULL; - } - rtrn= _XkbTypedCalloc(1,XkbConfigRtrnRec); - if (rtrn!=NULL) { - if (!XkbCFParse(file,XkbCFDflts,NULL,rtrn)) { -#ifdef DEBUG - ErrorF("error\n"); -#endif - ErrorF("Error parsing config file: "); - XkbCFReportError(stderr,buf,rtrn->error,rtrn->line); - _XkbFree(rtrn); - fclose(file); - return NULL; - } -#ifdef DEBUG - ErrorF("found it\n"); -#endif - if (rtrn->rules_file) { - *rulesRtrn= rtrn->rules_file; - rtrn->rules_file= NULL; - } - if (rtrn->model) { - defs->model= rtrn->model; - rtrn->model= NULL; - } - if (rtrn->layout) { - defs->layout= rtrn->layout; - rtrn->layout= NULL; - } - if (rtrn->variant) { - defs->variant= rtrn->variant; - rtrn->variant= NULL; - } - if (rtrn->options) { - defs->options= rtrn->options; - rtrn->options= NULL; - } - XkbSetRulesUsed(defs); - - if (rtrn->keycodes!=NULL) { - if (names->keycodes) _XkbFree(names->keycodes); - names->keycodes= rtrn->keycodes; - rtrn->keycodes= NULL; - } - if (rtrn->geometry!=NULL) { - if (names->geometry) _XkbFree(names->geometry); - names->geometry= rtrn->geometry; - rtrn->geometry= NULL; - } - if (rtrn->symbols!=NULL) { - if (rtrn->phys_symbols==NULL) - rtrn->phys_symbols= Xstrdup(names->symbols); - if (names->symbols) _XkbFree(names->symbols); - names->symbols= rtrn->symbols; - rtrn->symbols= NULL; - } - if (rtrn->types!=NULL) { - if (names->types) _XkbFree(names->types); - names->types= rtrn->types; - rtrn->types= NULL; - } - if (rtrn->compat!=NULL) { - if (names->compat) _XkbFree(names->compat); - names->compat= rtrn->compat; - rtrn->compat= NULL; - } - } - fclose(file); - return (XPointer)rtrn; -} diff --git a/nx-X11/programs/Xserver/xkb/ddxKillSrv.c b/nx-X11/programs/Xserver/xkb/ddxKillSrv.c index b61c452..c581d42 100644 --- a/nx-X11/programs/Xserver/xkb/ddxKillSrv.c +++ b/nx-X11/programs/Xserver/xkb/ddxKillSrv.c @@ -42,25 +42,11 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <xkbsrv.h> #include <nx-X11/extensions/XI.h> -#ifdef XF86DDXACTIONS -#include "xf86.h" -#endif - int XkbDDXTerminateServer(DeviceIntPtr dev,KeyCode key,XkbAction *act) { -#ifdef NXAGENT_SERVER - - return 0; - -#else - -#ifdef XF86DDXACTIONS - xf86ProcessActionEvent(ACTION_TERMINATE, NULL); -#else +#ifndef NXAGENT_SERVER GiveUp(1); -#endif - return 0; - #endif /* NXAGENT_SERVER */ + return 0; } diff --git a/nx-X11/programs/Xserver/xkb/ddxPrivate.c b/nx-X11/programs/Xserver/xkb/ddxPrivate.c index 8fdc8c9..92dc6a0 100644 --- a/nx-X11/programs/Xserver/xkb/ddxPrivate.c +++ b/nx-X11/programs/Xserver/xkb/ddxPrivate.c @@ -12,32 +12,9 @@ #include "windowstr.h" #include <xkbsrv.h> -#ifdef XF86DDXACTIONS -#include "xf86.h" -#endif - int XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act) { -#ifdef XF86DDXACTIONS - XkbAnyAction *xf86act = &(act->any); - char msgbuf[XkbAnyActionDataSize+1]; - - if (xf86act->type == XkbSA_XFree86Private) { - memcpy(msgbuf, xf86act->data, XkbAnyActionDataSize); - msgbuf[XkbAnyActionDataSize]= '\0'; - if (_XkbStrCaseCmp(msgbuf, "-vmode")==0) - xf86ProcessActionEvent(ACTION_PREV_MODE, NULL); - else if (_XkbStrCaseCmp(msgbuf, "+vmode")==0) - xf86ProcessActionEvent(ACTION_NEXT_MODE, NULL); - else if (_XkbStrCaseCmp(msgbuf, "ungrab")==0) - xf86ProcessActionEvent(ACTION_DISABLEGRAB, NULL); - else if (_XkbStrCaseCmp(msgbuf, "clsgrb")==0) - xf86ProcessActionEvent(ACTION_CLOSECLIENT, NULL); - else - xf86ProcessActionEvent(ACTION_MESSAGE, (void *) msgbuf); - } -#endif return 0; } diff --git a/nx-X11/programs/Xserver/xkb/ddxVT.c b/nx-X11/programs/Xserver/xkb/ddxVT.c index d01c653..6c61de0 100644 --- a/nx-X11/programs/Xserver/xkb/ddxVT.c +++ b/nx-X11/programs/Xserver/xkb/ddxVT.c @@ -42,28 +42,8 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <xkbsrv.h> #include <nx-X11/extensions/XI.h> -#ifdef XF86DDXACTIONS -#include "xf86.h" -#endif - int XkbDDXSwitchScreen(DeviceIntPtr dev,KeyCode key,XkbAction *act) { -#ifdef XF86DDXACTIONS - { - int scrnnum = XkbSAScreen(&act->screen); - - if (act->screen.flags & XkbSA_SwitchApplication) { - if (act->screen.flags & XkbSA_SwitchAbsolute) - xf86ProcessActionEvent(ACTION_SWITCHSCREEN,(void *) &scrnnum); - else { - if (scrnnum < 0) - xf86ProcessActionEvent(ACTION_SWITCHSCREEN_PREV,NULL); - else - xf86ProcessActionEvent(ACTION_SWITCHSCREEN_NEXT,NULL); - } - } - } -#endif return 1; } diff --git a/nx-X11/programs/Xserver/xkb/maprules.c b/nx-X11/programs/Xserver/xkb/maprules.c index de52aa4..ccafcee 100644 --- a/nx-X11/programs/Xserver/xkb/maprules.c +++ b/nx-X11/programs/Xserver/xkb/maprules.c @@ -26,8 +26,6 @@ #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif #include <stdio.h> @@ -62,6 +60,12 @@ #define PR_DEBUG2(s,a,b) #endif +#ifdef NEED_STRCASECMP +extern int _XkbStrCaseCmp(char *s1, char *s2); +#else +#define _XkbStrCaseCmp strcasecmp +#endif + /***====================================================================***/ #define DFLT_LINE_SIZE 128 @@ -1086,13 +1090,13 @@ int len,headingtype,extra_ndx = 0; for ( ; GetInputLine(file,&line,False); line.num_line= 0) { if (line.line[0]=='!') { tok = strtok(&(line.line[1]), " \t"); - if (!_XkbStrCaseCmp(tok,"model")) + if (_XkbStrCaseCmp(tok,"model") == 0) headingtype = HEAD_MODEL; - else if (!_XkbStrCaseCmp(tok,"layout")) + else if (_XkbStrCaseCmp(tok,"layout") == 0) headingtype = HEAD_LAYOUT; - else if (!_XkbStrCaseCmp(tok,"variant")) + else if (_XkbStrCaseCmp(tok,"variant") == 0) headingtype = HEAD_VARIANT; - else if (!_XkbStrCaseCmp(tok,"option")) + else if (_XkbStrCaseCmp(tok,"option") == 0) headingtype = HEAD_OPTION; else { int i; diff --git a/nx-X11/programs/Xserver/xkb/xkb.c b/nx-X11/programs/Xserver/xkb/xkb.c index 10df6c3..8a96ec1 100644 --- a/nx-X11/programs/Xserver/xkb/xkb.c +++ b/nx-X11/programs/Xserver/xkb/xkb.c @@ -1246,7 +1246,7 @@ XkbSizeVirtualModMap(XkbDescPtr xkb,xkbGetMapReply *rep) rep->totalVModMapKeys= 0; return 0; } - for (nRtrn=i=0;i<rep->nVModMapKeys;i++) { + for (nRtrn=i=0;i<rep->nVModMapKeys-1;i++) { if (xkb->server->vmodmap[i+rep->firstVModMapKey]!=0) nRtrn++; } diff --git a/nx-X11/programs/Xserver/xkb/xkbInit.c b/nx-X11/programs/Xserver/xkb/xkbInit.c index 4553cce..443265d 100644 --- a/nx-X11/programs/Xserver/xkb/xkbInit.c +++ b/nx-X11/programs/Xserver/xkb/xkbInit.c @@ -118,8 +118,6 @@ char * XkbBinDirectory= XKB_BIN_DIRECTORY; char * XkbInitialMap= NULL; int XkbWantAccessX= 0; static XkbFileInfo * _XkbInitFileInfo= NULL; -char * XkbDB= NULL; -int XkbAutoLoad= 1; static Bool rulesDefined= False; static char * XkbRulesFile= NULL; @@ -505,7 +503,7 @@ XkbEventCauseRec cause; file.file=NULL; bzero(&file.xkbinfo,sizeof(XkbFileInfo)); bzero(&changes,sizeof(XkbChangesRec)); - if (XkbAutoLoad && (XkbInitialMap!=NULL)) { + if (XkbInitialMap!=NULL) { if ((file.file=XkbDDXOpenConfigFile(XkbInitialMap,NULL,0))!=NULL) { XkmReadFile(file.file,0,XkmKeymapLegal,&file.xkbinfo); if (file.xkbinfo.xkb==NULL) { @@ -638,8 +636,6 @@ KeySymsRec tmpSyms,*pSyms; CARD8 tmpMods[XkbMaxLegalKeyCode+1],*pMods; char name[PATH_MAX],*rules; Bool ok=False; -XPointer config; -XkbComponentNamesRec cfgNames; XkbRF_VarDefsRec defs; if ((dev->key!=NULL)||(dev->kbdfeed!=NULL)) @@ -647,9 +643,7 @@ XkbRF_VarDefsRec defs; pSyms= pSymsIn; pMods= pModsIn; bzero(&defs,sizeof(XkbRF_VarDefsRec)); - bzero(&cfgNames,sizeof(XkbComponentNamesRec)); rules= XkbGetRulesDflts(&defs); - config= XkbDDXPreloadConfig(&rules,&defs,&cfgNames,dev); /* * The strings are duplicated because it is not guaranteed that @@ -702,30 +696,6 @@ XkbRF_VarDefsRec defs; XkbSetRulesUsed(&defs); } } - if (cfgNames.keymap){ - if (names->keymap) _XkbFree(names->keymap); - names->keymap= cfgNames.keymap; - } - if (cfgNames.keycodes){ - if (names->keycodes) _XkbFree(names->keycodes); - names->keycodes= cfgNames.keycodes; - } - if (cfgNames.types) { - if (names->types) _XkbFree(names->types); - names->types= cfgNames.types; - } - if (cfgNames.compat) { - if (names->compat) _XkbFree(names->compat); - names->compat= cfgNames.compat; - } - if (cfgNames.symbols){ - if (names->symbols) _XkbFree(names->symbols); - names->symbols= cfgNames.symbols; - } - if (cfgNames.geometry) { - if (names->geometry) _XkbFree(names->geometry); - names->geometry= cfgNames.geometry; - } if (names->keymap) { XkbComponentNamesRec tmpNames; @@ -778,8 +748,6 @@ XkbRF_VarDefsRec defs; LogMessage(X_WARNING, "Couldn't load XKB keymap, falling back to pre-XKB keymap\n"); } ok= InitKeyboardDeviceStruct((DevicePtr)dev,pSyms,pMods,bellProc,ctrlProc); - if ((config!=NULL)&&(dev && dev->key && dev->key->xkbInfo)) - XkbDDXApplyConfig(config,dev->key->xkbInfo); _XkbInitFileInfo= NULL; if ((pSyms==&tmpSyms)&&(pSyms->map!=NULL)) { _XkbFree(pSyms->map); @@ -960,24 +928,6 @@ XkbProcessArguments(int argc,char *argv[],int i) return -1; } } - else if (strncmp(argv[i], "-xkbdb", 7) == 0) { - if(++i < argc) { - if (strlen(argv[i]) < PATH_MAX) { - XkbDB= argv[i]; - return 2; - } else { - LogMessage(X_ERROR, "-xkbdb pathname too long\n"); - return -1; - } - } - else { - return -1; - } - } - else if (strncmp(argv[i], "-noloadxkb", 7) == 0) { - XkbAutoLoad= 0; - return 1; - } else if ((strncmp(argv[i],"-accessx",8)==0)|| (strncmp(argv[i],"+accessx",8)==0)) { int j=1; @@ -1016,12 +966,14 @@ XkbProcessArguments(int argc,char *argv[],int i) } return j; } - if (strcmp (argv[i], "-ar1") == 0) { /* -ar1 int */ + if ((strcmp(argv[i], "-ardelay") == 0) || + (strcmp (argv[i], "-ar1") == 0)) { /* -ardelay int */ if (++i >= argc) UseMsg (); XkbDfltRepeatDelay = (long)atoi(argv[i]); return 2; } - if (strcmp (argv[i], "-ar2") == 0) { /* -ar2 int */ + if ((strcmp(argv[i], "-arinterval") == 0) || + (strcmp (argv[i], "-ar2") == 0)) { /* -arinterval int */ if (++i >= argc) UseMsg (); XkbDfltRepeatInterval = (long)atoi(argv[i]); return 2; @@ -1032,14 +984,11 @@ XkbProcessArguments(int argc,char *argv[],int i) void XkbUseMsg(void) { - ErrorF("The X Keyboard Extension adds the following arguments:\n"); ErrorF("-kb disable the X Keyboard Extension\n"); ErrorF("+kb enable the X Keyboard Extension\n"); ErrorF("[+-]accessx [ timeout [ timeout_mask [ feedback [ options_mask] ] ] ]\n"); ErrorF(" enable/disable accessx key sequences\n"); - ErrorF("-ar1 set XKB autorepeat delay\n"); - ErrorF("-ar2 set XKB autorepeat interval\n"); - ErrorF("-noloadxkb don't load XKB keymap description\n"); - ErrorF("-xkbdb file that contains default XKB keymaps\n"); + ErrorF("-ardelay set XKB autorepeat delay\n"); + ErrorF("-arinterval set XKB autorepeat interval\n"); ErrorF("-xkbmap XKB keyboard description to load on startup\n"); } diff --git a/nx-X11/programs/Xserver/xkb/xkbUtils.c b/nx-X11/programs/Xserver/xkb/xkbUtils.c index f4b7db3..4adcc87 100644 --- a/nx-X11/programs/Xserver/xkb/xkbUtils.c +++ b/nx-X11/programs/Xserver/xkb/xkbUtils.c @@ -674,6 +674,9 @@ CARD16 grp_mask; XkbStatePtr state= &xkbi->state; XkbCompatMapPtr map; + if (!state || !xkbi->desc || !xkbi->desc->ctrls || !xkbi->desc->compat) + return; + map= xkbi->desc->compat; grp_mask= map->groups[state->group].mask; state->compat_state = state->mods|grp_mask; @@ -733,6 +736,9 @@ XkbStatePtr state= &xkbi->state; XkbControlsPtr ctrls= xkbi->desc->ctrls; unsigned char grp; + if (!state || !ctrls) + return; + state->mods= (state->base_mods|state->latched_mods); state->mods|= state->locked_mods; state->lookup_mods= state->mods&(~ctrls->internal.mask); diff --git a/nx-X11/programs/Xserver/xkb/xkbconfig.c b/nx-X11/programs/Xserver/xkb/xkbconfig.c index 5fcd594..0e320ca 100644 --- a/nx-X11/programs/Xserver/xkb/xkbconfig.c +++ b/nx-X11/programs/Xserver/xkb/xkbconfig.c @@ -49,6 +49,12 @@ #include <nx-X11/extensions/XKBconfig.h> +#ifdef NEED_STRCASECMP +extern int _XkbStrCaseCmp(char *s1, char *s2); +#else +#define _XkbStrCaseCmp strcasecmp +#endif + /***====================================================================***/ #define XKBCF_MAX_STR_LEN 100 diff --git a/nx-X11/programs/Xserver/xkb/xkberrs.c b/nx-X11/programs/Xserver/xkb/xkberrs.c index b14f36d..095d573 100644 --- a/nx-X11/programs/Xserver/xkb/xkberrs.c +++ b/nx-X11/programs/Xserver/xkb/xkberrs.c @@ -26,8 +26,6 @@ #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif #include <stdio.h> diff --git a/nx-X11/programs/Xserver/xkb/xkbfmisc.c b/nx-X11/programs/Xserver/xkb/xkbfmisc.c index 6545a28..b45e4d9 100644 --- a/nx-X11/programs/Xserver/xkb/xkbfmisc.c +++ b/nx-X11/programs/Xserver/xkb/xkbfmisc.c @@ -26,8 +26,6 @@ #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif #include <stdio.h> @@ -49,214 +47,18 @@ #include "xkbgeom.h" #include "xkb.h" - -unsigned -_XkbKSCheckCase(KeySym ks) -{ -unsigned set,rtrn; - - set= (ks & (~0xff)) >> 8; - rtrn= 0; - switch (set) { - case 0: /* latin 1 */ - if (((ks>=XK_A)&&(ks<=XK_Z))|| - ((ks>=XK_Agrave)&&(ks<=XK_THORN)&&(ks!=XK_multiply))) { - rtrn|= _XkbKSUpper; - } - if (((ks>=XK_a)&&(ks<=XK_z))|| - ((ks>=XK_agrave)&&(ks<=XK_ydiaeresis))) { - rtrn|= _XkbKSLower; - } - break; - case 1: /* latin 2 */ - if (((ks>=XK_Aogonek)&&(ks<=XK_Zabovedot)&&(ks!=XK_breve))|| - ((ks>=XK_Racute)&&(ks<=XK_Tcedilla))) { - rtrn|= _XkbKSUpper; - } - if (((ks>=XK_aogonek)&&(ks<=XK_zabovedot)&&(ks!=XK_caron))|| - ((ks>=XK_racute)&&(ks<=XK_tcedilla))) { - rtrn|= _XkbKSLower; - } - break; - case 2: /* latin 3 */ - if (((ks>=XK_Hstroke)&&(ks<=XK_Jcircumflex))|| - ((ks>=XK_Cabovedot)&&(ks<=XK_Scircumflex))) { - rtrn|= _XkbKSUpper; - } - if (((ks>=XK_hstroke)&&(ks<=XK_jcircumflex))|| - ((ks>=XK_cabovedot)&&(ks<=XK_scircumflex))) { - rtrn|= _XkbKSLower; - } - break; - case 3: /* latin 4 */ - if (((ks>=XK_Rcedilla)&&(ks<=XK_Tslash))|| - (ks==XK_ENG)|| - ((ks>=XK_Amacron)&&(ks<=XK_Umacron))) { - rtrn|= _XkbKSUpper; - } - if (((ks>=XK_rcedilla)&&(ks<=XK_tslash))|| - (ks==XK_eng)|| - ((ks>=XK_amacron)&&(ks<=XK_umacron))) { - rtrn|= _XkbKSLower; - } - break; - case 18: /* latin 8 */ - if ((ks==XK_Babovedot)|| - ((ks>=XK_Dabovedot)&&(ks<=XK_Wacute))|| - ((ks>=XK_Ygrave)&&(ks<=XK_Fabovedot))|| - (ks==XK_Mabovedot)|| - (ks==XK_Pabovedot)|| - (ks==XK_Sabovedot)|| - (ks==XK_Wdiaeresis)|| - ((ks>=XK_Wcircumflex)&&(ks<=XK_Ycircumflex))) { - rtrn|= _XkbKSUpper; - } - if ((ks==XK_babovedot)|| - (ks==XK_dabovedot)|| - (ks==XK_fabovedot)|| - (ks==XK_mabovedot)|| - ((ks>=XK_wgrave)&&(ks<=XK_wacute))|| - (ks==XK_ygrave)|| - ((ks>=XK_wdiaeresis)&&(ks<=XK_ycircumflex))) { - rtrn|= _XkbKSLower; - } - break; - case 19: /* latin 9 */ - if ((ks==XK_OE)||(ks==XK_Ydiaeresis)) { - rtrn|= _XkbKSUpper; - } - if (ks==XK_oe) { - rtrn|= _XkbKSLower; - } - break; - } - return rtrn; -} - -/***===================================================================***/ - -int -_XkbStrCaseCmp(char *str1,char *str2) -{ - char buf1[512],buf2[512]; - char c, *s; - register int n; - - for (n=0, s = buf1; (c = *str1++); n++) { - if (isupper(c)) - c = tolower(c); - if (n>510) - break; - *s++ = c; - } - *s = '\0'; - for (n=0, s = buf2; (c = *str2++); n++) { - if (isupper(c)) - c = tolower(c); - if (n>510) - break; - *s++ = c; - } - *s = '\0'; - return (strcmp(buf1, buf2)); -} - -/***===================================================================***/ - -Bool -XkbLookupGroupAndLevel( XkbDescPtr xkb, - int key, - int * mods_inout, - int * grp_inout, - int * lvl_rtrn) -{ -int nG,eG; - - if ((!xkb)||(!XkbKeycodeInRange(xkb,key))||(!grp_inout)) - return False; - - nG= XkbKeyNumGroups(xkb,key); - eG= *grp_inout; - - if ( nG==0 ) { - *grp_inout= 0; - if (lvl_rtrn!=NULL) - *lvl_rtrn= 0; - return False; - } - else if ( nG==1 ) { - eG= 0; - } - else if ( eG>=nG ) { - unsigned gI= XkbKeyGroupInfo(xkb,key); - switch (XkbOutOfRangeGroupAction(gI)) { - default: - eG %= nG; - break; - case XkbClampIntoRange: - eG = nG-1; - break; - case XkbRedirectIntoRange: - eG = XkbOutOfRangeGroupNumber(gI); - if (eG>=nG) - eG= 0; - break; - } - } - *grp_inout= eG; - if (mods_inout!=NULL) { - XkbKeyTypePtr type; - int preserve; - - type = XkbKeyKeyType(xkb,key,eG); - if (lvl_rtrn!=NULL) - *lvl_rtrn= 0; - preserve= 0; - if (type->map) { /* find the shift level */ - register int i; - register XkbKTMapEntryPtr entry; - for (i=0,entry=type->map;i<type->map_count;i++,entry++) { - if ((entry->active)&& - (((*mods_inout)&type->mods.mask)==entry->mods.mask)){ - if (lvl_rtrn!=NULL) - *lvl_rtrn= entry->level; - if (type->preserve) - preserve= type->preserve[i].mask; - break; - } - } - } - (*mods_inout)&= ~(type->mods.mask&(~preserve)); - } - return True; -} - /***===================================================================***/ static Bool XkbWriteSectionFromName(FILE *file,char *sectionName,char *name) { fprintf(file," xkb_%-20s { include \"%s\" };\n",sectionName,name); + ErrorF(" xkb_%-20s { include \"%s\" };\n",sectionName,name); return True; } #define NEED_DESC(n) ((!n)||((n)[0]=='+')||((n)[0]=='|')||(strchr((n),'%'))) #define COMPLETE(n) ((n)&&(!NEED_DESC(n))) - -/* ARGSUSED */ -static void -_AddIncl( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - int index, - void * priv) -{ - if ((priv)&&(strcmp((char *)priv,"%")!=0)) - fprintf(file," include \"%s\"\n",(char *)priv); - return; -} - Bool XkbWriteXKBKeymapForNames( FILE * file, XkbComponentNamesPtr names, @@ -265,230 +67,29 @@ XkbWriteXKBKeymapForNames( FILE * file, unsigned want, unsigned need) { -char * name; -const char * tmp; -unsigned complete; -XkbNamesPtr old_names; -int multi_section; -unsigned wantNames,wantConfig,wantDflts; -XkbFileInfo finfo; - - bzero(&finfo,sizeof(XkbFileInfo)); - - complete= 0; - if ((name=names->keymap)==NULL) name= "default"; - if (COMPLETE(names->keycodes)) complete|= XkmKeyNamesMask; - if (COMPLETE(names->types)) complete|= XkmTypesMask; - if (COMPLETE(names->compat)) complete|= XkmCompatMapMask; - if (COMPLETE(names->symbols)) complete|= XkmSymbolsMask; - if (COMPLETE(names->geometry)) complete|= XkmGeometryMask; - want|= (complete|need); - if (want&XkmSymbolsMask) - want|= XkmKeyNamesMask|XkmTypesMask; - - if (want==0) - return False; - - if (xkb!=NULL) { - old_names= xkb->names; - finfo.type= 0; - finfo.defined= 0; - finfo.xkb= xkb; - if (!XkbDetermineFileType(&finfo,XkbXKBFile,NULL)) - return False; - } - else old_names= NULL; - - wantConfig= want&(~complete); - if (xkb!=NULL) { - if (wantConfig&XkmTypesMask) { - if ((!xkb->map) || (xkb->map->num_types<XkbNumRequiredTypes)) - wantConfig&= ~XkmTypesMask; - } - if (wantConfig&XkmCompatMapMask) { - if ((!xkb->compat) || (xkb->compat->num_si<1)) - wantConfig&= ~XkmCompatMapMask; - } - if (wantConfig&XkmSymbolsMask) { - if ((!xkb->map) || (!xkb->map->key_sym_map)) - wantConfig&= ~XkmSymbolsMask; - } - if (wantConfig&XkmIndicatorsMask) { - if (!xkb->indicators) - wantConfig&= ~XkmIndicatorsMask; - } - if (wantConfig&XkmKeyNamesMask) { - if ((!xkb->names)||(!xkb->names->keys)) - wantConfig&= ~XkmKeyNamesMask; - } - if ((wantConfig&XkmGeometryMask)&&(!xkb->geom)) - wantConfig&= ~XkmGeometryMask; - } - else { - wantConfig= 0; - } - complete|= wantConfig; - - wantDflts= 0; - wantNames= want&(~complete); - if ((xkb!=NULL) && (old_names!=NULL)) { - if (wantNames&XkmTypesMask) { - if (old_names->types!=None) { - tmp= NameForAtom(old_names->types); - names->types= Xstrdup(tmp); - } - else { - wantDflts|= XkmTypesMask; - } - complete|= XkmTypesMask; - } - if (wantNames&XkmCompatMapMask) { - if (old_names->compat!=None) { - tmp= NameForAtom(old_names->compat); - names->compat= Xstrdup(tmp); - } - else wantDflts|= XkmCompatMapMask; - complete|= XkmCompatMapMask; - } - if (wantNames&XkmSymbolsMask) { - if (old_names->symbols==None) - return False; - tmp= NameForAtom(old_names->symbols); - names->symbols= Xstrdup(tmp); - complete|= XkmSymbolsMask; - } - if (wantNames&XkmKeyNamesMask) { - if (old_names->keycodes!=None) { - tmp= NameForAtom(old_names->keycodes); - names->keycodes= Xstrdup(tmp); - } - else wantDflts|= XkmKeyNamesMask; - complete|= XkmKeyNamesMask; - } - if (wantNames&XkmGeometryMask) { - if (old_names->geometry==None) - return False; - tmp= NameForAtom(old_names->geometry); - names->geometry= Xstrdup(tmp); - complete|= XkmGeometryMask; - wantNames&= ~XkmGeometryMask; - } - } - if (complete&XkmCompatMapMask) - complete|= XkmIndicatorsMask|XkmVirtualModsMask; - else if (complete&(XkmSymbolsMask|XkmTypesMask)) - complete|= XkmVirtualModsMask; - if (need & (~complete)) - return False; - if ((complete&XkmSymbolsMask)&&((XkmKeyNamesMask|XkmTypesMask)&(~complete))) - return False; - - multi_section= 1; - if (((complete&XkmKeymapRequired)==XkmKeymapRequired)&& - ((complete&(~XkmKeymapLegal))==0)) { - fprintf(file,"xkb_keymap \"%s\" {\n",name); - } - else if (((complete&XkmSemanticsRequired)==XkmSemanticsRequired)&& - ((complete&(~XkmSemanticsLegal))==0)) { - fprintf(file,"xkb_semantics \"%s\" {\n",name); - } - else if (((complete&XkmLayoutRequired)==XkmLayoutRequired)&& - ((complete&(~XkmLayoutLegal))==0)) { - fprintf(file,"xkb_layout \"%s\" {\n",name); - } - else if (XkmSingleSection(complete&(~XkmVirtualModsMask))) { - multi_section= 0; - } - else { - return False; - } - - wantNames= complete&(~(wantConfig|wantDflts)); - name= names->keycodes; - if (wantConfig&XkmKeyNamesMask) - XkbWriteXKBKeycodes(file,&finfo,False,False,_AddIncl,name); - else if (wantDflts&XkmKeyNamesMask) - fprintf(stderr,"Default symbols not implemented yet!\n"); - else if (wantNames&XkmKeyNamesMask) - XkbWriteSectionFromName(file,"keycodes",name); - - name= names->types; - if (wantConfig&XkmTypesMask) - XkbWriteXKBKeyTypes(file,&finfo,False,False,_AddIncl,name); - else if (wantDflts&XkmTypesMask) - fprintf(stderr,"Default types not implemented yet!\n"); - else if (wantNames&XkmTypesMask) - XkbWriteSectionFromName(file,"types",name); - - name= names->compat; - if (wantConfig&XkmCompatMapMask) - XkbWriteXKBCompatMap(file,&finfo,False,False,_AddIncl,name); - else if (wantDflts&XkmCompatMapMask) - fprintf(stderr,"Default interps not implemented yet!\n"); - else if (wantNames&XkmCompatMapMask) - XkbWriteSectionFromName(file,"compatibility",name); + if (!names || (!names->keycodes && !names->types && !names->compat && + !names->symbols && !names->geometry)) + return False; + + fprintf(file, "xkb_keymap \"%s\" {\n", names->keymap ? names->keymap : + "default"); + + if (names->keycodes) + XkbWriteSectionFromName(file, "keycodes", names->keycodes); + if (names->types) + XkbWriteSectionFromName(file, "types", names->types); + if (names->compat) + XkbWriteSectionFromName(file, "compatibility", names->compat); + if (names->symbols) + XkbWriteSectionFromName(file, "symbols", names->symbols); + if (names->geometry) + XkbWriteSectionFromName(file, "geometry", names->geometry); + + fprintf(file,"};\n"); - name= names->symbols; - if (wantConfig&XkmSymbolsMask) - XkbWriteXKBSymbols(file,&finfo,False,False,_AddIncl,name); - else if (wantNames&XkmSymbolsMask) - XkbWriteSectionFromName(file,"symbols",name); - - name= names->geometry; - if (wantConfig&XkmGeometryMask) - XkbWriteXKBGeometry(file,&finfo,False,False,_AddIncl,name); - else if (wantNames&XkmGeometryMask) - XkbWriteSectionFromName(file,"geometry",name); - - if (multi_section) - fprintf(file,"};\n"); return True; } -/***====================================================================***/ - -/*ARGSUSED*/ -Status -XkbMergeFile(XkbDescPtr xkb,XkbFileInfo finfo) -{ - return BadImplementation; -} - -/***====================================================================***/ - -int -XkbFindKeycodeByName(XkbDescPtr xkb,char *name,Bool use_aliases) -{ -register int i; - - if ((!xkb)||(!xkb->names)||(!xkb->names->keys)) - return 0; - for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) { - if (strncmp(xkb->names->keys[i].name,name,XkbKeyNameLength)==0) - return i; - } - if (!use_aliases) - return 0; - if (xkb->geom && xkb->geom->key_aliases) { - XkbKeyAliasPtr a; - a= xkb->geom->key_aliases; - for (i=0;i<xkb->geom->num_key_aliases;i++,a++) { - if (strncmp(name,a->alias,XkbKeyNameLength)==0) - return XkbFindKeycodeByName(xkb,a->real,False); - } - } - if (xkb->names && xkb->names->key_aliases) { - XkbKeyAliasPtr a; - a= xkb->names->key_aliases; - for (i=0;i<xkb->names->num_key_aliases;i++,a++) { - if (strncmp(name,a->alias,XkbKeyNameLength)==0) - return XkbFindKeycodeByName(xkb,a->real,False); - } - } - return 0; -} - - unsigned XkbConvertGetByNameComponents(Bool toXkm,unsigned orig) { @@ -515,34 +116,6 @@ unsigned rtrn; return rtrn; } -unsigned -XkbConvertXkbComponents(Bool toXkm,unsigned orig) -{ -unsigned rtrn; - - rtrn= 0; - if (toXkm) { - if (orig&XkbClientMapMask) rtrn|= XkmTypesMask|XkmSymbolsMask; - if (orig&XkbServerMapMask) rtrn|= XkmTypesMask|XkmSymbolsMask; - if (orig&XkbCompatMapMask) rtrn|= XkmCompatMapMask; - if (orig&XkbIndicatorMapMask) rtrn|= XkmIndicatorsMask; - if (orig&XkbNamesMask) rtrn|= XkmKeyNamesMask; - if (orig&XkbGeometryMask) rtrn|= XkmGeometryMask; - } - else { - if (orig!=0) rtrn|= XkbNamesMask; - if (orig&XkmTypesMask) rtrn|= XkbClientMapMask; - if (orig&XkmCompatMapMask) - rtrn|= XkbCompatMapMask|XkbIndicatorMapMask; - if (orig&XkmSymbolsMask) rtrn|=XkbClientMapMask|XkbServerMapMask; - if (orig&XkmIndicatorsMask) rtrn|= XkbIndicatorMapMask; - if (orig&XkmKeyNamesMask) - rtrn|= XkbNamesMask|XkbIndicatorMapMask; - if (orig&XkmGeometryMask) rtrn|= XkbGeometryMask; - } - return rtrn; -} - Bool XkbDetermineFileType(XkbFileInfoPtr finfo,int format,int *opts_missing) { @@ -673,3 +246,19 @@ XkbNameMatchesPattern(char *name,char *ptrn) /* if we get here, the pattern is exhausted (-:just like me:-) */ return (name[0]=='\0'); } + +#ifdef NEED_STRCASECMP +_X_HIDDEN int +_XkbStrCaseCmp(char *str1,char *str2) +{ + const u_char *us1 = (const u_char *)str1, *us2 = (const u_char *)str2; + + while (tolower(*us1) == tolower(*us2)) { + if (*us1++ == '\0') + return (0); + us2++; + } + + return (tolower(*us1) - tolower(*us2)); +} +#endif diff --git a/nx-X11/programs/Xserver/xkb/xkbout.c b/nx-X11/programs/Xserver/xkb/xkbout.c deleted file mode 100644 index b766179..0000000 --- a/nx-X11/programs/Xserver/xkb/xkbout.c +++ /dev/null @@ -1,1051 +0,0 @@ -/************************************************************ - Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting - documentation, and that the name of Silicon Graphics not be - used in advertising or publicity pertaining to distribution - of the software without specific prior written permission. - Silicon Graphics makes no representation about the suitability - of this software for any purpose. It is provided "as is" - without any express or implied warranty. - - SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS - SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH - THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ********************************************************/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> -#endif - -#include <stdio.h> -#include <ctype.h> -#include <stdlib.h> -#include <nx-X11/Xfuncs.h> - - -#include <nx-X11/X.h> -#include <nx-X11/keysym.h> -#include <nx-X11/Xproto.h> -#include "misc.h" -#include "inputstr.h" -#include "dix.h" -#include "xkbstr.h" -#include <xkbsrv.h> - -#include "xkbgeom.h" -#include "xkbfile.h" - - -#define VMOD_HIDE_VALUE 0 -#define VMOD_SHOW_VALUE 1 -#define VMOD_COMMENT_VALUE 2 - -static Bool -WriteXKBVModDecl(FILE *file,Display *dpy,XkbDescPtr xkb,int showValue) -{ -register int i,nMods; -Atom * vmodNames; - - if (xkb==NULL) - return False; - if (xkb->names!=NULL) - vmodNames= xkb->names->vmods; - else vmodNames= NULL; - - for (i=nMods=0;i<XkbNumVirtualMods;i++) { - if ((vmodNames!=NULL)&&(vmodNames[i]!=None)) { - if (nMods==0) fprintf(file," virtual_modifiers "); - else fprintf(file,","); - fprintf(file,"%s",XkbAtomText(dpy,vmodNames[i],XkbXKBFile)); - if ((showValue!=VMOD_HIDE_VALUE)&& - (xkb->server)&&(xkb->server->vmods[i]!=XkbNoModifierMask)) { - if (showValue==VMOD_COMMENT_VALUE) { - fprintf(file,"/* = %s */", - XkbModMaskText(xkb->server->vmods[i],XkbXKBFile)); - } - else { - fprintf(file,"= %s", - XkbModMaskText(xkb->server->vmods[i],XkbXKBFile)); - } - } - nMods++; - } - } - if (nMods>0) - fprintf(file,";\n\n"); - return True; -} - -/***====================================================================***/ - -static Bool -WriteXKBAction(FILE *file,XkbFileInfo *result,XkbAnyAction *action) -{ -XkbDescPtr xkb; -Display * dpy; - - xkb= result->xkb; - dpy= xkb->dpy; - fprintf(file,"%s",XkbActionText(dpy,xkb,(XkbAction *)action,XkbXKBFile)); - return True; -} - -/***====================================================================***/ - -Bool -XkbWriteXKBKeycodes( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Atom kcName; -register unsigned i; -XkbDescPtr xkb; -Display * dpy; -char * alternate; - - xkb= result->xkb; - dpy= xkb->dpy; - if ((!xkb)||(!xkb->names)||(!xkb->names->keys)) { - _XkbLibError(_XkbErrMissingNames,"XkbWriteXKBKeycodes",0); - return False; - } - kcName= xkb->names->keycodes; - if (kcName!=None) - fprintf(file,"xkb_keycodes \"%s\" {\n", - XkbAtomText(dpy,kcName,XkbXKBFile)); - else fprintf(file,"xkb_keycodes {\n"); - fprintf(file," minimum = %d;\n",xkb->min_key_code); - fprintf(file," maximum = %d;\n",xkb->max_key_code); - for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) { - if (xkb->names->keys[i].name[0]!='\0') { - if (XkbFindKeycodeByName(xkb,xkb->names->keys[i].name,True)!=i) - alternate= "alternate "; - else alternate= ""; - fprintf(file," %s%6s = %d;\n",alternate, - XkbKeyNameText(xkb->names->keys[i].name,XkbXKBFile), - i); - } - } - if (xkb->indicators!=NULL) { - for (i=0;i<XkbNumIndicators;i++) { - char *type; - if (xkb->indicators->phys_indicators&(1<<i)) - type= " "; - else type= " virtual "; - if (xkb->names->indicators[i]!=None) { - fprintf(file,"%sindicator %d = \"%s\";\n",type,i+1, - XkbAtomText(dpy,xkb->names->indicators[i],XkbXKBFile)); - } - } - } - if (xkb->names->key_aliases!=NULL) { - XkbKeyAliasPtr pAl; - pAl= xkb->names->key_aliases; - for (i=0;i<xkb->names->num_key_aliases;i++,pAl++) { - fprintf(file," alias %6s = %6s;\n", - XkbKeyNameText(pAl->alias,XkbXKBFile), - XkbKeyNameText(pAl->real,XkbXKBFile)); - } - } - if (addOn) - (*addOn)(file,result,topLevel,showImplicit,XkmKeyNamesIndex,priv); - fprintf(file,"};\n\n"); - return True; -} - -Bool -XkbWriteXKBKeyTypes( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Display * dpy; -register unsigned i,n; -XkbKeyTypePtr type; -XkbKTMapEntryPtr entry; -XkbDescPtr xkb; - - xkb= result->xkb; - dpy= xkb->dpy; - if ((!xkb)||(!xkb->map)||(!xkb->map->types)) { - _XkbLibError(_XkbErrMissingTypes,"XkbWriteXKBKeyTypes",0); - return False; - } - if (xkb->map->num_types<XkbNumRequiredTypes) { - _XkbLibError(_XkbErrMissingReqTypes,"XkbWriteXKBKeyTypes",0); - return 0; - } - if ((xkb->names==NULL)||(xkb->names->types==None)) - fprintf(file,"xkb_types {\n\n"); - else fprintf(file,"xkb_types \"%s\" {\n\n", - XkbAtomText(dpy,xkb->names->types,XkbXKBFile)); - WriteXKBVModDecl(file,dpy,xkb, - (showImplicit?VMOD_COMMENT_VALUE:VMOD_HIDE_VALUE)); - - type= xkb->map->types; - for (i=0;i<xkb->map->num_types;i++,type++) { - fprintf(file," type \"%s\" {\n", - XkbAtomText(dpy,type->name,XkbXKBFile)); - fprintf(file," modifiers= %s;\n", - XkbVModMaskText(dpy,xkb,type->mods.real_mods,type->mods.vmods, - XkbXKBFile)); - entry= type->map; - for (n=0;n<type->map_count;n++,entry++) { - char *str; - str=XkbVModMaskText(dpy,xkb,entry->mods.real_mods,entry->mods.vmods, - XkbXKBFile); - fprintf(file," map[%s]= Level%d;\n",str,entry->level+1); - if ((type->preserve)&&((type->preserve[n].real_mods)|| - (type->preserve[n].vmods))) { - fprintf(file," preserve[%s]= ",str); - fprintf(file,"%s;\n",XkbVModMaskText(dpy,xkb, - type->preserve[n].real_mods, - type->preserve[n].vmods, - XkbXKBFile)); - } - } - if (type->level_names!=NULL) { - Atom *name= type->level_names; - for (n=0;n<type->num_levels;n++,name++) { - if ((*name)==None) - continue; - fprintf(file," level_name[Level%d]= \"%s\";\n",n+1, - XkbAtomText(dpy,*name,XkbXKBFile)); - } - } - fprintf(file," };\n"); - } - if (addOn) - (*addOn)(file,result,topLevel,showImplicit,XkmTypesIndex,priv); - fprintf(file,"};\n\n"); - return True; -} - -static Bool -WriteXKBIndicatorMap( FILE * file, - XkbFileInfo * result, - Atom name, - XkbIndicatorMapPtr led, - XkbFileAddOnFunc addOn, - void * priv) -{ -XkbDescPtr xkb; - - xkb= result->xkb; - fprintf(file," indicator \"%s\" {\n",NameForAtom(name)); - if (led->flags&XkbIM_NoExplicit) - fprintf(file," !allowExplicit;\n"); - if (led->flags&XkbIM_LEDDrivesKB) - fprintf(file," indicatorDrivesKeyboard;\n"); - if (led->which_groups!=0) { - if (led->which_groups!=XkbIM_UseEffective) { - fprintf(file," whichGroupState= %s;\n", - XkbIMWhichStateMaskText(led->which_groups,XkbXKBFile)); - } - fprintf(file," groups= 0x%02x;\n",led->groups); - } - if (led->which_mods!=0) { - if (led->which_mods!=XkbIM_UseEffective) { - fprintf(file," whichModState= %s;\n", - XkbIMWhichStateMaskText(led->which_mods,XkbXKBFile)); - } - fprintf(file," modifiers= %s;\n", - XkbVModMaskText(xkb->dpy,xkb, - led->mods.real_mods,led->mods.vmods, - XkbXKBFile)); - } - if (led->ctrls!=0) { - fprintf(file," controls= %s;\n", - XkbControlsMaskText(led->ctrls,XkbXKBFile)); - } - if (addOn) - (*addOn)(file,result,False,True,XkmIndicatorsIndex,priv); - fprintf(file," };\n"); - return True; -} - -Bool -XkbWriteXKBCompatMap( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Display * dpy; -register unsigned i; -XkbSymInterpretPtr interp; -XkbDescPtr xkb; - - xkb= result->xkb; - dpy= xkb->dpy; - if ((!xkb)||(!xkb->compat)||(!xkb->compat->sym_interpret)) { - _XkbLibError(_XkbErrMissingCompatMap,"XkbWriteXKBCompatMap",0); - return False; - } - if ((xkb->names==NULL)||(xkb->names->compat==None)) - fprintf(file,"xkb_compatibility {\n\n"); - else fprintf(file,"xkb_compatibility \"%s\" {\n\n", - XkbAtomText(dpy,xkb->names->compat,XkbXKBFile)); - WriteXKBVModDecl(file,dpy,xkb, - (showImplicit?VMOD_COMMENT_VALUE:VMOD_HIDE_VALUE)); - - fprintf(file," interpret.useModMapMods= AnyLevel;\n"); - fprintf(file," interpret.repeat= False;\n"); - fprintf(file," interpret.locking= False;\n"); - interp= xkb->compat->sym_interpret; - for (i=0;i<xkb->compat->num_si;i++,interp++) { - fprintf(file," interpret %s+%s(%s) {\n", - ((interp->sym==NoSymbol)?"Any": - XkbKeysymText(interp->sym,XkbXKBFile)), - XkbSIMatchText(interp->match,XkbXKBFile), - XkbModMaskText(interp->mods,XkbXKBFile)); - if (interp->virtual_mod!=XkbNoModifier) { - fprintf(file," virtualModifier= %s;\n", - XkbVModIndexText(dpy,xkb,interp->virtual_mod,XkbXKBFile)); - } - if (interp->match&XkbSI_LevelOneOnly) - fprintf(file," useModMapMods=level1;\n"); - if (interp->flags&XkbSI_LockingKey) - fprintf(file," locking= True;\n"); - if (interp->flags&XkbSI_AutoRepeat) - fprintf(file," repeat= True;\n"); - fprintf(file," action= "); - WriteXKBAction(file,result,&interp->act); - fprintf(file,";\n"); - fprintf(file," };\n"); - } - for (i=0;i<XkbNumKbdGroups;i++) { - XkbModsPtr gc; - - gc= &xkb->compat->groups[i]; - if ((gc->real_mods==0)&&(gc->vmods==0)) - continue; - fprintf(file," group %d = %s;\n",i+1,XkbVModMaskText(xkb->dpy,xkb, - gc->real_mods,gc->vmods, - XkbXKBFile)); - } - if (xkb->indicators) { - for (i=0;i<XkbNumIndicators;i++) { - XkbIndicatorMapPtr map= &xkb->indicators->maps[i]; - if ((map->flags!=0)||(map->which_groups!=0)||(map->groups!=0)|| - (map->which_mods!=0)|| - (map->mods.real_mods!=0)||(map->mods.vmods!=0)|| - (map->ctrls!=0)) { - WriteXKBIndicatorMap(file,result,xkb->names->indicators[i],map, - addOn,priv); - } - } - } - if (addOn) - (*addOn)(file,result,topLevel,showImplicit,XkmCompatMapIndex,priv); - fprintf(file,"};\n\n"); - return True; -} - -Bool -XkbWriteXKBSymbols( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Display * dpy; -register unsigned i,tmp; -XkbDescPtr xkb; -XkbClientMapPtr map; -XkbServerMapPtr srv; -Bool showActions; - - xkb= result->xkb; - map= xkb->map; - srv= xkb->server; - dpy= xkb->dpy; - if ((!xkb)||(!map)||(!map->syms)||(!map->key_sym_map)) { - _XkbLibError(_XkbErrMissingSymbols,"XkbWriteXKBSymbols",0); - return False; - } - if ((!xkb->names)||(!xkb->names->keys)) { - _XkbLibError(_XkbErrMissingNames,"XkbWriteXKBSymbols",0); - return False; - } - if ((xkb->names==NULL)||(xkb->names->symbols==None)) - fprintf(file,"xkb_symbols {\n\n"); - else fprintf(file,"xkb_symbols \"%s\" {\n\n", - XkbAtomText(dpy,xkb->names->symbols,XkbXKBFile)); - for (tmp=i=0;i<XkbNumKbdGroups;i++) { - if (xkb->names->groups[i]!=None) { - fprintf(file," name[group%d]=\"%s\";\n",i+1, - XkbAtomText(dpy,xkb->names->groups[i],XkbXKBFile)); - tmp++; - } - } - if (tmp>0) - fprintf(file,"\n"); - for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) { - Bool simple; - if ((int)XkbKeyNumSyms(xkb,i)<1) - continue; - if (XkbFindKeycodeByName(xkb,xkb->names->keys[i].name,True)!=i) - continue; - simple= True; - fprintf(file," key %6s {", - XkbKeyNameText(xkb->names->keys[i].name,XkbXKBFile)); - if (srv->explicit) { - if (((srv->explicit[i]&XkbExplicitKeyTypesMask)!=0)|| - (showImplicit)) { - int typeNdx,g; - Bool multi; - char * comment=" "; - - if ((srv->explicit[i]&XkbExplicitKeyTypesMask)==0) - comment= "//"; - multi= False; - typeNdx= XkbKeyKeyTypeIndex(xkb,i,0); - for (g=1;(g<XkbKeyNumGroups(xkb,i))&&(!multi);g++) { - if (XkbKeyKeyTypeIndex(xkb,i,g)!=typeNdx) - multi= True; - } - if (multi) { - for (g=0;g<XkbKeyNumGroups(xkb,i);g++) { - typeNdx= XkbKeyKeyTypeIndex(xkb,i,g); - if (srv->explicit[i]&(1<<g)) { - fprintf(file,"\n%s type[group%d]= \"%s\",", - comment,g+1, - XkbAtomText(dpy,map->types[typeNdx].name, - XkbXKBFile)); - } - else if (showImplicit) { - fprintf(file,"\n// type[group%d]= \"%s\",",g+1, - XkbAtomText(dpy,map->types[typeNdx].name, - XkbXKBFile)); - } - } - } - else { - fprintf(file,"\n%s type= \"%s\",",comment, - XkbAtomText(dpy,map->types[typeNdx].name, - XkbXKBFile)); - } - simple= False; - } - if (((srv->explicit[i]&XkbExplicitAutoRepeatMask)!=0)&& - (xkb->ctrls!=NULL)) { - if (xkb->ctrls->per_key_repeat[i/8]&(1<<(i%8))) - fprintf(file,"\n repeat= Yes,"); - else fprintf(file,"\n repeat= No,"); - simple= False; - } - if ((xkb->server!=NULL)&&(xkb->server->vmodmap!=NULL)&& - (xkb->server->vmodmap[i]!=0)) { - if ((srv->explicit[i]&XkbExplicitVModMapMask)!=0) { - fprintf(file,"\n virtualMods= %s,", - XkbVModMaskText(dpy,xkb,0, - xkb->server->vmodmap[i], - XkbXKBFile)); - } - else if (showImplicit) { - fprintf(file,"\n// virtualMods= %s,", - XkbVModMaskText(dpy,xkb,0, - xkb->server->vmodmap[i], - XkbXKBFile)); - } - } - } - switch (XkbOutOfRangeGroupAction(XkbKeyGroupInfo(xkb,i))) { - case XkbClampIntoRange: - fprintf(file,"\n groupsClamp,"); - break; - case XkbRedirectIntoRange: - fprintf(file,"\n groupsRedirect= Group%d,", - XkbOutOfRangeGroupNumber(XkbKeyGroupInfo(xkb,i))+1); - break; - } - if (srv->behaviors!=NULL) { - unsigned type; - type= srv->behaviors[i].type&XkbKB_OpMask; - - if (type!=XkbKB_Default) { - simple= False; - fprintf(file,"\n %s,", - XkbBehaviorText(xkb,&srv->behaviors[i],XkbXKBFile)); - } - } - if ((srv->explicit==NULL) || showImplicit || - ((srv->explicit[i]&XkbExplicitInterpretMask)!=0)) - showActions= XkbKeyHasActions(xkb,i); - else showActions= False; - - if (((unsigned)XkbKeyNumGroups(xkb,i)>1)||showActions) - simple= False; - if (simple) { - KeySym *syms; - unsigned s; - - syms= XkbKeySymsPtr(xkb,i); - fprintf(file," [ "); - for (s=0;s<XkbKeyGroupWidth(xkb,i,XkbGroup1Index);s++) { - if (s!=0) - fprintf(file,", "); - fprintf(file,"%15s",XkbKeysymText(*syms++,XkbXKBFile)); - } - fprintf(file," ] };\n"); - } - else { - unsigned g,s; - KeySym *syms; - XkbAction *acts; - syms= XkbKeySymsPtr(xkb,i); - acts= XkbKeyActionsPtr(xkb,i); - for (g=0;g<XkbKeyNumGroups(xkb,i);g++) { - if (g!=0) - fprintf(file,","); - fprintf(file,"\n symbols[Group%d]= [ ",g+1); - for (s=0;s<XkbKeyGroupWidth(xkb,i,g);s++) { - if (s!=0) - fprintf(file,", "); - fprintf(file,"%15s",XkbKeysymText(syms[s],XkbXKBFile)); - } - fprintf(file," ]"); - syms+= XkbKeyGroupsWidth(xkb,i); - if (showActions) { - fprintf(file,",\n actions[Group%d]= [ ",g+1); - for (s=0;s<XkbKeyGroupWidth(xkb,i,g);s++) { - if (s!=0) - fprintf(file,", "); - WriteXKBAction(file,result,(XkbAnyAction *)&acts[s]); - } - fprintf(file," ]"); - acts+= XkbKeyGroupsWidth(xkb,i); - } - } - fprintf(file,"\n };\n"); - } - } - if (map && map->modmap) { - for (i=xkb->min_key_code;i<=xkb->max_key_code;i++) { - if (map->modmap[i]!=0) { - register int n,bit; - for (bit=1,n=0;n<XkbNumModifiers;n++,bit<<=1) { - if (map->modmap[i]&bit) { - char buf[5]; - memcpy(buf,xkb->names->keys[i].name,4); - buf[4]= '\0'; - fprintf(file," modifier_map %s { <%s> };\n", - XkbModIndexText(n,XkbXKBFile),buf); - } - } - } - } - } - if (addOn) - (*addOn)(file,result,topLevel,showImplicit,XkmSymbolsIndex,priv); - fprintf(file,"};\n\n"); - return True; -} - -static Bool -WriteXKBOutline( FILE * file, - XkbShapePtr shape, - XkbOutlinePtr outline, - int lastRadius, - int first, - int indent) -{ -register int i; -XkbPointPtr pt; -char * iStr; - - fprintf(file,"%s",iStr= XkbIndentText(first)); - if (first!=indent) - iStr= XkbIndentText(indent); - if (outline->corner_radius!=lastRadius) { - fprintf(file,"corner= %s,", - XkbGeomFPText(outline->corner_radius,XkbMessage)); - if (shape!=NULL) { - fprintf(file,"\n%s",iStr); - } - } - if (shape) { - if (outline==shape->approx) - fprintf(file,"approx= "); - else if (outline==shape->primary) - fprintf(file,"primary= "); - } - fprintf(file,"{"); - for (pt=outline->points,i=0;i<outline->num_points;i++,pt++) { - if (i==0) fprintf(file," "); - else if ((i%4)==0) fprintf(file,",\n%s ",iStr); - else fprintf(file,", "); - fprintf(file,"[ %3s, %3s ]",XkbGeomFPText(pt->x,XkbXKBFile), - XkbGeomFPText(pt->y,XkbXKBFile)); - } - fprintf(file," }"); - return True; -} - -static Bool -WriteXKBDoodad( FILE * file, - Display * dpy, - unsigned indent, - XkbGeometryPtr geom, - XkbDoodadPtr doodad) -{ -register char * i_str; -XkbShapePtr shape; -XkbColorPtr color; - - i_str= XkbIndentText(indent); - fprintf(file,"%s%s \"%s\" {\n",i_str, - XkbDoodadTypeText(doodad->any.type,XkbMessage), - XkbAtomText(dpy,doodad->any.name,XkbMessage)); - fprintf(file,"%s top= %s;\n",i_str, - XkbGeomFPText(doodad->any.top,XkbXKBFile)); - fprintf(file,"%s left= %s;\n",i_str, - XkbGeomFPText(doodad->any.left,XkbXKBFile)); - fprintf(file,"%s priority= %d;\n",i_str,doodad->any.priority); - switch (doodad->any.type) { - case XkbOutlineDoodad: - case XkbSolidDoodad: - if (doodad->shape.angle!=0) { - fprintf(file,"%s angle= %s;\n",i_str, - XkbGeomFPText(doodad->shape.angle,XkbXKBFile)); - } - if (doodad->shape.color_ndx!=0) { - fprintf(file,"%s color= \"%s\";\n",i_str, - XkbShapeDoodadColor(geom,&doodad->shape)->spec); - } - shape= XkbShapeDoodadShape(geom,&doodad->shape); - fprintf(file,"%s shape= \"%s\";\n",i_str, - XkbAtomText(dpy,shape->name,XkbXKBFile)); - break; - case XkbTextDoodad: - if (doodad->text.angle!=0) { - fprintf(file,"%s angle= %s;\n",i_str, - XkbGeomFPText(doodad->text.angle,XkbXKBFile)); - } - if (doodad->text.width!=0) { - fprintf(file,"%s width= %s;\n",i_str, - XkbGeomFPText(doodad->text.width,XkbXKBFile)); - - } - if (doodad->text.height!=0) { - fprintf(file,"%s height= %s;\n",i_str, - XkbGeomFPText(doodad->text.height,XkbXKBFile)); - - } - if (doodad->text.color_ndx!=0) { - color= XkbTextDoodadColor(geom,&doodad->text); - fprintf(file,"%s color= \"%s\";\n",i_str, - XkbStringText(color->spec,XkbXKBFile)); - } - fprintf(file,"%s XFont= \"%s\";\n",i_str, - XkbStringText(doodad->text.font,XkbXKBFile)); - fprintf(file,"%s text= \"%s\";\n",i_str, - XkbStringText(doodad->text.text,XkbXKBFile)); - break; - case XkbIndicatorDoodad: - shape= XkbIndicatorDoodadShape(geom,&doodad->indicator); - color= XkbIndicatorDoodadOnColor(geom,&doodad->indicator); - fprintf(file,"%s onColor= \"%s\";\n",i_str, - XkbStringText(color->spec,XkbXKBFile)); - color= XkbIndicatorDoodadOffColor(geom,&doodad->indicator); - fprintf(file,"%s offColor= \"%s\";\n",i_str, - XkbStringText(color->spec,XkbXKBFile)); - fprintf(file,"%s shape= \"%s\";\n",i_str, - XkbAtomText(dpy,shape->name,XkbXKBFile)); - break; - case XkbLogoDoodad: - fprintf(file,"%s logoName= \"%s\";\n",i_str, - XkbStringText(doodad->logo.logo_name,XkbXKBFile)); - if (doodad->shape.angle!=0) { - fprintf(file,"%s angle= %s;\n",i_str, - XkbGeomFPText(doodad->logo.angle,XkbXKBFile)); - } - if (doodad->shape.color_ndx!=0) { - fprintf(file,"%s color= \"%s\";\n",i_str, - XkbLogoDoodadColor(geom,&doodad->logo)->spec); - } - shape= XkbLogoDoodadShape(geom,&doodad->logo); - fprintf(file,"%s shape= \"%s\";\n",i_str, - XkbAtomText(dpy,shape->name,XkbXKBFile)); - break; - } - fprintf(file,"%s};\n",i_str); - return True; -} - -/*ARGSUSED*/ -static Bool -WriteXKBOverlay( FILE * file, - Display * dpy, - unsigned indent, - XkbGeometryPtr geom, - XkbOverlayPtr ol) -{ -register char * i_str; -int r,k,nOut; -XkbOverlayRowPtr row; -XkbOverlayKeyPtr key; - - i_str= XkbIndentText(indent); - if (ol->name!=None) { - fprintf(file,"%soverlay \"%s\" {\n",i_str, - XkbAtomText(dpy,ol->name,XkbMessage)); - } - else fprintf(file,"%soverlay {\n",i_str); - for (nOut=r=0,row=ol->rows;r<ol->num_rows;r++,row++) { - for (k=0,key=row->keys;k<row->num_keys;k++,key++) { - char *over,*under; - over= XkbKeyNameText(key->over.name,XkbXKBFile); - under= XkbKeyNameText(key->under.name,XkbXKBFile); - if (nOut==0) - fprintf(file,"%s %6s=%6s",i_str,under,over); - else if ((nOut%4)==0) - fprintf(file,",\n%s %6s=%6s",i_str,under,over); - else fprintf(file,", %6s=%6s",under,over); - nOut++; - } - } - fprintf(file,"\n%s};\n",i_str); - return True; -} - -static Bool -WriteXKBSection( FILE * file, - Display * dpy, - XkbSectionPtr s, - XkbGeometryPtr geom) -{ -register int i; -XkbRowPtr row; -int dfltKeyColor = 0; - - fprintf(file," section \"%s\" {\n", - XkbAtomText(dpy,s->name,XkbXKBFile)); - if (s->rows&&(s->rows->num_keys>0)) { - dfltKeyColor= s->rows->keys[0].color_ndx; - fprintf(file," key.color= \"%s\";\n", - XkbStringText(geom->colors[dfltKeyColor].spec,XkbXKBFile)); - } - fprintf(file," priority= %d;\n",s->priority); - fprintf(file," top= %s;\n",XkbGeomFPText(s->top,XkbXKBFile)); - fprintf(file," left= %s;\n",XkbGeomFPText(s->left,XkbXKBFile)); - fprintf(file," width= %s;\n",XkbGeomFPText(s->width,XkbXKBFile)); - fprintf(file," height= %s;\n", - XkbGeomFPText(s->height,XkbXKBFile)); - if (s->angle!=0) { - fprintf(file," angle= %s;\n", - XkbGeomFPText(s->angle,XkbXKBFile)); - } - for (i=0,row=s->rows;i<s->num_rows;i++,row++) { - fprintf(file," row {\n"); - fprintf(file," top= %s;\n", - XkbGeomFPText(row->top,XkbXKBFile)); - fprintf(file," left= %s;\n", - XkbGeomFPText(row->left,XkbXKBFile)); - if (row->vertical) - fprintf(file," vertical;\n"); - if (row->num_keys>0) { - register int k; - register XkbKeyPtr key; - int forceNL=0; - int nThisLine= 0; - fprintf(file," keys {\n"); - for (k=0,key=row->keys;k<row->num_keys;k++,key++) { - XkbShapePtr shape; - if (key->color_ndx!=dfltKeyColor) - forceNL= 1; - if (k==0) { - fprintf(file," "); - nThisLine= 0; - } - else if (((nThisLine%2)==1)||(forceNL)) { - fprintf(file,",\n "); - forceNL= nThisLine= 0; - } - else { - fprintf(file,", "); - nThisLine++; - } - shape= XkbKeyShape(geom,key); - fprintf(file,"{ %6s, \"%s\", %3s", - XkbKeyNameText(key->name.name,XkbXKBFile), - XkbAtomText(dpy,shape->name,XkbXKBFile), - XkbGeomFPText(key->gap,XkbXKBFile)); - if (key->color_ndx!=dfltKeyColor) { - fprintf(file,", color=\"%s\"",XkbKeyColor(geom,key)->spec); - forceNL= 1; - } - fprintf(file," }"); - } - fprintf(file,"\n };\n"); - } - fprintf(file," };\n"); - } - if (s->doodads!=NULL) { - XkbDoodadPtr doodad; - for (i=0,doodad=s->doodads;i<s->num_doodads;i++,doodad++) { - WriteXKBDoodad(file,dpy,8,geom,doodad); - } - } - if (s->overlays!=NULL) { - XkbOverlayPtr ol; - for (i=0,ol=s->overlays;i<s->num_overlays;i++,ol++) { - WriteXKBOverlay(file,dpy,8,geom,ol); - } - } - fprintf(file," }; // End of \"%s\" section\n\n", - XkbAtomText(dpy,s->name,XkbXKBFile)); - return True; -} - -Bool -XkbWriteXKBGeometry( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Display * dpy; -register unsigned i,n; -XkbDescPtr xkb; -XkbGeometryPtr geom; - - xkb= result->xkb; - if ((!xkb)||(!xkb->geom)) { - _XkbLibError(_XkbErrMissingGeometry,"XkbWriteXKBGeometry",0); - return False; - } - dpy= xkb->dpy; - geom= xkb->geom; - if (geom->name==None) - fprintf(file,"xkb_geometry {\n\n"); - else fprintf(file,"xkb_geometry \"%s\" {\n\n", - XkbAtomText(dpy,geom->name,XkbXKBFile)); - fprintf(file," width= %s;\n", - XkbGeomFPText(geom->width_mm,XkbXKBFile)); - fprintf(file," height= %s;\n\n", - XkbGeomFPText(geom->height_mm,XkbXKBFile)); - - if (geom->key_aliases!=NULL) { - XkbKeyAliasPtr pAl; - pAl= geom->key_aliases; - for (i=0;i<geom->num_key_aliases;i++,pAl++) { - fprintf(file," alias %6s = %6s;\n", - XkbKeyNameText(pAl->alias,XkbXKBFile), - XkbKeyNameText(pAl->real,XkbXKBFile)); - } - fprintf(file,"\n"); - } - - if (geom->base_color!=NULL) - fprintf(file," baseColor= \"%s\";\n", - XkbStringText(geom->base_color->spec,XkbXKBFile)); - if (geom->label_color!=NULL) - fprintf(file," labelColor= \"%s\";\n", - XkbStringText(geom->label_color->spec,XkbXKBFile)); - if (geom->label_font!=NULL) - fprintf(file," xfont= \"%s\";\n", - XkbStringText(geom->label_font,XkbXKBFile)); - if ((geom->num_colors>0)&&(showImplicit)) { - XkbColorPtr color; - for (color=geom->colors,i=0;i<geom->num_colors;i++,color++) { - fprintf(file,"// color[%d]= \"%s\"\n",i, - XkbStringText(color->spec,XkbXKBFile)); - } - fprintf(file,"\n"); - } - if (geom->num_properties>0) { - XkbPropertyPtr prop; - for (prop=geom->properties,i=0;i<geom->num_properties;i++,prop++) { - fprintf(file," %s= \"%s\";\n",prop->name, - XkbStringText(prop->value,XkbXKBFile)); - } - fprintf(file,"\n"); - } - if (geom->num_shapes>0) { - XkbShapePtr shape; - XkbOutlinePtr outline; - int lastR; - for (shape=geom->shapes,i=0;i<geom->num_shapes;i++,shape++) { - lastR=0; - fprintf(file," shape \"%s\" {", - XkbAtomText(dpy,shape->name,XkbXKBFile)); - outline= shape->outlines; - if (shape->num_outlines>1) { - for (n=0;n<shape->num_outlines;n++,outline++) { - if (n==0) fprintf(file,"\n"); - else fprintf(file,",\n"); - WriteXKBOutline(file,shape,outline,lastR,8,8); - lastR= outline->corner_radius; - } - fprintf(file,"\n };\n"); - } - else { - WriteXKBOutline(file,NULL,outline,lastR,1,8); - fprintf(file," };\n"); - } - } - } - if (geom->num_sections>0) { - XkbSectionPtr section; - for (section=geom->sections,i=0;i<geom->num_sections;i++,section++){ - WriteXKBSection(file,dpy,section,geom); - } - } - if (geom->num_doodads>0) { - XkbDoodadPtr doodad; - for (i=0,doodad=geom->doodads;i<geom->num_doodads;i++,doodad++) { - WriteXKBDoodad(file,dpy,4,geom,doodad); - } - } - if (addOn) - (*addOn)(file,result,topLevel,showImplicit,XkmGeometryIndex,priv); - fprintf(file,"};\n\n"); - return True; -} - -/*ARGSUSED*/ -Bool -XkbWriteXKBSemantics( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; - - fprintf(file,"xkb_semantics {\n"); - ok= XkbWriteXKBKeyTypes(file,result,False,False,addOn,priv); - ok= ok&&XkbWriteXKBCompatMap(file,result,False,False,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -/*ARGSUSED*/ -Bool -XkbWriteXKBLayout( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - fprintf(file,"xkb_layout {\n"); - ok= XkbWriteXKBKeycodes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBKeyTypes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBSymbols(file,result,False,showImplicit,addOn,priv); - if (xkb->geom) - ok= ok&&XkbWriteXKBGeometry(file,result,False,showImplicit,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -/*ARGSUSED*/ -Bool -XkbWriteXKBKeymap( FILE * file, - XkbFileInfo * result, - Bool topLevel, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok; -XkbDescPtr xkb; - - xkb= result->xkb; - fprintf(file,"xkb_keymap {\n"); - ok= XkbWriteXKBKeycodes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBKeyTypes(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBCompatMap(file,result,False,showImplicit,addOn,priv); - ok= ok&&XkbWriteXKBSymbols(file,result,False,showImplicit,addOn,priv); - if (xkb->geom) - ok= ok&&XkbWriteXKBGeometry(file,result,False,showImplicit,addOn,priv); - fprintf(file,"};\n"); - return ok; -} - -Bool -XkbWriteXKBFile( FILE * out, - XkbFileInfo * result, - Bool showImplicit, - XkbFileAddOnFunc addOn, - void * priv) -{ -Bool ok = False; -Bool (*func)( - FILE * /* file */, - XkbFileInfo * /* result */, - Bool /* topLevel */, - Bool /* showImplicit */, - XkbFileAddOnFunc /* addOn */, - void * /* priv */ -) = NULL; - - switch (result->type) { - case XkmSemanticsFile: - func= XkbWriteXKBSemantics; - break; - case XkmLayoutFile: - func= XkbWriteXKBLayout; - break; - case XkmKeymapFile: - func= XkbWriteXKBKeymap; - break; - case XkmTypesIndex: - func= XkbWriteXKBKeyTypes; - break; - case XkmCompatMapIndex: - func= XkbWriteXKBCompatMap; - break; - case XkmSymbolsIndex: - func= XkbWriteXKBSymbols; - break; - case XkmKeyNamesIndex: - func= XkbWriteXKBKeycodes; - break; - case XkmGeometryFile: - case XkmGeometryIndex: - func= XkbWriteXKBGeometry; - break; - case XkmVirtualModsIndex: - case XkmIndicatorsIndex: - _XkbLibError(_XkbErrBadImplementation, - XkbConfigText(result->type,XkbMessage),0); - return False; - } - if (out==NULL) { - _XkbLibError(_XkbErrFileCannotOpen,"XkbWriteXkbFile",0); - ok= False; - } - else if (func) { - ok= (*func)(out,result,True,showImplicit,addOn,priv); - } - return ok; -} diff --git a/nx-X11/programs/Xserver/xkb/xkbtext.c b/nx-X11/programs/Xserver/xkb/xkbtext.c deleted file mode 100644 index 7c22d25..0000000 --- a/nx-X11/programs/Xserver/xkb/xkbtext.c +++ /dev/null @@ -1,1326 +0,0 @@ -/************************************************************ - Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc. - - Permission to use, copy, modify, and distribute this - software and its documentation for any purpose and without - fee is hereby granted, provided that the above copyright - notice appear in all copies and that both that copyright - notice and this permission notice appear in supporting - documentation, and that the name of Silicon Graphics not be - used in advertising or publicity pertaining to distribution - of the software without specific prior written permission. - Silicon Graphics makes no representation about the suitability - of this software for any purpose. It is provided "as is" - without any express or implied warranty. - - SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS - SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON - GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL - DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH - THE USE OR PERFORMANCE OF THIS SOFTWARE. - - ********************************************************/ - -#ifdef HAVE_DIX_CONFIG_H -#include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> -#endif - -#include <stdio.h> -#include <ctype.h> -#include <stdlib.h> - -#include <nx-X11/Xos.h> - - -#include <nx-X11/X.h> -#include <nx-X11/Xproto.h> -#include "misc.h" -#include "inputstr.h" -#include "dix.h" -#include "xkbstr.h" -#include <xkbsrv.h> -#include "xkbgeom.h" - - -/***====================================================================***/ - -#define BUFFER_SIZE 512 - -static char textBuffer[BUFFER_SIZE]; -static int tbNext= 0; - -static char * -tbGetBuffer(unsigned size) -{ -char *rtrn; - - if (size>=BUFFER_SIZE) - return NULL; - if ((BUFFER_SIZE-tbNext)<=size) - tbNext= 0; - rtrn= &textBuffer[tbNext]; - tbNext+= size; - return rtrn; -} - -/***====================================================================***/ - -char * -XkbAtomText(Display *dpy,Atom atm,unsigned format) -{ -char *rtrn,*tmp; - - tmp= (char *)NameForAtom(atm); - if (tmp!=NULL) { - int len; - len= strlen(tmp)+1; - if (len>BUFFER_SIZE) - len= BUFFER_SIZE-2; - rtrn= tbGetBuffer(len); - strncpy(rtrn,tmp,len); - rtrn[len]= '\0'; - } - else { - rtrn= tbGetBuffer(1); - rtrn[0]= '\0'; - } - if (format==XkbCFile) { - for (tmp=rtrn;*tmp!='\0';tmp++) { - if ((tmp==rtrn)&&(!isalpha(*tmp))) - *tmp= '_'; - else if (!isalnum(*tmp)) - *tmp= '_'; - } - } - return XkbStringText(rtrn,format); -} - -/***====================================================================***/ - -char * -XkbVModIndexText(Display *dpy,XkbDescPtr xkb,unsigned ndx,unsigned format) -{ -register int len; -register Atom *vmodNames; -char *rtrn,*tmp; -char numBuf[20]; - - if (xkb && xkb->names) - vmodNames= xkb->names->vmods; - else vmodNames= NULL; - - tmp= NULL; - if (ndx>=XkbNumVirtualMods) - tmp= "illegal"; - else if (vmodNames&&(vmodNames[ndx]!=None)) - tmp= (char *)NameForAtom(vmodNames[ndx]); - if (tmp==NULL) - sprintf(tmp=numBuf,"%d",ndx); - - len= strlen(tmp)+1; - if (format==XkbCFile) - len+= 4; - if (len>=BUFFER_SIZE) - len= BUFFER_SIZE-1; - rtrn= tbGetBuffer(len); - if (format==XkbCFile) { - strcpy(rtrn,"vmod_"); - strncpy(&rtrn[5],tmp,len-4); - } - else strncpy(rtrn,tmp,len); - return rtrn; -} - -char * -XkbVModMaskText( Display * dpy, - XkbDescPtr xkb, - unsigned modMask, - unsigned mask, - unsigned format) -{ -register int i,bit; -int len; -char *mm,*rtrn; -char *str,buf[BUFFER_SIZE]; - - if ((modMask==0)&&(mask==0)) { - rtrn= tbGetBuffer(5); - if (format==XkbCFile) - sprintf(rtrn,"0"); - else sprintf(rtrn,"none"); - return rtrn; - } - if (modMask!=0) - mm= XkbModMaskText(modMask,format); - else mm= NULL; - - str= buf; - buf[0]= '\0'; - if (mask) { - char *tmp; - for (i=0,bit=1;i<XkbNumVirtualMods;i++,bit<<=1) { - if (mask&bit) { - tmp= XkbVModIndexText(dpy,xkb,i,format); - len= strlen(tmp)+1+(str==buf?0:1); - if (format==XkbCFile) - len+= 4; - if ((str-(buf+len))<=BUFFER_SIZE) { - if (str!=buf) { - if (format==XkbCFile) *str++= '|'; - else *str++= '+'; - len--; - } - } - if (format==XkbCFile) - sprintf(str,"%sMask",tmp); - else strcpy(str,tmp); - str= &str[len-1]; - } - } - str= buf; - } - else str= NULL; - if (mm) - len= strlen(mm); - else len= 0; - if (str) - len+= strlen(str)+(mm==NULL?0:1); - if (len>=BUFFER_SIZE) - len= BUFFER_SIZE-1; - rtrn= tbGetBuffer(len+1); - rtrn[0]= '\0'; - - if (mm!=NULL) { - i= strlen(mm); - if (i>len) - i= len; - strcpy(rtrn,mm); - } - else { - i=0; - } - if (str!=NULL) { - if (mm!=NULL) { - if (format==XkbCFile) strcat(rtrn,"|"); - else strcat(rtrn,"+"); - } - strncat(rtrn,str,len-i); - } - rtrn[len]= '\0'; - return rtrn; -} - -static char *modNames[XkbNumModifiers] = { - "Shift", "Lock", "Control", "Mod1", "Mod2", "Mod3", "Mod4", "Mod5" -}; - -char * -XkbModIndexText(unsigned ndx,unsigned format) -{ -char * rtrn; -char buf[100]; - - if (format==XkbCFile) { - if (ndx<XkbNumModifiers) - sprintf(buf,"%sMapIndex",modNames[ndx]); - else if (ndx==XkbNoModifier) - sprintf(buf,"XkbNoModifier"); - else sprintf(buf,"0x%02x",ndx); - } - else { - if (ndx<XkbNumModifiers) - strcpy(buf,modNames[ndx]); - else if (ndx==XkbNoModifier) - strcpy(buf,"none"); - else sprintf(buf,"ILLEGAL_%02x",ndx); - } - rtrn= tbGetBuffer(strlen(buf)+1); - strcpy(rtrn,buf); - return rtrn; -} - -char * -XkbModMaskText(unsigned mask,unsigned format) -{ -register int i,bit; -char buf[64],*rtrn; - - if ((mask&0xff)==0xff) { - if (format==XkbCFile) strcpy(buf,"0xff"); - else strcpy(buf,"all"); - } - else if ((mask&0xff)==0) { - if (format==XkbCFile) strcpy(buf,"0"); - else strcpy(buf,"none"); - } - else { - char *str= buf; - buf[0]= '\0'; - for (i=0,bit=1;i<XkbNumModifiers;i++,bit<<=1) { - if (mask&bit) { - if (str!=buf) { - if (format==XkbCFile) *str++= '|'; - else *str++= '+'; - } - strcpy(str,modNames[i]); - str= &str[strlen(str)]; - if (format==XkbCFile) { - strcpy(str,"Mask"); - str+= 4; - } - } - } - } - rtrn= tbGetBuffer(strlen(buf)+1); - strcpy(rtrn,buf); - return rtrn; -} - -/***====================================================================***/ - -/*ARGSUSED*/ -char * -XkbConfigText(unsigned config,unsigned format) -{ -static char *buf; - - buf= tbGetBuffer(32); - switch (config) { - case XkmSemanticsFile: - strcpy(buf,"Semantics"); - break; - case XkmLayoutFile: - strcpy(buf,"Layout"); - break; - case XkmKeymapFile: - strcpy(buf,"Keymap"); - break; - case XkmGeometryFile: - case XkmGeometryIndex: - strcpy(buf,"Geometry"); - break; - case XkmTypesIndex: - strcpy(buf,"Types"); - break; - case XkmCompatMapIndex: - strcpy(buf,"CompatMap"); - break; - case XkmSymbolsIndex: - strcpy(buf,"Symbols"); - break; - case XkmIndicatorsIndex: - strcpy(buf,"Indicators"); - break; - case XkmKeyNamesIndex: - strcpy(buf,"KeyNames"); - break; - case XkmVirtualModsIndex: - strcpy(buf,"VirtualMods"); - break; - default: - sprintf(buf,"unknown(%d)",config); - break; - } - return buf; -} - -/***====================================================================***/ - -char * -XkbKeysymText(KeySym sym,unsigned format) -{ -static char buf[32],*rtrn; - - if (sym==NoSymbol) - strcpy(rtrn=buf,"NoSymbol"); - else sprintf(rtrn=buf, "0x%lx", (long)sym); - return rtrn; -} - -char * -XkbKeyNameText(char *name,unsigned format) -{ -char *buf; - - if (format==XkbCFile) { - buf= tbGetBuffer(5); - memcpy(buf,name,4); - buf[4]= '\0'; - } - else { - int len; - buf= tbGetBuffer(7); - buf[0]= '<'; - memcpy(&buf[1],name,4); - buf[5]= '\0'; - len= strlen(buf); - buf[len++]= '>'; - buf[len]= '\0'; - } - return buf; -} - -/***====================================================================***/ - -static char *siMatchText[5] = { - "NoneOf", "AnyOfOrNone", "AnyOf", "AllOf", "Exactly" -}; - -char * -XkbSIMatchText(unsigned type,unsigned format) -{ -static char buf[40]; -char *rtrn; - - switch (type&XkbSI_OpMask) { - case XkbSI_NoneOf: rtrn= siMatchText[0]; break; - case XkbSI_AnyOfOrNone: rtrn= siMatchText[1]; break; - case XkbSI_AnyOf: rtrn= siMatchText[2]; break; - case XkbSI_AllOf: rtrn= siMatchText[3]; break; - case XkbSI_Exactly: rtrn= siMatchText[4]; break; - default: sprintf(buf,"0x%x",type&XkbSI_OpMask); - return buf; - } - if (format==XkbCFile) { - if (type&XkbSI_LevelOneOnly) - sprintf(buf,"XkbSI_LevelOneOnly|XkbSI_%s",rtrn); - else sprintf(buf,"XkbSI_%s",rtrn); - rtrn= buf; - } - return rtrn; -} - -/***====================================================================***/ - -static char *imWhichNames[]= { - "base", - "latched", - "locked", - "effective", - "compat" -}; - -char * -XkbIMWhichStateMaskText(unsigned use_which,unsigned format) -{ -int len; -unsigned i,bit,tmp; -char * buf; - - if (use_which==0) { - buf= tbGetBuffer(2); - strcpy(buf,"0"); - return buf; - } - tmp= use_which&XkbIM_UseAnyMods; - for (len=i=0,bit=1;tmp!=0;i++,bit<<=1) { - if (tmp&bit) { - tmp&= ~bit; - len+= strlen(imWhichNames[i])+1; - if (format==XkbCFile) - len+= 9; - } - } - buf= tbGetBuffer(len+1); - tmp= use_which&XkbIM_UseAnyMods; - for (len=i=0,bit=1;tmp!=0;i++,bit<<=1) { - if (tmp&bit) { - tmp&= ~bit; - if (format==XkbCFile) { - if (len!=0) - buf[len++]= '|'; - sprintf(&buf[len],"XkbIM_Use%s",imWhichNames[i]); - buf[len+9]= toupper(buf[len+9]); - } - else { - if (len!=0) - buf[len++]= '+'; - sprintf(&buf[len],"%s",imWhichNames[i]); - } - len+= strlen(&buf[len]); - } - } - return buf; -} - -char * -XkbAccessXDetailText(unsigned state,unsigned format) -{ -char *buf,*prefix; - - buf= tbGetBuffer(32); - if (format==XkbMessage) prefix= ""; - else prefix= "XkbAXN_"; - switch (state){ - case XkbAXN_SKPress: sprintf(buf,"%sSKPress",prefix); break; - case XkbAXN_SKAccept: sprintf(buf,"%sSKAccept",prefix); break; - case XkbAXN_SKRelease: sprintf(buf,"%sSKRelease",prefix); break; - case XkbAXN_SKReject: sprintf(buf,"%sSKReject",prefix); break; - case XkbAXN_BKAccept: sprintf(buf,"%sBKAccept",prefix); break; - case XkbAXN_BKReject: sprintf(buf,"%sBKReject",prefix); break; - case XkbAXN_AXKWarning: sprintf(buf,"%sAXKWarning",prefix); break; - default: sprintf(buf,"ILLEGAL"); break; - } - return buf; -} - -static char *nknNames[] = { - "keycodes", "geometry", "deviceID" -}; -#define NUM_NKN (sizeof(nknNames)/sizeof(char *)) - -char * -XkbNKNDetailMaskText(unsigned detail,unsigned format) -{ -char *buf,*prefix,*suffix; -register int i; -register unsigned bit; -int len,plen,slen; - - - if ((detail&XkbAllNewKeyboardEventsMask)==0) { - char *tmp = ""; - if (format==XkbCFile) tmp= "0"; - else if (format==XkbMessage) tmp= "none"; - buf= tbGetBuffer(strlen(tmp)+1); - strcpy(buf,tmp); - return buf; - } - else if ((detail&XkbAllNewKeyboardEventsMask)==XkbAllNewKeyboardEventsMask){ - char * tmp; - if (format==XkbCFile) tmp= "XkbAllNewKeyboardEventsMask"; - else tmp= "all"; - buf= tbGetBuffer(strlen(tmp)+1); - strcpy(buf,tmp); - return buf; - } - if (format==XkbMessage) { - prefix= ""; - suffix= ""; - slen= plen= 0; - } - else { - prefix= "XkbNKN_"; - plen= 7; - if (format==XkbCFile) - suffix= "Mask"; - else suffix= ""; - slen= strlen(suffix); - } - for (len=0,i=0,bit=1;i<NUM_NKN;i++,bit<<=1) { - if (detail&bit) { - if (len!=0) len+= 1; /* room for '+' or '|' */ - len+= plen+slen+strlen(nknNames[i]); - } - } - buf= tbGetBuffer(len+1); - buf[0]= '\0'; - for (len=0,i=0,bit=1;i<NUM_NKN;i++,bit<<=1) { - if (detail&bit) { - if (len!=0) { - if (format==XkbCFile) buf[len++]= '|'; - else buf[len++]= '+'; - } - if (plen) { - strcpy(&buf[len],prefix); - len+= plen; - } - strcpy(&buf[len],nknNames[i]); - len+= strlen(nknNames[i]); - if (slen) { - strcpy(&buf[len],suffix); - len+= slen; - } - } - } - buf[len++]= '\0'; - return buf; -} - -static char *ctrlNames[] = { - "repeatKeys", - "slowKeys", - "bounceKeys", - "stickyKeys", - "mouseKeys", - "mouseKeysAccel", - "accessXKeys", - "accessXTimeout", - "accessXFeedback", - "audibleBell", - "overlay1", - "overlay2", - "ignoreGroupLock" -}; - -char * -XkbControlsMaskText(unsigned ctrls,unsigned format) -{ -int len; -unsigned i,bit,tmp; -char * buf; - - if (ctrls==0) { - buf= tbGetBuffer(5); - if (format==XkbCFile) - strcpy(buf,"0"); - else strcpy(buf,"none"); - return buf; - } - tmp= ctrls&XkbAllBooleanCtrlsMask; - for (len=i=0,bit=1;tmp!=0;i++,bit<<=1) { - if (tmp&bit) { - tmp&= ~bit; - len+= strlen(ctrlNames[i])+1; - if (format==XkbCFile) - len+= 7; - } - } - buf= tbGetBuffer(len+1); - tmp= ctrls&XkbAllBooleanCtrlsMask; - for (len=i=0,bit=1;tmp!=0;i++,bit<<=1) { - if (tmp&bit) { - tmp&= ~bit; - if (format==XkbCFile) { - if (len!=0) - buf[len++]= '|'; - sprintf(&buf[len],"Xkb%sMask",ctrlNames[i]); - buf[len+3]= toupper(buf[len+3]); - } - else { - if (len!=0) - buf[len++]= '+'; - sprintf(&buf[len],"%s",ctrlNames[i]); - } - len+= strlen(&buf[len]); - } - } - return buf; -} - -/***====================================================================***/ - -char * -XkbStringText(char *str,unsigned format) -{ -char * buf; -register char *in,*out; -int len; -Bool ok; - - if (str==NULL) { - buf= tbGetBuffer(2); - buf[0]='\0'; - return buf; - } - else if (format==XkbXKMFile) - return str; - for (ok= True,len=0,in=str;*in!='\0';in++,len++) { - if (!isprint(*in)) { - ok= False; - switch (*in) { - case '\n': case '\t': case '\v': - case '\b': case '\r': case '\f': - len++; - break; - default: - len+= 4; - break; - } - } - } - if (ok) - return str; - buf= tbGetBuffer(len+1); - for (in=str,out=buf;*in!='\0';in++) { - if (isprint(*in)) - *out++= *in; - else { - *out++= '\\'; - if (*in=='\n') *out++= 'n'; - else if (*in=='\t') *out++= 't'; - else if (*in=='\v') *out++= 'v'; - else if (*in=='\b') *out++= 'b'; - else if (*in=='\r') *out++= 'r'; - else if (*in=='\f') *out++= 'f'; - else if ((*in=='\033')&&(format==XkbXKMFile)) { - *out++= 'e'; - } - else { - *out++= '0'; - sprintf(out,"%o",*in); - while (*out!='\0') - out++; - } - } - } - *out++= '\0'; - return buf; -} - -/***====================================================================***/ - -char * -XkbGeomFPText(int val,unsigned format) -{ -int whole,frac; -char * buf; - - buf= tbGetBuffer(12); - if (format==XkbCFile) { - sprintf(buf,"%d",val); - } - else { - whole= val/XkbGeomPtsPerMM; - frac= val%XkbGeomPtsPerMM; - if (frac!=0) - sprintf(buf,"%d.%d",whole,frac); - else sprintf(buf,"%d",whole); - } - return buf; -} - -char * -XkbDoodadTypeText(unsigned type,unsigned format) -{ -char * buf; - if (format==XkbCFile) { - buf= tbGetBuffer(24); - if (type==XkbOutlineDoodad) strcpy(buf,"XkbOutlineDoodad"); - else if (type==XkbSolidDoodad) strcpy(buf,"XkbSolidDoodad"); - else if (type==XkbTextDoodad) strcpy(buf,"XkbTextDoodad"); - else if (type==XkbIndicatorDoodad) strcpy(buf,"XkbIndicatorDoodad"); - else if (type==XkbLogoDoodad) strcpy(buf,"XkbLogoDoodad"); - else sprintf(buf,"UnknownDoodad%d",type); - } - else { - buf= tbGetBuffer(12); - if (type==XkbOutlineDoodad) strcpy(buf,"outline"); - else if (type==XkbSolidDoodad) strcpy(buf,"solid"); - else if (type==XkbTextDoodad) strcpy(buf,"text"); - else if (type==XkbIndicatorDoodad) strcpy(buf,"indicator"); - else if (type==XkbLogoDoodad) strcpy(buf,"logo"); - else sprintf(buf,"unknown%d",type); - } - return buf; -} - -static char *actionTypeNames[XkbSA_NumActions]= { - "NoAction", - "SetMods", "LatchMods", "LockMods", - "SetGroup", "LatchGroup", "LockGroup", - "MovePtr", - "PtrBtn", "LockPtrBtn", - "SetPtrDflt", - "ISOLock", - "Terminate", "SwitchScreen", - "SetControls", "LockControls", - "ActionMessage", - "RedirectKey", - "DeviceBtn", "LockDeviceBtn" -}; - -char * -XkbActionTypeText(unsigned type,unsigned format) -{ -static char buf[32]; -char *rtrn; - - if (type<=XkbSA_LastAction) { - rtrn= actionTypeNames[type]; - if (format==XkbCFile) { - sprintf(buf,"XkbSA_%s",rtrn); - return buf; - } - return rtrn; - } - sprintf(buf,"Private"); - return buf; -} - -/***====================================================================***/ - -static int -TryCopyStr(char *to,char *from,int *pLeft) -{ -register int len; - if (*pLeft>0) { - len= strlen(from); - if (len<((*pLeft)-3)) { - strcat(to,from); - *pLeft-= len; - return True; - } - } - *pLeft= -1; - return False; -} - -/*ARGSUSED*/ -static Bool -CopyNoActionArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf,int*sz) -{ - return True; -} - -static Bool -CopyModActionArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int* sz) -{ -XkbModAction * act; -unsigned tmp; - - act= &action->mods; - tmp= XkbModActionVMods(act); - TryCopyStr(buf,"modifiers=",sz); - if (act->flags&XkbSA_UseModMapMods) - TryCopyStr(buf,"modMapMods",sz); - else if (act->real_mods || tmp) { - TryCopyStr(buf, - XkbVModMaskText(dpy,xkb,act->real_mods,tmp,XkbXKBFile), - sz); - } - else TryCopyStr(buf,"none",sz); - if (act->type==XkbSA_LockMods) - return True; - if (act->flags&XkbSA_ClearLocks) - TryCopyStr(buf,",clearLocks",sz); - if (act->flags&XkbSA_LatchToLock) - TryCopyStr(buf,",latchToLock",sz); - return True; -} - -/*ARGSUSED*/ -static Bool -CopyGroupActionArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbGroupAction * act; -char tbuf[32]; - - act= &action->group; - TryCopyStr(buf,"group=",sz); - if (act->flags&XkbSA_GroupAbsolute) - sprintf(tbuf,"%d",XkbSAGroup(act)+1); - else if (XkbSAGroup(act)<0) - sprintf(tbuf,"%d",XkbSAGroup(act)); - else sprintf(tbuf,"+%d",XkbSAGroup(act)); - TryCopyStr(buf,tbuf,sz); - if (act->type==XkbSA_LockGroup) - return True; - if (act->flags&XkbSA_ClearLocks) - TryCopyStr(buf,",clearLocks",sz); - if (act->flags&XkbSA_LatchToLock) - TryCopyStr(buf,",latchToLock",sz); - return True; -} - -/*ARGSUSED*/ -static Bool -CopyMovePtrArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf,int *sz) -{ -XkbPtrAction * act; -int x,y; -char tbuf[32]; - - act= &action->ptr; - x= XkbPtrActionX(act); - y= XkbPtrActionY(act); - if ((act->flags&XkbSA_MoveAbsoluteX)||(x<0)) - sprintf(tbuf,"x=%d",x); - else sprintf(tbuf,"x=+%d",x); - TryCopyStr(buf,tbuf,sz); - - if ((act->flags&XkbSA_MoveAbsoluteY)||(y<0)) - sprintf(tbuf,",y=%d",y); - else sprintf(tbuf,",y=+%d",y); - TryCopyStr(buf,tbuf,sz); - if (act->flags&XkbSA_NoAcceleration) - TryCopyStr(buf,",!accel",sz); - return True; -} - -/*ARGSUSED*/ -static Bool -CopyPtrBtnArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf,int *sz) -{ -XkbPtrBtnAction * act; -char tbuf[32]; - - act= &action->btn; - TryCopyStr(buf,"button=",sz); - if ((act->button>0)&&(act->button<6)) { - sprintf(tbuf,"%d",act->button); - TryCopyStr(buf,tbuf,sz); - } - else TryCopyStr(buf,"default",sz); - if (act->count>0) { - sprintf(tbuf,",count=%d",act->count); - TryCopyStr(buf,tbuf,sz); - } - if (action->type==XkbSA_LockPtrBtn) { - switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) { - case XkbSA_LockNoLock: - sprintf(tbuf,",affect=unlock"); break; - case XkbSA_LockNoUnlock: - sprintf(tbuf,",affect=lock"); break; - case XkbSA_LockNoUnlock|XkbSA_LockNoLock: - sprintf(tbuf,",affect=neither"); break; - default: - sprintf(tbuf,",affect=both"); break; - } - TryCopyStr(buf,tbuf,sz); - } - return True; -} - -/*ARGSUSED*/ -static Bool -CopySetPtrDfltArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbPtrDfltAction * act; -char tbuf[32]; - - act= &action->dflt; - if (act->affect==XkbSA_AffectDfltBtn) { - TryCopyStr(buf,"affect=button,button=",sz); - if ((act->flags&XkbSA_DfltBtnAbsolute)||(XkbSAPtrDfltValue(act)<0)) - sprintf(tbuf,"%d",XkbSAPtrDfltValue(act)); - else sprintf(tbuf,"+%d",XkbSAPtrDfltValue(act)); - TryCopyStr(buf,tbuf,sz); - } - return True; -} - -static Bool -CopyISOLockArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf,int *sz) -{ -XkbISOAction * act; -char tbuf[64]; - - act= &action->iso; - if (act->flags&XkbSA_ISODfltIsGroup) { - TryCopyStr(tbuf,"group=",sz); - if (act->flags&XkbSA_GroupAbsolute) - sprintf(tbuf,"%d",XkbSAGroup(act)+1); - else if (XkbSAGroup(act)<0) - sprintf(tbuf,"%d",XkbSAGroup(act)); - else sprintf(tbuf,"+%d",XkbSAGroup(act)); - TryCopyStr(buf,tbuf,sz); - } - else { - unsigned tmp; - tmp= XkbModActionVMods(act); - TryCopyStr(buf,"modifiers=",sz); - if (act->flags&XkbSA_UseModMapMods) - TryCopyStr(buf,"modMapMods",sz); - else if (act->real_mods || tmp) { - if (act->real_mods) { - TryCopyStr(buf,XkbModMaskText(act->real_mods,XkbXKBFile),sz); - if (tmp) - TryCopyStr(buf,"+",sz); - } - if (tmp) - TryCopyStr(buf,XkbVModMaskText(dpy,xkb,0,tmp,XkbXKBFile),sz); - } - else TryCopyStr(buf,"none",sz); - } - TryCopyStr(buf,",affect=",sz); - if ((act->affect&XkbSA_ISOAffectMask)==0) - TryCopyStr(buf,"all",sz); - else { - int nOut= 0; - if ((act->affect&XkbSA_ISONoAffectMods)==0) { - TryCopyStr(buf,"mods",sz); - nOut++; - } - if ((act->affect&XkbSA_ISONoAffectGroup)==0) { - sprintf(tbuf,"%sgroups",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if ((act->affect&XkbSA_ISONoAffectPtr)==0) { - sprintf(tbuf,"%spointer",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if ((act->affect&XkbSA_ISONoAffectCtrls)==0) { - sprintf(tbuf,"%scontrols",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - } - return True; -} - -/*ARGSUSED*/ -static Bool -CopySwitchScreenArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbSwitchScreenAction * act; -char tbuf[32]; - - act= &action->screen; - if ((act->flags&XkbSA_SwitchAbsolute)||(XkbSAScreen(act)<0)) - sprintf(tbuf,"screen=%d",XkbSAScreen(act)); - else sprintf(tbuf,"screen=+%d",XkbSAScreen(act)); - TryCopyStr(buf,tbuf,sz); - if (act->flags&XkbSA_SwitchApplication) - TryCopyStr(buf,",!same",sz); - else TryCopyStr(buf,",same",sz); - return True; -} - -/*ARGSUSED*/ -static Bool -CopySetLockControlsArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action, - char *buf,int *sz) -{ -XkbCtrlsAction * act; -unsigned tmp; -char tbuf[32]; - - act= &action->ctrls; - tmp= XkbActionCtrls(act); - TryCopyStr(buf,"controls=",sz); - if (tmp==0) - TryCopyStr(buf,"none",sz); - else if ((tmp&XkbAllBooleanCtrlsMask)==XkbAllBooleanCtrlsMask) - TryCopyStr(buf,"all",sz); - else { - int nOut= 0; - if (tmp&XkbRepeatKeysMask) { - sprintf(tbuf,"%sRepeatKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbSlowKeysMask) { - sprintf(tbuf,"%sSlowKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbBounceKeysMask) { - sprintf(tbuf,"%sBounceKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbStickyKeysMask) { - sprintf(tbuf,"%sStickyKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbMouseKeysMask) { - sprintf(tbuf,"%sMouseKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbMouseKeysAccelMask) { - sprintf(tbuf,"%sMouseKeysAccel",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbAccessXKeysMask) { - sprintf(tbuf,"%sAccessXKeys",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbAccessXTimeoutMask) { - sprintf(tbuf,"%sAccessXTimeout",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbAccessXFeedbackMask) { - sprintf(tbuf,"%sAccessXFeedback",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbAudibleBellMask) { - sprintf(tbuf,"%sAudibleBell",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbOverlay1Mask) { - sprintf(tbuf,"%sOverlay1",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbOverlay2Mask) { - sprintf(tbuf,"%sOverlay2",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - if (tmp&XkbIgnoreGroupLockMask) { - sprintf(tbuf,"%sIgnoreGroupLock",(nOut>0?"+":"")); - TryCopyStr(buf,tbuf,sz); - nOut++; - } - } - return True; -} - -/*ARGSUSED*/ -static Bool -CopyActionMessageArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbMessageAction * act; -unsigned all; -char tbuf[32]; - - act= &action->msg; - all= XkbSA_MessageOnPress|XkbSA_MessageOnRelease; - TryCopyStr(buf,"report=",sz); - if ((act->flags&all)==0) - TryCopyStr(buf,"none",sz); - else if ((act->flags&all)==all) - TryCopyStr(buf,"all",sz); - else if (act->flags&XkbSA_MessageOnPress) - TryCopyStr(buf,"KeyPress",sz); - else TryCopyStr(buf,"KeyRelease",sz); - sprintf(tbuf,",data[0]=0x%02x",act->message[0]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[1]=0x%02x",act->message[1]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[2]=0x%02x",act->message[2]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[3]=0x%02x",act->message[3]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[4]=0x%02x",act->message[4]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[5]=0x%02x",act->message[5]); TryCopyStr(buf,tbuf,sz); - return True; -} - -static Bool -CopyRedirectKeyArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbRedirectKeyAction * act; -char tbuf[32],*tmp; -unsigned kc; -unsigned vmods,vmods_mask; - - act= &action->redirect; - kc= act->new_key; - vmods= XkbSARedirectVMods(act); - vmods_mask= XkbSARedirectVModsMask(act); - if (xkb && xkb->names && xkb->names->keys && (kc<=xkb->max_key_code) && - (xkb->names->keys[kc].name[0]!='\0')) { - char *kn; - kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile); - sprintf(tbuf,"key=%s",kn); - } - else sprintf(tbuf,"key=%d",kc); - TryCopyStr(buf,tbuf,sz); - if ((act->mods_mask==0)&&(vmods_mask==0)) - return True; - if ((act->mods_mask==XkbAllModifiersMask)&& - (vmods_mask==XkbAllVirtualModsMask)) { - tmp= XkbVModMaskText(dpy,xkb,act->mods,vmods,XkbXKBFile); - TryCopyStr(buf,",mods=",sz); - TryCopyStr(buf,tmp,sz); - } - else { - if ((act->mods_mask&act->mods)||(vmods_mask&vmods)) { - tmp= XkbVModMaskText(dpy,xkb,act->mods_mask&act->mods, - vmods_mask&vmods,XkbXKBFile); - TryCopyStr(buf,",mods= ",sz); - TryCopyStr(buf,tmp,sz); - } - if ((act->mods_mask&(~act->mods))||(vmods_mask&(~vmods))) { - tmp= XkbVModMaskText(dpy,xkb,act->mods_mask&(~act->mods), - vmods_mask&(~vmods),XkbXKBFile); - TryCopyStr(buf,",clearMods= ",sz); - TryCopyStr(buf,tmp,sz); - } - } - return True; -} - -/*ARGSUSED*/ -static Bool -CopyDeviceBtnArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf, - int *sz) -{ -XkbDeviceBtnAction * act; -char tbuf[32]; - - act= &action->devbtn; - sprintf(tbuf,"device= %d",act->device); TryCopyStr(buf,tbuf,sz); - TryCopyStr(buf,",button=",sz); - sprintf(tbuf,"%d",act->button); - TryCopyStr(buf,tbuf,sz); - if (act->count>0) { - sprintf(tbuf,",count=%d",act->count); - TryCopyStr(buf,tbuf,sz); - } - if (action->type==XkbSA_LockDeviceBtn) { - switch (act->flags&(XkbSA_LockNoUnlock|XkbSA_LockNoLock)) { - case XkbSA_LockNoLock: - sprintf(tbuf,",affect=unlock"); break; - case XkbSA_LockNoUnlock: - sprintf(tbuf,",affect=lock"); break; - case XkbSA_LockNoUnlock|XkbSA_LockNoLock: - sprintf(tbuf,",affect=neither"); break; - default: - sprintf(tbuf,",affect=both"); break; - } - TryCopyStr(buf,tbuf,sz); - } - return True; -} - -/*ARGSUSED*/ -static Bool -CopyOtherArgs(Display *dpy,XkbDescPtr xkb,XkbAction *action,char *buf,int *sz) -{ -XkbAnyAction * act; -char tbuf[32]; - - act= &action->any; - sprintf(tbuf,"type=0x%02x",act->type); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[0]=0x%02x",act->data[0]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[1]=0x%02x",act->data[1]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[2]=0x%02x",act->data[2]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[3]=0x%02x",act->data[3]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[4]=0x%02x",act->data[4]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[5]=0x%02x",act->data[5]); TryCopyStr(buf,tbuf,sz); - sprintf(tbuf,",data[6]=0x%02x",act->data[6]); TryCopyStr(buf,tbuf,sz); - return True; -} - -typedef Bool (*actionCopy)( - Display * /* dpy */, - XkbDescPtr /* xkb */, - XkbAction * /* action */, - char * /* buf */, - int* /* sz */ -); -static actionCopy copyActionArgs[XkbSA_NumActions] = { - CopyNoActionArgs /* NoAction */, - CopyModActionArgs /* SetMods */, - CopyModActionArgs /* LatchMods */, - CopyModActionArgs /* LockMods */, - CopyGroupActionArgs /* SetGroup */, - CopyGroupActionArgs /* LatchGroup */, - CopyGroupActionArgs /* LockGroup */, - CopyMovePtrArgs /* MovePtr */, - CopyPtrBtnArgs /* PtrBtn */, - CopyPtrBtnArgs /* LockPtrBtn */, - CopySetPtrDfltArgs /* SetPtrDflt */, - CopyISOLockArgs /* ISOLock */, - CopyNoActionArgs /* Terminate */, - CopySwitchScreenArgs /* SwitchScreen */, - CopySetLockControlsArgs /* SetControls */, - CopySetLockControlsArgs /* LockControls */, - CopyActionMessageArgs /* ActionMessage*/, - CopyRedirectKeyArgs /* RedirectKey */, - CopyDeviceBtnArgs /* DeviceBtn */, - CopyDeviceBtnArgs /* LockDeviceBtn*/ -}; - -#define ACTION_SZ 256 - -char * -XkbActionText(Display *dpy,XkbDescPtr xkb,XkbAction *action,unsigned format) -{ -char buf[ACTION_SZ],*tmp; -int sz; - - if (format==XkbCFile) { - sprintf(buf, - "{ %20s, { 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x, 0x%02x } }", - XkbActionTypeText(action->type,XkbCFile), - action->any.data[0],action->any.data[1],action->any.data[2], - action->any.data[3],action->any.data[4],action->any.data[5], - action->any.data[6]); - } - else { - sprintf(buf,"%s(",XkbActionTypeText(action->type,XkbXKBFile)); - sz= ACTION_SZ-strlen(buf)+2; /* room for close paren and NULL */ - if (action->type<(unsigned)XkbSA_NumActions) - (*copyActionArgs[action->type])(dpy,xkb,action,buf,&sz); - else CopyOtherArgs(dpy,xkb,action,buf,&sz); - TryCopyStr(buf,")",&sz); - } - tmp= tbGetBuffer(strlen(buf)+1); - if (tmp!=NULL) - strcpy(tmp,buf); - return tmp; -} - -char * -XkbBehaviorText(XkbDescPtr xkb,XkbBehavior *behavior,unsigned format) -{ -char buf[256],*tmp; - - if (format==XkbCFile) { - if (behavior->type==XkbKB_Default) - sprintf(buf,"{ 0, 0 }"); - else sprintf(buf,"{ %3d, 0x%02x }",behavior->type,behavior->data); - } - else { - unsigned type,permanent; - type= behavior->type&XkbKB_OpMask; - permanent=((behavior->type&XkbKB_Permanent)!=0); - - if (type==XkbKB_Lock) { - sprintf(buf,"lock= %s",(permanent?"Permanent":"True")); - } - else if (type==XkbKB_RadioGroup) { - int g; - char *tmp; - g= ((behavior->data)&(~XkbKB_RGAllowNone))+1; - if (XkbKB_RGAllowNone&behavior->data) { - sprintf(buf,"allowNone,"); - tmp= &buf[strlen(buf)]; - } - else tmp= buf; - if (permanent) - sprintf(tmp,"permanentRadioGroup= %d",g); - else sprintf(tmp,"radioGroup= %d",g); - } - else if ((type==XkbKB_Overlay1)||(type==XkbKB_Overlay2)) { - int ndx,kc; - char *kn; - - ndx= ((type==XkbKB_Overlay1)?1:2); - kc= behavior->data; - if ((xkb)&&(xkb->names)&&(xkb->names->keys)) - kn= XkbKeyNameText(xkb->names->keys[kc].name,XkbXKBFile); - else { - static char tbuf[8]; - sprintf(tbuf,"%d",kc); - kn= tbuf; - } - if (permanent) - sprintf(buf,"permanentOverlay%d= %s",ndx,kn); - else sprintf(buf,"overlay%d= %s",ndx,kn); - } - } - tmp= tbGetBuffer(strlen(buf)+1); - if (tmp!=NULL) - strcpy(tmp,buf); - return tmp; -} - -/***====================================================================***/ - -char * -XkbIndentText(unsigned size) -{ -static char buf[32]; -register int i; - - if (size>31) - size= 31; - - for (i=0;i<size;i++) { - buf[i]= ' '; - } - buf[size]= '\0'; - return buf; -} - diff --git a/nx-X11/programs/Xserver/xkb/xkmread.c b/nx-X11/programs/Xserver/xkb/xkmread.c index 71b65a4..9364ae7 100644 --- a/nx-X11/programs/Xserver/xkb/xkmread.c +++ b/nx-X11/programs/Xserver/xkb/xkmread.c @@ -26,8 +26,6 @@ #ifdef HAVE_DIX_CONFIG_H #include <dix-config.h> -#elif defined(HAVE_CONFIG_H) -#include <config.h> #endif #include <stdio.h> @@ -156,6 +154,89 @@ int count,nRead=0; return nRead; } +unsigned +_XkbKSCheckCase(KeySym ks) +{ +unsigned set,rtrn; + + set= (ks & (~0xff)) >> 8; + rtrn= 0; + switch (set) { + case 0: /* latin 1 */ + if (((ks>=XK_A)&&(ks<=XK_Z))|| + ((ks>=XK_Agrave)&&(ks<=XK_THORN)&&(ks!=XK_multiply))) { + rtrn|= _XkbKSUpper; + } + if (((ks>=XK_a)&&(ks<=XK_z))|| + ((ks>=XK_agrave)&&(ks<=XK_ydiaeresis))) { + rtrn|= _XkbKSLower; + } + break; + case 1: /* latin 2 */ + if (((ks>=XK_Aogonek)&&(ks<=XK_Zabovedot)&&(ks!=XK_breve))|| + ((ks>=XK_Racute)&&(ks<=XK_Tcedilla))) { + rtrn|= _XkbKSUpper; + } + if (((ks>=XK_aogonek)&&(ks<=XK_zabovedot)&&(ks!=XK_caron))|| + ((ks>=XK_racute)&&(ks<=XK_tcedilla))) { + rtrn|= _XkbKSLower; + } + break; + case 2: /* latin 3 */ + if (((ks>=XK_Hstroke)&&(ks<=XK_Jcircumflex))|| + ((ks>=XK_Cabovedot)&&(ks<=XK_Scircumflex))) { + rtrn|= _XkbKSUpper; + } + if (((ks>=XK_hstroke)&&(ks<=XK_jcircumflex))|| + ((ks>=XK_cabovedot)&&(ks<=XK_scircumflex))) { + rtrn|= _XkbKSLower; + } + break; + case 3: /* latin 4 */ + if (((ks>=XK_Rcedilla)&&(ks<=XK_Tslash))|| + (ks==XK_ENG)|| + ((ks>=XK_Amacron)&&(ks<=XK_Umacron))) { + rtrn|= _XkbKSUpper; + } + if (((ks>=XK_rcedilla)&&(ks<=XK_tslash))|| + (ks==XK_eng)|| + ((ks>=XK_amacron)&&(ks<=XK_umacron))) { + rtrn|= _XkbKSLower; + } + break; + case 18: /* latin 8 */ + if ((ks==XK_Babovedot)|| + ((ks>=XK_Dabovedot)&&(ks<=XK_Wacute))|| + ((ks>=XK_Ygrave)&&(ks<=XK_Fabovedot))|| + (ks==XK_Mabovedot)|| + (ks==XK_Pabovedot)|| + (ks==XK_Sabovedot)|| + (ks==XK_Wdiaeresis)|| + ((ks>=XK_Wcircumflex)&&(ks<=XK_Ycircumflex))) { + rtrn|= _XkbKSUpper; + } + if ((ks==XK_babovedot)|| + (ks==XK_dabovedot)|| + (ks==XK_fabovedot)|| + (ks==XK_mabovedot)|| + ((ks>=XK_wgrave)&&(ks<=XK_wacute))|| + (ks==XK_ygrave)|| + ((ks>=XK_wdiaeresis)&&(ks<=XK_ycircumflex))) { + rtrn|= _XkbKSLower; + } + break; + case 19: /* latin 9 */ + if ((ks==XK_OE)||(ks==XK_Ydiaeresis)) { + rtrn|= _XkbKSUpper; + } + if (ks==XK_oe) { + rtrn|= _XkbKSLower; + } + break; + } + return rtrn; +} + /***====================================================================***/ static int @@ -1159,14 +1240,10 @@ int nRead; *loaded_rtrn|= XkmGeometryMask; break; default: - _XkbLibError(_XkbErrBadImplementation, - XkbConfigText(tmpTOC.type,XkbMessage),0); nRead= 0; break; } if (nRead!=tmpTOC.size) { - _XkbLibError(_XkbErrBadLength,XkbConfigText(tmpTOC.type,XkbMessage), - nRead-tmpTOC.size); return 0; } return (nRead>=0); @@ -1201,8 +1278,6 @@ char name[100]; return Xstrdup(name); break; default: - _XkbLibError(_XkbErrBadImplementation, - XkbConfigText(tmpTOC.type,XkbMessage),0); break; } return NULL; @@ -1268,8 +1343,6 @@ unsigned which= need|want; tmp= ReadXkmGeometry(file,result); break; default: - _XkbLibError(_XkbErrBadImplementation, - XkbConfigText(tmpTOC.type,XkbMessage),0); tmp= 0; break; } @@ -1279,8 +1352,7 @@ unsigned which= need|want; result->defined|= (1<<toc[i].type); } if (nRead!=tmpTOC.size) { - _XkbLibError(_XkbErrBadLength,XkbConfigText(tmpTOC.type,XkbMessage), - nRead-tmpTOC.size); + return 0; } } return which; -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 00e3e95e5f40de2aaf5bb920bc51a311404889fc Author: Ulrich Sibiller <uli42@gmx.de> Date: Wed Feb 28 00:52:10 2018 +0100 Lift xkb to xorg-xserver-7.1/1.1.0 state - non-functional changes only --- nx-X11/programs/Xserver/xkb/XKBAlloc.c | 2 -- nx-X11/programs/Xserver/xkb/XKBGAlloc.c | 1 - nx-X11/programs/Xserver/xkb/XKBMAlloc.c | 2 -- nx-X11/programs/Xserver/xkb/XKBMisc.c | 2 -- nx-X11/programs/Xserver/xkb/ddxPrivate.c | 1 - nx-X11/programs/Xserver/xkb/maprules.c | 3 --- nx-X11/programs/Xserver/xkb/xkbInit.c | 2 +- nx-X11/programs/Xserver/xkb/xkbfmisc.c | 1 - nx-X11/programs/Xserver/xkb/xkmread.c | 2 -- 9 files changed, 1 insertion(+), 15 deletions(-) diff --git a/nx-X11/programs/Xserver/xkb/XKBAlloc.c b/nx-X11/programs/Xserver/xkb/XKBAlloc.c index a8e72ca..4fe4960 100644 --- a/nx-X11/programs/Xserver/xkb/XKBAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBAlloc.c @@ -28,7 +28,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <dix-config.h> #endif - #include <stdio.h> #include <nx-X11/X.h> #include <nx-X11/Xproto.h> @@ -37,7 +36,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <xkbsrv.h> #include "xkbgeom.h" - /***===================================================================***/ /*ARGSUSED*/ diff --git a/nx-X11/programs/Xserver/xkb/XKBGAlloc.c b/nx-X11/programs/Xserver/xkb/XKBGAlloc.c index bb46bbd..b5a7cc3 100644 --- a/nx-X11/programs/Xserver/xkb/XKBGAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBGAlloc.c @@ -37,7 +37,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <xkbsrv.h> #include "xkbgeom.h" - #ifdef X_NOT_POSIX #define Size_t unsigned int #else diff --git a/nx-X11/programs/Xserver/xkb/XKBMAlloc.c b/nx-X11/programs/Xserver/xkb/XKBMAlloc.c index 04af166..dbd9b25 100644 --- a/nx-X11/programs/Xserver/xkb/XKBMAlloc.c +++ b/nx-X11/programs/Xserver/xkb/XKBMAlloc.c @@ -30,7 +30,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <config.h> #endif - #include <stdio.h> #include <nx-X11/X.h> #include <nx-X11/Xproto.h> @@ -39,7 +38,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <nx-X11/keysym.h> #include <xkbsrv.h> - /***====================================================================***/ Status diff --git a/nx-X11/programs/Xserver/xkb/XKBMisc.c b/nx-X11/programs/Xserver/xkb/XKBMisc.c index 68edfde..8e18425 100644 --- a/nx-X11/programs/Xserver/xkb/XKBMisc.c +++ b/nx-X11/programs/Xserver/xkb/XKBMisc.c @@ -30,7 +30,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <config.h> #endif - #include <stdio.h> #include <nx-X11/X.h> #include <nx-X11/Xproto.h> @@ -39,7 +38,6 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. #include <nx-X11/keysym.h> #include <xkbsrv.h> - /***====================================================================***/ #define mapSize(m) (sizeof(m)/sizeof(XkbKTMapEntryRec)) diff --git a/nx-X11/programs/Xserver/xkb/ddxPrivate.c b/nx-X11/programs/Xserver/xkb/ddxPrivate.c index 92dc6a0..0064cab 100644 --- a/nx-X11/programs/Xserver/xkb/ddxPrivate.c +++ b/nx-X11/programs/Xserver/xkb/ddxPrivate.c @@ -17,4 +17,3 @@ XkbDDXPrivate(DeviceIntPtr dev,KeyCode key,XkbAction *act) { return 0; } - diff --git a/nx-X11/programs/Xserver/xkb/maprules.c b/nx-X11/programs/Xserver/xkb/maprules.c index ccafcee..c64e1f7 100644 --- a/nx-X11/programs/Xserver/xkb/maprules.c +++ b/nx-X11/programs/Xserver/xkb/maprules.c @@ -36,7 +36,6 @@ #define XOS_USE_NO_LOCKING #include <nx-X11/Xos_r.h> - #include <nx-X11/Xproto.h> #include <nx-X11/X.h> #include <nx-X11/Xos.h> @@ -49,7 +48,6 @@ #include "xkbstr.h" #include <xkbsrv.h> - #ifdef DEBUG #define PR_DEBUG(s) fprintf(stderr,s) #define PR_DEBUG1(s,a) fprintf(stderr,s,a) @@ -1328,4 +1326,3 @@ XkbRF_GroupPtr group; _XkbFree(rules); return; } - diff --git a/nx-X11/programs/Xserver/xkb/xkbInit.c b/nx-X11/programs/Xserver/xkb/xkbInit.c index 443265d..a6417af 100644 --- a/nx-X11/programs/Xserver/xkb/xkbInit.c +++ b/nx-X11/programs/Xserver/xkb/xkbInit.c @@ -134,7 +134,7 @@ char * XkbOptionsUsed= NULL; int _XkbClientMajor= XkbMajorVersion; int _XkbClientMinor= XkbMinorVersion; -Bool noXkbExtension= XKB_DFLT_DISABLED; +Bool noXkbExtension= XKB_DFLT_DISABLED; Bool XkbWantRulesProp= XKB_DFLT_RULES_PROP; /***====================================================================***/ diff --git a/nx-X11/programs/Xserver/xkb/xkbfmisc.c b/nx-X11/programs/Xserver/xkb/xkbfmisc.c index b45e4d9..d2d4a5d 100644 --- a/nx-X11/programs/Xserver/xkb/xkbfmisc.c +++ b/nx-X11/programs/Xserver/xkb/xkbfmisc.c @@ -35,7 +35,6 @@ #include <nx-X11/Xos.h> #include <nx-X11/Xfuncs.h> - #include <nx-X11/X.h> #include <nx-X11/keysym.h> #include <nx-X11/Xproto.h> diff --git a/nx-X11/programs/Xserver/xkb/xkmread.c b/nx-X11/programs/Xserver/xkb/xkmread.c index 9364ae7..dca0955 100644 --- a/nx-X11/programs/Xserver/xkb/xkmread.c +++ b/nx-X11/programs/Xserver/xkb/xkmread.c @@ -33,7 +33,6 @@ #include <nx-X11/Xos.h> #include <nx-X11/Xfuncs.h> - #include <nx-X11/X.h> #include <nx-X11/Xproto.h> #include <nx-X11/keysym.h> @@ -51,7 +50,6 @@ XkbInternAtom(Display *dpy,char *str,Bool only_if_exists) return MakeAtom(str,strlen(str),!only_if_exists); } - #ifndef SEEK_SET #define SEEK_SET 0 #endif -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 1918bcb9c01fcf45727b514afb8ca8d978a2bf93 Merge: a6cb858 00e3e95 Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Feb 28 00:55:13 2018 +0100 Merge branch 'uli42-pr/update_xkb' into 3.6.x Attributes GH PR #648: https://github.com/ArcticaProject/nx-libs/pull/648 nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 | 10 +- nx-X11/programs/Xserver/xkb/Imakefile | 20 +- nx-X11/programs/Xserver/xkb/XKBAlloc.c | 4 - nx-X11/programs/Xserver/xkb/XKBGAlloc.c | 3 - nx-X11/programs/Xserver/xkb/XKBMAlloc.c | 4 +- nx-X11/programs/Xserver/xkb/XKBMisc.c | 2 - nx-X11/programs/Xserver/xkb/ddxConfig.c | 208 ---- nx-X11/programs/Xserver/xkb/ddxKillSrv.c | 18 +- nx-X11/programs/Xserver/xkb/ddxPrivate.c | 24 - nx-X11/programs/Xserver/xkb/ddxVT.c | 20 - nx-X11/programs/Xserver/xkb/maprules.c | 19 +- nx-X11/programs/Xserver/xkb/xkb.c | 2 +- nx-X11/programs/Xserver/xkb/xkbInit.c | 67 +- nx-X11/programs/Xserver/xkb/xkbUtils.c | 6 + nx-X11/programs/Xserver/xkb/xkbconfig.c | 6 + nx-X11/programs/Xserver/xkb/xkberrs.c | 2 - nx-X11/programs/Xserver/xkb/xkbfmisc.c | 484 +------- nx-X11/programs/Xserver/xkb/xkbout.c | 1051 ----------------- nx-X11/programs/Xserver/xkb/xkbtext.c | 1326 ---------------------- nx-X11/programs/Xserver/xkb/xkmread.c | 98 +- 20 files changed, 160 insertions(+), 3214 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 9822e9703370980fa86906d7ffd63d62e7e2bc53 Author: Ulrich Sibiller <uli42@gmx.de> Date: Tue Feb 27 22:56:12 2018 +0100 nxagent: rearrange nx options in usage make them appear in the nx section. Also separate the nx section from the other options by an extra emtpy line. --- nx-X11/programs/Xserver/hw/nxagent/Args.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/Args.c b/nx-X11/programs/Xserver/hw/nxagent/Args.c index c31acc2..262c1df 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Args.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Args.c @@ -2111,24 +2111,24 @@ Reply Total Cached Bits In Bits Out Bits/Reply Ratio void ddxUseMsg(void) { - ErrorF("-display string display name of the real server\n"); - ErrorF("-sync synchronize with the real server\n"); ErrorF("-full utilize full regeneration\n"); ErrorF("-class string default visual class\n"); ErrorF("-depth int default depth\n"); ErrorF("-geometry WxH+X+Y window size and position\n"); - ErrorF("-autodpi detect real server's DPI and use that in the session\n"); ErrorF("-bw int window border width\n"); ErrorF("-name string window name\n"); ErrorF("-scrns int number of screens to generate\n"); ErrorF("-install install colormaps directly\n"); - ErrorF("The NX system adds the following arguments:\n"); + ErrorF("\nThe NX system adds the following arguments:\n"); ErrorF("-options file|string file or string containing nx/nx options\n"); ErrorF("-forcenx force use of NX protocol messages assuming communication through nxproxy\n"); ErrorF("-timeout int auto-disconnect timeout in seconds (minimum allowed: 60)\n"); ErrorF("-norootlessexit don't exit if there are no clients in rootless mode\n"); ErrorF("-nomagicpixel disable nxagent's magic pixel\n"); + ErrorF("-autodpi detect real server's DPI and use that in the session\n"); + ErrorF("-display string display name of the real server\n"); + ErrorF("-sync synchronize with the real server\n"); #ifdef RENDER ErrorF("-norender disable the use of the render extension\n"); ErrorF("-nocomposite disable the use of the composite extension\n"); -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 809206d0cf79f367d852f180f1a5733420010689 Author: Ulrich Sibiller <uli42@gmx.de> Date: Tue Feb 27 23:00:08 2018 +0100 os: hide ttyxx option is used nowhere anyway --- nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 | 3 --- nx-X11/programs/Xserver/os/utils.c | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 index e860857..995576b 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 +++ b/nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 @@ -296,9 +296,6 @@ sets default connection timeout in seconds. .B \-tst disables all testing extensions. .TP 8 -.B tty\fIxx\fP -ignored, for servers started the ancient way (from init). -.TP 8 .B v sets video-off screen-saver preference. .TP 8 diff --git a/nx-X11/programs/Xserver/os/utils.c b/nx-X11/programs/Xserver/os/utils.c index 2edd8dd..0a1e3f7 100644 --- a/nx-X11/programs/Xserver/os/utils.c +++ b/nx-X11/programs/Xserver/os/utils.c @@ -269,7 +269,9 @@ long Memory_fail = 0; #include <stdlib.h> /* for random() */ #endif +#ifndef NXAGENT_SERVER char *dev_tty_from_init = NULL; /* since we need to parse it anyway */ +#endif extern char dispatchExceptionAtReset; @@ -628,7 +630,9 @@ void UseMsg(void) ErrorF("-terminate terminate at server reset\n"); ErrorF("-to # connection time out\n"); ErrorF("-tst disable testing extensions\n"); +#ifndef NXAGENT_SERVER ErrorF("ttyxx server started from init on /dev/ttyxx\n"); +#endif ErrorF("v video blanking for screen-saver\n"); ErrorF("-v screen-saver without video blanking\n"); ErrorF("-wm WhenMapped default backing-store\n"); @@ -1036,11 +1040,13 @@ ProcessCommandLine(int argc, char *argv[]) /* ignore all remaining arguments */ break; } +#ifndef NXAGENT_SERVER else if (strncmp (argv[i], "tty", 3) == 0) { /* just in case any body is interested */ dev_tty_from_init = argv[i]; } +#endif #ifdef XDMCP else if ((skip = XdmcpOptions(argc, argv, i)) != i) { -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch 3.6.x in repository nx-libs. commit 5c4777b2d3d3d06ee8af6bfd78289373e340ad52 Merge: 1918bcb 809206d Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Feb 28 01:03:53 2018 +0100 Merge branch 'uli42-pr/fix_autodpi_in_usage' into 3.6.x Attributes GH PR #667: https://github.com/ArcticaProject/nx-libs/pull/667 nx-X11/programs/Xserver/hw/nxagent/Args.c | 8 ++++---- nx-X11/programs/Xserver/hw/nxagent/man/nxagent.1 | 3 --- nx-X11/programs/Xserver/os/utils.c | 6 ++++++ 3 files changed, 10 insertions(+), 7 deletions(-) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git