Commit Graph

992 Commits

Author SHA1 Message Date
Dylan Smith
9d2da7fa66 riched20/tests: Remove unnecessary SetFocus calls. 2011-09-26 12:19:43 +02:00
Dylan Smith
fdb2bc4be9 riched20/tests: Avoid using flaky method of simulating typing. 2011-09-26 12:19:40 +02:00
Dylan Smith
f61d417a34 richedit: Return number of chars inserted for EM_STREAMIN with SF_RTF. 2011-09-26 12:16:59 +02:00
Dylan Smith
e060272de7 richedit: Return number of bytes read for EM_STREAMIN with SF_TEXT. 2011-09-26 12:16:56 +02:00
Francois Gouget
c992ca277d Assorted spelling fixes. 2011-08-24 19:07:46 +02:00
Thomas Faber
73876d6ccd riched20: Fix uninitialized variable usage. 2011-08-22 17:15:02 +02:00
Frédéric Delanoy
7e309601f3 dlls: Assorted spelling fixes. 2011-08-03 14:15:50 +02:00
Dan Kegel
28b2d03a8c riched20/tests: Fix test_EM_FINDWORDBREAK comments. 2011-08-01 18:26:25 +02:00
Andrew Talbot
faa05713ad riched20: Declare some variables unsigned. 2011-08-01 11:16:56 +02:00
Dan Kegel
dafd6fecd1 riched20/tests: Add test for WB_ISDELIMITER. 2011-07-20 19:23:05 +02:00
Frédéric Delanoy
7ed4f20305 riched20: Remove dead assignment (Clang). 2011-07-06 11:29:18 +02:00
Dylan Smith
82da77c0a6 richedit: Fix incorrect GUID values for ITextHost and ITextHost2. 2011-07-05 14:44:43 +02:00
Dylan Smith
819e1a899a riched20/tests: Test the text services IIDs. 2011-07-05 14:44:33 +02:00
Marcus Meissner
598a7f6edf riched20: Mark internal symbols with hidden visibility. 2011-05-24 11:55:55 +02:00
Michael Stefaniuc
3f2f2eb678 riched20: Finish the COM cleanup in richole.c. 2011-05-19 10:09:30 +02:00
Michael Stefaniuc
b1ae962997 riched20: COM cleanup for the IOleClientSite iface. 2011-05-19 10:09:22 +02:00
Michael Stefaniuc
a12ed578c5 riched20: COM cleanup for the ITextSelection iface. 2011-05-17 13:45:02 +02:00
Marcus Meissner
2b53df89cb riched20: Fixed some lParams with keycodes (Coverity). 2011-05-06 14:23:46 +02:00
Marcus Meissner
0cd53a589d riched20: Use correct flag name (Coverity). 2011-05-06 14:23:46 +02:00
Marcus Meissner
2ae0d40c8f riched20: Adjusted shift by 8 bits to 16 bits (Coverity). 2011-05-06 14:23:45 +02:00
Michael Stefaniuc
c52c15ef99 riched20: COM cleanup for the ITextServices iface. 2011-04-11 12:10:30 +02:00
Michael Stefaniuc
e18ae2139b riched20: COM cleanup for the ITextHost iface. 2011-04-11 12:10:20 +02:00
Francois Gouget
cc2cd5a525 riched20/tests: Add a '\n' to an ok() call. 2011-03-07 11:09:27 +01:00
Austin English
c17df92e5d riched20/tests: Remove win9x hacks. 2011-02-28 13:13:33 +01:00
Amine Khaldi
4b7795a943 riched20: Add a missing break. 2011-02-23 19:23:38 +01:00
Amine Khaldi
f8da57ca89 riched20: Fix a c89 conformance issue in ITextImpl->editor->rcFormat initialization. 2011-02-16 14:02:59 +01:00
Maarten Lankhorst
1e758c5e8c riched20: Do not call callback when no data needs to be flushed. 2011-02-09 13:49:03 -06:00
Austin English
75e4e607c6 riched20/tests: Make sure return value is used (LLVM/Clang). 2011-02-09 09:25:58 -06:00
Greg Geldorp
997a681300 riched20/tests: Fix editor tests. 2011-01-24 14:43:27 +01:00
Greg Geldorp
bee48efdce riched20/tests: Skip some tests on non-English platforms. 2011-01-19 16:54:02 +01:00
Dylan Smith
d43cddcc83 richedit: Clear non-default style when changing to plain text mode.
Although the text must be empty for the mode to change to plain text
mode, there still may be a non-default style for the temporary insert
style and style for the end of text run.
2011-01-12 11:32:19 +01:00
André Hentschel
cea221caa0 riched20/tests: Don't test function directly when reporting GetLastError(). 2010-12-30 15:00:58 +01:00
Michael Stefaniuc
9a6f5ad239 riched20: Standardize the COM usage in clipboard.c. 2010-12-09 12:28:52 +01:00
Michael Stefaniuc
0acf4a297b riched20/tests: Use an iface instead of a vtbl pointer in ITextHostTestImpl. 2010-12-09 12:28:41 +01:00
Alexandre Julliard
954558806e riched20: Use the correct resource id for the reverse arrow cursor. 2010-10-18 19:08:37 +02:00
Austin Lund
b20e75f5e9 riched20/tests: Cleaned up ITextServices::TxGetNaturalSize test and fixed test failures. 2010-10-13 17:45:23 +02:00
Austin Lund
d08fc66732 riched20/tests: Plug a few memory leaks and make failure messages more meaningful. 2010-10-06 20:46:49 +02:00
Alexandre Julliard
95c1bd4da9 riched20/tests: Make some variables static. 2010-10-01 13:40:29 +02:00
Alexandre Julliard
81b8ee863e makefiles: Add a standard header for all makefiles to replace the common variable initializations. 2010-09-19 12:36:48 +02:00
Dylan Smith
c0ee555e8f richedit: Avoid redundant calls to ME_CalcRunExtent.
ME_SplitRun is only called by wrapping code. In all but one call the
returned second half of the split run will be returned, get passed back
to ME_WrapHandleRun, then ME_CalcRunExtent will be called at the start of
ME_WrapHandleRun through ME_WrapSizeRun.
2010-07-30 11:36:02 +02:00
Dylan Smith
8b8e4f89b2 richedit: Use ME_Cursor as parameter to ME_SplitRunSimple.
The paragraph needed to be included in the parameters to avoid needing
traverse the linked list of display items to find the paragraph.
2010-07-30 11:36:02 +02:00
Dylan Smith
68b44f740c richedit: Remove checks for converting internal CHARFORMAT structs.
Prevents extra copying from having to be done for converting between
unicode/ascii or between the normal or extended version of the structure.
2010-07-30 11:36:02 +02:00
Dylan Smith
ad056fe7d7 richedit: Check for bits instead of equality in EM_SETCHARFORMAT.
There are unsupported flags documented on MSDN which would cause problems
for the equality checks used in EM_SETCHARFORMAT.  Also, to handle a
combined set of flags they must be checked for in the right order.
2010-07-30 11:36:01 +02:00
Dylan Smith
16d7890426 richedit: Don't change text mode with undo or redo stack. 2010-07-30 11:36:01 +02:00
Dylan Smith
75eef41881 richedit: Return correct values when EM_SETTEXTMODE fails.
The checks for the text length and invalid parameters needed to be swapped,
and the code could be easily simplified.
2010-07-30 11:36:01 +02:00
Dylan Smith
4c174fc845 richedit: Removed unused run flags values.
The only place MERF_SKIPPED was in debug code, and MERF_CALCBYWRAP was only
used to clear this unused flag value, so I got rid of both of them.
2010-07-29 10:28:29 +02:00
Dylan Smith
15251ad84b richedit: Removed redundant variable ptLastSplittableRun. 2010-07-29 10:28:06 +02:00
Dylan Smith
dfa80b35b0 richedit: Invalidate without calling UpdateWindow in many cases. 2010-07-29 10:28:00 +02:00
Dylan Smith
1964e603fd richedit: Remove redundant commit and repaint in ME_StreamInText.
ME_StreamInText is only used in one function, ME_StreamIn, which always
calls ME_CommitUndo and ME_UpdateRepaint after calling this function.
2010-07-29 10:27:38 +02:00
Dylan Smith
328a3f1d8c richedit: EN_UPDATE notification is sent on WM_PAINT. 2010-07-29 10:27:30 +02:00
Alexandre Julliard
b86d515ed6 dlls: Remove explicit imports of kernel32 and ntdll. 2010-07-21 17:38:36 +02:00
Dylan Smith
be3073fce1 richedit: Fix streaming rtf with table at the start of the text.
The first paragraph was being handled just by ME_StreamOutParaProps,
but subsequent paragraphs would check if the paragraph was starting or
ending a table. So I moved the code to check for tables into
ME_StreamOutParaProps.
2010-07-19 14:38:16 +02:00
Dylan Smith
e2f6b1d83d richedit: Don't break when streaming out a table, just continue.
This is a regression caused by commit
54b53b6018 which change the code to use
if statements instead of a switch, so the break statement should have
been changed to a continue statement.
2010-07-19 14:38:16 +02:00
Austin Lund
61e5fec020 riched20: Process messages which arrive before WM_NCCREATE. 2010-07-08 17:33:25 +02:00
Dylan Smith
6072a69d38 richedit: Keep default char format on WM_SETFONT in plain text mode. 2010-06-07 15:27:52 +02:00
Dylan Smith
b88b007d95 richedit: Fix assignment to wrong variable (LLVM/Clang). 2010-05-25 12:02:28 +02:00
Dylan Smith
3f1d3e0ea1 richedit: Simplify redundant code in WM_IME_COMPOSITION. 2010-05-24 11:30:23 +02:00
Dylan Smith
e809bc887d richedit: Commit undo items after modifications in WM_IME_COMPOSITION.
ME_InsertTextFromCursor could previously follow the ME_CommitUndo call
leaving uncommitted changes which would cause improper grouping of commits,
or an assertion failure.
2010-05-24 11:30:12 +02:00
Dylan Smith
fb7d6b783e richedit: Missing HeapFree in WM_IME_COMPOSITION. (Smatch).
ME_InsertTextFromCursor copies the string passed into it rather than making
taking ownership of it.
2010-05-24 11:30:06 +02:00
Dylan Smith
dcbc22b985 richedit: Send EN_SELCHANGE after wrapping but before EN_CHANGE.
The call to ME_SendSelChange cannot be done in ME_CommitUndo like it was
before, because it must be done after wrapping.  Native richedit controls
send EN_CHANGE first, which is sent in ME_UpdateRepaint, so
ME_SendSelChange must be before this notification in ME_UpdateRepaint.
2010-05-19 11:17:55 +02:00
Dylan Smith
d312d4e33c richedit: Revert commit that caused a regression. (Bug 22758).
Revert commit 049cf5aca0
richedit: Avoid notifying parent window in improper state.

