-/* $Header$ */
+/* $Id $ */
#define MAX_ARGC 16 /* Maximum argument count per line */
#define MAX_ARGLEN 128 /* Maximum length of an argument */
} Menu_Arg;
typedef struct menu_line {
- int (*ml_function)();
+ int (*ml_function)(int argc, char **argv);
struct menu *ml_submenu;
int ml_argc;
struct menu_arg ml_args[MAX_ARGC];
#define ml_command ml_args[0].ma_doc
typedef struct menu {
- int (*m_entry)();
- int (*m_exit)();
+ int (*m_entry)(struct menu *m, int argc, char **argv);
+ int (*m_exit)(struct menu *m);
char *m_title;
int m_length;
struct menu_line m_lines[MAX_LINES];
#define DM_QUIT 1 /* Quit; ^C or q command received */
/* Macros for initializing menu lines */
-#define NULLFUNC ((int (*)()) 0)
+#define NULLFUNC (0)
#define NULLMENU NULL
#define SUBMENU(cmd, doc, menu) { NULLFUNC, menu, 1, { { cmd, doc } } }
#define SIMPLEFUNC(cmd, doc, func) { func, NULLMENU, 1, { { cmd, doc } } }
/* Unused words found on parsed command line */
extern int parsed_argc;
extern char **parsed_argv;
+
+/* prototypes */
+void Put_message(char *msg);
+void Start_menu(Menu *m);
+void Start_no_menu(Menu *m);
+int Do_menu(Menu *m, int margc, char *margv[]);
+void Cleanup_menu(void);
+void Start_paging(void);
+void Stop_paging(void);
+int Prompt_input(char *prompt, char *buf, int buflen);
+void refresh_screen(void);