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

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

?? batch.c

?? Dos7.01的源代碼
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
		case '\r':			/* carriage return */
		    if(*batch_ptr() != '\n')	/*  skip line feed */
			batch->offset--;	/* if present	   */
		    break;

		case '"':			/* Support Quoted strings   */
		    quote = !quote;		/* in batch files.	    */
		    goto save_it;

		case PIPE_CHAR: 		/* Handle Piped Output	    */
		    if(goto_flg || quote)	/* Ignore this character if */
			goto save_it;		/* we are searching for a   */
						/* Label or Quote.	    */
		    line[i] = '\0';
		    c = *deblank(line);		/* normal case we just      */
		    if ((c !='\0') && (c != ':') && following_command()) {
			c = '\r';		/* simulate a CR and set    */
			pipe_out = YES;		/* Pipe Output flag.	    */
		    } else if (c == ':') {	/* if it's a label */
		    	for(;(c != '\r') && (c != 0x1A); c = *batch_ptr())
			    if (c == 0x1A)	/* eat rest of the line     */
				batch->eof = YES;
			if(*batch_ptr() != '\n')/*  skip line feed */
			    batch->offset--;	/* if present	   */
			c = '\r';
		    } else {			/* if it's a syntax error    */
			swallow_line(line);	/* discard the rest of line  */
			i = 0;			/* start again with new line */
		    }
		    break;

		case '%':	/* The following code checks to see if the   */
				/* string starting at line[env_start-1] is   */
				/* define in the environment if it is then   */
				/* its definition replaces it in the input   */
				/* line. Otherwise no change is made.	     */
		    if(env_start) {
			env_start--;
			line[i] = '\0'; 		/* Terminate Input   */
			strcpy(env_str, line+env_start);/* Copy the String   */
			strupr(env_str);		/* and force string  */
			bp = (BYTE *)heap();		/* into Uppercase    */
			i = env_start;
			env_start = NULL;

			strcat(env_str,"=");
			if (env_scan(env_str,bp)) {
			    if (novell_extension(env_str,bp)) break;
			}
			
			while(*bp && i < MAX_LINE-1)
			    line[i++] = *bp++;
			break;
		    }
		    
		    c = *batch_ptr();
		    if (c == '\r') {
			batch->offset--;	/* rewind to point to '\r'   */
		    	break;			/* then break to normal code */
		    }
		    if (c < '0' || c > '9') {	/* if not a parameter	     */
			if(c != '%')		/* or a '%' character	     */
			    env_start = i+1;	/* save its start address in */
			goto save_it;		/* the string and wait for   */
		    }				/* the terminating '%'	     */
		    
		    n = c - '0' + batch->batshift;     /* get parameter # 0-9 and   */
						/* add in SHIFT offset	     */
		    s = batch->batcmd;
		    while(n-- && strlen(s))	/* skip all other parameters */
			s += strlen(s)+1;	/*   before the one we want  */

		    if((strlen(s) + i) >= MAX_LINE) /* Break if Greater than MAX_LINE*/
			break;
		    strcpy (line + i, s);	/* get the substitution */
		    i += strlen (s);		/* add in its size */
		    break;

		case 0x1a:
	    end_of_file:
		    batch->eof = YES;		/* We have come to the end  */
		    c = '\r';			/* of the batch file so set */
		    break;			/* flag and mark end of line*/

		 default:
	    save_it:
		    if (i < MAX_LINE)
			line[i++] = c;
		    if (dbcs_lead(c)) {
			if ((c = *batch_ptr()) >= ' ' && i < MAX_LINE)
			    line[i++] = c;
		    }
		}
	} while (c != '\r');			/* repeat until CR	   */

	line[i] = '\0'; 			/* Terminate the line and  */

	if(batch->eof)
	    return;

#if 0	/* not DOS compatible */
	if(*batch_ptr() == 0x1A)		/* Check if the next this  */
	    batch->eof = YES;			/* the end of the file if  */
	else					/* YES then set the flag   */
	    batch->offset--;			/* force the character to  */
#endif						/* be re-read next time    */
	return; 				/* return to the caller    */
}

