Commit graph

260 commits

Author SHA1 Message Date
Hermès Bélusca-Maïto
e589513b46
[USETUP] As evoked in 27603a10 (r74943), adapt the code in bootsup.c to abstract the manipulation of freeldr.ini and boot.ini, and make it use the new features of bldrsup.c committed in 27603a10 (r74952).
In particular the helper functions CreateCommonFreeLdrSections() and (Un)protectBootIni() are now removed from there (they are used in bldrsup.c only).
This should pave the way for future integration with other sorts of NT boot loaders (BootMgr and (u)EFI boot loader).

svn path=/branches/setup_improvements/; revision=74954
2018-10-14 23:45:45 +02:00
Hermès Bélusca-Maïto
c2f7758e96
[SETUPLIB] Adapt the code in osdetect.c to make it use the new features of bldrsup.c committed in 27603a10 (r74952).
svn path=/branches/setup_improvements/; revision=74953
2018-10-14 23:37:44 +02:00
Hermès Bélusca-Maïto
27603a101c
[SETUPLIB] Introduce a lot of (Work in progress) functions to manipulate boot entries from different boot "stores".
This concerns so far, only freeldr.ini and to an extent, boot.ini, but planning in the future to add support for registry-oriented BCD
as well as possibly direct (u)EFI entries, using the corresponding NT functions.
This code is so far only used in osdetect.c, but will be soon used by usetup's bootsup.c (note that some helper functions: CreateCommonFreeLdrSections()
and (Un)protectBootIni() are already taken from it and used in bldrsup.c).
- In EnumerateNTOSBootEntries(), continue enumerating the boot entries until the user callback returns an status code that is not successful.
- Remove some old code from osdetect.c; use directly BootEntry->FriendlyName when building the display names of the available installations, since now
  BootEntry->FriendlyName is a PCWSTR (and not a UNICODE_STRING anymore).

svn path=/branches/setup_improvements/; revision=74943

[SETUPLIB] Make the NTOS_BOOT_ENTRY structure more generic, so that it can wrap around either actual NTOS boot entry options, or FreeLdr-like boot-sector options.

In a sense, the NTOS_BOOT_ENTRY structure now looks much more like the NT structure "BOOT_ENTRY".
- Adapt the code in bldrsup.c to these modifications, and re-enable FreeLdr-like boot-sector-file support code that was commented out.
More code cleanup will follow later.

svn path=/branches/setup_improvements/; revision=74952
2018-10-14 23:27:17 +02:00
Hermès Bélusca-Maïto
57402ee91e
[USETUP] Diverse fixes for path handling.
- Convert almost all swprintf() into StringCchPrintfW() and wcscpy() into StringCchCopyW();
- Explicitly add a trailing path separator to the "\Device\HarddiskX\PartitionY(\)" paths
  when they refer to FS directories (and not to partition objects);
- Remove useless (and half-buggy) "Remove trailing backslash" code.

With that, it is possible to install ReactOS in e.g. C:\ReactOS (as usual), C:\ReactOS\dir1\dir2 (as many dirs as you wish), and also in C:\ (yes yes!).
But in that latter case, a strange bug related to the registry arises...

Additionally:
- Adjust some comments;
- Add some debugging DPRINTs;
- The SetInstallPathValue() is part of the big hack I've mentioned in f51faa4a (r74709).

svn path=/branches/setup_improvements/; revision=74717
2018-10-14 23:22:55 +02:00
Hermès Bélusca-Maïto
3cb1392eff
[USETUP] When installing new FreeLDR entries for recognized DOS/OS-2 boot loaders, use distinct OS section names. Also, add detection for the Dell Real-Mode Kernel OS (DRMK).
svn path=/branches/setup_improvements/; revision=74932
2018-10-14 21:15:55 +02:00
Hermès Bélusca-Maïto
387e79c92e
[USETUP] Condense the different InstallFatXYBootSectorToDisk & ToFile functions into a InstallFatXYBootSector() function that is called by both the ToDisk and ToFile flavours.
Also, trim any potential trailing path separator from the NT disk partition path before opening the partition object itself for read/write access.

svn path=/branches/setup_improvements/; revision=74715
2018-10-14 21:15:34 +02:00
Hermès Bélusca-Maïto
f13a379153
[USETUP] Move some functions around, but no functional code changes otherwise.
svn path=/branches/setup_improvements/; revision=74714
2018-10-14 21:14:31 +02:00
Hermès Bélusca-Maïto
5b14b6f581
[WELCOME] Minor usage improvements.
- Don't hardcode the installer file name in ExpandInstallerPath() but
  provide it from a parameter. Return TRUE/FALSE if the installer file
  is/is not found.

- Expand any environment string present in the items command line.

- Enable/disable the menu buttons depending on whether or not an
  associated command is present.

