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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cfls.c

?? OXCC is a multipass, interpreting C compiler with several language extensions. It generates an Archi
?? C
?? 第 1 頁 / 共 5 頁
字號(hào):
/* `dir', `vdir' and `ls' directory listing programs for GNU.
   Copyright (C) 1985, 1988, 1989, 1990 Free Software Foundation, Inc.

   This program 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 1, 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 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 this program; if not, write to the Free Software
   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */

/* If the macro MULTI_COL is defined,
   the multi-column format is the default regardless
   of the type of output device.
   This is for the `dir' program.

   If the macro LONG_FORMAT is defined,
   the long format is the default regardless of the
   type of output device.
   This is for the `vdir' program.

   If neither is defined,
   the output format depends on whether the output
   device is a terminal.
   This is for the `ls' program. */

/* Written by Richard Stallman and David MacKenzie. */
/* Modified for PCDOS and 32 Char filenames by Norman D. Culver */
/* Additonal mods for cff */

#include "cfls.h"


/* Return an int indicating the result of comparing two longs. */
#ifdef INT_16_BITS
#define longdiff(a, b) ((a) < (b) ? -1 : (a) > (b) ? 1 : 0)
#else
#define longdiff(a, b) ((a) - (b))
#endif

int glob_match ();

char *copystring ();
char *getgroup ();
char *getuser ();
char *make_link_path ();
char *xmalloc ();
char *xrealloc ();
int argmatch ();
int compare_atime ();
int rev_cmp_atime ();
int compare_ctime ();
int rev_cmp_ctime ();
int compare_mtime ();
int rev_cmp_mtime ();
int compare_size ();
int rev_cmp_size ();
int compare_name ();
int rev_cmp_name ();
int compare_extension ();
int rev_cmp_extension ();
int decode_switches ();
int file_interesting ();
long gobble_file ();
int is_not_dot_or_dotdot ();
int length_of_file_name_and_frills ();
void add_ignore_pattern ();
void add_list_pattern ();
void attach ();
void clear_files ();
void error ();
void extract_dirs_from_files ();
void get_link_name ();
void indent ();
void invalid_arg ();
void print_current_files ();
void print_dir ();
void print_file_name_and_frills ();
void print_horizontal ();
void print_long_format ();
void print_many_per_line ();
void print_name_with_quoting ();
void print_type_indicator ();
void print_with_commas ();
void queue_directory ();
void sort_files ();
void usage ();

enum filetype
{
  symbolic_link,
  directory,
  arg_directory,    /* Directory given as command line arg. */
  normal      /* All others. */
};
typedef struct _lstat {
	unsigned long st_mode;
	unsigned long st_atime;
	unsigned long st_mtime;
	unsigned long st_ctime;
	unsigned long st_ino;
	unsigned long st_size;
	unsigned long st_alloc;
} LSTAT;

struct file
{
  /* The file name. */
  char *name;
  int namlen;
  LSTAT stats;
  char *linkname;
  unsigned long linkmode;
  enum filetype filetype;
};

/* The table of files in the current directory:

   `files' points to a vector of `struct file', one per file.
   `nfiles' is the number of elements space has been allocated for.
   `files_index' is the number actually in use.  */

/* Address of block containing the files that are described.  */

struct file *files;

/* Length of block that `files' points to, measured in files.  */

int nfiles;

/* Index of first unused in `files'.  */

int files_index;

/* Record of one pending directory waiting to be listed.  */

struct pending
{
  char *name;
  /* If the directory is actually the file pointed to by a symbolic link we
     were told to list, `realname' will contain the name of the symbolic
     link, otherwise zero. */
  char *realname;
  struct ignore_pattern *list_patterns;
  struct pending *next;
};

struct pending *pending_dirs;

/* Current time (seconds since 1970).  When we are printing a file's time,
   include the year if it is more than 6 months before this time.  */

long current_time;

