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