mirror of
https://github.com/reactos/reactos.git
synced 2025-01-13 01:22:03 +00:00
^M should run the command
svn path=/trunk/; revision=19905
This commit is contained in:
parent
4c43e1c8b9
commit
a0af76e470
1 changed files with 58 additions and 53 deletions
|
@ -138,6 +138,7 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
WORD wLastKey = 0;
|
||||
TCHAR ch;
|
||||
BOOL bContinue=FALSE;/*is TRUE the second case will not be executed*/
|
||||
BOOL bReturn = FALSE;
|
||||
TCHAR szPath[MAX_PATH];
|
||||
|
||||
/* get screen size */
|
||||
|
@ -156,6 +157,9 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
|
||||
do
|
||||
{
|
||||
|
||||
bReturn = FALSE;
|
||||
|
||||
ConInKey (&ir);
|
||||
|
||||
if (ir.Event.KeyEvent.dwControlKeyState &
|
||||
|
@ -406,6 +410,14 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
#endif
|
||||
break;
|
||||
|
||||
case _T('M'):
|
||||
/* ^M does the same as return */
|
||||
if(!(ir.Event.KeyEvent.dwControlKeyState &
|
||||
(RIGHT_CTRL_PRESSED|LEFT_CTRL_PRESSED)))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
case VK_RETURN:
|
||||
/* end input, return to main */
|
||||
#ifdef FEATURE_HISTORY
|
||||
|
@ -415,6 +427,7 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
#endif
|
||||
ConInDummy ();
|
||||
ConOutChar (_T('\n'));
|
||||
bReturn = TRUE;
|
||||
break;
|
||||
|
||||
case VK_ESCAPE:
|
||||
|
@ -497,65 +510,57 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
|||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
#ifdef _UNICODE
|
||||
ch = ir.Event.KeyEvent.uChar.UnicodeChar;
|
||||
if ((ch >= 32 && ch <= 255) && (charcount != (maxlen - 2)))
|
||||
ch = ir.Event.KeyEvent.uChar.UnicodeChar;
|
||||
if ((ch >= 32 && ch <= 255) && (charcount != (maxlen - 2)))
|
||||
#else
|
||||
ch = ir.Event.KeyEvent.uChar.AsciiChar;
|
||||
if ((UCHAR)ch >= 32 && (charcount != (maxlen - 2)))
|
||||
ch = ir.Event.KeyEvent.uChar.AsciiChar;
|
||||
if ((UCHAR)ch >= 32 && (charcount != (maxlen - 2)))
|
||||
#endif /* _UNICODE */
|
||||
{
|
||||
/* insert character into string... */
|
||||
if (bInsert && current != charcount)
|
||||
{
|
||||
/* If this character insertion will cause screen scrolling,
|
||||
* adjust the saved origin of the command prompt. */
|
||||
tempscreen = _tcslen(str + current) + curx;
|
||||
if ((tempscreen % maxx) == (maxx - 1) &&
|
||||
(tempscreen / maxx) + cury == (maxy - 1))
|
||||
{
|
||||
orgy--;
|
||||
cury--;
|
||||
}
|
||||
{
|
||||
/* insert character into string... */
|
||||
if (bInsert && current != charcount)
|
||||
{
|
||||
/* If this character insertion will cause screen scrolling,
|
||||
* adjust the saved origin of the command prompt. */
|
||||
tempscreen = _tcslen(str + current) + curx;
|
||||
if ((tempscreen % maxx) == (maxx - 1) &&
|
||||
(tempscreen / maxx) + cury == (maxy - 1))
|
||||
{
|
||||
orgy--;
|
||||
cury--;
|
||||
}
|
||||
|
||||
for (count = charcount; count > current; count--)
|
||||
str[count] = str[count - 1];
|
||||
str[current++] = ch;
|
||||
if (curx == maxx - 1)
|
||||
curx = 0, cury++;
|
||||
else
|
||||
curx++;
|
||||
ConOutPrintf (_T("%s"), &str[current - 1]);
|
||||
SetCursorXY (curx, cury);
|
||||
charcount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (current == charcount)
|
||||
charcount++;
|
||||
str[current++] = ch;
|
||||
if (GetCursorX () == maxx - 1 && GetCursorY () == maxy - 1)
|
||||
orgy--, cury--;
|
||||
if (GetCursorX () == maxx - 1)
|
||||
curx = 0, cury++;
|
||||
else
|
||||
curx++;
|
||||
ConOutChar (ch);
|
||||
}
|
||||
}
|
||||
#if 0
|
||||
else
|
||||
{
|
||||
MessageBeep (-1);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
}
|
||||
for (count = charcount; count > current; count--)
|
||||
str[count] = str[count - 1];
|
||||
str[current++] = ch;
|
||||
if (curx == maxx - 1)
|
||||
curx = 0, cury++;
|
||||
else
|
||||
curx++;
|
||||
ConOutPrintf (_T("%s"), &str[current - 1]);
|
||||
SetCursorXY (curx, cury);
|
||||
charcount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (current == charcount)
|
||||
charcount++;
|
||||
str[current++] = ch;
|
||||
if (GetCursorX () == maxx - 1 && GetCursorY () == maxy - 1)
|
||||
orgy--, cury--;
|
||||
if (GetCursorX () == maxx - 1)
|
||||
curx = 0, cury++;
|
||||
else
|
||||
curx++;
|
||||
ConOutChar (ch);
|
||||
}
|
||||
}
|
||||
|
||||
wLastKey = ir.Event.KeyEvent.wVirtualKeyCode;
|
||||
}
|
||||
while (ir.Event.KeyEvent.wVirtualKeyCode != VK_RETURN);
|
||||
while (!bReturn);
|
||||
|
||||
SetCursorType (bInsert, TRUE);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue