summaryrefslogtreecommitdiff
path: root/Src/builtin.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/builtin.c')
-rw-r--r--Src/builtin.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index 724a6baec..09034c514 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -4747,8 +4747,17 @@ bin_read(char *name, char **args, Options ops, UNUSED(int func))
}
signal_setmask(s);
}
- while (bptr > buf && iwsep(bptr[-1]))
- bptr--;
+ while (bptr > buf) {
+ if (bptr > buf + 1 && bptr[-2] == Meta) {
+ if (iwsep(bptr[-1] ^ 32))
+ bptr -= 2;
+ else
+ break;
+ } else if (iwsep(bptr[-1]))
+ bptr--;
+ else
+ break;
+ }
*bptr = '\0';
if (resettty && SHTTY != -1)
settyinfo(&saveti);