This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Crash in tab completion with Term::ReadLine::Gnu.
[perl5.git] / lib / charnames.pm
index 559dc4f..52f8cee 100644 (file)
@@ -1,7 +1,7 @@
 package charnames;
 use strict;
 use warnings;
-our $VERSION = '1.33';
+our $VERSION = '1.39';
 use unicore::Name;    # mktables-generated algorithmically-defined names
 use _charnames ();    # The submodule for this where most of the work gets done
 
@@ -171,7 +171,7 @@ charnames ();">> did not enable C<\N{I<CHARNAME>}>.)
 
 Note that C<\N{U+I<...>}>, where the I<...> is a hexadecimal number,
 also inserts a character into a string.
-The character it inserts is the one whose code point
+The character it inserts is the one whose Unicode code point
 (ordinal value) is equal to the number.  For example, C<"\N{U+263a}"> is
 the Unicode (white background, black foreground) smiley face
 equivalent to C<"\N{WHITE SMILING FACE}">.
@@ -277,7 +277,7 @@ you're twisted enough, you can change C<"\N{LATIN CAPITAL LETTER A}"> to
 mean C<"B">, etc.
 
 Aliases must begin with a character that is alphabetic.  After that, each may
-contain any combination of word (C<\w>) characters, SPACE, (U+0020),
+contain any combination of word (C<\w>) characters, SPACE (U+0020),
 HYPHEN-MINUS (U+002D), LEFT PARENTHESIS (U+0028), RIGHT PARENTHESIS (U+0029),
 and NO-BREAK SPACE (U+00A0).  These last three should never have been allowed
 in names, and are retained for backwards compatibility only; they may be
@@ -285,8 +285,8 @@ deprecated and removed in future releases of Perl, so don't use them for new
 names.  (More precisely, the first character of a name you specify must be
 something that matches all of C<\p{ID_Start}>, C<\p{Alphabetic}>, and
 C<\p{Gc=Letter}>.  This makes sure it is what any reasonable person would view
-as an alphabetic character.  And, the other characters that match C<\w> must
-also match C<\p{ID_Continue}>.)  Starting with Perl v5.18, any Unicode
+as an alphabetic character.  And, the continuation characters that match C<\w>
+must also match C<\p{ID_Continue}>.)  Starting with Perl v5.18, any Unicode
 characters meeting the above criteria may be used; prior to that only
 Latin1-range characters were acceptable.
 
@@ -300,6 +300,10 @@ with C<"U+"> or C<"0x"> with the remainder considered to be a
 hexadecimal integer.  A literal numeric constant must be unsigned; it
 will be interpreted as hex if it has a leading zero or contains
 non-decimal hex digits; otherwise it will be interpreted as decimal.
+If it begins with C<"U+">, it is interpreted as the Unicode code point;
+otherwise it is interpreted as native.  (Only code points below 256 can
+differ between Unicode and native.)  Thus C<U+41> is always the Latin letter
+"A"; but C<0x41> can be "NO-BREAK SPACE" on EBCDIC platforms.
 
 Aliases are added either by the use of anonymous hashes:
 
@@ -357,7 +361,7 @@ C<string_vianame> returns C<undef> instead of it being a syntax error.
 =head1 charnames::vianame(I<name>)
 
 This is similar to C<string_vianame>.  The main difference is that under most
-circumstances, vianame returns an ordinal code
+circumstances, C<vianame> returns an ordinal code
 point, whereas C<string_vianame> returns a string.  For example,
 
    printf "U+%04X", charnames::vianame("FOUR TEARDROP-SPOKED ASTERISK");
@@ -402,6 +406,10 @@ with C<"U+"> or C<"0x"> with the remainder considered to be a
 hexadecimal integer.  A literal numeric constant must be unsigned; it
 will be interpreted as hex if it has a leading zero or contains
 non-decimal hex digits; otherwise it will be interpreted as decimal.
+If it begins with C<"U+">, it is interpreted as the Unicode code point;
+otherwise it is interpreted as native.  (Only code points below 256 can
+differ between Unicode and native.)  Thus C<U+41> is always the Latin letter
+"A"; but C<0x41> can be "NO-BREAK SPACE" on EBCDIC platforms.
 
 As mentioned above under L</ALIASES>, Unicode 6.1 defines extra names
 (synonyms or aliases) for some code points, most of which were already