GNU bug report logs -
#29821
eshell: Ensure quick substitution only occurs at start of line
Previous Next
Reported by: Jay Kamat <jaygkamat <at> gmail.com>
Date: Fri, 22 Dec 2017 23:58:02 UTC
Severity: normal
Tags: fixed
Fixed in version 27.1
Done: Noam Postavsky <npostavs <at> users.sourceforge.net>
Bug is archived. No further changes may be made.
Full log
Message #25 received at 29821 <at> debbugs.gnu.org (full text, mbox):
Jay Kamat <jaygkamat <at> gmail.com> writes:
> Ah, I did notice that, but I was not sure whether it was a bug or
> desired behavior (as it seemed to occur for me even before this
> patch).
Oh right, I didn't notice because I tested with spaces. Still, I think
since we're trying to make this behave like bash, we should try to get
as close as possible.
> I've added a tiny change to the patch to fix that, but it has the side
> effect of doing:
>
>> *[j <at> laythe emacs-bisect]$ echo "foo"(:s/bar/baz/)
>> foo: substitution failed
>
> But I think that's an OK change, especially if we want to error out on
> ^bar^baz when no search is found.
> I also discovered another issue (which existed before as well):
>
>> *[j <at> laythe emacs-bisect]$ echo one one one
>> ("one" "one" "one")
>> *[j <at> laythe emacs-bisect]$ !!:sg/one/two
>> :sg/one/two
>> Wrong type argument: integer-or-marker-p, nil
>
> but I'd rather take a look at that later on to avoid cluttering this
> changeset. (and I'm not sure if I'm just using the feature incorrectly).
!!:gs/one/two/ seems to work. The error message could be improved
though (but yes, we should do that separately).
> +(defun eshell-history-substitution (line)
> + "Expand whole-line history substitutions by converting them to
> +!!:s/a/b/ syntax.
> +Returns nil if no match found."
Couldn't you error here (if the line matches ^...^...^) instead of
returning nil, and then avoid affecting the other substitution?
(although I agree signaling an error in the other place is probably
acceptable)
This bug report was last modified 7 years and 190 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.