fix is a partial (intentionally non-squashed) pick of 0.4.14-dev-1037-g 554c41e4d7 (#2387)
I am aware that some of the touched lines do still contain other issues for the moment!
A *partial* backport of 0.4.14-dev-1506-g c82ba3485e , part of (#2603)
That menu item never had any effect up to now as it had no implementation in ros,
and it also does not exist on Windows at this location.
The desired effect can already be achieved by just hitting F5 or selecting "Refresh" from the same root-context menu.
I do port back only the removal of this commit for now, and not the added new functionality in the submenu "Arrange Icons By", to
allow translations for that to settle down a bit on master.
The main motivation to port all that back is to get rid of Win32K-BSODs 0x50 like CORE-13907
that could be triggered by user-mode-applications.
Technical reason was CORE-14857 "RtlImageNtHeaderEx needs SEH" and issues with hooks+callbacks.
All other tickets mentioned in here were regressions that we experienced on the long
journey towards perfecting the fixes on master head, and those were not happening yet in the older builds,
so they are mentioned in here only to allow tracking where that code went into.
Thanks to Jim Tabor, Mark Jansen & Thomas Faber
By squashed backmerge of the following commits:
0.4.15-dev-3440-g a89844f740
0.4.15-dev-3430-g 9cff384c22
0.4.14-dev-1287-g 568b6d0558
0.4.14-dev-1255-g 177ae91bf6
0.4.14-dev-1241-g 915a5764a9
0.4.14-dev-1240-g d8add40e89
0.4.14-dev-1002-g feb7df42b4
JIRA-tickets: CORE-13907, CORE-16769, CORE-14857, CORE-17856, CORE-17857, partially CORE-13019.
We also had some more dupes of CORE-13907 in JIRA, but I linked all of them (transitively)
towards the initial report, and resolved them without setting a fixVer for them.
In more detail:
--------------
[USER32] Fix BSOD 0x50 in 'WineVDM + Castle Of Winds' CORE-17856 CORE-17857
CORE-17856 BSOD 0x50 when starting Castle of the Winds second time, with WineVDM
CORE-17857 BSOD 0x50 on shutdown after closing Castle of the Winds with WineVDM
0.4.15-dev-3430-g 9cff384c22
0.4.15-dev-3440-g a89844f740
--------------
[NTUSER] Fix Strings and Format to Hooks
Allocate heap instead of data segment to be used for callbacks on user side.
Move and correct initial hook call out setup. Use it in more than one hook call.
This fixes issues with strings out of alignment and use of kernel pointers.
See CORE-13907 (HXD-portable BSOD) and CORE-16769 (HXD-portable exception)
Small wow update.
cherry picked from commit 0.4.14-dev-1287-g 568b6d0558
--------------
[RTL] Introduce RtlpImageNtHeader,
which implements the required functionality.
ntdll and ntoskrnl now have a wrapper for this, with SEH.
This protects the function against malformed / bad images,
whilst still being able to use the code in freeldr et al.
Idea from Thomas.
CORE-14857
cherry picked from commit 0.4.14-dev-1255-g 177ae91bf6
--------------
[WIN32SS] Form Sanity to Hook Callbacks
Fix WH_CALLWNDPROC/RET data to user hook calls.
Helps with CORE-13907 "(HXD-portable BSOD)"
Fixes the logging of "(win32ss/user/ntuser/callback.c:748) err: Failure to make Callback! Status 0xc00000fd" within CORE-13019, but not the whole ticket.
cherry picked from commit 0.4.14-dev-1241-g 915a5764a9
--------------
[USER32] Fix null return.
See CORE-16769 "HxD 1.7.7.0 portable unhandled exception"
cherry picked from commit 0.4.14-dev-1240-g d8add40e89
--------------
[WIN32SS] Fix a typo in dbg print
cherry picked from commit 0.4.14-dev-1002-g feb7df42b4
Fix the glitch
"Wenn nur eine nur einzige Leitung verbunden ist"
to
"Wenn nur eine einzige Leitung verbunden ist"
which was introduced by
SVN r67570 == git 8ad8574f4b
and a few other small glitches.
fix picked from:
0.4.15-dev-3878-g d9f156e9a8
Fix a resource compiler 'warning RC4206 : title string too long; truncated at 256'
when building with MSVC2010SP1.
by porting back a single line from:
0.4.12-dev-920-g 8fb10879fc The string shortening
and a single line from the whitespace-addendum:
0.4.15-dev-3152-g bbabe2489e
It "regressed" by 0.4.9-dev-632-g da6a46c6ac when zipfldr.dll got registered.
Ftr: Even without this complex fix it was possible to workaround this bug by 'regsvr32 /u zipfldr.dll'.
by porting back:
0.4.15-dev-279-g 83a9f71690 CORE-16908 [SHELL32] Allow creation of an empty CFileSysEnum
0.4.15-dev-254-g 332889b8d7 CORE-16908 [COMDLG32] Differentiate between real and virtual folders
0.4.15-dev-252-g f379a29606 CORE-16908 [SHELL32][SDK] Properly enumerate virtual shell folders (on files) as fake folders
0.4.15-dev-251-g b1003ae909 CORE-16908 [SHELL32] Update CFileSysEnum to be maintaineable
0.4.15-dev-250-g ac215455bb CORE-16908 [SHLWAPI] Fix SHRegGetCLSIDKeyW
and we also need:
0.4.14-dev-73-g 5d54b65ceb CORE-16271 [SHELL32] Add support for custom View objects defined with UICLSID
This is a big backport, that brings us closer to releases/0.4.14/0.4.14-release-10-g1b0b852
The main motivation is to fix the three regressions:
CORE-17351 'RunDlg fails calling URL without http'
and
CORE-16898 'RunCommand "iexplore" fails to open Wine IE'
and
CORE-15431 'RunDlg variable expansion not longer working'
All 3 regressed by 0.4.10-dev-419-g bfcbda227f
By porting back the following commits:
0.4.15-dev-2883-g 33c7c91b36 CORE-17351 CORE-16898 (#3797) Improve performance of Start-Run Dialog Box Options
0.4.14-dev-1016-g 4e721f780e CORE-12266 (#1854) [SHELL32] This fixes the ERROR_DDE_FAIL in the 'www.google.de' testcase
0.4.13-dev-790-g 0f16d44b66 CORE-6412 + CORE-12927
but in return we have to fix all the callers of ShellExecuteW() that relied on this ancient hack-code, and we do this by picking
0.4.13-dev-930-g cb77f1701f CORE-16299 [SHELL32][STOBJECT] ShellExecuteW() params part2
0.4.13-dev-860-g 944aba1fcc CORE-16299 [SHELL32] ShellExecuteW() params part1 (#1833)
0.4.12-dev-94-g 932a812c66 CORE-15434 [SHELL32] shlexec.cpp UNICODE_NULL Add backslash if path was like C: (#1152)
0.4.12-dev-49-g fad9f6677a CORE-15434 [SHELL32] dialogs.cpp (#1117) Addendum
0.4.12-dev-48-g c64d31e9b8 CORE-15434 [BROWSEUI] Add backslash for directory (#1121) C: C:\
0.4.12-dev-36-g 472787ffea CORE-15431 (#1117) Crash on %SYSTEMROOT% (yes, this was already within 0.4.11)
0.4.12-dev-19-g 06d717e3bc CORE-15431 (#1111) Enable Environment Variables (yes, this was already within 0.4.11)
warning RC4206 : title string too long; truncated at 256
by providing shorter translations.
We had 24 such warnings in this module
fix picked from:
0.4.15-dev-3739-g ff9301e9db
0.4.15-dev-3748-g 6a496c3991
Add missing structs and handler in BCryptOpenAlgorithmProvider().
Fixes CORE-16741 and similar problems.
The modern internet is not waiting for ReactOS, needed to keep the RAPPS URLs working.
fix picked from:
0.4.15-dev-3603-g e0a47b7b5f [BCRYPT] Add BCRYPT_ECDSA_P256_ALGORITHM
The regression was introduced by SVN r68553 == git 3b13364f05
Many thanks to the author Doug Lyons for excellent
cooperation once more. Always a pleasure.
Fix cherry picked from commits:
0.4.15-dev-663-g cd7db5df89 and
0.4.15-dev-664-g 7c909cbc7c
Fix picked from:
0.4.15-dev-3699-g b1264c13f7 for el-GR.rc
0.4.15-dev-3700-g 98999eebe4 for sk-SK.rc
0.4.15-dev-3701-g bacc0479ce for sq-AL.rc
The pt-PT.rc file (also affected on master) did not exist in this ancient branch yet.
MSVC2010 compiler warning shellext\netshell\lang/de-DE.rc(118) : warning RC4206 : title string too long; truncated at 256
introduced by SVN r71434 == git 6ce8ee357a
The string was displayed properly and was not truncated even before this patch.
Fix picked from 0.4.15-dev-2885-g 7962db4cc1
Fix missing ReleaseDC related to the spectrum (color depth)
We leaked one device context for each bpp change within the
desk.cpl-session, which gave the following logging when closing desk.cpl:
(win32ss/user/ntuser/windc.c:749) err: [00060138] GetDC() without ReleaseDC()!
1 time for each leak.
Partial backport of (#2707)
Fix picked from 0.4.15-dev-2867-g d635ce0cc0
Reported by contributor 'qarmin', found by static code analysis.
CORE-17074
The glitch once was introduced 7 years ago by SVN r58933 == git 7934e35cdf
There is no real-world-issue known to date caused by this bug.
fix cherry picked from commit 0.4.15-dev-303-g 99d0a348aa
GetIconInfo() fill info.hbmColor with NULL HBITMAP handle on black/white bitmaps.
CORE-17062
It broke by 0.4.9-dev-719-g b3fb8555bf
fix is squashed port of 2 commits:
0.4.15-dev-534-g 887764e607 (fix)
0.4.15-dev-2705-g a3cadf630a (nitpick)
Press'n'Hold of a button, then leaving the button rect
should redraw the button in unpressed state
Thanks to JIRA user 'I_kill_Bugs' for perfecting
my initial experiments to fix that.
It regressed by 0.4.9-dev-719-g b3fb8555bf
No need to sync anything with Wine, their code is
correct on Wine head. The bug was in ros specific diff.
cherry picked from commit 0.4.15-dev-1085-g c947eb4d17
IDD_BROWSE_FOR_FOLDER displays text controlled by the calling applications in
IDC_BROWSE_FOR_FOLDER_TITLE. Its old height could lead to text truncation
for existing 3rd party apps.
The new height value for IDC_BROWSE_FOR_FOLDER_TITLE
was inspired by IDC with the same from dialog IDD_BROWSE_FOR_FOLDER_NEW.
I could change all languages to the same height,
as dimensions of the dialog and surrounding controls were same.
picked from 0.4.12-dev-781-g 1d7287288d
It "regressed" and was displayed cut-off since the switch to git
(our string got longer back then).
Fixed by porting back 2 commits:
0.4.14-dev-976-g 6ce72ba172
0.4.14-dev-884-g a57f7b50c0
and also port back some german translation updates and
trivial whitespace fixes at the same time in *.rc.
Although the new layout that I committed in the previous commit
was favored by community ratings votes 8:0,
some devs still preferred the old layout with the bigger logo
because they liked the easteregg. So this commit restores
that.
But it syncs to that features latest&greatest implementation
we have in 0.4.15-dev-1685-gd0c237a instead of reverting the
previous commit to not unnecessarily have many bugs with it
that were still affecting the older releases beforehand.
Aside from the general tabs dialogs layout this commit does
also fix some minor issues in the translations for the oldest
branches in pl-PL, jp-JA, zh-CN and zh-TW.
And it fixes an x64 issue in general.c for 0.4.7 and 0.4.8.
The version string cutoff started to happen when we switched from SVN
with its short revision number to git with the longer hashes.
0.4.7-dev-502-gc2c66af was the first git-only rev (2017-Oct-03)
and brings the dialogs layout closer to XP.
Also fixes some other truncations for specific languages.
And unifies the touched text controls sizes for all languages.
The credits have been moved to readme.txt where they are more present and
we can avoid having to groom all languages files each time we want to add
a new dev (and sysdm.cpl to grow each time). Less maintenance.
sysdm.cpl binary size I18N=all
master before 925.696bytes after 705.024bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.14 before 923.136bytes after 702.464bytes gcc 8.4.0 dbg RosBE2.2.1
0.4.13 before 904.192bytes after 684.544bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.12 before 881.664bytes after 665.600bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.11 before 836.096bytes after 618.496bytes gcc 4.7.2 dbg RosBE2.1.6
0.4.10 before 806.912bytes after 588.800bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 9 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 8 before 788.480bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
0.4. 7 before 788.992bytes after 585.728bytes gcc 4.7.2 dbg RosBE2.1.6
readme.txt still fits into a single NTFS cluster afterwards with 3702bytes
Also a very! soft update of some translations ported back.
I double-checked and although the crash in Motorbike does *not* happen by default in all of those builds:
0.4.14-RC-54-g6a6672d (hidden by opt-in apisets-default in release branch)
0.4.13-release-1-g2ac9d98 (hidden by opt-in apisets-default in release branch)
0.4.12-release-17-g79780cd (hidden also, I don't understand why)
0.4.11-release-28-gc4d930d (hidden also, I don't understand why)
0.4.10-release-35-g94b4a3e (hidden also, I don't understand why)
0.4.9-release-41-gd3a79fe (hidden also, I don't understand why)
0.4.8-release-46-gd4d58d7 (hidden, does not have apisets yet)
0.4.7-release-56-g835b508 (hidden, does not have apisets yet)
It was really only crashing in master by default, not on the release branches.
I decided to port the proper fix back nevertheless, because:
- the exports are wrong for our target
- I can not guarantee otherwise that it would not pop up all of a sudden later
- avoids the crash in rls-branches in case the app was intentionally started in Vista-compat-mode
- and the fix also decreases the binary size of that apiset.
Fix picked from 0.4.15-dev-179-g 02825c20e4
Remove WM_SYSKEYDOWN handling at component level, in consistency with other components (ListView,...)
Early embodiement of the fix proposed to WineHQ:
https://bugs.winehq.org/show_bug.cgi?id=49097 in order to remove functional limitation in ReactOS.
Fixes regressions CORE-17020 and CORE-12203 that were once introduced
by SVN r72320 == git 297e33f228
during COMCTL32 WineSync 1.9.16 CORE-11866
Fix picked from 0.4.15-dev-191-g 295ba62820
Do not call EndDialog outside the dialog procedure.
fix picked from commit 0.4.15-dev-511-g 90456e54a4
This hang/crash in 2nd stage setup did *not* affect our official carrier-releaser isos that
we host on sourceforge, because those come bundled with Gecko already and therefore always
skipped the download.
Most users were safe in the past therefore.
Still everyone that would like to build an iso by himself could potentially run
into those crashes, and it did not only happen upon user-driven cancellation,
but also often crashed upon network failure / timeout.
A very important fix therefore.
For some unknown reason the likelihood of this crash gradually increased from
0.4.7 where it happened almost never, until 0.4.14 where it crashed much more likely.
Not well understood, maybe depends on memory layout or something similar.
All of those are super safe commits.
excerpt of 0.4.11-dev-909-g 07b120bd56 zh-CN [TRANSLATION] Update Simplified Chinese translation. (#1094)
excerpt of 0.4.11-dev-149-g 31019e8c0c ro-RO [TRANSLATION] Update Romanian translation (#851)
mmsys.cpl binary size in bytes RosBE2.1.6 GCC4.7.2 dbg I18N=all:
0.4.11 which is the source 741.376
0.4.10 old 741.376 patched 741.376
0.4. 9 old 741.376 patched 741.376
0.4. 8 old 741.376 patched 741.376
0.4. 7 old 741.888 patched 741.376
Syncing the module will simplify future backmerges.
CORE-16935
I merged that back, because at least the play-icon was a regression.
It regressed by SVN r68073 == git 888c2fb967
Ftr we did not always use an icon here, but instead earlier we just had some
font glyph displaying the play-symbol. It was once changed to icon to improve
display for some asian localization (japanese? iirc).
fix picked from commit 0.4.15-dev-86-g bdb4da009a
Improves some strings, but actually I ported that back to reduce binary size.
The translated strings are shorter even than the english ones. Win-win!
Source was state of 0.4.12-release-31-g62822df.
desk.cpl built with RosBE2.1.6 on Windows with GCC4.7.2 debug building with I18N=all:
539.136bytes for 0.4.12-release-31-g62822df (was source)
0.4.11 before 539.648bytes after 539.136bytes
0.4.10 before 539.648bytes after 539.136bytes
0.4. 9 before 539.648bytes after 539.136bytes
0.4. 8 before 539.648bytes after 539.136bytes
0.4. 7 before 528.896bytes after 528.384bytes
et-EE.rc was added by 0.4.8-dev-930-g d80ef2c90a
while in parallel the dialogs have been shrinked by 0.4.8-dev-939-g 2595538558
Since both were under git PR review in parallel, that specific
language was left at the old dialog sizes accidently.
We can fix that glitch by syncing et-EE.rc to 100% to the improved state of that file in
0.4.11-release-44-g958556c because the glitch has been fixed by several commits before that rev.
This improves both: the visual quality of the dialog and also
decreases desk.cpl binary size.
Fix picked from 0.4.11-dev-244-g 6f138e2811
------------------------------
But it also inherently includes
0.4.11-dev-94-g 25f4ed75a0
"[CPL][DESK] Update monitor resource (#816)"
which replaces the CRT bmp with a TFT bitmap
dll\apisets\api-ms-win-crt-utility-l1-1-0_stubs.c(41) : error C2169: 'llabs' : intrinsic function, cannot be defined
Allows to complete the whole 'ninja bootcd' after 'configure -DCMAKE_BUILD_TYPE=Release'
for compiler MSVC 2010SP1 16.0.40219.1 with RosBE 2.1.6
Similar to the fix committed in 0.4.15-dev-1453-g 4ad7b6d634
CORE-14696 "OLE32 regression, can't delete file or folder via context menu"
It regressed by 0.4.10-dev-161-g 85037eb745
[SHELL32] We initially had an interim shell32 workaround from JIRA-user "sraboy"
committed to mitigate CORE-14696 into 0.4.10-RC-11-g 6f6f20f5df
which allowed us at least to delete via context menu again, but copying
within the same explorer instance via context-menu was not handled by that yet.
We can revert that workaround today. The new OLE32-patch handles both cases properly:
[OLE32] Don't free handles that are just copied in the inproc case.
This imports wine commit 25b136d400,
by Huw Davies and Zebediah Figura
proper fix picked from commit 0.4.12-dev-96-g 959994b67c
This fixes:
- CORE-15911 "Scrollbars do not disappear when Maximizing and not needed"
- CORE-10617 "ListView corrupt scrollbar upon resizing the column-header"
and fixes regressions:
- CORE-15429 "Uninitialized scrollbars in 'My Computer' permanently drawn"
- CORE-16466 "Uninitialized scrollbars in 'My Computer' do still flash up for a fraction of a second before getting overpainted"
both unhidden by SVN r75735 == git 0.4.7-dev-168-g 6af37fd54e
by porting back the commits:
0.4.14-dev-312-g b931f643e3
0.4.13-dev-535-g 1158c24194
This fixes a strange toggle-back-effect in 'Zeckensacks Glide Wrapper 0.84c'
by importing Wine commit
9dbe886e3f
Thanks to patches author Akihiro Sagawa <sagawa.aki@gmail.com>
Fix picked from 0.4.13-dev-1169-g 841732e45c
This was no regression, but I could not resist porting it back, because it's just
too tempting to fix a bug by deleting code. Win-win!
It regressed by Wine sync in 0.4.9-dev-719-g b3fb8555bf
Thanks to the patches author Andreas Maier <staubim@quantentunnel.de>
JIRA username 'andy-123'
Fix picked from 0.4.13-dev-531-g 49165276f2
Pressing Next-button in setup of "1C Enterprise (training version) 8.3.10.2252"
did not have any effect anymore. Setup could not be completed anymore.
The regression was introduced to ros by 0.4.8-dev-739-g f8b992f2d3
and was confirmed being a Wine-regression in
https://bugs.winehq.org/show_bug.cgi?id=45445
Thanks to Fabian Maurer for communicating to Wine and thanks to
Thomas Faber for regenerating cond.tab.c from the fixed source file cond.y
using BISON.
fix picked from 0.4.13-dev-443-g 10f00f8c1c
CORE-15412
addendum to 0.4.10-dev-502-g d559ca9
That copy-paste was done once intentionally to keep our imports similar to 2003.
It's worth reading the conversation in PR #748: Getequ seems to be ok with this.
The ideal solution most likely would be to instead *statically*
link against RegLoadMUIStringW() from advapi32_vista when WINNT=0x502.
For now the stuff runs again at least.
I left the func existing in advapi32_vista.dll.
fix picked from commit 0.4.12-dev-99-g 6f8cb05
Not to translate!
Fixes CORE-16762 "inability to pass 2nd stage setup in Albanian"
The regression was introduced by SVN r62040 == git 258cfa34a0
fix picked from commit 0.4.14-dev-1224-g
1edfddf07a
The regression was unhidden by MSI-winesync 1.5.10 almost 7years ago:
8939969e21 == SVN r57070
Finally we can fix it by adding MS enumerator extension to Jscript.
Many thanks to the patches author
Andreas Maier <staubim@quantentunnel.de>
JIRA-nick: andy-123
fix picked from commit 0.4.12-RC-18-g 9ebb42a4c0
It went afterwards into master in slightly modified form as 0.4.13-dev-890-g 83dcae1
But I decided to take the older state from 0.4.12RC, so that I do not have to risk
touching releases/0.4.12 again to sync to "latest&greatest".
The visible symptom for us was, that the Apply button in our
desk.cpl was always visible, even in case no user input was done in the dlg yet.
A very old regression. It regressed somewhere around
SVN r42990 – Good (2009-09-03)
SVN r44397 – Fail (2009-12-04)
The fix is a backport of 0.4.13-dev-908-g
344d559935
Unchange the property sheet page after WM_INITDIALOG (#1842)
In my testing on Win2k3, EN_CHANGE is generated in OnInitDialog, that is correct.
The target is property sheet.
The property sheet does unchange the page after WM_INITDIALOG generation.
CORE-14226 was already effectively fixed by
0.4.11-RC-3-g 2fc4683
0.4.10-RC-3-g 71ea3f9
0.4.9-RC-4-g c19ce95
0.4.8-RC-5-g 937c261
and therefore no release ever was affected by it,
but today I undo the intermediate and sync to the final state of this fix
like we did commit it into master after Wine review
by master commit 0.4.12-dev-151-g c086edf366
The final fixes commit message:
[USP10] Don't mix character and glyph index caches. CORE-14226
Import Wine commits by Nikolay Sivov:
* d1e618d31da usp10: Use glyph index consistently in ScriptGetGlyphABCWidth().
* 8d018d8d1da usp10: Make sure metrics cache is used with glyph indices only.
* eda3a3e37da usp10: Remove extra parentheses.
Fixes font display in UltraISO and GOG and many other installers.
See also https://bugs.winehq.org/show_bug.cgi?id=44410
PR #1599 "[COMCTL32] Saturated images: Take mask-images in account."
Many Thanks to the patches author
Andreas Maier <staubim@quantentunnel.de>
JIRA-nick: andy-123
CORE-14209 IDA5free issue with disabled menubar buttons
regressed by SVN r66418 == git
8370f15813
The patch also improves the rendering of disabled menubar buttons for SumatraPDF CORE-10601.
Even after the patch we are not perfect at deciding when to draw masked
and when to draw desaturated in 32bpp, but it definitely improves end users experience.
Fix picked from 0.4.13-dev-881-g
4093681ad0
and as preparation 0.4.13-dev-880-g
49a797543f
Reduce failures of Move operation of shell32!SHFileOperation function. CORE-13450
And also fixes regression CORE-13176 "Drag and drop with multiple files is broken"
which regressed by SVN r74380 == git
fd91fe3337
fix picked from commit 0.4.12-dev-1080-g
c65156002c