The cursor position looks to be incorrect after output IVS ( Ideographic Variation Sequence : U+E0100 to U+E01EF) #11997

Open
opened 2026-01-31 03:03:28 +00:00 by claunia · 0 comments
Owner

Originally created by @hymkor on GitHub (Jan 10, 2021).

Environment

Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd]
  • Win32NT 10.0.19041.0 Microsoft Windows NT 10.0.19041.0
Windows Terminal version (if applicable):
  • 1.4.3243.0
Any other software?
  • go1.15.6 windows/amd64 OR node.js v15.5.1

( I consider that any programming language program that supports Unicode(UTF8) can reproduce the behaviour. )

Steps to reproduce

By Golang, execute go run sample.go

// sample.go
package main

import (
	"fmt"
)

func main() {
	fmt.Print("[\u908A\U000E0104]\n")
	fmt.Print("[\u908A\U000E0104")
	fmt.Print("]\n")
	fmt.Print("[ABCD")
	fmt.Print("]\n")
}

Or, on node.js 's command line , execute as below

process.stdout.write("[\u908A\u{E0104}]\n")
process.stdout.write("[\u908A\u{E0104}") ; process.stdout.write("]\n")
process.stdout.write("[ABCD") ; process.stdout.write("]\n")

Expected behavior

I expect that these text are output as below.

[邊󠄄]
[邊󠄄]
[ABCD]

The first line and the second line are same and no blank(space) exist anywhere.
The third line exists to show that the print/write function does not insert any blank.

Actual behavior

The cursor position after output IVS( Ideographic Variation Sequence : U+E0100 to U+E01EF) seems to be incorrect

[邊󠄄]
[邊󠄄 ]
[ABCD]

image

image

Would you please confirm the behaviour above ?

Originally created by @hymkor on GitHub (Jan 10, 2021). <!-- 🚨🚨🚨🚨🚨🚨🚨🚨🚨🚨 I ACKNOWLEDGE THE FOLLOWING BEFORE PROCEEDING: 1. If I delete this entire template and go my own path, the core team may close my issue without further explanation or engagement. 2. If I list multiple bugs/concerns in this one issue, the core team may close my issue without further explanation or engagement. 3. If I write an issue that has many duplicates, the core team may close my issue without further explanation or engagement (and without necessarily spending time to find the exact duplicate ID number). 4. If I leave the title incomplete when filing the issue, the core team may close my issue without further explanation or engagement. 5. If I file something completely blank in the body, the core team may close my issue without further explanation or engagement. All good? Then proceed! --> <!-- This bug tracker is monitored by Windows Terminal development team and other technical folks. **Important: When reporting BSODs or security issues, DO NOT attach memory dumps, logs, or traces to Github issues**. Instead, send dumps/traces to secure@microsoft.com, referencing this GitHub issue. If this is an application crash, please also provide a Feedback Hub submission link so we can find your diagnostic data on the backend. Use the category "Apps > Windows Terminal (Preview)" and choose "Share My Feedback" after submission to get the link. Please use this form and describe your issue, concisely but precisely, with as much detail as possible. --> # Environment ```none Windows build number: [run `[Environment]::OSVersion` for powershell, or `ver` for cmd] ``` * Win32NT 10.0.19041.0 Microsoft Windows NT 10.0.19041.0 ``` Windows Terminal version (if applicable): ``` * 1.4.3243.0 ``` Any other software? ``` * go1.15.6 windows/amd64 **OR** node.js v15.5.1 ( I consider that any programming language program that supports Unicode(UTF8) can reproduce the behaviour. ) # Steps to reproduce By **Golang**, execute `go run sample.go` ```sample.go // sample.go package main import ( "fmt" ) func main() { fmt.Print("[\u908A\U000E0104]\n") fmt.Print("[\u908A\U000E0104") fmt.Print("]\n") fmt.Print("[ABCD") fmt.Print("]\n") } ``` Or, on **node.js** 's command line , execute as below ```js process.stdout.write("[\u908A\u{E0104}]\n") process.stdout.write("[\u908A\u{E0104}") ; process.stdout.write("]\n") process.stdout.write("[ABCD") ; process.stdout.write("]\n") ``` # Expected behavior <!-- A description of what you're expecting, possibly containing screenshots or reference material. --> I expect that these text are output as below. ``` [邊󠄄] [邊󠄄] [ABCD] ``` The first line and the second line are same and no blank(space) exist anywhere. The third line exists to show that the print/write function does not insert any blank. # Actual behavior <!-- What's actually happening? --> The cursor position after output IVS( Ideographic Variation Sequence : U+E0100 to U+E01EF) seems to be incorrect ``` [邊󠄄] [邊󠄄 ] [ABCD] ``` ![image](https://user-images.githubusercontent.com/3752189/104117969-b72fcf00-5368-11eb-8fa9-75d24c3cba15.png) ![image](https://user-images.githubusercontent.com/3752189/104117512-34f1db80-5365-11eb-8a7d-134cc2c54812.png) Would you please confirm the behaviour above ?
claunia added the Resolution-Duplicate label 2026-01-31 03:03:28 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#11997