Sync usp10 with Wine again, fixes the corrupted text display in AbiWord.
authorColin Finck <colin@reactos.org>
Wed, 28 May 2008 21:41:41 +0000 (21:41 +0000)
committerColin Finck <colin@reactos.org>
Wed, 28 May 2008 21:41:41 +0000 (21:41 +0000)
Thanks to CMan for regression-testing!

Also I removed Magnus' change in r33700.
If this is really required, please name the reason and add the change to a usp10_ros.diff file as this is a Wine-synched component. Also don't forget to include a header file for the DbgPrint prototype.

See issue #3280 for more details.

svn path=/trunk/; revision=33749

reactos/dll/win32/usp10/usp10.c
reactos/dll/win32/usp10/usp10.spec

index 8980a82..57e6611 100644 (file)
@@ -1407,27 +1407,22 @@ HRESULT WINAPI ScriptTextOut(const HDC hdc, SCRIPT_CACHE *psc, int x, int y, UIN
                              int iReserved, const WORD *pwGlyphs, int cGlyphs, const int *piAdvance,
                              const int *piJustify, const GOFFSET *pGoffset)
 {
                              int iReserved, const WORD *pwGlyphs, int cGlyphs, const int *piAdvance,
                              const int *piJustify, const GOFFSET *pGoffset)
 {
-    HFONT hfont;
     HRESULT hr = S_OK;
 
     TRACE("(%p, %p, %d, %d, %04x, %p, %p, %p, %d, %p, %d, %p, %p, %p)\n",
          hdc, psc, x, y, fuOptions, lprc, psa, pwcReserved, iReserved, pwGlyphs, cGlyphs,
          piAdvance, piJustify, pGoffset);
 
     HRESULT hr = S_OK;
 
     TRACE("(%p, %p, %d, %d, %04x, %p, %p, %p, %d, %p, %d, %p, %p, %p)\n",
          hdc, psc, x, y, fuOptions, lprc, psa, pwcReserved, iReserved, pwGlyphs, cGlyphs,
          piAdvance, piJustify, pGoffset);
 
-    if (!hdc && psc && !*psc) return E_INVALIDARG;
+    if (!hdc || !psc) return E_INVALIDARG;
     if (!piAdvance || !psa || !pwGlyphs) return E_INVALIDARG;
     if (!piAdvance || !psa || !pwGlyphs) return E_INVALIDARG;
-    if ((hr = get_script_cache(hdc, psc))) return hr;
-
-    hfont = select_cached_font(psc);
 
     fuOptions &= ETO_CLIPPED + ETO_OPAQUE;
     if  (!psa->fNoGlyphIndex)                                     /* Have Glyphs?                      */
         fuOptions |= ETO_GLYPH_INDEX;                             /* Say don't do translation to glyph */
 
 
     fuOptions &= ETO_CLIPPED + ETO_OPAQUE;
     if  (!psa->fNoGlyphIndex)                                     /* Have Glyphs?                      */
         fuOptions |= ETO_GLYPH_INDEX;                             /* Say don't do translation to glyph */
 
-    if (!ExtTextOutW(get_cache_hdc(psc), x, y, fuOptions, lprc, pwGlyphs, cGlyphs, NULL))
+    if (!ExtTextOutW(hdc, x, y, fuOptions, lprc, pwGlyphs, cGlyphs, NULL))
         hr = S_FALSE;
 
         hr = S_FALSE;
 
-    unselect_cached_font(psc, hfont);
     return hr;
 }
 
     return hr;
 }
 
@@ -1731,11 +1726,3 @@ HRESULT WINAPI ScriptGetLogicalWidths(const SCRIPT_ANALYSIS *sa, int nbchars, in
     for (i = 0; i < nbchars; i++) widths[i] = glyph_width[i];
     return S_OK;
 }
     for (i = 0; i < nbchars; i++) widths[i] = glyph_width[i];
     return S_OK;
 }
-
-
-VOID WINAPI LpkPresent()
-{
-    /* FIXME */
-    DbgPrint("LPK: %s is unimplemented, please try again later.\n", __FUNCTION__);
-}
-
index d901a9a..ac1506e 100644 (file)
@@ -1,4 +1,4 @@
-@ stdcall LpkPresent()
+@ stub LpkPresent
 @ stdcall ScriptApplyDigitSubstitution(ptr ptr ptr)
 @ stub ScriptApplyLogicalWidth
 @ stdcall ScriptBreak(ptr long ptr ptr)
 @ stdcall ScriptApplyDigitSubstitution(ptr ptr ptr)
 @ stub ScriptApplyLogicalWidth
 @ stdcall ScriptBreak(ptr long ptr ptr)