Unverified Commit b1d3f2ca authored by Mihai Moldovan's avatar Mihai Moldovan

Merge branch 'uli42-pr/keyboard_fixes' into arctica-3.6.x

parents 7b79e8d8 2f2ade61
...@@ -438,22 +438,14 @@ Bool nxagentReconnectSession(void) ...@@ -438,22 +438,14 @@ Bool nxagentReconnectSession(void)
if (nxagentKeyboard != NULL) if (nxagentKeyboard != NULL)
{ {
int size; nxagentOldKeyboard = strndup(nxagentKeyboard, strlen(nxagentKeyboard));
if (nxagentOldKeyboard == NULL)
size = strlen(nxagentKeyboard);
if ((nxagentOldKeyboard = malloc(size + 1)) != NULL)
{ {
strncpy(nxagentOldKeyboard, nxagentKeyboard, size); /* 0 means reconnection failed */
return 0;
nxagentOldKeyboard[size] = '\0';
}
} }
if (nxagentKeyboard)
{
free(nxagentKeyboard); free(nxagentKeyboard);
nxagentKeyboard = NULL; nxagentKeyboard = NULL;
} }
......
...@@ -223,8 +223,8 @@ static int NXVerifyXkbBaseDirectory(const char *dirPath) ...@@ -223,8 +223,8 @@ static int NXVerifyXkbBaseDirectory(const char *dirPath)
{ {
#ifdef TEST #ifdef TEST
fprintf(stderr, "NXVerifyXkbBaseDirectory: Can't find the keymap.dir file [%s].\n", fprintf(stderr, "NXVerifyXkbBaseDirectory: Xkb Base Directory [%s] is not valid (can't find file [%s]).\n",
rulesBaseFilePath); dirPath, rulesBaseFilePath);
#endif #endif
free(rulesBaseFilePath); free(rulesBaseFilePath);
...@@ -767,36 +767,6 @@ char tmpname[PATH_MAX]; ...@@ -767,36 +767,6 @@ char tmpname[PATH_MAX];
strncpy(nameRtrn,keymap,nameRtrnLen); strncpy(nameRtrn,keymap,nameRtrnLen);
nameRtrn[nameRtrnLen-1]= '\0'; nameRtrn[nameRtrnLen-1]= '\0';
} }
#if defined(Lynx) && defined(__i386__) && defined(NEED_POPEN_WORKAROUND)
/* somehow popen/pclose is broken on LynxOS AT 2.3.0/2.4.0!
* the problem usually shows up with XF86Setup
* this hack waits at max 5 seconds after pclose() returns
* for the output of the xkbcomp output file.
* I didn't manage to get a patch in time for the 3.2 release
*/
{
int i;
char name[PATH_MAX];
#ifdef NXAGENT_SERVER
if (_NXGetXkbCompPath(XkbBaseDirectory)!=NULL)
sprintf(name,"%s/%s%s.xkm", _NXGetXkbCompPath(XkbBaseDirectory)
,xkm_output_dir, keymap);
#else
if (XkbBaseDirectory!=NULL)
sprintf(name,"%s/%s%s.xkm", XkbBaseDirectory
,xkm_output_dir, keymap);
#endif
else
sprintf(name,"%s%s.xkm", xkm_output_dir, keymap);
for (i = 0; i < 10; i++) {
if (access(name, 0) == 0) break;
usleep(500000);
}
#ifdef DEBUG
if (i) ErrorF(">>>> Waited %d times for %s\n", i, name);
#endif
}
#endif
if (buf != NULL) if (buf != NULL)
free (buf); free (buf);
return True; return True;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment