Skip to content

Use LF line endings in selection text#8

Merged
tomlm merged 1 commit into
tomlm:mainfrom
jchristn:fix/selection-line-endings
Jun 21, 2026
Merged

Use LF line endings in selection text#8
tomlm merged 1 commit into
tomlm:mainfrom
jchristn:fix/selection-line-endings

Conversation

@jchristn

@jchristn jchristn commented Jun 1, 2026

Copy link
Copy Markdown
Contributor

Summary

This makes terminal selection text use \n as the internal line separator instead of StringBuilder.AppendLine(), which emits platform-dependent line endings.

On Windows, AppendLine() produces CRLF before the host application or clipboard layer has a chance to apply its own platform normalization. Keeping XTerm.NET selection text LF-only gives host integrations one clear place to decide clipboard/export line-ending policy.

Validation

  • dotnet test src\XTerm.NET.slnx
    • 585 passed, 0 failed

@jchristn jchristn marked this pull request as ready for review June 1, 2026 23:17
@tomlm tomlm requested a review from Copilot June 21, 2026 04:21

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR standardizes selection text line separators to always use LF (\n) instead of StringBuilder.AppendLine(), avoiding platform-dependent CRLF insertion (notably on Windows) before host/clipboard normalization can be applied.

Changes:

  • Updated SelectionManager.GetSelectionText() to append '\n' between non-wrapped selected lines.
  • Added a unit test asserting selection text contains LF-only line endings and no carriage returns.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
src/XTerm.NET/Selection/SelectionManager.cs Replaces AppendLine() with Append('\n') to ensure LF-only selection output.
src/XTerm.NET.Tests/SelectionTests.cs Adds coverage to verify selection text uses LF line endings and excludes \r.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tomlm tomlm merged commit b6d06b7 into tomlm:main Jun 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants