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