mirror of
https://github.com/reactos/reactos.git
synced 2024-10-20 16:06:27 +00:00
[CONSRV]
Fix Insert mode. svn path=/trunk/; revision=62700
This commit is contained in:
parent
cd05473bf9
commit
1f1924d7f1
|
@ -260,7 +260,7 @@ ConDrvReadConsole(IN PCONSOLE Console,
|
||||||
|
|
||||||
Console->LineComplete = FALSE;
|
Console->LineComplete = FALSE;
|
||||||
Console->LineUpPressed = FALSE;
|
Console->LineUpPressed = FALSE;
|
||||||
Console->LineInsertToggle = 0;
|
Console->LineInsertToggle = Console->InsertMode;
|
||||||
Console->LineWakeupMask = ReadControl->dwCtrlWakeupMask;
|
Console->LineWakeupMask = ReadControl->dwCtrlWakeupMask;
|
||||||
Console->LineSize = ReadControl->nInitialChars;
|
Console->LineSize = ReadControl->nInitialChars;
|
||||||
Console->LinePos = Console->LineSize;
|
Console->LinePos = Console->LineSize;
|
||||||
|
|
|
@ -569,7 +569,8 @@ ConDrvInitConsole(OUT PHANDLE NewConsoleHandle,
|
||||||
Console->InsertMode = ConsoleInfo->InsertMode;
|
Console->InsertMode = ConsoleInfo->InsertMode;
|
||||||
Console->LineBuffer = NULL;
|
Console->LineBuffer = NULL;
|
||||||
Console->LineMaxSize = Console->LineSize = Console->LinePos = 0;
|
Console->LineMaxSize = Console->LineSize = Console->LinePos = 0;
|
||||||
Console->LineComplete = Console->LineUpPressed = Console->LineInsertToggle = FALSE;
|
Console->LineComplete = Console->LineUpPressed = FALSE;
|
||||||
|
Console->LineInsertToggle = Console->InsertMode;
|
||||||
// LineWakeupMask
|
// LineWakeupMask
|
||||||
|
|
||||||
// FIXME: This is terminal-specific !! VV
|
// FIXME: This is terminal-specific !! VV
|
||||||
|
|
|
@ -298,7 +298,7 @@ ConioEffectiveCursorSize(PCONSOLE Console, DWORD Scale)
|
||||||
{
|
{
|
||||||
DWORD Size = (Console->ActiveBuffer->CursorInfo.dwSize * Scale + 99) / 100;
|
DWORD Size = (Console->ActiveBuffer->CursorInfo.dwSize * Scale + 99) / 100;
|
||||||
/* If line input in progress, perhaps adjust for insert toggle */
|
/* If line input in progress, perhaps adjust for insert toggle */
|
||||||
if (Console->LineBuffer && !Console->LineComplete && Console->LineInsertToggle)
|
if (Console->LineBuffer && !Console->LineComplete && (Console->InsertMode ? !Console->LineInsertToggle : Console->LineInsertToggle))
|
||||||
return (Size * 2 <= Scale) ? (Size * 2) : (Size / 2);
|
return (Size * 2 <= Scale) ? (Size * 2) : (Size / 2);
|
||||||
return Size;
|
return Size;
|
||||||
}
|
}
|
||||||
|
|
|
@ -444,8 +444,8 @@ LineInputKeyDown(PCONSOLE Console, KEY_EVENT_RECORD *KeyEvent)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* Normal character */
|
/* Normal character */
|
||||||
BOOL Overstrike = Console->LineInsertToggle && Console->LinePos != Console->LineSize;
|
BOOL Overstrike = !Console->LineInsertToggle && (Console->LinePos != Console->LineSize);
|
||||||
LineInputEdit(Console, Overstrike, 1, &KeyEvent->uChar.UnicodeChar);
|
LineInputEdit(Console, (Overstrike ? 1 : 0), 1, &KeyEvent->uChar.UnicodeChar);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -267,17 +267,17 @@ ConSrvReadUserSettings(IN OUT PCONSOLE_INFO ConsoleInfo,
|
||||||
}
|
}
|
||||||
else if (!wcscmp(szValueName, L"HistoryNoDup"))
|
else if (!wcscmp(szValueName, L"HistoryNoDup"))
|
||||||
{
|
{
|
||||||
ConsoleInfo->HistoryNoDup = (BOOLEAN)Value;
|
ConsoleInfo->HistoryNoDup = !!Value;
|
||||||
RetVal = TRUE;
|
RetVal = TRUE;
|
||||||
}
|
}
|
||||||
else if (!wcscmp(szValueName, L"QuickEdit"))
|
else if (!wcscmp(szValueName, L"QuickEdit"))
|
||||||
{
|
{
|
||||||
ConsoleInfo->QuickEdit = (BOOLEAN)Value;
|
ConsoleInfo->QuickEdit = !!Value;
|
||||||
RetVal = TRUE;
|
RetVal = TRUE;
|
||||||
}
|
}
|
||||||
else if (!wcscmp(szValueName, L"InsertMode"))
|
else if (!wcscmp(szValueName, L"InsertMode"))
|
||||||
{
|
{
|
||||||
ConsoleInfo->InsertMode = (BOOLEAN)Value;
|
ConsoleInfo->InsertMode = !!Value;
|
||||||
RetVal = TRUE;
|
RetVal = TRUE;
|
||||||
}
|
}
|
||||||
else if (!wcscmp(szValueName, L"ScreenBufferSize"))
|
else if (!wcscmp(szValueName, L"ScreenBufferSize"))
|
||||||
|
@ -421,7 +421,7 @@ ConSrvGetDefaultSettings(IN OUT PCONSOLE_INFO ConsoleInfo,
|
||||||
|
|
||||||
memcpy(ConsoleInfo->Colors, s_Colors, sizeof(s_Colors));
|
memcpy(ConsoleInfo->Colors, s_Colors, sizeof(s_Colors));
|
||||||
|
|
||||||
// ConsoleInfo->CodePage;
|
ConsoleInfo->CodePage = 0;
|
||||||
|
|
||||||
ConsoleInfo->ConsoleTitle[0] = L'\0';
|
ConsoleInfo->ConsoleTitle[0] = L'\0';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue