[augeas-devel] [PATCH] Shellvars: one more cornercase with double quoted strings
David Lutterkort
lutter at redhat.com
Sat Aug 16 04:34:53 UTC 2008
2 files changed, 6 insertions(+), 3 deletions(-)
lenses/shellvars.aug | 6 +++---
lenses/tests/test_shellvars.aug | 3 +++
# HG changeset patch
# User David Lutterkort <dlutter at redhat.com>
# Date 1218861229 25200
# Node ID 4b9b71f3f91d5ab6e4c0ae3ffd68397c2ecdc5d4
# Parent e51031ce0bd562c9a2a9c41948d7a01390ba5479
Shellvars: one more cornercase with double quoted strings
diff -r e51031ce0bd5 -r 4b9b71f3f91d lenses/shellvars.aug
--- a/lenses/shellvars.aug Fri Aug 15 18:19:27 2008 -0700
+++ b/lenses/shellvars.aug Fri Aug 15 21:33:49 2008 -0700
@@ -8,15 +8,15 @@
let eq = Util.del_str "="
let comment = [ del /(#.*)?[ \t]*\n/ "# \n" ]
- let char = /[^() '"\t\n]/ (* " Emacs, relax *)
- let dquot = /\"([^"\n]|\\\\\")*\"/ (* " Emacs, relax *)
+ let char = /[^() '"\t\n]|\\\\"/
+ let dquot = /"([^"\\\n]|\\\\.)*"/ (* " Emacs, relax *)
let squot = /'[^'\n]*'/
(* Array values of the form '(val1 val2 val3)'. We do not handle empty *)
(* arrays here because of typechecking headaches. Instead, they are *)
(* treated as a simple value *)
let array =
- let array_value = store (char+ | dquot | squot) in
+ let array_value = store (char+ | dquot) in
del "(" "(" . counter "values" .
[ seq "values" . array_value . del /[ \t]+/ " " ] * .
[ seq "values" . array_value ]
diff -r e51031ce0bd5 -r 4b9b71f3f91d lenses/tests/test_shellvars.aug
--- a/lenses/tests/test_shellvars.aug Fri Aug 15 18:19:27 2008 -0700
+++ b/lenses/tests/test_shellvars.aug Fri Aug 15 21:33:49 2008 -0700
@@ -63,6 +63,9 @@
test Shellvars.lns get "var=\"\\\"\"\n" =
{ "var" = "\"\\\"\"" }
+ test Shellvars.lns get "var=\\\"\n" =
+ { "var" = "\\\"" }
+
test Shellvars.lns get "var=ab#c\n" =
{ "var" = "ab#c" }
More information about the augeas-devel
mailing list