URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gdb-6.8/] [readline/] [examples/] [rlfe/] [README] - Rev 455
Go to most recent revision | Compare with Previous | Blame | View Log
rlfe (ReadLine Front-End) is a "universal wrapper" around readline.You specify an interactive program to run (typically a shell), andreadline is used to edit input lines.There are other such front-ends; what distinguishes this one is thatit monitors the state of the inferior pty, and if the inferior programswitches its terminal to raw mode, then rlfe passes your charactersthrough directly. This basically means you can run your entiresession (including bash and terminal-mode emacs) under rlfe.FEATURES* Can use all readline commands (and history) in commands thatread input lines in "canonical mode" - even 'cat'!* Automatically switches between "readline-editing mode" and "raw mode"depending on the terminal mode. If the inferior program invokesreadline itself, it will do its own line editing. (The inferiorreadline will not know about rlfe, and it will have its own history.)You can even run programs like 'emavs -nw' and 'vi' under rlfe.The goal is you could leave rlfe always on without even knowingabout it. (We're not quite there, but it works tolerably well.)* The input line (after any prompt) is changed to bold-face.INSTALLThe usual: ./configure && make && make installNote so far rlfe has only been tested on GNU Linux (Fedora Core 2)and Mac OS X (10.3).This assumes readline header files and libraries are in the defaultplaces. If not, you can create a link named readline pointing to thereadline sources. To link with libreadline.a and libhistory.ayou can copy or link them, or add LDFLAGS='-/path/to/readline' tothe make command-line.USAGEJust run it. That by default runs bash. You can run some othercommand by giving it as command-line arguments.There are a few tweaks: -h allows you to name the history file,and -s allows you to specify its size. It default to "emacs" mode,but if the the environment variable EDITOR is set to "vi" thatmode is chosen.ISSUES* The mode switching depends on the terminal mode set by the inferiorprogram. Thus ssh/telnet/screen-type programs will typically be inraw mode, so rlfe won't be much use, even if remote programs run incanonical mode. The work-around is to run rlfe on the remote end.* Echo supression and prompt recognition are somewhat fragile.(A protocol so that the o/s tty code can reliably communicate itsstate to rlfe could solve this problem, and the previous one.)* See the intro to rlfe.c for more notes.* Assumes a VT100-compatible terminal, though that could be generalizedif anybody cares.* Requires ncurses.* It would be useful to integrate rlfe's logic in a terminal emulator.That would make it easier to reposition the edit position with a mouse,integrate cut-and-paste with the system clipboard, and more robustlyhandle escape sequence and multi-byte characters more robustly.AUTHORPer Bothner <per@bothner.com>LICENSEGPL.
Go to most recent revision | Compare with Previous | Blame | View Log
