Rebase against upstream changes.

This commit is contained in:
Sebastian Lackner 2015-03-16 17:13:28 +01:00
parent 9fd51f90ef
commit 17a3d8c2ea
14 changed files with 113 additions and 424 deletions

View File

@ -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
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -1,2 +0,0 @@
Fixes: [38226] Implement _ismbckata and _mbctohira
Fixes: Fix wrong return values in _ismbckata

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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