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

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

?? complete.c

?? 基于的linux的oracle sqlplus替代工具
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* complete.c -- filename completion for readline. *//* Copyright (C) 1987, 1989, 1992 Free Software Foundation, Inc.   This file is part of the GNU Readline Library, a library for   reading lines of text with interactive input and history editing.   The GNU Readline Library 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 2, or   (at your option) any later version.   The GNU Readline Library 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.   The GNU General Public License is often shipped with GNU software, and   is generally kept in a file called COPYING or LICENSE.  If you do not   have a copy of the license, write to the Free Software Foundation,   59 Temple Place, Suite 330, Boston, MA 02111 USA. */#define READLINE_LIBRARY#if defined (HAVE_CONFIG_H)#  include <config.h>#endif#include <sys/types.h>#include <fcntl.h>#if defined (HAVE_SYS_FILE_H)#include <sys/file.h>#endif#if defined (HAVE_UNISTD_H)#  include <unistd.h>#endif /* HAVE_UNISTD_H */#if defined (HAVE_STDLIB_H)#  include <stdlib.h>#else#  include "ansi_stdlib.h"#endif /* HAVE_STDLIB_H */#include <stdio.h>#include <errno.h>#if !defined (errno)extern int errno;#endif /* !errno */#include <pwd.h>#include "posixdir.h"#include "posixstat.h"/* System-specific feature definitions and include files. */#include "rldefs.h"#include "rlmbutil.h"/* Some standard library routines. */#include "readline.h"#include "xmalloc.h"#include "rlprivate.h"#ifdef __STDC__typedef int QSFUNC (const void *, const void *);#elsetypedef int QSFUNC ();#endif#ifdef HAVE_LSTAT#  define LSTAT lstat#else#  define LSTAT stat#endif/* Unix version of a hidden file.  Could be different on other systems. */#define HIDDEN_FILE(fname)	((fname)[0] == '.')/* Most systems don't declare getpwent in <pwd.h> if _POSIX_SOURCE is   defined. */#if !defined (HAVE_GETPW_DECLS) || defined (_POSIX_SOURCE)extern struct passwd *getpwent PARAMS((void));#endif /* !HAVE_GETPW_DECLS || _POSIX_SOURCE *//* If non-zero, then this is the address of a function to call when   completing a word would normally display the list of possible matches.   This function is called instead of actually doing the display.   It takes three arguments: (char **matches, int num_matches, int max_length)   where MATCHES is the array of strings that matched, NUM_MATCHES is the   number of strings in that array, and MAX_LENGTH is the length of the   longest string in that array. */rl_compdisp_func_t *rl_completion_display_matches_hook = (rl_compdisp_func_t *)NULL;#if defined (VISIBLE_STATS)#  if !defined (X_OK)#    define X_OK 1#  endifstatic int stat_char PARAMS((char *));#endifstatic char *rl_quote_filename PARAMS((char *, int, char *));static void set_completion_defaults PARAMS((int));static int get_y_or_n PARAMS((int));static int _rl_internal_pager PARAMS((int));static char *printable_part PARAMS((char *));static int print_filename PARAMS((char *, char *));static char **gen_completion_matches PARAMS((char *, int, int, rl_compentry_func_t *, int, int));static char **remove_duplicate_matches PARAMS((char **));static void insert_match PARAMS((char *, int, int, char *));static int append_to_match PARAMS((char *, int, int, int));static void insert_all_matches PARAMS((char **, int, char *));static void display_matches PARAMS((char **));static int compute_lcd_of_matches PARAMS((char **, int, const char *));static int postprocess_matches PARAMS((char ***, int));static char *make_quoted_replacement PARAMS((char *, int, char *));/* **************************************************************** *//*								    *//*	Completion matching, from readline's point of view.	    *//*								    *//* **************************************************************** *//* Variables known only to the readline library. *//* If non-zero, non-unique completions always show the list of matches. */int _rl_complete_show_all = 0;/* If non-zero, completed directory names have a slash appended. */int _rl_complete_mark_directories = 1;/* If non-zero, the symlinked directory completion behavior introduced in   readline-4.2a is disabled, and symlinks that point to directories have   a slash appended (subject to the value of _rl_complete_mark_directories).   This is user-settable via the mark-symlinked-directories variable. */int _rl_complete_mark_symlink_dirs = 0;/* If non-zero, completions are printed horizontally in alphabetical order,   like `ls -x'. */int _rl_print_completions_horizontally;/* Non-zero means that case is not significant in filename completion. */#if defined (__MSDOS__) && !defined (__DJGPP__)int _rl_completion_case_fold = 1;#elseint _rl_completion_case_fold;#endif/* If non-zero, don't match hidden files (filenames beginning with a `.' on   Unix) when doing filename completion. */int _rl_match_hidden_files = 1;/* Global variables available to applications using readline. */#if defined (VISIBLE_STATS)/* Non-zero means add an additional character to each filename displayed   during listing completion iff rl_filename_completion_desired which helps   to indicate the type of file being listed. */int rl_visible_stats = 0;#endif /* VISIBLE_STATS *//* If non-zero, then this is the address of a function to call when   completing on a directory name.  The function is called with   the address of a string (the current directory name) as an arg. */rl_icppfunc_t *rl_directory_completion_hook = (rl_icppfunc_t *)NULL;rl_icppfunc_t *rl_directory_rewrite_hook = (rl_icppfunc_t *)NULL;/* Non-zero means readline completion functions perform tilde expansion. */int rl_complete_with_tilde_expansion = 0;/* Pointer to the generator function for completion_matches ().   NULL means to use rl_filename_completion_function (), the default filename   completer. */rl_compentry_func_t *rl_completion_entry_function = (rl_compentry_func_t *)NULL;/* Pointer to alternative function to create matches.   Function is called with TEXT, START, and END.   START and END are indices in RL_LINE_BUFFER saying what the boundaries   of TEXT are.   If this function exists and returns NULL then call the value of   rl_completion_entry_function to try to match, otherwise use the   array of strings returned. */rl_completion_func_t *rl_attempted_completion_function = (rl_completion_func_t *)NULL;/* Non-zero means to suppress normal filename completion after the   user-specified completion function has been called. */int rl_attempted_completion_over = 0;/* Set to a character indicating the type of completion being performed   by rl_complete_internal, available for use by application completion   functions. */int rl_completion_type = 0;/* Up to this many items will be displayed in response to a   possible-completions call.  After that, we ask the user if   she is sure she wants to see them all. */int rl_completion_query_items = 100;int _rl_page_completions = 1;/* The basic list of characters that signal a break between words for the   completer routine.  The contents of this variable is what breaks words   in the shell, i.e. " \t\n\"\\'`@$><=" */const char *rl_basic_word_break_characters = " \t\n\"\\'`@$><=;|&{("; /* }) *//* List of basic quoting characters. */const char *rl_basic_quote_characters = "\"'";/* The list of characters that signal a break between words for   rl_complete_internal.  The default list is the contents of   rl_basic_word_break_characters.  */const char *rl_completer_word_break_characters = (const char *)NULL;/* List of characters which can be used to quote a substring of the line.   Completion occurs on the entire substring, and within the substring   rl_completer_word_break_characters are treated as any other character,   unless they also appear within this list. */const char *rl_completer_quote_characters = (const char *)NULL;/* List of characters that should be quoted in filenames by the completer. */const char *rl_filename_quote_characters = (const char *)NULL;/* List of characters that are word break characters, but should be left   in TEXT when it is passed to the completion function.  The shell uses   this to help determine what kind of completing to do. */const char *rl_special_prefixes = (const char *)NULL;/* If non-zero, then disallow duplicates in the matches. */int rl_ignore_completion_duplicates = 1;/* Non-zero means that the results of the matches are to be treated   as filenames.  This is ALWAYS zero on entry, and can only be changed   within a completion entry finder function. */int rl_filename_completion_desired = 0;/* Non-zero means that the results of the matches are to be quoted using   double quotes (or an application-specific quoting mechanism) if the   filename contains any characters in rl_filename_quote_chars.  This is   ALWAYS non-zero on entry, and can only be changed within a completion   entry finder function. */int rl_filename_quoting_desired = 1;/* This function, if defined, is called by the completer when real   filename completion is done, after all the matching names have been   generated. It is passed a (char**) known as matches in the code below.   It consists of a NULL-terminated array of pointers to potential   matching strings.  The 1st element (matches[0]) is the maximal   substring that is common to all matches. This function can re-arrange   the list of matches as required, but all elements of the array must be   free()'d if they are deleted. The main intent of this function is   to implement FIGNORE a la SunOS csh. */rl_compignore_func_t *rl_ignore_some_completions_function = (rl_compignore_func_t *)NULL;/* Set to a function to quote a filename in an application-specific fashion.   Called with the text to quote, the type of match found (single or multiple)   and a pointer to the quoting character to be used, which the function can   reset if desired. */rl_quote_func_t *rl_filename_quoting_function = rl_quote_filename;         /* Function to call to remove quoting characters from a filename.  Called   before completion is attempted, so the embedded quotes do not interfere   with matching names in the file system.  Readline doesn't do anything   with this; it's set only by applications. */rl_dequote_func_t *rl_filename_dequoting_function = (rl_dequote_func_t *)NULL;/* Function to call to decide whether or not a word break character is   quoted.  If a character is quoted, it does not break words for the   completer. */rl_linebuf_func_t *rl_char_is_quoted_p = (rl_linebuf_func_t *)NULL;/* If non-zero, the completion functions don't append anything except a   possible closing quote.  This is set to 0 by rl_complete_internal and   may be changed by an application-specific completion function. */int rl_completion_suppress_append = 0;/* Character appended to completed words when at the end of the line.  The   default is a space. */int rl_completion_append_character = ' ';/* If non-zero, a slash will be appended to completed filenames that are   symbolic links to directory names, subject to the value of the   mark-directories variable (which is user-settable).  This exists so   that application completion functions can override the user's preference   (set via the mark-symlinked-directories variable) if appropriate.   It's set to the value of _rl_complete_mark_symlink_dirs in   rl_complete_internal before any application-specific completion   function is called, so without that function doing anything, the user's   preferences are honored. */int rl_completion_mark_symlink_dirs;/* If non-zero, inhibit completion (temporarily). */int rl_inhibit_completion;/* Variables local to this file. *//* Local variable states what happened during the last completion attempt. */static int completion_changed_buffer;/*************************************//*				     *//*    Bindable completion functions  *//*				     *//*************************************//* Complete the word at or before point.  You have supplied the function   that does the initial simple matching selection algorithm (see   rl_completion_matches ()).  The default is to do filename completion. */intrl_complete (ignore, invoking_key)     int ignore, invoking_key;{  if (rl_inhibit_completion)    return (_rl_insert_char (ignore, invoking_key));  else if (rl_last_func == rl_complete && !completion_changed_buffer)    return (rl_complete_internal ('?'));  else if (_rl_complete_show_all)    return (rl_complete_internal ('!'));  else    return (rl_complete_internal (TAB));}/* List the possible completions.  See description of rl_complete (). */intrl_possible_completions (ignore, invoking_key)     int ignore, invoking_key;{  return (rl_complete_internal ('?'));}intrl_insert_completions (ignore, invoking_key)     int ignore, invoking_key;{  return (rl_complete_internal ('*'));}/* Return the correct value to pass to rl_complete_internal performing   the same tests as rl_complete.  This allows consecutive calls to an   application's completion function to list possible completions and for   an application-specific completion function to honor the   show-all-if-ambiguous readline variable. */intrl_completion_mode (cfunc)     rl_command_func_t *cfunc;{  if (rl_last_func == cfunc && !completion_changed_buffer)    return '?';  else if (_rl_complete_show_all)    return '!';  else    return TAB;}/************************************//*				    *//*    Completion utility functions  *//*				    *//************************************//* Set default values for readline word completion.  These are the variables   that application completion functions can change or inspect. */static voidset_completion_defaults (what_to_do)     int what_to_do;{  /* Only the completion entry function can change these. */  rl_filename_completion_desired = 0;  rl_filename_quoting_desired = 1;  rl_completion_type = what_to_do;  rl_completion_suppress_append = 0;  /* The completion entry function may optionally change this. */  rl_completion_mark_symlink_dirs = _rl_complete_mark_symlink_dirs;}/* The user must press "y" or "n". Non-zero return means "y" pressed. */static intget_y_or_n (for_pager)     int for_pager;{  int c;  for (;;)    {      RL_SETSTATE(RL_STATE_MOREINPUT);      c = rl_read_key ();      RL_UNSETSTATE(RL_STATE_MOREINPUT);      if (c == 'y' || c == 'Y' || c == ' ')	return (1);      if (c == 'n' || c == 'N' || c == RUBOUT)	return (0);      if (c == ABORT_CHAR)	_rl_abort_internal ();      if (for_pager && (c == NEWLINE || c == RETURN))	return (2);      if (for_pager && (c == 'q' || c == 'Q'))	return (0);      rl_ding ();    }}static int_rl_internal_pager (lines)     int lines;{  int i;  fprintf (rl_outstream, "--More--");  fflush (rl_outstream);  i = get_y_or_n (1);  _rl_erase_entire_line ();  if (i == 0)    return -1;  else if (i == 2)    return (lines - 1);  else    return 0;}#if defined (VISIBLE_STATS)/* Return the character which best describes FILENAME.     `@' for symbolic links     `/' for directories     `*' for executables     `=' for sockets     `|' for FIFOs     `%' for character special devices     `#' for block special devices */static intstat_char (filename)     char *filename;{  struct stat finfo;  int character, r;#if defined (HAVE_LSTAT) && defined (S_ISLNK)  r = lstat (filename, &finfo);#else  r = stat (filename, &finfo);#endif  if (r == -1)    return (0);  character = 0;  if (S_ISDIR (finfo.st_mode))    character = '/';#if defined (S_ISCHR)  else if (S_ISCHR (finfo.st_mode))    character = '%';#endif /* S_ISCHR */#if defined (S_ISBLK)  else if (S_ISBLK (finfo.st_mode))    character = '#';#endif /* S_ISBLK */#if defined (S_ISLNK)  else if (S_ISLNK (finfo.st_mode))    character = '@';#endif /* S_ISLNK */#if defined (S_ISSOCK)  else if (S_ISSOCK (finfo.st_mode))    character = '=';#endif /* S_ISSOCK */#if defined (S_ISFIFO)  else if (S_ISFIFO (finfo.st_mode))    character = '|';#endif  else if (S_ISREG (finfo.st_mode))    {      if (access (filename, X_OK) == 0)	character = '*';    }  return (character);}#endif /* VISIBLE_STATS *//* Return the portion of PATHNAME that should be output when listing   possible completions.  If we are hacking filename completion, we   are only interested in the basename, the portion following the   final slash.  Otherwise, we return what we were passed.  Since   printing empty strings is not very informative, if we're doing   filename completion, and the basename is the empty string, we look   for the previous slash and return the portion following that.  If   there's no previous slash, we just return what we were passed. */static char *printable_part (pathname)      char *pathname;{  char *temp, *x;  if (rl_filename_completion_desired == 0)	/* don't need to do anything */    return (pathname);  temp = strrchr (pathname, '/');#if defined (__MSDOS__)  if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':')

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区在线中文字幕| 97精品视频在线观看自产线路二| 欧美日韩成人在线| 亚洲国产精品久久一线不卡| 欧美电影一区二区| 久久精品国内一区二区三区| 久久亚洲综合av| 不卡在线视频中文字幕| 亚洲乱码一区二区三区在线观看| 欧美中文字幕久久 | 国产午夜精品福利| 99久久免费视频.com| 亚洲国产sm捆绑调教视频| 欧美一区二区人人喊爽| 国产一区二区美女诱惑| 亚洲欧洲日产国码二区| 欧美精品欧美精品系列| 国产麻豆成人传媒免费观看| 中文字幕制服丝袜成人av| 91久久人澡人人添人人爽欧美| 日韩专区一卡二卡| 日本一区二区视频在线| 欧美日韩亚洲综合| 国产精品一区二区三区99| 一区二区三区四区五区视频在线观看| 91精品啪在线观看国产60岁| 岛国精品一区二区| 三级在线观看一区二区| 中文久久乱码一区二区| 欧美美女bb生活片| 成人高清视频免费观看| 男女性色大片免费观看一区二区| 中文一区一区三区高中清不卡| 色妞www精品视频| 国内精品不卡在线| 亚洲国产日韩a在线播放性色| 久久免费精品国产久精品久久久久| 色综合婷婷久久| 国模娜娜一区二区三区| 亚洲高清不卡在线观看| 国产精品区一区二区三区| 日韩一区二区在线免费观看| 91免费视频大全| 国产成人精品一区二| 婷婷成人激情在线网| 亚洲欧美日韩中文字幕一区二区三区 | 欧美视频一区二| 国产不卡一区视频| 久久99精品久久久久久久久久久久| 亚洲欧美日韩精品久久久久| 国产欧美日韩亚州综合| 日韩欧美国产一二三区| 在线观看欧美精品| 成人免费的视频| 国产黄色精品网站| 久久不见久久见免费视频1| 性做久久久久久久久| 亚洲黄网站在线观看| 亚洲桃色在线一区| 国产精品美女久久久久久久久| 精品久久人人做人人爰| 欧美一卡二卡在线观看| 欧美日本乱大交xxxxx| 在线欧美小视频| 91看片淫黄大片一级在线观看| 国产一区二区三区电影在线观看| 蜜乳av一区二区三区| 日韩精品免费专区| 日韩精品1区2区3区| 亚洲国产中文字幕| 亚洲午夜激情av| 亚洲国产视频一区二区| 亚洲成a人片在线不卡一二三区| 亚洲精品乱码久久久久久| 亚洲欧洲www| 自拍偷拍国产亚洲| 一区二区三区国产精华| 亚洲制服丝袜在线| 一区二区三区电影在线播| 亚洲精品视频免费观看| 一区二区三区中文字幕在线观看| 亚洲欧洲一区二区三区| 中文字幕永久在线不卡| 亚洲欧美怡红院| 亚洲女性喷水在线观看一区| 一区二区三区在线视频免费观看| 一区二区三区日韩欧美精品| 一区二区三区中文字幕在线观看| 亚洲主播在线观看| 亚洲成人精品影院| 日韩一区欧美二区| 国产在线日韩欧美| 成人网在线播放| 色婷婷亚洲婷婷| 欧洲人成人精品| 日韩欧美一级片| 久久久99免费| 亚洲日本在线看| 亚洲高清在线视频| 麻豆成人免费电影| 懂色av一区二区三区免费观看| 97成人超碰视| 欧美电影一区二区| 久久精品夜色噜噜亚洲a∨ | 一级精品视频在线观看宜春院| 亚洲电影激情视频网站| 蜜臀av一级做a爰片久久| 国产乱人伦偷精品视频不卡 | 欧美色电影在线| 日韩一区二区在线观看视频| 国产色91在线| 亚洲一区在线视频| 国产精品一区在线观看乱码| 日本精品视频一区二区| 91精品欧美久久久久久动漫| 国产精品人人做人人爽人人添 | 美女视频黄 久久| 懂色av一区二区三区免费看| 欧美日韩一区二区电影| 久久久亚洲国产美女国产盗摄 | 久久精品久久综合| 91麻豆国产福利在线观看| 欧美一区二区三区免费大片| 国产精品视频第一区| 日韩成人免费电影| 色综合天天综合| 精品国产污污免费网站入口| 一区二区三区在线观看视频| 国产一区美女在线| 91精品国产手机| 亚洲欧美日韩国产成人精品影院| 麻豆91在线看| 欧美在线观看一二区| 中文字幕乱码久久午夜不卡| 免费看精品久久片| 色欧美乱欧美15图片| 国产肉丝袜一区二区| 日韩二区在线观看| 色综合 综合色| 国产视频一区二区三区在线观看| 午夜国产不卡在线观看视频| 91在线云播放| 欧美国产综合一区二区| 国产尤物一区二区| 日韩美女天天操| 日韩电影免费在线看| 欧美在线|欧美| 亚洲精品视频观看| 91色porny| 欧美国产日韩在线观看| 国产一区二区三区美女| 日韩精品一区二区三区中文不卡| 亚洲123区在线观看| 色94色欧美sute亚洲13| 中文字幕一区二区三| 国产成人精品亚洲日本在线桃色| 在线综合+亚洲+欧美中文字幕| 亚洲一区在线视频| 日本高清无吗v一区| 亚洲免费高清视频在线| 99精品在线观看视频| 中文字幕欧美一| 91蜜桃传媒精品久久久一区二区| 国产精品久线观看视频| 成人免费毛片高清视频| 亚洲国产高清在线| 懂色av中文字幕一区二区三区| 久久久综合视频| 成人午夜在线播放| 国产精品国产三级国产a | 亚洲亚洲精品在线观看| 色婷婷av一区| 亚洲bdsm女犯bdsm网站| 欧美一卡二卡在线观看| 国产一区在线视频| 国产精品视频观看| 色婷婷久久综合| 亚洲一卡二卡三卡四卡五卡| 884aa四虎影成人精品一区| 日韩av一级电影| 精品国产乱码久久久久久久| 国产传媒久久文化传媒| 亚洲欧洲av在线| 欧美三级韩国三级日本三斤| 日韩电影在线免费| 久久久久高清精品| 91在线你懂得| 亚洲18色成人| 久久精品免视看| 91免费国产视频网站| 亚洲一区欧美一区| 精品久久久久久久人人人人传媒 | 欧美激情资源网| 91精品1区2区| 精品一区二区三区免费视频| 国产欧美日韩在线视频| 欧美性感一类影片在线播放| 久久国产三级精品| 一区精品在线播放| 日韩欧美电影在线|