On 2023-04-16 08:53, Bart Schaefer wrote:
It's much worse than that, considerYou know, as a logician I'm quite aware that there are things one might ask for that are logically not possible to deliver. It's Godel's Theorem applied to tokens. Heavy duty stuff. In my case close will count.
% my_function one && my_function $PATH || my_function three > filename
Or pipelines, or backgrounding, or if/then/else/fi, etc. You will
need to define what you intend in each case (please, not by writing it
in prose here).
The ${(z)...} expansion does a best-case job of mimicking the parser,
so you can start by using ${(z)1} in preexec and work forward from
there. The simple case with semicolons can be handled by
chain=( ${(s:; :)${(z)1}} )
That all sounds quite promising. What I have now works 99% of the time and I'm not interested -- except as a brain-bending puzzle -- in trying to break it, but I think what you're suggesting will be a possible simplification and that will be nice. Some virgin territory here tho, so I'll be getting stuck most likely.