/* The number of digits to use for block sizes.
   4, or more if needed for bigger numbers.  */

int block_size_size;

/* The name the program was run with, stripped of any leading path. */
char *program_name;

/* Option flags */

/* long_format for lots of info, one per line.
   one_per_line for just names, one per line.
   many_per_line for just names, many per line, sorted vertically.
   horizontal for just names, many per line, sorted horizontally.
   with_commas for just names, many per line, separated by commas.

   -l, -1, -C, -x and -m control this parameter.  */

enum format
{
  long_format,      /* -l */
  one_per_line,     /* -1 */
  many_per_line,    /* -C */
  horizontal,     /* -x */
  with_commas     /* -m */
};

enum format format;

/* Type of time to print or sort by.  Controlled by -c and -u.  */

enum time_type
{
  time_mtime,     /* default */
  time_ctime,     /* -c */
  time_atime      /* -u */
};

enum time_type time_type;

/* The file characteristic to sort by.  Controlled by -t, -S, -U, -X. */

enum sort_type
{
  sort_none,      /* -U */
  sort_name,      /* default */
  sort_extension,   /* -X */
  sort_time,      /* -t */
  sort_size     /* -S */
};

enum sort_type sort_type;

/* Direction of sort.
   0 means highest first if numeric,
   lowest first if alphabetic;
   these are the defaults.
   1 means the opposite order in each case.  -r  */

int sort_reverse;

/* Nonzero means print the user and group id's as numbers rather
   than as names.  -n  */

int numeric_users;

/* Nonzero means mention the size in 512 byte blocks of each file.  -s  */

int print_block_size;

/* Nonzero means show file sizes in kilobytes instead of blocks
   (the size of which is system-dependant).  -k */

int kilobyte_blocks;

/* none means don't mention the type of files.
   all means mention the types of all files.
   not_programs means do so except for executables.

   Controlled by -F and -p.  */

enum indicator_style
{
  none,       /* default */
  all,        /* -F */
  not_programs      /* -p */
};

enum indicator_style indicator_style;

/* Nonzero means mention the inode number of each file.  -i  */

int print_inode;

/* Nonzero means when a symbolic link is found, display info on
   the file linked to.  -L  */

int trace_links;

/* Nonzero means when a directory is found, display info on its
   contents.  -R  */

int trace_dirs;

/* Nonzero means when an argument is a directory name, display info
   on it itself.  -d  */

int immediate_dirs;

/* Nonzero means don't omit files whose names start with `.'.  -A */

int all_files;

/* Nonzero means don't omit files `.' and `..'
   This flag implies `all_files'.  -a  */

int really_all_files;

/* A linked list of shell-style globbing patterns.  If a non-argument
   file name matches any of these patterns, it is omitted, or listed.
   List_patterns only occur if the shell fails to glob a pattern on
   the command line, PCDOS is a good example. Ignore_patterns are
   controlled by -I.  Multiple -I options accumulate.
   The -B option adds `*~' and `.*~' to this list.  */

struct ignore_pattern
{
  char *pattern;
  struct ignore_pattern *next;
};

struct ignore_pattern *ignore_patterns;

/* Nonzero means quote nongraphic chars in file names.  -b  */

int quote_funny_chars;

/* Nonzero means output nongraphic chars in file names as `?'.  -q  */

int qmark_funny_chars;

/* Nonzero means output each file name using C syntax for a string.
   Always accompanied by `quote_funny_chars'.
   This mode, together with -x or -C or -m,
   and without such frills as -F or -s,
   is guaranteed to make it possible for a program receiving
   the output to tell exactly what file names are present.  -Q  */

int quote_as_string;

/* The number of chars per hardware tab stop.  -T */
int tabsize;

/* Nonzero means we are listing the working directory because no
   non-option arguments were given. */

int dir_defaulted;

/* Nonzero means print each directory name before listing it. */

int print_dir_name;

/* The line length to use for breaking lines in many-per-line format.
   Can be set with -w.  */

int line_length;

/* If nonzero, the file listing format requires that stat be called on
   each file. */

int format_needs_stat;

struct option long_options[] =
{
  {"all", 0, NULL, 'a'},
  {"escape", 0, NULL, 'b'},
  {"directory", 0, NULL, 'd'},
  {"inode", 0, NULL, 'i'},
  {"kilobytes", 0, NULL, 'k'},
  {"numeric-uid-gid", 0, NULL, 'n'},
  {"hide-control-chars", 0, NULL, 'q'},
  {"reverse", 0, NULL, 'r'},
  {"size", 0, NULL, 's'},
  {"width", 1, NULL, 'w'},
  {"almost-all", 0, NULL, 'A'},
  {"ignore-backups", 0, NULL, 'B'},
  {"classify", 0, NULL, 'F'},
  {"file-type", 0, NULL, 'F'},
  {"ignore", 1, NULL, 'I'},
  {"dereference", 0, NULL, 'L'},
  {"literal", 0, NULL, 'N'},
  {"quote-name", 0, NULL, 'Q'},
  {"recursive", 0, NULL, 'R'},
  {"format", 1, NULL, 12},
  {"sort", 1, NULL, 10},
  {"tabsize", 1, NULL, 'T'},
  {"time", 1, NULL, 11},
  {NULL, 0, NULL, 0}
};

char *format_args[] =
{
  "verbose", "long", "commas", "horizontal", "across",
  "vertical", "single-column", NULL
};

enum format formats[] =
{
  long_format, long_format, with_commas, horizontal, horizontal,
  many_per_line, one_per_line
};

char *sort_args[] =
{
  "none", "time", "size", "extension", 0
};

enum sort_type sort_types[] =
{
  sort_none, sort_time, sort_size, sort_extension
};

char *time_args[] =
{
  "atime", "access", "use", "ctime", "status", 0
};

enum time_type time_types[] =
{
  time_atime, time_atime, time_atime, time_ctime, time_ctime
};
static int
is_printable(const char *cp, int len)
{
register int i;
	for(i = 0; i < len; ++i) {
		if(!isgraph(cp[i])) {
			if(cp[i] == '\0')
				break;
			return 0;
		}
	}
	return (i > 0) ? 1 : 0;
}
/* Set all the option flags according to the switches specified.
   Return the index of the first non-option argument.  */

int
decode_switches (argc, argv)
int argc;
char **argv;

