Jeff Latimer : usp10: Fix dead code in ScriptItemize.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Oct 17 06:12:31 CDT 2006


Module: wine
Branch: master
Commit: 292c99e3290736a3fe75e50a11105f929e30915b
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=292c99e3290736a3fe75e50a11105f929e30915b

Author: Jeff Latimer <lats at yless4u.com.au>
Date:   Tue Oct 17 19:11:25 2006 +1000

usp10: Fix dead code in ScriptItemize.

---

 dlls/usp10/tests/usp10.c |   13 ++++++++++++-
 dlls/usp10/usp10.c       |    2 +-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/dlls/usp10/tests/usp10.c b/dlls/usp10/tests/usp10.c
index 378bf68..31df9c7 100644
--- a/dlls/usp10/tests/usp10.c
+++ b/dlls/usp10/tests/usp10.c
@@ -46,7 +46,8 @@ static void test_ScriptItemIzeShapePlace
     WCHAR           TestItem1[] = {'T', 'e', 's', 't', 'a', 0}; 
     WCHAR           TestItem2[] = {'T', 'e', 's', 't', 'b', 0}; 
     WCHAR           TestItem3[] = {'T', 'e', 's', 't', 'c',' ','1','2','3',' ',' ','e','n','d',0}; 
-    WCHAR           TestItem4[] = {'T', 'e', 's', 't', 'c',' ',0x0684,0x0694,0x06a4,' ',' ','e','n','d',0}; 
+    WCHAR           TestItem4[] = {'T', 'e', 's', 't', 'c',' ',0x0684,0x0694,0x06a4,' ',' ','e','n','d',0};
+    WCHAR           TestItem5[] = {0x0684,'T','e','s','t','c',' ',0x0684,0x0694,0x06a4,' ',' ','e','n','d',0}; 
 
     SCRIPT_CACHE    psc;
     int             cChars;
@@ -243,6 +244,16 @@ static void test_ScriptItemIzeShapePlace
         hr = ScriptFreeCache( &psc);
         ok (!psc, "psc is not null after ScriptFreeCache\n");
     }
+
+    /*
+     * This test is for when the first unicode character requires bidi support
+     */ 
+    cInChars = (sizeof(TestItem5)-1)/sizeof(WCHAR);
+    hr = ScriptItemize(TestItem5, cInChars, cMaxItems, NULL, NULL, pItem, &pcItems);
+    ok (hr == 0, "ScriptItemize should return 0, returned %08x\n", hr);
+    ok (pcItems == 4, "There should have been 4 items, found %d\n", pcItems);
+    ok (pItem[0].a.s.uBidiLevel == 1, "The first character should have been bidi=1 not %d\n", 
+                                       pItem[0].a.s.uBidiLevel);
 }
 
 void test_ScriptGetCMap(HDC hdc, unsigned short pwOutGlyphs[256])
diff --git a/dlls/usp10/usp10.c b/dlls/usp10/usp10.c
index 6a52933..9fd6c1e 100644
--- a/dlls/usp10/usp10.c
+++ b/dlls/usp10/usp10.c
@@ -326,7 +326,7 @@ #define Script_Numeric 5
     pItems[index].a.fLogicalOrder = 0;
     pItems[index].a.fNoGlyphIndex = 0;
     /*  set the SCRIPT_STATE                                */
-    if  (New_Script == Script_Arabic)
+    if  (pItems[index].a.eScript  == Script_Arabic)
         pItems[index].a.s.uBidiLevel = 1;
     else
         pItems[index].a.s.uBidiLevel = 0;




More information about the wine-cvs mailing list