summaryrefslogtreecommitdiff
path: root/bin/chio
diff options
context:
space:
mode:
authorTheo de Raadt <deraadt@cvs.openbsd.org>2007-10-16 06:06:50 +0000
committerTheo de Raadt <deraadt@cvs.openbsd.org>2007-10-16 06:06:50 +0000
commit34c77c62d876eae153056388e21c73a29964c400 (patch)
tree152491e491fe3e85b98696e2cce7737d5c031ed5 /bin/chio
parent861a8179aab10b8d4a585f385b99ce455781c996 (diff)
in the lex... even inside quotes, a \ followed by space or tab should
expand to space or tab, and a \ followed by newline should be ignored (as a line continuation). compatible with the needs of hoststated (which has the most strict quoted string requirements), and ifstated (where one commonly does line continuations in strings). pointed out by mpf, discussed with pyr
Diffstat (limited to 'bin/chio')
-rw-r--r--bin/chio/parse.y6
1 files changed, 4 insertions, 2 deletions
diff --git a/bin/chio/parse.y b/bin/chio/parse.y
index 2f5dc35c3d3..b50440aafa6 100644
--- a/bin/chio/parse.y
+++ b/bin/chio/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.8 2007/10/13 16:35:16 deraadt Exp $ */
+/* $OpenBSD: parse.y,v 1.9 2007/10/16 06:06:47 deraadt Exp $ */
/*
* Copyright (c) 2006 Bob Beck <beck@openbsd.org>
@@ -301,8 +301,10 @@ yylex(void)
} else if (c == '\\') {
if ((next = lgetc(quotec)) == EOF)
return (0);
- if (next == quotec)
+ if (next == quotec || c == ' ' || c == '\t')
c = next;
+ else if (next == '\n')
+ continue;
else
lungetc(next);
} else if (c == quotec) {