Skip to content

Commit 9eb9423

Browse files
RafaelGSSmarco-ippolito
authored andcommitted
lib: handle superscript variants on windows device
Windows recognizes the 8-bit [ISO/IEC 8859-1](https://en.wikipedia.org/wiki/ISO/IEC_8859-1) superscript digits ¹, ², and ³ as digits and treats them as valid parts of COM# and LPT# device names, making them reserved in every directory. Signed-off-by: RafaelGSS <[email protected]> PR-URL: #59261 Reviewed-By: Robert Nagy <[email protected]> Reviewed-By: Filip Skokan <[email protected]> Reviewed-By: Matteo Collina <[email protected]>
1 parent fa5c5af commit 9eb9423

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

‎lib/path.js‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ const WINDOWS_RESERVED_NAMES = [
7676
'CON','PRN','AUX','NUL',
7777
'COM1','COM2','COM3','COM4','COM5','COM6','COM7','COM8','COM9',
7878
'LPT1','LPT2','LPT3','LPT4','LPT5','LPT6','LPT7','LPT8','LPT9',
79+
'COM\xb9','COM\xb2','COM\xb3',
80+
'LPT\xb9','LPT\xb2','LPT\xb3',
7981
];
8082

8183
functionisWindowsReservedName(path,colonIndex){

‎test/parallel/test-path-win32-normalize-device-names.js‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,18 @@ const normalizeDeviceNameTests = [
4545

4646
{input: 'COM1:',expected: '.\\COM1:.'},
4747
{input: 'COM9:',expected: '.\\COM9:.'},
48+
{input: 'COM¹:',expected: '.\\COM¹:.'},
49+
{input: 'COM²:',expected: '.\\COM²:.'},
50+
{input: 'COM³:',expected: '.\\COM³:.'},
4851
{input: 'COM1:.\\..\\..\\foo',expected: '.\\COM1:..\\..\\foo'},
52+
{input: 'COM¹:.\\..\\..\\foo',expected: '.\\COM¹:..\\..\\foo'},
4953
{input: 'LPT1:',expected: '.\\LPT1:.'},
54+
{input: 'LPT¹:',expected: '.\\LPT¹:.'},
55+
{input: 'LPT²:',expected: '.\\LPT²:.'},
56+
{input: 'LPT³:',expected: '.\\LPT³:.'},
5057
{input: 'LPT9:',expected: '.\\LPT9:.'},
5158
{input: 'LPT1:.\\..\\..\\foo',expected: '.\\LPT1:..\\..\\foo'},
59+
{input: 'LPT¹:.\\..\\..\\foo',expected: '.\\LPT¹:..\\..\\foo'},
5260
{input: 'LpT5:/another/path',expected: '.\\LpT5:another\\path'},
5361

5462
{input: 'C:\\foo',expected: 'C:\\foo'},

0 commit comments

Comments
(0)