mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against 6c5d17af07a318d754c0c21023b2d162a0d3725d.
This commit is contained in:
parent
5ecb89298f
commit
593249dcde
@ -1,4 +1,4 @@
|
||||
From 8dcb8ee100c5f81cef92ec98376288253b021f6a Mon Sep 17 00:00:00 2001
|
||||
From f0248f536027bb22efae2f92e180046c075a87c1 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Edmeades <us@edmeades.me.uk>
|
||||
Date: Tue, 16 Jul 2019 13:49:18 +1000
|
||||
Subject: [PATCH] cmd: Support for launching programs based on file association
|
||||
@ -15,10 +15,10 @@ Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=36646
|
||||
1 file changed, 102 insertions(+), 37 deletions(-)
|
||||
|
||||
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
|
||||
index 5f1a94b39b3..487be39c954 100644
|
||||
index ce083e710f7..2aad90e350d 100644
|
||||
--- a/programs/cmd/wcmdmain.c
|
||||
+++ b/programs/cmd/wcmdmain.c
|
||||
@@ -1385,8 +1385,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
@@ -1483,8 +1483,10 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
|
||||
/* 1. If extension supplied, see if that file exists */
|
||||
if (extensionsupplied) {
|
||||
@ -30,7 +30,7 @@ index 5f1a94b39b3..487be39c954 100644
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1416,6 +1418,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
@@ -1514,6 +1516,7 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
}
|
||||
|
||||
if (GetFileAttributesW(thisDir) != INVALID_FILE_ATTRIBUTES) {
|
||||
@ -38,7 +38,7 @@ index 5f1a94b39b3..487be39c954 100644
|
||||
found = TRUE;
|
||||
thisExt = NULL;
|
||||
}
|
||||
@@ -1437,52 +1440,114 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
@@ -1535,52 +1538,114 @@ void WCMD_run_program (WCHAR *command, BOOL called)
|
||||
/* Special case BAT and CMD */
|
||||
if (ext && (!wcsicmp(ext, L".bat") || !wcsicmp(ext, L".cmd"))) {
|
||||
BOOL oldinteractive = interactive;
|
||||
@ -158,7 +158,7 @@ index 5f1a94b39b3..487be39c954 100644
|
||||
- if (!interactive || (console && !HIWORD(console)))
|
||||
- WaitForSingleObject (pe.hProcess, INFINITE);
|
||||
- GetExitCodeProcess (pe.hProcess, &exit_code);
|
||||
- errorlevel = (exit_code == STILL_ACTIVE) ? 0 : exit_code;
|
||||
- errorlevel = (exit_code == STILL_ACTIVE) ? NO_ERROR : exit_code;
|
||||
+ if (!status) {
|
||||
+ WINE_TRACE("Failed to launch via CreateProcess, rc %d (%ld)\n",
|
||||
+ status, GetLastError());
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 7bb9825d921f91be01144110f6478a0c017cbd79 Mon Sep 17 00:00:00 2001
|
||||
From 2f9fa2d492521d297eb87e4b6709d8349818b9c6 Mon Sep 17 00:00:00 2001
|
||||
From: Jason Edmeades <us@edmeades.me.uk>
|
||||
Date: Tue, 16 Jul 2019 13:51:58 +1000
|
||||
Subject: [PATCH 2/2] cmd: ftype failed to clear file associations
|
||||
Subject: [PATCH] cmd: ftype failed to clear file associations
|
||||
|
||||
If a file association was set (e.g. ftype fred=xxx), ftype fred= needs to clear it,
|
||||
but previously it failed to do so.
|
||||
@ -12,10 +12,10 @@ but previously it failed to do so.
|
||||
3 files changed, 16 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
|
||||
index 62ae19a494..e85e553c05 100644
|
||||
index 1c39c35ca78..f23f9ef2046 100644
|
||||
--- a/programs/cmd/builtins.c
|
||||
+++ b/programs/cmd/builtins.c
|
||||
@@ -4939,11 +4939,11 @@ void WCMD_assoc (const WCHAR *args, BOOL assoc) {
|
||||
@@ -4101,11 +4101,11 @@ void WCMD_assoc (const WCHAR *args, BOOL assoc) {
|
||||
/* If nothing after '=' then clear value - only valid for ASSOC */
|
||||
if (*newValue == 0x00) {
|
||||
|
||||
@ -28,13 +28,13 @@ index 62ae19a494..e85e553c05 100644
|
||||
- } else if (assoc && rc != ERROR_FILE_NOT_FOUND) {
|
||||
+ } else if (rc != ERROR_FILE_NOT_FOUND) {
|
||||
WCMD_print_error();
|
||||
errorlevel = 2;
|
||||
errorlevel = ERROR_FILE_NOT_FOUND;
|
||||
|
||||
diff --git a/programs/cmd/tests/test_builtins.cmd b/programs/cmd/tests/test_builtins.cmd
|
||||
index f4dfc9f26d..0ef049a4ab 100644
|
||||
index d5397560bc6..14666c85cac 100644
|
||||
--- a/programs/cmd/tests/test_builtins.cmd
|
||||
+++ b/programs/cmd/tests/test_builtins.cmd
|
||||
@@ -2440,6 +2440,12 @@ echo echo +++>> tmp.cmd
|
||||
@@ -2670,6 +2670,12 @@ echo echo +++>> tmp.cmd
|
||||
echo ftype footype>> tmp.cmd
|
||||
cmd /c tmp.cmd
|
||||
|
||||
@ -47,7 +47,7 @@ index f4dfc9f26d..0ef049a4ab 100644
|
||||
echo --- resetting association
|
||||
assoc .foo=
|
||||
|
||||
@@ -2471,6 +2477,9 @@ echo .foo=footype
|
||||
@@ -2701,6 +2707,9 @@ echo .foo=footype
|
||||
echo footype=foo_opencmd
|
||||
echo +++
|
||||
echo footype=foo_opencmd
|
||||
@ -58,10 +58,10 @@ index f4dfc9f26d..0ef049a4ab 100644
|
||||
echo original value
|
||||
|
||||
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp
|
||||
index d78d91a6cf..e6ebe06714 100644
|
||||
index 0102c3bcbc5..a6d97bc8248 100644
|
||||
--- a/programs/cmd/tests/test_builtins.cmd.exp
|
||||
+++ b/programs/cmd/tests/test_builtins.cmd.exp
|
||||
@@ -1444,8 +1444,11 @@ footype=foo_opencmd
|
||||
@@ -1549,8 +1549,11 @@ footype=foo_opencmd
|
||||
footype=foo_opencmd
|
||||
+++
|
||||
footype=foo_opencmd
|
||||
@ -75,5 +75,5 @@ index d78d91a6cf..e6ebe06714 100644
|
||||
--- external script
|
||||
foo@space@
|
||||
--
|
||||
2.17.1
|
||||
2.43.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 801191c93bc6780ee726727c82c0e0b696e300ef Mon Sep 17 00:00:00 2001
|
||||
From 369f4d92683910c01d82719e448d21a74b7b82d8 Mon Sep 17 00:00:00 2001
|
||||
From: "Erich E. Hoover" <erich.e.hoover@gmail.com>
|
||||
Date: Thu, 16 Jan 2014 20:57:57 -0700
|
||||
Subject: [PATCH] ntdll: Add support for reading reparse points.
|
||||
@ -6,14 +6,14 @@ Subject: [PATCH] ntdll: Add support for reading reparse points.
|
||||
Signed-off-by: Erich E. Hoover <erich.e.hoover@gmail.com>
|
||||
---
|
||||
dlls/ntdll/tests/file.c | 21 +++-
|
||||
dlls/ntdll/unix/file.c | 222 ++++++++++++++++++++++++++++++++++++++--
|
||||
2 files changed, 231 insertions(+), 12 deletions(-)
|
||||
dlls/ntdll/unix/file.c | 221 ++++++++++++++++++++++++++++++++++++++--
|
||||
2 files changed, 231 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c
|
||||
index 17da7552046..b9ec79e37e0 100644
|
||||
index 148b6058cee..441bb69adcb 100644
|
||||
--- a/dlls/ntdll/tests/file.c
|
||||
+++ b/dlls/ntdll/tests/file.c
|
||||
@@ -5387,14 +5387,14 @@ static void test_reparse_points(void)
|
||||
@@ -5896,14 +5896,14 @@ static void test_reparse_points(void)
|
||||
static const WCHAR reparseW[] = {'\\','r','e','p','a','r','s','e',0};
|
||||
static const WCHAR targetW[] = {'\\','t','a','r','g','e','t',0};
|
||||
static const WCHAR parentW[] = {'\\','.','.','\\',0};
|
||||
@ -30,7 +30,7 @@ index 17da7552046..b9ec79e37e0 100644
|
||||
HANDLE handle;
|
||||
BOOL bret;
|
||||
|
||||
@@ -5491,6 +5491,23 @@ static void test_reparse_points(void)
|
||||
@@ -6000,6 +6000,23 @@ static void test_reparse_points(void)
|
||||
buffer_len = build_reparse_buffer(long_path, &buffer);
|
||||
bret = DeviceIoControl(handle, FSCTL_SET_REPARSE_POINT, (LPVOID)buffer, buffer_len, NULL, 0, &dwret, 0);
|
||||
ok(bret, "Failed to create junction point! (0x%lx)\n", GetLastError());
|
||||
@ -55,10 +55,10 @@ index 17da7552046..b9ec79e37e0 100644
|
||||
|
||||
cleanup:
|
||||
diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c
|
||||
index 52b85cfc6d1..0967b3b9392 100644
|
||||
index 0d58abbfa84..3e160fb1e5c 100644
|
||||
--- a/dlls/ntdll/unix/file.c
|
||||
+++ b/dlls/ntdll/unix/file.c
|
||||
@@ -315,6 +315,84 @@ static UINT encode_base64url( const char *bin, unsigned int len, char *base64 )
|
||||
@@ -325,6 +325,84 @@ static UINT encode_base64url( const char *bin, unsigned int len, char *base64 )
|
||||
return n;
|
||||
}
|
||||
|
||||
@ -143,7 +143,7 @@ index 52b85cfc6d1..0967b3b9392 100644
|
||||
/* create a directory and all the needed parent directories */
|
||||
static int mkdir_p( int dirfd, const char *path, mode_t mode )
|
||||
{
|
||||
@@ -3608,6 +3686,132 @@ cleanup:
|
||||
@@ -3715,6 +3793,132 @@ cleanup:
|
||||
}
|
||||
|
||||
|
||||
@ -276,12 +276,11 @@ index 52b85cfc6d1..0967b3b9392 100644
|
||||
/******************************************************************************
|
||||
* lookup_unix_name
|
||||
*
|
||||
@@ -6335,16 +6539,6 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
@@ -6525,15 +6729,6 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
break;
|
||||
}
|
||||
|
||||
- case FSCTL_GET_REPARSE_POINT:
|
||||
- io->Information = 0;
|
||||
- if (out_buffer && out_size)
|
||||
- {
|
||||
- FIXME("FSCTL_GET_REPARSE_POINT semi-stub\n");
|
||||
@ -293,7 +292,7 @@ index 52b85cfc6d1..0967b3b9392 100644
|
||||
case FSCTL_GET_OBJECT_ID:
|
||||
{
|
||||
FILE_OBJECTID_BUFFER *info = out_buffer;
|
||||
@@ -6367,6 +6561,14 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
@@ -6555,6 +6750,14 @@ NTSTATUS WINAPI NtFsControlFile( HANDLE handle, HANDLE event, PIO_APC_ROUTINE ap
|
||||
break;
|
||||
}
|
||||
|
||||
@ -309,5 +308,5 @@ index 52b85cfc6d1..0967b3b9392 100644
|
||||
{
|
||||
REPARSE_DATA_BUFFER *buffer = (REPARSE_DATA_BUFFER *)in_buffer;
|
||||
--
|
||||
2.37.2
|
||||
2.43.0
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 0dae85eba564b06274760c085652908727e3b2e7 Mon Sep 17 00:00:00 2001
|
||||
From 48124df7efbda048d841899cc9bde77a3684622b Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Mon, 26 Aug 2019 14:37:20 +0200
|
||||
Subject: [PATCH] server: Add send_hardware_message flags for rawinput
|
||||
@ -26,10 +26,10 @@ index bd11567290f..c75e691b4ee 100644
|
||||
{
|
||||
UINT flags;
|
||||
diff --git a/server/protocol.def b/server/protocol.def
|
||||
index dc77ecec15b..e4e632dcf23 100644
|
||||
index 222a283477a..320b87775b7 100644
|
||||
--- a/server/protocol.def
|
||||
+++ b/server/protocol.def
|
||||
@@ -2206,7 +2206,7 @@ enum message_type
|
||||
@@ -2208,7 +2208,7 @@ enum message_type
|
||||
@REQ(send_hardware_message)
|
||||
user_handle_t win; /* window handle */
|
||||
hw_input_t input; /* input data */
|
||||
@ -38,7 +38,7 @@ index dc77ecec15b..e4e632dcf23 100644
|
||||
VARARG(report,bytes); /* HID report data */
|
||||
@REPLY
|
||||
int wait; /* do we need to wait for a reply? */
|
||||
@@ -2215,7 +2215,6 @@ enum message_type
|
||||
@@ -2217,7 +2217,6 @@ enum message_type
|
||||
int new_x; /* new cursor position */
|
||||
int new_y;
|
||||
@END
|
||||
@ -47,10 +47,10 @@ index dc77ecec15b..e4e632dcf23 100644
|
||||
|
||||
/* Get a message from the current queue */
|
||||
diff --git a/server/queue.c b/server/queue.c
|
||||
index cece12066fc..c423b9ad8c4 100644
|
||||
index 784443ce955..0db4faab193 100644
|
||||
--- a/server/queue.c
|
||||
+++ b/server/queue.c
|
||||
@@ -2031,7 +2031,7 @@ static void dispatch_rawinput_message( struct desktop *desktop, struct rawinput_
|
||||
@@ -2056,7 +2056,7 @@ static void dispatch_rawinput_message( struct desktop *desktop, struct rawinput_
|
||||
|
||||
/* queue a hardware message for a mouse event */
|
||||
static int queue_mouse_message( struct desktop *desktop, user_handle_t win, const hw_input_t *input,
|
||||
@ -59,7 +59,7 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
{
|
||||
const desktop_shm_t *desktop_shm = desktop->shared;
|
||||
struct hardware_msg_data *msg_data;
|
||||
@@ -2092,7 +2092,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
@@ -2117,7 +2117,7 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
y = desktop_shm->cursor.y;
|
||||
}
|
||||
|
||||
@ -68,7 +68,7 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
{
|
||||
memset( &raw_msg, 0, sizeof(raw_msg) );
|
||||
raw_msg.foreground = foreground;
|
||||
@@ -2107,6 +2107,8 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
@@ -2132,6 +2132,8 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
release_object( foreground );
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
for (i = 0; i < ARRAY_SIZE( messages ); i++)
|
||||
{
|
||||
if (!messages[i]) continue;
|
||||
@@ -2137,14 +2139,14 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
@@ -2162,14 +2164,14 @@ static int queue_mouse_message( struct desktop *desktop, user_handle_t win, cons
|
||||
}
|
||||
|
||||
static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, const hw_input_t *input,
|
||||
@ -94,16 +94,16 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
}
|
||||
|
||||
static void stop_key_repeat( struct desktop *desktop )
|
||||
@@ -2157,7 +2159,7 @@ static void stop_key_repeat( struct desktop *desktop )
|
||||
@@ -2182,7 +2184,7 @@ static void stop_key_repeat( struct desktop *desktop )
|
||||
|
||||
/* queue a hardware message for a keyboard event */
|
||||
static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, const hw_input_t *input,
|
||||
- unsigned int origin, struct msg_queue *sender, int repeat )
|
||||
+ unsigned int origin, struct msg_queue *sender, int repeat, unsigned int send_flags )
|
||||
{
|
||||
const desktop_shm_t *desktop_shm = desktop->shared;
|
||||
struct hw_msg_source source = { IMDT_KEYBOARD, origin };
|
||||
struct hardware_msg_data *msg_data;
|
||||
@@ -2280,7 +2282,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
@@ -2305,7 +2307,7 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
{
|
||||
struct rawinput_message raw_msg = {0};
|
||||
raw_msg.foreground = foreground;
|
||||
@@ -2295,6 +2297,8 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
@@ -2320,6 +2322,8 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c
|
||||
release_object( foreground );
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ index cece12066fc..c423b9ad8c4 100644
|
||||
if (!(msg = alloc_hardware_message( input->kbd.info, source, time, 0 ))) return 0;
|
||||
msg_data = msg->data;
|
||||
|
||||
@@ -3050,10 +3054,10 @@ DECL_HANDLER(send_hardware_message)
|
||||
@@ -3075,10 +3079,10 @@ DECL_HANDLER(send_hardware_message)
|
||||
switch (req->input.type)
|
||||
{
|
||||
case INPUT_MOUSE:
|
||||
|
@ -1 +1 @@
|
||||
8c64979dcb2673659adacf39733e24d42b7fc01d
|
||||
6c5d17af07a318d754c0c21023b2d162a0d3725d
|
||||
|
Loading…
Reference in New Issue
Block a user