diff options
Diffstat (limited to 'main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch')
-rw-r--r-- | main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch b/main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch new file mode 100644 index 0000000000..d1343ee110 --- /dev/null +++ b/main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch @@ -0,0 +1,60 @@ +From 3db2b565125c3e00914f6def30510aaa71b7d908 Mon Sep 17 00:00:00 2001 +From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> +Date: Mon, 13 Jul 2015 14:51:37 +0300 +Subject: [PATCH 13/19] Shellvars: allow && and || constructs after condition + +--- + lenses/shellvars.aug | 8 ++++++-- + lenses/tests/test_shellvars.aug | 8 ++++++++ + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/lenses/shellvars.aug b/lenses/shellvars.aug +index 0384a6f..c47f566 100644 +--- a/lenses/shellvars.aug ++++ b/lenses/shellvars.aug +@@ -34,7 +34,7 @@ module Shellvars = + let xchgs = Build.xchgs + let semicol = del /;?/ "" + +- let char = /[^`;()'"|\n\\# \t]#*|\\\\(.|\n)/ ++ let char = /[^`;()'"&|\n\\# \t]#*|\\\\(.|\n)/ + let dquot = + let char = /[^"\\]|\\\\./ | Rx.cl + in "\"" . char* . "\"" (* " Emacs, relax *) +@@ -107,9 +107,13 @@ module Shellvars = + . ( Util.del_ws_spc . store Rx.integer )? + + let condition = +- let cond (start:string) (end:string) = [ label "type" . store start ] ++ let action (operator:string) (lbl:string) = ++ [ Sep.opt_space . Util.del_str operator . Sep.opt_space ++ . label lbl . sto_to_semicol ] ++ in let cond (start:string) (end:string) = [ label "type" . store start ] + . Util.del_ws_spc . sto_to_semicol + . Util.del_ws_spc . Util.del_str end ++ . ( action "&&" "@and" | action "||" "@or" )* + in Util.indent . label "@condition" . (cond "[" "]" | cond "[[" "]]") + + +diff --git a/lenses/tests/test_shellvars.aug b/lenses/tests/test_shellvars.aug +index d07918d..0f27a73 100644 +--- a/lenses/tests/test_shellvars.aug ++++ b/lenses/tests/test_shellvars.aug +@@ -604,6 +604,14 @@ esac\n" = + test lns get "alias ls='ls $LS_OPTIONS'\n" = + { "@alias" = "ls" { "value" = "'ls $LS_OPTIONS'" } } + ++ (* Allow && and || constructs after condition *) ++ test Shellvars.lns get "[ -f $FILENAME ] && do this || or that\n" = ++ { "@condition" = "-f $FILENAME" ++ { "type" = "[" } ++ { "@and" = "do this" } ++ { "@or" = "or that" } ++ } ++ + (* Local Variables: *) + (* mode: caml *) + (* End: *) +-- +2.5.0 + |