#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