[PR #11915] Parse UTF-16 surrogates pairs for calculating pattern's position #28811

Open
opened 2026-01-31 09:30:55 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/11915

State: closed
Merged: Yes


Summary of the Pull Request

Properly handle UTF-16 surrogates when calculating the position of matched pattern.

Fix #8709

References

b88ffb21b0/src/buffer/out/search.cpp (L335-L339)

PR Checklist

  • Closes ISE integration (#8709)
  • CLA signed. If not, go over here and sign the CLA
  • Tests added/passed
  • Documentation updated. If checked, please file a pull request on our docs repo and link it here: #xxx
  • Schema updated.
  • I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Detailed Description of the Pull Request / Additional comments

use Utf16Parser::Parse to handle code points from U+010000 to U+10FFFF in UTF-16.

Validation Steps Performed

image

also the case by @mas90 https://github.com/microsoft/terminal/issues/8709#issuecomment-884915485:

image

**Original Pull Request:** https://github.com/microsoft/terminal/pull/11915 **State:** closed **Merged:** Yes --- <!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request Properly handle UTF-16 surrogates when calculating the position of matched pattern. Fix #8709 <!-- Other than the issue solved, is this relevant to any other issues/existing PRs? --> ## References https://github.com/microsoft/terminal/blob/b88ffb21b0725331877ba76bac5a79a4c21eaa03/src/buffer/out/search.cpp#L335-L339 <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist * [ ] Closes #8709 * [x] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/Terminal) and sign the CLA * [ ] Tests added/passed * [ ] Documentation updated. If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/terminal) and link it here: #xxx * [ ] Schema updated. * [ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx <!-- Provide a more detailed description of the PR, other things fixed or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments use `Utf16Parser::Parse` to handle code points from U+010000 to U+10FFFF in UTF-16. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed ![image](https://user-images.githubusercontent.com/1068203/145421736-c842c7d4-0136-42d0-ad72-f004f58d9e3b.png) also the case by @mas90 https://github.com/microsoft/terminal/issues/8709#issuecomment-884915485: ![image](https://user-images.githubusercontent.com/1068203/145420264-3fe220b4-42c5-44ac-aa94-4e604b164ed3.png)
claunia added the pull-request label 2026-01-31 09:30:55 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#28811