The commit was meant to fix a problem caused by ME_SendSelChange being
called in ME_SendSelChange, but moving the calls to ME_CommitUndo caused
a regression. So this patch reverts the previous commit, and my
following patch will instead fix the bug by moving the call to
ME_SendSelChange out of ME_CommitUndo.
2010-05-19 11:17:55 +02:00
Michael Stefaniuc
cf13e8a390 riched20: Avoid using long. 2010-05-17 12:42:33 +02:00
Gerald Pfeifer
f772c799ae riched20: Remove variables yprev and ys which are not really used from ME_ArrowPageUp. 2010-05-17 12:42:31 +02:00
Dylan Smith
049cf5aca0 richedit: Avoid notifying parent window in improper state.
ME_CommitUndo and ME_CommitCoalescingUndo call ME_SendSelChange, which
may notify the parent window that the selection has changed, therefore
should generally be called after wrapping the text. Otherwise, the parent
window may send a message to the editor and cause an assertion failure.
2010-05-17 12:42:31 +02:00
Gerald Pfeifer
6dd4b071cc riched20: Remove variable pCell which is not really used from ME_StreamIn. 2010-05-10 10:11:34 +02:00
Gerald Pfeifer
2d462ad088 riched20: Remove variable ys which is not really used from ME_ArrowPageDown. 2010-05-10 10:11:29 +02:00
Gerald Pfeifer
f29514fbec riched20: Remove variable di which is not really used from ME_InsertEndRowFromCursor. 2010-05-03 15:42:18 +02:00
Gerald Pfeifer
14ef0fed9c riched20: Remove variable changed which is not really used from ME_PrepareParagraphForWrapping. 2010-05-03 15:40:04 +02:00
Gerald Pfeifer
01777ac5ce riched20: Remove variable yprev which is not really used from ME_ArrowPageDown. 2010-05-03 15:37:31 +02:00
Alexandre Julliard
bef5645eb1 makefiles: Remove the no longer needed explicit separators for dependencies. 2010-03-16 13:28:19 +01:00
David Hedberg
534398a57e richedit: GTL_PRECISE to GETTEXTLENGTHEX implies GTL_NUMBYTES.
If GTL_PRECISE is passed without specifying either GTL_NUMCHARS or
GTL_NUMBYTES, behave as if GTL_NUMBYTES was passed.
2010-03-01 11:33:01 +01:00
Dylan Smith
7ed13120ab richedit: Make zooming affect all pictures. 2010-03-01 11:32:33 +01:00
Dylan Smith
1f2575ba7c richedit: Documented paragraph border widths are in points not pixels.
The border widths documented by msdn are in points which are 72 dpi, which
is not equivalent to pixels (normally 96 dpi). I pre-converted all the
border widths to 96 dpi resolution since this avoids needed to store
fractions, and often avoids the need for convertion to the displays
resolution.
2010-03-01 11:32:18 +01:00
Dylan Smith
fe9933ae4d richedit: Added some extra tests for EM_FORMATRANGE.
The existing tests were not properly testing the return value for the case
where all the text fits in the page rect, so this patch adds a couple of
simple tests for this case.
2010-02-22 12:03:09 +01:00
Alexandre Julliard
6164ce2d82 makefiles: Use the standard C_SRCS variable as the list of test files.
This enables it to be auto-updated by make_makefiles.
2010-02-22 10:47:11 +01:00
Dylan Smith
9106860c85 richedit: Prevent crash on word selection at end of paragraph. 2010-02-18 12:18:17 +01:00
Dylan Smith
535afbd3aa richedit: Move function ME_GetParaLineSpace to make it static. 2010-02-10 11:32:31 +01:00
Dylan Smith
e9693d6272 richedit: Removed unused local variable yStart. 2010-02-05 10:06:30 +01:00
Michael Stefaniuc
fc3e2ba954 riched20: Don't print the function name twice in ERR/WARN.
The ERR/WARN macros already print the function name.
2010-02-04 13:39:28 +01:00
Dylan Smith
0539d5e497 richedit: Initialize fields for windowless richedit controls.
Caught by valgrind.
2010-01-25 13:01:17 +01:00
Dylan Smith
530a6c4598 richedit: Prevent uninitialized value from being used.
NULL may be returned by ITextHost::TxGetDC. Caught by valgrind.
2010-01-25 13:01:05 +01:00
Michael Stefaniuc
d3bc43b5ed Grammar fixes "is doesn't" => "doesn't". 2010-01-11 11:33:59 -06:00
Michael Stefaniuc
3b45ababfb riched20: Remove some explicit LPARAM/WPARAM casts. 2009-12-28 12:27:13 +01:00
Huw Davies
8808fccd57 riched20: Initialise window size.
Found by Valgrind.
2009-12-16 12:42:40 +01:00
Huw Davies
d4383b4498 riched20: Initialise the style flags.
Found by Valgrind.
2009-12-15 16:09:12 +01:00
Huw Davies
d88c47fccb riched20: Fix a memory leak.
Found by Valgrind.
2009-12-14 12:04:05 +01:00
Marcus Meissner
c848e4ee86 riched20: Check for NULL in rtf reader (Coverity). 2009-12-03 10:21:44 +01:00
Nikolay Sivov
c6ff530ad6 riched20/tests: Don't leak string in test. 2009-11-30 12:56:58 +01:00
Eric Pouech
38df8cfb04 richedit: When inserting an OLE object from an RTF stream, don't force update as the stream is not fully read. 2009-11-09 20:02:03 +01:00
Eric Pouech
ab9c51dd6a richedit: Only increment objects' reference by one when inserting an OLE object. 2009-11-09 20:01:56 +01:00
Sergey Khodych
12a417de8a riched20: Implement handling of WM_KEYDOWN VK_TAB in the dialog mode. 2009-10-13 12:38:58 +02:00
Sergey Khodych
a50ca4ace0 riched20: Implement handling of WM_KEYDOWN VK_ESCAPE in the dialog mode. 2009-10-13 12:38:54 +02:00
Sergey Khodych
8fb119ba8b riched20: Implement handling of WM_KEYDOWN VK_RETURN in the dialog mode. 2009-10-13 12:38:49 +02:00
Sergey Khodych
851c33ddd9 riched20: Enable the dialog mode after receiving WM_GETDLGCODE message. 2009-10-13 12:38:44 +02:00
Sergey Khodych
205df00c64 riched20: Cache ES_WANTRETURN style. 2009-10-13 12:38:40 +02:00
Dylan Smith
3fe20bdc7e richedit: Handle to parent window is cached.
The parent window for the richedit control on creation is the one that
receives notify messages, even after the parent has been changed using
SetParent.
2009-09-30 17:41:06 +02:00
Dylan Smith
992381b36e richedit: Added test to show that handle to parent is cached. 2009-09-30 17:40:59 +02:00
Dylan Smith
0342ab0df1 richedit: Use ITextHost interface in ME_LinkNotify.
Using the ITextHost interface allows this notification to be received
for windowless richedit controls.  Windowed richedit conrols have an
ITextHost implementation that will fill in hwndFrom and idFrom, but
these should probably be initialized to 0 for windowless richedit
controls.
2009-09-28 12:54:16 +02:00
Dylan Smith
99b37b2376 richedit: Silence fixme for WM_STYLECHANGING & WM_STYLECHANGED. 2009-09-24 15:15:09 +02:00
Dmitry Timoshkov
8d524700d3 riched20: Make vtables const. 2009-09-08 13:06:49 +02:00
Alexandre Julliard
c1a1f0cfb4 riched20: Make sure we have a valid ITextHost vtable for all platforms. 2009-08-26 21:23:52 +02:00
Francois Gouget
6e80d875d4 riched20: Make ME_SetCursorToEnd() static. 2009-08-26 13:09:27 +02:00
Dylan Smith
a8e58307f9 richedit: Fixed check for nOffset at the end of the cursor's run.
For some reason the code previously mixed up a selection cursor with the
result cursor.  The problem seemed to have corrected itself before as a
result of conversion between offsets and cursors, but my recent changes
made this bug more severe.
2009-08-17 13:57:50 +02:00
Dylan Smith
989bdd1579 richedit: Use ME_MoveCursorChars in ME_FindText to find relative offset.
When a previous character needed to be found, it is simpler to move
existing cursor rather than retravese the linked list to find the offset
again.
2009-08-13 15:35:37 +02:00
Dylan Smith
54b53b6018 richedit: Use ME_Cursor instead of offsets for stream out functions. 2009-08-13 15:35:28 +02:00
Dylan Smith
bd4704280d richedit: Replace offsets arg with ME_Cursor for ME_InternalDeleteText.
Offsets are still used within the function, but this patch reduces the
use of it at the entry to the function.
2009-08-13 15:35:17 +02:00
Dylan Smith
8f0dfaba30 richedit: Removed ME_InsertRun since it uses character offsets.
The function was used in one place, and was simply a wrapper around a
call to ME_InsertRunAtCursor, so I removed it to avoids it use in other
parts of the code.
2009-08-13 15:35:07 +02:00
Dylan Smith
02228ee176 richedit: Use ME_Cursor instead of offsets for ME_CharFromPos. 2009-08-13 15:35:01 +02:00
Dylan Smith
a69ef26599 richedit: Use ME_Cursor instead of offsets for copying text. 2009-08-13 15:34:54 +02:00
Dylan Smith
60a72583f4 richedit: Use ME_Cursor instead of offsets for ME_UpdateLinkAttribute. 2009-08-13 15:34:47 +02:00
Dylan Smith
27c28ab292 richedit: Modified ME_MoveCursorsChars to move multiple chars.
Previously the function was only used to move a single character in
either direction, so I made the function more general so that it could
be used in more places.
2009-08-13 15:34:39 +02:00
Dylan Smith
326f9b3f3f richedit: Fixed regression in ME_SetCharFormat.
Missed an assignment for end_run when the end cursor is provided and the
end position doesn't cause a split.
2009-08-13 11:45:13 +02:00
Dylan Smith
c92bb271b7 richedit: Use ME_Cursor instead of offsets for ME_GetTextRange. 2009-08-12 17:35:55 +02:00
Dylan Smith
2da0d8e933 richedit: Use ME_Cursor instead of offsets for ME_SetCharFormat.
The test that succeeded from this change was as a result of allowing the
end of the character format change be specified using NULL as the rest
of the text.  Before, the end paragraph run at the end of the text was
not being set for this case, when all the text was supposed to have its
character format changed.
2009-08-12 17:35:50 +02:00
Dylan Smith
ade37203a5 richedit: Use ME_Cursor instead of offsets for ME_GetCharFormat.
Prevent extra conversions from character offset to ME_Cursor.
2009-08-12 17:35:42 +02:00
Dylan Smith
2bc726930f richedit: Add helpers for setting cursor to start/end of text. 2009-08-12 17:35:30 +02:00
Dylan Smith
32dcd3bbe1 richedit: Created functions to move between runs and track paragraphs.
Plenty of places in the code find following or preceding runs, then
afterwards find the paragraph from the run.  This is inefficient because
the same linked list is used for both runs and paragraphs, so changes in
paragraphs can be detected while returning the next or previous run.
2009-08-12 17:35:24 +02:00
Dylan Smith
0362b1b087 richedit: Improve efficiency of ME_IsCandidateAnURL.
The code was previously getting the same text in the loop from the
editor, and it was converting each of the prefixes to compare against
for each URL candidate.
2009-08-12 17:34:44 +02:00
Dylan Smith
82e102107c richedit: ME_GetTextW must use source and destination lengths.
Before a single length was used for the number of characters to retrieve
from the text, and to keep track of the size of the buffer.  These are
not equivalent, since there is a possible end of line conversion.
2009-08-12 17:32:16 +02:00
Dylan Smith
46b84aed4a richedit: Added function to get selection cursors in order.
Previously the only convenient way to get the start and end of the
selection was through offsets, which eventually need to get converted
back into items in the linked list storing the text.  The new function
will help with eliminating these inefficiencies.
2009-08-12 17:29:30 +02:00
Dylan Smith
be0fb1ef5d richedit: Make the ME_GetCursorOfs function more flexible.
This function will make it easier to work with ME_Cursor objects, which
should be used in a lot of places instead of character offsets (which
often require seeking through the linked lists to perform operations
with).
2009-08-12 17:29:20 +02:00
Dylan Smith
314bd5ca85 richedit: Update paragraph on saved cursor when inserting table start.
Since the table row start is inserted after the rest of the table is
inserted, the cursor is saved, and temporarily moved to the start of the
row to insert the table row start paragraph.  Unfortunately the
paragraph in saved cursor becomes invalid during this insertion and
needs to be updated, so this code introduced a regression once
paragraphs started to be stored in cursors.
2009-08-11 12:31:18 +02:00
Dylan Smith
114a64ce5d richedit: Added missing style releases.
Style objects are referenced counted in richedit controls, so I tried to
make sure styles were released properly.  This can be checked using with
the all_refs global reference count to see if everything is cleaned up.
2009-08-10 17:10:34 +02:00
Dylan Smith
fc618ab041 richedit: Add closing actions for IRichEditOle_fnInsertObject.
Previously inserting the object didn't result in the text being wrapped,
which would cause an assertion error when this is checked for during
repainting the text.  It is also important to invalidate the affected
areas of text, update the scrollbar, and end the creation of undo
transactions for this insertion.
2009-08-10 17:10:24 +02:00
Dylan Smith
71cb069246 richedit: Use richedit class string macros from public headers. 2009-08-10 17:10:14 +02:00
Dylan Smith
832ffe108c richedit: Remove header function declarations with no definition. 2009-08-10 17:09:53 +02:00
Dylan Smith
6782627624 richedit: Implement ME_DITypesEqual using a switch statment. 2009-08-10 17:09:46 +02:00
Dylan Smith
e306b91392 richedit: Avoid comparing padding in cursor structures on memcmp. 2009-08-07 14:57:24 +02:00
Dylan Smith
05c730fd4c richedit: Prevent using uninitialized nAvailWidth in initialization. 2009-08-03 16:00:34 +02:00
Dylan Smith
c4b023b1b6 richedit: Prevent buffer overflows in WM_GETTEXT.
The application AutoGK was getting the length of the text with
WM_GETTEXTLENGTH to allocate an appropriate buffer size, but then
claimed the buffer was twice the size when sending WM_GETTEXTEX.  This
caused the memcpy call to overflow the actual buffer since the count
is based on the size of the buffer alone, regardless of the amount of
text retrieved.
2009-08-03 16:00:16 +02:00
Dylan Smith
3d89e29155 richedit: Handle NULL buffer or 0 buffer length in ME_GetTextEx.
ME_GetTextEx directly handles EM_GETTEXTEX, and previously a NULL buffer
would be dereferenced, and a 0 buffer length would cause nCount an
underflow in the nCount value which would allow a buffer overflow to
occur.
2009-08-03 15:59:57 +02:00
Dylan Smith
0deb3d04ed richedit: Scrollinfo stored as 16-bit values externally.
The application Blitzin2 was sending WM_VSCROLL messages to the
richedit control directly, when normally this message is supposed to
be a notification sent after the scrollinfo is set.  Native richedit
controls always use the 16-bit value passed to this message to set the
scroll position for SB_THUMBPOSITION, rather than trying to find a
32-bit value through GetScrollInfo like I had previously done.
2009-07-22 11:08:33 +02:00
Dylan Smith
e364a4406a richedit: Added missing return to ME_EnsureVisible.
The missing return was to prevent automatic vertically scrolling when
style for it is not set, but is set for the horizontal scrollbar. I
initially missed this by testing with no autoscrolling on either
scrollbar.
2009-07-21 10:47:13 +02:00
Dylan Smith
c6cf567706 richedit: Properly restore style after end of rtf group.
Rich text files have groupings of text, where styles are pushed onto
the stack when encountering a start of the group, then popped at the
end of the group.  This was being handled improperly before, because a
single styleChanged flag was being stored to keep track of whether the
style needed to be restored at the end of a group. This fails to work
properly since the single flag isn't keeping track of all the levels
of the stack, so some styles are not restored properly.
2009-07-20 12:18:43 +02:00
Dylan Smith
dde41d5c13 richedit: Handle missing colours in rtf colour table.
When a colour table entry is empty, then the default colour is used.
For an incomplete colour table entry 0 is used for the missing colours.