{
  register char *p;
  int c;
  int longind;

  qmark_funny_chars = 0;
  quote_funny_chars = 0;

  /* initialize all switches to default settings */

#ifdef MULTI_COL
#define PROGNAME "dir"
  /* This is for the `dir' program.  */
  format = many_per_line;
  quote_funny_chars = 1;
#else
#ifdef LONG_FORMAT
#define PROGNAME "vdir"
  /* This is for the `vdir' program.  */
  format = long_format;
  quote_funny_chars = 1;
#else
#define PROGNAME "cfls"
  /* This is for the `ls' program.  */
  if (isatty (1))
  {
    format = many_per_line;
    qmark_funny_chars = 1;
  }
  else
  {
    format = one_per_line;
    qmark_funny_chars = 0;
  }
#endif
#endif

  time_type = time_mtime;
  sort_type = sort_name;
  sort_reverse = 0;
  numeric_users = 0;
  print_block_size = 0;
  kilobyte_blocks = 0;
  indicator_style = none;
  print_inode = 0;
  trace_links = 0;
  trace_dirs = 0;
  immediate_dirs = 0;
  all_files = 0;
  really_all_files = 0;
  ignore_patterns = 0;
  quote_as_string = 0;

  p = getenv ("COLUMNS");
  line_length = p ? atoi (p) : 80;

#ifdef TIOCGWINSZ
  {
    struct winsize ws;

    if (ioctl (1, TIOCGWINSZ, &ws) != -1 && ws.ws_col != 0)
      line_length = ws.ws_col;
  }
#endif

  p = getenv ("TABSIZE");
  tabsize = p ? atoi (p) : 8;

  while ((c = getopt_long (argc, argv, "abcdgiklmnpqrstuw:xABCFI:LNQRST:UX1",
         long_options, &longind)) != EOF)
  {
    switch (c)
    {
      case 'a':
        all_files = 1;
        really_all_files = 1;
        break;

      case 'b':
        quote_funny_chars = 1;
        qmark_funny_chars = 0;
        break;

      case 'c':
        time_type = time_ctime;
        break;

      case 'd':
        immediate_dirs = 1;
        break;

      case 'g':
    /* No effect.  For BSD compatibility. */
        break;

      case 'i':
        print_inode = 1;
        break;

      case 'k':
        kilobyte_blocks = 1;
        break;

      case 'l':
        format = long_format;
        break;

      case 'm':
        format = with_commas;
        break;

      case 'n':

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线观看视频| 亚洲第一电影网| 欧美精品在欧美一区二区少妇| 国模少妇一区二区三区| 亚洲一卡二卡三卡四卡五卡| 久久久91精品国产一区二区精品| 91国在线观看| 国产成人免费视频网站高清观看视频| 午夜激情综合网| 国产精品白丝在线| 欧美一区二区精品在线| 色诱亚洲精品久久久久久| 国产成人午夜精品影院观看视频| 日韩中文字幕一区二区三区| 亚洲区小说区图片区qvod| 国产午夜精品福利| 精品嫩草影院久久| 欧美一区二区网站| 精品婷婷伊人一区三区三| 99久久精品一区| 高清shemale亚洲人妖| 久99久精品视频免费观看| 天堂精品中文字幕在线| 亚洲综合av网| 亚洲精品高清在线| 一色屋精品亚洲香蕉网站| 国产日韩欧美不卡| 久久综合九色综合97婷婷| 日韩精品一区国产麻豆| 欧美日韩激情一区二区| 欧美熟乱第一页| 欧洲精品在线观看| 欧美性受xxxx黑人xyx性爽| 日本乱人伦aⅴ精品| 色成人在线视频| 91麻豆文化传媒在线观看| 99久久精品国产导航| 91在线观看高清| 91老师片黄在线观看| 99久久久国产精品免费蜜臀| 99久久久久免费精品国产| 91免费观看视频在线| 一本一道综合狠狠老| 色猫猫国产区一区二在线视频| 99国产一区二区三精品乱码| 色综合久久久久综合体| 欧美色偷偷大香| 69精品人人人人| 在线不卡a资源高清| 欧美一区二区女人| 久久亚洲二区三区| 日本一区二区三区免费乱视频| 中文子幕无线码一区tr| 亚洲丝袜精品丝袜在线| 亚洲国产一区二区a毛片| 性做久久久久久久久| 免费久久99精品国产| 国产呦精品一区二区三区网站| 国产suv精品一区二区6| 99久久亚洲一区二区三区青草| 91日韩一区二区三区| 欧美日韩夫妻久久| 精品国产成人在线影院| 国产欧美日本一区视频| 最新日韩av在线| 丝袜亚洲另类欧美| 极品美女销魂一区二区三区免费| 丰满少妇在线播放bd日韩电影| 色哟哟一区二区在线观看| 欧美老年两性高潮| 久久一日本道色综合| 亚洲色图第一区| 麻豆精品国产传媒mv男同 | 经典三级视频一区| 成人精品视频一区二区三区尤物| 色婷婷综合久久久久中文| 宅男噜噜噜66一区二区66| 久久久久久亚洲综合影院红桃| 一区在线中文字幕| 日韩国产欧美视频| 成人精品在线视频观看| 欧美日韩国产三级| 亚洲国产精品精华液2区45| 亚洲成av人片一区二区三区| 国产乱人伦偷精品视频免下载| 色丁香久综合在线久综合在线观看| 精品理论电影在线| 樱花影视一区二区| 国产精品综合二区| 欧美日韩成人在线| 中文字幕国产一区| 奇米色一区二区三区四区| 成人av片在线观看| 欧美videos大乳护士334| 亚洲乱码一区二区三区在线观看| 激情综合五月天| 欧美日韩亚洲不卡| 精久久久久久久久久久| 欧美色爱综合网| 国产精品家庭影院| 国产一区二区三区在线观看精品| 在线观看一区二区视频| 国产日韩欧美麻豆| 久久精品国内一区二区三区 | 这里只有精品免费| 亚洲女子a中天字幕| 国产成人综合网| 日韩亚洲欧美高清| 无码av免费一区二区三区试看| 成人美女视频在线看| 日韩欧美国产成人一区二区| 亚洲成av人片一区二区| 99国产精品久久久久久久久久| 久久综合成人精品亚洲另类欧美| 亚洲成人三级小说| 色哟哟一区二区三区| 中文字幕一区二区在线观看| 国产美女主播视频一区| 欧美成人vr18sexvr| 免费亚洲电影在线| 欧美吻胸吃奶大尺度电影| 亚洲欧美日韩电影| jizz一区二区| 国产精品你懂的在线欣赏| 国产91丝袜在线播放0| 久久久久国产精品免费免费搜索| 麻豆精品国产91久久久久久| 日韩欧美激情四射| 美女网站色91| 精品久久国产老人久久综合| 免费成人小视频| 欧美电影免费观看高清完整版在线观看| 午夜a成v人精品| 91精选在线观看| 久久国产精品一区二区| 精品久久一区二区| 国产一区福利在线| 国产偷国产偷精品高清尤物| 国产河南妇女毛片精品久久久 | 精品国一区二区三区| 麻豆精品一区二区| 亚洲精品一区二区三区99| 国产精品综合av一区二区国产馆| 欧美精品一区二区三区蜜臀| 国产乱码字幕精品高清av| 国产亚洲污的网站| 97久久精品人人爽人人爽蜜臀| 亚洲欧美韩国综合色| 欧美在线一二三四区| 亚洲电影视频在线| 欧美一二三四区在线| 捆绑调教美女网站视频一区| 久久嫩草精品久久久精品| 成人性视频免费网站| 亚洲色图欧美在线| 欧美蜜桃一区二区三区| 麻豆91免费看| 国产午夜精品久久久久久免费视| av在线综合网| 亚洲一二三区在线观看| 欧美一区二区视频在线观看| 狠狠色综合日日| 国产精品久久久久久亚洲伦| 色就色 综合激情| 麻豆成人久久精品二区三区红 | 亚洲免费在线观看视频| 欧美日韩视频不卡| 激情成人午夜视频| 亚洲裸体xxx| 欧美一区二区三区视频在线观看| 国内精品写真在线观看| 中文字幕在线一区二区三区| 欧美艳星brazzers| 国内精品国产三级国产a久久| 国产麻豆91精品| 亚洲人成网站影音先锋播放| 在线不卡a资源高清| 国产成人免费在线观看| 亚洲大片在线观看| 国产精品入口麻豆九色| 欧美人xxxx| av男人天堂一区| 蜜桃视频第一区免费观看| 国产精品国模大尺度视频| 日韩一区二区精品葵司在线 | 91福利社在线观看| 黑人巨大精品欧美一区| 一个色妞综合视频在线观看| 欧美电视剧在线看免费| 色88888久久久久久影院按摩| 精品一区二区三区在线观看 | 国产亚洲自拍一区| 欧美日韩国产一级片| 福利91精品一区二区三区| 日韩精品电影一区亚洲| 亚洲欧美偷拍三级| 久久嫩草精品久久久久| 91麻豆精品国产无毒不卡在线观看| 99视频一区二区| 国产精品资源在线看|