亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? complete.def

?? android-w.song.android.widget
?? DEF
?? 第 1 頁 / 共 2 頁
字號:
This file is complete.def, from which is created complete.c.It implements the builtins "complete", "compgen", and "compopt" in Bash.Copyright (C) 1999-2010 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 modifyit under the terms of the GNU General Public License as published bythe 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 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 Bash.  If not, see <http://www.gnu.org/licenses/>.$PRODUCES complete.c$BUILTIN complete$DEPENDS_ON PROGRAMMABLE_COMPLETION$FUNCTION complete_builtin$SHORT_DOC complete [-abcdefgjksuv] [-pr] [-DE] [-o option] [-A action] [-G globpat] [-W wordlist]  [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] [name ...]Specify how arguments are to be completed by Readline.For each NAME, specify how arguments are to be completed.  If no optionsare supplied, existing completion specifications are printed in a way thatallows them to be reused as input.Options:  -p	print existing completion specifications in a reusable format  -r	remove a completion specification for each NAME, or, if no	NAMEs are supplied, all completion specifications  -D	apply the completions and actions as the default for commands	without any specific completion defined  -E	apply the completions and actions to "empty" commands --	completion attempted on a blank lineWhen completion is attempted, the actions are applied in the order theuppercase-letter options are listed above.  The -D option takesprecedence over -E.Exit Status:Returns success unless an invalid option is supplied or an error occurs.$END#include <config.h>#include <stdio.h>#include "../bashtypes.h"#if defined (HAVE_UNISTD_H)#  include <unistd.h>#endif#include "../bashansi.h"#include "../bashintl.h"#include "../shell.h"#include "../builtins.h"#include "../pcomplete.h"#include "../bashline.h"#include "common.h"#include "bashgetopt.h"#include <readline/readline.h>#define STRDUP(x)       ((x) ? savestring (x) : (char *)NULL)/* Structure containing all the non-action (binary) options; filled in by   build_actions(). */struct _optflags {  int pflag;  int rflag;  int Dflag;  int Eflag;};static int find_compact __P((char *));static int find_compopt __P((char *));static int build_actions __P((WORD_LIST *, struct _optflags *, unsigned long *, unsigned long *));static int remove_cmd_completions __P((WORD_LIST *));static int print_one_completion __P((char *, COMPSPEC *));static int print_compitem __P((BUCKET_CONTENTS *));static void print_compopts __P((const char *, COMPSPEC *, int));static void print_all_completions __P((void));static int print_cmd_completions __P((WORD_LIST *));static char *Garg, *Warg, *Parg, *Sarg, *Xarg, *Farg, *Carg;static const struct _compacts {  const char * const actname;  int actflag;  int actopt;} compacts[] = {  { "alias",     CA_ALIAS,     'a' },  { "arrayvar",  CA_ARRAYVAR,   0 },  { "binding",   CA_BINDING,    0 },  { "builtin",   CA_BUILTIN,   'b' },  { "command",   CA_COMMAND,   'c' },  { "directory", CA_DIRECTORY, 'd' },  { "disabled",  CA_DISABLED,   0 },  { "enabled",   CA_ENABLED,    0 },  { "export",    CA_EXPORT,    'e' },  { "file",      CA_FILE,      'f' },  { "function",  CA_FUNCTION,   0 },  { "helptopic", CA_BUILTIN,  0 },	/* for now */  { "hostname",  CA_HOSTNAME,   0 },  { "group",     CA_GROUP,     'g' },  { "job",       CA_JOB,       'j' },  { "keyword",   CA_KEYWORD,   'k' },  { "running",   CA_RUNNING,    0 },  { "service",   CA_SERVICE,   's' },  { "setopt",    CA_SETOPT,     0 },  { "shopt",     CA_SHOPT,      0 },  { "signal",    CA_SIGNAL,     0 },  { "stopped",   CA_STOPPED,    0 },  { "user",      CA_USER,      'u' },  { "variable",  CA_VARIABLE,  'v' },  { (char *)NULL, 0, 0 },};/* This should be a STRING_INT_ALIST */const static struct _compopt {  const char * const optname;  int optflag;} compopts[] = {  { "bashdefault", COPT_BASHDEFAULT },  { "default",	COPT_DEFAULT },  { "dirnames", COPT_DIRNAMES },  { "filenames",COPT_FILENAMES},  { "nospace",	COPT_NOSPACE },  { "plusdirs", COPT_PLUSDIRS },  { (char *)NULL, 0 },};static intfind_compact (name)     char *name;{  register int i;  for (i = 0; compacts[i].actname; i++)    if (STREQ (name, compacts[i].actname))      return i;  return -1;}static intfind_compopt (name)     char *name;{  register int i;  for (i = 0; compopts[i].optname; i++)    if (STREQ (name, compopts[i].optname))      return i;  return -1;}/* Build the actions and compspec options from the options specified in LIST.   ACTP is a pointer to an unsigned long in which to place the bitmap of   actions.  OPTP is a pointer to an unsigned long in which to place the   btmap of compspec options (arguments to `-o').  PP, if non-null, gets 1   if -p is supplied; RP, if non-null, gets 1 if -r is supplied.   If either is null, the corresponding option generates an error.   This also sets variables corresponding to options that take arguments as   a side effect; the caller should ensure that those variables are set to   NULL before calling build_actions.  Return value:   	EX_USAGE = bad option   	EXECUTION_SUCCESS = some options supplied   	EXECUTION_FAILURE = no options supplied*/static intbuild_actions (list, flagp, actp, optp)     WORD_LIST *list;     struct _optflags *flagp;     unsigned long *actp, *optp;{  int opt, ind, opt_given;  unsigned long acts, copts;  acts = copts = (unsigned long)0L;  opt_given = 0;  reset_internal_getopt ();  while ((opt = internal_getopt (list, "abcdefgjko:prsuvA:G:W:P:S:X:F:C:DE")) != -1)    {      opt_given = 1;      switch (opt)	{	case 'r':	  if (flagp)	    {	      flagp->rflag = 1;	      break;	    }	  else	    {	      sh_invalidopt ("-r");	      builtin_usage ();	      return (EX_USAGE);	    }	case 'p':	  if (flagp)	    {	      flagp->pflag = 1;	      break;	    }	  else	    {	      sh_invalidopt ("-p");	      builtin_usage ();	      return (EX_USAGE);	    }	case 'a':	  acts |= CA_ALIAS;	  break;	case 'b':	  acts |= CA_BUILTIN;	  break;	case 'c':	  acts |= CA_COMMAND;	  break;	case 'd':	  acts |= CA_DIRECTORY;	  break;	case 'e':	  acts |= CA_EXPORT;	  break;	case 'f':	  acts |= CA_FILE;	  break;	case 'g':	  acts |= CA_GROUP;	  break;	case 'j':	  acts |= CA_JOB;	  break;	case 'k':	  acts |= CA_KEYWORD;	  break;	case 's':	  acts |= CA_SERVICE;	  break;	case 'u':	  acts |= CA_USER;	  break;	case 'v':	  acts |= CA_VARIABLE;	  break;	case 'o':	  ind = find_compopt (list_optarg);	  if (ind < 0)	    {	      sh_invalidoptname (list_optarg);	      return (EX_USAGE);	    }	  copts |= compopts[ind].optflag;	  break;	case 'A':	  ind = find_compact (list_optarg);	  if (ind < 0)	    {	      builtin_error (_("%s: invalid action name"), list_optarg);	      return (EX_USAGE);	    }	  acts |= compacts[ind].actflag;	  break;	case 'C':	  Carg = list_optarg;	  break;	case 'D':	  if (flagp)	    {	      flagp->Dflag = 1;	      break;	    }	  else	    {	      sh_invalidopt ("-D");	      builtin_usage ();	      return (EX_USAGE);	    }	case 'E':	  if (flagp)	    {	      flagp->Eflag = 1;	      break;	    }	  else	    {	      sh_invalidopt ("-E");	      builtin_usage ();	      return (EX_USAGE);	    }	case 'F':	  Farg = list_optarg;	  break;	case 'G':	  Garg = list_optarg;	  break;	case 'P':	  Parg = list_optarg;	  break;	case 'S':	  Sarg = list_optarg;	  break;	case 'W':	  Warg = list_optarg;	  break;	case 'X':	  Xarg = list_optarg;	  break;	default:	  builtin_usage ();	  return (EX_USAGE);	}    }  *actp = acts;  *optp = copts;  return (opt_given ? EXECUTION_SUCCESS : EXECUTION_FAILURE);}/* Add, remove, and display completion specifiers. */intcomplete_builtin (list)     WORD_LIST *list;{  int opt_given, rval;  unsigned long acts, copts;  COMPSPEC *cs;  struct _optflags oflags;  WORD_LIST *l, *wl;  if (list == 0)    {      print_all_completions ();      return (EXECUTION_SUCCESS);    }  opt_given = oflags.pflag = oflags.rflag = oflags.Dflag = oflags.Eflag = 0;  acts = copts = (unsigned long)0L;  Garg = Warg = Parg = Sarg = Xarg = Farg = Carg = (char *)NULL;  cs = (COMPSPEC *)NULL;  /* Build the actions from the arguments.  Also sets the [A-Z]arg variables     as a side effect if they are supplied as options. */  rval = build_actions (list, &oflags, &acts, &copts);  if (rval == EX_USAGE)    return (rval);  opt_given = rval != EXECUTION_FAILURE;  list = loptend;  wl = oflags.Dflag ? make_word_list (make_bare_word (DEFAULTCMD), (WORD_LIST *)NULL)  		    : (oflags.Eflag ? make_word_list (make_bare_word (EMPTYCMD), (WORD_LIST *)NULL) : 0);  /* -p overrides everything else */  if (oflags.pflag || (list == 0 && opt_given == 0))    {      if (wl)	{	  rval = print_cmd_completions (wl);	  dispose_words (wl);	  return rval;	}      else if (list == 0)	{	  print_all_completions ();	  return (EXECUTION_SUCCESS);	}      return (print_cmd_completions (list));    }  /* next, -r overrides everything else. */  if (oflags.rflag)    {      if (wl)	{	  rval = remove_cmd_completions (wl);	  dispose_words (wl);	  return rval;	}      else if (list == 0)	{	  progcomp_flush ();	  return (EXECUTION_SUCCESS);	}      return (remove_cmd_completions (list));    }  if (wl == 0 && list == 0 && opt_given)    {      builtin_usage ();      return (EX_USAGE);    }  /* If we get here, we need to build a compspec and add it for each     remaining argument. */  cs = compspec_create ();  cs->actions = acts;  cs->options = copts;  cs->globpat = STRDUP (Garg);  cs->words = STRDUP (Warg);  cs->prefix = STRDUP (Parg);  cs->suffix = STRDUP (Sarg);  cs->funcname = STRDUP (Farg);  cs->command = STRDUP (Carg);  cs->filterpat = STRDUP (Xarg);  for (rval = EXECUTION_SUCCESS, l = wl ? wl : list ; l; l = l->next)    {      /* Add CS as the compspec for the specified commands. */      if (progcomp_insert (l->word->word, cs) == 0)	rval = EXECUTION_FAILURE;    }  dispose_words (wl);  return (rval);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区高清| 免费成人av在线| 91精品国产欧美一区二区成人 | 欧美一区二区三区免费在线看| 欧美aⅴ一区二区三区视频| 国产精品国产三级国产普通话蜜臀 | 亚洲一区在线看| 久久久久久久久99精品| 欧美亚一区二区| 国产成人午夜电影网| 亚洲一二三四区不卡| 久久精品欧美一区二区三区不卡 | 欧洲视频一区二区| 国产成人综合视频| 麻豆精品在线视频| 亚洲影院在线观看| 中文字幕在线不卡| 久久九九久精品国产免费直播| 欧美日韩在线三区| youjizz久久| 国产一区二区视频在线| 图片区小说区区亚洲影院| 国产精品久久久久久久裸模| 欧美大胆一级视频| 欧美日韩成人一区二区| 一本久道中文字幕精品亚洲嫩| 国产麻豆精品一区二区| 成人免费的视频| 久久99在线观看| 蜜臀av性久久久久蜜臀aⅴ四虎 | 91色在线porny| 成人性色生活片免费看爆迷你毛片| 日本视频一区二区三区| 午夜精品成人在线| 亚洲一区二区不卡免费| 一区二区三区欧美久久| 亚洲日本成人在线观看| 国产精品麻豆久久久| 国产色91在线| 国产欧美日韩在线看| 国产丝袜欧美中文另类| 国产午夜亚洲精品理论片色戒| 精品国精品国产尤物美女| 日韩欧美黄色影院| 日韩精品一区在线| 91精品欧美福利在线观看| 欧美日韩国产a| 欧美一区二区三区精品| 欧美一级二级三级乱码| 欧美电视剧免费观看| 精品国产伦一区二区三区观看方式 | 亚洲乱码日产精品bd| 亚洲视频免费在线观看| 亚洲精品欧美二区三区中文字幕| 亚洲视频 欧洲视频| 一区二区在线免费| 亚洲成人精品一区二区| 日韩有码一区二区三区| 麻豆国产精品官网| 国产一区激情在线| 成人av片在线观看| 91视频观看免费| 欧美性猛片xxxx免费看久爱| 欧美卡1卡2卡| 日韩免费在线观看| 国产日韩欧美亚洲| 亚洲欧美偷拍另类a∨色屁股| 亚洲精品自拍动漫在线| 亚洲色图视频网| 亚洲午夜在线视频| 日韩av一二三| 国产.精品.日韩.另类.中文.在线.播放| 国产成人一区在线| 日本道精品一区二区三区| 欧美一区二区三区四区久久| 久久久久久久网| 亚洲精品视频在线看| 日本va欧美va欧美va精品| 国产成人自拍在线| 欧美亚洲综合一区| 欧美不卡123| 亚洲女性喷水在线观看一区| 视频在线观看一区二区三区| 国产精品资源网站| 色美美综合视频| 日韩欧美国产成人一区二区| 国产精品久久二区二区| 日韩精品成人一区二区在线| 国产精品18久久久久久vr| 色偷偷一区二区三区| 精品国产污网站| 亚洲视频每日更新| 国产尤物一区二区在线| 在线观看国产日韩| 国产欧美日韩精品在线| 午夜精品久久久久久久久| 国产高清不卡一区二区| 欧美疯狂性受xxxxx喷水图片| 国产嫩草影院久久久久| 日韩精品视频网站| 97se狠狠狠综合亚洲狠狠| 精品99一区二区| 亚洲国产乱码最新视频| 成人丝袜18视频在线观看| 在线综合+亚洲+欧美中文字幕| 国产精品久久久久久久浪潮网站 | 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品久久久久久户外露出 | 成人黄色大片在线观看| 日韩限制级电影在线观看| 亚洲码国产岛国毛片在线| 极品瑜伽女神91| 欧美日韩国产高清一区二区三区 | 三级影片在线观看欧美日韩一区二区| 国产91露脸合集magnet| 日韩欧美亚洲另类制服综合在线| 亚洲精品老司机| 成人av在线网站| 国产亚洲一二三区| 极品少妇一区二区| 91精品婷婷国产综合久久竹菊| 亚洲综合另类小说| 99久久久国产精品| 精品国产伦理网| 男人操女人的视频在线观看欧美| 色94色欧美sute亚洲13| 国产精品水嫩水嫩| 国产99久久久精品| 亚洲精品一区二区精华| 另类调教123区| 91精品在线一区二区| 天堂久久久久va久久久久| 91在线观看高清| 国产精品视频一二三| 国产麻豆成人传媒免费观看| 日韩女优视频免费观看| 成人aaaa免费全部观看| 国产视频一区在线播放| 老司机精品视频一区二区三区| 在线综合亚洲欧美在线视频| 日韩一区欧美二区| 日韩三级视频在线看| 蜜桃久久av一区| 欧美精品一区二区在线观看| 激情五月激情综合网| 精品美女一区二区三区| 精品制服美女丁香| 欧美精品一区二区在线播放| 国产高清久久久| 日韩一区在线免费观看| 色综合久久久久综合体桃花网| 亚洲摸摸操操av| 欧美日韩精品一区二区| 日韩在线观看一区二区| 精品欧美黑人一区二区三区| 国产乱淫av一区二区三区| 国产欧美日韩三级| 91亚洲国产成人精品一区二三| 亚洲在线免费播放| 欧美日韩日日骚| 精品一区二区三区免费观看 | 91在线云播放| 亚洲午夜免费福利视频| 欧美裸体bbwbbwbbw| 久久精品久久99精品久久| 国产亚洲一区字幕| 日本高清视频一区二区| 青青草原综合久久大伊人精品 | 免费高清成人在线| 国产人成一区二区三区影院| jvid福利写真一区二区三区| 一区二区三区在线观看网站| 欧美一三区三区四区免费在线看| 国内精品伊人久久久久影院对白| 中文字幕欧美日韩一区| 欧美日韩在线电影| 国产在线一区二区| 伊人一区二区三区| 日韩欧美高清dvd碟片| av一区二区三区在线| 日本欧洲一区二区| 国产精品三级久久久久三级| 欧美日韩不卡一区| 成人综合婷婷国产精品久久蜜臀| 婷婷久久综合九色国产成人| 中文一区一区三区高中清不卡| 欧美日韩黄色一区二区| 成人国产视频在线观看| 青青草伊人久久| 亚洲精品国产a久久久久久| 欧美精品一区二区三区久久久| 成人av第一页| 日韩精品五月天| 久久先锋影音av鲁色资源网| 亚洲综合视频在线观看| 91国内精品野花午夜精品| 福利一区二区在线观看| 久久国产日韩欧美精品| 国产成人在线免费| 日韩精品一区在线|