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

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

?? jcf-path.c

?? gcc-2.95.3 Linux下最常用的C編譯器
?? C
字號(hào):
/* Handle CLASSPATH, -classpath, and path searching.   Copyright (C) 1998, 1999  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, 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 GNU CC; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  Java and all Java-based marks are trademarks or registered trademarksof Sun Microsystems, Inc. in the United States and other countries.The Free Software Foundation is independent of Sun Microsystems, Inc.  *//* Written by Tom Tromey <tromey@cygnus.com>, October 1998.  */#include "config.h"#include "system.h"#include "jcf.h"/* Some boilerplate that really belongs in a header.  */#ifndef GET_ENV_PATH_LIST#define GET_ENV_PATH_LIST(VAR,NAME)	do { (VAR) = getenv (NAME); } while (0)#endif/* By default, colon separates directories in a path.  */#ifndef PATH_SEPARATOR#define PATH_SEPARATOR ':'#endif#ifndef DIR_SEPARATOR#define DIR_SEPARATOR '/'#endif/* Possible flag values.  */#define FLAG_SYSTEM 1#define FLAG_ZIP    2/* We keep linked lists of directory names.  A ``directory'' can be   either an ordinary directory or a .zip file.  */struct entry{  char *name;  int flags;  struct entry *next;};/* We support several different ways to set the class path.   built-in system directory (only libgcj.zip)   CLASSPATH environment variable   -CLASSPATH overrides CLASSPATH   -classpath option - overrides CLASSPATH, -CLASSPATH, and built-in   -I prepends path to list   We implement this by keeping several path lists, and then simply   ignoring the ones which are not relevant.  *//* This holds all the -I directories.  */static struct entry *include_dirs;/* This holds the CLASSPATH environment variable.  */static struct entry *classpath_env;/* This holds the -CLASSPATH command-line option.  */static struct entry *classpath_u;/* This holds the -classpath command-line option.  */static struct entry *classpath_l;/* This holds the default directories.  Some of these will have the   "system" flag set.  */static struct entry *sys_dirs;/* This is the sealed list.  It is just a combination of other lists.  */static struct entry *sealed;/* We keep track of the longest path we've seen.  */static int longest_path = 0;static voidfree_entry (entp)     struct entry **entp;{  struct entry *e, *n;  for (e = *entp; e; e = n)    {      n = e->next;      free (e->name);      free (e);    }  *entp = NULL;}static voidappend_entry (entp, ent)     struct entry **entp;     struct entry *ent;{  /* It doesn't matter if this is slow, since it is run only at     startup, and then infrequently.  */  struct entry *e;  /* Find end of list.  */  for (e = *entp; e && e->next; e = e->next)    ;  if (e)    e->next = ent;  else    *entp = ent;}static voidadd_entry (entp, filename, is_system)     struct entry **entp;     char *filename;     int is_system;{  int len;  struct entry *n;  n = (struct entry *) ALLOC (sizeof (struct entry));  n->flags = is_system ? FLAG_SYSTEM : 0;  n->next = NULL;  len = strlen (filename);  if (len > 4 && (strcmp (filename + len - 4, ".zip") == 0		  || strcmp (filename + len - 4, ".jar") == 0))    {      n->flags |= FLAG_ZIP;      /* If the user uses -classpath then he'll have to include	 libgcj.zip in the value.  We check for this in a simplistic	 way.  Symlinks will fool this test.  This is only used for	 -MM and -MMD, so it probably isn't terribly important.  */      if (! strcmp (filename, LIBGCJ_ZIP_FILE))	n->flags |= FLAG_SYSTEM;    }  /* Note that we add a trailing separator to `.zip' names as well.     This is a little hack that lets the searching code in jcf-io.c     work more easily.  Eww.  */  if (filename[len - 1] != '/' && filename[len - 1] != DIR_SEPARATOR)    {      char *f2 = (char *) alloca (len + 2);      strcpy (f2, filename);      f2[len] = DIR_SEPARATOR;      f2[len + 1] = '\0';      n->name = strdup (f2);      ++len;    }  else    n->name = strdup (filename);  if (len > longest_path)    longest_path = len;  append_entry (entp, n);}static voidadd_path (entp, cp, is_system)     struct entry **entp;     char *cp;     int is_system;{  char *startp, *endp;  if (cp)    {      char *buf = (char *) alloca (strlen (cp) + 3);      startp = endp = cp;      while (1)	{	  if (! *endp || *endp == PATH_SEPARATOR)	    {	      if (endp == startp)		{		  buf[0] = '.';		  buf[1] = DIR_SEPARATOR;		  buf[2] = '\0';		}	      else		{		  strncpy (buf, startp, endp - startp);		  buf[endp - startp] = '\0';		}	      add_entry (entp, buf, is_system);	      if (! *endp)		break;	      ++endp;	      startp = endp;	    }	  else	    ++endp;	}    }}/* Initialize the path module.  */voidjcf_path_init (){  char *cp;  add_entry (&sys_dirs, ".", 0);  add_entry (&sys_dirs, LIBGCJ_ZIP_FILE, 1);  GET_ENV_PATH_LIST (cp, "CLASSPATH");  add_path (&classpath_env, cp, 0);}/* Call this when -classpath is seen on the command line.  */voidjcf_path_classpath_arg (path)     char *path;{  free_entry (&classpath_l);  add_path (&classpath_l, path, 0);}/* Call this when -CLASSPATH is seen on the command line.  */voidjcf_path_CLASSPATH_arg (path)     char *path;{  free_entry (&classpath_u);  add_path (&classpath_u, path, 0);}/* Call this when -I is seen on the command line.  */voidjcf_path_include_arg (path)     char *path;{  add_entry (&include_dirs, path, 0);}/* We `seal' the path by linking everything into one big list.  Then   we provide a way to iterate through the sealed list.  */voidjcf_path_seal (){  int do_system = 1;  struct entry *secondary;  sealed = include_dirs;  include_dirs = NULL;  if (classpath_l)    {      secondary = classpath_l;      classpath_l = NULL;      do_system = 0;    }  else if (classpath_u)    {      secondary = classpath_u;      classpath_u = NULL;    }  else    {      secondary = classpath_env;      classpath_env = NULL;    }  free_entry (&classpath_l);  free_entry (&classpath_u);  free_entry (&classpath_env);  append_entry (&sealed, secondary);  if (do_system)    {      append_entry (&sealed, sys_dirs);      sys_dirs = NULL;    }  else    free_entry (&sys_dirs);}void *jcf_path_start (){  return (void *) sealed;}void *jcf_path_next (x)     void *x;{  struct entry *ent = (struct entry *) x;  return (void *) ent->next;}/* We guarantee that the return path will either be a zip file, or it   will end with a directory separator.  */char *jcf_path_name (x)     void *x;{  struct entry *ent = (struct entry *) x;  return ent->name;}intjcf_path_is_zipfile (x)     void *x;{  struct entry *ent = (struct entry *) x;  return (ent->flags & FLAG_ZIP);}intjcf_path_is_system (x)     void *x;{  struct entry *ent = (struct entry *) x;  return (ent->flags & FLAG_SYSTEM);}intjcf_path_max_len (){  return longest_path;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产资源精品在线观看| 一区二区理论电影在线观看| 玖玖九九国产精品| 日韩欧美一级特黄在线播放| 国产在线视频一区二区| 久久久国产精品麻豆| 成人免费毛片嘿嘿连载视频| 亚洲三级久久久| 欧美日本一区二区在线观看| 老司机精品视频导航| 国产欧美一区二区三区鸳鸯浴| 99精品在线免费| 亚洲综合一区在线| 欧美电视剧在线观看完整版| 成人一二三区视频| 亚洲国产成人av网| 欧美大胆一级视频| 99热国产精品| 日本成人超碰在线观看| 国产日韩欧美综合在线| 欧美视频一区在线| 国产在线观看一区二区| 亚洲人妖av一区二区| 欧美一级高清片| 成人av在线观| 美女网站色91| 亚洲乱码中文字幕综合| 欧美成人欧美edvon| 97精品国产露脸对白| 水野朝阳av一区二区三区| 中文字幕免费观看一区| 欧美色综合天天久久综合精品| 国产一区三区三区| 亚洲成人精品一区二区| 中文字幕电影一区| 7777精品伊人久久久大香线蕉最新版| 国产91精品一区二区| 婷婷久久综合九色综合伊人色| 欧美韩日一区二区三区| 在线成人免费视频| 一本色道久久加勒比精品| 激情久久五月天| 亚洲va欧美va人人爽| 中文字幕亚洲欧美在线不卡| 欧美大片在线观看一区| 欧美自拍丝袜亚洲| 成人国产精品免费观看| 久久97超碰色| 日本不卡高清视频| 亚洲一区二区三区四区在线观看 | 黑人巨大精品欧美黑白配亚洲| 亚洲美女区一区| 国产日韩欧美综合在线| 日韩欧美黄色影院| 5月丁香婷婷综合| 色一区在线观看| 成人av集中营| 国产福利一区二区| 韩国精品免费视频| 免费在线观看精品| 视频在线观看一区二区三区| 一个色妞综合视频在线观看| 亚洲视频在线一区二区| 国产精品久99| 国产精品国产三级国产a| 亚洲影院理伦片| 中文字幕一区二区三区色视频 | 久久精品亚洲精品国产欧美 | 精品成人私密视频| 91精品国产91热久久久做人人| 欧美亚洲国产一区在线观看网站| 91麻豆国产福利在线观看| 成人污污视频在线观看| 床上的激情91.| 成人国产视频在线观看| aaa国产一区| 91蜜桃免费观看视频| av毛片久久久久**hd| 成a人片国产精品| 91丨九色丨尤物| 色猫猫国产区一区二在线视频| 91丨九色丨蝌蚪丨老版| 欧美中文字幕久久| 欧美日韩视频在线一区二区| 欧美裸体一区二区三区| 日韩一卡二卡三卡四卡| 欧美va亚洲va在线观看蝴蝶网| 精品国产一区二区三区忘忧草| 欧美精品一区二区三区视频| 国产视频不卡一区| 亚洲欧洲成人精品av97| 亚洲综合偷拍欧美一区色| 午夜精品免费在线| 极品尤物av久久免费看| 成人手机电影网| 91久久精品一区二区三区| 欧美精品成人一区二区三区四区| 日韩亚洲欧美在线| 日本一区二区三区视频视频| 亚洲欧美另类综合偷拍| 日韩有码一区二区三区| 国产麻豆成人精品| 色综合色狠狠天天综合色| 欧美日本在线播放| 国产无人区一区二区三区| 亚洲你懂的在线视频| 日韩av不卡一区二区| 国产成人在线免费| 欧美日韩一区二区三区在线看| 欧美sm极限捆绑bd| 中文字幕一区二区5566日韩| 亚洲国产你懂的| 国产福利精品一区| 在线精品国精品国产尤物884a| 日韩一区二区三区免费看 | 亚洲精品中文字幕在线观看| 午夜精品久久久| 成人美女视频在线看| 欧美日韩亚洲综合| 日本一区二区高清| 日日摸夜夜添夜夜添精品视频| 国产精品18久久久久久vr| 在线观看视频一区二区| 久久亚洲一区二区三区明星换脸| 亚洲乱码国产乱码精品精可以看 | 一区二区免费看| 国产精品影视天天线| 欧美日韩视频专区在线播放| 中文字幕国产一区| 日韩国产高清影视| 91免费观看视频| 国产视频亚洲色图| 免费成人av资源网| 在线观看不卡视频| 日本一区二区免费在线观看视频| 日本亚洲最大的色成网站www| 成人h动漫精品一区二区| 日韩美女视频一区二区在线观看| 一区二区在线电影| 福利一区二区在线观看| 欧美本精品男人aⅴ天堂| 亚洲高清视频的网址| 99久精品国产| 国产精品免费看片| 国产精品亚洲午夜一区二区三区 | 精品一区二区影视| 欧美日韩精品一区二区三区蜜桃| 国产精品久久三区| 粉嫩在线一区二区三区视频| 欧美成人a视频| 另类小说图片综合网| 欧美人狂配大交3d怪物一区| 亚洲免费毛片网站| 99综合影院在线| 国产精品乱人伦中文| 国产成人精品影院| 国产欧美一区二区精品性色超碰| 久久99精品国产.久久久久久 | 亚洲啪啪综合av一区二区三区| 国产乱码精品1区2区3区| 日韩精品在线一区| 免费在线欧美视频| 日韩一级在线观看| 麻豆精品在线看| 欧美成人精品高清在线播放| 久久成人18免费观看| 欧美成人一区二区| 国产专区欧美精品| 26uuu国产电影一区二区| 国产真实乱对白精彩久久| 精品国产凹凸成av人网站| 美女尤物国产一区| 久久久天堂av| 成人午夜视频免费看| 国产精品国产三级国产aⅴ中文| av色综合久久天堂av综合| 亚洲精品视频在线看| 欧美在线观看一区二区| 一区二区三区中文字幕精品精品| 欧美午夜影院一区| 日精品一区二区三区| 精品久久久久久久久久久久久久久| 久久91精品国产91久久小草| 久久先锋影音av| 99天天综合性| 性感美女极品91精品| 日韩欧美久久久| 国产99久久久国产精品| 亚洲免费视频成人| 欧美精品久久久久久久多人混战 | 欧美日韩成人综合| 美女免费视频一区| 欧美国产精品v| 欧美在线不卡视频| 久久精品久久99精品久久| 国产欧美一区二区精品仙草咪| 色国产综合视频| 久久99精品久久久| 亚洲免费观看高清完整 | 26uuu国产电影一区二区|