mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-09-13 09:17:20 -07:00
Rebase against upstream changes.
This commit is contained in:
parent
9fd51f90ef
commit
17a3d8c2ea
@ -38,17 +38,15 @@ Wine. All those differences are also documented on the
|
||||
Included bug fixes and improvements
|
||||
===================================
|
||||
|
||||
**Bugfixes and features included in the next upcoming release [13]:**
|
||||
**Bugfixes and features included in the next upcoming release [11]:**
|
||||
|
||||
* Add stub for PowerCreateRequest
|
||||
* Fix caps lock state issues with multiple processes ([Wine Bug #35907](https://bugs.winehq.org/show_bug.cgi?id=35907))
|
||||
* Fix multithreading issues with fullscreen clipping ([Wine Bug #38087](https://bugs.winehq.org/show_bug.cgi?id=38087))
|
||||
* Fix wrong return values in _ismbckata
|
||||
* Fix wrong return values of RtlFindActivationContextSectionString for NULL data
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_24
|
||||
* Fix wrong version of ID3DXEffect interface for d3dx9_25 ([Wine Bug #25138](https://bugs.winehq.org/show_bug.cgi?id=25138))
|
||||
* GetMessage should remove already seen messages with higher priority ([Wine Bug #28884](https://bugs.winehq.org/show_bug.cgi?id=28884))
|
||||
* Implement _ismbckata and _mbctohira ([Wine Bug #38226](https://bugs.winehq.org/show_bug.cgi?id=38226))
|
||||
* Implement locking and synchronization of key states ([Wine Bug #31899](https://bugs.winehq.org/show_bug.cgi?id=31899))
|
||||
* Improve stub for ID3DXEffectImpl_CloneEffect
|
||||
* Invalidate key state cache globally after calling LL hooks ([Wine Bug #29871](https://bugs.winehq.org/show_bug.cgi?id=29871))
|
||||
|
1
debian/changelog
vendored
1
debian/changelog
vendored
@ -19,6 +19,7 @@ wine-staging (1.7.39) UNRELEASED; urgency=low
|
||||
* Added patch to improve stub for ID3DXEffectImpl_CloneEffect.
|
||||
* Removed patch to avoid hardcoded values for sizeof(GUID) (accepted upstream).
|
||||
* Removed patches for SLGetWindowsInformationDWORD (accepted upstream).
|
||||
* Removed patches for _ismbckata and _mbctohira (fixed upstream).
|
||||
-- Sebastian Lackner <sebastian@fds-team.de> Mon, 09 Mar 2015 16:52:35 +0100
|
||||
|
||||
wine-staging (1.7.38) unstable; urgency=low
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 53e57218a4c5c71efc15656bd8a55fc5dbf05f6a Mon Sep 17 00:00:00 2001
|
||||
From 7ae0152904f19f7f8e6e6fd761563b837b08cc69 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Mon, 4 Aug 2014 05:01:11 +0200
|
||||
Subject: server: Use SOCK_SEQPACKET socket in combination with SO_PEEK_OFF to
|
||||
@ -36,10 +36,10 @@ Changes in v6:
|
||||
create mode 100644 server/sock.h
|
||||
|
||||
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
|
||||
index 12887ff..5be278e 100644
|
||||
index ef100bc..8157140 100644
|
||||
--- a/dlls/kernel32/sync.c
|
||||
+++ b/dlls/kernel32/sync.c
|
||||
@@ -1472,7 +1472,7 @@ BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer,
|
||||
@@ -1470,7 +1470,7 @@ BOOL WINAPI PeekNamedPipe( HANDLE hPipe, LPVOID lpvBuffer, DWORD cbBuffer,
|
||||
ULONG read_size = io.Information - FIELD_OFFSET( FILE_PIPE_PEEK_BUFFER, Data );
|
||||
if (lpcbAvail) *lpcbAvail = buffer->ReadDataAvailable;
|
||||
if (lpcbRead) *lpcbRead = read_size;
|
||||
@ -49,10 +49,10 @@ index 12887ff..5be278e 100644
|
||||
}
|
||||
else SetLastError( RtlNtStatusToDosError(status) );
|
||||
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
|
||||
index f42fe5c..743144e 100644
|
||||
index 1b30ffb..dff00c9 100644
|
||||
--- a/dlls/kernel32/tests/pipe.c
|
||||
+++ b/dlls/kernel32/tests/pipe.c
|
||||
@@ -285,7 +285,6 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
@@ -286,7 +286,6 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
if (pipemode == PIPE_TYPE_BYTE)
|
||||
ok(leftmsg == 0, "peek got %d bytes left in message\n", leftmsg);
|
||||
else
|
||||
@ -60,7 +60,7 @@ index f42fe5c..743144e 100644
|
||||
ok(leftmsg == sizeof(obuf2) - 4, "peek got %d bytes left in message\n", leftmsg);
|
||||
ok(ReadFile(hFile, ibuf + 4, sizeof(ibuf) - 4, &readden, NULL), "ReadFile\n");
|
||||
ok(readden == sizeof(obuf2) - 4, "read got %d bytes\n", readden);
|
||||
@@ -509,12 +508,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
@@ -510,12 +509,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
readden = leftmsg = -1;
|
||||
ok(PeekNamedPipe(hFile, NULL, 0, NULL, &readden, &leftmsg), "PeekNamedPipe 9\n");
|
||||
ok(readden == sizeof(obuf) + sizeof(obuf2), "peek got %d bytes total 9\n", readden);
|
||||
@ -73,7 +73,7 @@ index f42fe5c..743144e 100644
|
||||
ok(leftmsg == sizeof(obuf), "peek got %d bytes left in message 9\n", leftmsg);
|
||||
SetLastError(0xdeadbeef);
|
||||
todo_wine
|
||||
@@ -532,12 +529,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
@@ -533,12 +530,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
readden = leftmsg = -1;
|
||||
ok(PeekNamedPipe(hFile, NULL, 0, NULL, &readden, &leftmsg), "PeekNamedPipe 9\n");
|
||||
ok(readden == sizeof(obuf) - 8 + sizeof(obuf2), "peek got %d bytes total 9\n", readden);
|
||||
@ -86,7 +86,7 @@ index f42fe5c..743144e 100644
|
||||
ok(leftmsg == sizeof(obuf) - 8, "peek got %d bytes left in message 9\n", leftmsg);
|
||||
ret = RpcReadFile(hFile, ibuf + 8, sizeof(ibuf), &readden, NULL);
|
||||
ok(ret, "RpcReadFile 9\n");
|
||||
@@ -598,12 +593,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
@@ -599,12 +594,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
readden = leftmsg = -1;
|
||||
ok(PeekNamedPipe(hnp, NULL, 0, NULL, &readden, &leftmsg), "PeekNamedPipe 10\n");
|
||||
ok(readden == sizeof(obuf) + sizeof(obuf2), "peek got %d bytes total 10\n", readden);
|
||||
@ -99,7 +99,7 @@ index f42fe5c..743144e 100644
|
||||
ok(leftmsg == sizeof(obuf2), "peek got %d bytes left in message 10\n", leftmsg);
|
||||
SetLastError(0xdeadbeef);
|
||||
todo_wine
|
||||
@@ -621,12 +614,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
@@ -622,12 +615,10 @@ static void test_CreateNamedPipe(int pipemode)
|
||||
readden = leftmsg = -1;
|
||||
ok(PeekNamedPipe(hnp, NULL, 0, NULL, &readden, &leftmsg), "PeekNamedPipe 10\n");
|
||||
ok(readden == sizeof(obuf2) - 8 + sizeof(obuf), "peek got %d bytes total 10\n", readden);
|
||||
@ -113,7 +113,7 @@ index f42fe5c..743144e 100644
|
||||
ret = RpcReadFile(hnp, ibuf + 8, sizeof(ibuf), &readden, NULL);
|
||||
ok(ret, "RpcReadFile 10\n");
|
||||
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
|
||||
index e8a1066..5cbfa40 100644
|
||||
index 2f00767..1a4211e 100644
|
||||
--- a/dlls/ntdll/file.c
|
||||
+++ b/dlls/ntdll/file.c
|
||||
@@ -76,6 +76,10 @@
|
||||
@ -124,10 +124,10 @@ index e8a1066..5cbfa40 100644
|
||||
+#define SO_PEEK_OFF 42
|
||||
+#endif
|
||||
+
|
||||
#define NONAMELESSUNION
|
||||
#define NONAMELESSSTRUCT
|
||||
#include "ntstatus.h"
|
||||
@@ -436,18 +440,57 @@ static NTSTATUS unix_fd_avail(int fd, int *avail)
|
||||
#define WIN32_NO_STATUS
|
||||
#define NONAMELESSUNION
|
||||
@@ -461,18 +465,57 @@ static NTSTATUS unix_fd_avail(int fd, int *avail)
|
||||
STATUS_PIPE_BROKEN : STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@ -188,7 +188,7 @@ index e8a1066..5cbfa40 100644
|
||||
{
|
||||
if (*total)
|
||||
return STATUS_SUCCESS;
|
||||
@@ -462,16 +505,17 @@ static NTSTATUS read_unix_fd(int fd, char *buf, ULONG *total, ULONG length,
|
||||
@@ -487,16 +530,17 @@ static NTSTATUS read_unix_fd(int fd, char *buf, ULONG *total, ULONG length,
|
||||
return STATUS_PIPE_BROKEN;
|
||||
}
|
||||
}
|
||||
@ -210,7 +210,7 @@ index e8a1066..5cbfa40 100644
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
@@ -929,13 +973,14 @@ NTSTATUS WINAPI NtReadFileScatter( HANDLE file, HANDLE event, PIO_APC_ROUTINE ap
|
||||
@@ -955,13 +999,14 @@ NTSTATUS WINAPI NtReadFileScatter( HANDLE file, HANDLE event, PIO_APC_ROUTINE ap
|
||||
/* helper function for NtWriteFile and FILE_AsyncWriteService */
|
||||
static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG length, enum server_fd_type type)
|
||||
{
|
||||
@ -226,7 +226,7 @@ index e8a1066..5cbfa40 100644
|
||||
if (result >= 0)
|
||||
{
|
||||
*total += result;
|
||||
@@ -944,6 +989,17 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
|
||||
@@ -970,6 +1015,17 @@ static NTSTATUS write_unix_fd(int fd, const char *buf, ULONG *total, ULONG lengt
|
||||
else if (type != FD_TYPE_FILE) /* no async I/O on regular files */
|
||||
return STATUS_PENDING;
|
||||
}
|
||||
@ -244,7 +244,7 @@ index e8a1066..5cbfa40 100644
|
||||
else if (errno != EINTR)
|
||||
{
|
||||
if (errno == EAGAIN)
|
||||
@@ -1577,20 +1633,40 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
||||
@@ -1593,20 +1649,40 @@ NTSTATUS WINAPI NtFsControlFile(HANDLE handle, HANDLE event, PIO_APC_ROUTINE apc
|
||||
status = unix_fd_avail( fd, &avail );
|
||||
if (!status)
|
||||
{
|
||||
@ -293,7 +293,7 @@ index e8a1066..5cbfa40 100644
|
||||
if (needs_close) close( fd );
|
||||
}
|
||||
diff --git a/server/named_pipe.c b/server/named_pipe.c
|
||||
index 81741de..999221f 100644
|
||||
index 7c6bcf8..fe4a33a 100644
|
||||
--- a/server/named_pipe.c
|
||||
+++ b/server/named_pipe.c
|
||||
@@ -42,6 +42,10 @@
|
||||
@ -315,7 +315,7 @@ index 81741de..999221f 100644
|
||||
#include "handle.h"
|
||||
#include "thread.h"
|
||||
#include "request.h"
|
||||
@@ -804,14 +809,43 @@ static struct pipe_server *find_available_server( struct named_pipe *pipe )
|
||||
@@ -791,14 +796,43 @@ static struct pipe_server *find_available_server( struct named_pipe *pipe )
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -360,7 +360,7 @@ index 81741de..999221f 100644
|
||||
|
||||
if (!(server = find_available_server( pipe )))
|
||||
{
|
||||
@@ -830,7 +864,10 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
@@ -817,7 +851,10 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
|
||||
if ((client = create_pipe_client( options, pipe->flags )))
|
||||
{
|
||||
@ -372,7 +372,7 @@ index 81741de..999221f 100644
|
||||
{
|
||||
assert( !server->fd );
|
||||
|
||||
@@ -840,32 +877,55 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
@@ -827,32 +864,55 @@ static struct object *named_pipe_open_file( struct object *obj, unsigned int acc
|
||||
if (is_overlapped( options )) fcntl( fds[1], F_SETFL, O_NONBLOCK );
|
||||
if (is_overlapped( server->options )) fcntl( fds[0], F_SETFL, O_NONBLOCK );
|
||||
|
||||
@ -447,7 +447,7 @@ index 81741de..999221f 100644
|
||||
release_object( client );
|
||||
client = NULL;
|
||||
}
|
||||
@@ -965,7 +1025,7 @@ DECL_HANDLER(create_named_pipe)
|
||||
@@ -952,7 +1012,7 @@ DECL_HANDLER(create_named_pipe)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -456,7 +456,7 @@ index 81741de..999221f 100644
|
||||
reply->handle = 0;
|
||||
|
||||
if (!objattr_is_valid( objattr, get_req_data_size() ))
|
||||
@@ -1065,6 +1125,9 @@ DECL_HANDLER(set_named_pipe_info)
|
||||
@@ -1052,6 +1112,9 @@ DECL_HANDLER(set_named_pipe_info)
|
||||
{
|
||||
struct pipe_server *server;
|
||||
struct pipe_client *client = NULL;
|
||||
@ -466,7 +466,7 @@ index 81741de..999221f 100644
|
||||
|
||||
server = get_pipe_server_obj( current->process, req->handle, FILE_WRITE_ATTRIBUTES );
|
||||
if (!server)
|
||||
@@ -1087,10 +1150,20 @@ DECL_HANDLER(set_named_pipe_info)
|
||||
@@ -1074,10 +1137,20 @@ DECL_HANDLER(set_named_pipe_info)
|
||||
else if (client)
|
||||
{
|
||||
client->pipe_flags = server->pipe->flags | req->flags;
|
||||
@ -488,10 +488,10 @@ index 81741de..999221f 100644
|
||||
|
||||
if (client)
|
||||
diff --git a/server/sock.c b/server/sock.c
|
||||
index 7c0212e..73a2549 100644
|
||||
index 823c846..d3c26d6 100644
|
||||
--- a/server/sock.c
|
||||
+++ b/server/sock.c
|
||||
@@ -55,6 +55,7 @@
|
||||
@@ -61,6 +61,7 @@
|
||||
|
||||
#include "process.h"
|
||||
#include "file.h"
|
||||
@ -499,7 +499,7 @@ index 7c0212e..73a2549 100644
|
||||
#include "handle.h"
|
||||
#include "thread.h"
|
||||
#include "request.h"
|
||||
@@ -127,7 +128,6 @@ static void sock_cancel_async( struct fd *fd, struct process *process, struct th
|
||||
@@ -138,7 +139,6 @@ static void sock_cancel_async( struct fd *fd, struct process *process, struct th
|
||||
|
||||
static int sock_get_ntstatus( int err );
|
||||
static int sock_get_error( int err );
|
||||
@ -507,7 +507,7 @@ index 7c0212e..73a2549 100644
|
||||
|
||||
static const struct object_ops sock_ops =
|
||||
{
|
||||
@@ -910,7 +910,7 @@ static int sock_get_ntstatus( int err )
|
||||
@@ -956,7 +956,7 @@ static int sock_get_ntstatus( int err )
|
||||
}
|
||||
|
||||
/* set the last error depending on errno */
|
||||
@ -549,5 +549,5 @@ index 0000000..21551b4
|
||||
+
|
||||
+#endif /* __WINE_SERVER_SOCK_H */
|
||||
--
|
||||
2.2.1
|
||||
2.3.2
|
||||
|
||||
|
@ -1,301 +0,0 @@
|
||||
From 42f254c0d72fe27cff614bf017e17ee93a95b478 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Mon, 16 Mar 2015 06:09:00 +0100
|
||||
Subject: msvcrt: Implement _mbctokata and _mbctohira.
|
||||
|
||||
---
|
||||
dlls/msvcr100/msvcr100.spec | 4 +-
|
||||
dlls/msvcr110/msvcr110.spec | 4 +-
|
||||
dlls/msvcr120/msvcr120.spec | 4 +-
|
||||
dlls/msvcr70/msvcr70.spec | 4 +-
|
||||
dlls/msvcr71/msvcr71.spec | 4 +-
|
||||
dlls/msvcr80/msvcr80.spec | 4 +-
|
||||
dlls/msvcr90/msvcr90.spec | 4 +-
|
||||
dlls/msvcrt/mbcs.c | 24 +++++++++++-
|
||||
dlls/msvcrt/msvcrt.spec | 4 +-
|
||||
dlls/msvcrt/tests/string.c | 96 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
10 files changed, 134 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
|
||||
index a7df4b5..b7d4945 100644
|
||||
--- a/dlls/msvcr100/msvcr100.spec
|
||||
+++ b/dlls/msvcr100/msvcr100.spec
|
||||
@@ -1082,9 +1082,9 @@
|
||||
@ stub _mbcjmstojis_l
|
||||
@ cdecl _mbclen(ptr)
|
||||
@ stub _mbclen_l
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
@ stub _mbctohira_l
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ stub _mbctokata_l
|
||||
@ cdecl _mbctolower(long)
|
||||
@ stub _mbctolower_l
|
||||
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
|
||||
index f696aaf..c7222b9 100644
|
||||
--- a/dlls/msvcr110/msvcr110.spec
|
||||
+++ b/dlls/msvcr110/msvcr110.spec
|
||||
@@ -1440,9 +1440,9 @@
|
||||
@ stub _mbcjmstojis_l
|
||||
@ cdecl _mbclen(ptr)
|
||||
@ stub _mbclen_l
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
@ stub _mbctohira_l
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ stub _mbctokata_l
|
||||
@ cdecl _mbctolower(long)
|
||||
@ stub _mbctolower_l
|
||||
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
|
||||
index 58e708d..c7df42f 100644
|
||||
--- a/dlls/msvcr120/msvcr120.spec
|
||||
+++ b/dlls/msvcr120/msvcr120.spec
|
||||
@@ -1448,9 +1448,9 @@
|
||||
@ stub _mbcjmstojis_l
|
||||
@ cdecl _mbclen(ptr)
|
||||
@ stub _mbclen_l
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
@ stub _mbctohira_l
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ stub _mbctokata_l
|
||||
@ cdecl _mbctolower(long)
|
||||
@ stub _mbctolower_l
|
||||
diff --git a/dlls/msvcr70/msvcr70.spec b/dlls/msvcr70/msvcr70.spec
|
||||
index fb47e78..c494ce0 100644
|
||||
--- a/dlls/msvcr70/msvcr70.spec
|
||||
+++ b/dlls/msvcr70/msvcr70.spec
|
||||
@@ -423,8 +423,8 @@
|
||||
@ cdecl _mbcjistojms(long)
|
||||
@ cdecl _mbcjmstojis(long)
|
||||
@ cdecl _mbclen(ptr)
|
||||
-@ stub _mbctohira(long)
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ cdecl _mbctolower(long)
|
||||
@ cdecl _mbctombb(long)
|
||||
@ cdecl _mbctoupper(long)
|
||||
diff --git a/dlls/msvcr71/msvcr71.spec b/dlls/msvcr71/msvcr71.spec
|
||||
index 8b868db..f8a52f1 100644
|
||||
--- a/dlls/msvcr71/msvcr71.spec
|
||||
+++ b/dlls/msvcr71/msvcr71.spec
|
||||
@@ -418,8 +418,8 @@
|
||||
@ cdecl _mbcjistojms(long)
|
||||
@ cdecl _mbcjmstojis(long)
|
||||
@ cdecl _mbclen(ptr)
|
||||
-@ stub _mbctohira(long)
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ cdecl _mbctolower(long)
|
||||
@ cdecl _mbctombb(long)
|
||||
@ cdecl _mbctoupper(long)
|
||||
diff --git a/dlls/msvcr80/msvcr80.spec b/dlls/msvcr80/msvcr80.spec
|
||||
index 68e7097..8b40e2e 100644
|
||||
--- a/dlls/msvcr80/msvcr80.spec
|
||||
+++ b/dlls/msvcr80/msvcr80.spec
|
||||
@@ -755,9 +755,9 @@
|
||||
@ stub _mbcjmstojis_l
|
||||
@ cdecl _mbclen(ptr)
|
||||
@ stub _mbclen_l
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
@ stub _mbctohira_l
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ stub _mbctokata_l
|
||||
@ cdecl _mbctolower(long)
|
||||
@ stub _mbctolower_l
|
||||
diff --git a/dlls/msvcr90/msvcr90.spec b/dlls/msvcr90/msvcr90.spec
|
||||
index 2d88683..5c65b2f 100644
|
||||
--- a/dlls/msvcr90/msvcr90.spec
|
||||
+++ b/dlls/msvcr90/msvcr90.spec
|
||||
@@ -732,9 +732,9 @@
|
||||
@ stub _mbcjmstojis_l
|
||||
@ cdecl _mbclen(ptr)
|
||||
@ stub _mbclen_l
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
@ stub _mbctohira_l
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
@ stub _mbctokata_l
|
||||
@ cdecl _mbctolower(long)
|
||||
@ stub _mbctolower_l
|
||||
diff --git a/dlls/msvcrt/mbcs.c b/dlls/msvcrt/mbcs.c
|
||||
index d2c12d3..67727d3 100644
|
||||
--- a/dlls/msvcrt/mbcs.c
|
||||
+++ b/dlls/msvcrt/mbcs.c
|
||||
@@ -1367,8 +1367,6 @@ int CDECL _ismbckata(unsigned int c)
|
||||
/* FIXME: use lc_ctype when supported, not lc_all */
|
||||
if(get_mbcinfo()->mbcodepage == 932)
|
||||
{
|
||||
- if(c < 256)
|
||||
- return _ismbbkana(c);
|
||||
/* Japanese/Katakana, CP 932 */
|
||||
return (c >= 0x8340 && c <= 0x8396 && c != 0x837f);
|
||||
}
|
||||
@@ -1376,6 +1374,28 @@ int CDECL _ismbckata(unsigned int c)
|
||||
}
|
||||
|
||||
/*********************************************************************
|
||||
+ * _mbctohira(MSVCRT.@)
|
||||
+ */
|
||||
+unsigned int CDECL _mbctohira(unsigned int c)
|
||||
+{
|
||||
+ if(_ismbckata(c) && c < 0x8394)
|
||||
+ return (c < 0x837f) ? (c - 0xa1) : (c - 0xa2);
|
||||
+
|
||||
+ return c;
|
||||
+}
|
||||
+
|
||||
+/*********************************************************************
|
||||
+ * _mbctokata(MSVCRT.@)
|
||||
+ */
|
||||
+unsigned int CDECL _mbctokata(unsigned int c)
|
||||
+{
|
||||
+ if(_ismbchira(c))
|
||||
+ return (c < 0x82de) ? (c + 0xa1) : (c + 0xa2);
|
||||
+
|
||||
+ return c;
|
||||
+}
|
||||
+
|
||||
+/*********************************************************************
|
||||
* _ismbblead(MSVCRT.@)
|
||||
*/
|
||||
int CDECL _ismbblead(unsigned int c)
|
||||
diff --git a/dlls/msvcrt/msvcrt.spec b/dlls/msvcrt/msvcrt.spec
|
||||
index 6d9b4c3..1f2a8ce 100644
|
||||
--- a/dlls/msvcrt/msvcrt.spec
|
||||
+++ b/dlls/msvcrt/msvcrt.spec
|
||||
@@ -698,9 +698,9 @@
|
||||
# stub _mbcjmstojis_l(long ptr)
|
||||
@ cdecl _mbclen(ptr)
|
||||
# stub _mbclen_l(ptr ptr)
|
||||
-@ stub _mbctohira(long)
|
||||
+@ cdecl _mbctohira(long)
|
||||
# stub _mbctohira_l(long ptr)
|
||||
-@ stub _mbctokata(long)
|
||||
+@ cdecl _mbctokata(long)
|
||||
# stub _mbctokata_l(long ptr)
|
||||
@ cdecl _mbctolower(long)
|
||||
# stub _mbctolower_l(long ptr)
|
||||
diff --git a/dlls/msvcrt/tests/string.c b/dlls/msvcrt/tests/string.c
|
||||
index e2d53d4..4ba708e 100644
|
||||
--- a/dlls/msvcrt/tests/string.c
|
||||
+++ b/dlls/msvcrt/tests/string.c
|
||||
@@ -2784,6 +2784,101 @@ static void test__wcsset_s(void)
|
||||
ok(str[2] == 'b', "str[2] = %d\n", str[2]);
|
||||
}
|
||||
|
||||
+static int is_hira(unsigned int c)
|
||||
+{
|
||||
+ if(_getmbcp() != 932)
|
||||
+ return 0;
|
||||
+ return (c >= 0x829f && c <= 0x82f1);
|
||||
+}
|
||||
+
|
||||
+static int is_kata(unsigned int c)
|
||||
+{
|
||||
+ if(_getmbcp() != 932)
|
||||
+ return 0;
|
||||
+ return (c >= 0x8340 && c <= 0x8396 && c != 0x837f);
|
||||
+}
|
||||
+
|
||||
+static unsigned int to_hira(unsigned int c)
|
||||
+{
|
||||
+ if(_getmbcp() != 932)
|
||||
+ return c;
|
||||
+ if(c < 0x8340 || c > 0x8393 || c == 0x837f)
|
||||
+ return c;
|
||||
+ return (c < 0x837f) ? (c - 0xa1) : (c - 0xa2);
|
||||
+}
|
||||
+
|
||||
+static unsigned int to_kata(unsigned int c)
|
||||
+{
|
||||
+ if(_getmbcp() != 932)
|
||||
+ return c;
|
||||
+ if(c < 0x829f || c > 0x82f1)
|
||||
+ return c;
|
||||
+ return (c < 0x82de) ? (c + 0xa1) : (c + 0xa2);
|
||||
+}
|
||||
+
|
||||
+
|
||||
+static void test_kata_hira(void)
|
||||
+{
|
||||
+ unsigned int tests[] = { 0x0000, 0x0065, 0x00a0, 0x00a1, 0x00c0, 0x00df,
|
||||
+ 0x00e0, 0x1000, 0x2000, 0x3000, 0x4000, 0x5000,
|
||||
+ 0x6000, 0x7000, 0x8000, 0x829e, 0x829f, 0x82dd,
|
||||
+ 0x82de, 0x82f1, 0x82f2, 0x833f, 0x8340, 0x835f,
|
||||
+ 0x837e, 0x837f, 0x8380, 0x838b, 0x8393, 0x8394,
|
||||
+ 0x8396, 0x8397, 0x9000, 0xa000, 0xb000, 0xc000,
|
||||
+ 0xd000, 0xe000, 0xf000 };
|
||||
+ unsigned int i, ret;
|
||||
+ int val, prev_cp = _getmbcp();
|
||||
+
|
||||
+ /* set code page to non-japanese */
|
||||
+ if(_setmbcp(1252)) {
|
||||
+ win_skip("Failed to change codepage to 1252, skipping test\n");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ for(i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) {
|
||||
+
|
||||
+ val = _ismbchira(tests[i]);
|
||||
+ ok(!val, "_ismbchira returned %d for %x\n", val, tests[i]);
|
||||
+
|
||||
+ val = _ismbckata(tests[i]);
|
||||
+ ok(!val, "_ismbckata returned %d for %x\n", val, tests[i]);
|
||||
+
|
||||
+ ret = _mbctohira(tests[i]);
|
||||
+ ok(ret == tests[i], "_mbctohira returned %x for %x\n", ret, tests[i]);
|
||||
+
|
||||
+ ret = _mbctokata(tests[i]);
|
||||
+ ok(ret == tests[i], "_mbctokata returned %x for %x\n", ret, tests[i]);
|
||||
+ }
|
||||
+
|
||||
+ /* set code page to japanese */
|
||||
+ if(_setmbcp(932)) {
|
||||
+ win_skip("Failed to change codepage to 932, skipping test\n");
|
||||
+ _setmbcp(prev_cp);
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ for(i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) {
|
||||
+
|
||||
+ val = _ismbchira(tests[i]);
|
||||
+ ok(val == is_hira(tests[i]),
|
||||
+ "_ismbchira returned %d for %x\n", val, tests[i]);
|
||||
+
|
||||
+ val = _ismbckata(tests[i]);
|
||||
+ ok(val == is_kata(tests[i]),
|
||||
+ "_ismbckata returned %d for %x\n", val, tests[i]);
|
||||
+
|
||||
+ ret = _mbctohira(tests[i]);
|
||||
+ ok(ret == to_hira(tests[i]),
|
||||
+ "_mbctohira returned %x for %x\n", ret, tests[i]);
|
||||
+
|
||||
+ ret = _mbctokata(tests[i]);
|
||||
+ ok(ret == to_kata(tests[i]),
|
||||
+ "_mbctokata returned %x for %x\n", ret, tests[i]);
|
||||
+ }
|
||||
+
|
||||
+ _setmbcp(prev_cp);
|
||||
+}
|
||||
+
|
||||
START_TEST(string)
|
||||
{
|
||||
char mem[100];
|
||||
@@ -2888,4 +2983,5 @@ START_TEST(string)
|
||||
test_strxfrm();
|
||||
test__strnset_s();
|
||||
test__wcsset_s();
|
||||
+ test_kata_hira();
|
||||
}
|
||||
--
|
||||
2.3.2
|
||||
|
@ -1,2 +0,0 @@
|
||||
Fixes: [38226] Implement _ismbckata and _mbctohira
|
||||
Fixes: Fix wrong return values in _ismbckata
|
@ -123,7 +123,6 @@ patch_enable_all ()
|
||||
enable_mmdevapi_AEV_Stubs="$1"
|
||||
enable_msctf_DllCanUnloadNow="$1"
|
||||
enable_msvcp90_basic_string_wchar_dtor="$1"
|
||||
enable_msvcrt_Kata_Hira="$1"
|
||||
enable_msvcrt_atof_strtod="$1"
|
||||
enable_msvfw32_Image_Size="$1"
|
||||
enable_netprofm_IConnectionPoint="$1"
|
||||
@ -422,9 +421,6 @@ patch_enable ()
|
||||
msvcp90-basic_string_wchar_dtor)
|
||||
enable_msvcp90_basic_string_wchar_dtor="$2"
|
||||
;;
|
||||
msvcrt-Kata_Hira)
|
||||
enable_msvcrt_Kata_Hira="$2"
|
||||
;;
|
||||
msvcrt-atof_strtod)
|
||||
enable_msvcrt_atof_strtod="$2"
|
||||
;;
|
||||
@ -2742,23 +2738,6 @@ if test "$enable_msvcp90_basic_string_wchar_dtor" -eq 1; then
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset msvcrt-Kata_Hira
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#38226] Implement _ismbckata and _mbctohira
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * dlls/msvcr100/msvcr100.spec, dlls/msvcr110/msvcr110.spec, dlls/msvcr120/msvcr120.spec, dlls/msvcr70/msvcr70.spec,
|
||||
# | dlls/msvcr71/msvcr71.spec, dlls/msvcr80/msvcr80.spec, dlls/msvcr90/msvcr90.spec, dlls/msvcrt/mbcs.c,
|
||||
# | dlls/msvcrt/msvcrt.spec, dlls/msvcrt/tests/string.c
|
||||
# |
|
||||
if test "$enable_msvcrt_Kata_Hira" -eq 1; then
|
||||
patch_apply msvcrt-Kata_Hira/0001-msvcrt-Implement-_mbctokata-and-_mbctohira.patch
|
||||
(
|
||||
echo '+ { "Michael Müller", "msvcrt: Implement _mbctokata and _mbctohira.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
# Patchset msvcrt-atof_strtod
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 32cac6b3baa18e853028012d6cb9b36ff74f1f85 Mon Sep 17 00:00:00 2001
|
||||
From bd0fc951470cce05795929f159a541c7ca84c318 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Fri, 8 Aug 2014 21:32:57 +0800
|
||||
Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement IText{Selection, Range}::Set{Start, End}.
|
||||
2 files changed, 179 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 0788125..8b5f2ba 100644
|
||||
index c62998a..b16dd3f 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -674,14 +674,27 @@ static HRESULT WINAPI ITextRange_fnGetStart(ITextRange *me, LONG *pcpFirst)
|
||||
@@ -741,14 +741,27 @@ static HRESULT WINAPI ITextRange_fnGetStart(ITextRange *me, LONG *pcpFirst)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -42,7 +42,7 @@ index 0788125..8b5f2ba 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim)
|
||||
@@ -697,14 +710,27 @@ static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim)
|
||||
@@ -764,14 +777,27 @@ static HRESULT WINAPI ITextRange_fnGetEnd(ITextRange *me, LONG *pcpLim)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ index 0788125..8b5f2ba 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnGetFont(ITextRange *me, ITextFont **pFont)
|
||||
@@ -1684,11 +1710,16 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
|
||||
@@ -1751,11 +1777,16 @@ static HRESULT WINAPI ITextSelection_fnGetStart(ITextSelection *me, LONG *pcpFir
|
||||
static HRESULT WINAPI ITextSelection_fnSetStart(ITextSelection *me, LONG cpFirst)
|
||||
{
|
||||
ITextSelectionImpl *This = impl_from_ITextSelection(me);
|
||||
@ -91,7 +91,7 @@ index 0788125..8b5f2ba 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
@@ -1708,11 +1739,16 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
@@ -1775,11 +1806,16 @@ static HRESULT WINAPI ITextSelection_fnGetEnd(ITextSelection *me, LONG *pcpLim)
|
||||
static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
|
||||
{
|
||||
ITextSelectionImpl *This = impl_from_ITextSelection(me);
|
||||
@ -111,11 +111,11 @@ index 0788125..8b5f2ba 100644
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index eed335c..2268211 100644
|
||||
index a89ee55..a0d0d17 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -941,6 +941,137 @@ static void test_ITextSelection_Collapse(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, &txtSel);
|
||||
@@ -1028,6 +1028,137 @@ static void test_IOleWindow_GetWindow(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, NULL);
|
||||
}
|
||||
|
||||
+static void test_ITextRange_SetStart(void)
|
||||
@ -252,7 +252,7 @@ index eed335c..2268211 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -953,10 +1084,14 @@ START_TEST(richole)
|
||||
@@ -1040,12 +1171,16 @@ START_TEST(richole)
|
||||
test_ITextSelection_GetText();
|
||||
test_ITextSelection_GetChar();
|
||||
test_ITextSelection_GetStart_GetEnd();
|
||||
@ -266,7 +266,9 @@ index eed335c..2268211 100644
|
||||
test_ITextRange_Collapse();
|
||||
+ test_ITextRange_SetStart();
|
||||
+ test_ITextRange_SetEnd();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 8f95372e011674226be25a4456db6dd2952da804 Mon Sep 17 00:00:00 2001
|
||||
From b79278e3883ff38659fd4aaf6f9d9036f6d48956 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Mon, 11 Aug 2014 13:51:55 +0800
|
||||
Subject: riched20: Stub for ITextFont interface and implement
|
||||
@ -10,7 +10,7 @@ Subject: riched20: Stub for ITextFont interface and implement
|
||||
2 files changed, 893 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 276c795..df43621 100644
|
||||
index b16dd3f..5612ff9 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -46,10 +46,12 @@ DEFINE_GUID(IID_ITextHost2, 0x13e670f5,0x1a5a,0x11cf,0xab,0xeb,0x00,0xaa,0x00,0x
|
||||
@ -46,7 +46,7 @@ index 276c795..df43621 100644
|
||||
struct ITextRangeImpl {
|
||||
ITextRange ITextRange_iface;
|
||||
LONG ref;
|
||||
@@ -145,6 +158,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
@@ -146,6 +159,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
if (!ref)
|
||||
{
|
||||
ITextRangeImpl *txtRge;
|
||||
@ -54,7 +54,7 @@ index 276c795..df43621 100644
|
||||
|
||||
TRACE("Destroying %p\n", This);
|
||||
This->txtSel->reOle = NULL;
|
||||
@@ -153,6 +167,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
@@ -154,6 +168,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
IOleClientSite_Release(&This->clientSite->IOleClientSite_iface);
|
||||
LIST_FOR_EACH_ENTRY(txtRge, &This->rangelist, ITextRangeImpl, entry)
|
||||
txtRge->reOle = NULL;
|
||||
@ -63,7 +63,7 @@ index 276c795..df43621 100644
|
||||
heap_free(This);
|
||||
}
|
||||
return ref;
|
||||
@@ -492,6 +508,744 @@ static const IRichEditOleVtbl revt = {
|
||||
@@ -548,6 +564,744 @@ static const IRichEditOleVtbl revt = {
|
||||
IRichEditOle_fnImportDataObject
|
||||
};
|
||||
|
||||
@ -808,7 +808,7 @@ index 276c795..df43621 100644
|
||||
/* ITextRange interface */
|
||||
static inline ITextRangeImpl *impl_from_ITextRange(ITextRange *iface)
|
||||
{
|
||||
@@ -744,14 +1498,42 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG cpLim)
|
||||
@@ -800,14 +1554,42 @@ static HRESULT WINAPI ITextRange_fnSetEnd(ITextRange *me, LONG cpLim)
|
||||
return range_SetEnd(This->reOle->editor, cpLim, &This->start, &This->end);
|
||||
}
|
||||
|
||||
@ -853,7 +853,7 @@ index 276c795..df43621 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
|
||||
@@ -1765,11 +2547,24 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
|
||||
@@ -1821,11 +2603,24 @@ static HRESULT WINAPI ITextSelection_fnSetEnd(ITextSelection *me, LONG cpLim)
|
||||
static HRESULT WINAPI ITextSelection_fnGetFont(ITextSelection *me, ITextFont **pFont)
|
||||
{
|
||||
ITextSelectionImpl *This = impl_from_ITextSelection(me);
|
||||
@ -880,7 +880,7 @@ index 276c795..df43621 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnSetFont(ITextSelection *me, ITextFont *pFont)
|
||||
@@ -2403,6 +3198,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
|
||||
@@ -2459,6 +3254,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
|
||||
}
|
||||
TRACE("Created %p\n",reo);
|
||||
list_init(&reo->rangelist);
|
||||
@ -889,10 +889,10 @@ index 276c795..df43621 100644
|
||||
reo->outer_unk = outer_unk;
|
||||
else
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index 2268211..e9618d8 100644
|
||||
index a0d0d17..8673aa9 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1072,6 +1072,97 @@ static void test_ITextSelection_SetEnd(void)
|
||||
@@ -1159,6 +1159,97 @@ static void test_ITextSelection_SetEnd(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, &txtSel);
|
||||
}
|
||||
|
||||
@ -990,7 +990,7 @@ index 2268211..e9618d8 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1087,6 +1178,7 @@ START_TEST(richole)
|
||||
@@ -1174,6 +1265,7 @@ START_TEST(richole)
|
||||
test_ITextSelection_SetStart();
|
||||
test_ITextSelection_SetEnd();
|
||||
test_ITextSelection_Collapse();
|
||||
@ -998,12 +998,14 @@ index 2268211..e9618d8 100644
|
||||
test_ITextDocument_Range();
|
||||
test_ITextRange_GetChar();
|
||||
test_ITextRange_GetStart_GetEnd();
|
||||
@@ -1094,4 +1186,5 @@ START_TEST(richole)
|
||||
@@ -1181,6 +1273,7 @@ START_TEST(richole)
|
||||
test_ITextRange_Collapse();
|
||||
test_ITextRange_SetStart();
|
||||
test_ITextRange_SetEnd();
|
||||
+ test_ITextRange_GetFont();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 19911f4b2960e524c1701273c9460d281643d03c Mon Sep 17 00:00:00 2001
|
||||
From a9fa015b0c2d9bcc66980fab03bc5417623f2718 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Sun, 10 Aug 2014 22:17:57 +0800
|
||||
Subject: riched20: Stub for ITextPara interface and implement
|
||||
@ -10,7 +10,7 @@ Subject: riched20: Stub for ITextPara interface and implement
|
||||
2 files changed, 729 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index df43621..f98f147 100644
|
||||
index 5612ff9..b5069e4 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -47,11 +47,13 @@ DEFINE_GUID(IID_ITextDocument, 0x8cc497c0, 0xa1df, 0x11ce, 0x80, 0x98, 0x00, 0xa
|
||||
@ -47,7 +47,7 @@ index df43621..f98f147 100644
|
||||
struct ITextFontImpl {
|
||||
ITextFont ITextFont_iface;
|
||||
LONG ref;
|
||||
@@ -159,6 +172,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
@@ -160,6 +173,7 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
{
|
||||
ITextRangeImpl *txtRge;
|
||||
ITextFontImpl *txtFont;
|
||||
@ -55,7 +55,7 @@ index df43621..f98f147 100644
|
||||
|
||||
TRACE("Destroying %p\n", This);
|
||||
This->txtSel->reOle = NULL;
|
||||
@@ -169,6 +183,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
@@ -170,6 +184,8 @@ static ULONG WINAPI IRichEditOleImpl_inner_fnRelease(IUnknown *iface)
|
||||
txtRge->reOle = NULL;
|
||||
LIST_FOR_EACH_ENTRY(txtFont, &This->fontlist, ITextFontImpl, entry)
|
||||
txtFont->reOle = NULL;
|
||||
@ -64,7 +64,7 @@ index df43621..f98f147 100644
|
||||
heap_free(This);
|
||||
}
|
||||
return ref;
|
||||
@@ -508,6 +524,641 @@ static const IRichEditOleVtbl revt = {
|
||||
@@ -564,6 +580,641 @@ static const IRichEditOleVtbl revt = {
|
||||
IRichEditOle_fnImportDataObject
|
||||
};
|
||||
|
||||
@ -706,7 +706,7 @@ index df43621..f98f147 100644
|
||||
/* ITextFont interface */
|
||||
static inline ITextFontImpl *impl_from_ITextFont(ITextFont *iface)
|
||||
{
|
||||
@@ -1546,14 +2197,42 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
|
||||
@@ -1602,14 +2253,42 @@ static HRESULT WINAPI ITextRange_fnSetFont(ITextRange *me, ITextFont *pFont)
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@ -751,7 +751,7 @@ index df43621..f98f147 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnSetPara(ITextRange *me, ITextPara *pPara)
|
||||
@@ -3199,6 +3878,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
|
||||
@@ -3255,6 +3934,7 @@ LRESULT CreateIRichEditOle(IUnknown *outer_unk, ME_TextEditor *editor, LPVOID *p
|
||||
TRACE("Created %p\n",reo);
|
||||
list_init(&reo->rangelist);
|
||||
list_init(&reo->fontlist);
|
||||
@ -760,10 +760,10 @@ index df43621..f98f147 100644
|
||||
reo->outer_unk = outer_unk;
|
||||
else
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index e9618d8..909d27e 100644
|
||||
index 8673aa9..afe8af9 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1163,6 +1163,52 @@ static void test_ITextSelection_GetFont(void)
|
||||
@@ -1250,6 +1250,52 @@ static void test_ITextSelection_GetFont(void)
|
||||
ITextFont_Release(txtFont);
|
||||
}
|
||||
|
||||
@ -816,12 +816,14 @@ index e9618d8..909d27e 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1187,4 +1233,5 @@ START_TEST(richole)
|
||||
@@ -1274,6 +1320,7 @@ START_TEST(richole)
|
||||
test_ITextRange_SetStart();
|
||||
test_ITextRange_SetEnd();
|
||||
test_ITextRange_GetFont();
|
||||
+ test_ITextRange_GetPara();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 48d9ee478bda1e5305965e0793af9ba844f704a5 Mon Sep 17 00:00:00 2001
|
||||
From 481415ab4d8f622ef27182aecc0f4a0635cfb44d Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Wed, 13 Aug 2014 14:57:52 +0800
|
||||
Subject: riched20: Fix ME_RunOfsFromCharOfs() when nCharOfs > strlen().
|
||||
@ -37,5 +37,5 @@ index 38d0270..ad08b82 100644
|
||||
|
||||
/******************************************************************************
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 2980acb7084bfaddaa37a19e9961493a0a20cb0c Mon Sep 17 00:00:00 2001
|
||||
From 1a1ce59d29cd53547810110ba1e201b070ea23bc Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Wed, 13 Aug 2014 15:40:11 +0800
|
||||
Subject: riched20: Implement ITextRange::GetText.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetText.
|
||||
2 files changed, 67 insertions(+), 21 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 76fc51d..63e0142 100644
|
||||
index b5069e4..e0a1d6e 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -1970,14 +1970,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
|
||||
@@ -2043,14 +2043,40 @@ static HRESULT WINAPI ITextRange_fnInvoke(ITextRange *me, DISPID dispIdMember, R
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@ -55,7 +55,7 @@ index 76fc51d..63e0142 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnSetText(ITextRange *me, BSTR bstr)
|
||||
@@ -3054,8 +3080,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
@@ -3127,8 +3153,6 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
{
|
||||
ITextSelectionImpl *This = impl_from_ITextSelection(me);
|
||||
ME_Cursor *start = NULL, *end = NULL;
|
||||
@ -64,7 +64,7 @@ index 76fc51d..63e0142 100644
|
||||
|
||||
if (!This->reOle)
|
||||
return CO_E_RELEASED;
|
||||
@@ -3064,23 +3088,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
@@ -3137,23 +3161,7 @@ static HRESULT WINAPI ITextSelection_fnGetText(ITextSelection *me, BSTR *pbstr)
|
||||
return E_INVALIDARG;
|
||||
|
||||
ME_GetSelection(This->reOle->editor, &start, &end);
|
||||
@ -90,10 +90,10 @@ index 76fc51d..63e0142 100644
|
||||
|
||||
static HRESULT WINAPI ITextSelection_fnSetText(ITextSelection *me, BSTR bstr)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index 909d27e..0079b39 100644
|
||||
index afe8af9..192ff90 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1209,6 +1209,43 @@ static void test_ITextRange_GetPara(void)
|
||||
@@ -1296,6 +1296,43 @@ static void test_ITextRange_GetPara(void)
|
||||
ITextPara_Release(txtPara);
|
||||
}
|
||||
|
||||
@ -137,12 +137,14 @@ index 909d27e..0079b39 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1234,4 +1271,5 @@ START_TEST(richole)
|
||||
@@ -1321,6 +1358,7 @@ START_TEST(richole)
|
||||
test_ITextRange_SetEnd();
|
||||
test_ITextRange_GetFont();
|
||||
test_ITextRange_GetPara();
|
||||
+ test_ITextRange_GetText();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6f514567079f943943d176edb86e15c85db3477b Mon Sep 17 00:00:00 2001
|
||||
From 1376e708ee270ff14de14cf761ee1965e6842c5e Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Wed, 13 Aug 2014 17:17:14 +0800
|
||||
Subject: riched20: Implement ITextRange::SetRange.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::SetRange.
|
||||
2 files changed, 60 insertions(+), 17 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 63e0142..0a59388 100644
|
||||
index e0a1d6e..fb6c5b0 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -2326,14 +2326,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde
|
||||
@@ -2399,14 +2399,36 @@ static HRESULT WINAPI ITextRange_fnSetIndex(ITextRange *me, LONG Unit, LONG Inde
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@ -51,7 +51,7 @@ index 63e0142..0a59388 100644
|
||||
}
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnInRange(ITextRange *me, ITextRange *pRange, LONG *pb)
|
||||
@@ -2928,26 +2950,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2,
|
||||
@@ -3001,26 +3023,12 @@ ITextDocument_fnRange(ITextDocument* me, LONG cp1, LONG cp2,
|
||||
ITextRange** ppRange)
|
||||
{
|
||||
IRichEditOleImpl *This = impl_from_ITextDocument(me);
|
||||
@ -80,10 +80,10 @@ index 63e0142..0a59388 100644
|
||||
}
|
||||
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index 0079b39..e7618f9 100644
|
||||
index 192ff90..312fad7 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1246,6 +1246,40 @@ static void test_ITextRange_GetText(void)
|
||||
@@ -1333,6 +1333,40 @@ static void test_ITextRange_GetText(void)
|
||||
TEST_TXTRGE_GETTEXT(1, 1, NULL)
|
||||
}
|
||||
|
||||
@ -124,12 +124,14 @@ index 0079b39..e7618f9 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1272,4 +1306,5 @@ START_TEST(richole)
|
||||
@@ -1359,6 +1393,7 @@ START_TEST(richole)
|
||||
test_ITextRange_GetFont();
|
||||
test_ITextRange_GetPara();
|
||||
test_ITextRange_GetText();
|
||||
+ test_ITextRange_SetRange();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 6ccbe61f2439e6af6919257535eec784e8398c2d Mon Sep 17 00:00:00 2001
|
||||
From 96742bfcb5ac8a1f95fee81246ef31c56c6613e5 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Fri, 15 Aug 2014 14:27:21 +0800
|
||||
Subject: riched20: Implement ITextRange::IsEqual.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::IsEqual.
|
||||
2 files changed, 64 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 0a59388..3bb1b5a 100644
|
||||
index fb6c5b0..ce1a2dd 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -2378,14 +2378,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L
|
||||
@@ -2451,14 +2451,29 @@ static HRESULT WINAPI ITextRange_fnInStory(ITextRange *me, ITextRange *pRange, L
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
@ -45,10 +45,10 @@ index 0a59388..3bb1b5a 100644
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnSelect(ITextRange *me)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index e7618f9..7a4c8b5 100644
|
||||
index 312fad7..d114fe2 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1280,6 +1280,52 @@ static void test_ITextRange_SetRange(void)
|
||||
@@ -1367,6 +1367,52 @@ static void test_ITextRange_SetRange(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, NULL);
|
||||
}
|
||||
|
||||
@ -101,12 +101,14 @@ index e7618f9..7a4c8b5 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1307,4 +1353,5 @@ START_TEST(richole)
|
||||
@@ -1394,6 +1440,7 @@ START_TEST(richole)
|
||||
test_ITextRange_GetPara();
|
||||
test_ITextRange_GetText();
|
||||
test_ITextRange_SetRange();
|
||||
+ test_ITextRange_IsEqual();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
From b3ca01e489e57615c3b5849bd301ecee19ddf4b1 Mon Sep 17 00:00:00 2001
|
||||
From 96767fde7d9558498176d82d2b509b0b458c7762 Mon Sep 17 00:00:00 2001
|
||||
From: Jactry Zeng <wine@jactry.com>
|
||||
Date: Mon, 18 Aug 2014 14:38:50 +0800
|
||||
Subject: riched20: Implement ITextRange::GetStoryLength.
|
||||
@ -9,10 +9,10 @@ Subject: riched20: Implement ITextRange::GetStoryLength.
|
||||
2 files changed, 36 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c
|
||||
index 3bb1b5a..0bc302b 100644
|
||||
index ce1a2dd..6def896 100644
|
||||
--- a/dlls/riched20/richole.c
|
||||
+++ b/dlls/riched20/richole.c
|
||||
@@ -2260,8 +2260,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch)
|
||||
@@ -2333,8 +2333,10 @@ static HRESULT WINAPI ITextRange_fnGetStoryLength(ITextRange *me, LONG *pcch)
|
||||
if (!This->reOle)
|
||||
return CO_E_RELEASED;
|
||||
|
||||
@ -26,10 +26,10 @@ index 3bb1b5a..0bc302b 100644
|
||||
|
||||
static HRESULT WINAPI ITextRange_fnGetStoryType(ITextRange *me, LONG *pValue)
|
||||
diff --git a/dlls/riched20/tests/richole.c b/dlls/riched20/tests/richole.c
|
||||
index 7a4c8b5..543f3ec 100644
|
||||
index d114fe2..4e662da 100644
|
||||
--- a/dlls/riched20/tests/richole.c
|
||||
+++ b/dlls/riched20/tests/richole.c
|
||||
@@ -1326,6 +1326,37 @@ static void test_ITextRange_IsEqual(void)
|
||||
@@ -1413,6 +1413,37 @@ static void test_ITextRange_IsEqual(void)
|
||||
release_interfaces(&w, &reOle, &txtDoc, NULL);
|
||||
}
|
||||
|
||||
@ -67,12 +67,14 @@ index 7a4c8b5..543f3ec 100644
|
||||
START_TEST(richole)
|
||||
{
|
||||
/* Must explicitly LoadLibrary(). The test has no references to functions in
|
||||
@@ -1354,4 +1385,5 @@ START_TEST(richole)
|
||||
@@ -1441,6 +1472,7 @@ START_TEST(richole)
|
||||
test_ITextRange_GetText();
|
||||
test_ITextRange_SetRange();
|
||||
test_ITextRange_IsEqual();
|
||||
+ test_ITextRange_GetStoryLength();
|
||||
test_IOleClientSite_QueryInterface();
|
||||
test_IOleWindow_GetWindow();
|
||||
}
|
||||
--
|
||||
2.1.2
|
||||
2.3.2
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user