Skip to contentSkip to conversation

escape backquote characters

PATCH New Max Kellermann 1 participant 1 message Oct 12, 2005 netfilter

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 escape backquote characters

Hi,

due to problems introduced by my backquote patches, I have changed nfsim to escape backquotes in its escape() function. Additionally, process_line() does not interpret a character after a backslash. That allows you to write backquotes (escaped with backslash) in nfsim tests, which are not executed by the shell.

Max

Wed Oct 12 13:50:19 CEST 2005 [email protected]
* escape backquote character

core/tui.c +5 -2
diff -rN -u old-nfsim-0/core/tui.c new-nfsim-0/core/tui.c
@@ -258,9 +258,9 @@
 		} else if (src[i] == '\t') {
 			*p++ = '\\';
 			*p++ = 't';
-		} else if (src[i] == '\\') {
-			*p++ = '\\';
+		} else if (src[i] == '\\' || src[i] == '`') {
 			*p++ = '\\';
+			*p++ = src[i];
 		} else if (src[i] & 0x80 || (src[i] & 0xe0) == 0) {
 			*p++ = '\\';
 			*p++ = 'x';
@@ -354,6 +354,9 @@
 		} else if (line[i] == '`') {
 			char *inside = backquote(line, &i);
 			argv[argc] = append_string(argv, argc, inside);
+		} else if (line[i] == '\\' && line[i + 1]) {
+			argv[argc] = append_char(argv, argc, line[i]);
+			argv[argc] = append_char(argv, argc, line[++i]);
 		} else {
 			/* If it is a comment, stop before we process `` */
 			if (!argv[0] && line[i] == '#')

Wed Oct 12 13:51:53 CEST 2005 [email protected]
* add test for escaped backquote

testsuite/backquote.sim +9 -0
diff -rN -u old-nfsim-0/testsuite/backquote.sim new-nfsim-0/testsuite/backquote.sim
@@ -18,3 +18,12 @@
 
 expect echo far0boo
 echo `echo -n far`0`echo -n boo`
+
+expect echo `echo -n \\`
+echo \\
+
+expect echo `echo -en "\x60"`
+echo \`
+
+expect echo \\foo
+echo \\`echo -n foo`