reactos/base/shell/cmd/screen.c
Amine Khaldi 527f2f9057 [SHELL/EXPERIMENTS]
* Create a branch for some evul shell experiments.

svn path=/branches/shell-experiments/; revision=61927
2014-02-02 19:37:27 +00:00

103 lines
1.6 KiB
C

/*
* SCREEN.C - screen internal command.
*
* clone from 4nt msgbox command
*
* 30 Aug 1999
* started - Paolo Pantaleo <paolopan@freemail.it>
*
* 30-Apr-2005 (Magnus Olsen <magnus@greatlord.com>)
* Remove all hardcoded strings in En.rc
*
*/
#include "precomp.h"
#ifdef INCLUDE_CMD_SCREEN
INT CommandScreen (LPTSTR param)
{
SHORT x,y;
BOOL bSkipText = FALSE;
if (_tcsncmp (param, _T("/?"), 2) == 0)
{
ConOutResPaging(TRUE,STRING_SCREEN_HELP);
return 0;
}
nErrorLevel = 0;
//get row
while(_istspace(*param))
param++;
if (!(*param))
{
error_req_param_missing ();
return 1;
}
y = _ttoi(param);
if (y<0 || y>(maxy-1))
{
ConOutResPuts(STRING_SCREEN_ROW);
return 1;
}
//get col
if (!(param = _tcschr(param,_T(' '))))
{
error_req_param_missing ();
return 1;
}
while(_istspace(*param))
param++;
if (!(*param))
{
error_req_param_missing ();
return 1;
}
x = _ttoi(param);
if (x<0 || x>(maxx-1))
{
ConErrResPuts(STRING_SCREEN_COL);
return 1;
}
//get text
if (!(param = _tcschr(param,_T(' '))))
{
bSkipText = TRUE;
}
else
{
while(_istspace(*param))
param++;
if (!(*param))
{
bSkipText = TRUE;
}
}
bIgnoreEcho = TRUE;
if (bSkipText)
x=0;
SetCursorXY(x,y);
if (!(bSkipText))
ConOutPuts(param);
return 0;
}
#endif /* INCLUDE_CMD_SCREEN */