Previously the -1 value used internally for missing colours was being
converted into white, where it should be using the default colour that
is normally black.

This bug could be seen by loading the following rich text into wordpad:
{\rtf{\colortbl;;}\cf1 text}
2009-07-17 15:40:35 +02:00
Dylan Smith
f59e41e8d5 richedit: Keep scrollbars hidden without WS_HSCROLL & WS_VSCROLL. 2009-07-17 12:37:17 +02:00
Dylan Smith
eddccdd1f2 richedit: Initially disable scrollbars for ES_DISABLENOSCROLL.
Previously after initial window creation of a richedit control with the
ES_DISABLENOSCROLL window style flag the scrollbar would be shown but
not disabled.  This patch fixes this issue by explicitly disabling and
showing the scrollbar.
2009-07-17 12:37:03 +02:00
Dylan Smith
140fee1790 richedit: Prevent autoscrolling without ES_AUTO[VH]SCROLL style.
When the richedit control is created without the ES_AUTOHSCROLL or the
ES_AUTOVSCROLL, then scrolling isn't done automatically when moving the
cursor with the arrow keys, drag selecting with the mouse, or even from
using the EM_SCROLLCARET (based on testing using a modified version of
wordpad).
2009-07-17 11:22:07 +02:00
Dylan Smith
e7fd0b46b0 richedit: Add more tests for WM_SETTEXT RTF support. 2009-07-13 10:48:05 +02:00
Dylan Smith
88c2b90aa6 richedit: Support ascii RTF in WM_SETTEXT even for unicode messages.
WM_SETTEXT seems to check for {\rtf or {\urtf to determine if it is an
ascii RTF string, even if it is a unicode message.  So I removed the
check to see if it is a unicode message, and added a check for {\urtf.
2009-07-13 10:48:01 +02:00
Alexandre Julliard
eb08df3a90 riched20: Add appropriate stdcall decorations to assembly functions. 2009-06-15 13:42:26 +02:00
Alexandre Julliard
3fe51326cd riched20: Move the textHostVtbl definition to work around Mac OS X breakage with __ASM_GLOBAL_FUNC. 2009-06-13 12:20:10 +02:00
Austin Lund
1643679476 riched20/test: Added a test for TxDraw. 2009-06-03 16:04:49 +02:00
Austin Lund
33534916a3 riched20: If DataObjectImpl_EnumFormatEtc returns E_NOTIMPL then ensure that returned pointers are nulled. 2009-06-02 12:09:12 +02:00
Francois Gouget
19020b9ef5 riched20: Make some functions static. 2009-05-26 14:25:12 +02:00
Francois Gouget
e5f5bd1153 riched20: RTFPeekToken(), RTFExpandStyle() and RTFHexToChar() are unused so remove them. 2009-05-26 14:25:06 +02:00
Francois Gouget
1914d256a6 riched20: RTF{G,S}et{In,Out}putName() are unused so remove them as well as the corresponding _RTF_Info fields. 2009-05-26 14:10:46 +02:00
Francois Gouget
3d6c53b972 riched20: Make ME_GetCursorCoordinates() static and remove ME_MustBeWrapped() as it is unused. 2009-05-26 14:10:32 +02:00
Francois Gouget
61a8b94634 riched20: ME_MakeString() is unused so remove it. 2009-05-15 10:28:20 +02:00
Francois Gouget
8a46d0eaf5 Assorted spelling fixes. 2009-05-04 12:53:29 +02:00