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

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

?? cmdinput.c

?? PocketCMD是與pocketconsole配合實用的命令行解釋器(Shell)
?? C
字號:
/* *  CMDINPUT.C - handles command input (tab completion, history, etc.). * * *  History: * *    01/14/95 (Tim Norman) *        started. * *    08/08/95 (Matt Rains) *        i have cleaned up the source code. changes now bring this source *        into guidelines for recommended programming practice. *        i have added some constants to help making changes easier. * *    12/12/95 (Tim Norman) *        added findxy() function to get max x/y coordinates to display *        correctly on larger screens * *    12/14/95 (Tim Norman) *        fixed the Tab completion code that Matt Rains broke by moving local *        variables to a more global scope and forgetting to initialize them *        when needed * *    8/1/96 (Tim Norman) *        fixed a bug in tab completion that caused filenames at the beginning *        of the command-line to have their first letter truncated * *    9/1/96 (Tim Norman) *        fixed a silly bug using printf instead of fputs, where typing "%i" *        confused printf :) * *    6/14/97 (Steffan Kaiser) *        ctrl-break checking * *    6/7/97 (Marc Desrochers) *        recoded everything! now properly adjusts when text font is changed. *        removed findxy(), reposition(), and reprint(), as these functions *        were inefficient. added goxy() function as gotoxy() was buggy when *        the screen font was changed. the printf() problem with %i on the *        command line was fixed by doing printf("%s",str) instead of *        printf(str). Don't ask how I find em just be glad I do :) * *    7/12/97 (Tim Norman) *        Note: above changes pre-empted Steffan's ctrl-break checking. * *    7/7/97 (Marc Desrochers) *        rewrote a new findxy() because the new dir() used it.  This *        findxy() simply returns the values of *maxx *maxy.  In the *        future, please use the pointers, they will always be correct *        since they point to BIOS values. * *    7/8/97 (Marc Desrochers) *        once again removed findxy(), moved the *maxx, *maxy pointers *        global and included them as externs in command.h.  Also added *        insert/overstrike capability * *    7/13/97 (Tim Norman) *        added different cursor appearance for insert/overstrike mode * *    7/13/97 (Tim Norman) *        changed my code to use _setcursortype until I can figure out why *        my code is crashing on some machines.  It doesn't crash on mine :) * *    27-Jul-1998 (John P Price <linux-guru@gcfl.net>) *        added config.h include * *    28-Jul-1998 (John P Price <linux-guru@gcfl.net>) *        put ifdef's around filename completion code. * *    30-Jul-1998 (John P Price <linux-guru@gcfl.net>) *        moved filename completion code to filecomp.c *        made second TAB display list of filename matches * *    31-Jul-1998 (John P Price <linux-guru@gcfl.net>) *        Fixed bug where if you typed something, then hit HOME, then tried *        to type something else in insert mode, it crashed. * *    07-Aug-1998 (John P Price <linux-guru@gcfl.net>) *        Fixed carrage return output to better match MSDOS with echo *        on or off.(marked with "JPP 19980708") * *    13-Dec-1998 (Eric Kohl <ekohl@abo.rhein-zeitung.de>) *        Added insert/overwrite cursor. * *    25-Jan-1998 (Eric Kohl <ekohl@abo.rhein-zeitung.de>) *        Replaced CRT io functions by Win32 console io functions. *        This can handle <Shift>-<Tab> for 4NT filename completion. *        Unicode and redirection safe! * *    04-Feb-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>) *        Fixed input bug. A "line feed" character remained in the keyboard *        input queue when you pressed <RETURN>. This sometimes caused *        some very strange effects. *        Fixed some command line editing annoyances. */#include "config.h"#include "cmd.h"SHORT maxx;SHORT maxy;/* * global command line insert/overwrite flag */static BOOL bInsert = TRUE;static VOIDClearCommandLine (LPTSTR str, INT maxlen, SHORT orgx, SHORT orgy){	INT count;	SetCursorXY (orgx, orgy);	for (count = 0; count < (INT)_tcslen (str); count++)		ConOutChar (_T(' '));	_tcsnset (str, _T('\0'), maxlen);	SetCursorXY (orgx, orgy);}/* read in a command line */INT ReadCommand (LPTSTR str, INT maxlen){#ifdef RAWINPUT	SHORT orgx;			/* origin x/y */	SHORT orgy;	SHORT curx;			/*current x/y cursor position*/	SHORT cury;	INT   count;		/*used in some for loops*/	INT   current = 0;	/*the position of the cursor in the string (str)*/	INT   charcount = 0;/*chars in the string (str)*/	INPUT_RECORD ir;	WORD   wLastKey = 0;	TCHAR  ch;	BOOL bContinue=FALSE;/*is TRUE the second case will not be executed*/	/* get screen size */	GetScreenSize (&maxx, &maxy);	/* JPP 19980807 - if echo off, don't print prompt */	if (bEcho)		PrintPrompt();	GetCursorXY (&orgx, &orgy);	memset (str, 0, maxlen * sizeof (TCHAR));	SetCursorType (bInsert, TRUE);	do	{		ConInKey (&ir);		//if (bContinue)		//	continue;		switch (ir.Event.KeyEvent.wVirtualKeyCode)		{			case VK_BACK:				/* <BACKSPACE> - delete character to left of cursor */				if (current > 0 && charcount > 0)				{					if (current == charcount)					{						/* if at end of line */						str[current - 1] = _T('\0');						if (GetCursorX () != 0)						{							ConOutPrintf (_T("\b \b"));						}						else						{							SetCursorXY ((SHORT)(maxx - 1), (SHORT)(GetCursorY () - 1));							ConOutChar (_T(' '));							SetCursorXY ((SHORT)(maxx - 1), (SHORT)(GetCursorY () - 1));						}					}					else					{						for (count = current - 1; count < charcount; count++)							str[count] = str[count + 1];						if (GetCursorX () != 0)							SetCursorXY ((SHORT)(GetCursorX () - 1), GetCursorY ());						else							SetCursorXY ((SHORT)(maxx - 1), (SHORT)(GetCursorY () - 1));						GetCursorXY (&curx, &cury);						ConOutPrintf (_T("%s "), &str[current - 1]);						SetCursorXY (curx, cury);					}					charcount--;					current--;				}				break;			case VK_INSERT:				/* toggle insert/overstrike mode */				bInsert ^= TRUE;				SetCursorType (bInsert, TRUE);				break;			case VK_DELETE:				/* delete character under cursor */				if (current != charcount && charcount > 0)				{					for (count = current; count < charcount; count++)						str[count] = str[count + 1];					charcount--;					GetCursorXY (&curx, &cury);					ConOutPrintf (_T("%s "), &str[current]);					SetCursorXY (curx, cury);				}				break;			case VK_HOME:				/* goto beginning of string */				if (current != 0)				{					SetCursorXY (orgx, orgy);					current = 0;				}				break;			case VK_END:				/* goto end of string */				if (current != charcount)				{					SetCursorXY (orgx, orgy);					ConOutPrintf (_T("%s"), str);					current = charcount;				}				break;			case VK_TAB:#ifdef FEATURE_UNIX_FILENAME_COMPLETION				/* expand current file name */				if (current == charcount) /* only works at end of line*/				{					if (wLastKey != VK_TAB)					{						/* if first TAB, complete filename*/						CompleteFilename (str, charcount);						charcount = _tcslen (str);						current = charcount;						SetCursorXY (orgx, orgy);						ConOutPrintf (_T("%s"), str);						if ((_tcslen (str) > (USHORT)(maxx - orgx)) && (orgy == maxy + 1))							orgy--;					}					else					{						/*if second TAB, list matches*/						if (ShowCompletionMatches (str, charcount))						{							PrintPrompt ();							GetCursorXY (&orgx, &orgy);							ConOutPrintf (_T("%s"), str);						}											}				}				else				{					MessageBeep (-1);				}#endif#ifdef FEATURE_4NT_FILENAME_COMPLETION				/* this is not implemented yet */				if (ir.Event.KeyEvent.dwControlKeyState & SHIFT_PRESSED)				{					/* get previous match */				}				else				{					/* get next match */				}#endif				break;			case VK_RETURN:				/* end input, return to main */				ConInDummy ();				ConOutChar (_T('\n'));				break;			case VK_ESCAPE:				/* clear str  Make this callable! */				ClearCommandLine (str, maxlen, orgx, orgy);				current = charcount = 0;				break;			case VK_UP:				break;			case VK_DOWN:				break;			case VK_LEFT:				/* move cursor left */				if (current > 0)				{					current--;					if (GetCursorX () == 0)						SetCursorXY ((SHORT)(maxx - 1), (SHORT)(GetCursorY () - 1));					else						SetCursorXY ((SHORT)(GetCursorX () - 1), GetCursorY ());				}				else				{					MessageBeep (-1);				}				break;			case VK_RIGHT:				/* move cursor right */				if (current != charcount)				{					current++;					if (GetCursorX () == maxx - 1)						SetCursorXY (0, (SHORT)(GetCursorY () + 1));					else						SetCursorXY ((SHORT)(GetCursorX () + 1), GetCursorY ());				}				break;			default:				ch = ir.Event.KeyEvent.uChar.UnicodeChar;				if ((ch >= 32 && ch <= 255) && (charcount != (maxlen - 2)))				{					/* insert character into string... */					if (bInsert && current != charcount)					{						for (count = charcount; count > current; count--)							str[count] = str[count - 1];						str[current++] = ch;						if (GetCursorX () == maxx - 1)						{							curx = 0;							cury = GetCursorY () + 1;						}						else						{							GetCursorXY (&curx, &cury);							curx++;						}						ConOutPrintf (_T("%s"), &str[current - 1]);						if ((_tcslen (str) > (USHORT)(maxx - orgx)) && (orgy == maxy + 1))							cury--;						SetCursorXY (curx, cury);						charcount++;					}					else					{						if (current == charcount)							charcount++;						str[current++] = ch;						ConOutChar (ch);					}					if ((_tcslen (str) > (USHORT)(maxx - orgx)) && (orgy == maxy + 1))						orgy--;				}#if 0				else				{					MessageBeep (-1);				}#endif				break;		}		wLastKey = ir.Event.KeyEvent.wVirtualKeyCode;	}	while (ir.Event.KeyEvent.wVirtualKeyCode != VK_RETURN);	SetCursorType (bInsert, TRUE);#else	DWORD dwRead;	DWORD mode;	if (bEcho)		PrintPrompt();		GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &mode);	if(!ReadConsole(GetStdHandle(STD_INPUT_HANDLE),str ,maxlen, &dwRead,NULL) || GetLastError() == ERROR_OPERATION_ABORTED)	{		if(GetLastError() == ERROR_OPERATION_ABORTED)		{			SetLastError(ERROR_SUCCESS);			ConOutPrintf(_T("^C"));		}		return FALSE;	};	str[dwRead] = 0;	return TRUE;#endif}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区视频| 亚洲国产高清在线| 久久婷婷久久一区二区三区| 亚洲四区在线观看| 久久99久久99精品免视看婷婷 | 精品日韩一区二区| 亚洲欧美日韩国产一区二区三区| 欧美aaa在线| 欧美影视一区在线| 国产精品久久久99| 激情深爱一区二区| 欧美日韩国产一二三| 国产精品第13页| 国产风韵犹存在线视精品| 91精品欧美久久久久久动漫| 亚洲女人的天堂| 99在线精品观看| 国产日本欧美一区二区| 美女国产一区二区三区| 欧美日韩不卡视频| 亚洲国产精品欧美一二99| 成人丝袜高跟foot| 国产日韩一级二级三级| 国模一区二区三区白浆| 欧美一区二区网站| 日韩av在线播放中文字幕| 欧美系列亚洲系列| 亚洲第四色夜色| 欧美三区在线观看| 亚洲国产欧美另类丝袜| 色综合 综合色| 亚洲激情校园春色| 欧美中文字幕一二三区视频| 亚洲少妇屁股交4| 91视频免费播放| 亚洲狠狠丁香婷婷综合久久久| 91美女片黄在线观看91美女| 亚洲卡通动漫在线| 欧美在线一区二区| 日日嗨av一区二区三区四区| 欧美精品123区| 蜜臀av一区二区在线观看 | 亚洲福利视频导航| 欧美精品电影在线播放| 奇米影视一区二区三区| 日韩欧美一区在线| 久草中文综合在线| 欧美国产精品中文字幕| 成人动漫一区二区在线| 亚洲精品菠萝久久久久久久| 欧美视频三区在线播放| 麻豆精品一二三| 久久久精品黄色| 一本大道久久精品懂色aⅴ| 亚洲一区二区三区激情| 日韩一区二区三区精品视频| 精品制服美女久久| 亚洲视频一二三区| 欧美裸体一区二区三区| 国产一区二区中文字幕| 国产精品不卡一区| 欧美日韩国产经典色站一区二区三区 | 欧美日韩国产一级二级| 麻豆精品视频在线观看视频| 中文字幕 久热精品 视频在线| 91麻豆自制传媒国产之光| 日韩精品欧美成人高清一区二区| 26uuu国产日韩综合| 91麻豆视频网站| 美女精品一区二区| 亚洲精品免费视频| 精品福利一区二区三区免费视频| 97精品电影院| 精品一区二区三区日韩| 一区二区免费在线播放| 久久夜色精品一区| 欧美自拍丝袜亚洲| 大胆亚洲人体视频| 蜜桃av一区二区三区| 中文字幕一区二区三区四区| 91精品国产一区二区| 99re热这里只有精品视频| 久久精品国产第一区二区三区| 亚洲丝袜美腿综合| 久久精品一区二区三区不卡| 欧美日韩国产精选| 色噜噜夜夜夜综合网| 国产永久精品大片wwwapp| 五月婷婷综合网| 日韩美女精品在线| 国产日产欧美精品一区二区三区| 欧美美女激情18p| 色欧美乱欧美15图片| 国产成人av一区二区三区在线| 亚洲成av人综合在线观看| 国产精品二区一区二区aⅴ污介绍| 日韩一区二区精品葵司在线| 在线视频国产一区| www.亚洲色图.com| 国产高清亚洲一区| 美女久久久精品| 日韩av一区二| 日韩电影网1区2区| 午夜精品免费在线| 亚洲高清视频中文字幕| 亚洲精品视频在线看| 亚洲日本乱码在线观看| 国产欧美日产一区| 国产午夜精品一区二区| 精品国产髙清在线看国产毛片| 欧美老人xxxx18| 欧美日韩国产一级二级| 欧美男生操女生| 欧美日韩精品免费观看视频| 在线免费观看成人短视频| 91日韩精品一区| 色www精品视频在线观看| 91视频国产观看| 欧美亚洲一区二区在线观看| 91国产免费观看| 欧美精品18+| 精品免费一区二区三区| 久久婷婷久久一区二区三区| 久久久精品综合| 欧美激情资源网| 亚洲欧洲日韩一区二区三区| 中文字幕日韩av资源站| 亚洲六月丁香色婷婷综合久久| 亚洲欧美色图小说| 午夜精品影院在线观看| 蜜臀av在线播放一区二区三区| 精品一区二区日韩| 国产成人精品综合在线观看| 成人精品高清在线| 在线免费一区三区| 欧美疯狂做受xxxx富婆| 精品少妇一区二区三区免费观看| 久久美女高清视频| 亚洲色图制服丝袜| 午夜av区久久| 国产成人在线视频网址| 91理论电影在线观看| 91精品婷婷国产综合久久性色| 精品盗摄一区二区三区| 亚洲色图丝袜美腿| 日日夜夜精品免费视频| 粉嫩蜜臀av国产精品网站| 色婷婷综合五月| 日韩网站在线看片你懂的| 国产女主播视频一区二区| 一区二区三区四区亚洲| 国内精品不卡在线| 欧美中文字幕一区二区三区 | 91欧美激情一区二区三区成人| 欧美久久高跟鞋激| 国产免费成人在线视频| 午夜精品福利一区二区三区av| 精品亚洲porn| 欧美婷婷六月丁香综合色| 国产亚洲成年网址在线观看| 亚洲国产日韩av| 风间由美一区二区三区在线观看 | 国产亚洲午夜高清国产拍精品 | 91官网在线观看| www久久精品| 婷婷亚洲久悠悠色悠在线播放| 国产风韵犹存在线视精品| 欧美视频在线一区二区三区| 国产午夜精品久久| 男男成人高潮片免费网站| 一本久久综合亚洲鲁鲁五月天| 精品国产乱码久久久久久久| 午夜久久久久久| av日韩在线网站| 久久久99久久| 麻豆精品在线视频| 欧美三级电影网| 中文字幕日韩欧美一区二区三区| 精品亚洲成av人在线观看| 欧美猛男超大videosgay| 自拍视频在线观看一区二区| 国产曰批免费观看久久久| 日韩三级中文字幕| 亚洲成人动漫av| 欧美少妇bbb| 依依成人精品视频| 99久久久久久| 国产精品天干天干在线综合| 国产一区二区三区四区五区美女| 欧美一级日韩免费不卡| 天天爽夜夜爽夜夜爽精品视频| 在线视频一区二区免费| 亚洲精品综合在线| 91在线高清观看| 亚洲色图一区二区三区| 99热精品国产| 一区二区三区免费网站| 91婷婷韩国欧美一区二区| **欧美大码日韩| 97精品久久久午夜一区二区三区 |