aboutsummaryrefslogtreecommitdiff
path: root/toys/posix/expand.c
diff options
context:
space:
mode:
Diffstat (limited to 'toys/posix/expand.c')
-rw-r--r--toys/posix/expand.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/toys/posix/expand.c b/toys/posix/expand.c
index b29a98f4..922f5e67 100644
--- a/toys/posix/expand.c
+++ b/toys/posix/expand.c
@@ -45,9 +45,13 @@ static void expand_file(int fd, char *name)
if (!len) break;
for (i=0; i<len; i++) {
int len = 1;
- if (toybuf[i] != '\t') {
- if (EOF == putc(toybuf[i], stdout)) perror_exit(0);
- if (toybuf[i] == '\n') {
+ char c = toybuf[i];
+
+ if (c != '\t') {
+ if (EOF == putc(c, stdout)) perror_exit(0);
+
+ if (c == '\b' && x) len = -1;
+ if (c == '\n') {
x = stop = 0;
continue;
}