Oops I forgot to say that it supports a dmenu-mode (this code inherits from the old eread program I send to the list few months ago).
Usage is quite simple: int main(int argc, char **argv) { char *ret; dl_init(); dl_prompt = "$ "; do { ret = dl_readline(argc, argv); if (ret) { printf(" [line] '%s'\n", ret); dl_hist_add(ret); } } while(ret!=NULL); dl_free(); } Have fun! --pancake On Wed, Jan 23, 2008 at 04:31:57PM +0100, pancake wrote: > As I request in a previous mail I have developed a readline-like > library in a minimalistic way avoiding the unnecessary overhead > and dependency with a single portable c file. > > I have tested this on NetBSD, GNU/linux and native w32 and works > pretty fine. > > The library currently supports autocompletion of a single word > using argc, argv (this is just a PoC). Allows to change the prompt, > and change some configuration stuff for it. > > No vi or emacs mode yet (should i read inputrc?). > > Current support: > > - history log > - navigate history with ^n/^p or up/down keys > - autocompletion for one keyword (no nested yet) > - tab key hooked for autocompletion > - support to change the prompt > - handle ^C and ^D > > You can download the implementation here: > > http://news.nopcode.org/dietline.c > > To test it on w32 just put __UNIX__ to 0 and __WINDOWS__ to 1 :) > > $ gcc dietline.c > $ ./a.out foo bar foobar foocowblob foocowguai > = foo<tab> > foo foobar foocowblob foocowguai > = foocow<tab> > foocowblob foocowguai > = foocowb<tab> > = foocowblob > > I plan to use this library instead of readline for radare (radare.nopcode.org) > so I plan to continue working on it. > > Patches and ideas are welcome. > > --pancake >