◐ Shell
clean mode source ↗

lib: handle superscript variants on windows device · nodejs/node@e91b54d

Original file line numberDiff line numberDiff line change

@@ -73,6 +73,8 @@ const WINDOWS_RESERVED_NAMES = [

7373

'CON', 'PRN', 'AUX', 'NUL',

7474

'COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9',

7575

'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9',

76+

'COM\xb9', 'COM\xb2', 'COM\xb3',

77+

'LPT\xb9', 'LPT\xb2', 'LPT\xb3',

7678

];

7779
7880

function isWindowsReservedName(path, colonIndex) {

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' },