Module: wine
Branch: master
Commit: 0d1eea691cd4e39a61fa5be5b5c5592ea7c0aa76
URL: http://source.winehq.org/git/wine.git/?a=commit;h=0d1eea691cd4e39a61fa5be5b…
Author: Maarten Lankhorst <m.b.lankhorst(a)gmail.com>
Date: Thu Jun 26 11:13:53 2008 -0700
quartz: Make FilterGraph_Connect and ConnectDirect behave better.
Does some security checks that it won't connect a filter to itself,
and also cleans up after a failed connection attempt.
---
dlls/quartz/filtergraph.c | 183 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 156 insertions(+), 27 deletions(-)
Diff: http://source.winehq.org/git/wine.git/?a=commitdiff;h=0d1eea691cd4e39a61fa5…
Module: wine
Branch: master
Commit: ad59eaf99844849dac16d79b130631805920db1b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ad59eaf99844849dac16d79b1…
Author: H. Verbeet <hverbeet(a)gmail.com>
Date: Fri Jun 27 00:52:07 2008 +0200
wined3d: Report WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING.
As far as I can tell we support post ps blending in combination with
MRTs fine. Tabula Rasa needs this cap in order to enable some of the
higher graphics settings.
---
dlls/wined3d/directx.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/directx.c b/dlls/wined3d/directx.c
index e293d7d..acb147e 100644
--- a/dlls/wined3d/directx.c
+++ b/dlls/wined3d/directx.c
@@ -2952,13 +2952,13 @@ static HRESULT WINAPI IWineD3DImpl_GetDeviceCaps(IWineD3D *iface, UINT Adapter,
WINED3DPMISCCAPS_CLIPTLVERTS |
WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS |
WINED3DPMISCCAPS_MASKZ |
- WINED3DPMISCCAPS_BLENDOP;
+ WINED3DPMISCCAPS_BLENDOP |
+ WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING;
/* TODO:
WINED3DPMISCCAPS_NULLREFERENCE
WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS
WINED3DPMISCCAPS_FOGANDSPECULARALPHA
WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS
- WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING
WINED3DPMISCCAPS_FOGVERTEXCLAMPED */
if(GL_SUPPORT(EXT_BLEND_EQUATION_SEPARATE) && GL_SUPPORT(EXT_BLEND_FUNC_SEPARATE))
Module: wine
Branch: master
Commit: 438d8e1c58d03ee0e3804b3f6cc427ac2a2e3baf
URL: http://source.winehq.org/git/wine.git/?a=commit;h=438d8e1c58d03ee0e3804b3f6…
Author: Dylan Smith <dylan.ah.smith(a)gmail.com>
Date: Thu Jun 26 16:17:32 2008 -0400
richedit: Caret size must match font size characters to be inserted.
When the caret is at the start of a run, it uses the font of the
previous run for inserting characters. The caret size previously was
the wrong height for the characters being inserted when the caret was at
the start of a line, but not the start of a paragraph so this patch
fixes this bug.
---
dlls/riched20/caret.c | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/dlls/riched20/caret.c b/dlls/riched20/caret.c
index 9f012be..a3a3d61 100644
--- a/dlls/riched20/caret.c
+++ b/dlls/riched20/caret.c
@@ -181,9 +181,9 @@ ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor,
ME_InitContext(&c, editor, hDC);
- if (!pCursor->nOffset && !editor->bCaretAtEnd)
+ if (!pCursor->nOffset)
{
- ME_DisplayItem *prev = ME_FindItemBack(pCursorRun, diRunOrStartRow);
+ ME_DisplayItem *prev = ME_FindItemBack(pCursorRun, diRunOrParagraph);
assert(prev);
if (prev->type == diRun)
pSizeRun = prev;
@@ -215,8 +215,7 @@ ME_GetCursorCoordinates(ME_TextEditor *editor, ME_Cursor *pCursor,
*height = pSizeRun->member.run.nAscent + pSizeRun->member.run.nDescent;
*x = run->member.run.pt.x + sz.cx;
- *y = para->member.para.nYPos + row->member.row.nBaseline + pSizeRun->member.run.pt.y - pSizeRun->member.run.nAscent - ME_GetYScrollPos(editor);
-
+ *y = para->member.para.nYPos + row->member.row.nBaseline + run->member.run.pt.y - pSizeRun->member.run.nAscent - ME_GetYScrollPos(editor);
ME_DestroyContext(&c, editor->hWnd);
return;
}
Module: wine
Branch: master
Commit: ee6b6f338e57ad3c361a18b03ee1068e1521d1b0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ee6b6f338e57ad3c361a18b03…
Author: Dylan Smith <dylan.ah.smith(a)gmail.com>
Date: Thu Jun 26 16:17:22 2008 -0400
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.
---
dlls/riched20/reader.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/dlls/riched20/reader.c b/dlls/riched20/reader.c
index 760adec..f456a09 100644
--- a/dlls/riched20/reader.c
+++ b/dlls/riched20/reader.c
@@ -2667,10 +2667,10 @@ RTFPutUnicodeString(RTF_Info *info, const WCHAR *string, int length)
memmove(info->OutputBuffer + info->dwOutputCount, string, fit * sizeof(WCHAR));
info->dwOutputCount += fit;
- if (fit == sizeof(info->OutputBuffer) / sizeof(WCHAR) - info->dwOutputCount)
- RTFFlushUnicodeOutputBuffer(info);
length -= fit;
string += fit;
+ if (sizeof(info->OutputBuffer) / sizeof(WCHAR) == info->dwOutputCount)
+ RTFFlushUnicodeOutputBuffer(info);
}
}
Module: wine
Branch: master
Commit: 632015dc626f85a61165eab89c976c0fef730a9c
URL: http://source.winehq.org/git/wine.git/?a=commit;h=632015dc626f85a61165eab89…
Author: Dylan Smith <dylan.ah.smith(a)gmail.com>
Date: Thu Jun 26 16:17:25 2008 -0400
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.
---
dlls/riched20/editor.c | 7 +++++--
dlls/riched20/reader.c | 8 +++++---
2 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index f7e20e0..28850f9 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -969,11 +969,11 @@ static void ME_RTFReadHook(RTF_Info *info) {
{
ME_Style *s;
RTFFlushOutputBuffer(info);
- if (info->stackTop<=1) {
+ info->stackTop--;
+ if (info->stackTop<=0) {
info->rtfClass = rtfEOF;
return;
}
- info->stackTop--;
assert(info->stackTop >= 0);
if (info->styleChanged)
{
@@ -1101,6 +1101,9 @@ static LRESULT ME_StreamIn(ME_TextEditor *editor, DWORD format, EDITSTREAM *stre
if (parser.lpRichEditOle)
IRichEditOle_Release(parser.lpRichEditOle);
+ if (!inStream.editstream->dwError && parser.stackTop > 0)
+ inStream.editstream->dwError = HRESULT_FROM_WIN32(ERROR_HANDLE_EOF);
+
/* Remove last line break, as mandated by tests. This is not affected by
CR/LF counters, since RTF streaming presents only \para tokens, which
are converted according to the standard rules: \r for 2.0, \r\n for 1.0
diff --git a/dlls/riched20/reader.c b/dlls/riched20/reader.c
index 5ee9fa2..760adec 100644
--- a/dlls/riched20/reader.c
+++ b/dlls/riched20/reader.c
@@ -638,14 +638,16 @@ static void _RTFGetToken2(RTF_Info *info)
{
int c2;
- if ((c = GetChar (info)) != EOF && (c2 = GetChar (info)) != EOF)
+ if ((c = GetChar (info)) != EOF && (c2 = GetChar (info)) != EOF
+ && isxdigit(c) && isxdigit(c2))
{
- /* should do isxdigit check! */
info->rtfClass = rtfText;
info->rtfMajor = RTFCharToHex (c) * 16 + RTFCharToHex (c2);
return;
}
- /* early eof, whoops (class is rtfUnknown) */
+ /* early eof, whoops */
+ info->rtfClass = rtfEOF;
+ info->stream->editstream->dwError = -14;
return;
}