Commit Graph

63 Commits

Author SHA1 Message Date
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
Marcus Meissner
c848e4ee86 riched20: Check for NULL in rtf reader (Coverity). 2009-12-03 10:21:44 +01: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
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
Dylan Smith
78a7ea5a39 richedit: Properly handle lack of semicolon after font name in rtf.
This was partially handled by ungetting the end group token (i.e. '}')
so that it was read again at the proper place.  Unfortunately there is a
read hook that maintains a stackTop variable, which is decremented when
receiving this end group token.  Therefore stackTop would get
decremented twice, and the rich text file would end prematurely.

This is fixed by incrementing the stackTop variable to compensate for it
being decremented twice.
2009-03-24 10:27:34 +01:00
Michael Stefaniuc
d1a7e41b71 riched20: Remove superfluous pointer casts. 2009-01-30 11:45:23 +01:00
Marcus Meissner
a09621b00f riched20: Handle more missing allocs gracefully (Coverity). 2009-01-29 12:45:23 +01:00
Marcus Meissner
605a40e477 riched20: Handle NULL fp more gracefully (Coverity). 2009-01-29 12:45:15 +01:00
Marcus Meissner
9eb4c73ae3 riched20: Handle cp NULL more gracefully (Coverity). 2009-01-29 12:45:07 +01:00
Marcus Meissner
3d8fd826e1 riched20: Exit the loop instead of crashing (Coverity). 2009-01-29 12:45:00 +01:00
Andrew Talbot
b53d7d3295 riched20: Declare some functions static. 2009-01-19 13:36:26 +01:00
Andrew Talbot
affc6e029c riched20: Sign-compare warnings fix. 2008-11-06 11:09:41 +01:00
Michael Stefaniuc
9f92f6bc10 riched20: Do not cast NULL. 2008-11-03 13:38:58 +01:00
Dylan Smith
e6c3a2beee richedit: Unsigned cast char to avoid EOF equality. 2008-10-06 13:06:38 +02:00
Dylan Smith
fab258022e richedit: Fixed bugs in handling unterminated nested tables in RTF. 2008-09-12 11:55:43 +02:00
Dylan Smith
0d8e9e622f richedit: Make sure the nested tables' RTF properties are not skipped. 2008-09-12 11:55:30 +02:00
Dylan Smith
9a7d475db8 richedit: Avoid acting on control words in skipped RTF groups.
Previously the control words in skipped groups were being processed by
the read hook on the RTF parser.  By moving this code into the class
callbacks for the parser, the skipped groups actually remain skipped.
2008-09-11 12:38:20 +02:00
Dylan Smith
421c5b0e02 richedit: Borders are now drawn for tables and nested tables. 2008-08-18 17:15:57 +02:00
Dylan Smith
59195ed2ec richedit: Added in support for streaming in and out nested tables. 2008-08-18 14:34:35 +02:00
Dylan Smith
11c8039699 richedit: Use tabstops to store cell positions. 2008-08-05 14:09:37 +02:00
Dylan Smith
ee6b6f338e richedit: Fixed mistake that didn't cause a bug.
The check to see if the dwOutputBuffer is full was performed incorrectly
in RTFPutUnicodeString, however, this mistake was actually harmless
since it would just cause an extra loop that does nothing, then the
check would work properly with the variable fit equal to 0.
2008-06-27 11:09:02 +02:00
Dylan Smith
632015dc62 richedit: Set error codes and stop parsing for some rtf syntax errors.
Checks were added for hexadecimal values that did not have valid
characters, and for EOF received before the final closing brace of the
rich text stream.  The error values were tested on richedit versions 1,
2, 3 & 4.1, and they were all the same for these cases.
2008-06-27 11:08:33 +02:00
Alex Villacís Lasso
4047df0f56 richedit: Flip the big switch and encode actual CR and LF into end-of-paragraph runs.
Document remaining uses of bEmulateVersion10 and other checks for CRLF in editor.c.
Make RTF reader emit a \r or a \r\n according to emulation, not a \n, which breaks streaming tests.
Remove todo_wine from a bunch of riched32 tests that now succeed.
2008-04-29 14:55:15 +02:00
Eric Pouech
4a01ddca25 richedit: Allow reading an enhanced metafile from an RTF stream. 2008-03-17 14:38:57 +01:00
Eric Pouech
0c2c43d39b richedit: Correctly set the pitch and family for a font when reading an RTF stream. 2008-03-17 14:36:30 +01:00
Eric Pouech
a64c22c8b1 richedit: Store shift-enter (keyboard) and \line (rtf) as end of row (and emit \line while saving in RTF). 2008-03-17 14:34:44 +01:00
Dmitry Timoshkov
5a6e0ea46f riched20: Remove a redundant parameter from trace. 2007-12-20 12:17:26 +01:00
Michael Stefaniuc
0a92e10640 riched20: Remove the RTFAlloc() wrapper around heap_alloc(). 2007-12-08 19:55:26 +01:00
Michael Stefaniuc
4210cafc04 riched20: Rename the wrappers around HeapAlloc() &Co to use the new standard naming. 2007-12-08 19:54:58 +01:00
Andrew Talbot
da68f3943f riched20: Constify some variables. 2007-08-15 10:41:21 +02:00
Michael Stefaniuc
0152ec0375 janitorial: Remove superfluous casts of void pointers to other pointer types. 2007-06-27 12:53:50 +02:00
Matt Finnicum
306013d4e5 riched20: Remove excessive traces from reader.c. 2007-01-25 11:06:28 +01:00
Mike McCormack
5b670b68f2 riched20: Simplify an array size calculation. 2006-11-21 12:16:10 +01:00
Mike McCormack
b5c031b160 riched20: Initialize and free the RTF lookup table in DllMain to avoid memory leaks. 2006-11-02 12:24:55 +01:00
Mike McCormack
14ec1d0c4c riched20: Use WARN() not ERR() on unknown tokens. 2006-11-02 12:24:33 +01:00
Mike McCormack
8939587b19 riched20: Create macro functions for allocating and freeing memory. 2006-10-24 11:44:53 +02:00
Andrew Talbot
b038fa18ee riched20: Cast-qual warning fix. 2006-09-26 11:40:06 +02:00
Phil Krylov
d360f1db51 riched20: Accept RTF group tokens inside colortbl destination. 2006-08-11 11:55:48 +02:00
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Phil Krylov
08bf7180f3 riched20: Initial support for simple tables. 2006-02-04 17:01:01 +01:00
Mike McCormack
53858d61d0 riched20: Add newlines to ERR macro output. 2005-12-31 13:14:12 +01:00
Mike McCormack
74fe98a1f8 Convert all RTFPanic and RTFMsg calls to ERR calls. 2005-11-02 10:55:45 +00:00
Krzysztof Foltman
e098edcdcb - Remove another potential sources of infinite loops caused by EOF in
the middle of the font and color tables.
- Closing brace on text level is treated as EOF (effectively
  protecting the control from trash after the end of RTF).
- Removed misleading comment about incomplete buffers (I was
  definitely wrong).
2005-10-03 18:45:39 +00:00
Krzysztof Foltman
4f60ac2ace - Optional destinations in stylesheets are now skipped properly (and
not treated as the "proper" styles as they were before).
- EOF condition in the middle of the stylesheet is no longer putting
  the reader into infinite loop,
- Half-full input buffers don't trigger EOF anymore (although it
  could, in theory, break some apps, I find it unlikely - and the
  change makes Out from Boneville installer display license properly).
2005-09-26 09:53:49 +00:00
Marcus Meissner
bd7ec9aca5 The last argument to MultiByteToWideChar is wide character count and
not the buffer size in bytes. Fixed all places where it was wrong.
2005-09-12 22:07:53 +00:00
Phil Krylov
eee54d95ad Fixed a RichEdit RTF reader bug which resulted in loss of text.
Eliminated unneeded recursion in ME_InsertTextFromCursor().
2005-08-23 18:16:15 +00:00
Phil Krylov
0789483dfc Automatically set default font after parsing a font table in RichEdit
RTF reader.
2005-08-22 14:08:04 +00:00
Phil Krylov
4c9f013f8b Added handling of deff RTF control word. 2005-08-22 10:06:08 +00:00