diff --git a/reactos/win32ss/user/winsrv/consrv/condrv/coninput.c b/reactos/win32ss/user/winsrv/consrv/condrv/coninput.c index b009c84f006..3b4777c1468 100644 --- a/reactos/win32ss/user/winsrv/consrv/condrv/coninput.c +++ b/reactos/win32ss/user/winsrv/consrv/condrv/coninput.c @@ -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; diff --git a/reactos/win32ss/user/winsrv/consrv/condrv/console.c b/reactos/win32ss/user/winsrv/consrv/condrv/console.c index 338be5abaec..e756eb526cb 100644 --- a/reactos/win32ss/user/winsrv/consrv/condrv/console.c +++ b/reactos/win32ss/user/winsrv/consrv/condrv/console.c @@ -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 diff --git a/reactos/win32ss/user/winsrv/consrv/condrv/text.c b/reactos/win32ss/user/winsrv/consrv/condrv/text.c index afe3afe661b..fe99b38e67d 100644 --- a/reactos/win32ss/user/winsrv/consrv/condrv/text.c +++ b/reactos/win32ss/user/winsrv/consrv/condrv/text.c @@ -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; } diff --git a/reactos/win32ss/user/winsrv/consrv/lineinput.c b/reactos/win32ss/user/winsrv/consrv/lineinput.c index dcd53d60cd2..a9ffc8dd191 100644 --- a/reactos/win32ss/user/winsrv/consrv/lineinput.c +++ b/reactos/win32ss/user/winsrv/consrv/lineinput.c @@ -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); } } } diff --git a/reactos/win32ss/user/winsrv/consrv/settings.c b/reactos/win32ss/user/winsrv/consrv/settings.c index 1775d1d3e79..ec7042a65e3 100644 --- a/reactos/win32ss/user/winsrv/consrv/settings.c +++ b/reactos/win32ss/user/winsrv/consrv/settings.c @@ -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';