Commit graph

78570 commits

Author SHA1 Message Date
Joachim Henze c947eb4d17 [COMCTL32] Button.c Fix CORE-17260
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.
2020-10-03 15:38:02 +02:00
Thomas Faber e57a59a60a
[NTOS:MM] Fail on SizeOfRawData overflow. CORE-17284
Fixes the corresponding tests in ntdll_apitest:NtMapViewOfSection.
Also add a TODO for the remaining test failures.
2020-10-03 13:20:25 +02:00
Thomas Faber b957af4b6b
[NTOS:MM] VirtualSize overrides SizeOfRawData when mapping PE files. CORE-17284
This fixes the related failures in ntdll_apitest:NtMapViewOfSection
as well as loading of OrgPlayer's DragDrop.ocx.
2020-10-03 13:13:35 +02:00
Thomas Faber 9b1fb8d6fd
[NTDLL_APITEST] Add test for an image file where SizeOfRawData > VirtualSize. CORE-17284 2020-10-03 13:13:35 +02:00
Thomas Faber 1c404d838a
[NTDLL:LDR] Fail if section creation fails in LdrpCreateDllSection. CORE-17284
Otherwise we'd call ZwQuerySection on an invalid handle and get:
(ntoskrnl/mm/section.c:4320) Failed to reference section: 0xc0000008

Also correctly check DllCharacteristics: If the argument is missing, the
file is _not_ a system file, i.e. we should check for restrictions.
2020-10-03 13:10:09 +02:00
Thomas Brogan 2e1aeb12df
[TCPIP] Add NULL checks in DispTdiQueryInformation. CORE-12274
Add additional NULL checks to DispTdiQueryInformation,
which return STATUS_INVALID_PARAMETER.

Co-authored-by: Peter Hater <7element@mail.bg>
2020-10-03 13:05:12 +02:00
Katayama Hirofumi MZ bb8cb671b8
[BROWSEUI] Accept TypedURLs to CLSID_ACLCustomMRU (#3250)
Related to #3249. IACLCustomMRU has a special case of TypedURLs. The TypedURLs key consists of the registry values of "url1", "url2", "url3" etc instead of "MRUList", "a", "b" etc. CORE-9281
2020-10-02 21:27:23 +09:00
Hermès Bélusca-Maïto 434fa562ce
[USETUP] Do a trick to avoid visual "blinking" during screen clearing. (#3255)
CORE-17312

Hide everything under the same foreground & background colors, so that
the actual color and text blanking reset does not create a visual "blinking".
Then, blank the text and finally reset the actual foreground &
background colors.

We do this because we cannot do the screen scrolling trick that would
allow to change both the text and the colors at the same time (the
function is currently not available in our console "emulation" layer).
2020-10-02 00:20:21 +02:00
Hermès Bélusca-Maïto 66302e477c
[USETUP] Minor formatting only. 2020-10-02 00:04:11 +02:00
Katayama Hirofumi MZ 0733d96d9d [COMCTL32] Fix wrong behavior about Tab key
Pressing Tab key should focus next dialog item.
Fix 0a8fb87 and 3f30b1e.
CORE-3479
2020-10-01 22:53:59 +09:00
Timo Kreuzer 3d17a7590d [NTOS:MM] Fix paged pool initialization on x64 2020-10-01 11:24:42 +02:00
Hermès Bélusca-Maïto ffc96d26ec
[UMPNPMGR][USETUP] Fix the way device-install events are queued and dequeued. Fixes CORE-16103.
Dedicated to the hard work of Joachim Henze! xD

This reverts part of commit 043a98dd (see also commit b2aeafca).

Contrary to what I assumed in commit 043a98dd (and was also assumed in
the older commit b2aeafca), we cannot use the singled-linked lists to
queue and dequeue the PnP device-install events, because:

- the events must be treated from the oldest to the newest ones, for
  consistency, otherwise this creates problems, as shown by e.g. CORE-16103;

- the system singled-linked lists only offer access to the top of the
  list (like a stack) instead of to both the top and the bottom of the
  list, as would be required for a queue. Using the SLISTs would mean
  that only the newest-received events would be treated first, while the
  oldest (which were the first received) events would be treated last,
  and this is wrong.

Therefore one must use e.g. the standard doubly-linked list. Also, using
locked operations (insertion & removal) on the list of device-install
events is necessary, because these operations are done concurrently by
two different threads: PnpEventThread() and DeviceInstallThread().
Since the interlocked linked list functions are not available in user-mode,
we need to use instead locking access through e.g. a mutex.
2020-10-01 01:52:09 +02:00
Katayama Hirofumi MZ 828a65f470 [BROWSEUI_APITEST] Follow-up of #3249 (b1c3329)
CORE-9281
2020-10-01 05:03:34 +09:00
Katayama Hirofumi MZ b1c33293b0
[BROWSEUI_APITEST] Strengthen IACLCustomMRU testcase (#3249)
Add some tests for "TypedURLs" of a special case. The TypedURLs registry key consists of the registry values of "url1", "url2", "url3" etc instead of "MRUList", "a", "b" etc. CORE-9281
2020-09-30 20:51:49 +09:00
Joachim Henze d2bbf54b6f [MSGINA] Allow to pair FriendlyShutDownDlg with 'Server' CORE-17282
A ros specific addition that does not exist on Windows.

Default for Server is still the classic shutdown dlg,
no change on that.

But interested users can manually now create the registry setting
"EnforceFriendlyShutdown" REG_DWORD to "1"
within "SYSTEM\\CurrentControlSet\\Control\\Windows"
to allow overriding the Windows default behavior
without relying on changing the product version number, because
that would not be side-effect-free.

Addendum to 0.4.15-dev-650-g
2edcb58e65
2020-09-30 13:08:58 +02:00
Katayama Hirofumi MZ e1a01de7f7
[BROWSEUI] Fix Edit_BackWord function (#3247)
Fix and improve Edit_BackWord function (for Ctrl+Back key combination on auto-completion in edit boxes) by using GetStringTypeW. CORE-1419
2020-09-28 22:05:14 +09:00
Katayama Hirofumi MZ a822eadce6 [SHELL32] CoUninitialize only if CoInitialize* is successful
Technically CoUninitialize should be called only if CoInitializeEx succeeded (including S_FALSE).
CORE-1419
2020-09-28 20:13:28 +09:00
Katayama Hirofumi MZ 467feb9996 [BROWSEUI] Follow-up part 3 of #3242 (6b6f971)
Also recognize slash, dot, colon, and semicolon.
CORE-1419
2020-09-28 10:58:22 +09:00
Katayama Hirofumi MZ 737278276f [BROWSEUI] Follow-up part 2 of #3242 (6b6f971)
Don't recognize backslash of the last character.
CORE-1419
2020-09-28 10:41:21 +09:00
Katayama Hirofumi MZ 9812bce271 [BROWSEUI] Follow-up of #3242 (6b6f971)
Recognize backslashes in Ctrl+Back.
CORE-1419
2020-09-28 10:14:36 +09:00
Katayama Hirofumi MZ 6b6f971939
[BROWSEUI][SHELL32] Enable Ctrl+Backspace in AutoComplete edit boxes (#3242)
The key combination Ctrl+Back is well working in auto-completion edit boxes. CORE-1419
2020-09-28 09:27:01 +09:00
Hermès Bélusca-Maïto f5ba9de2ee
[CMD] Fix substring-substitute regression from commit cdc8e45b (use signed offsets). 2020-09-28 00:41:17 +02:00
Timo Kreuzer f2e3e8a1eb [NTOS] Remove an old hack 2020-09-28 00:27:30 +02:00
Timo Kreuzer d74037b666 [NTOS:PS] Fix size handling in ProcessDeviceMap
If you want to know the details, browse history or use git blame.
2020-09-28 00:24:53 +02:00
Hermès Bélusca-Maïto 895dccd4ac
[CMD] Cleanup all batch contexts if the execution loop stopped due to EXIT. 2020-09-27 20:26:36 +02:00
Timo Kreuzer 68cb54dc58 [SHELL32] Fix usage of return value 2020-09-27 19:58:21 +02:00
Hermès Bélusca-Maïto f0fccb752f
[CMD] Fix batch/CALL arguments initialization.
- Move initialization of bc->raw_params also in BatchParams().

- The bc->raw_params, i.e. the unparsed batch/CALL parameters obtained
  with %*, has any leading and trailing whitespace trimmed
  (since Windows 2000+).
2020-09-27 19:06:10 +02:00
Hermès Bélusca-Maïto 37bda06eed
[CMD] CALL: Fix the implementation of the CALL command, make it more compatible with Windows' CMD.
- Fail if no parameter is provided.

- The "CALL :label args..." syntax is available only when command extensions
  are enabled. Fail if this syntax is used outside of a batch context.

- Reparse the CALL command parameter with the command parser, in order
  to accurately parse and interpret it as a possible command (including
  escape carets, etc...) and not duplicate the logic.
  ** CURRENT Windows' CMD-compatibility LIMITATION ** (may be lifted in
  a "ROS-specific" running mode of CMD): only allow standard commands to
  be specified as parameter of the CALL command.

  This reparsing behaviour can be observed in Windows' CMD, by dumping
  the interpreted commands after enabling the cmd!fDumpParse flag from
  a debugger (using public symbols).

- When reparsing, we should tell the parser to NOT ignore lines that
  start with a colon, because in this situation these are to be
  considered as valid "commands" (for parsing "CALL :label").

  * For Windows' CMD-compatibility, the remaining escape carets need to
    be doubled again so that, after the new parser step, they are escaped
    back to their original form. But then we also need to do it the "buggy"
    way à la Windows, where carets in quotes are doubled either! However
    when being re-parsed, since they are in quotes they remain doubled!!
    (see "Phase 6" in https://stackoverflow.com/a/4095133/13530036 ).

  * A MSCMD_CALL_QUIRKS define allows to disable this buggy behaviour,
    and instead tell the parser to not not interpret the escape carets.

- When initializing a new batch context when the "CALL :label" syntax is
  used, ensure that we reuse the same batch file position pointer as its
  parent, so as to have correct call label ordering behaviour.

  That is,

  :label
  ECHO hi
  CALL :label
  :label
  ECHO bye

  should display:

  hi
  bye
  bye

  i.e., the CALL calls the second label instead of the first one (and
  thus entering into an infinite loop).

  Finally, the "CALL :label" syntax strips the first ':' away, so, as a
  side-effect, the command "CALL :EOF" fails (otherwise it would perform
  a "GOTO :EOF" and succeeds), while "CALL ::EOF" succeeds.

Fixes some cmd_winetests.
2020-09-27 19:05:23 +02:00
Hermès Bélusca-Maïto 4f4af5d271
[CMD_ROSTEST] Add tests for CALL label parsing, and for CALL and GOTO behaviour.
Tests adapted from https://stackoverflow.com/q/31987023/13530036
and from https://stackoverflow.com/a/38938416/13530036 .

- Test when CALL with a label containing /? actually calls GOTO's help,
  and test when CALL's help is displayed instead.

- Test when CALL with a label containing /?, but specified by variables,
  do NOT trigger GOTO's or CALL's help.

- Test the effect of the presence of escape carets in CALL label string.

- Test that CALL indeed supports double delayed expansion. Adapted from
  https://stackoverflow.com/a/31990563/13530036 .
2020-09-27 19:04:51 +02:00
Katayama Hirofumi MZ fe41acdc11 [SHLWAPI] Follow-up of #3230 (f496a5f)
CORE-9281
2020-09-27 15:47:10 +09:00
Katayama Hirofumi MZ f496a5fc4f
[SHLWAPI] 1/3-implement SHAutoComplete (#3230)
Retrial of #3214. Try to implment shlwapi!SHAutoComplete function. Unfinished. CORE-9281
2020-09-27 15:27:18 +09:00
Hermès Bélusca-Maïto d029a626e9
[CMD] Make the command-line parser more compatible with Windows' CMD one.
All these modifications have been verified with Windows' CMD, either
by using written cmd_rostests and the existing cmd_winetests, or
manually by enabling the flags cmd!fDumpTokens and cmd!fDumpParse
(available in the public symbols) and analyzing how the tokens are
being parsed, as well as the generated command tree.

See also the following links for more details (but remember that these
observations have to be double-checked in Windows' CMD!):

* Parser rules: https://stackoverflow.com/a/4095133/13530036
* Discussion: https://www.dostips.com/forum/viewtopic.php?f=3&t=8355
* Numbers parsing: https://www.dostips.com/forum/viewtopic.php?t=3758
* Label names vs. GOTO and CALL: https://www.dostips.com/forum/viewtopic.php?f=3&t=3803
  and: https://www.dostips.com/forum/viewtopic.php?f=3&t=3803&p=55405#p55405

- Fix REM command parsing. A C_COMMAND-like structure should still
  be built, so that it can show up during batch command echo. However
  some specific handling needs to be done, so use instead a new C_REM
  command type.
  Escape carets are parsed differently than usual: they are explicitly
  kept in the command line and don't participate in line continuations.
  Also, the Windows' CMD behaviour is to discards everything before the
  last line continuation.

- Prefix operator '@' (the "silent" operator) is parsed as a separate
  command. Thus, the command @@foo@bar is parsed as: '@', '@', 'foo@bar'.

- Improve the checks for numbered redirection.
  For this purpose, we check whether this is a number, that is in first
  position in the current parsing buffer or is preceded by a whitespace-
  like separator, including standard command operators (excepting '@' !)
  and double-quotes.

- Empty command blocks, i.e. "( )", standing by themselves, or present
  in IF or FOR commands, are considered invalid. (The closing parenthesis
  is considered "unexpected".)

- Ignore single closing parenthesis when being outside of command blocks,
  thus interpreting it as a command, and ignore explicitly everything
  following on the same line, including line continuations.
  This very specific situation can happen e.g. while running in batch mode,
  when jumping to a label present inside a command block.
  See the code for a thorough explanation.

- Detect whether a parenthesized block is not terminated at the end
  of a command stream (getting a NUL character instead of a newline),
  and if so, bail out early instead of entering into an infinite loop.

- Perform a similar check for the parenthesized list in FOR commands.

- Initialize the static 'InsideBlock' value to a known value.

- The '&' operator (multi-commmand) is allowed to have an empty RHS.
  When such situation occurs, turn the CurrentTokenType to TOK_END
  so as to avoid a parse error later on.

- The main body of a IF statement, or its 'else' clause, as well as
  the main body of a FOR statement, must not be empty, otherwise this
  is considered a syntax error. If so, call ParseError() that sets
  the 'bParseError' flag, and forcing all batch execution to stop.
2020-09-27 02:27:15 +02:00
Adam Słaboń 50ff453434
[TRANSLATION] Polish translation update (#3233) 2020-09-26 21:42:36 +03:00
Hermès Bélusca-Maïto 7988a2ac54
[CMD_ROSTEST] Add more tests for the command echoer and new tests for the parser. 2020-09-26 17:51:07 +02:00
Kyle Katarn b217d8bd14 [ROSTEST] Fix copy paste bug in RtlBitmap.c 2020-09-26 17:12:36 +02:00
Katayama Hirofumi MZ c8e1460ac5
[COMDLG32] Support shortcut keys on Open/Save Dialog (#3238)
Enable key accelerators on File Open/Save Dialog. CORE-14332
2020-09-26 21:26:06 +09:00
Katayama Hirofumi MZ 1062a297bf [DRIVERS][SCSIPORT] Fix build fdc47e7 2020-09-26 11:20:11 +09:00
Katayama Hirofumi MZ f341e60fbe [USER32] Mute 'Imm Api Table Init 2' spam
CORE-11700
2020-09-26 11:13:43 +09:00
Victor Perevertkin fdc47e7ea7
[SCSIPORT][FORMATTING] Fix formatting and PCH generation 2020-09-26 03:47:52 +03:00
Mark Jansen 3da04a9b68
[RAPPS] Remove string casts after the conutils fix 2020-09-25 22:03:28 +02:00
Timo Kreuzer d8b5c00c33 [KERNEL32_VISTA] Move vista.c from kernel32 to kernel32_vista
- Remove duplicated functions
- Use AreFileApisANSI() instead of global variable bIsFileApiAnsi in shared kernel32_shared
2020-09-25 09:45:54 +02:00
Timo Kreuzer fcd83242d4 [KERNEL32] Move some functions into a static library to be shared between kernel32 and kernel32_vista 2020-09-25 09:45:54 +02:00
Timo Kreuzer 4e72da0858 [KERNEL32_VISTA] Move under kernel32 2020-09-25 09:45:54 +02:00
Timo Kreuzer ab43f86980 [KSECDD] Fix RtlEncryptMemory and improve test 2020-09-25 09:39:51 +02:00
Katayama Hirofumi MZ ed02f41af5 [SHELL32] Call SHAutoComplete on 'Run' dialog
CORE-9281
2020-09-25 15:59:30 +09:00
Katayama Hirofumi MZ 0a8fb87d84 [COMCTL32] IP Address controls follow-up of #3212 (3f30b1e)
The rightest field didn't work Left arrow key.

CORE-3479
2020-09-25 15:32:58 +09:00
Kyle Katarn b9754fa5d6
[SETUP][MMSYS][SHELL32] Adding missing French translation (and update existing ones) (#3232)
Co-authored-by: Hermès BÉLUSCA - MAÏTO <hermes.belusca-maito@reactos.org>
2020-09-25 01:39:31 +02:00
Victor Perevertkin bb94e711ef
[NTOSKRNL_VISTA] Add stubs for functions needed in KMDF 2020-09-25 01:28:55 +03:00
Victor Perevertkin d01518da7c
[XDK] Add definitions required for newer storage class drivers (cdrom)
That introduced some warnings in the current code which were corrected as well

CORE-17129
2020-09-24 22:30:52 +03:00
Victor Perevertkin be276dde28
[XDK][NTOSKRNL_VISTA] Put NTKRNLVISTAAPI to XDK headers
for vista+ APIs implemented in ntoskrnl_vista.
Now if you statically link ntoskrnl_vista into a driver,
NTKERNELAPI will automatically be removed from an API definition
2020-09-24 21:51:57 +03:00