MLOCAL BOOLEAN following_command()
/* return true if we have a possible command on the rest of the line */
{
LONG	old_offset;
BOOLEAN	res = FALSE;
BYTE	*s;

	old_offset = batch->offset;		/* save batch offset */
	while (TRUE) {
	    s = batch_ptr();			/* look ahead at batch file */
	    if (*s == '\r' || *s == 0x1a || (!dbcs_lead(*s) && *s == PIPE_CHAR))
		break;
	    if (!is_blank(s)) {
	        res = TRUE;			/* possible command if we   */
		break;				/* hit non whitespace char  */
	    }
	    if (dbcs_lead(*s)) {
		s = batch_ptr();
		if (*s == '\r' || *s == 0x1a)
		    break;
	    }
	}
	batch->offset = old_offset;		/* restore batch offset */
	return res;
}

MLOCAL VOID swallow_line(s)
BYTE	*s;
/* there is a syntax error on this line - swallow it and say so */
{
BYTE	c;

	prompt();				/* possibly echo the prompt */
	if (echoflg)				/* echo to screen if wanted */
	    printf("%s%c",s,PIPE_CHAR);
	
	do {
	    c = *batch_ptr();
	    if (c ==  0x1a) {
		c = '\r';			/* pretend to be end of line*/
		batch->eof = YES;		/* We have come to the end  */
		break;				/* flag and mark end of line*/
	    }
	    if (echoflg)			/* echo to screen if wanted */
		putc(c);
	} while (c != '\r');
	if (echoflg)
	    putc('\n');

	if (*batch_ptr() != '\n')		/*  skip line feed */
		   batch->offset--;		/* if present	   */

	eprintf(MSG_SYNTAX);			/* report syntax error	*/
}

/*
 *	In order to improve performance of the batch file processing
 *	the Batch file is read in blocks of BATCH_BUF characters.
 *	and the routine BATCH_CHAR then returns a pointer to a character
 *	from the buffer (filling the buffer if required).
 */
MLOCAL BYTE *batch_ptr()
{
	BYTE FAR *buf;
	UWORD bufsize;
	UWORD i;
	
	if(batch->eof)
	    return(batch_eof);
	    
	if (batch->offset < batch_off ||
		batch->offset >= (batch_off + (LONG) (batch_cnt - 1))) {

	    batch_off = batch->offset;
	    ms_x_lseek (batch->stream, batch->offset, 0);
	    batch_cnt = far_read(batch->stream, gp_far_buff, sizeof(batch_buf));
	    if(batch_cnt <= 0) {
		batch->eof = YES;
		return(batch_eof);
	    }
	    for (i=0; i<sizeof(batch_buf); i++) batch_buf[i] = gp_far_buff[i];
	}
	return(&batch_buf[(UWORD) (batch->offset++ - batch_off)]);
}


/*.pa*/
/*
 *	BATCH FILE COMMANDS
 *	===================
 *
 *	The following commands are used almost entirely in BATCH files and
 *	have little or no meaning outside that environment.
 */
GLOBAL VOID CDECL cmd_shift ()
{
	batch->batshift++;		/* Increment the Shift Offset	*/
}


MLOCAL WORD label_ignore_char(s)
BYTE	*s;
{
	if (*s == '=') return(1);
	if (*s == ';') return(1);
	if (*s == ',') return(1);
	if (*s == ' ') return(1);
	return(0);
}

/*
 *	Extract the first a valid characters from the label and then
 *	zero terminate the resulting string.
 */
MLOCAL BYTE * make_label(label)
BYTE *label;  
{
REG BYTE *bp;
UWORD i;

	label = deblank(label);		/* remove leading white space */
	while (label_ignore_char(label))
	    label = skip_char(label);
	
	bp = label;
	
	while (is_filechar(bp))		/* skip over valid chars      */
	    bp = skip_char(bp);

	*bp = '\0';			/* make label zero terminated */
	return label;
}

GLOBAL VOID CDECL cmd_goto (label)		  /* goto label in batch file */
REG BYTE    *label;
{
UWORD	i;
BYTE	*bp, s[MAX_LINE+2]; 		/* Allocate buffer for Batch Input  */
	
	if (!batchflg)			/* if not in batch mode 	    */
	    return;			/* this command is ignored	    */

	if(*label == ':')		/* Ignore any leading ':'	    */
	    label++;
	
	label = make_label(label);	/* Convert to Label Format	    */

	batch->offset = 0L;		/* rewind the batch file	    */
	batch->eof = NO;		/* So it cannot be EOF		    */

	if(!batch_open())		/* Check the Batch file is open     */
	    return;			/* and stop if the function fails.  */

	while(!batch->eof) {		/* while not end of file read next  */
	    batch_read(s, YES); 	/* line and return the next command  */
	    bp = deblank(s);
	    if((*bp == ':') && !strnicmp(make_label(bp+1),label, 8))
		return;
	}

	batch_end();			/* Stop any further batch file	   */
	crlfflg = YES;			/* processing and print the error  */
	eprintf(MSG_LABEL, label);
}


