Annotation of embedaddon/readline/examples/rlfe/README, revision 1.1

1.1     ! misho       1: rlfe (ReadLine Front-End) is a "universal wrapper" around readline.
        !             2: You specify an interactive program to run (typically a shell), and
        !             3: readline is used to edit input lines.
        !             4: 
        !             5: There are other such front-ends; what distinguishes this one is that
        !             6: it monitors the state of the inferior pty, and if the inferior program
        !             7: switches its terminal to raw mode, then rlfe passes your characters
        !             8: through directly.  This basically means you can run your entire
        !             9: session (including bash and terminal-mode emacs) under rlfe.
        !            10: 
        !            11: FEATURES
        !            12: 
        !            13: * Can use all readline commands (and history) in commands that
        !            14: read input lines in "canonical mode" - even 'cat'!
        !            15: 
        !            16: * Automatically switches between "readline-editing mode" and "raw mode"
        !            17: depending on the terminal mode.  If the inferior program invokes
        !            18: readline itself, it will do its own line editing.  (The inferior
        !            19: readline will not know about rlfe, and it will have its own history.)
        !            20: You can even run programs like 'emavs -nw' and 'vi' under rlfe.
        !            21: The goal is you could leave rlfe always on without even knowing
        !            22: about it.  (We're not quite there, but it works tolerably well.)
        !            23: 
        !            24: * The input line (after any prompt) is changed to bold-face.
        !            25: 
        !            26: INSTALL
        !            27: 
        !            28: The usual: ./configure && make && make install
        !            29: 
        !            30: Note so far rlfe has only been tested on GNU Linux (Fedora Core 2)
        !            31: and Mac OS X (10.3).
        !            32: 
        !            33: This assumes readline header files and libraries are in the default
        !            34: places.  If not, you can create a link named readline pointing to the
        !            35: readline sources.  To link with libreadline.a and libhistory.a
        !            36: you can copy or link them, or add LDFLAGS='-/path/to/readline' to
        !            37: the make command-line.
        !            38: 
        !            39: USAGE
        !            40: 
        !            41: Just run it.  That by default runs bash.  You can run some other
        !            42: command by giving it as command-line arguments.
        !            43: 
        !            44: There are a few tweaks:  -h allows you to name the history file,
        !            45: and -s allows you to specify its size.  It default to "emacs" mode,
        !            46: but if the the environment variable EDITOR is set to "vi" that
        !            47: mode is chosen.
        !            48: 
        !            49: ISSUES
        !            50: 
        !            51: * The mode switching depends on the terminal mode set by the inferior
        !            52: program.  Thus ssh/telnet/screen-type programs will typically be in
        !            53: raw mode, so rlfe won't be much use, even if remote programs run in
        !            54: canonical mode.  The work-around is to run rlfe on the remote end.
        !            55: 
        !            56: * Echo supression and prompt recognition are somewhat fragile.
        !            57: (A protocol so that the o/s tty code can reliably communicate its
        !            58: state to rlfe could solve this problem, and the previous one.)
        !            59: 
        !            60: * See the intro to rlfe.c for more notes.
        !            61: 
        !            62: * Assumes a VT100-compatible terminal, though that could be generalized
        !            63: if anybody cares.
        !            64: 
        !            65: * Requires ncurses.
        !            66: 
        !            67: * It would be useful to integrate rlfe's logic in a terminal emulator.
        !            68: That would make it easier to reposition the edit position with a mouse,
        !            69: integrate cut-and-paste with the system clipboard, and more robustly
        !            70: handle escape sequence and multi-byte characters more robustly.
        !            71: 
        !            72: AUTHOR
        !            73: 
        !            74: Per Bothner <per@bothner.com>
        !            75: 
        !            76: LICENSE
        !            77: 
        !            78: GPL.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>