root / lab4 / .minix-src / include / readline / readline.h @ 14
History | View | Annotate | Download (7.35 KB)
1 |
/* $NetBSD: readline.h,v 1.37 2015/06/02 15:36:45 christos Exp $ */
|
---|---|
2 |
|
3 |
/*-
|
4 |
* Copyright (c) 1997 The NetBSD Foundation, Inc.
|
5 |
* All rights reserved.
|
6 |
*
|
7 |
* This code is derived from software contributed to The NetBSD Foundation
|
8 |
* by Jaromir Dolecek.
|
9 |
*
|
10 |
* Redistribution and use in source and binary forms, with or without
|
11 |
* modification, are permitted provided that the following conditions
|
12 |
* are met:
|
13 |
* 1. Redistributions of source code must retain the above copyright
|
14 |
* notice, this list of conditions and the following disclaimer.
|
15 |
* 2. Redistributions in binary form must reproduce the above copyright
|
16 |
* notice, this list of conditions and the following disclaimer in the
|
17 |
* documentation and/or other materials provided with the distribution.
|
18 |
*
|
19 |
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
|
20 |
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
21 |
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
22 |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
|
23 |
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
24 |
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
25 |
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
26 |
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
27 |
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
28 |
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
29 |
* POSSIBILITY OF SUCH DAMAGE.
|
30 |
*/
|
31 |
#ifndef _READLINE_H_
|
32 |
#define _READLINE_H_
|
33 |
|
34 |
#include <sys/types.h> |
35 |
#include <stdio.h> |
36 |
|
37 |
/* list of readline stuff supported by editline library's readline wrapper */
|
38 |
|
39 |
/* typedefs */
|
40 |
typedef int Function(const char *, int); |
41 |
typedef void VFunction(void); |
42 |
typedef void rl_vcpfunc_t(char *); |
43 |
typedef char **rl_completion_func_t(const char *, int, int); |
44 |
typedef char *rl_compentry_func_t(const char *, int); |
45 |
typedef int rl_command_func_t(int, int); |
46 |
|
47 |
/* only supports length */
|
48 |
typedef struct { |
49 |
int length;
|
50 |
} HISTORY_STATE; |
51 |
|
52 |
typedef void *histdata_t; |
53 |
|
54 |
typedef struct _hist_entry { |
55 |
const char *line; |
56 |
histdata_t data; |
57 |
} HIST_ENTRY; |
58 |
|
59 |
typedef struct _keymap_entry { |
60 |
char type;
|
61 |
#define ISFUNC 0 |
62 |
#define ISKMAP 1 |
63 |
#define ISMACR 2 |
64 |
Function *function; |
65 |
} KEYMAP_ENTRY; |
66 |
|
67 |
#define KEYMAP_SIZE 256 |
68 |
|
69 |
typedef KEYMAP_ENTRY KEYMAP_ENTRY_ARRAY[KEYMAP_SIZE];
|
70 |
typedef KEYMAP_ENTRY *Keymap;
|
71 |
|
72 |
#define control_character_threshold 0x20 |
73 |
#define control_character_bit 0x40 |
74 |
|
75 |
#ifndef CTRL
|
76 |
#include <sys/ioctl.h> |
77 |
#if !defined(__sun) && !defined(__hpux) && !defined(_AIX)
|
78 |
#include <sys/ttydefaults.h> |
79 |
#endif
|
80 |
#ifndef CTRL
|
81 |
#define CTRL(c) ((c) & 037) |
82 |
#endif
|
83 |
#endif
|
84 |
#ifndef UNCTRL
|
85 |
#define UNCTRL(c) (((c) - 'a' + 'A')|control_character_bit) |
86 |
#endif
|
87 |
|
88 |
#define RUBOUT 0x7f |
89 |
#define ABORT_CHAR CTRL('G') |
90 |
#define RL_READLINE_VERSION 0x0402 |
91 |
#define RL_PROMPT_START_IGNORE '\1' |
92 |
#define RL_PROMPT_END_IGNORE '\2' |
93 |
|
94 |
/* global variables used by readline enabled applications */
|
95 |
#ifdef __cplusplus
|
96 |
extern "C" { |
97 |
#endif
|
98 |
extern const char *rl_library_version; |
99 |
extern int rl_readline_version; |
100 |
extern char *rl_readline_name; |
101 |
extern FILE *rl_instream;
|
102 |
extern FILE *rl_outstream;
|
103 |
extern char *rl_line_buffer; |
104 |
extern int rl_point, rl_end; |
105 |
extern int history_base, history_length; |
106 |
extern int max_input_history; |
107 |
extern char *rl_basic_word_break_characters; |
108 |
extern char *rl_completer_word_break_characters; |
109 |
extern char *rl_completer_quote_characters; |
110 |
extern rl_compentry_func_t *rl_completion_entry_function;
|
111 |
extern char *(*rl_completion_word_break_hook)(void); |
112 |
extern rl_completion_func_t *rl_attempted_completion_function;
|
113 |
extern int rl_attempted_completion_over; |
114 |
extern int rl_completion_type; |
115 |
extern int rl_completion_query_items; |
116 |
extern char *rl_special_prefixes; |
117 |
extern int rl_completion_append_character; |
118 |
extern int rl_inhibit_completion; |
119 |
extern Function *rl_pre_input_hook;
|
120 |
extern Function *rl_startup_hook;
|
121 |
extern char *rl_terminal_name; |
122 |
extern int rl_already_prompted; |
123 |
extern char *rl_prompt; |
124 |
/*
|
125 |
* The following is not implemented
|
126 |
*/
|
127 |
extern int rl_catch_signals; |
128 |
extern int rl_catch_sigwinch; |
129 |
extern KEYMAP_ENTRY_ARRAY emacs_standard_keymap,
|
130 |
emacs_meta_keymap, |
131 |
emacs_ctlx_keymap; |
132 |
extern int rl_filename_completion_desired; |
133 |
extern int rl_ignore_completion_duplicates; |
134 |
extern int (*rl_getc_function)(FILE *); |
135 |
extern VFunction *rl_redisplay_function;
|
136 |
extern VFunction *rl_completion_display_matches_hook;
|
137 |
extern VFunction *rl_prep_term_function;
|
138 |
extern VFunction *rl_deprep_term_function;
|
139 |
extern int readline_echoing_p; |
140 |
extern int _rl_print_completions_horizontally; |
141 |
|
142 |
/* supported functions */
|
143 |
char *readline(const char *); |
144 |
int rl_initialize(void); |
145 |
|
146 |
void using_history(void); |
147 |
int add_history(const char *); |
148 |
void clear_history(void); |
149 |
void stifle_history(int); |
150 |
int unstifle_history(void); |
151 |
int history_is_stifled(void); |
152 |
int where_history(void); |
153 |
HIST_ENTRY *current_history(void);
|
154 |
HIST_ENTRY *history_get(int);
|
155 |
HIST_ENTRY *remove_history(int);
|
156 |
HIST_ENTRY *replace_history_entry(int, const char *, histdata_t); |
157 |
int history_total_bytes(void); |
158 |
int history_set_pos(int); |
159 |
HIST_ENTRY *previous_history(void);
|
160 |
HIST_ENTRY *next_history(void);
|
161 |
int history_search(const char *, int); |
162 |
int history_search_prefix(const char *, int); |
163 |
int history_search_pos(const char *, int, int); |
164 |
int read_history(const char *); |
165 |
int write_history(const char *); |
166 |
int history_truncate_file (const char *, int); |
167 |
int history_expand(char *, char **); |
168 |
char **history_tokenize(const char *); |
169 |
const char *get_history_event(const char *, int *, int); |
170 |
char *history_arg_extract(int, int, const char *); |
171 |
|
172 |
char *tilde_expand(char *); |
173 |
char *filename_completion_function(const char *, int); |
174 |
char *username_completion_function(const char *, int); |
175 |
int rl_complete(int, int); |
176 |
int rl_read_key(void); |
177 |
char **completion_matches(const char *, rl_compentry_func_t *); |
178 |
void rl_display_match_list(char **, int, int); |
179 |
|
180 |
int rl_insert(int, int); |
181 |
int rl_insert_text(const char *); |
182 |
void rl_reset_terminal(const char *); |
183 |
int rl_bind_key(int, rl_command_func_t *); |
184 |
int rl_newline(int, int); |
185 |
void rl_callback_read_char(void); |
186 |
void rl_callback_handler_install(const char *, rl_vcpfunc_t *); |
187 |
void rl_callback_handler_remove(void); |
188 |
void rl_redisplay(void); |
189 |
int rl_get_previous_history(int, int); |
190 |
void rl_prep_terminal(int); |
191 |
void rl_deprep_terminal(void); |
192 |
int rl_read_init_file(const char *); |
193 |
int rl_parse_and_bind(const char *); |
194 |
int rl_variable_bind(const char *, const char *); |
195 |
void rl_stuff_char(int); |
196 |
int rl_add_defun(const char *, rl_command_func_t *, int); |
197 |
HISTORY_STATE *history_get_history_state(void);
|
198 |
void rl_get_screen_size(int *, int *); |
199 |
void rl_set_screen_size(int, int); |
200 |
char *rl_filename_completion_function (const char *, int); |
201 |
int _rl_abort_internal(void); |
202 |
int _rl_qsort_string_compare(char **, char **); |
203 |
char **rl_completion_matches(const char *, rl_compentry_func_t *); |
204 |
void rl_forced_update_display(void); |
205 |
int rl_set_prompt(const char *); |
206 |
int rl_on_new_line(void); |
207 |
|
208 |
/*
|
209 |
* The following are not implemented
|
210 |
*/
|
211 |
int rl_kill_text(int, int); |
212 |
Keymap rl_get_keymap(void);
|
213 |
void rl_set_keymap(Keymap);
|
214 |
Keymap rl_make_bare_keymap(void);
|
215 |
int rl_generic_bind(int, const char *, const char *, Keymap); |
216 |
int rl_bind_key_in_map(int, rl_command_func_t *, Keymap); |
217 |
void rl_cleanup_after_signal(void); |
218 |
void rl_free_line_state(void); |
219 |
#ifdef __cplusplus
|
220 |
} |
221 |
#endif
|
222 |
|
223 |
#endif /* _READLINE_H_ */ |