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

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

?? tclglob.c

?? tcl源碼詳細資料
?? C
?? 第 1 頁 / 共 2 頁
字號:
	    Tcl_ResetResult(interp);	    Tcl_AppendResult(interp, "couldn't read directory \"",		    dirName, "\": ", Tcl_UnixError(interp), (char *) NULL);	    return TCL_ERROR;	}	l1 = strlen(dir);	l2 = (p - rem);	if (l2 < STATIC_SIZE) {	    pattern = static2;	} else {	    pattern = (char *) ckalloc((unsigned) (l2+1));	}	strncpy(pattern, rem, l2);	pattern[l2] = '\0';	result = TCL_OK;	while (1) {	    entryPtr = yaffs_readdir(d);	    if (entryPtr == NULL) {		break;	    }	    /*	     * Don't match names starting with "." unless the "." is	     * present in the pattern.	     */	    if ((*entryPtr->d_name == '.') && (*pattern != '.')) {		continue;	    }	    if (Tcl_StringMatch(entryPtr->d_name, pattern)) {		int nameLength = strlen(entryPtr->d_name);		if (*p == 0) {		    AppendResult(interp, dir, separator, entryPtr->d_name,			    nameLength);		} else {		    if ((l1+nameLength+2) <= STATIC_SIZE) {			newDir = static1;		    } else {			newDir = (char *) ckalloc((unsigned) (l1+nameLength+2));		    }		    sprintf(newDir, "%s%s%s", dir, separator, entryPtr->d_name);		    result = DoGlob(interp, newDir, p+1);		    if (newDir != static1) {			ckfree(newDir);		    }		    if (result != TCL_OK) {			break;		    }		}	    }	}	yaffs_closedir(d);	if (pattern != static2) {	    ckfree(pattern);	}	return result;    }    /*     * This is the simplest case:  just another path element.  Move     * it to the dir side and recurse (or just add the name to the     * list, if we're at the end of the path).     */    if (*p == 0) {	AppendResult(interp, dir, separator, rem, p-rem);    } else {	int l1, l2;	char *newDir;	char static1[STATIC_SIZE];	l1 = strlen(dir);	l2 = l1 + (p - rem) + 2;	if (l2 <= STATIC_SIZE) {	    newDir = static1;	} else {	    newDir = (char *) ckalloc((unsigned) l2);	}	sprintf(newDir, "%s%s%.*s", dir, separator, p-rem, rem);	result = DoGlob(interp, newDir, p+1);	if (newDir != static1) {	    ckfree(newDir);	}	if (result != TCL_OK) {	    return TCL_ERROR;	}    }    return TCL_OK;}/* *---------------------------------------------------------------------- * * Tcl_TildeSubst -- * *	Given a name starting with a tilde, produce a name where *	the tilde and following characters have been replaced by *	the home directory location for the named user. * * Results: *	The result is a pointer to a static string containing *	the new name.  This name will only persist until the next *	call to Tcl_TildeSubst;  save it if you care about it for *	the long term.  If there was an error in processing the *	tilde, then an error message is left in interp->result *	and the return value is NULL. * * Side effects: *	None that the caller needs to worry about. * *---------------------------------------------------------------------- */char *Tcl_TildeSubst(interp, name)    Tcl_Interp *interp;		/* Interpreter in which to store error				 * message (if necessary). */    char *name;			/* File name, which may begin with "~/"				 * (to indicate current user's home directory)				 * or "~<user>/" (to indicate any user's				 * home directory). */{#define STATIC_BUF_SIZE 50    static char staticBuf[STATIC_BUF_SIZE];    static int curSize = STATIC_BUF_SIZE;    static char *curBuf = staticBuf;    char *dir, user[32], root[256];    int length;    register char *p;    if (name[0] != '~') {	return name;    }    /*     * First, find the directory name corresponding to the tilde entry.     */    if ((name[1] == '/') || (name[1] == '\0')) {	memset(root, 0, sizeof(root));	if (cli_ctrl(GET_ROOT_PATH, root) < 0) {	    Tcl_ResetResult(interp);	    Tcl_AppendResult(interp, "couldn't find HOME environment ",		    "variable to expand \"", name, "\"", (char *) NULL);	    return NULL;	}	dir = root;	p = name+1;    } else {	for (p = &name[1]; (*p != 0) && (*p != '/'); p++) {	    /* Null body;  just find end of name. */	}	length = p-&name[1];	if (length >= curSize) {	    length = curSize-1;	}	memcpy((VOID *) curBuf, (VOID *) (name+1), length);	curBuf[length] = '\0';	memset(user, 0, sizeof(user));	if (cli_ctrl(GET_USER_NAME, user) < 0) {	    Tcl_ResetResult(interp);	    Tcl_AppendResult(interp, "user \"", curBuf,		    "\" doesn't exist", (char *) NULL);	    return NULL;	}	if ((strlen(user) == 0) || (strcmp(user, curBuf) != 0)) {	    Tcl_ResetResult(interp);	    Tcl_AppendResult(interp, "user \"", curBuf,		    "\" doesn't exist", (char *) NULL);	    return NULL;	}	memset(root, 0, sizeof(root));	if (cli_ctrl(GET_ROOT_PATH, root) < 0) {	    Tcl_ResetResult(interp);	    Tcl_AppendResult(interp, "couldn't find HOME environment ",		    "variable to expand \"", name, "\"", (char *) NULL);	    return NULL;	}	dir = root;    }    /*     * Grow the buffer if necessary to make enough space for the     * full file name.     */    length = strlen(dir) + strlen(p);    if (length >= curSize) {	if (curBuf != staticBuf) {	    ckfree(curBuf);	}	curSize = length + 1;	curBuf = (char *) ckalloc((unsigned) curSize);    }    /*     * Finally, concatenate the directory name with the remainder     * of the path in the buffer.     */    strcpy(curBuf, dir);    strcat(curBuf, p);    return curBuf;}/* *---------------------------------------------------------------------- * * Tcl_GlobCmd -- * *	This procedure is invoked to process the "glob" Tcl command. *	See the user documentation for details on what it does. * * Results: *	A standard Tcl result. * * Side effects: *	See the user documentation. * *---------------------------------------------------------------------- */	/* ARGSUSED */intTcl_GlobCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    int i, result, noComplain;    if (argc < 2) {	notEnoughArgs:	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" ?-nocomplain? name ?name ...?\"", (char *) NULL);	return TCL_ERROR;    }    noComplain = 0;    if ((argv[1][0] == '-') && (strcmp(argv[1], "-nocomplain") == 0)) {	if (argc < 3) {	    goto notEnoughArgs;	}	noComplain = 1;    }    for (i = 1 + noComplain; i < argc; i++) {	char *thisName;	/*	 * Do special checks for names starting at the root and for	 * names beginning with ~.  Then let DoGlob do the rest.	 */	thisName = argv[i];	if (*thisName == '~') {	    thisName = Tcl_TildeSubst(interp, thisName);	    if (thisName == NULL) {		return TCL_ERROR;	    }	}	if (*thisName == '/') {	    result = DoGlob(interp, "/", thisName+1);	} else {	    result = DoGlob(interp, "", thisName);	}	if (result != TCL_OK) {	    return result;	}    }    if ((*interp->result == 0) && !noComplain) {	char *sep = "";	Tcl_AppendResult(interp, "no files matched glob pattern",		(argc == 2) ? " \"" : "s \"", (char *) NULL);	for (i = 1; i < argc; i++) {	    Tcl_AppendResult(interp, sep, argv[i], (char *) NULL);	    sep = " ";	}	Tcl_AppendResult(interp, "\"", (char *) NULL);	return TCL_ERROR;    }    return TCL_OK;}#elsestatic const char file_name[] = "tclGlob.c";#endif /* EXCLUDE_TCL */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线不卡网| 久久成人久久爱| 蜜桃视频一区二区三区| 国产激情一区二区三区| 91在线小视频| 欧美日本在线一区| 国产日韩视频一区二区三区| 亚洲最大色网站| 精品亚洲国产成人av制服丝袜| 国产白丝网站精品污在线入口| 色狠狠综合天天综合综合| 日韩一卡二卡三卡四卡| 中文字幕不卡三区| 天天综合日日夜夜精品| 丁香激情综合五月| 欧美精品亚洲一区二区在线播放| 欧美国产精品一区二区三区| 天堂蜜桃91精品| 顶级嫩模精品视频在线看| 欧美日韩视频在线观看一区二区三区| 精品久久久久久综合日本欧美| 亚洲男人都懂的| 精品一区二区三区视频在线观看| jlzzjlzz亚洲日本少妇| 欧美一区二区三区在线视频| |精品福利一区二区三区| 另类小说综合欧美亚洲| 色综合久久久久久久久| 久久这里都是精品| 日韩精品亚洲专区| www.久久久久久久久| 精品久久一区二区| 午夜久久久久久久久久一区二区| 成人aa视频在线观看| 日韩欧美123| 亚洲国产成人av网| 99久久er热在这里只有精品66| 精品国产乱码久久久久久图片| 亚洲激情图片一区| 成人18精品视频| 欧美精品一区二区三区蜜臀 | 韩国女主播成人在线| 欧美自拍偷拍一区| 中文字幕一区在线观看| 国产成人午夜视频| 久久天天做天天爱综合色| 午夜免费久久看| 欧美亚洲另类激情小说| 亚洲欧美日韩一区二区| 粉嫩av一区二区三区| 久久久不卡网国产精品一区| 日本成人在线看| 欧美妇女性影城| 亚洲国产精品一区二区久久 | 午夜精品在线视频一区| 在线看国产日韩| 亚洲精品国产第一综合99久久| 欧美日韩一区二区三区四区五区 | 成人a免费在线看| 精品成人一区二区三区| 蜜臂av日日欢夜夜爽一区| 777a∨成人精品桃花网| 亚洲成人你懂的| 欧美日韩在线精品一区二区三区激情| 亚洲欧美日韩国产成人精品影院 | 亚洲人成在线播放网站岛国| a4yy欧美一区二区三区| 国产精品久久久久久户外露出| 成人动漫中文字幕| 中文字幕av一区二区三区免费看| 国产精品一区二区你懂的| 亚洲精品一区二区在线观看| 国产一区二区91| 日本一区二区免费在线观看视频| 国产精品538一区二区在线| 国产亚洲欧美色| 国产成人精品影视| 久久久久久99精品| 国产成人午夜99999| 国产亚洲欧美色| 成人综合婷婷国产精品久久蜜臀| 国产精品久久综合| 91丨porny丨最新| 一区二区三区在线观看视频| 在线观看不卡一区| 午夜精品一区二区三区免费视频| 日韩一区二区三区在线| 国产在线播精品第三| 中文字幕成人网| 91啦中文在线观看| 丝袜美腿成人在线| 欧美www视频| 顶级嫩模精品视频在线看| 亚洲欧洲国产日韩| 欧美偷拍一区二区| 奇米888四色在线精品| 久久久不卡影院| 色综合天天综合色综合av | 在线观看一区日韩| 日韩电影免费在线| 精品国产乱码久久久久久免费| 国产成人在线观看| 亚洲三级电影网站| 日韩一级黄色大片| 国产精品66部| 亚洲一区免费视频| 日韩午夜激情电影| 成人免费高清在线观看| 亚洲一二三四区| 精品区一区二区| 99久久伊人网影院| 亚洲va中文字幕| 久久久久99精品一区| 色婷婷国产精品综合在线观看| 秋霞电影网一区二区| 国产婷婷一区二区| 欧美日本一区二区三区四区| 国产一区二区三区香蕉| 亚洲综合网站在线观看| 精品久久久久久久久久久久久久久 | 日本sm残虐另类| 中文字幕欧美日韩一区| 7777精品伊人久久久大香线蕉的 | 亚洲国产精品高清| 欧美剧在线免费观看网站| 国产精品一品视频| 亚洲高清视频在线| 国产精品入口麻豆九色| 91精品久久久久久久91蜜桃| 成人免费不卡视频| 蜜臀久久99精品久久久久久9| 亚洲视频免费看| 精品久久久久久久人人人人传媒| 色综合色狠狠综合色| 国产精品一区二区在线播放| 丝袜国产日韩另类美女| 国产精品黄色在线观看| 精品国产乱码91久久久久久网站| 91免费版在线看| 国产福利精品导航| 免费成人性网站| 亚洲国产成人91porn| 最新日韩在线视频| 久久久久久久国产精品影院| 欧美一级高清大全免费观看| 欧美综合在线视频| 99久久国产免费看| 国产电影一区二区三区| 美美哒免费高清在线观看视频一区二区 | 亚洲国产视频在线| 国产精品久久久久久久久免费相片| 欧美一区二区三区精品| 欧美午夜精品久久久久久孕妇| 丁香啪啪综合成人亚洲小说| 九九视频精品免费| 奇米色一区二区| 日韩精品久久理论片| 一区二区三区在线视频观看58| 中文字幕在线观看一区二区| 26uuu久久综合| 欧美电影免费观看高清完整版在线| 欧美三级在线播放| 一本一道久久a久久精品综合蜜臀| 成人听书哪个软件好| 国产成人啪午夜精品网站男同| 久久er99精品| 久久成人久久爱| 另类专区欧美蜜桃臀第一页| 日本成人在线视频网站| 日韩精品欧美成人高清一区二区| 一区二区不卡在线视频 午夜欧美不卡在| 国产蜜臀av在线一区二区三区| 欧美大黄免费观看| 日韩视频免费观看高清完整版在线观看| 欧美午夜一区二区三区免费大片| 色天使色偷偷av一区二区| 日本高清不卡视频| 色婷婷综合激情| 欧洲一区二区三区免费视频| 91热门视频在线观看| 97精品超碰一区二区三区| www.欧美日韩| 99久久精品一区| 91麻豆高清视频| 91激情在线视频| 欧美午夜影院一区| 欧美日韩精品一区二区三区四区| 欧美系列在线观看| 欧美日韩一区二区三区不卡| 欧美日韩日日骚| 欧美精品久久久久久久多人混战 | 天使萌一区二区三区免费观看| 午夜伊人狠狠久久| 天堂蜜桃91精品| 久久精品国产色蜜蜜麻豆| 老司机精品视频一区二区三区| 国产在线看一区| 高清国产午夜精品久久久久久| 菠萝蜜视频在线观看一区| 91美女福利视频|