cssnano icon indicating copy to clipboard operation
cssnano copied to clipboard

[Bug]: Case insensitive attribute selector is escaped incorrectly

Open Merri opened this issue 8 months ago • 1 comments

Describe the bug

Given this selector: [data--~="is½" i] {}

Used with HTML like this: <span data--="myThing is½"> or <span data--="MYTHING IS½">.

The processed output selector [data--~=is\BD i] {} will not match due to lacking whitespace.

That output is understood as equivalent of [data--~="is½i"]. Notice the letter i has moved from outside the quotes to inside.

Expected behaviour

The selector should match even after processing.

So either don't escape the ½ and other similar characters, or add one extra whitespace to the output after the escape sequence so that the insensitivity indicator doesn't get understood as part of the string: [data--~=is\BD i] {}

Just in case it isn't obvious; two space characters are required to keep the insensitivity indicator separate.

Steps to reproduce

Run minify with any CSS file that has ½ (or other special character) as the last character of a case insensitive attribute selector.

Version

6.0.1

Preset

(no preset)

Environment

System:
    OS: Windows 10 10.0.19045
    CPU: (16) x64 AMD Ryzen 7 4800HS with Radeon Graphics
    Memory: 6.94 GB / 15.42 GB

Package details

+-- [email protected]
| +-- [email protected]
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | +-- [email protected] deduped
| | | `-- [email protected]
| | |   `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | +-- [email protected]
| | | `-- [email protected] deduped
| | `-- [email protected] deduped
| `-- [email protected] deduped
+-- [email protected]
| +-- [email protected]
| | `-- [email protected] deduped
| +-- [email protected]
| | `-- [email protected] deduped
| `-- [email protected] deduped
`-- [email protected]

Additional context

No response

Merri avatar Oct 18 '23 21:10 Merri