1 /************************************************************************
2  * This program is Copyright (C) 1986-1996 by Jonathan Payne.  JOVE is  *
3  * provided to you without charge, and with no warranty.  You may give  *
4  * away copies of JOVE, including sources, provided that this notice is *
5  * included in all the files.                                           *
6  ************************************************************************/
7 
8 #define COMMAND	1
9 #define VARIABLE	2
10 #define MACRO		3
11 #define FULL_KEYMAP	4
12 #define SPARSE_KEYMAP	5
13 #ifdef MAC
14 # define BUFFER		6	/* menus can point to buffers, too */
15 # define STRING		7	/* a menu string or divider */
16 #endif
17 
18 #define TYPEMASK	07
19 #define obj_type(o)	((o)->Type & TYPEMASK)
20 #define MAJOR_MODE	010
21 #define MINOR_MODE	020
22 #define MODIFIER	040
23 #define MODCMD		(COMMAND|MODIFIER)
24 #define MAJOR_SHIFT	8
25 #define DefMajor(x)	(COMMAND|MAJOR_MODE|((x) << MAJOR_SHIFT))
26 #define DefMinor(x)	(COMMAND|MINOR_MODE|((x) << MAJOR_SHIFT))
27 
28 /* prefix of cmd, macro, keymap, variable, and sometimes buffer structs */
29 typedef struct {
30 	int	Type;
31 	char	*Name;
32 } data_obj;
33 
34 extern data_obj	*LastCmd;	/* last command invoked */
35 
36 extern char	*ProcFmt;	/* ": %f " -- name of LastCmd */
37 
38 extern data_obj
39 	*findcom proto((const char *prompt)),
40 	*findmac proto((const char *prompt)),
41 	*findvar proto((const char *prompt));
42