GLOBAL VOID CDECL cmd_gosub (label)	  /* gosub label in batch file */
REG BYTE    *label;
{
UWORD	i;
BYTE	*bp, s[MAX_LINE+2]; 		/* Allocate buffer for Batch Input  */
	
	if (!batchflg)			/* if not in batch mode 	    */
	    return;			/* this command is ignored	    */

	if (batch->ret_offset[3] != 0L) {
		batch_end();
		crlfflg = YES;
		eprintf(MSG_GOSUB);
		return;
	}

	if(*label == ':')		/* Ignore any leading ':'	    */
	    label++;
	
	label = make_label(label);	/* Convert to Label Format	    */

	i = 0;
	while (batch->ret_offset[i] != 0L) i++;
	batch->ret_offset[i] = batch->offset;
	
	batch->offset = 0L;		/* rewind the batch file	    */
	batch->eof = NO;		/* So it cannot be EOF		    */

	if(!batch_open())		/* Check the Batch file is open     */
	    return;			/* and stop if the function fails.  */

	while(!batch->eof) {		/* while not end of file read next  */
	    batch_read(s, YES); 	/* line and return the next command  */
	    bp = deblank(s);
	    if((*bp == ':') && !strnicmp(make_label(bp+1),label, 8))
		return;
	}

	batch_end();			/* Stop any further batch file	   */
	crlfflg = YES;			/* processing and print the error  */
	eprintf(MSG_LABEL, label);
}

GLOBAL	VOID CDECL cmd_return()
{
	UWORD i;
	
	if (!batchflg) return;
	if (batch->ret_offset[0] == 0L) {
		batch_end();
		crlfflg = YES;
		eprintf(MSG_RETURN);
		return;
	}
	i = 0;
	while ((batch->ret_offset[i] != 0L)&&(i<4)) i++;
	batch->offset = batch->ret_offset[i-1];
	batch->ret_offset[i-1] = 0L;
}

#if SWITCH_ENABLED
GLOBAL	VOID CDECL cmd_switch(list)
REG BYTE	*list;
{
	BYTE	*list_start;
	BYTE	*label;
	WORD	i,j;
	BYTE	c;

	if (!batchflg) return;
	list_start = list;

switch_retry:
	list = list_start;
	i = psp_poke(STDIN,1);

#if defined(CDOSTMP)
	c =(BYTE) bdos(C_RAWIO, 0xFD);	/* Get a character from console */

	if ((c==0) ||(dbcs_lead(c)))
	    bdos(C_RAWIO, 0xFD);	/* skip second byte in DBCS pair */
#else
	c = (BYTE) msdos(MS_C_RAWIN, 0);/* Get a character from console */
	if ((c==0) || (dbcs_lead(c)))
	    msdos(MS_C_RAWIN, 0);	/* skip second byte in DBCS pair */
#endif
	psp_poke(STDIN,i);
	
	if (c==0x03) int_break();	/* check for CTRL-C */	
	if (c==0x0d) c = '1';		/* return gives default of 1 */
	
	i = (WORD) (c - '1');
	if (i<0 || i>8) goto switch_retry;	/* ignore invalid keys */

	j = 0;	
	while (j<i) {
		while (*list != ',' && *list != 0) list++;
		if (*list == 0) goto switch_retry;
		j++;
		list++;
		list = deblank(list);
	}
	label = list;
	while (*list != ',' && *list != 0) list++;
	*list = 0;
	cmd_gosub(label);
}
#endif


/*.pa*/
/*
 *	The IF command supports the following syntax:-
 *
 *	IF [NOT] string1 == string2 COMMAND
 *	IF [NOT] ERRORLEVEL n COMMAND
 *	IF [NOT] EXIST filename COMMAND
/*RG-02-
 *	IF [NOT] USERID n COMMAND
 *	IF [NOT] LOGINNAME string COMMAND
 *	IF [NOT] GROUPNAME string COMMAND
 *	IF [NOT] KEY ["string"] char COMMAND
 *
 */
