From c37c47ac496ec3335845ce9575c82b1fb28a831e Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 6 Dec 2017 00:04:29 +0100 Subject: Keyboard.c: Improve TEST output --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 51f57a897..c4a45ceca 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -556,11 +556,17 @@ static char *nxagentXkbGetRules() strcpy(path, XkbBaseDirectory); strcat(path, "/rules/"); strcat(path, XKB_DFLT_RULES_FILE); + #ifdef TEST + fprintf(stderr, "nxagentXkbGetRules: checking rules file [%s]\n", path); + #endif ret = stat(path, &buf); if (ret == 0) { free(path); + #ifdef TEST + fprintf(stderr, "nxagentXkbGetRules: returning default rules file [%s]\n", XKB_DFLT_RULES_FILE); + #endif return XKB_DFLT_RULES_FILE; } @@ -571,11 +577,17 @@ static char *nxagentXkbGetRules() strcpy(path, XkbBaseDirectory); strcat(path, "/rules/"); strcat(path, XKB_ALTS_RULES_FILE); + #ifdef TEST + fprintf(stderr, "nxagentXkbGetRules: checking rules file [%s]\n", path); + #endif ret = stat(path, &buf); if (ret == 0) { free(path); + #ifdef TEST + fprintf(stderr, "nxagentXkbGetRules: returning alternative rules file [%s]\n", XKB_ALTS_RULES_FILE); + #endif return XKB_ALTS_RULES_FILE; } @@ -584,6 +596,9 @@ static char *nxagentXkbGetRules() #endif free(path); + #ifdef TEST + fprintf(stderr, "nxagentXkbGetRules: returning default rules file [%s]\n", XKB_DFLT_RULES_FILE); + #endif return XKB_DFLT_RULES_FILE; } @@ -951,7 +966,7 @@ XkbError: options = XKB_DFLT_KB_OPTIONS; #ifdef TEST - fprintf(stderr, "nxagentKeyboardProc: XkbInitialMap [%s]\n", XkbInitialMap ? XkbInitialMap : "NULL"); + fprintf(stderr, "nxagentKeyboardProc: XkbInitialMap (option -xkbmap) is [%s]\n", XkbInitialMap ? XkbInitialMap : "NULL"); #endif if (XkbInitialMap) { -- cgit v1.2.3 From 9566acb5a4b3e8b91aec74bc890f078a78cedbc2 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Wed, 6 Dec 2017 00:04:44 +0100 Subject: Keyboard.c: print message class for user messages --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index c4a45ceca..9b9f33666 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1894,23 +1894,23 @@ void nxagentKeycodeConversionSetup(void) if (doptions != NULL) fprintf(keyboard_file, "options=\"%s\"\n", doptions[0] == '\0' ? "," : doptions); fclose(keyboard_file); - fprintf(stderr, "keyboard file created\n"); + fprintf(stderr, "Info: keyboard file created\n"); } else { int save_err = errno; - fprintf(stderr, "keyboard file not created: %s\n", strerror(save_err)); + fprintf(stderr, "Error: keyboard file not created: %s\n", strerror(save_err)); } free(keyboard_file_path); } else { - fprintf(stderr, "SessionPath not defined\n"); + fprintf(stderr, "Warning: SessionPath not defined\n"); } } else { - fprintf(stderr, "Failed to create the keyboard file\n"); + fprintf(stderr, "Warning: Failed to create the keyboard file\n"); } if (drules != NULL && dmodel != NULL && -- cgit v1.2.3 From ba8076697d825c8f3e0388967a11a7d691a4b61c Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 14:40:53 +0200 Subject: Keyboard.c: Add some comments with changelog explanations This helps understanding the intention of the following code. --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 9b9f33666..aa36c0a83 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -909,6 +909,17 @@ XkbError: rules = nxagentXkbGetRules(); + /* + from nxagent changelog: + 2.0.22: + - Implemented handling of value "query" for nxagentKbtype. This value + is passed by the NX client for MacOSX. If value of nxagentKbtype is + "query" or NULL we init keyboard by core protocol functions reading + the keyboard mapping of the X server. The property _XKB_RULES_NAMES + is always set on the root window with default values of model and + layout. + */ + if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") != 0)) { for (i = 0; nxagentKeyboard[i] != '/' && nxagentKeyboard[i] != 0; i++); @@ -1721,6 +1732,16 @@ void nxagentEnableXkbExtension(void) } } +/* + from nxagent-3.0.0-88 changelog: + + - Fixed TR10D01539. Some XKEYBOARD requests are disabled if the option + 'keyboard' has value 'query'. This locks the initial keyboard map. + Enabling/disabling of XKEYBOARD requests is done at run time. + + - Added -noxkblock command line option enabling the XKEYBOARD requests + even if the option 'keyboard' value is 'query'. +*/ void nxagentTuneXkbWrapper(void) { if (nxagentOption(InhibitXkb) == 0) -- cgit v1.2.3 From 1e1ea1ceae43cba0744f1c277d2fe7a6a547cf70 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 15:25:53 +0200 Subject: Keyboard.c: Some code cleanups --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 103 ++++++++++++-------------- 1 file changed, 46 insertions(+), 57 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index aa36c0a83..565153f84 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -647,11 +647,10 @@ void nxagentChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl) * devices attached to the real X server. */ - if (nxagentOption(DeviceControl) == True) + if (nxagentOption(DeviceControl)) { unsigned long value_mask; XKeyboardControl values; - int i; #ifdef TEST fprintf(stderr, "nxagentChangeKeyboardControl: WARNING! Propagating changes to keyboard settings.\n"); @@ -686,7 +685,7 @@ void nxagentChangeKeyboardControl(DeviceIntPtr pDev, KeybdCtrl *ctrl) value_mask = KBLed | KBLedMode; - for (i = 1; i <= 32; i++) + for (int i = 1; i <= 32; i++) { values.led = i; values.led_mode = (ctrl->leds & (1 << (i - 1))) ? LedModeOn : LedModeOff; @@ -888,7 +887,7 @@ XkbError: #endif #ifdef XKB - } else { + } else { /* if (noXkbExtension) */ FILE *file; XkbConfigRtrnRec config; @@ -920,7 +919,7 @@ XkbError: layout. */ - if ((nxagentKeyboard != NULL) && (strcmp(nxagentKeyboard, "query") != 0)) + if (nxagentKeyboard && (strcmp(nxagentKeyboard, "query") != 0)) { for (i = 0; nxagentKeyboard[i] != '/' && nxagentKeyboard[i] != 0; i++); @@ -1046,7 +1045,7 @@ XkbError: else nxagentXkbConfigFilePath = strdup(XKB_CONFIG_FILE_NX); - if (nxagentXkbConfigFilePath == NULL) + if (!nxagentXkbConfigFilePath) { FatalError("nxagentKeyboardProc: malloc failed."); } @@ -1056,7 +1055,7 @@ XkbError: nxagentXkbConfigFilePath); #endif - if ((file = fopen(nxagentXkbConfigFilePath, "r")) != NULL) { + if ((file = fopen(nxagentXkbConfigFilePath, "r"))) { #ifdef TEST fprintf(stderr, "nxagentKeyboardProc: Going to parse config file.\n"); @@ -1129,8 +1128,8 @@ XkbError: #endif #ifdef DEBUG fprintf(stderr, "nxagentKeyboardProc: Going to set rules and init device: " - "[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n", - rules, model, layout, variants, options); + "[rules='%s',model='%s',layout='%s',variants='%s',options='%s'].\n", + rules, model, layout, variants, options); #endif XkbSetRulesDflts(rules, model, layout, variants, options); @@ -1338,17 +1337,15 @@ int nxagentResetKeyboard(void) savedBellPercent, savedBellPitch, savedBellDuration); #endif - devBackup = malloc(sizeof(DeviceIntRec)); - - if (devBackup == NULL) + if (devBackup = malloc(sizeof(DeviceIntRec))) { - #ifdef PANIC - fprintf(stderr, "nxagentSaveKeyboardDeviceData: PANIC! Can't allocate backup structure.\n"); - #endif + memset(devBackup, 0, sizeof(DeviceIntRec)); } else { - memset(devBackup, 0, sizeof(DeviceIntRec)); + #ifdef PANIC + fprintf(stderr, "nxagentResetKeyboard: PANIC! Can't allocate backup structure.\n"); + #endif } nxagentSaveKeyboardDeviceData(dev, devBackup); @@ -1449,7 +1446,6 @@ void nxagentCheckModifierMasks(CARD8 keycode, int j) void nxagentCheckRemoteKeycodes() { nxagentCapsLockKeycode = XKeysymToKeycode(nxagentDisplay, XK_Caps_Lock); - nxagentNumLockKeycode = XKeysymToKeycode(nxagentDisplay, XK_Num_Lock); #ifdef DEBUG @@ -1461,7 +1457,7 @@ void nxagentCheckRemoteKeycodes() static int nxagentSaveKeyboardDeviceData(DeviceIntPtr dev, DeviceIntPtr devBackup) { - if (devBackup == NULL) + if (!devBackup) { #ifdef PANIC fprintf(stderr, "nxagentSaveKeyboardDeviceData: PANIC! Pointer to backup structure is null.\n"); @@ -1470,10 +1466,8 @@ static int nxagentSaveKeyboardDeviceData(DeviceIntPtr dev, DeviceIntPtr devBacku return -1; } - devBackup -> key = dev -> key; - - devBackup -> focus = dev -> focus; - + devBackup -> key = dev -> key; + devBackup -> focus = dev -> focus; devBackup -> kbdfeed = dev -> kbdfeed; #ifdef DEBUG @@ -1485,7 +1479,7 @@ static int nxagentSaveKeyboardDeviceData(DeviceIntPtr dev, DeviceIntPtr devBacku static int nxagentRestoreKeyboardDeviceData(DeviceIntPtr devBackup, DeviceIntPtr dev) { - if (devBackup == NULL) + if (!devBackup) { #ifdef PANIC fprintf(stderr, "nxagentRestoreKeyboardDeviceData: PANIC! Pointer to backup structure is null.\n"); @@ -1494,10 +1488,8 @@ static int nxagentRestoreKeyboardDeviceData(DeviceIntPtr devBackup, DeviceIntPtr return -1; } - dev -> key = devBackup -> key; - - dev -> focus = devBackup -> focus; - + dev -> key = devBackup -> key; + dev -> focus = devBackup -> focus; dev -> kbdfeed = devBackup -> kbdfeed; #ifdef DEBUG @@ -1512,7 +1504,7 @@ static int nxagentFreeKeyboardDeviceData(DeviceIntPtr dev) { KbdFeedbackPtr k, knext; - if (dev == NULL) + if (!dev) { #ifdef PANIC fprintf(stderr, "nxagentFreeKeyboardDeviceData: PANIC! Pointer to device structure is null.\n"); @@ -1535,14 +1527,14 @@ static int nxagentFreeKeyboardDeviceData(DeviceIntPtr dev) free(dev->key->modifierKeyMap); free(dev->key); - dev->key=NULL; + dev->key = NULL; } if (dev->focus) { free(dev->focus->trace); free(dev->focus); - dev->focus=NULL; + dev->focus = NULL; } for (k = dev->kbdfeed; k; k = knext) @@ -1624,7 +1616,7 @@ void nxagentInitXkbWrapper(void) fprintf(stderr, "nxagentInitXkbWrapper: Called.\n"); #endif - if (nxagentOption(InhibitXkb) == 0) + if (!nxagentOption(InhibitXkb)) { #ifdef TEST fprintf(stderr, "nxagentInitXkbWrapper: Nothing to do.\n"); @@ -1635,9 +1627,7 @@ void nxagentInitXkbWrapper(void) memset(&nxagentXkbWrapper, 0, sizeof(XkbWrapperRec)); - extension = CheckExtension("XKEYBOARD"); - - if (extension != NULL) + if ((extension = CheckExtension("XKEYBOARD"))) { nxagentXkbWrapper.base = extension -> base; nxagentXkbWrapper.eventBase = extension -> eventBase; @@ -1668,9 +1658,9 @@ void nxagentDisableXkbExtension(void) if (nxagentXkbWrapper.base > 0) { - if (nxagentXkbWrapper.ProcXkbDispatchBackup == NULL) + if (!nxagentXkbWrapper.ProcXkbDispatchBackup) { - nxagentXkbWrapper.ProcXkbDispatchBackup = ProcVector[nxagentXkbWrapper.base]; + nxagentXkbWrapper.ProcXkbDispatchBackup = ProcVector[nxagentXkbWrapper.base]; ProcVector[nxagentXkbWrapper.base] = ProcXkbInhibited; } @@ -1681,7 +1671,7 @@ void nxagentDisableXkbExtension(void) } #endif - if (nxagentXkbWrapper.SProcXkbDispatchBackup == NULL) + if (!nxagentXkbWrapper.SProcXkbDispatchBackup) { nxagentXkbWrapper.SProcXkbDispatchBackup = SwappedProcVector[nxagentXkbWrapper.base]; @@ -1704,7 +1694,7 @@ void nxagentEnableXkbExtension(void) if (nxagentXkbWrapper.base > 0) { - if (nxagentXkbWrapper.ProcXkbDispatchBackup != NULL) + if (nxagentXkbWrapper.ProcXkbDispatchBackup) { ProcVector[nxagentXkbWrapper.base] = nxagentXkbWrapper.ProcXkbDispatchBackup; @@ -1717,7 +1707,7 @@ void nxagentEnableXkbExtension(void) } #endif - if (nxagentXkbWrapper.SProcXkbDispatchBackup != NULL) + if (nxagentXkbWrapper.SProcXkbDispatchBackup) { SwappedProcVector[nxagentXkbWrapper.base] = nxagentXkbWrapper.SProcXkbDispatchBackup; @@ -1744,7 +1734,7 @@ void nxagentEnableXkbExtension(void) */ void nxagentTuneXkbWrapper(void) { - if (nxagentOption(InhibitXkb) == 0) + if (!nxagentOption(InhibitXkb)) { #ifdef TEST fprintf(stderr, "nxagentTuneXkbWrapper: Nothing to do.\n"); @@ -1753,8 +1743,7 @@ void nxagentTuneXkbWrapper(void) return; } - if (nxagentKeyboard != NULL && - strcmp(nxagentKeyboard, "query") == 0) + if (nxagentKeyboard && strcmp(nxagentKeyboard, "query") == 0) { nxagentDisableXkbExtension(); } @@ -1799,14 +1788,14 @@ static int nxagentXkbGetNames(char **rules, char **model, char **layout, atom, 0, 256, 0, XA_STRING, &type, &format, &n, &after, (unsigned char **)&data); - if (result !=Success || data == NULL) + if (result != Success || !data) { return 0; } if ((after > 0) || (type != XA_STRING) || (format != 8)) { - if (data != NULL) + if (data) { XFree(data); return 0; @@ -1817,7 +1806,7 @@ static int nxagentXkbGetNames(char **rules, char **model, char **layout, if (name < data + n) { - *rules = name; + *rules = name; name += strlen(name) + 1; } @@ -1876,7 +1865,7 @@ void nxagentKeycodeConversionSetup(void) &dvariant, &doptions); #ifdef DEBUG - if (drulesLen != 0 && drules != NULL && dmodel != NULL) + if (drulesLen != 0 && drules && dmodel) { fprintf(stderr, "nxagentKeycodeConversionSetup: " "Remote: [rules='%s',model='%s',layout='%s',variant='%s',options='%s'].\n", @@ -1892,27 +1881,27 @@ void nxagentKeycodeConversionSetup(void) if (drulesLen != 0) { char *sessionpath = nxagentGetSessionPath(); - if (sessionpath != NULL) + if (sessionpath) { int keyboard_file_path_size = strlen(sessionpath) + strlen("/keyboard"); char *keyboard_file_path = malloc((keyboard_file_path_size + 1) * sizeof(char)); FILE *keyboard_file; - if (keyboard_file_path == NULL) + if (!keyboard_file_path) { FatalError("nxagentKeycodeConversionSetup: malloc failed."); } strcpy(keyboard_file_path, sessionpath); strcat(keyboard_file_path, "/keyboard"); - if ((keyboard_file = fopen(keyboard_file_path, "w")) != NULL) { - if (drules != NULL) + if ((keyboard_file = fopen(keyboard_file_path, "w"))) { + if (drules) fprintf(keyboard_file, "rules=\"%s\"\n", drules[0] == '\0' ? "," : drules); - if (dmodel != NULL) + if (dmodel) fprintf(keyboard_file, "model=\"%s\"\n", dmodel[0] == '\0' ? "," : dmodel); - if (dlayout != NULL) + if (dlayout) fprintf(keyboard_file, "layout=\"%s\"\n", dlayout[0] == '\0' ? "," : dlayout); - if (dvariant != NULL) + if (dvariant) fprintf(keyboard_file, "variant=\"%s\"\n", dvariant[0] == '\0' ? "," : dvariant); - if (doptions != NULL) + if (doptions) fprintf(keyboard_file, "options=\"%s\"\n", doptions[0] == '\0' ? "," : doptions); fclose(keyboard_file); fprintf(stderr, "Info: keyboard file created\n"); @@ -1934,7 +1923,7 @@ void nxagentKeycodeConversionSetup(void) fprintf(stderr, "Warning: Failed to create the keyboard file\n"); } - if (drules != NULL && dmodel != NULL && + if (drules && dmodel && (strcmp(drules, "evdev") == 0 || strcmp(dmodel, "evdev") == 0)) { @@ -1951,7 +1940,7 @@ void nxagentKeycodeConversionSetup(void) fprintf(stderr, "Info: Keycode conversion auto-determined as off\n"); } - if (drules != NULL) + if (drules) { XFree(drules); } @@ -1981,4 +1970,4 @@ void nxagentResetKeycodeConversion(void) } } -#endif +#endif /* XKB */ -- cgit v1.2.3 From 8b206a261c97817adf951a272035c2202f440765 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 15:26:11 +0200 Subject: Keyboard.c: Make xkblock more robust If xorg upstream xkb gets extended one day the previous code would not block new xkb calls even if they would change keyboard settings. So only act on the currently known calls and throw an error for all unknown calls. --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 565153f84..22cf1b44d 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1600,11 +1600,31 @@ int ProcXkbInhibited(register ClientPtr client) { return BadAccess; } - default: + case X_kbBell: + case X_kbGetCompatMap: + case X_kbGetControls: + case X_kbGetDeviceInfo: + case X_kbGetGeometry: + case X_kbGetIndicatorMap: + case X_kbGetIndicatorState: + case X_kbGetMap: + case X_kbGetNamedIndicator: + case X_kbGetNames: + case X_kbGetState: + case X_kbListComponents: + case X_kbPerClientFlags: + case X_kbSelectEvents: + case X_kbSetDeviceInfo: + case X_kbUseExtension: { return (client->swapped ? nxagentXkbWrapper.SProcXkbDispatchBackup(client) : nxagentXkbWrapper.ProcXkbDispatchBackup(client)); } + default: + { + /* Just make sure that it works in case xkb gets extended in future */ + return BadImplementation; + } } } -- cgit v1.2.3 From eb4abe4c55b2ff55c0a252f6f87f28d16be144d0 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 15:58:08 +0200 Subject: Keyboard.c: Use calloc instead of malloc + memset --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 22cf1b44d..1d3c94189 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1337,11 +1337,7 @@ int nxagentResetKeyboard(void) savedBellPercent, savedBellPitch, savedBellDuration); #endif - if (devBackup = malloc(sizeof(DeviceIntRec))) - { - memset(devBackup, 0, sizeof(DeviceIntRec)); - } - else + if (!(devBackup = calloc(1, sizeof(DeviceIntRec)))) { #ifdef PANIC fprintf(stderr, "nxagentResetKeyboard: PANIC! Can't allocate backup structure.\n"); -- cgit v1.2.3 From 94fae7497c8499b5106d6ccaa85ad11c8e4f95d6 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 16:41:09 +0200 Subject: Keyboard.c: XkbDfltRepeatDelay and XkbDfltRepeatIntervall are int not uint --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 1d3c94189..1cb5cc9d7 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -754,7 +754,7 @@ N/A XkbDfltRepeatInterval = ~ 0; #ifdef TEST - fprintf(stderr, "nxagentKeyboardProc: Set repeat delay to [%u] interval to [%u].\n", + fprintf(stderr, "nxagentKeyboardProc: Set repeat delay to [%d] interval to [%d].\n", XkbDfltRepeatDelay, XkbDfltRepeatInterval); #endif -- cgit v1.2.3 From 88bc52615cdc3d348d1d6565e9ea40b23c226b29 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 12 Aug 2017 17:38:35 +0200 Subject: Keyboard.c: set variables to NULL after free --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 1cb5cc9d7..951c30cc8 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -1065,6 +1065,7 @@ XkbError: ErrorF("Error parsing config file.\n"); free(nxagentXkbConfigFilePath); + nxagentXkbConfigFilePath = NULL; fclose(file); goto XkbError; @@ -1095,6 +1096,7 @@ XkbError: options = config.options; free(nxagentXkbConfigFilePath); + nxagentXkbConfigFilePath = NULL; fclose(file); } @@ -1114,6 +1116,7 @@ XkbError: nxagentBell, nxagentChangeKeyboardControl); free(nxagentXkbConfigFilePath); + nxagentXkbConfigFilePath = NULL; if (!nxagentKeyboard || strcmp(nxagentKeyboard, "query") == 0) { -- cgit v1.2.3 From de9b4edf94062e5cc58161fd3b8d28fe9cd115c2 Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 19:09:10 +0200 Subject: Keyboard.c: Fix indentation --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index 951c30cc8..e55dbfbce 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -869,22 +869,22 @@ XkbError: free(layout); } #endif - XGetKeyboardControl(nxagentDisplay, &values); + XGetKeyboardControl(nxagentDisplay, &values); - memmove((char *) defaultKeyboardControl.autoRepeats, - (char *) values.auto_repeats, sizeof(values.auto_repeats)); + memmove((char *) defaultKeyboardControl.autoRepeats, + (char *) values.auto_repeats, sizeof(values.auto_repeats)); - #ifdef TEST - { - int ret = - #endif - InitKeyboardDeviceStruct((DevicePtr) pDev, &keySyms, modmap, - nxagentBell, nxagentChangeKeyboardControl); + #ifdef TEST + { + int ret = + #endif + InitKeyboardDeviceStruct((DevicePtr) pDev, &keySyms, modmap, + nxagentBell, nxagentChangeKeyboardControl); - #ifdef TEST - fprintf(stderr, "nxagentKeyboardProc: InitKeyboardDeviceStruct returns [%d].\n", ret); - } - #endif + #ifdef TEST + fprintf(stderr, "nxagentKeyboardProc: InitKeyboardDeviceStruct returns [%d].\n", ret); + } + #endif #ifdef XKB } else { /* if (noXkbExtension) */ -- cgit v1.2.3 From 8e5b1e7a261f8861fac1268d8c7c97af96f52bbe Mon Sep 17 00:00:00 2001 From: Ulrich Sibiller Date: Sat, 22 Jul 2017 22:12:51 +0200 Subject: Keyboard.c: Replace some memsets by zero initialization --- nx-X11/programs/Xserver/hw/nxagent/Keyboard.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'nx-X11/programs/Xserver/hw/nxagent/Keyboard.c') diff --git a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c index e55dbfbce..8ae64ee00 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Keyboard.c @@ -893,7 +893,7 @@ XkbError: char *nxagentXkbConfigFilePath; - XkbComponentNamesRec names; + XkbComponentNamesRec names = {0}; char *rules, *variants, *options; #ifdef TEST @@ -904,7 +904,6 @@ XkbError: fprintf(stderr, "nxagentKeyboardProc: nxagentKeyboard is [%s].\n", nxagentKeyboard ? nxagentKeyboard : "NULL"); #endif - memset(&names, 0, sizeof(XkbComponentNamesRec)); rules = nxagentXkbGetRules(); @@ -1257,11 +1256,10 @@ void nxagentNotifyKeyboardChanges(int oldMinKeycode, int oldMaxKeycode) if (!noXkbExtension) { DeviceIntPtr dev; - xkbNewKeyboardNotify nkn; + xkbNewKeyboardNotify nkn = {0}; dev = inputInfo.keyboard; - memset(&nkn, 0, sizeof(xkbNewKeyboardNotify)); nkn.deviceID = nkn.oldDeviceID = dev -> id; nkn.minKeyCode = 8; nkn.maxKeyCode = 255; @@ -1279,9 +1277,8 @@ void nxagentNotifyKeyboardChanges(int oldMinKeycode, int oldMaxKeycode) #endif int i; - xEvent event; + xEvent event = {0}; - memset(&event, 0, sizeof(xEvent)); event.u.u.type = MappingNotify; event.u.mappingNotify.request = MappingKeyboard; event.u.mappingNotify.firstKeyCode = inputInfo.keyboard -> key -> curKeySyms.minKeyCode; -- cgit v1.2.3