Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Revised dohistexpand()

> Peter wrote:
> >Still, now I've found out what all this code does, maybe I can work
> >around it some other way.  I'm hoping, eventually, to modify the
> >history code so that only the lines actually typed are stored, with
> >the word separation in a list of numbers
> I like this idea.  Much of the expansion/completion code could benefit
> from having the parser point out word beginnings to it.  This would be
> a great aid to consistency in complex quoting (e.g. "a b" "`a b`" "`'a
> b'`" etc.).  It would similarly help to have nesting indicated in this
> way, to help with command/process substitution.

Yes, this would be really nice.  I have already modified the lexer to supply
the start and end of backquote and $(...) and <(...) set. substitutions.
Together with that I completely rewore get_comp_string() in zle_tricky.c which
is much shorter, simpler now.  But it can be further improved I think.

> On magic-space: it shouldn't expand history when the cursor is in a
> history reference (e.g. !{a<magic-space>).  At the moment
> doexpandhist() removes the word; it should feep and leave the word
> unchanged.  The same applies to expand-history, which also calls

I think my release doesn't do this. It doesn feep, just silently inserts the
space. In fact even the old beta10 code tried to do that but it did not work
since it tested errflag after lexrestore().

> doexpandhist().  I also think an error should be flagged when
> attempting to expand an invalid history reference, rather than removing
> it (this would accurately reflect how zsh treats the bad history
> reference in a completed line).

The error is flagged but the reference (together with the trailing part of the
line) is removed.  But zle_tricky.c stores the old line so it can check the
error and restore the original line.


Messages sorted by: Reverse Date, Date, Thread, Author