My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
readline.h
1 /* Readline.h -- the names of functions callable from within readline. */
2 
3 /* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.
4 
5  This file is part of the GNU Readline Library, a library for
6  reading lines of text with interactive input and history editing.
7 
8  The GNU Readline Library is free software; you can redistribute it
9  and/or modify it under the terms of the GNU General Public License
10  as published by the Free Software Foundation; either version 1, or
11  (at your option) any later version.
12 
13  The GNU Readline Library is distributed in the hope that it will be
14  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
15  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  GNU General Public License for more details.
17 
18  The GNU General Public License is often shipped with GNU software, and
19  is generally kept in a file called COPYING or LICENSE. If you do not
20  have a copy of the license, write to the Free Software Foundation,
21  675 Mass Ave, Cambridge, MA 02139, USA. */
22 
23 #if !defined (_READLINE_H_)
24 #define _READLINE_H_
25 
26 # include "keymaps.h"
27 # include "tilde.h"
28 
29 /* The functions for manipulating the text of the line within readline.
30 Most of these functions are bound to keys by default. */
31 extern int
32  rl_tilde_expand (),
33  rl_beg_of_line (), rl_backward (), rl_delete (), rl_end_of_line (),
34  rl_forward (), ding (), rl_backward (), rl_newline (), rl_kill_line (),
35  rl_clear_screen (), rl_get_next_history (), rl_get_previous_history (),
36  rl_quoted_insert (), rl_reverse_search_history (), rl_transpose_chars (),
37  rl_unix_line_discard (), rl_quoted_insert (), rl_unix_word_rubout (),
38  rl_yank (), rl_rubout (), rl_backward_word (), rl_kill_word (),
39  rl_forward_word (), rl_tab_insert (), rl_yank_pop (), rl_yank_nth_arg (),
40  rl_backward_kill_word (), rl_backward_kill_line (), rl_transpose_words (),
41  rl_complete (), rl_possible_completions (), rl_insert_completions (),
42  rl_do_lowercase_version (), rl_kill_full_line (),
43  rl_digit_argument (), rl_universal_argument (), rl_abort (),
44  rl_undo_command (), rl_revert_line (), rl_beginning_of_history (),
45  rl_end_of_history (), rl_forward_search_history (), rl_insert (),
46  rl_upcase_word (), rl_downcase_word (), rl_capitalize_word (),
47  rl_restart_output (), rl_re_read_init_file (), rl_dump_functions (),
48  rl_delete_horizontal_space (), rl_history_search_forward (),
49  rl_history_search_backward (), rl_tty_status (), rl_yank_last_arg ();
50 
51 /* `Public' utility functions. */
52 extern int rl_insert_text (), rl_delete_text (), rl_kill_text ();
53 extern int rl_complete_internal ();
54 extern int rl_expand_prompt ();
55 extern int rl_initialize ();
56 extern int rl_set_signals (), rl_clear_signals ();
57 extern int rl_init_argument (), rl_digit_argument ();
58 extern int rl_read_key (), rl_getc (), rl_stuff_char ();
59 extern int maybe_save_line (), maybe_unsave_line (), maybe_replace_line ();
60 extern int rl_modifying ();
61 
62 extern int rl_begin_undo_group (), rl_end_undo_group ();
63 extern void rl_add_undo (), free_undo_list ();
64 extern int rl_do_undo ();
65 
66 /* Not available unless readline is compiled -DPAREN_MATCHING. */
67 extern int rl_insert_close ();
68 
69 /* These are *both* defined even when VI_MODE is not. */
70 extern int rl_vi_editing_mode (), rl_emacs_editing_mode ();
71 
72 /* Non incremental history searching. */
73 extern int
74  rl_noninc_forward_search (), rl_noninc_reverse_search (),
75  rl_noninc_forward_search_again (), rl_noninc_reverse_search_again ();
76 
77 /* Things for vi mode. Not available unless readline is compiled -DVI_MODE. */
78 extern int rl_vi_check (), rl_vi_textmod_command ();
79 extern int
80  rl_vi_redo (), rl_vi_tilde_expand (),
81  rl_vi_movement_mode (), rl_vi_insertion_mode (), rl_vi_arg_digit (),
82  rl_vi_prev_word (), rl_vi_next_word (), rl_vi_char_search (),
83  rl_vi_eof_maybe (), rl_vi_append_mode (), rl_vi_put (),
84  rl_vi_append_eol (), rl_vi_insert_beg (), rl_vi_delete (), rl_vi_comment (),
85  rl_vi_first_print (), rl_vi_fword (), rl_vi_fWord (), rl_vi_bword (),
86  rl_vi_bWord (), rl_vi_eword (), rl_vi_eWord (), rl_vi_end_word (),
87  rl_vi_change_case (), rl_vi_match (), rl_vi_bracktype (),
88  rl_vi_change_char (), rl_vi_yank_arg (), rl_vi_search (),
89  rl_vi_search_again (), rl_vi_subst (), rl_vi_overstrike (),
90  rl_vi_overstrike_delete (), rl_vi_replace(), rl_vi_column (),
91  rl_vi_delete_to (), rl_vi_change_to (), rl_vi_yank_to (),
92  rl_vi_complete (), rl_vi_fetch_history ();
93 
94 /* Keyboard macro commands. */
95 extern int rl_start_kbd_macro (), rl_end_kbd_macro ();
96 extern int rl_call_last_kbd_macro ();
97 
98 extern int rl_arrow_keys(), rl_refresh_line ();
99 
100 /* Maintaining the state of undo. We remember individual deletes and inserts
101  on a chain of things to do. */
102 
103 /* The actions that undo knows how to undo. Notice that UNDO_DELETE means
104  to insert some text, and UNDO_INSERT means to delete some text. I.e.,
105  the code tells undo what to undo, not how to undo it. */
106 enum undo_code { UNDO_DELETE, UNDO_INSERT, UNDO_BEGIN, UNDO_END };
107 
108 /* What an element of THE_UNDO_LIST looks like. */
109 typedef struct undo_list {
110  struct undo_list *next;
111  int start, end; /* Where the change took place. */
112  char *text; /* The text to insert, if undoing a delete. */
113  enum undo_code what; /* Delete, Insert, Begin, End. */
114 } UNDO_LIST;
115 
116 /* The current undo list for RL_LINE_BUFFER. */
117 extern UNDO_LIST *rl_undo_list;
118 
119 /* The data structure for mapping textual names to code addresses. */
120 typedef struct {
121  char *name;
122  Function *function;
123 } FUNMAP;
124 
125 extern FUNMAP **funmap;
126 
127 /* **************************************************************** */
128 /* */
129 /* Well Published Variables */
130 /* */
131 /* **************************************************************** */
132 
133 /* The name of the calling program. You should initialize this to
134  whatever was in argv[0]. It is used when parsing conditionals. */
135 extern char *rl_readline_name;
136 
137 /* The line buffer that is in use. */
138 extern char *rl_line_buffer;
139 
140 /* The location of point, and end. */
141 extern int rl_point, rl_end;
142 
143 /* The name of the terminal to use. */
144 extern char *rl_terminal_name;
145 
146 /* The input and output streams. */
147 extern FILE *rl_instream, *rl_outstream;
148 
149 /* The basic list of characters that signal a break between words for the
150  completer routine. The initial contents of this variable is what
151  breaks words in the shell, i.e. "n\"\\'`@$>". */
152 extern char *rl_basic_word_break_characters;
153 
154 /* The list of characters that signal a break between words for
155  rl_complete_internal. The default list is the contents of
156  rl_basic_word_break_characters. */
157 extern char *rl_completer_word_break_characters;
158 
159 /* List of characters which can be used to quote a substring of the line.
160  Completion occurs on the entire substring, and within the substring
161  rl_completer_word_break_characters are treated as any other character,
162  unless they also appear within this list. */
163 extern char *rl_completer_quote_characters;
164 
165 /* List of characters that are word break characters, but should be left
166  in TEXT when it is passed to the completion function. The shell uses
167  this to help determine what kind of completing to do. */
168 extern char *rl_special_prefixes;
169 
170 /* Pointer to the generator function for completion_matches ().
171  NULL means to use filename_entry_function (), the default filename
172  completer. */
173 extern Function *rl_completion_entry_function;
174 
175 /* If rl_ignore_some_completions_function is non-NULL it is the address
176  of a function to call after all of the possible matches have been
177  generated, but before the actual completion is done to the input line.
178  The function is called with one argument; a NULL terminated array
179  of (char *). If your function removes any of the elements, they
180  must be free()'ed. */
181 extern Function *rl_ignore_some_completions_function;
182 
183 /* Pointer to alternative function to create matches.
184  Function is called with TEXT, START, and END.
185  START and END are indices in RL_LINE_BUFFER saying what the boundaries
186  of TEXT are.
187  If this function exists and returns NULL then call the value of
188  rl_completion_entry_function to try to match, otherwise use the
189  array of strings returned. */
190 extern CPPFunction *rl_attempted_completion_function;
191 
192 /* If non-zero, then this is the address of a function to call just
193  before readline_internal () prints the first prompt. */
194 extern Function *rl_startup_hook;
195 
196 /* If non-zero, then this is the address of a function to call when
197  completing on a directory name. The function is called with
198  the address of a string (the current directory name) as an arg. */
199 extern Function *rl_directory_completion_hook;
200 
201 /* Backwards compatibility with previous versions of readline. */
202 #define rl_symbolic_link_hook rl_directory_completion_hook
203 
204 /* The address of a function to call periodically while Readline is
205  awaiting character input, or NULL, for no event handling. */
206 extern Function *rl_event_hook;
207 
208 /* Non-zero means that modified history lines are preceded
209  with an asterisk. */
210 extern int rl_show_star;
211 
212 /* Non-zero means that the results of the matches are to be treated
213  as filenames. This is ALWAYS zero on entry, and can only be changed
214  within a completion entry finder function. */
215 extern int rl_filename_completion_desired;
216 
217 /* Non-zero means that the results of the matches are to be quoted using
218  double quotes (or an application-specific quoting mechanism) if the
219  filename contains any characters in rl_word_break_chars. This is
220  ALWAYS non-zero on entry, and can only be changed within a completion
221  entry finder function. */
222 extern int rl_filename_quoting_desired;
223 
224 /* Non-zero means to suppress normal filename completion after the
225  user-specified completion function has been called. */
226 extern int rl_attempted_completion_over;
227 
228 /* **************************************************************** */
229 /* */
230 /* Well Published Functions */
231 /* */
232 /* **************************************************************** */
233 
234 /* Read a line of input. Prompt with PROMPT. A NULL PROMPT means none. */
235 extern char *readline ();
236 
237 /* These functions are from complete.c. */
238 /* Return an array of strings which are the result of repeatadly calling
239  FUNC with TEXT. */
240 extern char **completion_matches ();
241 extern char *username_completion_function ();
242 extern char *filename_completion_function ();
243 
244 /* These functions are from bind.c. */
245 /* rl_add_defun (char *name, Function *function, int key)
246  Add NAME to the list of named functions. Make FUNCTION
247  be the function that gets called.
248  If KEY is not -1, then bind it. */
249 extern int rl_add_defun ();
250 extern int rl_bind_key (), rl_bind_key_in_map ();
251 extern int rl_unbind_key (), rl_unbind_key_in_map ();
252 extern int rl_set_key ();
253 extern int rl_macro_bind (), rl_generic_bind (), rl_variable_bind ();
254 extern int rl_translate_keyseq ();
255 extern Function *rl_named_function (), *rl_function_of_keyseq ();
256 extern int rl_parse_and_bind ();
257 extern Keymap rl_get_keymap (), rl_get_keymap_by_name ();
258 extern void rl_set_keymap ();
259 extern char **rl_invoking_keyseqs (), **rl_invoking_keyseqs_in_map ();
260 extern void rl_function_dumper ();
261 extern int rl_read_init_file ();
262 
263 /* Functions in funmap.c */
264 extern void rl_list_funmap_names ();
265 extern void rl_initialize_funmap ();
266 
267 /* Functions in display.c */
268 extern void rl_redisplay ();
269 extern int rl_message (), rl_clear_message ();
270 extern int rl_reset_line_state ();
271 extern int rl_character_len ();
272 extern int rl_show_char ();
273 extern int crlf (), rl_on_new_line ();
274 extern int rl_forced_update_display ();
275 
276 /* Definitions available for use by readline clients. */
277 #define RL_PROMPT_START_IGNORE '\001'
278 #define RL_PROMPT_END_IGNORE '\002'
279 
280 #if !defined (savestring)
281 extern char *savestring (); /* XXX backwards compatibility */
282 #endif
283 
284 #endif /* _READLINE_H_ */
Definition: script.h:601
Definition: readline.h:120
Definition: keymaps.h:45
Definition: readline.h:109