<<< Date Index >>>     <<< Thread Index >>>

[Mutt] #3276: iswupper() replacement gets it backward



#3276: iswupper() replacement gets it backward
----------------------+-----------------------------------------------------
 Reporter:  dhduvall  |       Owner:  mutt-dev
     Type:  defect    |      Status:  new     
 Priority:  major     |   Milestone:          
Component:  charset   |     Version:  1.5.20  
 Keywords:            |  
----------------------+-----------------------------------------------------
 I've been building mutt on Solaris with --without-wc-funcs due to a
 terribly broken wcwidth().  The rest of the Solaris wc*() functions are
 okay, as far as I know, but using the system wcwidth() gets it wrong for
 just about every non-ascii character.

 However, when built that way, pattern matching is no longer case-
 insensitive.  I finally tracked this down to the replacement iswupper()
 function (actually iswupper_ucs()) which returns true for lowercase ascii
 values (0x61 - 0x7a).  I'm not sure if the entire function is reversed, or
 just that range.  But I fixed it all up by using the system wc*()
 functions, and taking wcwidth() and wcwidth_ucs() out of HAVE_WC_FUNCS and
 making wcwidth() simply pass through to wcwidth_ucs().  I would speculate
 that this is the best thing to do on Solaris, but fixing iswupper_ucs()
 might be a simpler solution.

-- 
Ticket URL: <http://dev.mutt.org/trac/ticket/3276>
Mutt <http://www.mutt.org/>
The Mutt mail user agent