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

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

?? tclcmdmz.c

?? tcl源碼詳細資料
?? C
?? 第 1 頁 / 共 3 頁
字號:
 * *	This procedure is invoked to process the "return" 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_ReturnCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    if (argc > 2) {	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" ?value?\"", (char *) NULL);	return TCL_ERROR;    }    if (argc == 2) {	Tcl_SetResult(interp, argv[1], TCL_VOLATILE);    }    return TCL_RETURN;}/* *---------------------------------------------------------------------- * * Tcl_ScanCmd -- * *	This procedure is invoked to process the "scan" 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_ScanCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    int arg1Length;			/* Number of bytes in argument to be					 * scanned.  This gives an upper limit					 * on string field sizes. */#   define MAX_FIELDS 20    typedef struct {	char fmt;			/* Format for field. */	int size;			/* How many bytes to allow for					 * field. */	char *location;			/* Where field will be stored. */    } Field;    Field fields[MAX_FIELDS];		/* Info about all the fields in the					 * format string. */    register Field *curField;    int numFields = 0;			/* Number of fields actually					 * specified. */    int suppress;			/* Current field is assignment-					 * suppressed. */    int totalSize = 0;			/* Number of bytes needed to store					 * all results combined. */    char *results;			/* Where scanned output goes.  */    int numScanned;			/* sscanf's result. */    register char *fmt;    int i, widthSpecified;    if (argc < 3) {	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" string format ?varName varName ...?\"", (char *) NULL);	return TCL_ERROR;    }    /*     * This procedure operates in four stages:     * 1. Scan the format string, collecting information about each field.     * 2. Allocate an array to hold all of the scanned fields.     * 3. Call sscanf to do all the dirty work, and have it store the     *    parsed fields in the array.     * 4. Pick off the fields from the array and assign them to variables.     */    arg1Length = (strlen(argv[1]) + 4) & ~03;    for (fmt = argv[2]; *fmt != 0; fmt++) {	if (*fmt != '%') {	    continue;	}	fmt++;	if (*fmt == '*') {	    suppress = 1;	    fmt++;	} else {	    suppress = 0;	}	widthSpecified = 0;	while (isdigit(*fmt)) {	    widthSpecified = 1;	    fmt++;	}	if (suppress) {	    continue;	}	if (numFields == MAX_FIELDS) {	    interp->result = "too many fields to scan";	    return TCL_ERROR;	}	curField = &fields[numFields];	numFields++;	switch (*fmt) {	    case 'D':	    case 'O':	    case 'X':	    case 'd':	    case 'o':	    case 'x':		curField->fmt = 'd';		curField->size = sizeof(int);		break;	    case 's':		curField->fmt = 's';		curField->size = arg1Length;		break;	    case 'c':                if (widthSpecified) {                    interp->result =                          "field width may not be specified in %c conversion";                    return TCL_ERROR;                }		curField->fmt = 'c';		curField->size = sizeof(int);		break;	    case 'E':	    case 'F':		curField->fmt = 'F';		curField->size = sizeof(double);		break;	    case 'e':	    case 'f':		curField->fmt = 'f';		curField->size = sizeof(float);		break;	    case '[':		curField->fmt = 's';		curField->size = arg1Length;		do {		    fmt++;		} while (*fmt != ']');		break;	    default:		sprintf(interp->result, "bad scan conversion character \"%c\"",			*fmt);		return TCL_ERROR;	}	totalSize += curField->size;    }    if (numFields != (argc-3)) {	interp->result =		"different numbers of variable names and field specifiers";	return TCL_ERROR;    }    /*     * Step 2:     */    results = (char *) ckalloc((unsigned) totalSize);    for (i = 0, totalSize = 0, curField = fields;	    i < numFields; i++, curField++) {	curField->location = results + totalSize;	totalSize += curField->size;    }    /*     * Fill in the remaining fields with NULL;  the only purpose of     * this is to keep some memory analyzers, like Purify, from     * complaining.     */    for ( ; i < MAX_FIELDS; i++, curField++) {	curField->location = NULL;    }    /*     * Step 3:     */    numScanned = sscanf(argv[1], argv[2],	    fields[0].location, fields[1].location, fields[2].location,	    fields[3].location, fields[4].location, fields[5].location,	    fields[6].location, fields[7].location, fields[8].location,	    fields[9].location, fields[10].location, fields[11].location,	    fields[12].location, fields[13].location, fields[14].location,	    fields[15].location, fields[16].location, fields[17].location,	    fields[18].location, fields[19].location);    /*     * Step 4:     */    if (numScanned < numFields) {	numFields = numScanned;    }    for (i = 0, curField = fields; i < numFields; i++, curField++) {	switch (curField->fmt) {	    char string[120];	    case 'd':		sprintf(string, "%d", *((int *) curField->location));		if (Tcl_SetVar(interp, argv[i+3], string, 0) == NULL) {		    storeError:		    Tcl_AppendResult(interp,			    "couldn't set variable \"", argv[i+3], "\"",			    (char *) NULL);		    ckfree((char *) results);		    return TCL_ERROR;		}		break;	    case 'c':		sprintf(string, "%d", *((char *) curField->location) & 0xff);		if (Tcl_SetVar(interp, argv[i+3], string, 0) == NULL) {		    goto storeError;		}		break;	    case 's':		if (Tcl_SetVar(interp, argv[i+3], curField->location, 0)			== NULL) {		    goto storeError;		}		break;	    case 'F':		sprintf(string, "%g", *((double *) curField->location));		if (Tcl_SetVar(interp, argv[i+3], string, 0) == NULL) {		    goto storeError;		}		break;	    case 'f':		sprintf(string, "%g", *((float *) curField->location));		if (Tcl_SetVar(interp, argv[i+3], string, 0) == NULL) {		    goto storeError;		}		break;	}    }    ckfree(results);    sprintf(interp->result, "%d", numScanned);    return TCL_OK;}/* *---------------------------------------------------------------------- * * Tcl_SplitCmd -- * *	This procedure is invoked to process the "split" 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_SplitCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    char *splitChars;    register char *p, *p2;    char *elementStart;    if (argc == 2) {	splitChars = " \n\t\r";    } else if (argc == 3) {	splitChars = argv[2];    } else {	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" string ?splitChars?\"", (char *) NULL);	return TCL_ERROR;    }    /*     * Handle the special case of splitting on every character.     */    if (*splitChars == 0) {	char string[2];	string[1] = 0;	for (p = argv[1]; *p != 0; p++) {	    string[0] = *p;	    Tcl_AppendElement(interp, string, 0);	}	return TCL_OK;    }    /*     * Normal case: split on any of a given set of characters.     * Discard instances of the split characters.     */    for (p = elementStart = argv[1]; *p != 0; p++) {	char c = *p;	for (p2 = splitChars; *p2 != 0; p2++) {	    if (*p2 == c) {		*p = 0;		Tcl_AppendElement(interp, elementStart, 0);		*p = c;		elementStart = p+1;		break;	    }	}    }    if (p != argv[1]) {	Tcl_AppendElement(interp, elementStart, 0);    }    return TCL_OK;}/* *---------------------------------------------------------------------- * * Tcl_StringCmd -- * *	This procedure is invoked to process the "string" 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_StringCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    int length;    register char *p, c;    int match;    int first;    int left = 0, right = 0;    if (argc < 2) {	Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		" option arg ?arg ...?\"", (char *) NULL);	return TCL_ERROR;    }    c = argv[1][0];    length = strlen(argv[1]);    if ((c == 'c') && (strncmp(argv[1], "compare", length) == 0)) {	if (argc != 4) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " compare string1 string2\"", (char *) NULL);	    return TCL_ERROR;	}	match = strcmp(argv[2], argv[3]);	if (match > 0) {	    interp->result = "1";	} else if (match < 0) {	    interp->result = "-1";	} else {	    interp->result = "0";	}	return TCL_OK;    } else if ((c == 'f') && (strncmp(argv[1], "first", length) == 0)) {	if (argc != 4) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " first string1 string2\"", (char *) NULL);	    return TCL_ERROR;	}	first = 1;	firstLast:	match = -1;	c = *argv[2];	length = strlen(argv[2]);	for (p = argv[3]; *p != 0; p++) {	    if (*p != c) {		continue;	    }	    if (strncmp(argv[2], p, length) == 0) {		match = p-argv[3];		if (first) {		    break;		}	    }	}	sprintf(interp->result, "%d", match);	return TCL_OK;    } else if ((c == 'i') && (strncmp(argv[1], "index", length) == 0)) {	long index;	if (argc != 4) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " index string charIndex\"", (char *) NULL);	    return TCL_ERROR;	}	if (Tcl_GetInt(interp, argv[3], &index) != TCL_OK) {	    return TCL_ERROR;	}	if ((index >= 0) && (index < strlen(argv[2]))) {	    interp->result[0] = argv[2][index];	    interp->result[1] = 0;	}	return TCL_OK;    } else if ((c == 'l') && (strncmp(argv[1], "last", length) == 0)	    && (length >= 2)) {	if (argc != 4) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " last string1 string2\"", (char *) NULL);	    return TCL_ERROR;	}	first = 0;	goto firstLast;    } else if ((c == 'l') && (strncmp(argv[1], "length", length) == 0)	    && (length >= 2)) {	if (argc != 3) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " length string\"", (char *) NULL);	    return TCL_ERROR;	}	sprintf(interp->result, "%d", strlen(argv[2]));	return TCL_OK;    } else if ((c == 'm') && (strncmp(argv[1], "match", length) == 0)) {	if (argc != 4) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " match pattern string\"", (char *) NULL);	    return TCL_ERROR;	}	if (Tcl_StringMatch(argv[3], argv[2]) != 0) {	    interp->result = "1";	} else {	    interp->result = "0";	}	return TCL_OK;    } else if ((c == 'r') && (strncmp(argv[1], "range", length) == 0)) {	long first, last;	int stringLength;	if (argc != 5) {	    Tcl_AppendResult(interp, "wrong # args: should be \"", argv[0],		    " range string first last\"", (char *) NULL);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品久久99久久久久| 色综合久久久久综合| 春色校园综合激情亚洲| 欧美嫩在线观看| 亚洲欧洲一区二区在线播放| 久久www免费人成看片高清| 色综合色综合色综合色综合色综合| 91精品国产综合久久久蜜臀粉嫩| 国产精品沙发午睡系列990531| 一区二区三区在线观看动漫| 高清不卡一区二区在线| 精品久久久久一区二区国产| 一区二区三区在线视频观看58| 国产麻豆精品在线| 日韩一区二区视频在线观看| 亚洲精品国产无套在线观| 高清在线观看日韩| 久久久91精品国产一区二区精品 | 日韩亚洲欧美在线| 亚洲伦理在线免费看| 成人18视频在线播放| 国产亚洲va综合人人澡精品| 激情综合色丁香一区二区| 91精品国产综合久久精品麻豆 | 日本不卡123| 欧美日韩免费视频| 亚洲地区一二三色| 精品视频在线免费观看| 一区二区欧美视频| 欧美羞羞免费网站| 午夜一区二区三区在线观看| 欧美日韩另类一区| 日韩av电影一区| 日韩一级大片在线| 激情国产一区二区| 日本一区二区三区视频视频| 国产+成+人+亚洲欧洲自线| 国产亚洲欧美在线| 成人丝袜视频网| 亚洲色图制服诱惑 | 亚洲国产成人91porn| 欧美日韩中文国产| 日产欧产美韩系列久久99| 欧美mv和日韩mv国产网站| 国产精品一区二区无线| 国产精品毛片大码女人| 色婷婷激情综合| 天堂一区二区在线免费观看| 日韩欧美卡一卡二| 国产精品影视天天线| 亚洲日本va午夜在线电影| 欧美午夜免费电影| 乱一区二区av| 亚洲国产高清在线观看视频| 91麻豆精品视频| 日本视频中文字幕一区二区三区| 久久综合五月天婷婷伊人| 99国产精品国产精品毛片| 午夜视频在线观看一区二区| 精品国产亚洲在线| 99久久精品情趣| 日本不卡高清视频| 综合电影一区二区三区 | 欧美一区二区免费| 国产激情偷乱视频一区二区三区| 亚洲欧美二区三区| 日韩欧美综合一区| 99久久精品国产一区| 亚洲成a人片在线观看中文| 欧美精品一区二区精品网| 91美女精品福利| 韩国精品免费视频| 亚洲午夜电影在线观看| 国产三级精品三级| 欧美人与性动xxxx| 成人ar影院免费观看视频| 日韩高清不卡一区二区| 亚洲欧美日韩一区| 久久久亚洲精华液精华液精华液| 欧美亚洲免费在线一区| 国产成人av电影| 免费观看在线色综合| 一区二区三区高清不卡| 日本一区二区三区国色天香| 欧美日韩国产综合草草| 99久久精品免费精品国产| 国产自产视频一区二区三区| 亚洲国产cao| 亚洲另类色综合网站| 国产精品网站在线观看| 欧美大片在线观看| 欧美日韩精品一区二区三区四区| 成av人片一区二区| 国产精品系列在线观看| 蜜臀99久久精品久久久久久软件| 一区二区三区四区不卡在线| 国产欧美日韩精品a在线观看| 日韩一区二区电影在线| 欧美日韩国产一区二区三区地区| 99视频精品全部免费在线| 国产福利一区二区三区视频| 激情综合网av| 久久国产精品99久久久久久老狼| 亚洲电影你懂得| 一区二区三区在线看| 亚洲美腿欧美偷拍| 亚洲人成伊人成综合网小说| 成人欧美一区二区三区在线播放| 国产网站一区二区三区| 久久综合色之久久综合| 91麻豆国产在线观看| 一本到不卡免费一区二区| 91啪亚洲精品| 色天使久久综合网天天| 欧美自拍丝袜亚洲| 欧美日韩在线直播| 91精品免费在线| 精品国产乱码久久久久久1区2区| 欧美一级淫片007| 欧美日韩中文字幕一区| 欧美另类videos死尸| 日韩欧美在线观看一区二区三区| 日韩欧美国产一区在线观看| 精品毛片乱码1区2区3区 | 欧美一级夜夜爽| 欧美成人vps| 久久久久久久性| 国产精品成人网| 一区二区免费在线播放| 婷婷中文字幕综合| 狠狠色狠狠色综合系列| 国产传媒日韩欧美成人| av在线不卡免费看| 精品视频在线视频| 日韩欧美国产三级电影视频| 久久久亚洲精品一区二区三区 | 调教+趴+乳夹+国产+精品| 丝袜亚洲精品中文字幕一区| 日韩不卡一二三区| 国产传媒日韩欧美成人| 色综合久久九月婷婷色综合| 欧美中文字幕一区二区三区亚洲| 欧美精品v国产精品v日韩精品| 日韩视频免费观看高清在线视频| 久久久久久亚洲综合影院红桃| 国产精品三级av在线播放| 亚洲成人高清在线| 国内精品久久久久影院一蜜桃| av综合在线播放| 欧美一区二区三区四区五区| 久久久久久黄色| 洋洋成人永久网站入口| 久久精品国产久精国产| av中文字幕在线不卡| 日韩视频一区二区在线观看| 国产精品传媒视频| 日本aⅴ精品一区二区三区| eeuss影院一区二区三区| 91精品国产综合久久久久 | 国产午夜亚洲精品午夜鲁丝片| 亚洲柠檬福利资源导航| 精东粉嫩av免费一区二区三区| 91在线精品一区二区| 精品久久久久av影院| 亚洲欧美日韩在线不卡| 国产一区视频导航| 欧美日韩高清一区二区三区| 欧美国产日韩a欧美在线观看 | 国产91丝袜在线播放九色| 欧美日韩美少妇| 亚洲免费av观看| 国产99久久久国产精品| 日韩欧美中文字幕精品| 亚洲一区在线观看视频| 成人av免费在线观看| 26uuu精品一区二区| 婷婷国产v国产偷v亚洲高清| 99久久精品国产网站| 久久综合久久鬼色| 免费久久精品视频| 欧美日韩国产大片| 亚洲电影在线免费观看| 91色九色蝌蚪| 中文字幕亚洲欧美在线不卡| 国内精品视频666| 欧美v日韩v国产v| 蜜臀久久99精品久久久久久9| 精品视频一区二区三区免费| 亚洲精品精品亚洲| av在线这里只有精品| 欧美国产综合一区二区| 国产suv一区二区三区88区| 久久伊99综合婷婷久久伊| 久久国产精品露脸对白| 日韩精品资源二区在线| 免费观看日韩电影| 日韩午夜在线播放| 久久精品国产在热久久| 欧美变态tickle挠乳网站| 精品一区二区三区免费观看|