⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 goto.c

📁 PocketCMD是与pocketconsole配合实用的命令行解释器(Shell)
💻 C
字号:
/* *  GOTO.C - goto internal batch command. * *  History: * *    16 Jul 1998 (Hans B Pufal) *        started. * *    16 Jul 1998 (John P Price) *        Seperated commands into individual files. * *    27-Jul-1998 (John P Price <linux-guru@gcfl.net>) *        added config.h include * *    28 Jul 1998 (Hans B Pufal) [HBP_003] *        Terminate label on first space character, use only first 8 chars of *        label string * *    24-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>) *        Unicode and redirection safe! * *    27-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>) *        Added help text ("/?"). */#include "config.h"#include "cmd.h"/* * Perform GOTO command. * * Only valid if batch file current. * */INT cmd_goto (LPTSTR cmd, LPTSTR param){	LPTSTR tmp;	LONG   lNewPosHigh;#ifdef _DEBUG	DebugPrintf (_T("cmd_goto (\'%s\', \'%s\'\n"), cmd, param);#endif	if (!_tcsncmp (param, _T("/?"), 2))	{		ConOutPuts (_T("Directs CMD to a labeled line in a batch script.\n")					   _T("\n")					   _T("GOTO label\n")					   _T("\n")					   _T("  label  Specifies a text string used in a batch script as a label.\n")					   _T("\n")					   _T("You type a label on a line by itself, beginning with a colon."));		return 0;	}	/* if not in batch -- error!! */	if (bc == NULL)	{		return 1;	}	if (*param == _T('\0'))	{		ExitBatch (_T("No label specified for GOTO\n"));		return 1;	}	/* terminate label at first space char */	tmp = param;	while (*tmp && !_istspace (*tmp))		tmp++;	*tmp = _T('\0');	/* set file pointer to the beginning of the batch file */	lNewPosHigh = 0;	SetFilePointer (bc->hBatchFile, 0, &lNewPosHigh, FILE_BEGIN);	while (FileGetString (bc->hBatchFile, textline, sizeof(textline)))	{		/* Strip out any trailing spaces or control chars */		tmp = textline + _tcslen (textline) - 1;		while (_istcntrl (*tmp) || _istspace (*tmp))			tmp--;		*(tmp + 1) = _T('\0');		/* Then leading spaces... */		tmp = textline;		while (_istspace (*tmp))			tmp++;		/* use only 1st 8 chars of label */		if ((*tmp == _T(':')) && (_tcsncmp (++tmp, param, 8) == 0))			return 0;	}	ConErrPrintf (_T("Label '%s' not found\n"), param);	ExitBatch (NULL);	return 1;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -