1 /* @(#)func.h	1.72 18/10/14 Copyright 1984-2018 J. Schilling */
2 /*
3  *	Definitions for global functions in VED
4  *
5  *	Copyright (c) 1984-2018 J. Schilling
6  */
7 /*
8  * The contents of this file are subject to the terms of the
9  * Common Development and Distribution License, Version 1.0 only
10  * (the "License").  You may not use this file except in compliance
11  * with the License.
12  *
13  * See the file CDDL.Schily.txt in this distribution for details.
14  * A copy of the CDDL is also available via the Internet at
15  * http://www.opensource.org/licenses/cddl1.txt
16  *
17  * When distributing Covered Code, include this CDDL HEADER in each
18  * file and include the License file CDDL.Schily.txt from this distribution.
19  */
20 
21 /*
22  * ved.c
23  */
24 extern	int	main		__PR((int argc, char **argv));
25 extern	void	settmodes	__PR((ewin_t *wp));
26 extern	void	rsttmodes	__PR((ewin_t *wp));
27 
28 /*
29  * edit.c
30  */
31 extern	void	edit		__PR((ewin_t *wp));
32 
33 /*
34  * binding.c
35  */
36 extern	void	init_binding	__PR((void));
37 extern	void	bindcmd		__PR((ewin_t *wp, Uchar *cmd, int cmdlen));
38 
39 /*
40  * vedtmpops.c
41  */
42 extern	void	put_vedtmp	__PR((ewin_t *wp, BOOL inedit));
43 extern	BOOL	get_vedtmp	__PR((ewin_t *wp, epos_t *posp, int *colp));
44 
45 /*
46  * cmds.c
47  */
48 extern 	void	vnorm		__PR((ewin_t *wp));
49 extern	void	vsnorm		__PR((ewin_t *wp));
50 extern	void	vnl		__PR((ewin_t *wp));
51 extern	void	vsnl		__PR((ewin_t *wp));
52 extern	void	verror		__PR((ewin_t *wp));
53 extern	void	modified	__PR((ewin_t *wp));
54 extern	void	vmode		__PR((ewin_t *wp));
55 extern	void	vwhere		__PR((ewin_t *wp));
56 extern	void	vewhere		__PR((ewin_t *wp));
57 extern	void	vswhere		__PR((ewin_t *wp));
58 extern	void	vsewhere	__PR((ewin_t *wp));
59 extern	void	vquote		__PR((ewin_t *wp));
60 extern	void	v8cntlq		__PR((ewin_t *wp));
61 extern	void	v8quote		__PR((ewin_t *wp));
62 extern	void	vhex		__PR((ewin_t *wp));
63 extern	void	vopen		__PR((ewin_t *wp));
64 extern	void	vsopen		__PR((ewin_t *wp));
65 extern	void	vhelp		__PR((ewin_t *wp));
66 
67 /*
68  * quitcmds.c
69  */
70 extern	BOOL	bakbuf		__PR((ewin_t *wp, BOOL force));
71 extern	BOOL	writebuf	__PR((ewin_t *wp, BOOL force));
72 extern	void	vbackup		__PR((ewin_t *wp));
73 extern	void	vquit		__PR((ewin_t *wp));
74 extern	void	eexit		__PR((ewin_t *wp));
75 extern	void	vsuspend	__PR((ewin_t *wp));
76 
77 /*
78  * execcmds.c
79  */
80 extern	void	vexec		__PR((ewin_t *wp));
81 extern	void	vtexec		__PR((ewin_t *wp));
82 extern	void	vsexec		__PR((ewin_t *wp));
83 extern	int	spawncmd	__PR((ewin_t *wp, char *name, char *arg));
84 extern	BOOL	white		__PR((int ch));
85 
86 /*
87  * numbercmds.c
88  */
89 extern	void	initnum		__PR((void));
90 extern	void	vmult		__PR((ewin_t *wp));
91 extern	void	vsmult		__PR((ewin_t *wp));
92 extern	void	vnum		__PR((ewin_t *wp));
93 
94 /*
95  * cursorcmds.c
96  */
97 extern	BOOL	dosnl		__PR((ewin_t *wp, epos_t pos));
98 extern	void	vforw		__PR((ewin_t *wp));
99 extern	void	vsforw		__PR((ewin_t *wp));
100 extern	void	vwforw		__PR((ewin_t *wp));
101 extern	void	vswforw		__PR((ewin_t *wp));
102 extern	void	vrev		__PR((ewin_t *wp));
103 extern	void	vsrev		__PR((ewin_t *wp));
104 extern	void	vwrev		__PR((ewin_t *wp));
105 extern	void	vswrev		__PR((ewin_t *wp));
106 extern	void	vup		__PR((ewin_t *wp));
107 extern	void	vsup		__PR((ewin_t *wp));
108 extern	void	vpup		__PR((ewin_t *wp));
109 extern	void	vspup		__PR((ewin_t *wp));
110 extern	void	vdown		__PR((ewin_t *wp));
111 extern	void	vsdown		__PR((ewin_t *wp));
112 extern	void	vpdown		__PR((ewin_t *wp));
113 extern	void	vspdwn		__PR((ewin_t *wp));
114 extern	void	vpageup		__PR((ewin_t *wp));
115 extern	void	vspageup	__PR((ewin_t *wp));
116 extern	void	vpagedwn	__PR((ewin_t *wp));
117 extern	void	vspagedwn	__PR((ewin_t *wp));
118 extern	void	vend		__PR((ewin_t *wp));
119 extern	void	vsend		__PR((ewin_t *wp));
120 extern	void	vpend		__PR((ewin_t *wp));
121 extern	void	vspend		__PR((ewin_t *wp));
122 extern	void	vbegin		__PR((ewin_t *wp));
123 extern	void	vsbegin		__PR((ewin_t *wp));
124 extern	void	vpbegin		__PR((ewin_t *wp));
125 extern	void	vspbegin	__PR((ewin_t *wp));
126 extern	void	vtop		__PR((ewin_t *wp));
127 extern	void	vstop		__PR((ewin_t *wp));
128 extern	void	vbottom		__PR((ewin_t *wp));
129 extern	void	vsbottom	__PR((ewin_t *wp));
130 extern	void	vadjwin		__PR((ewin_t *wp));
131 extern	void	vredisp		__PR((ewin_t *wp));
132 extern	void	vltopwin	__PR((ewin_t *wp));
133 extern	void	vbrack		__PR((ewin_t *wp));
134 
135 /*
136  * delcmds.c
137  */
138 extern	void	delchars	__PR((ewin_t *wp, epos_t numchars));
139 extern	void	rubchars	__PR((ewin_t *wp, epos_t numchars));
140 extern	void	vdel		__PR((ewin_t *wp));
141 extern	void	vrub		__PR((ewin_t *wp));
142 extern	void	vwdel		__PR((ewin_t *wp));
143 extern	void	vwrub		__PR((ewin_t *wp));
144 extern	void	vkill		__PR((ewin_t *wp));
145 extern	void	vpkill		__PR((ewin_t *wp));
146 extern	void	vskill		__PR((ewin_t *wp));
147 extern	void	vundel		__PR((ewin_t *wp));
148 
149 /*
150  * searchcmds.c
151  */
152 extern	void	vsearch		__PR((ewin_t *wp));
153 extern	void	vssearch	__PR((ewin_t *wp));
154 extern	void	vrsearch	__PR((ewin_t *wp));
155 extern	void	vsrsearch	__PR((ewin_t *wp));
156 extern	void	vagainsrch	__PR((ewin_t *wp));
157 extern	void	vsagainsrch	__PR((ewin_t *wp));
158 extern	void	vrevsrch	__PR((ewin_t *wp));
159 extern	void	vsrevsrch	__PR((ewin_t *wp));
160 extern	void	not_found	__PR((ewin_t *wp));
161 
162 /*
163  * filecmds.c
164  */
165 extern	void	vread		__PR((ewin_t *wp));
166 extern	void	vwrite		__PR((ewin_t *wp));
167 extern	void	vchange		__PR((ewin_t *wp));
168 extern	BOOL	change_file	__PR((ewin_t *wp, Uchar	*file));
169 extern	void	fchange		__PR((ewin_t *wp, Uchar	*file));
170 extern	void	vswrite		__PR((ewin_t *wp));
171 
172 /*
173  * tmpfiles.c
174  */
175 extern	FILE	*tmpfopen	__PR((ewin_t *wp, Uchar *name, char *mode));
176 extern	void	tmpsetup	__PR((void));
177 extern	void	takepath	__PR((Uchar *pathname, int pathsize,
178 					Uchar *name));
179 extern	void	tmpopen		__PR((ewin_t *wp));
180 extern	void	tmpcleanup	__PR((ewin_t *wp, BOOL force));
181 
182 /*
183  * takecmds.c
184  */
185 extern	void	vcleartake	__PR((ewin_t *wp));
186 extern	void	vlsave		__PR((ewin_t *wp));
187 extern	void	vpsave		__PR((ewin_t *wp));
188 extern	void	vcsave		__PR((ewin_t *wp));
189 extern	void	vwsave		__PR((ewin_t *wp));
190 extern	void	vssave		__PR((ewin_t *wp));
191 extern	void	vgetclr		__PR((ewin_t *wp));
192 extern	void	vget		__PR((ewin_t *wp));
193 extern	void	vsgetclr	__PR((ewin_t *wp));
194 extern	void	vsget		__PR((ewin_t *wp));
195 extern	void	vtname		__PR((ewin_t *wp));
196 extern	void	vwrtake		__PR((ewin_t *wp));
197 
198 /*
199  * markcmds.c
200  */
201 extern	void	setmark		__PR((ewin_t *wp, epos_t newmark));
202 extern	void	resetmark	__PR((ewin_t *wp));
203 extern	void	vjumpmark	__PR((ewin_t *wp));
204 extern	void	vexchmarkdot	__PR((ewin_t *wp));
205 extern	void	vclearmark	__PR((ewin_t *wp));
206 extern	void	vsetmark	__PR((ewin_t *wp));
207 
208 /*
209  * screen.c
210  */
211 extern	void	update		__PR((ewin_t *wp));
212 extern	void	setwindow	__PR((ewin_t *wp));
213 extern	void	newwindow	__PR((ewin_t *wp));
214 extern	int	getindent	__PR((ewin_t *wp));
215 extern	void	setpos		__PR((ewin_t *wp));
216 extern	BOOL	setcursor	__PR((ewin_t *wp));
217 extern	epos_t	countpos	__PR((ewin_t *wp, epos_t x, epos_t y,
218 					cpos_t * pos));
219 extern	epos_t	findcol		__PR((ewin_t *wp, int h, epos_t x));
220 extern	void	dispup		__PR((ewin_t *wp, epos_t old, epos_t new));
221 extern	int	realvp		__PR((ewin_t *wp, cpos_t * pos));
222 extern	int	realhp		__PR((ewin_t *wp, cpos_t * pos));
223 extern	void	typescreen	__PR((ewin_t *wp, epos_t x, int col, epos_t y));
224 
225 /*
226  * ctab.c
227  */
228 extern	void	init_charset	__PR((ewin_t *wp));
229 
230 /*
231  * movedot.c
232  */
233 extern	epos_t	forwword	__PR((ewin_t *wp, epos_t start, ecnt_t n));
234 extern	epos_t	revword		__PR((ewin_t *wp, epos_t start, ecnt_t n));
235 extern	epos_t	forwline	__PR((ewin_t *wp, epos_t start, ecnt_t n));
236 extern	epos_t	revline		__PR((ewin_t *wp, epos_t start, ecnt_t n));
237 extern	epos_t	forwpara	__PR((ewin_t *wp, epos_t start, ecnt_t n));
238 extern	epos_t	revpara		__PR((ewin_t *wp, epos_t start, ecnt_t n));
239 
240 /*
241  * storage.c
242  */
243 extern	void	insert		__PR((ewin_t *wp, Uchar* str, long size));
244 extern	void	delete		__PR((ewin_t *wp, epos_t size));
245 extern	void	rubout		__PR((ewin_t *wp, epos_t size));
246 extern	BOOL	loadfile	__PR((ewin_t *wp, Uchar* filename,
247 						BOOL newdefault));
248 extern	BOOL	savefile	__PR((ewin_t *wp, epos_t begin, epos_t end,
249 						FILE *  f, char *name));
250 extern	BOOL	backsavefile	__PR((ewin_t *wp, epos_t begin, epos_t end,
251 						FILE *  f, char *name));
252 extern	void	getfile		__PR((ewin_t *wp, FILE *  f, epos_t size,
253 						char *name));
254 extern	void	backgetfile	__PR((ewin_t *wp, FILE *  f, epos_t size,
255 						char *name));
256 extern	BOOL	isdos		__PR((ewin_t *wp));
257 extern	int	extract		__PR((ewin_t *wp, epos_t begin, Uchar *str,
258 						int size));
259 extern	int	extr_line	__PR((ewin_t *wp, epos_t begin, char *str,
260 						int size));
261 extern	int	retractline	__PR((ewin_t *wp, epos_t begin, char *str,
262 						int size));
263 #ifdef	_BUFFER_H
264 extern	void	clearifwpos	__PR((ewin_t *wp, headr_t *this));
265 #endif
266 extern	void	clearwpos	__PR((ewin_t *wp));
267 extern	void	findwpos	__PR((ewin_t *wp, epos_t new));
268 #ifdef	_BUFFER_H
269 extern	void	findpos		__PR((ewin_t *wp, epos_t pos,
270 						headr_t ** returnlink,
271 						int *returnpos));
272 #endif
273 
274 /*
275  * terminal.c
276  */
277 extern	Uchar	*t_start	__PR((ewin_t *wp));
278 extern	void	t_begin		__PR((void));
279 extern	void	t_done		__PR((void));
280 extern	void	t_error		__PR((ewin_t *wp, char *s));
281 extern	void	t_home		__PR((ewin_t *wp));
282 extern	void	t_left		__PR((ewin_t *wp, int n));
283 extern	void	t_right		__PR((ewin_t *wp, int n));
284 extern	void	t_up		__PR((ewin_t *wp, int n));
285 extern	void	t_down		__PR((ewin_t *wp, int n));
286 extern	void	t_move		__PR((ewin_t *wp, int row, int col));
287 extern	void	t_move_abs	__PR((ewin_t *wp, int row, int col));
288 extern	void	t_clear		__PR((ewin_t *wp));
289 extern	void	t_cleos		__PR((ewin_t *wp));
290 extern	void	t_cleol		__PR((ewin_t *wp));
291 extern	void	t__cleol	__PR((ewin_t *wp, int do_move));
292 extern	void	t_insch		__PR((ewin_t *wp, char *str));
293 extern	void	t_insln		__PR((ewin_t *wp, int n));
294 extern	void	t_delch		__PR((ewin_t *wp, int n));
295 extern	void	t_delln		__PR((ewin_t *wp, int n));
296 extern	void	t_alt		__PR((char *str));
297 extern	void	t_setscroll	__PR((ewin_t *wp, int beg, int end));
298 extern	void	t_scrup		__PR((ewin_t *wp, int n));
299 extern	void	t_scrdown	__PR((ewin_t *wp, int n));
300 
301 /*
302  * cmdline.c
303  */
304 extern	void	wait_for_confirm __PR((ewin_t *wp));
305 extern	void	wait_continue	__PR((ewin_t *wp));
306 /* PRINTFLIKE3 */
307 extern	int	getcmdchar	__PR((ewin_t *wp, char *ans,
308 					char *msg, ...)) __printflike__(3, 4);
309 /* PRINTFLIKE4 */
310 extern	int	getcmdline	__PR((ewin_t *wp, Uchar *result, int len,
311 					char *msg, ...)) __printflike__(4, 5);
312 /* PRINTFLIKE5 */
313 extern	int	getccmdline	__PR((ewin_t *wp, int c, Uchar* result, int len,
314 					char *msg, ...)) __printflike__(5, 6);
315 
316 /*
317  * io.c
318  */
319 extern	echar_t	gchar		__PR((ewin_t *wp));
320 extern	echar_t	nigchar		__PR((ewin_t *wp));
321 extern	int	getnextc	__PR((ewin_t *wp));
322 extern	int	nigetnextc	__PR((ewin_t *wp));
323 extern	void	flushprot	__PR((ewin_t *wp));
324 extern	void	deleteprot	__PR((void));
325 extern	void	newprot		__PR((ewin_t *wp));
326 extern	void	openrecoverfile	__PR((ewin_t *wp, char *name));
327 extern	Uchar	*getrecoverfile	__PR((epos_t *posp, int *colp));
328 extern	int	putoutchar	__PR((int c));
329 extern	void	addchar		__PR((int c));
330 extern	void	onmark		__PR((void));
331 extern	void	offmark		__PR((void));
332 extern	void	addstr		__PR((Uchar *s));
333 extern	void	output		__PR((Uchar *s));
334 extern	void	printfield	__PR((Uchar *str, int len));
335 extern	void	printstring	__PR((Uchar *str, int nchars));
336 extern	void	ringbell	__PR((void));
337 extern	int	_bflush		__PR((int c));
338 extern	int	_bufflush	__PR((void));
339 
340 /*
341  * fileio.c
342  */
343 extern	int	stmpfmodes	__PR((Uchar *name));
344 extern	FILE	*openerrmsg	__PR((Uchar *name, char *mode));
345 extern	FILE	*opencomerr	__PR((ewin_t *wp, Uchar *name, char *mode));
346 extern	FILE	*opensyserr	__PR((ewin_t *wp, Uchar *name, char *mode));
347 extern	int	readsyserr	__PR((ewin_t *wp, FILE *  f,
348 					void *buf, int len, Uchar *name));
349 extern	int	writesyserr	__PR((ewin_t *wp, FILE *  f,
350 					void *buf, int len, Uchar *name));
351 extern	int	writebsyserr	__PR((ewin_t *wp, FILE *  f,
352 					void *buf, int len, Uchar *name));
353 extern	int	writeerrmsg	__PR((ewin_t *wp, FILE *  f,
354 					void *buf, int len, Uchar *name));
355 /* PRINTFLIKE2 */
356 extern	void	exitcomerr	__PR((ewin_t *wp,
357 					char *fmt, ...)) __printflike__(2, 3);
358 /* PRINTFLIKE3 */
359 extern	void	excomerrno	__PR((ewin_t *wp, int err,
360 					char *fmt, ...)) __printflike__(3, 4);
361 
362 /*
363  * filesubs.c
364  */
365 extern	void	lockfile	__PR((ewin_t *wp, char *filename));
366 extern	void	writelockmsg	__PR((ewin_t *wp));
367 extern	int	lockfd		__PR((int f));
368 extern	int	getfmodes	__PR((Uchar *name));
369 extern	long	gftime		__PR((char *file));
370 extern	BOOL	readable	__PR((Uchar *name));
371 extern	BOOL	writable	__PR((Uchar *name));
372 extern	BOOL	wrtcheck	__PR((ewin_t *wp, BOOL  err));
373 extern	BOOL	modcheck	__PR((ewin_t *wp));
374 
375 /*
376  * take.c
377  */
378 extern	void	settakename	__PR((ewin_t *wp, Uchar *name));
379 extern	Uchar	*findtake	__PR((ewin_t *wp, Uchar *name));
380 extern	void	backuptake	__PR((ewin_t *wp));
381 extern	void	loadtake	__PR((ewin_t *wp));
382 extern	void	deletetake	__PR((void));
383 extern	int	fcopy		__PR((ewin_t *wp, FILE * from, FILE * to,
384 					epos_t size, char *fromname,
385 					char *toname));
386 
387 /*
388  * message.c
389  */
390 extern	void	initmessage	__PR((ewin_t *wp));
391 extern	void	initmsgsize	__PR((ewin_t *wp));
392 /* PRINTFLIKE2 */
393 extern	void	writemsg	__PR((ewin_t *wp,
394 					char *str, ...)) __printf0like__(2, 3);
395 extern	void	writenum	__PR((ewin_t *wp, ecnt_t num));
396 extern	void	writetake	__PR((ewin_t *wp, Uchar *str));
397 extern	void	namemsg		__PR((Uchar* name));
398 /* PRINTFLIKE2 */
399 extern	void	writeerr	__PR((ewin_t *wp,
400 					char *str, ...)) __printflike__(2, 3);
401 /* PRINTFLIKE2 */
402 extern	void	writeserr	__PR((ewin_t *wp,
403 					char *str, ...)) __printflike__(2, 3);
404 /* PRINTFLIKE2 */
405 extern	void	write_errno	__PR((ewin_t *wp,
406 					char *msg, ...)) __printflike__(2, 3);
407 extern	void	defaultinfo	__PR((ewin_t *wp, Uchar *str));
408 extern	void	defaulterr	__PR((ewin_t *wp, Uchar *str));
409 extern	void	refreshmsg	__PR((ewin_t *wp));
410 extern	void	refreshsysline	__PR((ewin_t *wp));
411 extern	void	write_systemline __PR((ewin_t *wp));
412 extern	void	abortmsg	__PR((ewin_t *wp));
413 extern	void	nomarkmsg	__PR((ewin_t *wp));
414 
415 /*
416  * search.c
417  */
418 extern	BOOL	issimple	__PR((Uchar* pattern, int length));
419 extern	epos_t	srevchar	__PR((ewin_t *wp, epos_t begin, int ch));
420 extern	epos_t	search		__PR((ewin_t *wp, epos_t begin,
421 					Uchar *pattern, int size, int domark));
422 extern	epos_t	reverse		__PR((ewin_t *wp, epos_t begin,
423 					Uchar *pattern, int size, int domark));
424 
425 /*
426  * ttymodes.c
427  */
428 extern	void	get_modes	__PR((ewin_t *wp));
429 extern	void	set_modes	__PR((void));
430 extern	void	set_oldmodes	__PR((void));
431 
432 /*
433  * macro.c
434  */
435 extern	char *	myhome		__PR((void));
436 extern	void	macro_init	__PR((ewin_t *wp));
437 extern	void	vxmac		__PR((ewin_t *wp));
438 extern	void	vmac		__PR((ewin_t *wp));
439 extern	int	gmacro		__PR((void));
440 extern	void	vemac		__PR((ewin_t *wp));
441 extern	void	macro_reinit	__PR((ewin_t *wp));
442 
443 /*
444  * coloncmds.c
445  */
446 extern	void	vcolon		__PR((ewin_t *wp));
447 /* PRINTFLIKE2 */
448 extern	void	printscreen	__PR((ewin_t *wp,
449 					char *form, ...)) __printflike__(2, 3);
450 
451 /*
452  * substcmds.c
453  */
454 extern	void	subst		__PR((ewin_t *wp, Uchar *cmd, int cmdlen));
455 
456 /*
457  * tags.c
458  */
459 extern	int	gettag		__PR((Uchar** name));
460 extern	epos_t	searchtag	__PR((ewin_t *wp, epos_t opos));
461 extern	void	vtag		__PR((ewin_t *wp));
462 extern	void	gototag		__PR((ewin_t *wp, Uchar *tag));
463 extern	void	vrtag		__PR((ewin_t *wp));
464 
465 /*
466  * map.c
467  */
468 extern	int	mapgetc		__PR((ewin_t *wp));
469 extern	void	map_init	__PR((void));
470 extern	int	rxmap		__PR((ewin_t *wp, int c));
471 extern	int	gmap		__PR((void));
472 extern	void	remap		__PR((void));
473 extern	BOOL	add_map		__PR((char *from, char *to, char *comment));
474 extern	BOOL	del_map		__PR((char *from));
475 extern	void	list_map	__PR((ewin_t *wp));
476 extern	void	init_fk_maps	__PR((void));
477 
478 /*
479  * vedstats.c
480  */
481 extern	void	vedstartstats	__PR((void));
482 extern	void	vedstopstats	__PR((void));
483 extern	void	vedstatistics	__PR((void));
484 
485 /*
486  * consdebug.c
487  */
488 /* PRINTFLIKE1 */
489 extern	void	cdbg		__PR((char *fmt, ...)) __printflike__(1, 2);
490 extern	void	writecons	__PR((char *s));
491 extern	long	getcaller	__PR((void));
492