Commit graph

202 commits

Author SHA1 Message Date
Joachim Henze
1fdf06c563 [USETUP] de-DE Whitespace nitpicking CORE-16792
To harmonize it to 3 separator-spaces how it is done
historically in other dlgs.
2020-04-06 21:28:45 +02:00
Joachim Henze
75edf1071a [USETUP] de-DE Fix typo CORE-16792
Fix typo in my last changeset
0.4.14-dev-1323-g
d079342e0a
2020-04-06 20:55:18 +02:00
Joachim Henze
d079342e0a [USETUP] de-DE Overhaul german translation CORE-16792 2020-04-06 20:49:44 +02:00
Joachim Henze
7ed0701983 [USETUP] de-DE Split a line of text into two parts CORE-16791 2020-04-06 17:11:45 +02:00
Julen Urizar Compains
d6e0fe78e7
[TRANSLATION] Updating Spanish translation (#2503)
Updating translation for:
notepad, reactos, usetup, explorer, netshell, msgina, setupapi, shell32.

- Complete and Fix the SPANISH TRANSLATION on Setup
- Correct the random names, fixing the denominations, translate of the English words, and fixing random and incorrect denominations like "Cabinet" or "distribuciones".
- Fixed the notepad shortcuts of "Save" (Ctrl+g) and "Replace".
2020-04-06 13:17:20 +02:00
Julen Urizar Compains
58d2b1f3f6
[TRANSLATION][USETUP] Update Spanish translation of USetup. (#2497)
Correct the random names, fixing the denominations, translate of the English words, and fixing random and incorrect denominations like "Cabinet" or "distribuciones".
2020-04-04 13:10:34 +02:00
Tibor Lajos Füzi
432a5ddc7f
[TRANSLATION] Update Hungarian translation of usetup, syssetup, explorer, netshell, userenv, shortcuts (#2442) 2020-03-20 17:52:46 +01:00
Serge Gautherie
c8dd5e7720
[USETUP] Fix ' \n' typos, in *.h (#2415)
Addendum to PR #2387.
2020-03-07 00:51:13 +01:00
Katayama Hirofumi MZ
b539dd1c5a
[USETUP][BOOTDATA] Include optional CJK standard fonts (#2336)
This PR enables the developers to include the CJK standard fonts into ReactOS by adding them in Folder modules/optional. This feature is for test purpose only. You may not use the fonts illegally.
The embeddable font files are: mingliu.ttc, simsun.ttc, mssong.ttf, msgothic.ttc, msmincho.ttc, gulim.ttc and batang.ttc.
CORE-9619
2020-02-14 10:47:20 +09:00
Bișoc George
dac560f81a [USETUP] Remove redundant TEXT_STYLE_NORMAL flag on empty MUI entry field (#2275) 2020-01-26 17:38:58 +01:00
Bișoc George
2bf4180c80 [USETUP] Implement resource ID text based strings for MUI (#2193)
CORE-12683

Supersedes PR #612.

* [USETUP] Implement the internal MUI routines for text manipulation based on its ID and implement text resource based IDs

USETUP (the 1st stage text mode setup module) bases upon MUI (Multilingual User Interface) sub-component of USETUP which is responsible for the ability into translating the MUI pages (each page having corresponding properties like X, Y coordinates, text flags and text string buffer) in various languages.
The only problem, as of now, is that whenever you want to modify a certain property of a page, such as removing a text from the said page in the screen, you've got to rely on using CONSOLE_* specific functions and calling with hardcoded parameters, namely the coordinates.

This can become a problem as not every localized (translated) MUI page has the same properties for each language and this could lead to various issues. Therefore, assigning each entry with an ID you can remove a text by only giving its ID (and the entry page number) without having the need to specify the coordinates
as the internal MUI routine, MUIGetEntry(), automatically retrieves the entry with respective data fields.

The following commit implements:

- MUIGetEntry()
- MUIClearText()
- MUIClearStyledText()
- MUISetText()
- MUISetStyledText()
- Now the X and Y coordinate members of MUI_ENTRY are of SHORT integer type, for the sake of the general code as most of the coordination values, even the COORD structure itself, has the coordination points as SHORTs and not BYTEs.

The following MUI functions will be used to manipulate text based resources depending on their ID from the corresponding MUI entry.

* [USETUP] Make CONSOLE_ClearTextXY function public so that we can use across other files.

* [USETUP] Implement the IDs for each text MUI entry in locale files.

This mechanism follows the same principle of resource IDs in Win32 applications. Static text is merely a resource that doesn't get changed programmatically for whole of its lifetime whereas dynamic resources can change during the lifetime of the program depending on the algorithm (for example, hide that piece of text and set another one, etc.).

* [USETUP] Remove the "Press ENTER to continue" message prompt when the partition formatting begins.
2020-01-19 17:58:13 +01:00
Hermès Bélusca-Maïto
bfd8a84865
[BLUE] Improve initialization and interfacing with INBV.
CORE-15901

This fixes display reset transition when an external module acquired
INBV ownership and then released it, similarly to what was done in
commit 0ad65796 for VIDEOPRT.

For this a backup screenbuffer is used to store the contents of the
screen just before an INBV screen acquire transition, and these contents
are restored when it is detected that INBV ownership has been released.
Also, the active text font associated with the active console code-page
is restored, as well as the cursor state and shape.

In addition, any user of BLUE.SYS is now required to explicitly issue
a new IOCTL_CONSOLE_RESET_SCREEN to either enable or disable the screen.
This allows avoiding nasty unwanted screen mode switches when a handle
to the \Device\BlueScreen device is opened but no screen mode switch was
actually wanted - This "fixes" this annoyance on ReactOS and Windows,
when these are running witha VGA-compatible video driver and one wants
to look at properties of the \Device\BlueScreen device using
Sysinternals' WinObj.

Following this, we don't need to check anymore for explicit INBV
ownership by issuing calls to InbvCheckDisplayOwnership(), but instead
we check whether the screen has beeen manually enabled using the
aforementioned IOCTL. This partly supersedes commit 8b553a4b, and allows
fixing the second bug, namely that if we start ReactOS without the
/NOGUIBOOT option (and thus, INBV is active during boot), USETUP would
not show up anything because BLUE.SYS wouldn't display anything on screen.
See CORE-15901.

[USETUP][CONSRV] Call IOCTL_CONSOLE_RESET_SCREEN to tell BlueScreen device to enable the screen.
2019-12-15 03:37:52 +01:00
Tibor Lajos Füzi
74ec76df08 [TRANSLATION] Fix hungarian translation for usetup & syssetup to use formal addressing / conjugation (#2138) 2019-12-09 02:09:31 +01:00
Tibor Lajos Füzi
a3398a8e80 [USETUP] Hungarian translation fix (#2026) 2019-11-10 23:36:51 +01:00
Tibor Lajos Füzi
dde7113cfc [USETUP] Hungarian translation (#2002) 2019-10-28 15:26:30 +01:00
Katayama Hirofumi MZ
92443b4444
[USETUP] Improve Japanese translation (#1918) 2019-09-21 23:07:07 +09:00
Adam Słaboń
c81af08f51 [TRANSLATION] Polish translation update (#1916)
Added translation for netstat, utilman and netplwiz. Updated translation of find, reg, rapps, regedit, sndvol32, usetup, hivesys, mmsys, openglcfg, powercfg, sysdm, shellext, browseui, devmgr, msgina, netcfgx, shell32, syssetup, shortcuts and vcdcontroltool.
2019-09-20 21:51:47 +02:00
Katayama Hirofumi MZ
bfea773ee5 [SETUPLIB][USETUP] Fix build about switch 2019-08-25 12:07:31 +09:00
Hermès Bélusca-Maïto
59acff79e5
[SETUPLIB][USETUP] Slightly modify how and when the HW system partition is detected and used.
CORE-16274

SETUPLIB:
=========

- Find the system partition initially when we create the list of
  partitions.

- Split the old CheckActiveSystemPartition() helper in two helpers:
  FindSupportedSystemPartition() and SetActivePartition(). This allows
  simplifying slightly the former one, and allows the user, in an
  interactive situation, to decide whether the "supported system
  partition" found can actually be used or not.

- Remove the "OriginalSystemPartition" hack in the PARTLIST structure.
- Add a note regarding the SystemPartition member in PARTLIST.

USETUP:
=======

- Use the introduced helpers from above. If the "system" partition we
  are going to use, in case we install ReactOS on a fixed disk, is *NOT*
  the same as the original one (e.g. because it is detected to be not
  supported by ReactOS...), display an informative screen to the user
  and let him confirm whether or not he wants to change the partition.

If we install on a fixed disk, try to find a supported system partition
on the system. Otherwise if we install on a removable disk, use the
install partition as the system partition instead.

This allows providing a fix for CORE-16274.
2019-08-25 02:38:53 +02:00
Hermès Bélusca-Maïto
626c654a10
[SETUPLIB][USETUP] Code simplifications & fixes.
SETUPLIB:
=========

- Remove useless HiddenSectors member in PARTENTRY structure.
- InsertDiskRegion() helper returns a BOOLEAN success.
- CreateInsertBlankRegion() helper sets LogicalPartition.

- Simplify the InitializePartitionEntry() helper so that its PartEntry
  parameter is clearly the one that is being initialized (i.e. converted
  from a blank region to) an actual partition, and use the helper
  CreateInsertBlankRegion(). The calculations for the StartSector and
  SectorCount are exactly equivalent with the old version of this
  function. Also make it return a BOOLEAN success instead.
  + Add some extra validation checks.
  + Adjust CreatePrimaryPartition(), CreateExtendedPartition() and
    CreateLogicalPartition() in this regard.

- Better handling of "RAW"-mounted partitions: treat them as
  "Unformatted" only if they are RAW *AND* their PartitionType is one of
  those associated with FAT file-system. Otherwise we cannot decide
  whether they are indeed unformatted or have an unknown file-system on
  them, therefore treat them as the latter.
  In this regard, the IsSupportedActivePartition() helper should not
  look for FileSystem == RAW but instead only look whether the partition
  is Unformatted.

  This should help with situations similar to the one described in CORE-16274
  where a partition with a genuine file-system but not recognized by
  ReactOS (because we currently do not have the EXT2/3/4 filesystem
  driver loaded during 1st-stage setup due to commit 5a650f6b) and
  therefore mounted as RAW, was thought to be unformatted.

USETUP:
=======
- Use the "global" SystemPartition pointer: this is the "system"
  partition we will actually use. It can be different from the actual
  one of the computer, for example when we install ReactOS on a
  removable disk. This allows also to simplify the code.

- Remove the single-used DestinationDriveLetter variable.

- Remove BuildInstallPaths() helper and use InitDestinationPaths()
  directly instead.

- Always mention the disk where the partition being formatted is.
- Cleanup old code comments, add assertions here & there...
2019-08-25 02:38:52 +02:00
Bișoc George
2fbff73792 [USETUP] Localize the rest of the hardcoded error message strings 2019-08-17 21:34:39 +02:00
Oleg Dubinskiy
6ee7cba77b [USETUP] Use "L" key instead of "D" for deleting partitions at 1st setup stage 2019-07-27 13:18:34 +02:00
Eric Kohl
6866c0aede [NTOSKRNL][USETUP][UMPNPMGR] Pass user response data to NtPlugPlayControl(PlugPlayControlUserResponse).
- Windows requires 16 bytes of response data.
- Add the PLUGPLAY_CONTROL_USER_RESPONSE_DATA type.
- Usetup and Umpnpmgr must fail if NtPlugPlayControl(PlugPlayControlUserResponse) does not return STATUS_SUCCESS.
2019-06-12 13:48:27 +02:00
Timo Kreuzer
6129fbaf1e [USETUP] Use RtlStringCbPrintfA instead of sprintf
Fixes GCC 8 warning:
base/setup/usetup/usetup.c:3407:78: error: '%S' directive writing up to 521 bytes into a region of size 200 [-Werror=format-overflow=]
                 "Setup is currently unable to check a partition formatted in %S.\n"
                                                                              ^~
base/setup/usetup/usetup.c:3406:9: note: 'sprintf' output between 128 and 649 bytes into a destination of size 260
         sprintf(Buffer,
         ^~~~~~~~~~~~~~~
                 "Setup is currently unable to check a partition formatted in %S.\n"
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 "\n"
                 ~~~~
                 "  \x07  Press ENTER to continue Setup.\n"
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 "  \x07  Press F3 to quit Setup.",
                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                 PartEntry->FileSystem);
                 ~~~~~~~~~~~~~~~~~~~~~~
2019-05-27 13:22:40 +02:00
Jose Carlos Jesus
7f5e960e32
[TRANSLATIONS] Update/Add Portuguese translations.
Translations for: reactos/setup, usetup, syssetup, netshell, shell32.
2019-05-26 21:19:31 +02:00
Jose Carlos Jesus
73d7fd1415
[TRANSLATIONS] Update/Add Portuguese translations. (#1564)
Translations for: deskadp, deskmon, reactos/setup, usetup, syssetup.

Co-Authored-By: Bișoc George <fraizeraust99@gmail.com>
2019-05-19 17:04:47 +02:00
Adam Słaboń
7047aa80ef [TRANSLATION] Polish translation update
Polish translation update for calc, fltmc, magnify, notepad, osk, sndvol32, usetup, fdebug, appwiz, mmsys, sysdm, acppage, ziplfdr, browseui, cryptui, jscript, shell32, themeui and inf. Added translation for cyrptext, vcdcontroltool, and (not yet complete) getuname.
2019-04-05 10:34:10 +02:00
Hermès Bélusca-Maïto
47a1acedf7
[SETUPLIB][USETUP] Improve disk HW numbering, removable disk support, and "super-floppy" partitioning.
Nowadays more and more people try to install ReactOS from removable
drives (e.g. USB sticks) onto fixed HDDs, or try to install it into
USB sticks too.

Both fixed and removable drives, as well as partitions on these, are
represented in NT using the same device name format:

  \Device\HarddiskM\PartitionN ,

with an increasing disk number M. Using this number for building the
corresponding firmware-specific ARC multi(x)disk(y)rdisk(z) path used
by the NT/ROS loader (FreeLdr, ...) is then prone to error since there
may have  been  removable drives  inserted  and  accounted for in the
calculation  of  the disk number.  These drives must be  correctly
subtracted in order to generate the correct ARC path, valid once all
the removable drives have been ejected (which should also be the
situation seen from the BIOS when booting up, except of course if you
boot on a USB stick).

This problem is now solved. Note that it matters only for the disks
that have also been enumerated by the firmware (BIOS; Int 13h). We
don't have to care about the other drives, since the ARC path will be
of a different format and will not use the disk number (instead, the
SCSI coordinates are used).

We also try to enumerate all the disks found in all the possible disk
adapters and  controllers enumerated  in the Hardware registry tree
(and that are visible by FreeLdr) in order to cover all.

Finally, we detect whether a disk reports as  a "super-floppy",  i.e.
an unpartitioned disk with a valid VBR. This is indeed how a standard
floppy disk looks like, or how USB sticks are partitioned on Windows.
Such disk is reported has having only one single partition starting at
the beginning of the disk, with partition number == 0, its type being
FAT16 non-bootable.
This allows us to forbid creating any new partitions on such disks.
Note that accessing either \Device\HarddiskN\Partition0 or Partition1
on such a disk returns the same data.
Note also that on the contrary, regular MBR-partitioned disks would
report at least four partitions entries, instead of just one.

The other improvements are:

- Do *NOT* write any MBR on a disk partitioned as "super-floppy".
  CORE-13703

- Fix the computed disk identifier, of format: %08x-%08x-%c .
  The numbers are respectively the checksum of the first sector, and
  the disk signature. The terminating letter is A or X, depending
  whether the first sector ends with 0x55AA/0xAA55 or not (see also
  commit 5053f1f5).

- Warn if the user attempts to install ReactOS on a disk that is not
  visible by the  firmware of his computer,  because it may not be
  bootable.
2019-03-12 02:17:11 +01:00
Hermès Bélusca-Maïto
1d51b56882
[USETUP] Use for-loops; simplify the code. 2019-03-11 00:05:37 +01:00
Hermès Bélusca-Maïto
84f3e2df5d
[SETUPLIB][USETUP] Remove CurrentDisk/Partition from the partlist lib code, and move these into the UI code.
- Add also some validation ASSERTs and simplify the code here and there.

- The installation partition is called "InstallPartition", while the
  global "CurrentPartition" is the disk region currently selected in
  the partition UI list, on which prtitioning operations are effectued.

- Extend CheckActiveSystemPartition() to use an optional alternative
  disk or partition in case the actual system partition (present in the
  first disk) cannot be used, e.g. because we don't support writes on it.
2019-03-11 00:05:37 +01:00
Hermès Bélusca-Maïto
a543103068
[USETUP] Improve the formatter & check-disk state machine. CORE-7749
- Find or set the active system partition only once, when we start the
  formatting stage. If the system partition is to be created in some
  non-partitioned space, we create it.

- A file-system check is always scheduled for both the system and the
  installation partitions.

- If the system partition was already formatted (which usually means
  that it already existed on the system), don't ask for formatting it.

  CORE-13205

- For each partition to be formatted, the file-system menu list is
  re-created, in order to display only the FSes that are compatible
  with the selected partition, and allow to give the user the choice
  to keep the existing file-system only if the selected partition was
  already formatted.

- Check whether the user attempts to delete the partition on which
  the installation source is present, only if it is not "new" and is
  formatted.

- Check first whether the current partition is the system partition,
  before displaying the CONFIRM_DELETE_SYSTEM_PARTITION_PAGE.
2019-03-10 15:41:25 +01:00
Hermès Bélusca-Maïto
29cc1843d0
[SETUPLIB][USETUP] Minor improvements.
- Make some partitioning functions not dependent on the selected "CurrentPartition".
- Add some sanity checks.
- Improve some of the "is-partitioned" checks.
2019-03-10 15:41:20 +01:00
Hermès Bélusca-Maïto
c1fbc2d651
[SETUPLIB][USETUP] Factor out the usage of FS provider structures.
Similarly to FMIFS this structure should be private. Instead file-system
names are passed to the helper functions, allowing to use the names
returned by the FS drivers. The names are then internally mapped to the
corresponding FS providers.

In particular this allows to handle the "RAW" file-system and to assign
the 'Unformatted' flag to partitions having this FS.

Finally this helps us refining the checks performed to see whether the
current "active" system partition uses a supported file-system.
2019-03-10 15:41:05 +01:00
Bișoc George
35f7267a97 [USETUP] Check the status value of BuildInstallPaths() (#1349) 2019-02-13 15:22:28 +01:00
Bișoc George
8bde4de2d6 [USETUP][REACTOS] Check the status return value of InitDestinationPaths() (#1264)
- Within the function's body code, check the status values returned by the called functions.
- Change the BuildInstallPaths's function type to NTSTATUS instead of VOID (and check the status of InitDestinationPaths() as well.
2019-02-10 16:43:51 +01:00
Katayama Hirofumi MZ
8886a2261a [USETUP] Improve lang/ReadMe.txt 2019-01-30 14:59:10 +09:00
Katayama Hirofumi MZ
232cf9f0b6
[USETUP] Follow-up ro-RO.h and add lang/ReadMe.txt (#1321)
- Add lang/ReadMe.txt for code7bit description.
- Follow up ro-RO.h file (#1317).
2019-01-29 23:55:45 +09:00
Ștefan Fulea
092b67c723 [TRANSLATION] Improve the existing translated contents 2019-01-29 13:48:48 +01:00
Ștefan Fulea
211ad8c73d [TRANSLATION] Update the existing romanian resources
This includes both newly added and previously left untranslated strings.
2019-01-29 13:48:48 +01:00
Yaroslav Kibysh
8d15720b31 [USETUP] Implement handling Home/End keys in Boot Loader Page (#1265) 2019-01-19 18:44:13 +01:00
Hermès Bélusca-Maïto
7d6cbea42d
[USETUP] Fix the strings given to the printf-like functions (addendum to a3168373). 2018-12-30 15:26:44 +01:00
Pierre Schweitzer
4ed6b1ffca
[SETUP] Add support for selecting FS type in unattended setups
By default, we still fallback to FAT if nothing asked, or if there
is an invalid input.
0 is FAT, 1 is BtrFS. This can be grown as soon as we add more IFS.
2018-12-28 20:36:47 +01:00
Hermès Bélusca-Maïto
02e4ff8eb3
[USETUP] Add SETUP_INIT_PAGE in the list of virtual pages. 2018-12-23 21:02:08 +01:00
Hermès Bélusca-Maïto
d23fa54488
[USETUP] Modify the integrated user-mode PnP manager along the lines of UMPNPMGR, so that we can wait until all the queued device installations finish before continuing the installation further.
Add a corresponding please-wait page and update the translations.
2018-12-23 20:37:14 +01:00
Hermès Bélusca-Maïto
9f1c8ac020
[USETUP] Check for invalid INF handles before doing operations. 2018-12-23 20:37:13 +01:00
Katayama Hirofumi MZ
6d63d76655
[USETUP][NTDLL_APITEST][KBDROST] Allow non-Latin codepage users to build ReactOS on MSVC (Retrial of #1150) (#1168)
- The converter is code7bit I made. code7bit: https://github.com/katahiromz/code7bit
- This converter converts non-clean characters in string literals.
- However I couldn't erase a ton of codepage C4819 warnings.
- CORE-15447

You can edit an European source file as follows:
- Right click the file in the Solution Explorer.
- Select "Open With...".
- Choose "C++ Source Code Editor (with encoding)".
- Choose "Central European (Windows) - Codepage 1260".
2018-12-20 17:25:32 +09:00
Baruch Rutman
3d991ea5a7 [TRANSLATION][USETUP] Complete Hebrew translation (#1163)
- Code-page 862, Hebrew text is in visual order.
- Use escape sequences for quotation marks.
2018-12-19 13:20:18 +01:00
Yaroslav Kibysh
8540ab04d7 [TRANSLATION] Ukrainian Translation Update & OEM-866 Code Page Problem (#1133)
Also add the Ї ї Є є characters to the VGA font for code page 866.
2018-12-18 18:38:42 +01:00
Hermès Bélusca-Maïto
a3168373eb
[SETUPLIB] Detect GPT-partitioned disks but don't use them since we don't support them at the moment.
- Add checks for GPT disks and either fail or ignore the disk,
  depending on the operation being executed.

[USETUP][REACTOS] Display the disk style more accurately.
2018-12-14 23:32:31 +01:00
Stanislav Motylkov
f851b82570 [USETUP] Update russian translation
Addendum to 03b7e13, 29ace9c and a5bcd95.
2018-12-08 23:36:06 +01:00