From b5cf67a259e216453341f4f124eca116b3ccdcaf Mon Sep 17 00:00:00 2001 From: Ryuichi Ueda Date: Fri, 17 Jan 2025 19:46:35 +0900 Subject: [PATCH] Fix --- src/elements/command/case.rs | 7 +++++++ src/elements/command/error | 1 + test/test_compound.bash | 10 ++++++++++ 3 files changed, 18 insertions(+) create mode 100644 src/elements/command/error diff --git a/src/elements/command/case.rs b/src/elements/command/case.rs index 60aec6503..d5e04ebb0 100644 --- a/src/elements/command/case.rs +++ b/src/elements/command/case.rs @@ -146,6 +146,13 @@ impl CaseCommand { if feeder.len() == 0 { feeder.feed_additional_line(core)?; } + + if feeder.starts_with("esac") { + ans.text += &feeder.consume(4); + esac = true; + break; + } + let mut patterns = vec![]; if ! Self::eat_patterns(feeder, &mut patterns, &mut ans.text, core)? { break; diff --git a/src/elements/command/error b/src/elements/command/error new file mode 100644 index 000000000..ddcd8cab5 --- /dev/null +++ b/src/elements/command/error @@ -0,0 +1 @@ +../../../test/test_compound.bash diff --git a/test/test_compound.bash b/test/test_compound.bash index 7b46d1f5e..43f744cfd 100755 --- a/test/test_compound.bash +++ b/test/test_compound.bash @@ -439,6 +439,16 @@ aaa) echo OK ;; ') [ "$res" = "" ] || err $LINENO +res=$($com <<< ' +case xterm-color in + xterm-color|*-256color) color_prompt=yes;; +esac +echo $color_prompt +' +) +[ "$res" = "yes" ] || err $LINENO + + res=$($com <<< 'case aaa in aaa) echo OK1 ;;& bbb) echo OK2 ;& aaa) echo OK3 ;; esac') [ "$res" = "OK1