1#ifdef CL_IN_EX /* cl.h */
2int cl_waddstr(SCR *, const CHAR_T *, size_t);
3int cl_addstr(SCR *, const char *, size_t);
4int cl_attr(SCR *, scr_attr_t, int);
5int cl_baud(SCR *, u_long *);
6int cl_bell(SCR *);
7int cl_clrtoeol(SCR *);
8int cl_cursor(SCR *, size_t *, size_t *);
9int cl_deleteln(SCR *);
10int cl_discard(SCR *, SCR **);
11int cl_ex_adjust(SCR *, exadj_t);
12int cl_insertln(SCR *);
13int cl_keyval(SCR *, scr_keyval_t, CHAR_T *, int *);
14int cl_move(SCR *, size_t, size_t);
15int cl_refresh(SCR *, int);
16int cl_rename(SCR *, char *, int);
17void cl_setname(GS *, char *);
18int cl_split(SCR *, SCR *);
19int cl_suspend(SCR *, int *);
20void cl_usage(void);
21int sig_init(GS *, SCR *);
22int cl_event(SCR *, EVENT *, u_int32_t, int);
23int cl_screen(SCR *, u_int32_t);
24int cl_quit(GS *);
25int cl_getcap(SCR *, char *, char **);
26int cl_term_init(SCR *);
27int cl_term_end(GS *);
28int cl_fmap(SCR *, seq_t, CHAR_T *, size_t, CHAR_T *, size_t);
29int cl_optchange(SCR *, int, char *, u_long *);
30int cl_omesg(SCR *, CL_PRIVATE *, int);
31int cl_ssize(SCR *, int, size_t *, size_t *, int *);
32int cl_putchar(int);
33#endif
34#ifdef EXP /* ex.h */
35int ex(SCR **);
36int ex_cmd(SCR *);
37int ex_range(SCR *, EXCMD *, int *);
38int ex_is_abbrev(CHAR_T *, size_t);
39int ex_is_unmap(CHAR_T *, size_t);
40void ex_badaddr
41  (SCR *, EXCMDLIST const *, enum badaddr, enum nresult);
42int ex_abbr(SCR *, EXCMD *);
43int ex_unabbr(SCR *, EXCMD *);
44int ex_append(SCR *, EXCMD *);
45int ex_change(SCR *, EXCMD *);
46int ex_insert(SCR *, EXCMD *);
47int ex_next(SCR *, EXCMD *);
48int ex_prev(SCR *, EXCMD *);
49int ex_rew(SCR *, EXCMD *);
50int ex_args(SCR *, EXCMD *);
51char **ex_buildargv(SCR *, EXCMD *, char *);
52int argv_init(SCR *, EXCMD *);
53int argv_exp0(SCR *, EXCMD *, CHAR_T *, size_t);
54int argv_exp1(SCR *, EXCMD *, CHAR_T *, size_t, int);
55int argv_exp2(SCR *, EXCMD *, CHAR_T *, size_t);
56int argv_exp3(SCR *, EXCMD *, CHAR_T *, size_t);
57int argv_flt_ex(SCR *, EXCMD *, CHAR_T *, size_t);
58int argv_free(SCR *);
59int argv_flt_path(SCR *, EXCMD *, CHAR_T *, size_t);
60CHAR_T *argv_esc(SCR *, EXCMD *, CHAR_T *, size_t);
61CHAR_T *argv_uesc(SCR *, EXCMD *, CHAR_T *, size_t);
62int ex_at(SCR *, EXCMD *);
63int ex_bang(SCR *, EXCMD *);
64int ex_cd(SCR *, EXCMD *);
65int ex_cscope(SCR *, EXCMD *);
66int cscope_end(SCR *);
67int cscope_display(SCR *);
68int cscope_search(SCR *, TAGQ *, TAG *);
69int ex_delete(SCR *, EXCMD *);
70int ex_display(SCR *, EXCMD *);
71int ex_edit(SCR *, EXCMD *);
72int ex_equal(SCR *, EXCMD *);
73int ex_file(SCR *, EXCMD *);
74int ex_filter(SCR *,
75   EXCMD *, MARK *, MARK *, MARK *, CHAR_T *, enum filtertype);
76int ex_global(SCR *, EXCMD *);
77int ex_v(SCR *, EXCMD *);
78int ex_g_insdel(SCR *, lnop_t, recno_t);
79int ex_screen_copy(SCR *, SCR *);
80int ex_screen_end(SCR *);
81int ex_optchange(SCR *, int, char *, u_long *);
82int ex_exrc(SCR *);
83int ex_run_str(SCR *, char *, CHAR_T *, size_t, int, int);
84int ex_join(SCR *, EXCMD *);
85int ex_map(SCR *, EXCMD *);
86int ex_unmap(SCR *, EXCMD *);
87int ex_mark(SCR *, EXCMD *);
88int ex_mkexrc(SCR *, EXCMD *);
89int ex_copy(SCR *, EXCMD *);
90int ex_move(SCR *, EXCMD *);
91int ex_open(SCR *, EXCMD *);
92int ex_preserve(SCR *, EXCMD *);
93int ex_recover(SCR *, EXCMD *);
94int ex_list(SCR *, EXCMD *);
95int ex_number(SCR *, EXCMD *);
96int ex_pr(SCR *, EXCMD *);
97int ex_print(SCR *, EXCMD *, MARK *, MARK *, u_int32_t);
98int ex_ldisplay(SCR *, const CHAR_T *, size_t, size_t, u_int);
99int ex_scprint(SCR *, MARK *, MARK *);
100int ex_printf(SCR *, const char *, ...);
101int ex_puts(SCR *, const char *);
102int ex_fflush(SCR *sp);
103int ex_put(SCR *, EXCMD *);
104int ex_quit(SCR *, EXCMD *);
105int ex_read(SCR *, EXCMD *);
106int ex_readfp(SCR *, char *, FILE *, MARK *, recno_t *, int);
107int ex_bg(SCR *, EXCMD *);
108int ex_fg(SCR *, EXCMD *);
109int ex_resize(SCR *, EXCMD *);
110int ex_sdisplay(SCR *);
111int ex_script(SCR *, EXCMD *);
112int sscr_exec(SCR *, recno_t);
113int sscr_input(SCR *);
114int sscr_end(SCR *);
115int ex_set(SCR *, EXCMD *);
116int ex_shell(SCR *, EXCMD *);
117int ex_exec_proc(SCR *, EXCMD *, char *, const char *, int);
118int proc_wait(SCR *, long, const char *, int, int);
119int ex_shiftl(SCR *, EXCMD *);
120int ex_shiftr(SCR *, EXCMD *);
121int ex_retab(SCR *, EXCMD *);
122int ex_source(SCR *, EXCMD *);
123int ex_stop(SCR *, EXCMD *);
124int ex_s(SCR *, EXCMD *);
125int ex_subagain(SCR *, EXCMD *);
126int ex_subtilde(SCR *, EXCMD *);
127int re_compile(SCR *,
128    CHAR_T *, size_t, CHAR_T **, size_t *, regex_t *, u_int);
129void re_error(SCR *, int, regex_t *);
130int ex_tag_first(SCR *, CHAR_T *);
131int ex_tag_push(SCR *, EXCMD *);
132int ex_tag_next(SCR *, EXCMD *);
133int ex_tag_prev(SCR *, EXCMD *);
134int ex_tag_nswitch(SCR *, TAG *, int);
135int ex_tag_Nswitch(SCR *, TAG *, int);
136int ex_tag_pop(SCR *, EXCMD *);
137int ex_tag_top(SCR *, EXCMD *);
138int ex_tag_display(SCR *);
139int ex_tag_copy(SCR *, SCR *);
140int tagq_free(SCR *, TAGQ *);
141int tagq_push(SCR*, TAGQ*, int, int );
142void tag_msg(SCR *, tagmsg_t, char *);
143int ex_tagf_alloc(SCR *, char *);
144int ex_tag_free(SCR *);
145int ex_txt(SCR *, TEXTH *, ARG_CHAR_T, u_int32_t);
146int ex_undo(SCR *, EXCMD *);
147int ex_help(SCR *, EXCMD *);
148int ex_usage(SCR *, EXCMD *);
149int ex_viusage(SCR *, EXCMD *);
150void ex_cinit(SCR *, EXCMD *, int, int, recno_t, recno_t, int);
151int ex_getline(SCR *, FILE *, size_t *);
152int ex_ncheck(SCR *, int);
153int ex_init(SCR *);
154void ex_wemsg(SCR *, CHAR_T *, exm_t);
155void ex_emsg(SCR *, char *, exm_t);
156int ex_version(SCR *, EXCMD *);
157int ex_visual(SCR *, EXCMD *);
158int ex_wn(SCR *, EXCMD *);
159int ex_wq(SCR *, EXCMD *);
160int ex_write(SCR *, EXCMD *);
161int ex_xit(SCR *, EXCMD *);
162int ex_writefp(SCR *,
163   char *, FILE *, MARK *, MARK *, u_long *, u_long *, int);
164int ex_yank(SCR *, EXCMD *);
165int ex_z(SCR *, EXCMD *);
166#endif
167#ifdef V_ABS /* vi.h */
168int cs_init(SCR *, VCS *);
169int cs_next(SCR *, VCS *);
170int cs_fspace(SCR *, VCS *);
171int cs_fblank(SCR *, VCS *);
172int cs_prev(SCR *, VCS *);
173int cs_bblank(SCR *, VCS *);
174int v_at(SCR *, VICMD *);
175int v_chrepeat(SCR *, VICMD *);
176int v_chrrepeat(SCR *, VICMD *);
177int v_cht(SCR *, VICMD *);
178int v_chf(SCR *, VICMD *);
179int v_chT(SCR *, VICMD *);
180int v_chF(SCR *, VICMD *);
181int v_delete(SCR *, VICMD *);
182int v_again(SCR *, VICMD *);
183int v_exmode(SCR *, VICMD *);
184int v_join(SCR *, VICMD *);
185int v_shiftl(SCR *, VICMD *);
186int v_shiftr(SCR *, VICMD *);
187int v_suspend(SCR *, VICMD *);
188int v_switch(SCR *, VICMD *);
189int v_tagpush(SCR *, VICMD *);
190int v_tagpop(SCR *, VICMD *);
191int v_filter(SCR *, VICMD *);
192int v_ex(SCR *, VICMD *);
193int v_ecl_exec(SCR *);
194int v_increment(SCR *, VICMD *);
195int v_screen_copy(SCR *, SCR *);
196int v_screen_end(SCR *);
197int v_optchange(SCR *, int, char *, u_long *);
198int v_iA(SCR *, VICMD *);
199int v_ia(SCR *, VICMD *);
200int v_iI(SCR *, VICMD *);
201int v_ii(SCR *, VICMD *);
202int v_iO(SCR *, VICMD *);
203int v_io(SCR *, VICMD *);
204int v_change(SCR *, VICMD *);
205int v_Replace(SCR *, VICMD *);
206int v_subst(SCR *, VICMD *);
207int v_left(SCR *, VICMD *);
208int v_cfirst(SCR *, VICMD *);
209int v_first(SCR *, VICMD *);
210int v_ncol(SCR *, VICMD *);
211int v_zero(SCR *, VICMD *);
212int v_mark(SCR *, VICMD *);
213int v_bmark(SCR *, VICMD *);
214int v_fmark(SCR *, VICMD *);
215int v_emark(SCR *, VICMD *);
216int v_match(SCR *, VICMD *);
217int v_buildmcs(SCR *, char *);
218int v_paragraphf(SCR *, VICMD *);
219int v_paragraphb(SCR *, VICMD *);
220int v_buildps(SCR *, char *, char *);
221int v_Put(SCR *, VICMD *);
222int v_put(SCR *, VICMD *);
223int v_redraw(SCR *, VICMD *);
224int v_replace(SCR *, VICMD *);
225int v_right(SCR *, VICMD *);
226int v_dollar(SCR *, VICMD *);
227int v_screen(SCR *, VICMD *);
228int v_lgoto(SCR *, VICMD *);
229int v_home(SCR *, VICMD *);
230int v_middle(SCR *, VICMD *);
231int v_bottom(SCR *, VICMD *);
232int v_up(SCR *, VICMD *);
233int v_cr(SCR *, VICMD *);
234int v_down(SCR *, VICMD *);
235int v_hpageup(SCR *, VICMD *);
236int v_hpagedown(SCR *, VICMD *);
237int v_pagedown(SCR *, VICMD *);
238int v_pageup(SCR *, VICMD *);
239int v_lineup(SCR *, VICMD *);
240int v_linedown(SCR *, VICMD *);
241int v_searchb(SCR *, VICMD *);
242int v_searchf(SCR *, VICMD *);
243int v_searchN(SCR *, VICMD *);
244int v_searchn(SCR *, VICMD *);
245int v_searchw(SCR *, VICMD *);
246int v_correct(SCR *, VICMD *, int);
247int v_sectionf(SCR *, VICMD *);
248int v_sectionb(SCR *, VICMD *);
249int v_sentencef(SCR *, VICMD *);
250int v_sentenceb(SCR *, VICMD *);
251int v_status(SCR *, VICMD *);
252int v_tcmd(SCR *, VICMD *, ARG_CHAR_T, u_int);
253int v_txt(SCR *, VICMD *, MARK *,
254   const CHAR_T *, size_t, ARG_CHAR_T, recno_t, u_long, u_int32_t);
255int v_txt_auto(SCR *, recno_t, TEXT *, size_t, TEXT *);
256int v_ulcase(SCR *, VICMD *);
257int v_mulcase(SCR *, VICMD *);
258int v_Undo(SCR *, VICMD *);
259int v_undo(SCR *, VICMD *);
260void v_eof(SCR *, MARK *);
261void v_eol(SCR *, MARK *);
262void v_nomove(SCR *);
263void v_sof(SCR *, MARK *);
264void v_sol(SCR *);
265int v_isempty(CHAR_T *, size_t);
266void v_emsg(SCR *, char *, vim_t);
267int v_wordW(SCR *, VICMD *);
268int v_wordw(SCR *, VICMD *);
269int v_wordE(SCR *, VICMD *);
270int v_worde(SCR *, VICMD *);
271int v_wordB(SCR *, VICMD *);
272int v_wordb(SCR *, VICMD *);
273int v_xchar(SCR *, VICMD *);
274int v_Xchar(SCR *, VICMD *);
275int v_yank(SCR *, VICMD *);
276int v_z(SCR *, VICMD *);
277int vs_crel(SCR *, long);
278int v_zexit(SCR *, VICMD *);
279int vi(SCR **);
280int v_curword(SCR *);
281int vs_line(SCR *, SMAP *, size_t *, size_t *);
282int vs_number(SCR *);
283void vs_busy(SCR *, const char *, busy_t);
284void vs_home(SCR *);
285void vs_update(SCR *, const char *, const CHAR_T *);
286void vs_msg(SCR *, mtype_t, char *, size_t);
287int vs_ex_resolve(SCR *, int *);
288int vs_resolve(SCR *, SCR *, int);
289int vs_repaint(SCR *, EVENT *);
290int vs_refresh(SCR *, int);
291int vs_column(SCR *, size_t *);
292size_t vs_screens(SCR *, recno_t, size_t *);
293size_t vs_columns(SCR *, CHAR_T *, recno_t, size_t *, size_t *);
294size_t vs_rcm(SCR *, recno_t, int);
295size_t vs_colpos(SCR *, recno_t, size_t);
296int vs_change(SCR *, recno_t, lnop_t);
297int vs_sm_fill(SCR *, recno_t, pos_t);
298int vs_sm_scroll(SCR *, MARK *, recno_t, scroll_t);
299int vs_sm_1up(SCR *);
300int vs_sm_1down(SCR *);
301int vs_sm_next(SCR *, SMAP *, SMAP *);
302int vs_sm_prev(SCR *, SMAP *, SMAP *);
303int vs_sm_cursor(SCR *, SMAP **);
304int vs_sm_position(SCR *, MARK *, u_long, pos_t);
305recno_t vs_sm_nlines(SCR *, SMAP *, recno_t, size_t);
306int vs_split(SCR *, SCR *, int);
307int vs_vsplit(SCR *, SCR *);
308int vs_discard(SCR *, SCR **);
309int vs_fg(SCR *, SCR **, CHAR_T *, int);
310int vs_bg(SCR *);
311int vs_swap(SCR *, SCR **, char *);
312int vs_resize(SCR *, long, adj_t);
313#endif /* common.h */
314char * codeset(void);
315void conv_init(SCR *, SCR *);
316int conv_enc(SCR *, int, char *);
317void conv_end(SCR *);
318int cut(SCR *, CHAR_T *, MARK *, MARK *, int);
319int cut_line(SCR *, recno_t, size_t, size_t, CB *);
320void cut_close(GS *);
321TEXT *text_init(SCR *, const CHAR_T *, size_t, size_t);
322void text_lfree(TEXTH *);
323void text_free(TEXT *);
324int del(SCR *, MARK *, MARK *, int);
325int looks_utf8(const char *, size_t);
326int looks_utf16(const char *, size_t);
327int decode_utf8(const char *);
328int decode_utf16(const char *, int);
329FREF *file_add(SCR *, char *);
330int file_init(SCR *, FREF *, char *, int);
331int file_end(SCR *, EXF *, int);
332int file_write(SCR *, MARK *, MARK *, char *, int);
333int file_m1(SCR *, int, int);
334int file_m2(SCR *, int);
335int file_m3(SCR *, int);
336int file_aw(SCR *, int);
337void set_alt_name(SCR *, char *);
338lockr_t file_lock(SCR *, char *, int, int);
339int v_key_init(SCR *);
340void v_key_ilookup(SCR *);
341size_t v_key_len(SCR *, ARG_CHAR_T);
342char *v_key_name(SCR *, ARG_CHAR_T);
343e_key_t v_key_val(SCR *, ARG_CHAR_T);
344int v_event_push(SCR *, EVENT *, CHAR_T *, size_t, u_int);
345int v_event_get(SCR *, EVENT *, int, u_int32_t);
346void v_event_err(SCR *, EVENT *);
347int v_event_flush(SCR *, u_int);
348int db_eget(SCR *, recno_t, CHAR_T **, size_t *, int *);
349int db_get(SCR *, recno_t, u_int32_t, CHAR_T **, size_t *);
350int db_delete(SCR *, recno_t);
351int db_append(SCR *, int, recno_t, CHAR_T *, size_t);
352int db_insert(SCR *, recno_t, CHAR_T *, size_t);
353int db_set(SCR *, recno_t, CHAR_T *, size_t);
354int db_exist(SCR *, recno_t);
355int db_last(SCR *, recno_t *);
356int db_rget(SCR *, recno_t, char **, size_t *);
357int db_rset(SCR *, recno_t, char *, size_t);
358void db_err(SCR *, recno_t);
359int log_init(SCR *, EXF *);
360int log_end(SCR *, EXF *);
361int log_cursor(SCR *);
362int log_line(SCR *, recno_t, u_int);
363int log_mark(SCR *, LMARK *);
364int log_backward(SCR *, MARK *);
365int log_setline(SCR *);
366int log_forward(SCR *, MARK *);
367int editor(GS *, int, char *[]);
368void v_end(GS *);
369int mark_init(SCR *, EXF *);
370int mark_end(SCR *, EXF *);
371int mark_get(SCR *, ARG_CHAR_T, MARK *, mtype_t);
372int mark_set(SCR *, ARG_CHAR_T, MARK *, int);
373int mark_insdel(SCR *, lnop_t, recno_t);
374void msgq(SCR *, mtype_t, const char *, ...);
375void msgq_wstr(SCR *, mtype_t, const CHAR_T *, const char *);
376void msgq_str(SCR *, mtype_t, const char *, const char *);
377void mod_rpt(SCR *);
378void msgq_status(SCR *, recno_t, u_int);
379int msg_open(SCR *, char *);
380void msg_close(GS *);
381const char *msg_cmsg(SCR *, cmsg_t, size_t *);
382const char *msg_cat(SCR *, const char *, size_t *);
383char *msg_print(SCR *, const char *, int *);
384int opts_init(SCR *, int *);
385int opts_set(SCR *, ARGS *[], char *);
386int o_set(SCR *, int, u_int, char *, u_long);
387int opts_empty(SCR *, int, int);
388void opts_dump(SCR *, enum optdisp);
389int opts_save(SCR *, FILE *);
390OPTLIST const *opts_search(CHAR_T *);
391void opts_nomatch(SCR *, CHAR_T *);
392int opts_copy(SCR *, SCR *);
393void opts_free(SCR *);
394int f_altwerase(SCR *, OPTION *, char *, u_long *);
395int f_columns(SCR *, OPTION *, char *, u_long *);
396int f_lines(SCR *, OPTION *, char *, u_long *);
397int f_lisp(SCR *, OPTION *, char *, u_long *);
398int f_msgcat(SCR *, OPTION *, char *, u_long *);
399int f_print(SCR *, OPTION *, char *, u_long *);
400int f_readonly(SCR *, OPTION *, char *, u_long *);
401int f_recompile(SCR *, OPTION *, char *, u_long *);
402int f_reformat(SCR *, OPTION *, char *, u_long *);
403int f_ttywerase(SCR *, OPTION *, char *, u_long *);
404int f_w300(SCR *, OPTION *, char *, u_long *);
405int f_w1200(SCR *, OPTION *, char *, u_long *);
406int f_w9600(SCR *, OPTION *, char *, u_long *);
407int f_window(SCR *, OPTION *, char *, u_long *);
408int f_encoding(SCR *, OPTION *, char *, u_long *);
409int put(SCR *, CB *, CHAR_T *, MARK *, MARK *, int);
410int rcv_tmp(SCR *, EXF *, char *);
411int rcv_init(SCR *);
412int rcv_sync(SCR *, u_int);
413int rcv_list(SCR *);
414int rcv_read(SCR *, FREF *);
415int screen_init(GS *, SCR *, SCR **);
416int screen_end(SCR *);
417SCR *screen_next(SCR *);
418int f_search(SCR *,
419   MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int);
420int b_search(SCR *,
421   MARK *, MARK *, CHAR_T *, size_t, CHAR_T **, u_int);
422void search_busy(SCR *, busy_t);
423int seq_set(SCR *, CHAR_T *,
424   size_t, CHAR_T *, size_t, CHAR_T *, size_t, seq_t, int);
425int seq_delete(SCR *, CHAR_T *, size_t, seq_t);
426int seq_free(SEQ *);
427SEQ *seq_find
428  (SCR *, SEQ **, EVENT *, CHAR_T *, size_t, seq_t, int *);
429void seq_close(GS *);
430int seq_dump(SCR *, seq_t, int);
431int seq_save(SCR *, FILE *, char *, seq_t);
432int e_memcmp(CHAR_T *, EVENT *, size_t);
433void *binc(SCR *, void *, size_t *, size_t);
434int nonblank(SCR *, recno_t, size_t *);
435char *join(char *, char *);
436char *expanduser(char *);
437char *quote(char *);
438char *v_strdup(SCR *, const char *, size_t);
439CHAR_T *v_wstrdup(SCR *, const CHAR_T *, size_t);
440enum nresult nget_uslong(u_long *, const CHAR_T *, CHAR_T **, int);
441enum nresult nget_slong(long *, const CHAR_T *, CHAR_T **, int);
442void timepoint_steady(struct timespec *);
443void timepoint_system(struct timespec *);
444void TRACE(SCR *, const char *, ...);
445