@@ -205,16 +205,23 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
205
205
}
206
206
}
207
207
208
+ out = fopen ("x-keyboard.txt" , "w" );
209
+ if (out ) {
210
+ XkbWriteXKBKeymapForNames (out ,names ,xkb ,want ,need );
211
+ fclose (out );
212
+ }
213
+
208
214
if (asprintf (& buf ,
209
- "%s%sxkbcomp -I%s/usr/share/X11/xkb -w %d %s -xkm %s "
210
- "-em1 %s -emp %s -eml %s %s%s.xkm" ,
215
+ "cat x-keyboard.txt | %s%sxkbcomp -I%s/usr/share/X11/xkb -w %d %s -xkm %s "
216
+ "-em1 %s -emp %s -eml %s %s%s.xkm 2>%s/popen-stderr.txt " ,
211
217
xkbbindir , xkbbindirsep ,
212
218
(getenv ("SECURE_STORAGE_DIR" ) ? getenv ("SECURE_STORAGE_DIR" ) : "" ),
213
219
((xkbDebugFlags < 2 ) ? 1 :
214
220
((xkbDebugFlags > 10 ) ? 10 : (int ) xkbDebugFlags )),
215
221
xkbbasedirflag ? xkbbasedirflag : "" , xkmfile ,
216
222
PRE_ERROR_MSG , ERROR_PREFIX , POST_ERROR_MSG1 ,
217
- xkm_output_dir , keymap ) == -1 )
223
+ xkm_output_dir , keymap ,
224
+ (getenv ("SECURE_STORAGE_DIR" ) ? getenv ("SECURE_STORAGE_DIR" ) : "." )) == -1 )
218
225
buf = NULL ;
219
226
220
227
free (xkbbasedirflag );
@@ -237,7 +244,6 @@ XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
237
244
XkbWriteXKBKeymapForNames (stderr ,names ,xkb ,want ,need );
238
245
}
239
246
#endif
240
- XkbWriteXKBKeymapForNames (out ,names ,xkb ,want ,need );
241
247
#ifndef WIN32
242
248
if (Pclose (out )== 0 )
243
249
#else
0 commit comments