hush: fix problems with case in subshells and with "case esac"

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2009-05-23 16:50:07 +02:00
parent 342a63d659
commit e9bda90e54
4 changed files with 42 additions and 18 deletions

View File

@@ -12,3 +12,11 @@ OK_44
OK_51
OK_52
OK_53
OK_sub1
OK_sub2
OK_sub3
OK_sub4
OK_sub5
OK_sub6
OK_esac1
Done

View File

@@ -25,13 +25,16 @@ case w in `echo w`) echo OK_51;; `echo WRONG >&2`w) echo WRONG;; esac;
case w in `echo OK_52 >&2`) echo SKIP;; `echo`w) echo OK_53;; esac;
# parsing cases in subshells can easily get messy
case m in m) echo ok-sub1;; esac
case m in (m) echo ok-sub2;; esac
(case m in m) echo ok-sub3;; esac)
(case m in (m) echo ok-sub4;; esac)
case m in m) echo OK_sub1;; esac
case m in (m) echo OK_sub2;; esac
(case m in m) echo OK_sub3;; esac)
(case m in (m) echo OK_sub4;; esac)
(
case m in m) echo ok-sub5;; esac
case m in m) echo OK_sub5;; esac
)
(
case m in (m) echo ok-sub6;; esac
case m in (m) echo OK_sub6;; esac
)
(case esac in "esac") echo OK_esac1;; esac)
echo Done