Picks various trivial improvements from newer branches, does not fix specific JIRA-tickets and also doesn't
*entirely* cover a specific PR, therefore none of those are mentioned here.
Main motivation is to reduce large scale white-noise diff between the branches, to make
future commits diffs (with some fixes that actually matter) smaller in size and therefore easier to review.
Specifically:
- large-scale formatting & logging improvements, including but not limited to 0.4.15-dev-7653-g 6f91b6c0fe
- strip trailing whitespace
- also typos like 'unkown', missing \n as it was
part of 0.4.15-dev-6323-g 3854a5d8e9 and
0.4.15-dev-4492-g 03422451b3
(I left out the MOUSE_MOVE-one from that, because I consider the missing \n there intentional)
- ports back many usages of ARRAYSIZE/_countof as it was added as part of some commits from Hermes, e.g.:
*partial* pick of 0.4.13-dev-622-g 8a30801516 and
*partial* pick of 0.4.15-dev-3642-g 83be315abf (I left out the literals here for now, ...
I *might* pick them later on their own, but not now. I first want to verify their isolated impact on all compilers generated file-sizes.
Some of those changes would even increase the binary size, especially those where the same literal is used multiple times,
because string-pooling is currently not enabled for all toolchains and configurations.)
- COpenWithMenu.cpp: strip double-semicolon
- COpenWithMenu.cpp && folder_options.cpp: add \n to some dbg-prints without increasing their length
- CFSDropTarget.cpp: add \n to some dbg-prints, strip some good-path-traces that are no longer present in master in return to avoid size increase, fix indentation
- CShellLink.cpp: add \n to some dbg-prints without increasing their length
- iconcache.cpp: fix wrong indentation
- shlfileop.cpp: partially pick 0.4.15-dev-7388-g d689cfe158 just the stripping of #ifdef __REACTOS__ but NOT the actual fix! (the ifdefs were only present in 0.4.14)
- 0.4.10 and lower: shellpath.c Strip some TRACEs with wrong format-strings, strip unused string my_DocumentsW
binary size of shell32.dll has tendency to shrink slightly, which is caused solely by the logging changes:
master RosBEWin2.2.2 GCC8.4.0 dbg x86 10.538.496 (0.4.15-dev-7640-gbdcfc6b)
releases/0.4.14 RosBEWin2.2.2 GCC8.4.0 dbg x86 9.317.888 -> 9.316.684
releases/0.4.14 RosBEWin2.1.6 GCC4.7.2 dbg x86 9.345.024 -> 9.345.024
releases/0.4.13 RosBEWin2.1.6 GCC4.7.2 dbg x86 9.201.152 -> 9.200.640
releases/0.4.12 RosBEWin2.1.6 GCC4.7.2 dbg x86 9.146.880 -> 9.146.880
releases/0.4.11 RosBEWin2.1.6 GCC4.7.2 dbg x86 9.077.760 -> 9.077.248
releases/0.4.10 RosBEWin2.1.6 GCC4.7.2 dbg x86 9.074.176 -> 9.072.128
releases/0.4. 9 RosBEWin2.1.6 GCC4.7.2 dbg x86 8.825.856 -> 8.824.832
releases/0.4. 8 RosBEWin2.1.6 GCC4.7.2 dbg x86 8.740.864 -> 8.738.816
releases/0.4. 7 RosBEWin2.1.6 GCC4.7.2 dbg x86 8.668.160 -> 8.666.624
by porting back:
[SHELL32] Ignore unused flag SEE_MASK_UNICODE (#5033)
0.4.15-dev-5676-g 5c22ce3742
to mute logspam of the kind
fixme:(dll/win32/shell32/shlexec.cpp:1934) flags ignored: 0x00004000
e.g. when starting Rapps.
-------------------------------------------------------------
[SHELL32] brsfolder.c Delete unused #ifndef __REACTOS__ block
It is a partial pick of:
0.4.15-dev-3642-g 83be315abf
and strip all EOL-whitespace in that file.
This part is done as the file is part of a backport into even older branches.
brsfolder.c will be 100% in sync between releases/0.4.7 - releases/0.4.14 afterwards.
-------------------------------------------------------------
[SHELL32] de-DE.rc Update regarding IDC_BROWSE_FOR_FOLDER_NEW_FOLDER
0.4.15-dev-2957-g c30b1fe893
and pick other small tweaks in that file from master
-------------------------------------------------------------
[COMDLG32] Support shortcut keys on Open/Save Dialog (#3238)
Enable key accelerators on File Open/Save Dialog. CORE-14332
0.4.15-dev-1050-g c8e1460ac5
--------------------------------------------------------------
[SHELL32] Implement VK_DELETE on SHBrowseForFolder (#2661)
Enable Del/Delete key to delete the selected folder in "Browse for Folder" dialog.
You can use https://jira.reactos.org/secure/attachment/40118/getfolder.zip as a test program.
0.4.15-dev-39-g 771457f37f
--------------------------------------------------------------
[SHELL32] Sync brsfolder.c with keyboard shortcut code from wine (#2290)
0.4.14-dev-1187-g fc4c4d4911
This is a squashed backport of the following commits:
0.4.13-RC-53-g 4f628f6b16 (partial pick of shell32-changes for Miranda CORE-14439 & Winamp CORE-13584, explorer left out)
0.4.14-dev-369-g 141cf04239 (#2046) NTUSER
0.4.15-dev-1126-g 58b0558f94 (#3294) NTUSER
0.4.15-dev-2618-g 32b0cf6fc6 (#3697) NTUSER
0.4.15-dev-2621-g 59d4c11203 (#3700) NTUSER
0.4.15-dev-5242-g e6fb0e0c25 (#4800) Cleanup
brings us closer to releases/0.4.14
In the older branches it will fix the following bugs (or prevents introducing them):
CORE-13584 'Winamp 5.666 erroneously has a secret tab shown in taskbar'
CORE-14380 'Effective File Search 6.8.1 when you open up the app via desktop link there is no pane in taskbar'
CORE-14439 'Miranda IM 0.10.21 snap-to-monitor-border-feature brings ros to halt'
CORE-15655 'Click-N-Type Virtual Keyboard 3.03.0412 has no taskbar pane'
CORE-15669 'DVD Write Now 1.5.12 SP2 setup has no taskbar pane'
CORE-15716 'Photofiltr 7.2.1 has no taskbar pane'
CORE-15731 'Java JRE 6u45 setup, last page of setup has no taskbar pane'
CORE-16030 'Moo0 Audio Recorder - the taskbar icon does not appear'
(CORE-17330 Regression, many installers that should have only 1 taskbar pane, now have 2 of them erroneously)
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.
This allows the code to give a last chance for expanding the string.
And if it still fails, we bail out as expected and the caller will
take appropriate actions.
As a by-product, this commit (together with the previous one e2960914)
fixes the regression CORE-14981 (Quick-Launch bar couldn't be opened
in LiveCD).
cherry picked from commit 0.4.11-dev-208-g
7ee298bbfc
and bail out if it failed. That way we won't use and cache in the registry an invalid-expanded string.
CORE-14981
cherry picked from commit 0.4.11-dev-207-g
e29609147b
- Fix a regression introduced in r65415 (1795a3bf) where the directory
paths stored in "Windows\CurrentVersion\Explorer\User Shell Folders"
were stored in expanded format instead of in unexpanded format:
_SHGetDefaultValue() *MUST* return unexpanded paths by design!!
- Augment _SHExpandEnvironmentStrings() and _SHGetUserShellFolderPath()
to take a user token handle to be able to correctly resolve/expand
user-specific directory paths.
- Fix _SHExpandEnvironmentStrings() so that it always retrieve the
correct current user / all-users directory paths by calling userenv
functions, instead of hardcoding a broken logic. As a result this
removes the "C:\Documents and Settings\SYSTEM" ghost directory we got
during ReactOS installation.
- Delimit the changes with respect to Wine by #if(n)def __REACTOS__ .
A bit of history: in r71528, I tried to fix our explorer often
crashing while browsing directories. It was linked to the fact
that a notification result may arrive while the notification
structure had already been deleted.
The fix for this was actually broken and was leading to a double
leak: the notification structure was leaked. But also the handle
to the directory that had been browsed!
This means that the directory couldn't be modified anymore as
a leaked handle to it was still open.
Actually, when notifications are cancel, the kernel properly
calls the notification routine, but with a specific error code.
So the correct fix is to stop handling that notification when
we receive this error code. This is the correct fix with no leaks.
This commit is a complete r71528 revert with the appropriate fix.
CORE-10941
CORE-12843
The two methods were completely broken because they passed a full pidl to the parent folder (and not desktop folder).
Compile SHGetNameFromIDList to use it in CShellItem but don't export it.
on 32bit builds CSIDL_PROGRAM_FILESX86 is treated as CSIDL_PROGRAM_FILES and on wow64 builds CSIDL_PROGRAM_FILES gets treated as CSIDL_PROGRAM_FILESX86
This patch reduces failures of SHGetFileInfo function. CORE-7159
* improve WideByteToWideChar calls
* fix bugs related to file attributes and SHGFI_EXETYPE
* SHGFI_USEFILEATTRIBUTES and SHGFI_ICON fix
* s/sizeof(temppsfi)/0/