- Enable mirroring from resources.
2018-10-08 21:00:14 +02:00
Hermès Bélusca-Maïto
a0dae6094e
[WELCOME] Reduce Welcome's SUBSYSTEM requirements to WinNT 4 for x86 builds only, so that we can still show something in old NT OSes. 2018-10-08 21:00:14 +02:00
Hermès Bélusca-Maïto
55f9fee412
[WELCOME] Automatically expands the path to the ReactOS installer executable found on the installation media, depending on the ambient CPU architecture.
svn path=/branches/setup_improvements/; revision=75330
2018-10-08 21:00:10 +02:00
Pierre Schweitzer
6a2e979f55
[USETUP] Add missing line jump 2018-10-02 13:34:59 +02:00
Hermès Bélusca-Maïto
e29457aadd
[USETUP] Remove a hardcoded value. 2018-09-29 21:54:48 +02:00
Stanislav Motylkov
13310b3acf [USETUP] Make countdown progress bar smoother 2018-09-14 11:33:50 +02:00
Stanislav Motylkov
b0ecee7b6e [USETUP] Update Russian translation 2018-09-14 11:33:50 +02:00
Katayama Hirofumi MZ
31019e8c0c [TRANSLATION] Update Romanian translation (#851)
Translation from Stefan Fulea.
CORE-15023
2018-09-14 11:04:36 +02:00
Paweł Cholewa
8b37182613 [TRANSLATION] Updated Polish translation in USETUP (#848) 2018-09-09 22:28:02 +02:00
Bișoc George
402ea59af6 [USETUP] Italian translation update 2018-09-09 22:26:39 +02:00
Bișoc George
c1bf18bada [USETUP] Romanian translation update 2018-09-09 22:26:39 +02:00
Nguyễn Thanh Sơn
f47d0023b7 [SETUP][REACTOS] Added Vietnamese translation. (#716) 2018-09-09 17:34:21 +02:00
Hermès Bélusca-Maïto
320e0d01ae
[USETUP] Update French translation. 2018-09-09 17:24:38 +02:00
Bișoc George
e5c0bfacf1
[USETUP] Implement the shutdown timeout progress bar. (#833)
- Add the MUI ID resource.
- Implement the shutdown timeout progress bar function and the TimeOut string handler.
- Add the resource string to other resource languages.
2018-09-09 17:17:16 +02:00
Katayama Hirofumi MZ
56583f3069 [FONT][SETUP] Add 'Tms Rmn' and 'Times' font substitutes (#830)
Add "Tms Rmn" and "Times" font substitutes (same as "Times New Roman"). Windows has these substitutes, hence we also need those to remain compatible.
2018-08-30 13:07:22 +02:00
Katayama Hirofumi MZ
b0a1cb52be [TCPSVCS] Remove hardcoded C drive letter (#800)
CORE-13228, CORE-13235

For USETUP, add a comment about why the code uses it when adding a boot-sector boot entry to NTLDR. CORE-13226
2018-08-28 12:45:03 +02:00
Hermès Bélusca-Maïto
cdb9f03236
[USETUP] Progress-bar: minor improvements.
- Simplify the usage of the PUPDATE_PROGRESS callback.

- Add the possibility of specifying an initial non-zero StepCount when
  creating the progress-bar (using the -Ex version), so that it can be
  initially drawn with the expected initial count.
  Of course ProgressSetStepCount() can continue to be used.
2018-08-27 23:55:58 +02:00
Hermès Bélusca-Maïto
6241a16f41
[USETUP] Implement a basic console 'input queue' and implement PeekConsoleInput() and CONSOLE_ConInKeyPeek() around it. 2018-08-27 00:28:08 +02:00
Hermès Bélusca-Maïto
e9ba3a8ebc
[USETUP] Progress-bar: Add support for displaying a custom progress text. 2018-08-26 20:41:57 +02:00
Hermès Bélusca-Maïto
3a33de0fb1
[USETUP] Progress-bar: Code formatting, add annotations, don't use floats. 2018-08-26 20:41:56 +02:00
Hermès Bélusca-Maïto
914769a14a
[USETUP] DrawProgressBar(): Draw the progress bar borders first, then draw its contents. 2018-08-26 20:41:49 +02:00
Baruch Rutman
8a407b5c60 [FONTS] Update Hebrew font subtitutions (#795)
Updated the font substitutions to use the new Hebrew glyphs in the updated Tahoma font.
Also added substitution for the Ubuntu font to make the Lautus and Modern themes legible with Hebrew UI elements.

Follow up to PR #789 and #790 ; CORE-14880, CORE-14943
2018-08-21 17:21:21 +02:00
Bișoc George
ee6bc66318 [USETUP] Implement CreateProgressBarEx() (#791)
Improve the progress bar functions:
- Add a member in the struct, which will be used as a bar colour parameter for the new CreateProgressBarEx().
- CreateProgressBar() which will now invoke the Ex variant without the additional parameter.
2018-08-21 15:49:54 +02:00
Victor Perevertkin
07bc92f740 [USETUP][SETUPLIB] Added support for formatting partition in BTRFS and installing ReactOS on it.
Removed code related to EXT2 boot sector for now.
CORE-13769
2018-08-20 08:26:56 +02:00
Julio Carchi
d7559e2354 [TRANSLATIONS] Fix spanish translations for some resources (#725)
Setup wizard
Network settings wizard
Input CPL
Open file dialogs
Devmgr
Explorer
2018-08-03 15:08:13 +02:00
Arnav Bhatt
c771a6d339 [WELCOME] Add Hindi translation (#620) 2018-06-21 14:07:03 +02:00
Andrea Crescentini
d303b70b7a [TRANSLATION] Improving italian translation (#623)
- Improved Italian translation for USETUP, WELCOME, REACTOS, EXPLORER.
- Completed translation in SYSSETUP.
- Correct some characters encoding and text alignment in USETUP.
2018-06-21 14:03:35 +02:00
Bișoc George
b8036ea176 [USETUP] Some changes to address the recent review 2018-06-16 22:28:53 +02:00
Bișoc George
682ac75ecd [USETUP] Italian translation update 2018-06-16 22:28:53 +02:00
Adam Słaboń
565ce5e827 [TRANSLATION] Polish translation update (#611)
Polish translation update for MODE, USETUP and SHELL32.
2018-06-12 15:51:37 +02:00
Bișoc George
03b7e13df5 [USETUP] Display the ReactOS release status (#608)
Update the introduction page with a more up-to-date exposition of the current status of ReactOS.
2018-06-11 22:53:57 +02:00
Hermès Bélusca-Maïto
b2606fd07a
[SETUPLIB] Silence annoying DPRINT1s. 2018-06-03 23:23:24 +02:00
Hermès Bélusca-Maïto
6f185c5fe2
[USETUP] Use correct flags for the NtCreateFile call that creates new file directories.
DIRECTORY_ALL_ACCESS is not the correct flag, because it is used with the NtCreateDirectoryObject API
that creates virtual "directories" in the NT object namespace; that's not our purpose here.

svn path=/branches/setup_improvements/; revision=74716
2018-06-03 22:12:46 +02:00
Hermès Bélusca-Maïto
cacae6d9a0
[SETUPLIB][USETUP] Diverse additions.
- Use NT string safe functions.
- Add support for other bootloaders;
- Update a couple of comments;
- Remove deprecated __REACTOS__ #ifdefs.

svn path=/branches/setup_improvements/; revision=74713
2018-06-03 22:12:45 +02:00
Hermès Bélusca-Maïto
563d9f26c4
[SETUPLIB] Adjustments in the code.
- Call OpenAndMapFile() with its new ReadWrite parameter;
- Add informative comments in osdetect.c;
- In partlist.c, check whether a disk has a valid MBR by also checking for its 0xAA55 signature.

svn path=/branches/setup_improvements/; revision=74712
2018-06-03 22:12:45 +02:00
Hermès Bélusca-Maïto
7f5428633b
[SETUPLIB] Additions for filesup.c and inicache.c.
- In DoesFileExist(): Call NtOpenFile with FILE_GENERIC_READ instead of the more generic GENERIC_READ access right.
- OpenAndMapFile(): Add support for opening & mapping files with write access (to be used latter).

svn path=/branches/setup_improvements/; revision=74710

- Split IniCacheLoad() and IniCacheSave() into: themselves & IniCacheLoadByHandle() and IniCacheSaveByHandle(),
  respectively, so that we can load & save INI files if we already have an opened handle to them.

svn path=/branches/setup_improvements/; revision=74711
2018-06-03 22:12:44 +02:00
Hermès Bélusca-Maïto
6b6163a5d9
[USETUP] Minor fixes & simplifications.
- Remove a redundant NtClose() call;
- Return failure if NtQuerySymbolicLinkObject() fails;
- Use RTL_CONSTANT_STRING and RtlInitEmptyUnicodeString() where needed;
- Reduce code indent level;
- Add old-style function annotations;
- Remove the deprecated code copyright notice, since the copyright in usage is already reported in the COPYING file in the top level ReactOS source code directory.

svn path=/branches/setup_improvements/; revision=74698
2018-06-03 22:12:43 +02:00
Hermès Bélusca-Maïto
6681fb8af5
[SETUPLIB] Add a new module "bldrsup.c" (WIP) where I place all the NT boot loaders (i.e. ntldr, freeldr, and possibly bootmgr in the future) management functions.
So far we only have:
- a function FindNTOSBootLoader() that detects the existence of a given boot loader;
- a function EnumerateNTOSBootEntries() (and corresponding helpers) that enumerate the different boot entries in the configuration file(s) for a given boot loader, and for each entry, calls a user-provided callback.
Only supported at the moment: ntldr and freeldr.
Doing that allows me to simplify large portions of the NT-OS detection code so that it becomes more bootloader-agnostic, and this will help me for simplifying some parts of usetup/bootsup.c too, later...

svn path=/branches/setup_improvements/; revision=74661
2018-06-03 22:12:43 +02:00
Hermès Bélusca-Maïto
b53b7b11e3
[SETUPLIB][USETUP] Refactor the DoesFileExist() function so that it now looks closer to DoesPathExist() and use it almost everywhere.
- Adjust also its callers, adjust OpenAndMapFile() parameters.
- Related to that, simplify IsValidNTOSInstallation() parameters & introduce a IsValidNTOSInstallation_UStr()
  that does the same, but takes a UNICODE_STRING instead.
- Simplify CheckForValidPEAndVendor().

Now only exactly 5 calls use the "old" 'DoesFileExist' syntax, using a temporarily auxiliary function "DoesFileExist_2"...

svn path=/branches/setup_improvements/; revision=74641
2018-06-03 22:12:43 +02:00
Hermès Bélusca-Maïto
d27ef70aab
[SETUPLIB][USETUP] Transform the existing ConcatPaths() function into a variadic function, and derive a CombinePaths() from it (plus their equivalent taking va_list).
This allows building concatenated paths with an arbitrary number of separated components.
- Use the newly-introduced CombinePaths() and ConcatPaths() functions.
- Fix also few comments, and place some UNICODE_NULLs here & there.

svn path=/branches/setup_improvements/; revision=74637
svn path=/branches/setup_improvements/; revision=74640
2018-06-03 22:12:43 +02:00
Hermès Bélusca-Maïto
92b99b865e
[SETUPLIB][USETUP] Move some code to the SetupLib.
- filesup.c's functions ConcatPaths(), Does[Path|File]Exist(), NtPathToDiskPartComponents(), OpenAndMapFile(), UnMapFile();
- Move the inicache library to setuplib as it'll be used for the 1st stage GUI setup too (indeed, there is no good INI file API
  under Win32; the Win32 profile "API" is just good enough to manipulate the win16 ini files, and are here anyways for backward
  compatibility purposes only);
- Move the OS detector too.
- Remove the duplicated ConcatPaths() code in arcname.c.

svn path=/branches/setup_improvements/; revision=74634
svn path=/branches/setup_improvements/; revision=74638
2018-06-03 22:12:35 +02:00
Hermès Bélusca-Maïto
c434a5ab21
[USETUP] Some fixes/improvements suggested by Thomas (2/2).
- In the partlist.c disk getters: Remove useless "IsListEmpty(&List->DiskListHead)" checks, because this is actually the kind of check the while() loop does just after...
- Fix few DPRINTs.

svn path=/branches/setup_improvements/; revision=74629
2018-05-31 19:54:09 +02:00
Hermès Bélusca-Maïto
f88d029c9d
[USETUP] Further improve the OS detection code.
- Improve FindExistingNTOSInstall() so that we can find an existing installation either by system root
  ARC path or NT path. This is used during the enumeration of available installations from the boot.ini/freeldr.ini
  and during other existence & validity checks of NTOS installations.
- Improve AddNTOSInstallation() so that we can save the system root ARC path and NT path of the installation,
  as well as its partition entry structure pointer, for caching & later retrieval purposes.
- Remove some deprecated comments & todos, and implement other todos.
- Improve the output of some DPRINTs.
- Fix the return value of FindSubStrI.

svn path=/branches/setup_improvements/; revision=74632
2018-05-31 18:01:01 +02:00
Hermès Bélusca-Maïto
3074ad7159
[USETUP] Some fixes/improvements suggested by Thomas (1/2).
- isspace('\0') returns FALSE anyways so no need to separately test for a NULL character;
- The (str/wcs)toul function cannot return a NULL pointer from its second paramter;
- VersionInfo32_FindChild(): the third argument is indeed a number of characters (not bytes),
  so rename the parameter to make this fact clear. The function is however correctly used within this module.

svn path=/branches/setup_improvements/; revision=74629
2018-05-31 18:01:00 +02:00
Hermès Bélusca-Maïto
5a6050902b
[USETUP] Improve the NTOS installations detector.
In all the disks/partitions available, it searches for the presence of freeldr.ini / boot.ini, open & parse them,
and enumerates the available boot entries (as candidates for installations). For each of them, it maps their ARC paths
into the NT namespace (hence the ARC 2 NT path resolver committed in r74621), then attempts to detect in these paths
the existence of NTOS installations.

svn path=/branches/setup_improvements/; revision=74622
2018-05-31 18:00:59 +02:00
Hermès Bélusca-Maïto
aa44ab1fbc
[SETUPLIB] Add an ARC path to (and from) NT path resolver.
The NT path resolver allows mapping between an ARC path as specified in freeldr.ini / boot.ini , to its corresponding NT path, if possible.
Currently, only the mapping direction "ARC to NT" is implemented. It will be used wherever such mappings are needed, for example when identifying
the ReactOS / Windows installations from the available freeldr.ini / boot.ini entries (for upgrading / repair purposes).

The resolver supports the usual ARC paths: multi()disk()[r|f]disk()[partition()] ; eisa()disk()[r|f]disk()[partition()] ; multi()disk()cdrom() ;
scsi()disk()[r|f]disk()[partition()] ; scsi()cdrom()fdisk() ; ramdisk(x) ; net(x) (actually reported as "unsupported" since it would map to some
path on some network), and the newly-introduced Win2k signature()disk()rdisk()[partition()].

The code is in work-in-progress status.
Some validation tests, that were used during the implementation of the resolver, have been added.

svn path=/branches/setup_improvements/; revision=74621
svn path=/branches/setup_improvements/; revision=74631
2018-05-31 18:00:59 +02:00
Hermès Bélusca-Maïto
b1741a07cf
[USETUP][SETUPLIB] Move all the code that retrieves the version resources from PE executable, out of osdetect.c, and place it in its own module inside the SetupLib.
Remove also some commented headers in precomp.h.

svn path=/branches/setup_improvements/; revision=74618
2018-05-31 18:00:58 +02:00
Hermès Bélusca-Maïto
2c76ce526c
[USETUP] PartList module: Add a couple of disk/partition getters: GetDiskByBiosNumber, GetDiskByNumber, GetDiskBySCSI, GetDiskBySignature, GetPartition, GetDiskOrPartition.
They will be used in the subsequent commits.

svn path=/branches/setup_improvements/; revision=74617
2018-05-31 18:00:58 +02:00
Hermès Bélusca-Maïto
b76fa34121
[USETUP] Introduce an NT OS installation detector: a functionality that attempts to detect installations of NT 5.x operating systems (MS Windows <= 2k3, ReactOS).
The aim is to use this detector to be able to detect and select an existing installation of ReactOS for upgrading.
The user then could either select one, or skip this step and perform a regular ReactOS installation.

What remains to be done, is to parse the NTOS loader configuration files (freeldr.ini in ReactOS' case, or boot.ini in Win2k3's case, etc...)
to retrieve the actual installation paths. So far these are currently hardcoded for testing purposes only.

The detector attempts to distinguish between ReactOS and Windows installations by checking at the company name vendor of the ntoskrnl.exe & ntdll.dll files,
so that only ReactOS installations are allowed to be upgraded.

svn path=/branches/setup_improvements/; revision=74527
svn path=/branches/setup_improvements/; revision=74550
2018-05-31 18:00:44 +02:00
Eric Kohl
975b7d427d [SETUP] Remove myself from the 1st stage setup code
Congratulations Hermès!
You just earned yourself full maintainership of the 1st stage setup. It's yours now. I'm out!
2018-05-27 21:33:07 +02:00
Hermès Bélusca-Maïto
c8ea82d67b
[USETUP] Improve the inicache module.
From the existing IniCacheLoad() function, introduce a IniCacheLoadFromMemory() function that just does the same (initialize an INI file cache and parse the INI file), but takes the input from a memory buffer. Then, rewrite the IniCacheLoad() function to just open the file given in input, and then fall back to calling IniCacheLoadFromMemory.
The IniCacheLoadFromMemory() function will be used later.

svn path=/branches/setup_improvements/; revision=74620
2018-05-27 20:18:53 +02:00
Hermès Bélusca-Maïto
38e988ace7
[USETUP] Improve the FileSup module.
- Add a NtPathToDiskPartComponents() helper, that takes in input a fully qualified NT path to a file on hard disk,
  e.g.: \Device\Harddisk1\Partition2\foo\bar, and returns in output the disk number ('1'), the partition number ('2'),
  and the the path component "\foo\bar" that is after the device-harddisk-partition identifier.
- Make the OpenAndMapFile() return the file size of the opened file.

Both of these additions will be used soon.

- Turn a isspace() call into a iswspace() one.

svn path=/branches/setup_improvements/; revision=74619
2018-05-27 20:18:53 +02:00
Hermès Bélusca-Maïto
1ed0e1c84a
[USETUP] Code fixups after the introduction of the SetupLib.
- Use the previously-introduced 'PreparePartitionForFormatting()' function; set the FormatState of the newly-formatted partition to Formatted.
- Remove the hackish call to CreateFileSystemList() in SelectFileSystemPage().
- Move 'TempPartition' and 'FormatState' back to USETUP.
- Put large "case"-blocks into brackets.

svn path=/branches/setup_improvements/; revision=74575
svn path=/branches/setup_improvements/; revision=74576
2018-05-27 20:18:52 +02:00
Hermès Bélusca-Maïto
1716749bcb
[SETUPLIB] Consolidate the FsUtil and PartList modules of the SetupLib.
- Add a PreparePartitionForFormatting routine that sets the partition ID depending on the chosen filesystem.
- The 'FORMATMACHINESTATE FormatState' machine-state and the 'TempPartition' members of the partition list structure is purely a USETUP convenience, so remove them from the PARTLIST structure and move them back into USETUP.
- Attempt to recognize the filesystem (set the 'FileSystem' member of PARTENTRY) of partitions we are adding into the PARTLIST list.
- Fix the return value of the SelectPartition function, which is by the way completely broken (it doesn't do what it is supposed to do; alternatively its naming is completely wrong...).

svn path=/branches/setup_improvements/; revision=74572
svn path=/branches/setup_improvements/; revision=74573
2018-05-27 20:18:51 +02:00
Hermès Bélusca-Maïto
3a19ee6a96
[SETUPLIB][USETUP] Introduce a 'SetupLib' library. CORE-13544
- Create the beginnings of a "setuplib" library, whose aim is to be shared between the (currently existing) 1st-stage text-mode installer, and the (future) 1st-stage GUI installer.
- Finish to split the GenList and PartList codes into their UI part, which remain in usetup, and their algorithmic part, which go into setuplib.
- Move SetMountedDeviceValue into the PartList module.
- Split the FileSystem list code into its UI and the algorithmic part (which goes into setuplib under the name fsutil.c).
  * The algo part is meant to be able to manage the filesystems available on the running system, similarly to what is mostly done (in scattered form) in fmifs, format, chkdsk / autochk codes...
    It also manages the partition filesystem recognition, using OS routines.
  * The UI part manages the FS list as it appears on screen, showing only the possible FSes that can be used to format the selected partition (a bit similar to what we do in the shell32's drive.c, etc...).
- Adapt the calling code to these changes.
- Remove some "host" code that was dating back from the dark old times.

svn path=/branches/setup_improvements/; revision=74570
svn path=/branches/setup_improvements/; revision=74659
2018-05-27 20:18:50 +02:00
Hermès Bélusca-Maïto
216f15c675
[USETUP] Similarly to what was done for GenLists, factor out the UI code from the partition list code.
This will allow to reuse it for the 1st-stage GUI setup too, while using another UI representation.
Add also two partition iterator functions: GetNextPartition and GetPrevPartition.

svn path=/branches/setup_improvements/; revision=74554
2018-05-26 22:45:50 +02:00
Hermès Bélusca-Maïto
92692eae3d
[USETUP] Factor out the UI-specific code from the GenList code, and wrap it inside a GENERIC_LIST_UI structure.
The aim here is to decouple the UI-specific code from code that can be used by both the text-mode USETUP and a future 1st-stage GUI setup.
Indeed, the GenLists can actually be used in the 1st-stage GUI; and their contents be displayed inside ListBoxes/ListViews... (this is just one example amongst others).

Additionally (in usetup.c):
- Make both FormatPartitionPage and CheckFileSystemPage return PAGE_NUMBERs.
- Improve a couple of comments.

svn path=/branches/setup_improvements/; revision=74553
2018-05-26 22:45:50 +02:00
Hermès Bélusca-Maïto
199fb91939
[USETUP] Additions for generic lists.
- Allow retrieving the number of items existing in the list;
- Fix the name of some function parameters.

svn path=/branches/setup_improvements/; revision=74547
2018-05-26 22:45:50 +02:00
Hermès Bélusca-Maïto
2521d3c478
[USETUP] Additions for the PartList code.
- Document more some of the fields in the PARTENTRY, DISKETNRY and PARTLIST structures;
- Remove the redundant members "SystemDisk", "OriginalSystemDisk" and "TempDisk" in PARTLIST as these can be consistently deduced from the corresponding (Original)(System)(Temp)Partition members
  (note that we however keep "CurrentDisk" alongside "CurrentPartition", see the comment in the code why we do it so).
- Adjust the rest of the code to take the removal of the redundant members into account. The 2nd parameter of GetNextUnformattedPartition() and GetNextUncheckedPartition() is now really optional.
- Introduce a SetPartitionType() helper to simplify the code that sets the partition type, which also automatically adjusts other internal variables of said partition in accordance.
- "Mounted" logical drives can have assigned letters too, registered in \DosDevices\.

svn path=/branches/setup_improvements/; revision=74532
2018-05-26 22:45:39 +02:00
Hermès Bélusca-Maïto
eaf7d6ebbe
[USETUP] Code improvements for PartList.
- Use explicit ansi string safe functions (where they are used ansi, but not explicitely);
- Add (old-school) function parameters annotations;
- Use PARTITION_ENTRY_UNUSED where needed (instead of hardcoding its value);
- Turn some functions static to this module;
- Turn the 2nd parameter of both GetNextUnformattedPartition() and GetNextUncheckedPartition() optional (for next commit);
- Improve some comments;
- Use NT types.

svn path=/branches/setup_improvements/; revision=74531
2018-05-26 19:09:39 +02:00
Hermès Bélusca-Maïto
56ea51bbe4
[USETUP] Enhancements for filesystem utility functions.
- Introduce code that detects the filesystem of a (mounted?) partition, using NtQueryVolumeInformationFile() with FileFsAttributeInformation class,
  aka. rely on ReactOS itself (kernel, storage stack, filesystem drivers...) to recognize the FS on a partition that should normally be seen by the system.
  This currently half-works for whatever reason (to be insvestigated), while it works on Windows.
- Fix few comments & a function parameter name.
- Use NT string pointer types.

svn path=/branches/setup_improvements/; revision=74529
2018-05-26 19:09:38 +02:00
Hermès Bélusca-Maïto
60532e9c43
[USETUP] Add & modify some file utility functions that are going to be used next.
- ConcatPaths that concatenates paths (or a path and a file name);
- OpenAndMapFile (resp. UnMapFile), whose purpose is to open a file and map it in memory (resp. unmap it from memory).
- Add extra optional parameters to DoesPathExist and DoesFileExist: an optional "RootDirectory" handle and, for DoesFileExist only, an optional PathName.
- Close the opened file handles only on success.

svn path=/branches/setup_improvements/; revision=74528
svn path=/branches/setup_improvements/; revision=74538
svn path=/branches/setup_improvements/; revision=74549
2018-05-26 19:09:38 +02:00
Hermès Bélusca-Maïto
14284ddc61
[USETUP] Fix some spacings in the french translation.
svn path=/branches/setup_improvements/; revision=74574
2018-05-26 19:09:37 +02:00
Hermès Bélusca-Maïto
833c0e59da
[USETUP] Code formatting only.
svn path=/branches/setup_improvements/; revision=74530
2018-05-26 19:09:35 +02:00
Hermès Bélusca-Maïto
7b618314c2
[USETUP] Remove now-unneeded file. 2018-05-20 19:27:57 +02:00
Eric Kohl
de824808b7 [USETUP] Use _wcstoui64() instead of atoi() to convert the partition size in order to prevent unexpected misinterpretation of leading zeroes. 2018-05-19 13:33:28 +02:00
Eric Kohl
8a2cc3cdda [USETUP] Improved entering of partition size
Patch by Эдуард.

CORE-13249
2018-05-19 12:09:58 +02:00
Eric Kohl
7c3cff3a68 [USETUP] Remove the WIN32 support because usetup is a native-only application 2018-05-15 23:35:17 +02:00
Eric Kohl
4038773f45 [USETUP] Disable install path test that may tests 2018-05-15 22:58:34 +02:00
Eric Kohl
1b323ff2f4 [USETUP] Remove unused VolumeLabel and FileSystemName from the PARTENTRY type 2018-05-15 20:02:04 +02:00
Eric Kohl
3ce0c5d48b [USETUP] Get rid of the interface directory because we support text-mode only 2018-05-15 19:47:52 +02:00
Eric Kohl
849fe9f4eb [USETUP] Simplify the unattended code path in the install directory page and verify the unattended install path. 2018-05-15 18:11:12 +02:00
Eric Kohl
16daf6700a [USETUP] Improve the install path checks
- Path must not contain whitespace characters.
- Path must be at least 2 characters long.
- Path must start with a backslash.
- Path must not end with a backslash.
- Path components must not end with a dot.

CORE-9529
2018-05-15 15:45:31 +02:00
Eric Kohl
3bf2f30cf2 [USETUP] Add support for HOME, END, DEL, LEFT and RIGHT keys to partition size and install path edit fields.
CORE-13975
2018-05-15 11:28:33 +02:00
Eric Kohl
7e9b628bb8 [USETUP] Fix the name of the backspace key in the german translation
CORE-14006
2018-05-14 23:35:48 +02:00
Eric Kohl
02fbc6c51b [USETUP] Use an existing latvian keyboard layout
Use the existing Latvian keyboard layout instead of the Latvian (QUERTY) keyboard layout, which it not implemented yet.

CORE-14561
2018-05-10 16:18:04 +02:00
Wexpo Lyu
b8a3f0eeee [REACTOS] Update simplified chinese translation (#529)
Minor updates fixing grammar, spacing and typos.
2018-05-03 11:53:19 +02:00
Timo Kreuzer
0182dcd71b [PSDK][REACTOS] Fix definitions and usage of DWLP_MSGRESULT, DWLP_DLGPROC, and DWLP_USER
- Make sure the DWLP_* values are correct on _WIN64
- Don't use the DWL_* constants, they are not portable. Enforce this by removing them entirely from winuser.h
- Make sure Get/SetWindowLong*Ptr* is used and pointers are not truncated to LONG
2018-03-04 16:27:07 +01:00
Simon Dräger
ff23123615 [TRANSLATION] Minor German grammatical improvements 2018-02-25 17:26:43 +01:00
Simon Dräger
fd3b6d8c09
[TRANSLATION] German syntax fix.
It is rather unusual to put a "then" after "If..", so removed that.
2018-02-24 23:32:31 +01:00
Timo Kreuzer
d281d14fd1 [REACTOS] Fix a number of Get/SetWindowsLong*Ptr* issues and use GWLP_* instead of GWL_* where appropriate. 2018-02-19 22:36:36 +01:00
Giannis Adamopoulos
218b8eda92 [SYSSETUP] Don't load ISOLATIONAWARE_MANIFEST_RESOURCE_ID manually
Such a manifest is meant to be activated by the caller of the exports of the dll.
This means that the user of syssetup which is setup.exe is the one that should do the proper handling of the manifests.
Since setup.exe is the one that needs to do the right thing, add a CREATEPROCESS_MANIFEST_RESOURCE_ID to it and avoid
dealing with ISOLATIONAWARE_MANIFEST_RESOURCE_ID altogether (which is supposed to be used by activating the activation context
before calling the exports of the dll that has it). We don't really use ISOLATIONAWARE_MANIFEST_RESOURCE_ID correctly in any
place in the tree so let's rely on CREATEPROCESS_MANIFEST_RESOURCE_ID for now.

This fixes one part of CORE-14228 where no image was shown in the theme selector buttons. This happened because comctl32 was
statically linked and calling ImageList_LoadImage ended up creating an image list with comctl32 v5. Then we passed this image
list to a button created with comctl32 v6 and as a result the image list was unusable. This is yet another issue that needs
to be addressed in the future. Namely, it seems that in windows comctl32 v6 can use image lists created by comctl32 v5 whereas
we cannot.

This fix is not a hack but cleverly works around these two bugs that need to be addressed some time in the future.
CORE-14228
2018-02-07 01:15:49 +02:00
Thomas Faber
dc51b419c7
[USETUP] Use the smaller zlib_solo instead of the full zlib. CORE-14290 2018-02-04 12:54:39 +01:00
Luo Yufan
a13c998183 [TRANSLATION] Simplified Chinese translations updated. (#348) 2018-02-01 02:50:29 +01:00
Katayama Hirofumi MZ
ca8c5a2164 [USETUP] Improve muifonts.h and add a SimHei font substitution entry (#272) 2018-01-08 16:24:31 +01:00
Erdem Ersoy
ba3f074320 [TRANSLATIONS] Update the email address and add a note in the Turkish translation document (#271) 2018-01-07 22:09:42 +01:00
Pierre Schweitzer
cc8ccc6eb8
[USETUP] When opening the target file for dropping readonly mode only use required access.
This avoids the open failing on certain file systems where GENERIC_WRITE access would be denied
for a readonly file.
This is an addendum to 82f44a2.

CORE-14158
2018-01-06 12:11:02 +01:00
Pierre Schweitzer
82f44a2107
[USETUP] When overwriting a file, if open fails, it might be because the file is readonly.
In such situation, try to drop the readonly attribute before overwritting the file.

This fixes setup not being able to overwrite FAT bootcode when reusing a FAT partition
already installed without reformatting.

CORE-14158
2018-01-04 21:49:56 +01:00
Bișoc George
4e2d8956a4 [REACTOS] Italian translation update. #255 2018-01-02 18:41:50 +01:00
Katayama Hirofumi MZ
b214b160b6
[REACTOS][WELCOME] Use correct font name in Chinese resources, CORE-9566 (#219).
Localized resources should use the correct Chinese font names compatible with Windows.
2017-12-26 22:11:21 +01:00
Pierre Schweitzer
c8f2befb5f
[USETUP] Our current FAT ChkDsk being a bit slow when using the right path make
it only perform a full check if dirty bit is set (which should never happen *cough*).

This is needed because otherwise, ReactOS installation takes forever when IopParseDevice is gone
due to slow ChkDsk.
2017-12-17 23:26:38 +01:00
Luo Yufan
d6131ace49 [TRANSLATION] Improve Simplified Chinese Translations.
* Fix Simplified Chinese Translation of EXPLORER.
* Fix Simplified Chinese Translation of MSCONFIG_NEW.
* Fix Simplified Chinese Translation of MSPAINT.
* Fix Simplified Chinese Translation of SHELL32.
* Fix Simplified Chinese Translation of SYSDM.
* Fix Simplified Chinese Translation of SETUP/REACTOS.
2017-12-17 14:40:59 +01:00
Amine Khaldi
3449296f7b [USETUP] LanguageList => MUILanguageList. #179 2017-12-09 23:33:02 +01:00
Amine Khaldi
5633423086 [FREETYPE][PORTCLS][RPCSS][SPOOLSV][STLPORT][USETUP][WLANSVC] Silence some clang-cl warnings. 2017-12-07 23:26:59 +01:00
Amine Khaldi
09c06a2f45 [CLANG-CL] Initial commit that allows us to compile ReactOS with clang-cl. 2017-11-23 14:09:57 +01:00
Katayama Hirofumi MZ
5d2e34d1d4 [FONTS] Add more font substitutes. CORE-12419
Substitute Comic Sans MS with Ubuntu, Georgia with FreeSerif and Palatino Linotype with DejaVu Serif.
2017-11-18 17:11:16 +02:00
Adam Słaboń
7273a7ba21
Polish Translation update 2017-11-09 22:40:49 +01:00
Serge Gautherie
f0e6c11bba
[USETUP][EXT2LIB] NtWriteFile() calls: Remove unused 'ByteOffset = 0', Use explicit NULL instead of ambiguous 0. CORE-13910 2017-11-09 21:28:50 +01:00
Serge Gautherie
bcaa33e33b
[USETUP][ROSAPPS][EXT2LIB] NtReadFile() calls: Remove unused 'ByteOffset = 0', Use explicit NULL instead of ambiguous 0, Remove casts to same type. CORE-13910 2017-11-03 15:02:16 +01:00
Thomas Faber
fe3eb29287
[REACTOS][FDEBUG] Remove unnecessary DLGPROC casts. 2017-11-03 13:57:46 +01:00
Adam Słaboń
9c790dfc3b Polish translation update (#29)
* Polish translation update
2017-10-10 12:14:38 +02:00
Hermès Bélusca-Maïto
221ed4cefe Remove unwanted .gitignore files. 2017-10-04 10:28:36 +02:00
Colin Finck
c2c66aff7d Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys. 2017-10-03 07:45:34 +00:00