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