reactos/base
Hermès Bélusca-Maïto ea5728b5f3
[SETUPLIB] SetupCreateDirectory(): Don't assume the form of the directory prefix (#7257)
Addendum to commit 32e6eed760 (r63715)
CORE-5982

The function assumed that the directory path name to be created
always starts with a harddisk-partition root device name of the form:

  \Device\HarddiskX\PartitionY\

Indeed, it can be (when using the volume manager) of the form:

  \Device\HarddiskVolumeN\

and could even have a different format if trying to install ReactOS
on an external removable drive or other weird device.

Since the format of this prefix is not 100% always the same,
a different way to create the sub-directories is needed.
The nested-directory creation algorithm is changed as follows:

Suppose that the directory to be created is:

  \Device\HarddiskVolume1\ReactOS\system32\drivers

The function first loops backwards each path component in order
to find the deepest existing sub-directory: it will try to verify
whether each of the following sub-directories exist, successively:

  \Device\HarddiskVolume1\ReactOS\system32\drivers
  \Device\HarddiskVolume1\ReactOS\system32\
  \Device\HarddiskVolume1\ReactOS\
  \Device\HarddiskVolume1\

(Notice the trailing path separators kept in this step.)
In principle, this root device FS directory must exist (since the
volume has been formatted previously). Once found, the function will
then create each of the sub-directories in turn:

  \Device\HarddiskVolume1\ReactOS
  \Device\HarddiskVolume1\ReactOS\system32
  \Device\HarddiskVolume1\ReactOS\system32\drivers

----

An alternative to the fix could be to always specify the root device
name in a separate parameter, but this hasn't been pursued here so as
to not modify all the callers of this function.
2024-08-22 20:40:35 +02:00
..
applications [TRANSLATION] Improve Italian (it-IT) translation part 2 (#7248) 2024-08-21 01:29:34 +02:00
services [UMPNPMGR] Add requirements list support to PNP_GetFirstLogConf and PNP_GetNextLogConf 2024-07-14 16:57:17 +02:00
setup [SETUPLIB] SetupCreateDirectory(): Don't assume the form of the directory prefix (#7257) 2024-08-22 20:40:35 +02:00
shell [RSHELL] Fix file headers (#7239) 2024-08-12 04:47:02 +09:00
system [TRANSLATION] Improve Italian (it-IT) translation part 2 (#7248) 2024-08-21 01:29:34 +02:00
CMakeLists.txt