This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
handy.h: Add isFOO_L1() macros, using table lookup
authorKarl Williamson <public@khwilliamson.com>
Fri, 24 Sep 2010 05:14:58 +0000 (23:14 -0600)
committerSteffen Mueller <smueller@cpan.org>
Sat, 25 Sep 2010 09:15:32 +0000 (11:15 +0200)
commit8a58bdcf4d2660cff0818d3e1176af18a113c88d
tree1c4c9f48b4ddd0c922830b012cf9d693ece6a152
parent8eea39dda497d40e67ca52cc97f1fe9318b032c2
handy.h: Add isFOO_L1() macros, using table lookup

This patch adds *_L1() macros for character class lookup, using table
lookup for O(1) performance.  These force a Latin-1 interpretation on
ASCII platforms.

There were a couple existing macros that had the suffix U for Unicode
semantics.  I thought that those names might be confusing, so settled on
L1 as the least bad name.  The older names are kept as synonyms for
backward compatibility.  The problem with those names is that these are
actually macros, not functions, and hence can be called with any int,
including any Unicode code point.  The U suffix might be mistaken for
indicating they are more general purpose, whereas they are really only
valid for the latin1 subset of Unicode (including the EBCDIC isomorphs).
When called with something outside the latin1 range, they will return
false.

This patch necessitated rearranging a few things in the file.  I added
documentation for several more macros, and intend to document the rest.

(This commit was modified from its original form by Steffen.)
handy.h