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

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

?? cmd_parse.c

?? cmd line like! cmd line like!
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/**************************************************************************
 *                                                                        *
 *         Copyright (c) 2002 by Sunplus Technology Co., Ltd.             *
 *                                                                        *
 *  This software is copyrighted by and is the property of Sunplus        *
 *  Technology Co., Ltd. All rights are reserved by Sunplus Technology    *
 *  Co., Ltd. This software may only be used in accordance with the       *
 *  corresponding license agreement. Any unauthorized use, duplication,   *
 *  distribution, or disclosure of this software is expressly forbidden.  *
 *                                                                        *
 *  This Copyright notice MUST not be removed or modified without prior   *
 *  written consent of Sunplus Technology Co., Ltd.                       *
 *                                                                        *
 *  Sunplus Technology Co., Ltd. reserves the right to modify this        *
 *  software without notice.                                              *
 *                                                                        *
 *  Sunplus Technology Co., Ltd.                                          *
 *  19, Innovation First Road, Science-Based Industrial Park,             *
 *  Hsin-Chu, Taiwan, R.O.C.                                              *
 *                                                                        *
 *  Author: Wilson Lu                                                     *
 *                                                                        *
 **************************************************************************/
#include <string.h>
#include <stdio.h>
#include "cmd.h"

/****************************************************************************
*                           C O N S T A N T S                               *
****************************************************************************/
#define CMD_HISTORIES	8
#define CMD_BUF_SIZE	64
#define HELP_CMD_HELP	"Provides help for commands. Try 'help <command>'"
#define HELP_CMD_LIST	"Provides list for commands."
/****************************************************************************
*                         G L O B A L    D A T A                            *
****************************************************************************/
static void cmdHelpDisp(UINT8 *parameters);
static void cmdListDisp(UINT8 *parameters);
static cmd_t  cmdHelp = {"help", cmdHelpDisp, HELP_CMD_HELP, 0x0};
static cmd_t  cmdList = {"ls",   cmdListDisp, HELP_CMD_LIST, 0x0};
static cmd_t  *pcmds = &cmdHelp;

static UINT8  buffer[CMD_BUF_SIZE];
static UINT32 pos;
static UINT32 logIn;

