0a3100e44328b2e41af5b3ef37c3ef61681a6b3b — Simon Ser 26 days ago 77dd6a2
shell/task: use word_to_pattern when running case clauses

This allows us to correctly handle quoted parts of the pattern.
1 files changed, 9 insertions(+), 3 deletions(-)

M shell/task/task.c
M shell/task/task.c => shell/task/task.c +9 -3
@@ 217,9 217,15 @@ if (ret < 0) {
  				return ret;
  			}
- 			char *pattern_str = mrsh_word_str(*word_ptr);
- 			selected = fnmatch(pattern_str, word_str, 0) == 0;
- 			free(pattern_str);
+ 			char *pattern = word_to_pattern(*word_ptr);
+ 			if (pattern != NULL) {
+ 				selected = fnmatch(pattern, word_str, 0) == 0;
+ 				free(pattern);
+ 			} else {
+ 				char *str = mrsh_word_str(*word_ptr);
+ 				selected = strcmp(str, word_str) == 0;
+ 				free(str);
+ 			}
  			if (selected) {
  				break;
  			}