Skip to content

Commit ffd3425

Browse files
committed
Do not escape emoji
1 parent 72fa41b commit ffd3425

File tree

2 files changed

+5
-14
lines changed

2 files changed

+5
-14
lines changed

internal/engine/quote.go

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package engine
33
import (
44
"fmt"
55
"strings"
6-
"unicode/utf16"
76
"unicode/utf8"
87
)
98

@@ -37,13 +36,6 @@ func Quote(s string) string {
3736
if err != nil {
3837
panic(err)
3938
}
40-
} else if r > 0xFFFF {
41-
// Characters outside BMP need UTF-16 surrogate pairs
42-
r1, r2 := utf16.EncodeRune(r)
43-
_, err = fmt.Fprintf(&b, `\u%04x\u%04x`, r1, r2)
44-
if err != nil {
45-
panic(err)
46-
}
4739
} else if r == utf8.RuneError && width == 1 {
4840
// Invalid UTF-8 sequence - escape the byte
4941
_, err = fmt.Fprintf(&b, `\u%04x`, s[i])

internal/engine/quote_test.go

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,18 +61,17 @@ func TestQuote_ControlCharactersAndDEL(t *testing.T) {
6161
assert.Equal(t, `"\u007f"`, engine.Quote(string([]byte{0x7F})))
6262
}
6363

64-
func TestQuote_BMP_CharactersAsIs(t *testing.T) {
64+
func TestQuote_BMP_Characters_AsIs(t *testing.T) {
6565
// Latin-1 supplement, Cyrillic, CJK BMP characters should appear as-is
6666
assert.Equal(t, "\"café\"", engine.Quote("café"))
6767
assert.Equal(t, "\"Привет\"", engine.Quote("Привет"))
6868
assert.Equal(t, "\"漢字\"", engine.Quote("漢字"))
6969
}
7070

71-
func TestQuote_NonBMP_SurrogatePairs(t *testing.T) {
72-
// Rocket U+1F680 -> \ud83d\ude80
73-
assert.Equal(t, `"\ud83d\ude80"`, engine.Quote("🚀"))
74-
// Musical symbol G clef U+1D11E -> \ud834\udd1e
75-
assert.Equal(t, `"\ud834\udd1e"`, engine.Quote("𝄞"))
71+
func TestQuote_SurrogatePairs_AsIs(t *testing.T) {
72+
assert.Equal(t, `"🚀"`, engine.Quote("🚀"))
73+
assert.Equal(t, `"👍🏻"`, engine.Quote("👍🏻"))
74+
assert.Equal(t, `"𝄞"`, engine.Quote("𝄞"))
7675
}
7776

7877
func TestQuote_InvalidUTF8BytesAreEscaped(t *testing.T) {

0 commit comments

Comments
 (0)