Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Newline Handling of [Microsoft.PowerShell.PSConsoleReadLine]::Insert broken in Windows #3939

Copy link
Copy link
@Callidus2000

Description

@Callidus2000
Issue body actions

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest released version
  • Search the existing issues, especially the pinned issues.

Exception report

N/A

Screenshot

image

image

Environment data

PS Version: 7.3.11 and 7.4
PS HostName: ConsoleHost
PSReadLine Version: 2.3.4
PSReadLine EditMode: Windows
OS: 10.0.19041.1682 (WinBuild.160101.0800)
BufferWidth: 120
BufferHeight: 9001

Steps to reproduce

I've developed a module (CmdFav) which inserts commands into the NEXT prompt. If the command is a multiline command the command string is internally build with StringBuilder.AppendLine(). StringBuilder is using Windows' carriage return + new line (`r`n) instead of just new line (`n). This causes PSConsoleReadLine::Insert to insert visible ^M characters (orange arrow in screenshot) and moves the cursor additional lines to low (red marker in screenshot).

Code to reproduce:

$sb=[System.Text.StringBuilder]::new()
[void]$sb.AppendLine('write-host "Hello"').AppendLine('write-host "World"')
$global:Suggestion = $sb.ToString()
$global:InjectCommand = Register-EngineEvent -SourceIdentifier PowerShell.OnIdle {
    [Microsoft.PowerShell.PSConsoleReadLine]::Insert($global:Suggestion)
    Stop-Job $global:InjectCommand
}

The 'too low cursor' prevents the user to modify the code which is inserted into the prompt in the blank space. If I move the cursor into the blank space and (e.g.) press + the real code is shown, interrupted by the + char.

Expected behavior

  • No ^M visible
  • No blank lines
  • Inserted code should be editable in the right space

Actual behavior

  • Multiline text is postfixed with a ^M
  • After the inserted text additional blank lines are inserted, the cursor is not at the right spot
  • The effective inserted text is hidden in the blank lines and has to be edited there instead in the directly visible part
Reactions are currently unavailable

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-BugIt either shouldn't be doing this or needs an investigation.It either shouldn't be doing this or needs an investigation.Resolution-Fixed

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.