⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 command.h

📁 早期freebsd实现
💻 H
字号:
/* Header file for command-reading library command.c.   Copyright (C) 1986, 1989, 1990 Free Software Foundation, Inc.This program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2 of the License, or(at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */#if !defined (COMMAND_H)#define COMMAND_H 1/* Not a set/show command.  Note that some commands which begin with   "set" or "show" might be in this category, if their syntax does   not fall into one of the following categories.  */typedef enum cmd_types {  not_set_cmd,  set_cmd,  show_cmd} cmd_types;/* Types of "set" or "show" command.  */typedef enum var_types {  /* "on" or "off".  *VAR is an integer which is nonzero for on,     zero for off.  */  var_boolean,  /* Unsigned Integer.  *VAR is an unsigned int.  The user can type 0     to mean "unlimited", which is stored in *VAR as UINT_MAX.  */  var_uinteger,  /* String which the user enters with escapes (e.g. the user types \n and     it is a real newline in the stored string).     *VAR is a malloc'd string, or NULL if the string is empty.  */  var_string,  /* String which stores what the user types verbatim.     *VAR is a malloc'd string, or NULL if the string is empty.  */  var_string_noescape,  /* String which stores a filename.     *VAR is a malloc'd string, or NULL if the string is empty.  */  var_filename,  /* ZeroableInteger.  *VAR is an int.  Like Unsigned Integer except     that zero really means zero.  */  var_zinteger} var_types;/* This structure records one command'd definition.  */struct cmd_list_element  {    /* Points to next command in this list.  */    struct cmd_list_element *next;    /* Name of this command.  */    char *name;    /* Command class; class values are chosen by application program.  */    enum command_class class;    /* Function definition of this command.       Zero for command class names and for help topics that       are not really commands.  */    union {	void (*cfunc) PARAMS ((char *args, int from_tty));	void (*sfunc) PARAMS ((char *args, int from_tty,			       struct cmd_list_element *c));    } function;#   define NO_FUNCTION ((void (*) PARAMS((char *args, int from_tty))) 0)    /* Documentation of this command (or help topic).       First line is brief documentation; remaining lines form, with it,       the full documentation.  First line should end with a period.       Entire string should also end with a period, not a newline.  */    char *doc;    /* Hook for another command to be executed before this command.  */    struct cmd_list_element *hook;    /* Nonzero identifies a prefix command.  For them, the address       of the variable containing the list of subcommands.  */    struct cmd_list_element **prefixlist;    /* For prefix commands only:       String containing prefix commands to get here: this one       plus any others needed to get to it.  Should end in a space.       It is used before the word "command" in describing the       commands reached through this prefix.  */    char *prefixname;    /* For prefix commands only:       nonzero means do not get an error if subcommand is not       recognized; call the prefix's own function in that case.  */    char allow_unknown;    /* Nonzero says this is an abbreviation, and should not       be mentioned in lists of commands.       This allows "br<tab>" to complete to "break", which it       otherwise wouldn't.  */    char abbrev_flag;    /* Completion routine for this command.  */    char ** (*completer) PARAMS ((char *text));    /* Type of "set" or "show" command (or SET_NOT_SET if not "set"       or "show").  */    cmd_types type;    /* Pointer to variable affected by "set" and "show".  Doesn't matter       if type is not_set.  */    char *var;    /* What kind of variable is *VAR?  */    var_types var_type;    /* Pointer to command strings of user-defined commands */    struct command_line *user_commands;    /* Pointer to command that is hooked by this one,       so the hook can be removed when this one is deleted.  */    struct cmd_list_element *hookee;    /* Pointer to command that is aliased by this one, so the       aliased command can be located in case it has been hooked.  */    struct cmd_list_element *cmd_pointer;  };/* Forward-declarations of the entry-points of command.c.  */extern struct cmd_list_element *add_cmd PARAMS ((char *, enum command_class, void (*fun) (char *, int),		 char *, struct cmd_list_element **));extern struct cmd_list_element *add_alias_cmd PARAMS ((char *, char *, enum command_class, int,		       struct cmd_list_element **));extern struct cmd_list_element *add_prefix_cmd PARAMS ((char *, enum command_class, void (*fun) (char *, int),			char *, struct cmd_list_element **, char *, int,			struct cmd_list_element **));extern struct cmd_list_element *add_abbrev_prefix_cmd PARAMS ((char *, enum command_class,			       void (*fun) (char *, int), char *,			       struct cmd_list_element **, char *, int,			       struct cmd_list_element **));extern struct cmd_list_element *lookup_cmd PARAMS ((char **, struct cmd_list_element *, char *, int, int));extern struct cmd_list_element *lookup_cmd_1 PARAMS ((char **, struct cmd_list_element *,		      struct cmd_list_element **, int));extern voidadd_com PARAMS ((char *, enum command_class, void (*fun)(char *, int),		 char *));extern voidadd_com_alias PARAMS ((char *, char *, enum command_class, int));extern voidadd_info PARAMS ((char *, void (*fun) (char *, int), char *));extern voidadd_info_alias PARAMS ((char *, char *, int));extern char **complete_on_cmdlist PARAMS ((struct cmd_list_element *, char *));extern voiddelete_cmd PARAMS ((char *, struct cmd_list_element **));extern voidhelp_cmd PARAMS ((char *, FILE *));extern voidhelp_list PARAMS ((struct cmd_list_element *, char *, enum command_class,		   FILE *));extern voidhelp_cmd_list PARAMS ((struct cmd_list_element *, enum command_class, char *,		       int, FILE *));extern struct cmd_list_element *add_set_cmd PARAMS ((char *, enum command_class, var_types, char *, char *,		     struct cmd_list_element **));extern struct cmd_list_element *add_show_from_set PARAMS ((struct cmd_list_element *,			   struct cmd_list_element **));/* Do a "set" or "show" command.  ARG is NULL if no argument, or the text   of the argument, and FROM_TTY is nonzero if this command is being entered   directly by the user (i.e. these are just like any other   command).  C is the command list element for the command.  */extern voiddo_setshow_command PARAMS ((char *, int, struct cmd_list_element *));/* Do a "show" command for each thing on a command list.  */extern voidcmd_show_list PARAMS ((struct cmd_list_element *, int, char *));extern voiderror_no_arg PARAMS ((char *));extern voiddont_repeat PARAMS ((void));/* Used to mark commands that don't do anything.  If we just leave the   function field NULL, the command is interpreted as a help topic, or   as a class of commands.  */extern voidnot_just_help_class_command PARAMS ((char *, int));#endif /* !defined (COMMAND_H) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -