funcs.h revision 1.11
1/*
2 * Copyright 2014 Garrett D'Amore <garrett@damore.org>
3 *
4 * This file is made available under the terms of the Less License.
5 */
6
7#include <regex.h>
8
9struct mlist;
10struct loption;
11
12extern void *ecalloc(int, unsigned int);
13/*PRINTFLIKE1*/
14extern char *easprintf(const char *, ...);
15extern char *estrdup(const char *);
16extern char *skipsp(char *);
17extern int sprefix(char *, char *, int);
18extern void quit(int);
19extern void raw_mode(int);
20extern	char *special_key_str(int);
21extern	void get_term(void);
22extern	void init(void);
23extern	void deinit(void);
24extern	void home(void);
25extern	void add_line(void);
26extern	void lower_left(void);
27extern	void line_left(void);
28extern	void goto_line(int);
29extern	void vbell(void);
30extern	void ring_bell(void);
31extern	void do_clear(void);
32extern	void clear_eol(void);
33extern	void clear_bot(void);
34extern	void at_enter(int);
35extern	void at_exit(void);
36extern	void at_switch(int);
37extern	int is_at_equiv(int, int);
38extern	int apply_at_specials(int);
39extern	void putbs(void);
40extern	void match_brac(int, int, int, int);
41extern	void ch_ungetchar(int);
42extern	void end_logfile(void);
43extern	void sync_logfile(void);
44extern	int ch_seek(off_t);
45extern	int ch_end_seek(void);
46extern	int ch_beg_seek(void);
47extern	off_t ch_length(void);
48extern	off_t ch_tell(void);
49extern	int ch_forw_get(void);
50extern	int ch_back_get(void);
51extern	void ch_setbufspace(int);
52extern	void ch_flush(void);
53extern	int seekable(int);
54extern	void ch_set_eof(void);
55extern	void ch_init(int, int);
56extern	void ch_close(void);
57extern	int ch_getflags(void);
58extern	void init_charset(void);
59extern	int binary_char(LWCHAR);
60extern	int control_char(LWCHAR);
61extern	char *prchar(LWCHAR);
62extern	char *prutfchar(LWCHAR);
63extern	int utf_len(char);
64extern	int is_utf8_well_formed(const char *);
65extern	LWCHAR get_wchar(const char *);
66extern	void put_wchar(char **, LWCHAR);
67extern	LWCHAR step_char(char **, int, char *);
68extern	int is_composing_char(LWCHAR);
69extern	int is_ubin_char(LWCHAR);
70extern	int is_wide_char(LWCHAR);
71extern	int is_combining_char(LWCHAR, LWCHAR);
72extern	void cmd_reset(void);
73extern	void clear_cmd(void);
74extern	void cmd_putstr(char *);
75extern	int len_cmdbuf(void);
76extern	void set_mlist(void *, int);
77extern	void cmd_addhist(struct mlist *, const char *);
78extern	void cmd_accept(void);
79extern	int cmd_char(int);
80extern	LINENUM cmd_int(long *);
81extern	char *get_cmdbuf(void);
82extern	char *cmd_lastpattern(void);
83extern	void init_cmdhist(void);
84extern	void save_cmdhist(void);
85extern	int in_mca(void);
86extern	void dispversion(void);
87extern	int getcc(void);
88extern	void ungetcc(int);
89extern	void ungetsc(char *);
90extern	void commands(void);
91extern	int cvt_length(int);
92extern	int *cvt_alloc_chpos(int);
93extern	void cvt_text(char *, char *, int *, int *, int);
94extern	void init_cmds(void);
95extern	void add_fcmd_table(char *, int);
96extern	void add_ecmd_table(char *, int);
97extern	int fcmd_decode(const char *, char **);
98extern	int ecmd_decode(const char *, char **);
99extern	char *lgetenv(char *);
100extern	int lesskey(char *, int);
101extern	void add_hometable(char *, char *, int);
102extern	int editchar(int, int);
103extern	void init_textlist(struct textlist *, char *);
104extern	char *forw_textlist(struct textlist *, char *);
105extern	char *back_textlist(struct textlist *, char *);
106extern	int edit(char *);
107extern	int edit_ifile(IFILE);
108extern	int edit_list(char *);
109extern	int edit_first(void);
110extern	int edit_last(void);
111extern	int edit_next(int);
112extern	int edit_prev(int);
113extern	int edit_index(int);
114extern	IFILE save_curr_ifile(void);
115extern	void unsave_ifile(IFILE);
116extern	void reedit_ifile(IFILE);
117extern	void reopen_curr_ifile(void);
118extern	int edit_stdin(void);
119extern	void cat_file(void);
120extern	void use_logfile(char *);
121extern	char *shell_unquote(char *);
122extern	char *get_meta_escape(void);
123extern	char *shell_quote(const char *);
124extern	char *homefile(char *);
125extern	char *fexpand(char *);
126extern	char *fcomplete(char *);
127extern	int bin_file(int f);
128extern	char *lglob(char *);
129extern	char *open_altfile(char *, int *, void **);
130extern	void close_altfile(char *, char *, void *);
131extern	int is_dir(char *);
132extern	char *bad_file(char *);
133extern	off_t filesize(int);
134extern	char *last_component(char *);
135extern	int eof_displayed(void);
136extern	int entire_file_displayed(void);
137extern	void squish_check(void);
138extern	void forw(int, off_t, int, int, int);
139extern	void back(int, off_t, int, int);
140extern	void forward(int, int, int);
141extern	void backward(int, int, int);
142extern	int get_back_scroll(void);
143extern	void del_ifile(IFILE);
144extern	IFILE next_ifile(IFILE);
145extern	IFILE prev_ifile(IFILE);
146extern	IFILE getoff_ifile(IFILE);
147extern	int nifile(void);
148extern	IFILE get_ifile(char *, IFILE);
149extern	char *get_filename(IFILE);
150extern	int get_index(IFILE);
151extern	void store_pos(IFILE, struct scrpos *);
152extern	void get_pos(IFILE, struct scrpos *);
153extern	int opened(IFILE);
154extern	void hold_ifile(IFILE, int);
155extern	int held_ifile(IFILE);
156extern	void set_open(IFILE);
157extern	void *get_filestate(IFILE);
158extern	void set_filestate(IFILE, void *);
159extern	off_t forw_line(off_t);
160extern	off_t back_line(off_t);
161extern	void set_attnpos(off_t);
162extern	void jump_forw(void);
163extern	void jump_back(LINENUM);
164extern	void repaint(void);
165extern	void jump_percent(int, long);
166extern	void jump_line_loc(off_t, int);
167extern	void jump_loc(off_t, int);
168extern	void init_line(void);
169extern	int is_ascii_char(LWCHAR);
170extern	void prewind(void);
171extern	void plinenum(LINENUM);
172extern	void pshift_all(void);
173extern	int is_ansi_end(LWCHAR);
174extern	int is_ansi_middle(LWCHAR);
175extern	int pappend(char, off_t);
176extern	int pflushmbc(void);
177extern	void pdone(int, int);
178extern	void set_status_col(char);
179extern	int gline(int, int *);
180extern	void null_line(void);
181extern	off_t forw_raw_line(off_t, char **, int *);
182extern	off_t back_raw_line(off_t, char **, int *);
183extern	void clr_linenum(void);
184extern	void add_lnum(LINENUM, off_t);
185extern	LINENUM find_linenum(off_t);
186extern	off_t find_pos(LINENUM);
187extern	LINENUM currline(int);
188extern	void lsystem(const char *, const char *);
189extern	int pipe_mark(int, char *);
190extern	void init_mark(void);
191extern	int badmark(int);
192extern	void setmark(int);
193extern	void lastmark(void);
194extern	void gomark(int);
195extern	off_t markpos(int);
196extern	void unmark(IFILE);
197extern	void opt_o(int, char *);
198extern	void opt__O(int, char *);
199extern	void opt_j(int, char *);
200extern	void calc_jump_sline(void);
201extern	void opt_shift(int, char *);
202extern	void calc_shift_count(void);
203extern	void opt_k(int, char *);
204extern	void opt_t(int, char *);
205extern	void opt__T(int, char *);
206extern	void opt_p(int, char *);
207extern	void opt__P(int, char *);
208extern	void opt_b(int, char *);
209extern	void opt_i(int, char *);
210extern	void opt__V(int, char *);
211extern	void opt_x(int, char *);
212extern	void opt_quote(int, char *);
213extern	void opt_query(int, char *);
214extern	int get_swindow(void);
215extern	char *propt(int);
216extern	void scan_option(char *);
217extern	void toggle_option(struct loption *, int, char *, int);
218extern	int opt_has_param(struct loption *);
219extern	char *opt_prompt(struct loption *);
220extern	int isoptpending(void);
221extern	void nopendopt(void);
222extern	int getnum(char **, char *, int *);
223extern	long getfraction(char **, char *, int *);
224extern	int get_quit_at_eof(void);
225extern	void init_option(void);
226extern	struct loption *findopt(int);
227extern	struct loption *findopt_name(char **, char **, int *);
228extern	int iread(int, unsigned char *, unsigned int);
229extern	char *errno_message(char *);
230extern	int percentage(off_t, off_t);
231extern	off_t percent_pos(off_t, int, long);
232extern	void put_line(void);
233extern	void flush(void);
234extern	int putchr(int);
235extern	void putstr(const char *);
236extern	void get_return(void);
237extern	void error(const char *, PARG *);
238extern	void ierror(const char *, PARG *);
239extern	int query(const char *, PARG *);
240extern	int compile_pattern(char *, int, regex_t **);
241extern	void uncompile_pattern(regex_t **);
242extern	int is_null_pattern(void *);
243extern	int match_pattern(void *, char *, char *, int, char **, char **,
244    int, int);
245extern	off_t position(int);
246extern	void add_forw_pos(off_t);
247extern	void add_back_pos(off_t);
248extern	void pos_clear(void);
249extern	void pos_init(void);
250extern	int onscreen(off_t);
251extern	int empty_screen(void);
252extern	int empty_lines(int, int);
253extern	void get_scrpos(struct scrpos *);
254extern	int adjsline(int);
255extern	void init_prompt(void);
256extern	char *pr_expand(const char *, int);
257extern	char *eq_message(void);
258extern	char *prompt_string(void);
259extern	char *wait_message(void);
260extern	void init_search(void);
261extern	void repaint_hilite(int);
262extern	void clear_attn(void);
263extern	void undo_search(void);
264extern	void clr_hilite(void);
265extern	int is_filtered(off_t);
266extern	int is_hilited(off_t, off_t, int, int *);
267extern	void chg_caseless(void);
268extern	void chg_hilite(void);
269extern	int search(int, char *, int);
270extern	void prep_hilite(off_t, off_t, int);
271extern	void set_filter_pattern(char *, int);
272extern	int is_filtering(void);
273extern	void sigwinch(int);
274extern	void init_signals(int);
275extern	void psignals(void);
276extern	void cleantags(void);
277extern	void findtag(char *);
278extern	off_t tagsearch(void);
279extern	char *nexttag(int);
280extern	char *prevtag(int);
281extern	int ntags(void);
282extern	int curr_tag(void);
283extern	int edit_tagfile(void);
284extern	void open_getchr(void);
285extern	void close_getchr(void);
286extern	int getchr(void);
287extern	void *lsignal(int, void (*)(int));
288extern	char *helpfile(void);
289