📄 pcomplete.h
字号:
/* pcomplete.h - structure definitions and other stuff for programmable completion. *//* Copyright (C) 1999-2009 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. Bash is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Bash is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Bash. If not, see <http://www.gnu.org/licenses/>.*/#if !defined (_PCOMPLETE_H_)# define _PCOMPLETE_H_#include "stdc.h"#include "hashlib.h"typedef struct compspec { int refcount; unsigned long actions; unsigned long options; char *globpat; char *words; char *prefix; char *suffix; char *funcname; char *command; char *lcommand; char *filterpat;} COMPSPEC;/* Values for COMPSPEC actions. These are things the shell knows how to build internally. */#define CA_ALIAS (1<<0)#define CA_ARRAYVAR (1<<1)#define CA_BINDING (1<<2)#define CA_BUILTIN (1<<3)#define CA_COMMAND (1<<4)#define CA_DIRECTORY (1<<5)#define CA_DISABLED (1<<6)#define CA_ENABLED (1<<7)#define CA_EXPORT (1<<8)#define CA_FILE (1<<9)#define CA_FUNCTION (1<<10)#define CA_GROUP (1<<11)#define CA_HELPTOPIC (1<<12)#define CA_HOSTNAME (1<<13)#define CA_JOB (1<<14)#define CA_KEYWORD (1<<15)#define CA_RUNNING (1<<16)#define CA_SERVICE (1<<17)#define CA_SETOPT (1<<18)#define CA_SHOPT (1<<19)#define CA_SIGNAL (1<<20)#define CA_STOPPED (1<<21)#define CA_USER (1<<22)#define CA_VARIABLE (1<<23)/* Values for COMPSPEC options field. */#define COPT_RESERVED (1<<0) /* reserved for other use */#define COPT_DEFAULT (1<<1)#define COPT_FILENAMES (1<<2)#define COPT_DIRNAMES (1<<3)#define COPT_NOSPACE (1<<4)#define COPT_BASHDEFAULT (1<<5)#define COPT_PLUSDIRS (1<<6)/* List of items is used by the code that implements the programmable completions. */typedef struct _list_of_items { int flags; int (*list_getter) __P((struct _list_of_items *)); /* function to call to get the list */ STRINGLIST *slist; /* These may or may not be used. */ STRINGLIST *genlist; /* for handing to the completion code one item at a time */ int genindex; /* index of item last handed to completion code */} ITEMLIST;/* Values for ITEMLIST -> flags */#define LIST_DYNAMIC 0x001#define LIST_DIRTY 0x002#define LIST_INITIALIZED 0x004#define LIST_MUSTSORT 0x008#define LIST_DONTFREE 0x010#define LIST_DONTFREEMEMBERS 0x020#define EMPTYCMD "_EmptycmD_"#define DEFAULTCMD "_DefaultCmD_"extern HASH_TABLE *prog_completes;extern int prog_completion_enabled;/* Not all of these are used yet. */extern ITEMLIST it_aliases;extern ITEMLIST it_arrayvars;extern ITEMLIST it_bindings;extern ITEMLIST it_builtins;extern ITEMLIST it_commands;extern ITEMLIST it_directories;extern ITEMLIST it_disabled;extern ITEMLIST it_enabled;extern ITEMLIST it_exports;extern ITEMLIST it_files;extern ITEMLIST it_functions;extern ITEMLIST it_groups;extern ITEMLIST it_hostnames;extern ITEMLIST it_jobs;extern ITEMLIST it_keywords;extern ITEMLIST it_running;extern ITEMLIST it_services;extern ITEMLIST it_setopts;extern ITEMLIST it_shopts;extern ITEMLIST it_signals;extern ITEMLIST it_stopped;extern ITEMLIST it_users;extern ITEMLIST it_variables;extern COMPSPEC *pcomp_curcs;extern const char *pcomp_curcmd;/* Functions from pcomplib.c */extern COMPSPEC *compspec_create __P((void));extern void compspec_dispose __P((COMPSPEC *));extern COMPSPEC *compspec_copy __P((COMPSPEC *));extern void progcomp_create __P((void));extern void progcomp_flush __P((void));extern void progcomp_dispose __P((void));extern int progcomp_size __P((void));extern int progcomp_insert __P((char *, COMPSPEC *));extern int progcomp_remove __P((char *));extern COMPSPEC *progcomp_search __P((const char *));extern void progcomp_walk __P((hash_wfunc *));/* Functions from pcomplete.c */extern void set_itemlist_dirty __P((ITEMLIST *));extern STRINGLIST *completions_to_stringlist __P((char **));extern STRINGLIST *gen_compspec_completions __P((COMPSPEC *, const char *, const char *, int, int, int *));extern char **programmable_completions __P((const char *, const char *, int, int, int *));extern void pcomp_set_readline_variables __P((int, int));extern void pcomp_set_compspec_options __P((COMPSPEC *, int, int));#endif /* _PCOMPLETE_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -