mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 09:03:25 +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;
|
WORD wLastKey = 0;
|
||||||
TCHAR ch;
|
TCHAR ch;
|
||||||
BOOL bContinue=FALSE;/*is TRUE the second case will not be executed*/
|
BOOL bContinue=FALSE;/*is TRUE the second case will not be executed*/
|
||||||
|
BOOL bReturn = FALSE;
|
||||||
TCHAR szPath[MAX_PATH];
|
TCHAR szPath[MAX_PATH];
|
||||||
|
|
||||||
/* get screen size */
|
/* get screen size */
|
||||||
|
@ -156,6 +157,9 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
||||||
|
bReturn = FALSE;
|
||||||
|
|
||||||
ConInKey (&ir);
|
ConInKey (&ir);
|
||||||
|
|
||||||
if (ir.Event.KeyEvent.dwControlKeyState &
|
if (ir.Event.KeyEvent.dwControlKeyState &
|
||||||
|
@ -406,6 +410,14 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
||||||
#endif
|
#endif
|
||||||
break;
|
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:
|
case VK_RETURN:
|
||||||
/* end input, return to main */
|
/* end input, return to main */
|
||||||
#ifdef FEATURE_HISTORY
|
#ifdef FEATURE_HISTORY
|
||||||
|
@ -415,6 +427,7 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
||||||
#endif
|
#endif
|
||||||
ConInDummy ();
|
ConInDummy ();
|
||||||
ConOutChar (_T('\n'));
|
ConOutChar (_T('\n'));
|
||||||
|
bReturn = TRUE;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case VK_ESCAPE:
|
case VK_ESCAPE:
|
||||||
|
@ -497,65 +510,57 @@ VOID ReadCommand (LPTSTR str, INT maxlen)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
}
|
||||||
#ifdef _UNICODE
|
#ifdef _UNICODE
|
||||||
ch = ir.Event.KeyEvent.uChar.UnicodeChar;
|
ch = ir.Event.KeyEvent.uChar.UnicodeChar;
|
||||||
if ((ch >= 32 && ch <= 255) && (charcount != (maxlen - 2)))
|
if ((ch >= 32 && ch <= 255) && (charcount != (maxlen - 2)))
|
||||||
#else
|
#else
|
||||||
ch = ir.Event.KeyEvent.uChar.AsciiChar;
|
ch = ir.Event.KeyEvent.uChar.AsciiChar;
|
||||||
if ((UCHAR)ch >= 32 && (charcount != (maxlen - 2)))
|
if ((UCHAR)ch >= 32 && (charcount != (maxlen - 2)))
|
||||||
#endif /* _UNICODE */
|
#endif /* _UNICODE */
|
||||||
{
|
{
|
||||||
/* insert character into string... */
|
/* insert character into string... */
|
||||||
if (bInsert && current != charcount)
|
if (bInsert && current != charcount)
|
||||||
{
|
{
|
||||||
/* If this character insertion will cause screen scrolling,
|
/* If this character insertion will cause screen scrolling,
|
||||||
* adjust the saved origin of the command prompt. */
|
* adjust the saved origin of the command prompt. */
|
||||||
tempscreen = _tcslen(str + current) + curx;
|
tempscreen = _tcslen(str + current) + curx;
|
||||||
if ((tempscreen % maxx) == (maxx - 1) &&
|
if ((tempscreen % maxx) == (maxx - 1) &&
|
||||||
(tempscreen / maxx) + cury == (maxy - 1))
|
(tempscreen / maxx) + cury == (maxy - 1))
|
||||||
{
|
{
|
||||||
orgy--;
|
orgy--;
|
||||||
cury--;
|
cury--;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (count = charcount; count > current; count--)
|
for (count = charcount; count > current; count--)
|
||||||
str[count] = str[count - 1];
|
str[count] = str[count - 1];
|
||||||
str[current++] = ch;
|
str[current++] = ch;
|
||||||
if (curx == maxx - 1)
|
if (curx == maxx - 1)
|
||||||
curx = 0, cury++;
|
curx = 0, cury++;
|
||||||
else
|
else
|
||||||
curx++;
|
curx++;
|
||||||
ConOutPrintf (_T("%s"), &str[current - 1]);
|
ConOutPrintf (_T("%s"), &str[current - 1]);
|
||||||
SetCursorXY (curx, cury);
|
SetCursorXY (curx, cury);
|
||||||
charcount++;
|
charcount++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (current == charcount)
|
if (current == charcount)
|
||||||
charcount++;
|
charcount++;
|
||||||
str[current++] = ch;
|
str[current++] = ch;
|
||||||
if (GetCursorX () == maxx - 1 && GetCursorY () == maxy - 1)
|
if (GetCursorX () == maxx - 1 && GetCursorY () == maxy - 1)
|
||||||
orgy--, cury--;
|
orgy--, cury--;
|
||||||
if (GetCursorX () == maxx - 1)
|
if (GetCursorX () == maxx - 1)
|
||||||
curx = 0, cury++;
|
curx = 0, cury++;
|
||||||
else
|
else
|
||||||
curx++;
|
curx++;
|
||||||
ConOutChar (ch);
|
ConOutChar (ch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if 0
|
|
||||||
else
|
|
||||||
{
|
|
||||||
MessageBeep (-1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
|
|
||||||
}
|
|
||||||
wLastKey = ir.Event.KeyEvent.wVirtualKeyCode;
|
wLastKey = ir.Event.KeyEvent.wVirtualKeyCode;
|
||||||
}
|
}
|
||||||
while (ir.Event.KeyEvent.wVirtualKeyCode != VK_RETURN);
|
while (!bReturn);
|
||||||
|
|
||||||
SetCursorType (bInsert, TRUE);
|
SetCursorType (bInsert, TRUE);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue