[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#585006: xserver-xephyr: Cannot specify my complete keyboard layout options -- options which must include ', ' cannot be parsed



Package: xserver-xorg
Version: 1:7.7-2
Severity: important
Tags: upstream patch


In short, the comma character is used to split options up (as opposed 
to, say, letting bash do it because presumabely bash doesn't have a 
well-known set of quoting and escaping rules used for specifying 
individual startup options to executables). In lieu of doing it 
properly, the included patch allows options (-keybd, -mouse, etc) to 
include commas by prepending a backslash.


--- xorg-server-1.7.7.orig/hw/kdrive/src/kdrive.c
+++ xorg-server-1.7.7/hw/kdrive/src/kdrive.c
@@ -350,14 +350,23 @@
 char *
 KdParseFindNext (char *cur, char *delim, char *save, char *last)
 {
-    while (*cur && !strchr (delim, *cur))
+    char prev  = '\0';
+
+    while (cur && *cur && *cur != ',' || (prev && prev == '\\'))
     {
-	*save++ = *cur++;
+	if (*cur == '\\' && (prev && prev != '\\'))
+	{
+	    prev = *cur;
+	    *cur++;
+	} else {
+	    prev = *cur;
+	    *save++ = *cur++;
+	}
     }
     *save = 0;
     *last = *cur;
     if (*cur)
-	cur++;
+      cur++;
     return cur;
 }
 



Reply to: