reactos/base/shell
Hermès Bélusca-Maïto 8ce4b73920
[CMD] Correctly honour the "short" path flag in %~var enhanced variables expansion. (#5433)
CORE-14096, CORE-8002

Patch based on an earlier fix attempt by Doug Lyons.
It should fix the problem observed by contributor 'whindsaks' in PR #5403.

This bug has always been present since the implementation of this feature
in commit a1eb1f6ba (r40024).

The expansion of %~dpX ennhanced variables used to incorrectly show some
directories in uppercase. For example:

```batch
:: testcmd.cmd
echo '%~dp0'
echo '%~dps0'
echo '%~s0'
```

would show:

```
P:\Documents and Settings\Administrator\Desktop>echo 'P:\Documents and Settings\Administrator\DESKTOP\'
'P:\Documents and Settings\Administrator\DESKTOP\'

P:\Documents and Settings\Administrator\Desktop>echo 'P:\DOCUME~1\ADMINI~1\DESKTOP\'
'P:\DOCUME~1\ADMINI~1\DESKTOP\'

P:\Documents and Settings\Administrator\Desktop>echo 'P:\DOCUME~1\ADMINI~1\DESKTOP\testcmd.cmd'
'P:\DOCUME~1\ADMINI~1\DESKTOP\testcmd.cmd'
```

instead of the correct:

```
P:\Documents and Settings\Administrator\Desktop>echo 'P:\Documents and Settings\Administrator\Desktop\'
'P:\Documents and Settings\Administrator\Desktop\'

P:\Documents and Settings\Administrator\Desktop>echo 'P:\DOCUME~1\ADMINI~1\DESKTOP\'
'P:\DOCUME~1\ADMINI~1\DESKTOP\'

P:\Documents and Settings\Administrator\Desktop>echo 'P:\DOCUME~1\ADMINI~1\DESKTOP\testcmd.cmd'
'P:\DOCUME~1\ADMINI~1\DESKTOP\testcmd.cmd'
```

The reason was a wrong handling of the presence (or absence) of the
"short" path format specifier 's' in those enhanced variables.
In the examples above, the "Desktop" sub-directory has a short-path
name available (because it is in a FAT partition). The short-path name
was used some times also even with the 's' specifier absent.

Co-authored-by: Doug Lyons <douglyons@douglyons.com>
2023-07-14 14:36:55 +02:00
..
cmd [CMD] Correctly honour the "short" path flag in %~var enhanced variables expansion. (#5433) 2023-07-14 14:36:55 +02:00
explorer [EXPLORER] Improve the minimize-condition on Win+D (#5423) 2023-07-14 18:03:15 +09:00
filebrowser [FILEBROWSER] 2018-11-27 10:33:45 +02:00
progman [NOTEPAD][WORDPAD][MSPAINT]... Use newer file open dialog (#3571) 2021-04-01 22:50:32 +09:00
rshell [FORMATTING] Remove trailing whitespace. Addendum to 34593d93. 2021-09-13 03:52:22 +02:00
CMakeLists.txt