Hello!
I have just pushed the first functional version of our new
(optionally termcap(5)-based) M(ailx)-L(ine)-E(ditor) which
replaces the N(ail)-C(ommand)-L(ine) that i had implemented in
i think July 2013 after some funky messages on nail-devel@.
The MLE…
· works truly correctly with double-width characters (sufficient
C library support provided).
It does not support BIDIrectional text. For true BIDI support
we need massive changes under the surface, and that is far
beyond even v15.0. All Arabic or Hebrew speaking people: i am
really sorry. If i live long enough we hopefully get there,
but it will take a long time.
· no longer directly uses the terminal buffer. Whereas the NCL
directly edited the input buffer of the terminal, and
therefore was subject to the maximum input line length of the
terminal, the MLE uses a detached buffer.
E.g., whereas the NCL almost certainly printed nothing but
"echo [ERR_TOO_LONG]" after typing "? echo /usr/bin/<TAB>" the
MLE no longer imposes a real limit (it is 2 GB).
Yes, we still use the BSD Mail-style "tabulator"-expansion.
· paints line content by using termcap(5) commands, if
termcap(5) support is available.
· WANT_TABEXPAND is gone. It is always compiled in.
Things yet TODO, and other notes:
· «Recursive commands» temporarily won't work. E.g., typing ^O
will temporarily not call `dp'. This will come back to life
in the following weeks.
· Don't use a prompt which uses colour sequences for a while.
I will reimplement *prompt* handling and introduce a new \[ ..
\] sequence that most of you surely now from bash(1) etc., and
which has to be placed around all *prompt* characters which
shouldn't be counted when detecting the required field width
for *prompt*.
· *colour-terms*, *line-editor-cursor-right* etc. is all gone.
Colours and termcap(5) sequences are deduced from termcap(5),
or from the new *termcap* variable.
In general reading the manual sections "On terminal and line
editor" and "Coloured display" might be a good idea.
· The MLE will gain some paint optimizations. It yet always
repaints the visible line content, and does so much too often.
· There is not yet a ^V command as is known from vim(1), e.g.
"^V HEXNUMBER" shall insert the corresponding Unicode
character, if that is usable in the current locale.
When that happens we will also support tabulators.
Have fun and Ciao!
--steffen
------------------------------------------------------------------------------
__________________________________
[email protected]