[Bug 1845] New: Return values of CharUpperA and CharLowerA

Wine Bugs wine-bugs at winehq.com
Wed Nov 19 15:22:11 CST 2003


http://bugs.winehq.com/show_bug.cgi?id=1845

           Summary: Return values of CharUpperA and CharLowerA
           Product: Wine
           Version: unspecified
          Platform: Other
               URL: http://www.apis.de
        OS/Version: other
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wine-user
        AssignedTo: wine-bugs at winehq.com
        ReportedBy: andy at rosen-berg.de


The return values for CharUpperA and CharUpperB should return 32-bit ints with 
the upper 16 bits being 0 if the operand is a single character. Passing single 
characters with the 8th-bit being set, may result in 32bit results with the 
upper 16 bits set. This may confuse apps taking the whole 32bit value. We 
detected this bug, while testing our software with WINE. 
 
The problem seems to lie in dlls/user/lstr.c  (sign extension problem?). 
 
Looking at the code in lstr.c I saw a SetLastError. This may destroy a 
SetLastError of another call. Here is an excerpt from the Microsoft 
documentation for this call: 
------------ 
The CharUpper function converts a character string or a single character to 
uppercase. If the operand is a character string, the function converts the 
characters in place.  
.... 
There is no indication of success or failure. Failure is rare. There is no 
extended error information for this function; do not call GetLastError. 
------------

-- 
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list