• last updated 3 hours ago
Constraints: committers
Constraints: files
Constraints: dates
[WIN32K] -Simplify the parameters passed to GetFontPenalty and FindBestFontFromList. Make SubstituteFontRecurse update a LOGFONT and get rid of some needless allocations.
    • -60
    • +42
[USETUP]: Some fixes/improvements suggested by Thomas:

- 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.

- 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.


- Fix an assert that only works by chance

    • -1
    • +1

- In MmDumpArmPfnDatabase, actually print all usage buckets to provide a complete and verifiable view of the database

    • -1
    • +18

- Make PFN tracing work... somewhat

    • -0
    • +5
    • -2
    • +3
    • -0
    • +2
    • -0
    • +9
    • -13
    • +13

- Remove Czech koruna from currency conversions... their exchange rate is not a constant

- While here, add new Euro currencies, and improve the accuracy of some conversion rates

  1. … 12 more files in changeset.

- Avoid casting pointers to 'unsigned long'

    • -0
    • +5

- Correctly prepare the I/O port map for V86 mode by making HalpSavedIoMap actually point to it instead of to the parent structure. Fixes boot with video BIOS code that relies on I/O ports FF00 through FFFF.

CORE-13306 #resolve

    • -3
    • +6
[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.

The code needs some cleaning (and factoring out redundancies, etc...) but works: http://i.imgur.com/cSDN3La.png

In this example, there is a ReactOS installation on the second primary partition "D:" formatted in FAT32, and a Windows installation on the logical partition "F:" and they are correctly recognized as such (the ARC paths in the freeldr.ini/boot.ini are mapped to NT paths from which we can recognize the presence of an installation, then the hard-disk & partition numbers are mapped back to the correct partition, and from there the partition letters are retrieved correctly and displayed in the installations list on the left in the screenshot).

NOTE: If you try to compile the usetup branch, it won't (yet), because I don't commit yet some local changes I have regarding how the functions DoesPathExist() and DoesFileExist() are used (I'm trying to stabilize their interface).

[USETUP]: SetupLib: Add an ARC path to (and from) NT path resolver. It 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()].

Code is in progress, I need to clean up the references list.

I also add some validation tests I used during implementing the resolver.

    • -0
    • +861
    • -0
    • +22
    • -0
    • +142
[USETUP]: 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.

[USETUP]: 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 stuff.

- Make the OpenAndMapFile return the file size of the opened file.

Both of these additions will be used soon.

- Turn a 'isspace' into a 'iswspace'.

[USETUP]: 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.

    • -0
    • +24
    • -0
    • +194
[USETUP]: PartList module: Add a couple of disk/partition getters: GetDiskByBiosNumber, GetDiskByNumber, GetDiskBySCSI, GetDiskBySignature, GetPartition, GetDiskOrPartition.

They will be used in the subsequent commits.

[USETUP]: Use secure "StringCchPrintfW" function instead of swprintf.
[USETUP]: Addendum to r74614: Code adaptations for the "STRING_HDDINFOUNKx" string labels renaming. The extra slot added to some of the strings is to indicate whether the disk is MBR or GPT.

As attentive readers will notice, the code that "determines" whether the disk is either MBR or GPT is of course wrong: it's just a temporary placeholder code that should currently just show "MBR".

Having the NoMbr flag mostly signifies that the disk is uninitialized. A GPT disk also has a MBR but it's for "backcompatibility" / "protective" reasons (so that MBR-only tools would see the disk as just a big 1-partitioned only disk with which they could barely do anything). A real involved test for the nature of the disk should involve calling the correct IOCTLs in the disk detection code in partlist.c . This is for the future (and when ReactOS will better support GPT disks).

[USETUP]: Rename some of the uninformative "STRING_HDDINFOUNKx" string labels into more informative ones (actually, when they are versions of others strings, with the disk driver name displayed, I just reuse their string labels and add a "_1" or "_2" in accordance). Also, reserve a new field to display whether the disk is MBR or GPT-initialized.

The code adaptations in usetup.c will follow in a subsequent commit.

  1. … 11 more files in changeset.
[WIN32K] -Reduce the ridiculous number of string allocations done by FindBestFontFromList and GetFontPenalty. CORE-13274
    • -125
    • +30
[WIN32SS] Improve IntGetFontLocalizedName by less strict matching on language id's. Patch by Katayama Hirofumi MZ. CORE-13239 #comment Thanks!
    • -38
    • +85
[KERNEL32] Format the stack trace generated on an unhandled exception so that log2lines can parse it. CORE-13232 #resolve
[SHIMS] Add IgnoreDebugOutput shim CORE-10369
    • -0
    • +32
[BOOTDATA] Create an empty HKLM\...\AppCompatFlags\Layers key to silence logging.
    • -3
    • +4
    • -0
    • +3
[SLAYER] Remove the shell extension. CORE-13111 #resolve
    • -1
    • +0
  1. … 17 more files in changeset.
[WIN32SS] Reduce the amount of calls to IntGetFontLocalizedName, since this was identified as a source of recent slower drawing. CORE-13274

Thanks to Thomas, Giannis and Joachim.

    • -0
    • +8
    • -2
    • +2
    • -27
    • +115

Make code page and language group names translatable.



- Simplify list walk in FindBestFontFromList

    • -7
    • +2

Make language (locale) names translatable.



- Fix a broken DPRINT

    • -2
    • +2
[GDI32_APITEST] Improve GetFontResourceInfoW tests. Patch by Katayama Hirofumi MZ. ROSTESTS-269 #resolve #comment Thanks!
    • binary
[APPHELP] Initial implementation of ApphelpCheckRunAppEx. CORE-10368