7b4ac7e1 |
1 | /* Header file for command-reading library command.c. |
4187119d |
2 | Copyright (C) 1986, 1989 Free Software Foundation, Inc. |
7b4ac7e1 |
3 | |
4187119d |
4 | This program is free software; you can redistribute it and/or modify |
5 | it under the terms of the GNU General Public License as published by |
6 | the Free Software Foundation; either version 1, or (at your option) |
7 | any later version. |
8 | |
9 | This program is distributed in the hope that it will be useful, |
10 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 | GNU General Public License for more details. |
13 | |
14 | You should have received a copy of the GNU General Public License |
15 | along with this program; if not, write to the Free Software |
16 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ |
7b4ac7e1 |
17 | |
18 | /* This structure records one command'd definition. */ |
19 | |
20 | struct cmd_list_element |
21 | { |
22 | /* Points to next command in this list. */ |
23 | struct cmd_list_element *next; |
24 | |
25 | /* Name of this command. */ |
26 | char *name; |
27 | |
28 | /* Command class; class values are chosen by application program. */ |
29 | int class; |
30 | |
31 | /* Function definition of this command. |
32 | Zero for command class names and for help topics that |
33 | are not really commands. */ |
34 | void (*function) (); |
35 | |
36 | /* Documentation of this command (or help topic). |
37 | First line is brief documentation; remaining lines form, with it, |
38 | the full documentation. First line should end with a period. |
39 | Entire string should also end with a period, not a newline. */ |
40 | char *doc; |
41 | |
42 | /* Auxiliary information. |
43 | It is up to the calling program to decide what this means. */ |
44 | char *aux; |
45 | |
46 | /* Nonzero identifies a prefix command. For them, the address |
47 | of the variable containing the list of subcommands. */ |
48 | struct cmd_list_element **prefixlist; |
49 | |
50 | /* For prefix commands only: |
51 | String containing prefix commands to get here: this one |
52 | plus any others needed to get to it. Should end in a space. |
53 | It is used before the word "command" in describing the |
54 | commands reached through this prefix. */ |
55 | char *prefixname; |
56 | |
57 | /* For prefix commands only: |
58 | nonzero means do not get an error if subcommand is not |
59 | recognized; call the prefix's own function in that case. */ |
60 | char allow_unknown; |
61 | |
62 | /* Nonzero says this is an abbreviation, and should not |
4187119d |
63 | be mentioned in lists of commands. |
64 | This allows "br<tab>" to complete to "break", which it |
65 | otherwise wouldn't. */ |
7b4ac7e1 |
66 | char abbrev_flag; |
67 | }; |
68 | |
69 | /* Forward-declarations of the entry-points of command.c. */ |
70 | |
71 | extern struct cmd_list_element *add_cmd (); |
72 | extern struct cmd_list_element *add_alias_cmd (); |
73 | extern struct cmd_list_element *add_prefix_cmd (); |
4187119d |
74 | extern struct cmd_list_element *lookup_cmd (), *lookup_cmd_1 (); |
75 | extern char **complete_on_cmdlist (); |
7b4ac7e1 |
76 | extern void delete_cmd (); |
77 | extern void help_cmd (); |