static UINT32 histBuf[CMD_HISTORIES][CMD_BUF_SIZE];
static UINT32 histPos[CMD_HISTORIES];
static UINT32 histIns;
static UINT32 histOutput;
static UINT32 histInsWrap;
static UINT32 histOutputWrap;
/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
void
cmdWhiteSpaceStrip(
	UINT8 **pptr
)
{
	UINT8 *ptr;

	ptr = *pptr;
	while ( *ptr != '\0' ) {
		if ((*ptr != ' ')  &&
		    (*ptr != '\t') &&
		    (*ptr != '\n') &&
		    (*ptr != '\r')) {
			break;
		}
		else {
			ptr++;
		}
	}
	*pptr = ptr;
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
void
cmdWhiteSpaceReplace(
	UINT8 **pptr
)
{
	UINT8 *ptr;

	ptr = *pptr;
	while ( *ptr != '\0' ) {
		if ((*ptr != ' ')  &&
		    (*ptr != '\t') &&
		    (*ptr != '\n') &&
		    (*ptr != '\r')) {
			break;
		}
		else {
			**pptr = '\0';
			ptr++;
		}
	}
	*pptr = ptr;
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
void
cmdTokenStrip(
	UINT8 **pptr
)
{
	UINT8 *ptr;

	ptr = *pptr;
	while ( *ptr != '\0' ) {
		if ((*ptr == ' ')  ||
		    (*ptr == '\t') ||
		    (*ptr == '\n') ||
		    (*ptr == '\r')) {
			break;
		}
		else {
			ptr++;
		}
	}
	*pptr = ptr;
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
SINT32 strtoulex(char *pdt)
{
	char *pt = pdt;
	UINT32 retd = 0;
	SINT32 sign = 1;

	if (pt != NULL) {
		if (pt[0] == '-') {
			sign = -1;
			pt ++;
		}
		
		if (pt[0] == '0' && (pt[1] == 'x' || pt[1] == 'X')) {
			for(pt+=2 ; *pt!=' ' && *pt!=0 && *pt!='\t' && *pt!='\n' && *pt!='\r'; pt++){
				if(*pt>='0' && *pt<='9'){
					retd = retd*16 + (*pt-'0');
				} else if (*pt>='a' && *pt<='f') {
					retd = retd*16 + (*pt-'a') + 10;
				} else if (*pt>='A' && *pt<='F') {
					retd = retd*16 + (*pt-'A') + 10;
				} else {
					retd = 0;
					break;
				}
			}
		} else {
			for ( ; *pt!=' ' && *pt!=0 && *pt!='\t' && *pt!='\n' && *pt!='\r'; pt++) {
				if (*pt>='0' && *pt<='9') {
					retd = retd*10 + (*pt-'0');
				} else {
					retd = 0;
					break;
				}
			}
		}
	}

	return(retd*sign);
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
static void
cmdHelpShow(
	cmd_t *bc, 
	UINT32 maxCmdLen
)
{
	const UINT8 *help = bc->phelp;
	UINT32 helpLen = strlen(help);
	UINT32 spaces = maxCmdLen - strlen(bc->cmd);
	UINT32 showThisLine = 0;
	UINT32 lineOne = TRUE;
	UINT32 c;

	printf_0("%s", bc->cmd);
	if ( helpLen == 0 ) {
		printf_0(" - No help.\n");
		return;
	}

	while ( helpLen ) {
		while ( spaces > 1 ) {
			printf_0(" ");
			spaces--;
		};
		if ( lineOne ) {
			printf_0(" - ");
		}
		spaces = maxCmdLen + 3; /* 3: " - " has three characters */
		lineOne = FALSE;

		/*
		 * See if greater then the line length if so, work back from the end for a
		 * space, tab or lf or cr.
		 */

		if ( helpLen > (78 - maxCmdLen - 3) ) {
			for ( showThisLine = (78 - maxCmdLen - 3) - 1; 
				showThisLine; 
				showThisLine-- )
				if ( (help[showThisLine] == ' ') ||
					 (help[showThisLine] == '\n') ||
					 (help[showThisLine] == '\r') )
					break;

				/*
				 * If showThisLine is 0, it is a very long word !!
				 */

			if ( showThisLine == 0 )
				showThisLine = (78 - maxCmdLen - 3) - 1;
		} else
			showThisLine = helpLen;

		for ( c = 0; c < showThisLine; c++ ) {
			if ( (help[c] == '\r') || (help[c] == '\n') ) {
				showThisLine = c;
			}
			else {
				printf_0("%c", help[c]);
			}
		}

		printf_0("\n");

		help += showThisLine;
		helpLen -= showThisLine;

		/*
		 * Move past the line feeds or what ever else is being skipped.
		 */

		while ( helpLen ) {
			if ( (*help != '\r') && (*help != '\n') ) {
				break;
			}
			if ( *help != ' ' ) {
				help++;
				helpLen--;
				break;
			}
			help++;
			helpLen--;
		}
	}
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
static void
cmdHelpDisp(
	UINT8 *parameters
)
{
	cmd_t *bc = pcmds;
	UINT32 maxCmdLen = 0, i = 0;
	UINT32 len;

	/* See if the user asked for a particular help. */
	if ( *parameters != '\0' ) {
		while ( bc ) {
			if ( strcmp(bc->cmd, parameters) == 0 ) {
				cmdHelpShow(bc, strlen(bc->cmd));
				return;
			}
			bc = bc->pnext;
		}
		printf_0("no help for command '%s' found, try just 'help'\n", parameters);
		return;
	}

	/*
	 * Find the largest command size.
	 */

	while ( bc ) {
		len = strlen(bc->cmd);
		if ( len > maxCmdLen ) {
			maxCmdLen = len;
		}
		bc = bc->pnext;
	}

	maxCmdLen++;
	bc = pcmds;

	/*
	 * Now some nice formatting for the help.
	 */
	
	printf_0("-\n  ");
	while ( bc ) {
		printf_0("%-8s ", bc->cmd);
		i++;
		if( i == 8 ) {
			printf_0("\n  ");
			i = 0;
		}
		
		if(bc->pnext->cmd[0] != bc->cmd[0]){
			if(i == 0)	printf_0("\r-\n  ");
			else{
				printf_0("\n-\n  ");
				i = 0;
			}
		}
		
		bc = bc->pnext;
	}
	
	if ( i != 0 ) {
		printf_0("\n");
	}
}

/**************************************************************************
 *                                                                        *
 *  Function Name:                                                        *
 *                                                                        *
 *  Purposes:                                                             *
 *                                                                        *
 *  Descriptions:                                                         *
 *                                                                        *
 *  Arguments:                                                            *
 *                                                                        *
 *  Returns: None                                                         *
 *                                                                        *
 *  See also:                                                             *
 *                                                                        *
 **************************************************************************/
static void
cmdListDisp(
	UINT8 *parameters
)
{
	cmd_t *bc = pcmds;
	UINT32 i = 0;

	/*
	 * Now some nice formatting for the help.
	 */
	
	printf_0("-\n  ");
	while ( bc ) {
		printf_0("%-8s ", bc->cmd);
		i++;
		if( i == 8 ) {
			printf_0("\n  ");

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产sm精品调教视频网站| 99国产精品久| 国产精品福利一区| 日韩欧美一级片| av日韩在线网站| 激情五月激情综合网| 亚洲综合激情网| 久久久久久夜精品精品免费| 欧美美女网站色| 成a人片亚洲日本久久| 久久99精品一区二区三区三区| 日韩理论片网站| 国产日韩欧美激情| 日韩欧美中文一区| 欧美日韩精品是欧美日韩精品| 成人少妇影院yyyy| 韩国在线一区二区| 日韩精品一级二级| 亚洲五月六月丁香激情| 亚洲婷婷综合久久一本伊一区| 精品国产免费久久| 在线播放日韩导航| 欧美日韩视频在线第一区| 91片在线免费观看| 97超碰欧美中文字幕| 国产成人超碰人人澡人人澡| 九九九精品视频| 久久精品国产网站| 日韩国产成人精品| 日韩精品欧美成人高清一区二区| 亚洲精品国产a久久久久久| 国产精品久久久久久一区二区三区| 2024国产精品| 精品久久久久久综合日本欧美| 欧美高清视频www夜色资源网| 色天天综合久久久久综合片| 91一区二区在线观看| 成人avav在线| www.66久久| 91在线丨porny丨国产| 97久久超碰国产精品| 99久久久精品| 99精品视频一区| 91看片淫黄大片一级在线观看| 不卡av免费在线观看| 成人激情免费电影网址| 99久久精品免费精品国产| 国产91丝袜在线18| 成人免费视频播放| 99精品欧美一区二区蜜桃免费| 91麻豆精品视频| 在线观看视频一区二区 | 国产精品一区久久久久| 国产麻豆视频精品| 成人性生交大合| 不卡的av电影| 欧美色精品在线视频| 91精品国产麻豆| 精品三级在线观看| 中文av一区特黄| 亚洲乱码国产乱码精品精小说 | 亚洲国产美女搞黄色| 亚洲一二三四在线| 日韩精品电影在线观看| 麻豆成人久久精品二区三区红 | 亚洲国产成人精品视频| 日精品一区二区| 狠狠色丁香九九婷婷综合五月| 国产老女人精品毛片久久| av不卡一区二区三区| 91成人在线免费观看| 日韩一区二区三区电影| 国产欧美日韩综合| 一区二区三区四区精品在线视频 | 久久久久久久久久久久久久久99 | 久久久久97国产精华液好用吗| 中文字幕中文字幕中文字幕亚洲无线| 综合电影一区二区三区| 爽好久久久欧美精品| 国产黄色成人av| 在线视频一区二区三| 91精品国产麻豆国产自产在线 | 欧美第一区第二区| 国产精品久久久久久久久图文区| 亚洲一区二区三区国产| 美女视频黄久久| 99国产精品久久久久久久久久久| 欧美另类久久久品| 国产亲近乱来精品视频| 亚洲国产精品嫩草影院| 国内偷窥港台综合视频在线播放| 色综合中文字幕| 精品国产一区二区三区久久影院| 亚洲色欲色欲www在线观看| 日韩黄色免费电影| 成人av电影免费在线播放| 欧美精品丝袜久久久中文字幕| 国产日韩成人精品| 日本色综合中文字幕| 91麻豆123| 国产日产亚洲精品系列| 日韩精品高清不卡| 99re热这里只有精品免费视频| 日韩三级伦理片妻子的秘密按摩| 国产精品二区一区二区aⅴ污介绍| 免费av网站大全久久| 一本色道久久综合狠狠躁的推荐 | 综合久久久久综合| 国精产品一区一区三区mba视频| 欧美在线观看18| 国产精品午夜免费| 精品一区二区三区欧美| 欧美日韩国产天堂| 亚洲柠檬福利资源导航| 国产美女精品一区二区三区| 欧美一区二区三区小说| 一区二区三区在线免费观看| 成人性生交大合| 久久婷婷国产综合精品青草| 青青草一区二区三区| 欧美亚洲高清一区| 一区二区三区中文免费| 9久草视频在线视频精品| 久久精品一区二区三区四区| 久久99精品久久久久| 91精品国产91久久久久久最新毛片| 亚洲美女电影在线| av一区二区三区黑人| 国产精品久线观看视频| 国产成人综合在线观看| 26uuu国产在线精品一区二区| 日本中文字幕一区二区有限公司| 欧美性色综合网| 亚洲成人综合视频| 欧美日韩不卡视频| 日韩国产精品久久久| 欧美午夜电影一区| 亚洲成人av在线电影| 欧美三级蜜桃2在线观看| 亚洲一区二区四区蜜桃| 欧美亚洲动漫另类| 爽好久久久欧美精品| 欧美老人xxxx18| 美日韩一级片在线观看| 欧美成人精品福利| 国产精品99久久久久久久vr| 久久精品视频在线免费观看| 福利一区二区在线| |精品福利一区二区三区| 色婷婷综合中文久久一本| 一区二区三区国产精品| 欧美日韩精品一区二区在线播放| 三级成人在线视频| 日韩精品中文字幕在线不卡尤物| 精品亚洲成a人在线观看| 久久精品人人爽人人爽| 成人黄页毛片网站| 一区二区三区在线播放| 7777精品伊人久久久大香线蕉完整版 | 久久国产精品区| 久久久不卡网国产精品二区| 91在线观看一区二区| 亚洲午夜影视影院在线观看| 4438x成人网最大色成网站| 九九九精品视频| 国产精品国产三级国产普通话99| 欧美在线免费观看亚洲| 精品一二三四区| 亚洲日本成人在线观看| 欧美日韩国产高清一区| 精品一区二区三区在线视频| 国产精品国产三级国产普通话99| 欧美视频精品在线观看| 国产一区三区三区| 一区二区三区在线观看动漫| 日韩欧美亚洲另类制服综合在线| 成人激情动漫在线观看| 日韩av中文在线观看| 欧美国产日韩a欧美在线观看| 欧美午夜影院一区| 国产成人午夜视频| 天堂va蜜桃一区二区三区| 国产精品拍天天在线| 欧美精品tushy高清| 成人精品小蝌蚪| 麻豆成人在线观看| 一区二区免费看| 国产日韩欧美在线一区| 88在线观看91蜜桃国自产| 99免费精品视频| 久久精品理论片| 亚洲高清久久久| 国产精品护士白丝一区av| 欧美一区二区三区视频在线观看| eeuss影院一区二区三区| 蜜臀av性久久久久蜜臀aⅴ | 亚洲欧美日韩综合aⅴ视频| 欧美电影免费观看高清完整版在线观看| 国产美女主播视频一区| 一区二区三区在线观看欧美|