Commit 518905bc70 for perl
commit 518905bc700d7ff956c86eea133b5c52aaf02889
Author: Karl Williamson <khw@cpan.org>
Date: Mon Oct 5 08:28:43 2026 -0600
regcharclass.pl: Add flags field to input <DATA>
This is currently ignored but a future commit will use it.
diff --git a/regcharclass.h b/regcharclass.h
index 7ac036c888..5f73fdd6b0 100644
--- a/regcharclass.h
+++ b/regcharclass.h
@@ -4004,6 +4004,6 @@
* 94644b4e53ef4f2590ef86a261dcd22ffadf79247fcc7f31c4ebf5b19111fd25 lib/unicore/mktables
* a0079d7556b20c2de1fdc3d492797a91b8ec8a06006f94460006185cb6380962 lib/unicore/version
* 0a6b5ab33bb1026531f816efe81aea1a8ffcd34a27cbea37dd6a70a63d73c844 regen/charset_translations.pl
- * 4d1bd3eb20d3853d1222aa67ffcf57511e9ffcdfb06d77a6027b5862b65dfacb regen/regcharclass.pl
+ * 91ddccc1480339f823e105491df2ab793a4a03384078fd420560a36814d9407e regen/regcharclass.pl
* 1ce43daf54162d0a267412453ce2a613f60f3a7631365775cc52d34213251a83 regen/regcharclass_multi_char_folds.pl
* ex: set ro ft=c: */
diff --git a/regen/regcharclass.pl b/regen/regcharclass.pl
index 1f06af58d0..5a1839246e 100755
--- a/regen/regcharclass.pl
+++ b/regen/regcharclass.pl
@@ -1647,7 +1647,8 @@ EOF
$doit->($charset) unless $first_time;
$first_time = 0;
- ( $op, $title )= split /\s*:\s*/, $line, 2;
+ ( $op, my $flags, $title )= split /\s*:\s*/, $line, 3;
+
@txt= ();
$title =~ s/ \s* \# .* //x;
@@ -1708,9 +1709,20 @@ EOF
}
# The form of the input is a series of definitions to make macros for.
-# The first line gives the base name of the macro, followed by a colon, and
-# then text to be used in comments associated with the macro that are its
-# title or description. In all cases the first (perhaps only) parameter to
+# The first line of each definition is of the form
+# BASE : flags : title
+#
+# BASE is the base name the macro. Potentially multiple macros can be
+# generated from a single definition. Their names will all have in common the
+# value given by 'BASE'. The rest of the names are described in the pod of
+# this file.
+#
+# 'flags' are currently ignored.
+#
+# Finally is 'title' which is output in comments associated with the macro
+# that are its title or description.
+#
+# In all cases the first (perhaps only) parameter to
# the macro is a pointer to the first byte of the code point it is to test to
# see if it is in the class determined by the macro. In the case of non-UTF8,
# the code point consists only of a single byte.
@@ -1837,43 +1849,43 @@ __DATA__
# 0x1FD3 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA; maps same as 0390
# 0x1FE3 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND OXIA; maps same as 03B0
-LNBREAK: Line Break (\R)
+LNBREAK: C2 : Line Break (\R)
A few Unicode characters or character sequences act as line terminators.
C<\R> in a regular expression pattern matches them.
=> generic UTF8 LATIN1 : safe
"\x0D\x0A" # CRLF - Network (Windows) line ending
\p{VertSpace}
-HORIZWS: Horizontal Whitespace (\h, \H)
+HORIZWS: C : Horizontal Whitespace (\h, \H)
A few Unicode characters are treated as horizontal space.
=> high cp_high : fast
\p{HorizSpace}
-VERTWS: Vertical Whitespace (\v, \V)
+VERTWS: C : Vertical Whitespace (\v, \V)
A few Unicode characters are treated as vertical space.
=> high cp_high : fast
\p{VertSpace}
-XDIGIT: Hexadecimal digits
+XDIGIT: C : Hexadecimal digits
A few Unicode characters are treated as hexadecimal digits.
=> high cp_high : fast
\p{XDigit}
-XPERLSPACE: \p{XPerlSpace}
+XPERLSPACE: C : \p{XPerlSpace}
=> high cp_high : fast
\p{XPerlSpace}
-SPACE: Backwards \p{XPerlSpace}
+SPACE: C : Backwards \p{XPerlSpace}
Some Unicode characters are treated as space, both horizontal and vertical.
=> backwards_UTF8 : safe
\p{XPerlSpace}
-NONCHAR: Non character code points
+NONCHAR: C : Non character code points
$nonchar_overview
=> UTF8 :safe
\p{_Perl_Nchar}
-SHORTER_NON_CHARS: # 3 bytes
+SHORTER_NON_CHARS: C : # 3 bytes
$nonchar_overview
$nonchar_length_overview
@@ -1882,7 +1894,7 @@ It handles the shorter ones.
0xFDD0 - 0xFDEF
0xFFFE - 0xFFFF
-LARGER_NON_CHARS: # 4 bytes
+LARGER_NON_CHARS: C : # 4 bytes
$nonchar_overview
$nonchar_length_overview
@@ -1905,7 +1917,7 @@ It handles the longer ones.
0xFFFFE - 0xFFFFF
0x10FFFE - 0x10FFFF
-SHORTER_NON_CHARS: # 4 bytes
+SHORTER_NON_CHARS: e : # 4 bytes
=> UTF8 :only_ebcdic_platform fast
0xFDD0 - 0xFDEF
0xFFFE - 0xFFFF
@@ -1913,7 +1925,7 @@ SHORTER_NON_CHARS: # 4 bytes
0x2FFFE - 0x2FFFF
0x3FFFE - 0x3FFFF
-LARGER_NON_CHARS: # 5 bytes
+LARGER_NON_CHARS: e : # 5 bytes
=> UTF8 :only_ebcdic_platform fast
0x4FFFE - 0x4FFFF
0x5FFFE - 0x5FFFF
@@ -1931,92 +1943,92 @@ LARGER_NON_CHARS: # 5 bytes
# Note that code in utf8.c is counting on the 'fast' version to look at no
# more than two bytes
-SURROGATE: Surrogate code points
+SURROGATE: C : Surrogate code points
=> UTF8 :safe fast
\p{_Perl_Surrogate}
-QUOTEMETA: Meta-characters that \Q should quote
+QUOTEMETA: C : Meta-characters that \Q should quote
Most characters in a Perl program represent themselves, but there are a few
"meta-characters" which mean something else unless escaped in some way.
=> high :fast
\p{_Perl_Quotemeta}
-MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+MULTI_CHAR_FOLD: C3 : multi-char strings that are folded to by a single character
$multi_overview
=> UTF8 UTF8-cp :safe
%regcharclass_multi_char_folds::multi_char_folds('u', 'a')
-MULTI_CHAR_FOLD: multi-char strings that are folded to by a single character
+MULTI_CHAR_FOLD: C3 : multi-char strings that are folded to by a single character
$multi_overview
=> LATIN1 LATIN1-cp : safe
%regcharclass_multi_char_folds::multi_char_folds('l', 'a')
-THREE_CHAR_FOLD: A three-character multi-char fold
+THREE_CHAR_FOLD: C3 : A three-character multi-char fold
$three_overview
=> UTF8 :safe
%regcharclass_multi_char_folds::multi_char_folds('u', '3')
-THREE_CHAR_FOLD: A three-character multi-char fold
+THREE_CHAR_FOLD: C3 : A three-character multi-char fold
$three_overview
=> LATIN1 :safe
%regcharclass_multi_char_folds::multi_char_folds('l', '3')
-THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
+THREE_CHAR_FOLD_HEAD: C2 : The first two of three-character multi-char folds
$three_overview
Sometimes we are interested in just the first two of these.
=> UTF8 :safe
%regcharclass_multi_char_folds::multi_char_folds('u', 'h')
-THREE_CHAR_FOLD_HEAD: The first two of three-character multi-char folds
+THREE_CHAR_FOLD_HEAD: C2 : The first two of three-character multi-char folds
$three_overview
Sometimes we are interested in just the first two of these.
=> LATIN1 :safe
%regcharclass_multi_char_folds::multi_char_folds('l', 'h')
#
-#THREE_CHAR_FOLD_NON_FINAL: The first or middle character of multi-char folds
+#THREE_CHAR_FOLD_NON_FINAL: C : The first or middle character of multi-char folds
#=> UTF8 :safe
#%regcharclass_multi_char_folds::multi_char_folds('u', 'fm')
#
-#THREE_CHAR_FOLD_NON_FINAL: The first or middle character of multi-char folds
+#THREE_CHAR_FOLD_NON_FINAL: C : The first or middle character of multi-char folds
#=> LATIN1 :safe
#%regcharclass_multi_char_folds::multi_char_folds('l', 'fm')
-FOLDS_TO_MULTI: characters that fold to multi-char strings
+FOLDS_TO_MULTI: C : characters that fold to multi-char strings
$multi_overview
=> UTF8 :fast
\p{_Perl_Folds_To_Multi_Char}
-PROBLEMATIC_LOCALE_FOLD : characters whose fold is problematic under locale
+PROBLEMATIC_LOCALE_FOLD : C : characters whose fold is problematic under locale
$problematic_overview
=> UTF8 cp :fast
\p{_Perl_Problematic_Locale_Folds}
-PROBLEMATIC_LOCALE_FOLDEDS_START : The first folded character of folds which are problematic under locale
+PROBLEMATIC_LOCALE_FOLDEDS_START : C : The first folded character of folds which are problematic under locale
$problematic_overview
Some times we are interested in just the first character of those that fold to
a sequence of more than one.
=> UTF8 cp :fast
\p{_Perl_Problematic_Locale_Foldeds_Start}
-PATWS: pattern white space
+PATWS: C : pattern white space
Not all characters that are nominally space characters in Unicode are
considered as such in regular expression patterns. Sometimes we need to
consider just the latter.
=> generic : safe
\p{_Perl_PatWS}
-HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
+HANGUL_ED: C : Hangul syllables whose first UTF-8 byte is \xED
For convenience of the implementation, certain Korean Hangul syllable characters
have to be treated specially.
=> UTF8 :only_ascii_platform safe
0xD000 - 0xD7FF
-HANGUL_ED: Hangul syllables whose first UTF-8 byte is \xED
+HANGUL_ED: C : Hangul syllables whose first UTF-8 byte is \xED
=> UTF8 :only_ebcdic_platform safe
0x1 - 0x0
# Always fails on EBCDIC; there are no ED Hanguls there
-WORD_BUT_NONCONT: Word characters that perhaps surprisingly are forbidden in names
+WORD_BUT_NONCONT: C : Word characters that perhaps surprisingly are forbidden in names
Some Unicode characters that match C<\w> can't be used in Perl names (such as
identifiers and labels).
=> generic : safe