#if defined(CDOSTMP) || defined(CDOS)
MLOCAL BYTE *if_opt[] = {"exist", "direxist", "errorlevel", "key", "userid", "loginname", "groupname", NULL };
#else
MLOCAL BYTE *if_opt[] = {"exist", "direxist", "errorlevel", NULL };
#endif
/*RG-02-end*/

MLOCAL UWORD if_index(cmd)
BYTE **cmd;
{
UWORD	i, j;

	for(i = 0; if_opt[i]; i++) {		/* Scan Through the option   */
	    j = strlen(if_opt[i]);		/* list and return the index */
						/* of the matching option    */
	    if(strnicmp(*cmd, if_opt[i], j))	/* and update the string     */
	        continue;			/* pointer.		     */
	    *cmd = deblank(*cmd+j);

	    while(*(*cmd) == '=')		/* Remove any "=" string     */
	        (*cmd)++;			/* present in the command    */
	    *cmd = deblank(*cmd);		/* Used by many install files*/
	    break;
	}

	return i;
}

#define	OP_EQ 0
#define OP_NE 1
#define OP_LE 2
#define OP_LT 3
#define OP_GE 4
#define OP_GT 5

MLOCAL	WORD get_operator(op)
BYTE	*op;
{
	if (op[0] == '=') return(OP_EQ);
	if (op[0] == '!' && op[1] == '=') return(OP_NE);
	if (op[0] == '<') {
	    if (op[1] == '>') return(OP_NE);
	    if (op[1] == '=') return(OP_LE);
	    return(OP_LT);
	}
	if (op[0] == '>') {
	    if (op[1] == '=') return(OP_GE);
	    return(OP_GT);
	}
	return(-1);
}

