aboutsummaryrefslogtreecommitdiffstats
path: root/main/augeas/0013-Shellvars-allow-and-constructs-after-condition.patch
diff options
context:
space:
mode:
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.patch60
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
+