diff options
author | Ron Yorston <rmy@pobox.com> | 2021-03-17 08:33:42 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2021-03-17 08:54:39 +0000 |
commit | 03115cc5f17f45cfeaee22197bc6b9fff003d692 (patch) | |
tree | 95b5db7cbdbed28658d42c58ec7f9a2b5a495c61 /shell | |
parent | 3b20b4301059ed2cd457f1b6887ffcf112f1f79e (diff) | |
download | busybox-w32-03115cc5f17f45cfeaee22197bc6b9fff003d692.tar.gz busybox-w32-03115cc5f17f45cfeaee22197bc6b9fff003d692.tar.bz2 busybox-w32-03115cc5f17f45cfeaee22197bc6b9fff003d692.zip |
libbb: fix another tab-completion corner case
Commit 90f35327c (libbb: avoid problems with quoted characters in
tab completion) avoided a conflict between the code to quote
special characters and that to display case-preserved filenames.
Here's another one.
I'd installed a third-party binary on Microsoft Windows and wanted
to execute it from a busybox-w32 shell which didn't have it in its
path. No problem:
$ c:/prog<tab>
$ c:/Program<tab>
Program Files/ ProgramData
$ c:/Program\<tab>
$ c:/PProgram
I was too quick to enter the final <tab>, I'd meant to add a space.
A trailing backslash is effectively removed by the tab completion
matching code but it remains on the display. This confuses the
code to display case-preserved filenames.
Upstream BusyBox just ends up with a spurious backslash in the name.
Bash rewrites the command line to remove the surplus backslash.
Fix the issue in busybox-w32 by leaving the backslash in the name,
even for matching purposes. This will never result in a match,
thus affording the user a change to correct their mistake.
Diffstat (limited to 'shell')
0 files changed, 0 insertions, 0 deletions