mirror of
https://github.com/reactos/reactos.git
synced 2024-10-08 10:24:06 +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->LineUpPressed = FALSE;
|
||||
Console->LineInsertToggle = 0;
|
||||
Console->LineInsertToggle = Console->InsertMode;
|
||||
Console->LineWakeupMask = ReadControl->dwCtrlWakeupMask;
|
||||
Console->LineSize = ReadControl->nInitialChars;
|
||||
Console->LinePos = Console->LineSize;
|
||||
|
|
|
@ -569,7 +569,8 @@ ConDrvInitConsole(OUT PHANDLE NewConsoleHandle,
|
|||
Console->InsertMode = ConsoleInfo->InsertMode;
|
||||
Console->LineBuffer = NULL;
|
||||
Console->LineMaxSize = Console->LineSize = Console->LinePos = 0;
|
||||
Console->LineComplete = Console->LineUpPressed = Console->LineInsertToggle = FALSE;
|
||||
Console->LineComplete = Console->LineUpPressed = FALSE;
|
||||
Console->LineInsertToggle = Console->InsertMode;
|
||||
// LineWakeupMask
|
||||
|
||||
// FIXME: This is terminal-specific !! VV
|
||||
|
|
|
@ -298,7 +298,7 @@ ConioEffectiveCursorSize(PCONSOLE Console, DWORD Scale)
|
|||
{
|
||||
DWORD Size = (Console->ActiveBuffer->CursorInfo.dwSize * Scale + 99) / 100;
|
||||
/* 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;
|
||||
}
|
||||
|
|
|
@ -444,8 +444,8 @@ LineInputKeyDown(PCONSOLE Console, KEY_EVENT_RECORD *KeyEvent)
|
|||
else
|
||||
{
|
||||
/* Normal character */
|
||||
BOOL Overstrike = Console->LineInsertToggle && Console->LinePos != Console->LineSize;
|
||||
LineInputEdit(Console, Overstrike, 1, &KeyEvent->uChar.UnicodeChar);
|
||||
BOOL Overstrike = !Console->LineInsertToggle && (Console->LinePos != Console->LineSize);
|
||||
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"))
|
||||
{
|
||||
ConsoleInfo->HistoryNoDup = (BOOLEAN)Value;
|
||||
ConsoleInfo->HistoryNoDup = !!Value;
|
||||
RetVal = TRUE;
|
||||
}
|
||||
else if (!wcscmp(szValueName, L"QuickEdit"))
|
||||
{
|
||||
ConsoleInfo->QuickEdit = (BOOLEAN)Value;
|
||||
ConsoleInfo->QuickEdit = !!Value;
|
||||
RetVal = TRUE;
|
||||
}
|
||||
else if (!wcscmp(szValueName, L"InsertMode"))
|
||||
{
|
||||
ConsoleInfo->InsertMode = (BOOLEAN)Value;
|
||||
ConsoleInfo->InsertMode = !!Value;
|
||||
RetVal = TRUE;
|
||||
}
|
||||
else if (!wcscmp(szValueName, L"ScreenBufferSize"))
|
||||
|
@ -421,7 +421,7 @@ ConSrvGetDefaultSettings(IN OUT PCONSOLE_INFO ConsoleInfo,
|
|||
|
||||
memcpy(ConsoleInfo->Colors, s_Colors, sizeof(s_Colors));
|
||||
|
||||
// ConsoleInfo->CodePage;
|
||||
ConsoleInfo->CodePage = 0;
|
||||
|
||||
ConsoleInfo->ConsoleTitle[0] = L'\0';
|
||||
|
||||
|
|
Loading…
Reference in a new issue