Bug 30319

Summary: open type init feature applied on character U+09c7 even thought it is in the middle of word
Product: HarfBuzz Reporter: Peter Hunter <phunter>
Component: srcAssignee: Behdad Esfahbod <freedesktop>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: freedesktop
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Peter Hunter 2010-09-21 18:10:12 UTC
A complete description can be found at: http://bugreports.qt.nokia.com/browse/QTBUG-13620

In Harbuuzz-indic.cpp there are two functions isLetter and isMark, b0th have the same return statement 

    return FLAG(HB_GetUnicodeCharCategory(ucs)) & test;

The problem is that the return value is a byte (representing a boolean value) whereas the expression being evaluated is much larger. 
A more appropriate return statement would be

    return (FLAG(HB_GetUnicodeCharCategory(ucs)) & test) != 0;
Comment 1 Behdad Esfahbod 2011-06-14 12:20:08 UTC
This is not really a bug since the '||' operator correctly handles the returned values.  I understand that it's an improvement, but the HarfBuzz.old code is not maintained anymore.
Comment 2 Behdad Esfahbod 2011-06-14 13:41:34 UTC
Oh, now I see what you mean.  Fixing.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.