[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