New submission from Stefan Krah <stefan-use...@bytereef.org>: This feature request is extracted from issue 9020, where Py_CHARMASK(c) was used on EOF, producing different results depending on whether __CHAR_UNSIGNED__ is defined or not.
The preferred fix for issue 9020 is to check for EOF before using Py_CHARMASK, so this is only loosely related. I've looked through the source tree to determine how Py_CHARMASK is meant to be used. It seems that it is only used in situations where one would actually want to cast a char to an unsigned char, like isspace((unsigned char)c). Simplifications: 1) Python.h already enforces that an unsigned char is 8 bit wide. Thus, ((unsigned char)((c) & 0xff)) and ((unsigned char)(c)) should produce the same results. 2) There is no reason not to do the cast when __CHAR_UNSIGNED__ is defined (it will be a no-op). ---------- components: Interpreter Core files: py_charmask.patch keywords: needs review, patch messages: 108234 nosy: eric.smith, loewis, pitrou, skrah priority: normal severity: normal stage: patch review status: open title: Simplify Py_CHARMASK type: feature request versions: Python 2.7, Python 3.1, Python 3.2 Added file: http://bugs.python.org/file17724/py_charmask.patch _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9036> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com