But this isn't addressing the real problem, which is that readline gets conjoined with the programs that use it. So if I want to write my own line editor, I have to significantly modify every program I want to use it in, which is enough of an obstacle that I won't do it (and neither will others). Nevermind more difficult architectural problems, like making editing local when on high-latency connections. Still, having a BSD-licensed line editor to start from may be helpful for whoever takes on that project some day.
Well, he addressed a real problem in my opinion: readline is too large and too complicated for many uses.
I used hping in the old days; while I'm not a Redis user (I use cdb and kdb+ for key/value stores), I really appreciate linenoise. I use it everyday.
I thank the author for a very useful contribution.
this one looks good, but it's a big task to pick through all the divergent copies of the code and figure out which ones have genuine improvements and which ones are now rotting.
there's a rust one too which i recently added mingw/msvc support to. that's actually an example of how this splintering could be causing problems because we've just vendored some upstream version of the native c code and changes may be difficult to send back upstream.
(The original authors should have made the header comment "against the idea that a line editing lib needs to be 20,000 lines of C code, or any quantity of C++".)
http://www.kylheku.com/cgit/txr/log/linenoise
Doc:
http://www.nongnu.org/txr/txr-manpage.html#N-025AAA27
These changes are in a different direction. I don't have windows or UTF-8 support, though. I started a branch to convert it to use wchar_t. Maybe I can cherry pick some things out of NG.
http://papersdb.cs.ualberta.ca/~papersdb/uploaded_files/712/...
Edit: libedit is mentioned in the readme, and it's implied that the reason for this other library is code size.
There are even a lot of other OPEN SOURCE projects with licenses (Apache, BSD) which cannot use readline because of their restricted GPL (instead of LGPL).
I did diff on linenoise.c and linenoise.cpp (from NG) and very few lines are identical.