MLOCAL	LONG	get_decimal(s)
BYTE	*s;
{
	LONG	total = 0;
	
	if (*s == '#') s++;
	
	while (*s>='0' && *s<='9') {
	    total *= 10;
	    total += (LONG) (*s-'0');
	    s++;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜精品福利| 日韩理论在线观看| 成人美女视频在线观看| 婷婷开心久久网| 欧美激情在线看| 欧美二区乱c少妇| 91丝袜美女网| 国产剧情在线观看一区二区| 亚洲一二三区视频在线观看| 国产女人18水真多18精品一级做 | 天堂资源在线中文精品| 久久精品视频一区二区三区| 欧美日韩国产色站一区二区三区| 本田岬高潮一区二区三区| 麻豆精品视频在线观看免费| 亚洲美女屁股眼交3| 中国av一区二区三区| 久久久午夜电影| 欧美不卡激情三级在线观看| 欧美日韩精品欧美日韩精品 | 午夜亚洲福利老司机| 亚洲欧洲日本在线| 国产农村妇女毛片精品久久麻豆 | 国产麻豆精品theporn| 视频一区中文字幕| 亚洲国产一区在线观看| 亚洲天堂中文字幕| 国产精品久久久久久久午夜片 | 不卡av在线免费观看| 国产精品一区二区果冻传媒| 精品一区二区三区av| 久久精品国产999大香线蕉| 天堂久久久久va久久久久| 亚洲自拍偷拍图区| 亚洲综合在线免费观看| 亚洲精品高清在线| 亚洲综合激情另类小说区| 亚洲美女屁股眼交| 一区二区在线免费观看| 亚洲欧美乱综合| 一区2区3区在线看| 一区二区三区免费网站| 亚洲综合网站在线观看| 亚洲线精品一区二区三区八戒| 亚洲精品成a人| 亚洲一级二级三级| 亚洲va国产va欧美va观看| 亚洲高清视频中文字幕| 丝袜国产日韩另类美女| 免费看欧美美女黄的网站| 日本怡春院一区二区| 麻豆精品在线观看| 国产成人一级电影| av色综合久久天堂av综合| av在线综合网| 日本精品视频一区二区三区| 欧美日韩一区在线| 日韩女优av电影| 日本一区二区三区高清不卡| 中文字幕第一区第二区| 亚洲男女毛片无遮挡| 一区二区成人在线| 美洲天堂一区二卡三卡四卡视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 8x福利精品第一导航| 欧美一区二区三区免费视频 | 国产农村妇女毛片精品久久麻豆| 中文字幕欧美一| 亚洲午夜免费电影| 久久99久久99小草精品免视看| 精久久久久久久久久久| av不卡一区二区三区| 欧美日韩免费一区二区三区| 日韩女优av电影在线观看| 中国av一区二区三区| 亚洲成人手机在线| 国产老妇另类xxxxx| 91麻豆福利精品推荐| 欧美日韩成人综合在线一区二区| 日韩精品一区二区三区老鸭窝| 亚洲国产精品精华液2区45| 一个色综合av| 国产在线一区二区| 91福利在线免费观看| 日韩欧美国产一区二区在线播放 | 成人午夜伦理影院| 欧美精品视频www在线观看| 久久综合九色综合欧美亚洲| 亚洲乱码国产乱码精品精小说 | 色综合久久88色综合天天6| 欧美一级免费大片| 亚洲精品国产精品乱码不99| 激情欧美一区二区| 在线观看精品一区| 久久九九久久九九| 日韩成人伦理电影在线观看| 97久久超碰国产精品电影| 欧美一区二区三区视频免费播放| 综合电影一区二区三区 | 欧美午夜精品理论片a级按摩| 2024国产精品视频| 午夜在线电影亚洲一区| www.日韩大片| 久久中文字幕电影| 日韩av在线发布| 91色在线porny| 国产日韩欧美一区二区三区综合| 午夜视频一区二区三区| av亚洲精华国产精华精| 久久亚洲精品小早川怜子| 天堂在线一区二区| 欧美性猛片aaaaaaa做受| 国产精品系列在线| 国产一区二区三区久久久| 欧美丰满少妇xxxbbb| 一区二区三区精品| av中文字幕亚洲| 国产精品天美传媒沈樵| 韩国精品久久久| 日韩欧美中文字幕精品| 亚洲成人免费视频| 91麻豆.com| 日韩一区有码在线| 成人性生交大片免费看中文网站| 欧美精品一区二区三区高清aⅴ| 青草av.久久免费一区| 欧美日韩电影在线| 亚洲在线观看免费| 欧美伊人久久大香线蕉综合69| 亚洲天堂av一区| 91在线你懂得| 亚洲私人黄色宅男| 色婷婷一区二区三区四区| 国产精品福利在线播放| caoporen国产精品视频| 国产精品乱码一区二三区小蝌蚪| 成人免费毛片高清视频| 欧美国产综合一区二区| 国产mv日韩mv欧美| 欧美国产激情一区二区三区蜜月| 国产一区二区看久久| 久久久久国产免费免费| 国产夫妻精品视频| 国产精品久久福利| 97精品久久久午夜一区二区三区 | 99r国产精品| 亚洲欧美国产77777| 色88888久久久久久影院野外 | 亚洲猫色日本管| 在线精品观看国产| 午夜精品久久久久久| 欧美草草影院在线视频| 国产成人高清视频| 欧美激情艳妇裸体舞| 91视频91自| 日韩精品欧美成人高清一区二区| 欧美一区二区观看视频| 国产精品综合一区二区| 中文字幕成人av| 在线观看一区二区精品视频| 日韩不卡免费视频| 久久久久久亚洲综合影院红桃| 成人av在线播放网址| 一区二区三区四区av| 日韩午夜小视频| 国产成人综合在线观看| 亚洲免费成人av| 日韩欧美国产高清| 不卡的av电影| 日韩专区中文字幕一区二区| 久久亚洲免费视频| 色一情一乱一乱一91av| 六月婷婷色综合| 亚洲欧美色综合| 日韩视频一区二区三区在线播放| 国产99精品国产| 亚洲第一搞黄网站| 久久亚洲一级片| 在线看一区二区| 国产精品影视网| 亚洲成年人网站在线观看| 久久综合久久99| 欧美三级乱人伦电影| 国产乱码精品一区二区三区五月婷 | 91丨国产丨九色丨pron| 美女久久久精品| 亚洲男人都懂的| 久久久噜噜噜久久中文字幕色伊伊 | 欧美国产一区视频在线观看| 欧美日韩免费视频| 成人性生交大片免费看中文| 日韩精品一级二级| 中文字幕在线观看不卡| 欧美精品xxxxbbbb| 91蝌蚪porny| 国产一区二区调教| 日韩高清在线观看| 亚洲免费观看高清完整| 久久精品人人做人人综合| 欧美精品v国产精品v日韩精品|