comparison NOTES @ 9:822a2fe5bb51

move command window to separate file and other refactoring
author John W. Eaton <jwe@octave.org>
date Thu, 23 May 2019 12:36:26 -0400
parents 52c033864347
children bfa9aaa2d608
comparison
equal deleted inserted replaced
8:7c4b04a6346d 9:822a2fe5bb51
75 immediately. How do we deal with parsing multiple expressions and 75 immediately. How do we deal with parsing multiple expressions and
76 statements with this method? 76 statements with this method?
77 77
78 * Do we need text position markers to keep track of the prompt position 78 * Do we need text position markers to keep track of the prompt position
79 (beginning of current line) when inserting or clearing text? 79 (beginning of current line) when inserting or clearing text?
80
81
82 readline callback functions:
83
84 // -- Variable: rl_getc_func_t * rl_getc_function
85 // If non-zero, Readline will call indirectly through this pointer to
86 // get a character from the input stream. By default, it is set to
87 // `rl_getc', the default Readline character input function (*note
88 // Character Input::).
89
90 // -- Variable: rl_voidfunc_t * rl_redisplay_function
91 // If non-zero, Readline will call indirectly through this pointer to
92 // update the display with the current contents of the editing buffer.
93 // By default, it is set to `rl_redisplay', the default Readline
94 // redisplay function (*note Redisplay::).
95
96 // -- Variable: rl_vintfunc_t * rl_prep_term_function
97 // If non-zero, Readline will call indirectly through this pointer to
98 // initialize the terminal. The function takes a single argument, an
99 // `int' flag that says whether or not to use eight-bit characters.
100 // By default, this is set to `rl_prep_terminal' (*note Terminal
101 // Management::).
102
103 // -- Variable: rl_voidfunc_t * rl_deprep_term_function
104 // If non-zero, Readline will call indirectly through this pointer to
105 // reset the terminal. This function should undo the effects of
106 // `rl_prep_term_function'. By default, this is set to
107 // `rl_deprep_terminal' (*note Terminal Management::).
108
109 // -- Function: void rl_callback_handler_install (const char *prompt,
110 // rl_vcpfunc_t *lhandler)
111 // Set up the terminal for readline I/O and display the initial
112 // expanded value of PROMPT. Save the value of LHANDLER to use as a
113 // function to call when a complete line of input has been entered.
114 // The function takes the text of the line as an argument.
115
116 // -- Function: void rl_callback_read_char (void)
117 // Whenever an application determines that keyboard input is
118 // available, it should call `rl_callback_read_char()', which will
119 // read the next character from the current input source. If that
120 // character completes the line, `rl_callback_read_char' will invoke
121 // the LHANDLER function saved by `rl_callback_handler_install' to
122 // process the line. Before calling the LHANDLER function, the
123 // terminal settings are reset to the values they had before calling
124 // `rl_callback_handler_install'. If the LHANDLER function returns,
125 // the terminal settings are modified for Readline's use again.
126 // `EOF' is indicated by calling LHANDLER with a `NULL' line.
127
128 // -- Function: void rl_callback_handler_remove (void)
129 // Restore the terminal to its initial state and remove the line
130 // handler. This may be called from within a callback as well as
131 // independently. If the LHANDLER installed by
132 // `rl_callback_handler_install' does not exit the program, either
133 // this function or the function referred to by the value of
134 // `rl_deprep_term_function' should be called before the program
135 // exits to reset the terminal settings.
136
137 // -- Variable: rl_compdisp_func_t * rl_completion_display_matches_hook
138 // If non-zero, then this is the address of a function to call when
139 // completing a word would normally display the list of possible
140 // matches. This function is called in lieu of Readline displaying
141 // the list. It takes three arguments: (`char **'MATCHES, `int'
142 // NUM_MATCHES, `int' MAX_LENGTH) where MATCHES is the array of
143 // matching strings, NUM_MATCHES is the number of strings in that
144 // array, and MAX_LENGTH is the length of the longest string in that
145 // array. Readline provides a convenience function,
146 // `rl_display_match_list', that takes care of doing the display to
147 // Readline's output stream. That function may be called from this
148 // hook.