xref: /netbsd-src/bin/ksh/edit.h (revision da656e3d1ce339689e03c3fb28c8f2e52aaee9e6)
1 /*	$NetBSD: edit.h,v 1.5 2017/07/01 23:12:08 joerg Exp $	*/
2 
3 /* NAME:
4  *      edit.h - globals for edit modes
5  *
6  * DESCRIPTION:
7  *      This header defines various global edit objects.
8  *
9  * SEE ALSO:
10  *
11  *
12  * RCSid:
13  *      $NetBSD: edit.h,v 1.5 2017/07/01 23:12:08 joerg Exp $
14  *
15  */
16 
17 #include <stdbool.h>
18 
19 /* some useful #defines */
20 #ifdef EXTERN
21 # define I__(i) = i
22 #else
23 # define I__(i)
24 # define EXTERN extern
25 # define EXTERN_DEFINED
26 #endif
27 
28 #define	BEL		0x07
29 
30 /* tty driver characters we are interested in */
31 typedef struct {
32 	int erase;
33 	int kill;
34 	int werase;
35 	int intr;
36 	int quit;
37 	int eof;
38 } X_chars;
39 
40 EXTERN X_chars edchars;
41 
42 /* x_fc_glob() flags */
43 #define XCF_COMMAND	BIT(0)	/* Do command completion */
44 #define XCF_FILE	BIT(1)	/* Do file completion */
45 #define XCF_FULLPATH	BIT(2)	/* command completion: store full path */
46 #define XCF_COMMAND_FILE (XCF_COMMAND|XCF_FILE)
47 
48 /* edit.c */
49 int 	x_getc		ARGS((void));
50 void 	x_flush		ARGS((void));
51 void 	x_putc		ARGS((int c));
52 void 	x_puts		ARGS((const char *s));
53 bool 	x_mode(bool onoff);
54 int 	promptlen	ARGS((const char *cp, const char **spp));
55 int	x_do_comment	ARGS((char *buf, int bsize, int *lenp));
56 void	x_print_expansions ARGS((int nwords, char *const *words, int is_command));
57 int	x_cf_glob ARGS((int flags, const char *buf, int buflen, int pos, int *startp,
58 			  int *endp, char ***wordsp, int *is_commandp));
59 int	x_longest_prefix ARGS((int nwords, char *const *words));
60 int	x_basename ARGS((const char *s, const char *se));
61 void	x_free_words ARGS((int nwords, char **words));
62 int	x_escape ARGS((const char *, size_t, int (*)(const char *s, size_t len)));
63 /* emacs.c */
64 int 	x_emacs		ARGS((char *buf, size_t len));
65 void 	x_init_emacs	ARGS((void));
66 void	x_emacs_keys	ARGS((X_chars *ec));
67 /* vi.c */
68 int 	x_vi		ARGS((char *buf, size_t len));
69 
70 
71 #ifdef DEBUG
72 # define D__(x) x
73 #else
74 # define D__(x)
75 #endif
76 
77 /* This lot goes at the END */
78 /* be sure not to interfere with anyone else's idea about EXTERN */
79 #ifdef EXTERN_DEFINED
80 # undef EXTERN_DEFINED
81 # undef EXTERN
82 #endif
83 #undef I__
84 /*
85  * Local Variables:
86  * version-control:t
87  * comment-column:40
88  * End:
89  */
90