diff options
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 7 | ||||
-rw-r--r-- | shell/ash_test/ash-alias/alias_brace.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-alias/alias_brace.tests | 16 | ||||
-rw-r--r-- | shell/ash_test/ash-alias/alias_case.right | 1 | ||||
-rwxr-xr-x | shell/ash_test/ash-alias/alias_case.tests | 8 |
5 files changed, 31 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c index f1c21188e..5a001b004 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -13265,10 +13265,14 @@ readtoken(void) | |||
13265 | if (kwd & CHKNL) { | 13265 | if (kwd & CHKNL) { |
13266 | while (t == TNL) { | 13266 | while (t == TNL) { |
13267 | parseheredoc(); | 13267 | parseheredoc(); |
13268 | checkkwd = 0; | ||
13268 | t = xxreadtoken(); | 13269 | t = xxreadtoken(); |
13269 | } | 13270 | } |
13270 | } | 13271 | } |
13271 | 13272 | ||
13273 | kwd |= checkkwd; | ||
13274 | checkkwd = 0; | ||
13275 | |||
13272 | if (t != TWORD || quoteflag) { | 13276 | if (t != TWORD || quoteflag) { |
13273 | goto out; | 13277 | goto out; |
13274 | } | 13278 | } |
@@ -13287,7 +13291,7 @@ readtoken(void) | |||
13287 | } | 13291 | } |
13288 | } | 13292 | } |
13289 | 13293 | ||
13290 | if (checkkwd & CHKALIAS) { | 13294 | if (kwd & CHKALIAS) { |
13291 | #if ENABLE_ASH_ALIAS | 13295 | #if ENABLE_ASH_ALIAS |
13292 | struct alias *ap; | 13296 | struct alias *ap; |
13293 | ap = lookupalias(wordtext, 1); | 13297 | ap = lookupalias(wordtext, 1); |
@@ -13300,7 +13304,6 @@ readtoken(void) | |||
13300 | #endif | 13304 | #endif |
13301 | } | 13305 | } |
13302 | out: | 13306 | out: |
13303 | checkkwd = 0; | ||
13304 | #if DEBUG | 13307 | #if DEBUG |
13305 | if (!alreadyseen) | 13308 | if (!alreadyseen) |
13306 | TRACE(("token '%s' %s\n", tokname_array[t], t == TWORD ? wordtext : "")); | 13309 | TRACE(("token '%s' %s\n", tokname_array[t], t == TWORD ? wordtext : "")); |
diff --git a/shell/ash_test/ash-alias/alias_brace.right b/shell/ash_test/ash-alias/alias_brace.right new file mode 100644 index 000000000..7326d9603 --- /dev/null +++ b/shell/ash_test/ash-alias/alias_brace.right | |||
@@ -0,0 +1 @@ | |||
Ok | |||
diff --git a/shell/ash_test/ash-alias/alias_brace.tests b/shell/ash_test/ash-alias/alias_brace.tests new file mode 100755 index 000000000..7571b64ac --- /dev/null +++ b/shell/ash_test/ash-alias/alias_brace.tests | |||
@@ -0,0 +1,16 @@ | |||
1 | # Note: bash would need: | ||
2 | #shopt -s expand_aliases | ||
3 | # to enable aliases in non-interactive mode | ||
4 | alias BEGIN={ END=} | ||
5 | BEGIN | ||
6 | cat <<- EOF > /dev/null | ||
7 | $(:) | ||
8 | EOF | ||
9 | END | ||
10 | |||
11 | : <<- EOF && | ||
12 | $(:) | ||
13 | EOF | ||
14 | BEGIN | ||
15 | echo Ok | ||
16 | END | ||
diff --git a/shell/ash_test/ash-alias/alias_case.right b/shell/ash_test/ash-alias/alias_case.right new file mode 100644 index 000000000..7326d9603 --- /dev/null +++ b/shell/ash_test/ash-alias/alias_case.right | |||
@@ -0,0 +1 @@ | |||
Ok | |||
diff --git a/shell/ash_test/ash-alias/alias_case.tests b/shell/ash_test/ash-alias/alias_case.tests new file mode 100755 index 000000000..ed8275875 --- /dev/null +++ b/shell/ash_test/ash-alias/alias_case.tests | |||
@@ -0,0 +1,8 @@ | |||
1 | # Note: bash would need: | ||
2 | #shopt -s expand_aliases | ||
3 | # to enable aliases in non-interactive mode | ||
4 | alias a="case x in " b=x | ||
5 | a | ||
6 | b) echo BAD;; | ||
7 | *) echo Ok;; | ||
8 | esac | ||