mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Parse quotes when extracting words from command history (#291)
This avoids splitting on quoted whitespace when extracting words from the command history using the emacs M-. or vi _ command. Example: if the prior command is $ ls Stairway\ To\ Heaven.mp3 then, M-. in Emacs editing mode (and _ in vi mode) now inserts Stairway\ To\ Heaven.mp3 instead of Heaven.mp3. The behavior is similar for 'Stairway To Heaven.mp3' and "Stairway To Heaven.mp3". src/cmd/ksh93/edit/history.c: hist_word(): - Skip over single-quoted and double-quoted strings and backslash-escaped characters. src/cmd/ksh93/tests/pty.sh: - Add regression test for this feature in vi mode. Since emacs and vi both use the same code for this, that should be good enough. Co-authored-by: Martijn Dekker <martijn@inlv.org>
This commit is contained in:
parent
d087b031f0
commit
7439e3dffe
3 changed files with 36 additions and 4 deletions
5
NEWS
5
NEWS
|
@ -5,6 +5,11 @@ Any uppercase BUG_* names are modernish shell bug IDs.
|
|||
|
||||
2021-04-30:
|
||||
|
||||
- The emacs 'ESC .' (M-.) and vi '_' commands now take shell quoting into
|
||||
account when repeating a word from the previous command line. For example, if
|
||||
the previous command is 'ls Stairway\ To\ Heaven.mp3', then they now insert
|
||||
'Stairway\ To\ Heaven.mp3' instead of 'Heaven.mp3'. Thanks to Govind Kamat.
|
||||
|
||||
- Fixed a bug introduced on 2020-09-05 that caused "echo ${var:+'{}'}"
|
||||
to be misparsed.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue