Class Readline


  • public class Readline
    extends java.lang.Object
    This class implements basic functionality of the GNU-readline interface. It uses native method calls if available, otherwise it defaults to normal I/O using a BufferedReader.

    A typical implementation could look like:

     try {
         Readline.load(ReadlineLibrary.GnuReadline);
     }
     catch (UnsatisfiedLinkError ignore_me) {
         System.err.println("couldn't load readline lib. Using simple stdin.");
     }
    
     Readline.initReadline("myapp");
    
     Runtime.getRuntime()                       // if your version supports
       .addShutdownHook(new Thread() {          // addShutdownHook (since 1.3)
          public void run() {
            Readline.cleanup();
          }
        });
    
     while (true) {
         try {
             line = Readline.readline("myprompt> ");
             if (line == null)
                 System.out.println("no input");
             else
                 processLine();
         } 
         catch (EOFException e) {
             break;
         } 
         catch (Exception e) {
             doSomething();
         }
     }
     Readline.cleanup();  // see note above about addShutdownHook
    
    
    Version:
    $Revision$
    Author:
    $Author$
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static org.gnu.readline.ReadlineConstInt HISTORY_BASE
      Constant to access history_base using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt HISTORY_LENGTH
      Constant to access history_length using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt HISTORY_MAX_ENTRIES
      Constant to access history_max_entries using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString HISTORY_NO_EXPAND_CHARS
      Constant to access history_no_expand_chars using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt HISTORY_QUOTES_EXPANSION
      Constant to access history_quotes_inhibit_expansion using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString HISTORY_SEARCH_DELIMITERS
      Constant to access history_search_delimiter_chars using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString HISTORY_WORD_DELIMITERS
      Constant to access history_word_delimiters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_ALREADY_PROMPTED
      Constant to access rl_already_prompted using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_ATTEMPTED_COMPLETION_OVER
      Constant to access rl_attempted_completion_over using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_BASIC_QUOTE_CHARACTERS
      Constant to access rl_basic_quote_characters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_BASIC_WORD_BREAK_CHARACTERS
      Constant to access rl_basic_word_break_characters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_CATCH_SIGNALS
      Constant to access rl_catch_signals using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_CATCH_SIGWINCH
      Constant to access rl_catch_sigwinch using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_COMPLETER_QUOTE_CHARACTERS
      Constant to access rl_completer_quote_characters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_COMPLETER_WORD_BREAK_CHARACTERS
      Constant to access rl_completer_word_break_characters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_COMPLETION_APPEND_CHARACTER
      Constant to access rl_completion_append_character using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_COMPLETION_MARK_SYMLINK_DIRS
      Constant to access rl_completion_mark_symlink_dirs using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_COMPLETION_QUERY_ITEMS
      Constant to access rl_completion_query_items using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_COMPLETION_SUPPRESS_APPEND
      Constant to access rl_completion_suppress_append using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_COMPLETION_TYPE
      Constant to access rl_completion_type using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_DISPATCHING
      Constant to access rl_dispatching using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_DONE
      Constant to access rl_done using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_EDITING_MODE
      Constant to access rl_editing_mode using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_END
      Constant to access rl_end using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_ERASE_EMPTY_LINE
      Constant to access rl_erase_empty_line using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_EXECUTING_MACRO
      Constant to access rl_executing_macro using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_EXPLICIT_ARG
      Constant to access rl_explicit_arg using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_FILENAME_COMPLETION_DESIRED
      Constant to access rl_filename_completion_desired using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_FILENAME_QUOTE_CHARACTERS
      Constant to access rl_filename_quote_characters using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_FILENAME_QUOTING_DESIRED
      Constant to access rl_filename_quoting_desired using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_GNU_READLINE_P
      Constant to access rl_gnu_readline_p using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_IGNORE_COMPLETION_DUPLICATES
      Constant to access rl_ignore_completion_duplicates using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_INHIBIT_COMPLETION
      Constant to access rl_inhibit_completion using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_INSERT_MODE
      Constant to access rl_insert_mode using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_LIBRARY_VERSION
      Constant to access rl_library_version using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_LINE_BUFFER
      Constant to access rl_line_buffer using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_MARK
      Constant to access rl_mark using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_NUM_CHARS_TO_READ
      Constant to access rl_num_chars_to_read using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_NUMERIC_ARG
      Constant to access rl_numeric_arg using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_PENDING_INPUT
      Constant to access rl_pending_input using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_POINT
      Constant to access rl_point using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_PROMPT
      Constant to access rl_prompt using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_READLINE_NAME
      Constant to access rl_readline_name using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_READLINE_STATE
      Constant to access rl_readline_state using getVar() or setVar().
      static org.gnu.readline.ReadlineConstInt RL_READLINE_VERSION
      Constant to access rl_readline_version using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_SPECIAL_PREFIXES
      Constant to access rl_special_prefixes using getVar() or setVar().
      static org.gnu.readline.ReadlineConstString RL_TERMINAL_NAME
      Constant to access rl_terminal_name using getVar() or setVar().
    • Constructor Summary

      Constructors 
      Constructor Description
      Readline()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void addToHistory​(java.lang.String line)
      Add a line to the in-memory history.
      static void cleanup()
      Reset the readline library and with it, the terminal.
      static void clearHistory()
      Clear the history buffer.
      static ReadlineCompleter getCompleter()
      Query current completer function.
      static java.lang.String getEncoding()
      Query current encoding of fallback BufferedReader.
      static void getHistory​(java.util.Collection collection)
      Get the history buffer in a supplied Collection.
      static java.lang.String getHistoryLine​(int i)
      Get the specified entry from the history buffer.
      static int getHistorySize()
      Get the size, in elements (lines), of the history buffer.
      static java.lang.String getLineBuffer()
      Query the current line buffer.
      static boolean getThrowExceptionOnUnsupportedMethod()
      Query behavior in case an unsupported method is called.
      static int getVar​(org.gnu.readline.ReadlineConstInt c)
      Query integer readline-variable.
      static java.lang.String getVar​(org.gnu.readline.ReadlineConstString c)
      Query string readline-variable.
      static java.lang.String getWordBreakCharacters()
      Query word break characters.
      static boolean hasTerminal()
      Return if we have a terminal.
      static void initReadline​(java.lang.String applicationName)
      Initialize the GNU-Readline library.
      static void load​(ReadlineLibrary lib)
      Load an implementing backing library.
      static boolean parseAndBind​(java.lang.String line)
      Parse argument string as if it had been read from `inputrc' file and perform key bindings and variable assignments found.
      static void readHistoryFile​(java.lang.String filename)
      Reads a history file into memory
      static void readInitFile​(java.lang.String filename)
      Read keybindings and variable assignments from a file.
      static java.lang.String readline​(java.lang.String prompt)
      Display a prompt on standard output and read a string from standard input.
      static java.lang.String readline​(java.lang.String prompt, boolean addToHist)
      Display a prompt on standard output and read a string from standard input.
      static void setCompleter​(ReadlineCompleter rlc)
      Set your completer implementation.
      static void setEncoding​(java.lang.String encoding)
      Set current encoding of fallback BufferedReader.
      static void setThrowExceptionOnUnsupportedMethod​(boolean flag)
      Configure behavior in case an unsupported method is called.
      static int setVar​(org.gnu.readline.ReadlineConstInt c, int value)
      Set integer readline-variable.
      static java.lang.String setVar​(org.gnu.readline.ReadlineConstString c, java.lang.String value)
      Set string readline-variable.
      static void setWordBreakCharacters​(java.lang.String wordBreakCharacters)
      Set word break characters.
      static void writeHistoryFile​(java.lang.String filename)
      Writes a history file to disc
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • RL_LIBRARY_VERSION

        public static final org.gnu.readline.ReadlineConstString RL_LIBRARY_VERSION
        Constant to access rl_library_version using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_READLINE_NAME

        public static final org.gnu.readline.ReadlineConstString RL_READLINE_NAME
        Constant to access rl_readline_name using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_PROMPT

        public static final org.gnu.readline.ReadlineConstString RL_PROMPT
        Constant to access rl_prompt using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Getline

      • RL_LINE_BUFFER

        public static final org.gnu.readline.ReadlineConstString RL_LINE_BUFFER
        Constant to access rl_line_buffer using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline

      • RL_TERMINAL_NAME

        public static final org.gnu.readline.ReadlineConstString RL_TERMINAL_NAME
        Constant to access rl_terminal_name using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_EXECUTING_MACRO

        public static final org.gnu.readline.ReadlineConstString RL_EXECUTING_MACRO
        Constant to access rl_executing_macro using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_BASIC_WORD_BREAK_CHARACTERS

        public static final org.gnu.readline.ReadlineConstString RL_BASIC_WORD_BREAK_CHARACTERS
        Constant to access rl_basic_word_break_characters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_COMPLETER_WORD_BREAK_CHARACTERS

        public static final org.gnu.readline.ReadlineConstString RL_COMPLETER_WORD_BREAK_CHARACTERS
        Constant to access rl_completer_word_break_characters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_COMPLETER_QUOTE_CHARACTERS

        public static final org.gnu.readline.ReadlineConstString RL_COMPLETER_QUOTE_CHARACTERS
        Constant to access rl_completer_quote_characters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_BASIC_QUOTE_CHARACTERS

        public static final org.gnu.readline.ReadlineConstString RL_BASIC_QUOTE_CHARACTERS
        Constant to access rl_basic_quote_characters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_FILENAME_QUOTE_CHARACTERS

        public static final org.gnu.readline.ReadlineConstString RL_FILENAME_QUOTE_CHARACTERS
        Constant to access rl_filename_quote_characters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_SPECIAL_PREFIXES

        public static final org.gnu.readline.ReadlineConstString RL_SPECIAL_PREFIXES
        Constant to access rl_special_prefixes using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • HISTORY_WORD_DELIMITERS

        public static final org.gnu.readline.ReadlineConstString HISTORY_WORD_DELIMITERS
        Constant to access history_word_delimiters using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • HISTORY_NO_EXPAND_CHARS

        public static final org.gnu.readline.ReadlineConstString HISTORY_NO_EXPAND_CHARS
        Constant to access history_no_expand_chars using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • HISTORY_SEARCH_DELIMITERS

        public static final org.gnu.readline.ReadlineConstString HISTORY_SEARCH_DELIMITERS
        Constant to access history_search_delimiter_chars using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_READLINE_VERSION

        public static final org.gnu.readline.ReadlineConstInt RL_READLINE_VERSION
        Constant to access rl_readline_version using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_GNU_READLINE_P

        public static final org.gnu.readline.ReadlineConstInt RL_GNU_READLINE_P
        Constant to access rl_gnu_readline_p using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_READLINE_STATE

        public static final org.gnu.readline.ReadlineConstInt RL_READLINE_STATE
        Constant to access rl_readline_state using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_EDITING_MODE

        public static final org.gnu.readline.ReadlineConstInt RL_EDITING_MODE
        Constant to access rl_editing_mode using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_INSERT_MODE

        public static final org.gnu.readline.ReadlineConstInt RL_INSERT_MODE
        Constant to access rl_insert_mode using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Getline

      • RL_POINT

        public static final org.gnu.readline.ReadlineConstInt RL_POINT
        Constant to access rl_point using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline

      • RL_END

        public static final org.gnu.readline.ReadlineConstInt RL_END
        Constant to access rl_end using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline

      • RL_MARK

        public static final org.gnu.readline.ReadlineConstInt RL_MARK
        Constant to access rl_mark using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_DONE

        public static final org.gnu.readline.ReadlineConstInt RL_DONE
        Constant to access rl_done using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_PENDING_INPUT

        public static final org.gnu.readline.ReadlineConstInt RL_PENDING_INPUT
        Constant to access rl_pending_input using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_DISPATCHING

        public static final org.gnu.readline.ReadlineConstInt RL_DISPATCHING
        Constant to access rl_dispatching using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_EXPLICIT_ARG

        public static final org.gnu.readline.ReadlineConstInt RL_EXPLICIT_ARG
        Constant to access rl_explicit_arg using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_NUMERIC_ARG

        public static final org.gnu.readline.ReadlineConstInt RL_NUMERIC_ARG
        Constant to access rl_numeric_arg using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_ERASE_EMPTY_LINE

        public static final org.gnu.readline.ReadlineConstInt RL_ERASE_EMPTY_LINE
        Constant to access rl_erase_empty_line using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_ALREADY_PROMPTED

        public static final org.gnu.readline.ReadlineConstInt RL_ALREADY_PROMPTED
        Constant to access rl_already_prompted using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_NUM_CHARS_TO_READ

        public static final org.gnu.readline.ReadlineConstInt RL_NUM_CHARS_TO_READ
        Constant to access rl_num_chars_to_read using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_CATCH_SIGNALS

        public static final org.gnu.readline.ReadlineConstInt RL_CATCH_SIGNALS
        Constant to access rl_catch_signals using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_CATCH_SIGWINCH

        public static final org.gnu.readline.ReadlineConstInt RL_CATCH_SIGWINCH
        Constant to access rl_catch_sigwinch using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_FILENAME_COMPLETION_DESIRED

        public static final org.gnu.readline.ReadlineConstInt RL_FILENAME_COMPLETION_DESIRED
        Constant to access rl_filename_completion_desired using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_FILENAME_QUOTING_DESIRED

        public static final org.gnu.readline.ReadlineConstInt RL_FILENAME_QUOTING_DESIRED
        Constant to access rl_filename_quoting_desired using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_ATTEMPTED_COMPLETION_OVER

        public static final org.gnu.readline.ReadlineConstInt RL_ATTEMPTED_COMPLETION_OVER
        Constant to access rl_attempted_completion_over using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_COMPLETION_TYPE

        public static final org.gnu.readline.ReadlineConstInt RL_COMPLETION_TYPE
        Constant to access rl_completion_type using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_COMPLETION_APPEND_CHARACTER

        public static final org.gnu.readline.ReadlineConstInt RL_COMPLETION_APPEND_CHARACTER
        Constant to access rl_completion_append_character using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_COMPLETION_SUPPRESS_APPEND

        public static final org.gnu.readline.ReadlineConstInt RL_COMPLETION_SUPPRESS_APPEND
        Constant to access rl_completion_suppress_append using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_COMPLETION_QUERY_ITEMS

        public static final org.gnu.readline.ReadlineConstInt RL_COMPLETION_QUERY_ITEMS
        Constant to access rl_completion_query_items using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • RL_COMPLETION_MARK_SYMLINK_DIRS

        public static final org.gnu.readline.ReadlineConstInt RL_COMPLETION_MARK_SYMLINK_DIRS
        Constant to access rl_completion_mark_symlink_dirs using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_IGNORE_COMPLETION_DUPLICATES

        public static final org.gnu.readline.ReadlineConstInt RL_IGNORE_COMPLETION_DUPLICATES
        Constant to access rl_ignore_completion_duplicates using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • RL_INHIBIT_COMPLETION

        public static final org.gnu.readline.ReadlineConstInt RL_INHIBIT_COMPLETION
        Constant to access rl_inhibit_completion using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • HISTORY_BASE

        public static final org.gnu.readline.ReadlineConstInt HISTORY_BASE
        Constant to access history_base using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • HISTORY_LENGTH

        public static final org.gnu.readline.ReadlineConstInt HISTORY_LENGTH
        Constant to access history_length using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline
        • Editline

      • HISTORY_MAX_ENTRIES

        public static final org.gnu.readline.ReadlineConstInt HISTORY_MAX_ENTRIES
        Constant to access history_max_entries using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

      • HISTORY_QUOTES_EXPANSION

        public static final org.gnu.readline.ReadlineConstInt HISTORY_QUOTES_EXPANSION
        Constant to access history_quotes_inhibit_expansion using getVar() or setVar().

        Supporting implementations:

        • GNU-Readline

    • Constructor Detail

      • Readline

        public Readline()
    • Method Detail

      • load

        public static final void load​(ReadlineLibrary lib)
                               throws java.lang.UnsatisfiedLinkError
        Load an implementing backing library. This method might throw an UnsatisfiedLinkError in case the native libary is not found in the library path. If you want to have a portable program, just catch and ignore that error. JavaReadline will then just use the pure Java fallback solution.
        Parameters:
        lib - An object (constant) of type ReadlineLibrary
        Throws:
        java.lang.UnsatisfiedLinkError - if the shared library could not be found. Add it to your LD_LIBRARY_PATH.
        See Also:
        ReadlineLibrary
      • initReadline

        public static void initReadline​(java.lang.String applicationName)
        Initialize the GNU-Readline library. This will also set the application name, which can be used in the initialization files of Readline (usually /etc/inputrc and ~/.inputrc) to define application specific keys. See the file ReadlineTest.java int the test subdir of the distribution for an example.

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline

        Parameters:
        applicationName - Name of application in initialization file
      • readline

        public static java.lang.String readline​(java.lang.String prompt)
                                         throws java.io.EOFException,
                                                java.io.IOException,
                                                java.io.UnsupportedEncodingException
        Display a prompt on standard output and read a string from standard input. This method returns 'null', if there has been an empty input (user pressed just [RETURN]) and throws an EOFException on end-of-file (C-d). This versino of readline() automatically adds the line to the in-memory history; use the other version of readline() if you want explicit control over that feature.

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline
        • PureJava

        Parameters:
        prompt - Prompt to display
        Returns:
        The string the user entered or 'null' if there was no input.
        Throws:
        java.io.EOFException - on end-of-file, i.e. CTRL-d input.
        java.io.IOException
        java.io.UnsupportedEncodingException
        See Also:
        readline(String,boolean), #addHistory()
      • readline

        public static java.lang.String readline​(java.lang.String prompt,
                                                boolean addToHist)
                                         throws java.io.EOFException,
                                                java.io.IOException,
                                                java.io.UnsupportedEncodingException
        Display a prompt on standard output and read a string from standard input. This method returns 'null', if there has been an empty input (user pressed just [RETURN]) and throws an EOFException on end-of-file (C-d).
        Parameters:
        prompt - Prompt to display
        addToHist - true to add the line to the history automatically; false to refrain from adding the line to the history. (You can manually add the line to the history by calling addHistory().)
        Returns:
        The string the user entered or 'null' if there was no input.
        Throws:
        java.io.EOFException - on end-of-file, i.e. CTRL-d input.
        java.io.IOException
        java.io.UnsupportedEncodingException
        See Also:
        readline(String), #addHistory()
      • addToHistory

        public static void addToHistory​(java.lang.String line)
        Add a line to the in-memory history.

        Supporting implementations:

        • GNU-Readline
        • Editline
        • Getline

        Parameters:
        line - The line to add to the history
        Throws:
        UnsupportOperationException - if underlying library doesn't support a history
      • getHistory

        public static void getHistory​(java.util.Collection collection)
        Get the history buffer in a supplied Collection.

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        collection - where to store the history
        Throws:
        UnsupportOperationException - if underlying library doesn't support a history
      • getHistorySize

        public static int getHistorySize()
        Get the size, in elements (lines), of the history buffer.

        Supporting implementations:

        • GNU-Readline
        • Editline

        Returns:
        the number of lines in the history buffer
      • clearHistory

        public static void clearHistory()
        Clear the history buffer.

        Supporting implementations:

        • GNU-Readline
        • Editline

      • getHistoryLine

        public static java.lang.String getHistoryLine​(int i)
        Get the specified entry from the history buffer. History buffer entries are numbered from 0 through (getHistorySize() - 1), with the oldest entry at index 0.

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        i - the index of the entry to return
        Returns:
        the line at the specified index in the history buffer
        Throws:
        java.lang.ArrayIndexOutOfBoundsException - index out of range
      • readInitFile

        public static void readInitFile​(java.lang.String filename)
                                 throws java.io.IOException
        Read keybindings and variable assignments from a file. This method is a wrapper to rl_read_init_file(char *filename). Throws IOException if something goes wrong.

        Supporting implementations:

        • GNU-Readline

        Parameters:
        filename - Name of file to read bindings from
        Throws:
        java.io.IOException
      • parseAndBind

        public static boolean parseAndBind​(java.lang.String line)
        Parse argument string as if it had been read from `inputrc' file and perform key bindings and variable assignments found.

        Supporting implementations:

        • GNU-Readline

        Parameters:
        line - Simulated line from inputrc file
        Returns:
        boolean False in case of error
      • readHistoryFile

        public static void readHistoryFile​(java.lang.String filename)
                                    throws java.io.EOFException,
                                           java.io.UnsupportedEncodingException
        Reads a history file into memory

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        filename - Name of history file to read
        Throws:
        java.io.EOFException
        java.io.UnsupportedEncodingException
      • writeHistoryFile

        public static void writeHistoryFile​(java.lang.String filename)
                                     throws java.io.EOFException,
                                            java.io.UnsupportedEncodingException
        Writes a history file to disc

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        filename - Name of history file to write
        Throws:
        java.io.EOFException
        java.io.UnsupportedEncodingException
      • setCompleter

        public static void setCompleter​(ReadlineCompleter rlc)
        Set your completer implementation. Setting this to null will result in the default behaviour of readline which is filename completion.

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        rlc - An object implementing the ReadlineCompleter interface
      • getCompleter

        public static ReadlineCompleter getCompleter()
        Query current completer function.
        Returns:
        Current ReadlineCompleter object
      • cleanup

        public static void cleanup()
        Reset the readline library and with it, the terminal.

        Supporting implementations:

        • GNU-Readline
        • Editline

      • hasTerminal

        public static boolean hasTerminal()
        Return if we have a terminal. This requires, that any of the native libraries have been loaded yet (so call Readline.load(ReadlineLibrary)()) first, otherwise this will always return true.

        Supporting implementations:

        • GNU-Readline
        • Editline

      • setWordBreakCharacters

        public static void setWordBreakCharacters​(java.lang.String wordBreakCharacters)
                                           throws java.io.UnsupportedEncodingException
        Set word break characters.

        Supporting implementations:

        • GNU-Readline
        • Editline

        Parameters:
        wordBreakCharacters - A string of word break characters
        Throws:
        java.io.UnsupportedEncodingException
      • getWordBreakCharacters

        public static java.lang.String getWordBreakCharacters()
        Query word break characters.

        Supporting implementations:

        • GNU-Readline
        • Editline

      • getLineBuffer

        public static java.lang.String getLineBuffer()
        Query the current line buffer. This returns the current content of the internal line buffer. You might need this in a ReadlineCompleter implementation to access the full text given so far.

        Supporting implementations:

        • GNU-Readline
        • Editline

      • setThrowExceptionOnUnsupportedMethod

        public static void setThrowExceptionOnUnsupportedMethod​(boolean flag)
        Configure behavior in case an unsupported method is called. If argument is true, unsupported methods throw an UnsupportedOperationException.
        Parameters:
        flag - configuration flag
      • getThrowExceptionOnUnsupportedMethod

        public static boolean getThrowExceptionOnUnsupportedMethod()
        Query behavior in case an unsupported method is called.
        Returns:
        configuration flag
      • setEncoding

        public static void setEncoding​(java.lang.String encoding)
        Set current encoding of fallback BufferedReader.
        Parameters:
        encoding - encoding to use
      • getEncoding

        public static java.lang.String getEncoding()
        Query current encoding of fallback BufferedReader.
        Returns:
        current encoding
      • setVar

        public static int setVar​(org.gnu.readline.ReadlineConstInt c,
                                 int value)
        Set integer readline-variable.
        Parameters:
        c - symbolic constant of readline-variable
        value - new value of readline-variable
        Returns:
        old value of readline-variable
      • getVar

        public static int getVar​(org.gnu.readline.ReadlineConstInt c)
        Query integer readline-variable.
        Parameters:
        c - symbolic constant of readline-variable
        Returns:
        value of variable
      • setVar

        public static java.lang.String setVar​(org.gnu.readline.ReadlineConstString c,
                                              java.lang.String value)
                                       throws java.io.UnsupportedEncodingException
        Set string readline-variable.
        Parameters:
        c - symbolic constant of readline-variable
        value - new value of readline-variable
        Returns:
        old value of readline-variable
        Throws:
        java.io.UnsupportedEncodingException
      • getVar

        public static java.lang.String getVar​(org.gnu.readline.ReadlineConstString c)
                                       throws java.io.UnsupportedEncodingException
        Query string readline-variable.
        Parameters:
        c - symbolic constant of readline-variable
        Returns:
        value of variable
        Throws:
        java.io.UnsupportedEncodingException