initial commit

Signed-off-by: Peter Siegmund <mars3142@noreply.mars3142.dev>
This commit is contained in:
2025-10-31 23:37:30 +01:00
commit bf6b52fd94
9654 changed files with 4035664 additions and 0 deletions

View File

@@ -0,0 +1,9 @@
ucptest
utf8
pcre2_ucp.h
pcre2_ucptables.c
pcre2_ucd.c
testinput
testoutput

View File

@@ -0,0 +1,318 @@
#! /usr/bin/perl -w
# Script to turn PCRE2 man pages into HTML
# Subroutine to handle font changes and other escapes
sub do_line {
my($s) = $_[0];
$s =~ s/</&#60;/g; # Deal with < and >
$s =~ s/>/&#62;/g;
$s =~ s"\\fI(.*?)\\f[RP]"<i>$1</i>"g;
$s =~ s"\\fB(.*?)\\f[RP]"<b>$1</b>"g;
$s =~ s"\\e"\\"g;
$s =~ s/(?<=Copyright )\(c\)/&copy;/g;
$s =~ s/\\&//g; # Deal with the \& 0-width space
$s;
}
# Subroutine to ensure not in a paragraph
sub end_para {
if ($inpara)
{
print TEMP "</PRE>\n" if ($inpre);
print TEMP "</P>\n";
}
$inpara = $inpre = 0;
$wrotetext = 0;
}
# Subroutine to start a new paragraph
sub new_para {
&end_para();
print TEMP "<P>\n";
$inpara = 1;
}
# Main program
$innf = 0;
$inpara = 0;
$inpre = 0;
$wrotetext = 0;
$toc = 0;
$ref = 1;
while ($#ARGV >= 0 && $ARGV[0] =~ /^-/)
{
$toc = 1 if $ARGV[0] eq "-toc";
shift;
}
# Initial output to STDOUT
print <<End ;
<html>
<head>
<title>$ARGV[0] specification</title>
</head>
<body bgcolor="#FFFFFF" text="#00005A" link="#0066FF" alink="#3399FF" vlink="#2222BB">
<h1>$ARGV[0] man page</h1>
<p>
Return to the <a href="index.html">PCRE2 index page</a>.
</p>
<p>
This page is part of the PCRE2 HTML documentation. It was generated
automatically from the original man page. If there is any nonsense in it,
please consult the man page, in case the conversion went wrong.
<br>
End
print "<ul>\n" if ($toc);
open(TEMP, ">/tmp/$$") || die "Can't open /tmp/$$ for output\n";
while (<STDIN>)
{
# Handle lines beginning with a dot
if (/^\./)
{
# Some of the PCRE2 man pages used to contain instances of .br. However,
# they should have all been removed because they cause trouble in some
# (other) automated systems that translate man pages to HTML. Complain if
# we find .br or .in (another macro that is deprecated).
if (/^\.br/ || /^\.in/)
{
print STDERR "\n*** Deprecated macro encountered - rewrite needed\n";
print STDERR "*** $_\n";
die "*** Processing abandoned\n";
}
# Instead of .br, relevant "literal" sections are enclosed in .nf/.fi.
elsif (/^\.nf/)
{
$innf = 1;
}
elsif (/^\.fi/)
{
$innf = 0;
}
# Handling .sp is subtle. If it is inside a literal section, do nothing if
# the next line is a non literal text line; similarly, if not inside a
# literal section, do nothing if a literal follows, unless we are inside
# a .nf/.fi section or about to enter one. The point being that the <pre>
# and </pre> that delimit literal sections will do the spacing. Always skip
# if no previous output.
elsif (/^\.sp/)
{
if ($wrotetext)
{
$_ = <STDIN>;
if ($inpre)
{
print TEMP "\n" if (/^[\s.]/);
}
else
{
print TEMP "<br>\n<br>\n" if ($innf || /^\.nf/ || !/^[\s.]/);
}
redo; # Now process the lookahead line we just read
}
}
elsif (/^\.TP/ || /^\.PP/ || /^\.P/)
{
&new_para();
}
elsif (/^\.SH\s*("?)(.*)\1/)
{
# Ignore the NAME section
if ($2 =~ /^NAME\b/)
{
<STDIN>;
next;
}
&end_para();
my($title) = &do_line($2);
if ($toc)
{
printf("<li><a name=\"TOC%d\" href=\"#SEC%d\">$title</a>\n",
$ref, $ref);
printf TEMP ("<br><a name=\"SEC%d\" href=\"#TOC1\">$title</a><br>\n",
$ref);
$ref++;
}
else
{
print TEMP "<br><b>\n$title\n</b><br>\n";
}
}
elsif (/^\.SS\s*("?)(.*)\1/)
{
&end_para();
my($title) = &do_line($2);
print TEMP "<br><b>\n$title\n</b><br>\n";
}
elsif (/^\.B\s*(.*)/)
{
&new_para() if (!$inpara);
$_ = &do_line($1);
s/"(.*?)"/$1/g;
print TEMP "<b>$_</b>\n";
$wrotetext = 1;
}
elsif (/^\.I\s*(.*)/)
{
&new_para() if (!$inpara);
$_ = &do_line($1);
s/"(.*?)"/$1/g;
print TEMP "<i>$_</i>\n";
$wrotetext = 1;
}
# Remove the "AUTOMATICALLY GENERATED" warning from pcre2demo.3
elsif (/^\.\\"AUTOMATICALLY GENERATED/) { next; }
# A comment that starts "HREF" takes the next line as a name that
# is turned into a hyperlink, using the text given, which might be
# in a special font. If it ends in () or (digits) or punctuation, they
# aren't part of the link.
elsif (/^\.\\"\s*HREF/)
{
$_=<STDIN>;
chomp;
$_ = &do_line($_);
$_ =~ s/\s+$//;
$_ =~ /^(?:<.>)?([^<(]+)(?:\(\))?(?:<\/.>)?(?:\(\d+\))?[.,;:]?$/;
print TEMP "<a href=\"$1.html\">$_</a>\n";
}
# A comment that starts "HTML" inserts literal HTML
elsif (/^\.\\"\s*HTML\s*(.*)/)
{
print TEMP $1;
}
# A comment that starts < inserts that HTML at the end of the
# *next* input line - so as not to get a newline between them.
elsif (/^\.\\"\s*(<.*>)/)
{
my($markup) = $1;
$_=<STDIN>;
chomp;
$_ = &do_line($_);
$_ =~ s/\s+$//;
print TEMP "$_$markup\n";
}
# A comment that starts JOIN joins the next two lines together, with one
# space between them. Then that line is processed. This is used in some
# displays where two lines are needed for the "man" version. JOINSH works
# the same, except that it assumes this is a shell command, so removes
# continuation backslashes.
elsif (/^\.\\"\s*JOIN(SH)?/)
{
my($one,$two);
$one = <STDIN>;
$two = <STDIN>;
$one =~ s/\s*\\e\s*$// if (defined($1));
chomp($one);
$two =~ s/^\s+//;
$_ = "$one $two";
redo; # Process the joined lines
}
# .EX/.EE are used in the pcre2demo page to bracket the entire program,
# which is unmodified except for turning backslash into "\e".
elsif (/^\.EX\s*$/)
{
print TEMP "<PRE>\n";
while (<STDIN>)
{
last if /^\.EE\s*$/;
s/\\e/\\/g;
s/&/&amp;/g;
s/</&lt;/g;
s/>/&gt;/g;
print TEMP;
}
}
# Ignore anything not recognized
next;
}
# Line does not begin with a dot. Replace blank lines with new paragraphs
if (/^\s*$/)
{
&end_para() if ($wrotetext);
next;
}
# Convert fonts changes and output an ordinary line. Ensure that indented
# lines are marked as literal.
$_ = &do_line($_);
&new_para() if (!$inpara);
if (/^\s/)
{
if (!$inpre)
{
print TEMP "<pre>\n";
$inpre = 1;
}
}
elsif ($inpre)
{
print TEMP "</pre>\n";
$inpre = 0;
}
# Add <br> to the end of a non-literal line if we are within .nf/.fi
$_ .= "<br>\n" if (!$inpre && $innf);
print TEMP;
$wrotetext = 1;
}
# The TOC, if present, will have been written - terminate it
print "</ul>\n" if ($toc);
# Copy the remainder to the standard output
close(TEMP);
open(TEMP, "/tmp/$$") || die "Can't open /tmp/$$ for input\n";
print while (<TEMP>);
print <<End ;
<p>
Return to the <a href="index.html">PCRE2 index page</a>.
</p>
End
close(TEMP);
unlink("/tmp/$$");
# End

View File

@@ -0,0 +1,78 @@
#! /usr/bin/perl
# A script to scan PCRE2's man pages to check for typos in the control
# sequences. I use only a small set of the available repertoire, so it is
# straightforward to check that nothing else has slipped in by mistake. This
# script should be called in the doc directory.
$yield = 0;
while (scalar(@ARGV) > 0)
{
$line = 0;
$file = shift @ARGV;
open (IN, $file) || die "Failed to open $file\n";
while (<IN>)
{
$count = 0;
$line++;
if (/^\s*$/)
{
printf "Empty line $line of $file\n";
$yield = 1;
}
elsif (/^\./)
{
if (!/^\.\s*$|
^\.B\s+\S|
^\.TH\s\S|
^\.SH\s\S|
^\.SS\s\S|
^\.TP(?:\s?\d+)?\s*$|
^\.SM\s*$|
^\.br\s*$|
^\.rs\s*$|
^\.sp\s*$|
^\.nf\s*$|
^\.fi\s*$|
^\.P\s*$|
^\.PP\s*$|
^\.\\"(?:\ HREF)?\s*$|
^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
^\.\\"\s<\/a>\s*$|
^\.\\"\sJOINSH\s*$|
^\.\\"\sJOIN\s*$/x
)
{
printf "Bad control line $line of $file\n";
$yield = 1;
}
}
elsif (/\\[^ef&]|\\f[^IBP]/)
{
printf "Bad backslash in line $line of $file\n";
$yield = 1;
}
while (/\\f[BI]/g)
{
$count++;
}
while (/\\fP/g)
{
$count--;
}
if ($count != 0)
{
printf "Mismatching formatting in line $line of $file\n";
$yield = 1;
}
}
close(IN);
}
exit $yield;
# End

View File

@@ -0,0 +1,64 @@
#! /usr/bin/perl
# This is a script for checking whether a file contains any carriage return
# characters, and whether it is valid UTF-8.
use Encode;
# This subroutine does the work for one file.
$yield = 0;
$ascii = 0; # bool
$crlf = 0; # bool
sub checktxt {
my($file) = $_[0];
open(IN, "<:raw", "$file") || die "Can't open $file for input";
$bin = do { local $/ = undef; <IN> };
close(IN);
my $data;
eval
{
$data = Encode::decode("UTF-8", $bin, Encode::FB_CROAK);
1; # return true
}
or do
{
printf "Bad UTF-8 in $file\n";
$yield = 1;
return;
};
if (!$crlf && index($data, "\r") != -1)
{
printf "CR in $file\n";
$yield = 1;
}
if ($ascii && $data =~ /[^\x01-\x7e]/)
{
printf "Non-ASCII in $file\n";
$yield = 1;
}
}
# This is the main program
$, = ""; # Output field separator
for ($i = 0; $i < @ARGV; $i++)
{
if ($ARGV[$i] eq "-ascii")
{
$ascii = 1;
}
elsif ($ARGV[$i] eq "-crlf")
{
$crlf = 1;
}
else
{
checktxt($ARGV[$i]);
}
}
exit $yield;
# End

View File

@@ -0,0 +1,113 @@
#! /usr/bin/perl -w
# Script to take the output of nroff -man and remove all the backspacing and
# the page footers and the screen commands etc so that it is more usefully
# readable online. In fact, in the latest nroff, intermediate footers don't
# seem to be generated any more.
$blankcount = 0;
$lastwascut = 0;
$firstheader = 1;
# Input on STDIN; output to STDOUT.
while (<STDIN>)
{
s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
s/.\x8//g; # Remove "char, backspace"
# Handle header lines. Retain only the first one we encounter, but remove
# the blank line that follows. Any others (e.g. at end of document) and the
# following blank line are dropped.
if (/^PCRE(\w*)\(([13])\)\s+PCRE\1\(\2\)$/)
{
if ($firstheader)
{
$firstheader = 0;
print;
$lastprinted = $_;
$lastwascut = 0;
}
$_=<STDIN>; # Remove a blank that follows
next;
}
# Count runs of empty lines
if (/^\s*$/)
{
$blankcount++;
$lastwascut = 0;
next;
}
# If a chunk of lines has been cut out (page footer) and the next line
# has a different indentation, put back one blank line.
if ($lastwascut && $blankcount < 1 && defined($lastprinted))
{
($a) = $lastprinted =~ /^(\s*)/;
($b) = $_ =~ /^(\s*)/;
$blankcount++ if ($a ne $b);
}
# We get here only when we have a non-blank line in hand. If it was preceded
# by 3 or more blank lines, read the next 3 lines and see if they are blank.
# If so, remove all 7 lines, and remember that we have just done a cut.
if ($blankcount >= 3)
{
for ($i = 0; $i < 3; $i++)
{
$next[$i] = <STDIN>;
$next[$i] = "" if !defined $next[$i];
$next[$i] =~ s/\x1b\[\d+m//g; # Remove screen controls "ESC [ number m"
$next[$i] =~ s/.\x8//g; # Remove "char, backspace"
}
# Cut out chunks of the form <3 blanks><non-blank><3 blanks>
if ($next[0] =~ /^\s*$/ &&
$next[1] =~ /^\s*$/ &&
$next[2] =~ /^\s*$/)
{
$blankcount -= 3;
$lastwascut = 1;
}
# Otherwise output the saved blanks, the current, and the next three
# lines. Remember the last printed line.
else
{
for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
print;
for ($i = 0; $i < 3; $i++)
{
$next[$i] =~ s/.\x8//g;
print $next[$i];
$lastprinted = $_;
}
$lastwascut = 0;
$blankcount = 0;
}
}
# This non-blank line is not preceded by 3 or more blank lines. Output
# any blanks there are, and the line. Remember it. Force two blank lines
# before headings.
else
{
$blankcount = 2 if /^\S/ && !/^Last updated/ && !/^Copyright/ &&
defined($lastprinted);
for ($i = 0; $i < $blankcount; $i++) { print "\n"; }
print;
$lastprinted = $_;
$lastwascut = 0;
$blankcount = 0;
}
}
# End

View File

@@ -0,0 +1,35 @@
#! /usr/bin/perl
# This is a script for removing trailing whitespace from lines in files that
# are listed on the command line.
# This subroutine does the work for one file.
sub detrail {
my($file) = $_[0];
my($changed) = 0;
open(IN, "<", "$file") || die "Can't open $file for input";
@lines = <IN>;
close(IN);
foreach (@lines)
{
if (/\s+\n$/)
{
s/\s+\n$/\n/;
$changed = 1;
}
}
if ($changed)
{
open(OUT, ">", "$file") || die "Can't open $file for output";
print OUT @lines;
close(OUT);
}
}
# This is the main program
$, = ""; # Output field separator
for ($i = 0; $i < @ARGV; $i++) { &detrail($ARGV[$i]); }
# End

View File

@@ -0,0 +1,354 @@
# PCRE2 UNICODE PROPERTY SUPPORT
# ------------------------------
# This file is a Python module containing common lists and functions for the
# GenerateXXX scripts that create various.c and .h files from Unicode data
# files. It was created as part of a re-organizaton of these scripts in
# December 2021.
import re
# ---------------------------------------------------------------------------
# DATA LISTS
# ---------------------------------------------------------------------------
# BIDI classes in the DerivedBidiClass.txt file, short and long identifiers.
bidi_classes = [
'AL', 'Arabic_Letter',
'AN', 'Arabic_Number',
'B', 'Paragraph_Separator',
'BN', 'Boundary_Neutral',
'CS', 'Common_Separator',
'EN', 'European_Number',
'ES', 'European_Separator',
'ET', 'European_Terminator',
'FSI', 'First_Strong_Isolate',
'L', 'Left_To_Right',
'LRE', 'Left_To_Right_Embedding',
'LRI', 'Left_To_Right_Isolate',
'LRO', 'Left_To_Right_Override',
'NSM', 'Nonspacing_Mark',
'ON', 'Other_Neutral',
'PDF', 'Pop_Directional_Format',
'PDI', 'Pop_Directional_Isolate',
'R', 'Right_To_Left',
'RLE', 'Right_To_Left_Embedding',
'RLI', 'Right_To_Left_Isolate',
'RLO', 'Right_To_Left_Override',
'S', 'Segment_Separator',
'WS', 'White_Space'
]
# Particular category property names, with comments. NOTE: If ever this list
# is changed, the table called "catposstab" in the pcre2_auto_possess.c file
# must be edited to keep in step.
category_names = [
'Cc', 'Control',
'Cf', 'Format',
'Cn', 'Unassigned',
'Co', 'Private use',
'Cs', 'Surrogate',
'Ll', 'Lower case letter',
'Lm', 'Modifier letter',
'Lo', 'Other letter',
'Lt', 'Title case letter',
'Lu', 'Upper case letter',
'Mc', 'Spacing mark',
'Me', 'Enclosing mark',
'Mn', 'Non-spacing mark',
'Nd', 'Decimal number',
'Nl', 'Letter number',
'No', 'Other number',
'Pc', 'Connector punctuation',
'Pd', 'Dash punctuation',
'Pe', 'Close punctuation',
'Pf', 'Final punctuation',
'Pi', 'Initial punctuation',
'Po', 'Other punctuation',
'Ps', 'Open punctuation',
'Sc', 'Currency symbol',
'Sk', 'Modifier symbol',
'Sm', 'Mathematical symbol',
'So', 'Other symbol',
'Zl', 'Line separator',
'Zp', 'Paragraph separator',
'Zs', 'Space separator'
]
# The Extended_Pictographic property is not found in the file where all the
# others are (GraphemeBreakProperty.txt). It comes from the emoji-data.txt
# file, but we list it here so that the name has the correct index value.
break_properties = [
'CR', ' 0',
'LF', ' 1',
'Control', ' 2',
'Extend', ' 3',
'Prepend', ' 4',
'SpacingMark', ' 5',
'L', ' 6 Hangul syllable type L',
'V', ' 7 Hangul syllable type V',
'T', ' 8 Hangul syllable type T',
'LV', ' 9 Hangul syllable type LV',
'LVT', '10 Hangul syllable type LVT',
'Regional_Indicator', '11',
'Other', '12',
'ZWJ', '13',
'Extended_Pictographic', '14'
]
# List of files from which the names of Boolean properties are obtained, along
# with a list of regex patterns for properties to be ignored, and a list of
# extra pattern names to add.
bool_propsfiles = ['PropList.txt', 'DerivedCoreProperties.txt', 'emoji-data.txt']
bool_propsignore = [r'^Other_', r'^Hyphen$']
bool_propsextras = ['ASCII', 'Bidi_Mirrored']
# ---------------------------------------------------------------------------
# GET BOOLEAN PROPERTY NAMES
# ---------------------------------------------------------------------------
# Get a list of Boolean property names from a number of files.
def getbpropslist():
bplist = []
bplast = ""
for filename in bool_propsfiles:
try:
file = open('Unicode.tables/' + filename, 'r')
except IOError:
print(f"** Couldn't open {'Unicode.tables/' + filename}\n")
sys.exit(1)
for line in file:
line = re.sub(r'#.*', '', line)
data = list(map(str.strip, line.split(';')))
if len(data) <= 1 or data[1] == bplast:
continue
bplast = data[1]
for pat in bool_propsignore:
if re.match(pat, bplast) != None:
break
else:
if bplast not in bplist:
bplist.append(bplast)
file.close()
bplist.extend(bool_propsextras)
bplist.sort()
return bplist
bool_properties = getbpropslist()
bool_props_list_item_size = (len(bool_properties) + 31) // 32
# ---------------------------------------------------------------------------
# COLLECTING PROPERTY NAMES AND ALIASES
# ---------------------------------------------------------------------------
script_names = ['Unknown']
abbreviations = {}
def collect_property_names():
global script_names
global abbreviations
names_re = re.compile(r'^[0-9A-F]{4,6}(?:\.\.[0-9A-F]{4,6})? +; ([A-Za-z_]+) #')
last_script_name = ""
with open("Unicode.tables/Scripts.txt") as f:
for line in f:
match_obj = names_re.match(line)
if match_obj == None or match_obj.group(1) == last_script_name:
continue
last_script_name = match_obj.group(1)
script_names.append(last_script_name)
# Sometimes there is comment in the line
# so splitting around semicolon is not enough
value_alias_re = re.compile(r' *([A-Za-z_]+) *; *([A-Za-z_]+) *; *([A-Za-z_]+)(?: *; *([A-Za-z_ ]+))?')
with open("Unicode.tables/PropertyValueAliases.txt") as f:
for line in f:
match_obj = value_alias_re.match(line)
if match_obj == None:
continue
if match_obj.group(1) == "sc":
if match_obj.group(2) == match_obj.group(3):
abbreviations[match_obj.group(3)] = ()
elif match_obj.group(4) == None:
abbreviations[match_obj.group(3)] = (match_obj.group(2),)
else:
abbreviations[match_obj.group(3)] = (match_obj.group(2), match_obj.group(4))
# We can also collect Boolean property abbreviations into the same dictionary
bin_alias_re = re.compile(r' *([A-Za-z_]+) *; *([A-Za-z_]+)(?: *; *([A-Za-z_]+))?')
with open("Unicode.tables/PropertyAliases.txt") as f:
for line in f:
match_obj = bin_alias_re.match(line)
if match_obj == None:
continue
if match_obj.group(2) != match_obj.group(1) and match_obj.group(2) in bool_properties:
if match_obj.group(3) == None:
abbreviations[match_obj.group(2)] = (match_obj.group(1),)
else:
abbreviations[match_obj.group(2)] = (match_obj.group(1), match_obj.group(3))
collect_property_names()
# ---------------------------------------------------------------------------
# REORDERING SCRIPT NAMES
# ---------------------------------------------------------------------------
script_abbrevs = []
def reorder_scripts():
global script_names
global script_abbrevs
global abbreviations
for name in script_names:
abbrevs = abbreviations[name]
script_abbrevs.append(name if len(abbrevs) == 0 else abbrevs[0])
extended_script_abbrevs = set()
with open("Unicode.tables/ScriptExtensions.txt") as f:
names_re = re.compile(r'^[0-9A-F]{4,6}(?:\.\.[0-9A-F]{4,6})? +; ([A-Za-z_ ]+[A-Za-z]) +#')
for line in f:
match_obj = names_re.match(line)
if match_obj == None:
continue
for name in match_obj.group(1).split(" "):
extended_script_abbrevs.add(name)
new_script_names = []
new_script_abbrevs = []
for idx, abbrev in enumerate(script_abbrevs):
if abbrev in extended_script_abbrevs:
new_script_names.append(script_names[idx])
new_script_abbrevs.append(abbrev)
for idx, abbrev in enumerate(script_abbrevs):
if abbrev not in extended_script_abbrevs:
new_script_names.append(script_names[idx])
new_script_abbrevs.append(abbrev)
script_names = new_script_names
script_abbrevs = new_script_abbrevs
reorder_scripts()
script_list_item_size = (script_names.index('Unknown') + 31) // 32
# ---------------------------------------------------------------------------
# DERIVED LISTS
# ---------------------------------------------------------------------------
# Create general character property names from the first letters of the
# particular categories.
gcn_set = set(category_names[i][0] for i in range(0, len(category_names), 2))
general_category_names = list(gcn_set)
general_category_names.sort()
# ---------------------------------------------------------------------------
# FUNCTIONS
# ---------------------------------------------------------------------------
import sys
# Open an output file, using the command's argument or a default. Write common
# preliminary header information.
def open_output(default):
if len(sys.argv) > 2:
print('** Too many arguments: just give a file name')
sys.exit(1)
if len(sys.argv) == 2:
output_name = sys.argv[1]
else:
output_name = default
try:
file = open(output_name, "w")
except IOError:
print("** Couldn't open %s" % output_name)
sys.exit(1)
script_name = sys.argv[0]
i = script_name.rfind('/')
if i >= 0:
script_name = script_name[i+1:]
file.write("""\
/*************************************************
* Perl-Compatible Regular Expressions *
*************************************************/
/* PCRE is a library of functions to support regular expressions whose syntax
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
Original API code Copyright (c) 1997-2012 University of Cambridge
New API code Copyright (c) 2016-2022 University of Cambridge
This module is auto-generated from Unicode data files. DO NOT EDIT MANUALLY!
""")
file.write("Instead, modify the maint/%s script and run it to generate\n"
"a new version of this code.\n\n" % script_name)
file.write("""\
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the University of Cambridge nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
-----------------------------------------------------------------------------
*/
\n""")
return file
# End of UcpCommon.py

View File

@@ -0,0 +1,186 @@
#! /usr/bin/env python3
# PCRE2 UNICODE PROPERTY SUPPORT
# ------------------------------
#
# This file auto-generates Unicode property tests and their expected output.
# It is recommended to re-run this generator after the Unicode files are
# updated. The names of the generated files are `testinput` and `testoutput`
# and should be copied over to replace either test26 or test27 files.
import re
import sys
from GenerateCommon import \
script_names, \
script_abbrevs
def write_both(text):
input_file.write(text)
output_file.write(text)
def to_string_char(ch_idx):
if ch_idx < 128:
if ch_idx < 16:
return "\\x{0%x}" % ch_idx
if ch_idx >= 32:
return chr(ch_idx)
return "\\x{%x}" % ch_idx
try:
input_file = open("testinput", "w")
output_file = open("testoutput", "w")
except IOError:
print("** Couldn't create output files")
sys.exit(1)
write_both("# These tests were generated by maint/GenerateTest.py using PCRE2's UCP\n");
write_both("# data, do not edit unless that data has changed and they are reflecting\n");
write_both("# a previous version.\n\n");
# ---------------------------------------------------------------------------
# UNICODE SCRIPT EXTENSION TESTS
# ---------------------------------------------------------------------------
def gen_script_tests():
script_data = [None] * len(script_names)
char_data = [None] * 0x110000
property_re = re.compile(r"^([0-9A-F]{4,6})(?:\.\.([0-9A-F]{4,6}))? +; ([A-Za-z_ ]+[A-Za-z]) +#")
prev_name = ""
script_idx = -1
with open("Unicode.tables/Scripts.txt") as f:
version_pat = r"^# Scripts-(\d+\.\d+\.\d+)\.txt$"
v = re.match(version_pat, f.readline())
unicode_version = v.group(1)
write_both("# Unicode Script Extension tests for version " + unicode_version + "\n\n")
write_both("#perltest\n\n")
for line in f:
match_obj = property_re.match(line)
if match_obj == None:
continue
name = match_obj.group(3)
if name != prev_name:
script_idx = script_names.index(name)
prev_name = name
low = int(match_obj.group(1), 16)
high = low
char_data[low] = name
if match_obj.group(2) != None:
high = int(match_obj.group(2), 16)
for idx in range(low + 1, high + 1):
char_data[idx] = name
if script_data[script_idx] == None:
script_data[script_idx] = [low, None, None, None, None]
script_data[script_idx][1] = high
extended_script_indicies = {}
with open("Unicode.tables/ScriptExtensions.txt") as f:
for line in f:
match_obj = property_re.match(line)
if match_obj == None:
continue
low = int(match_obj.group(1), 16)
high = low
if match_obj.group(2) != None:
high = int(match_obj.group(2), 16)
for abbrev in match_obj.group(3).split(" "):
if abbrev not in extended_script_indicies:
idx = script_abbrevs.index(abbrev)
extended_script_indicies[abbrev] = idx
rec = script_data[idx]
rec[2] = low
rec[3] = high
else:
idx = extended_script_indicies[abbrev]
rec = script_data[idx]
if rec[2] > low:
rec[2] = low
if rec[3] < high:
rec[3] = high
if rec[4] == None:
name = script_names[idx]
for idx in range(low, high + 1):
if char_data[idx] != name:
rec[4] = idx
break
long_property_name = False
for idx, rec in enumerate(script_data):
script_name = script_names[idx]
if script_name == "Unknown":
continue
script_abbrev = script_abbrevs[idx]
write_both("# Base script check\n")
write_both("/^\\p{sc=%s}/utf\n" % script_name)
write_both(" %s\n" % to_string_char(rec[0]))
output_file.write(" 0: %s\n" % to_string_char(rec[0]))
write_both("\n")
write_both("/^\\p{Script=%s}/utf\n" % script_abbrev)
write_both(" %s\n" % to_string_char(rec[1]))
output_file.write(" 0: %s\n" % to_string_char(rec[1]))
write_both("\n")
if rec[2] != None:
property_name = "scx"
if long_property_name:
property_name = "Script_Extensions"
write_both("# Script extension check\n")
write_both("/^\\p{%s}/utf\n" % script_name)
write_both(" %s\n" % to_string_char(rec[2]))
output_file.write(" 0: %s\n" % to_string_char(rec[2]))
write_both("\n")
write_both("/^\\p{%s=%s}/utf\n" % (property_name, script_abbrev))
write_both(" %s\n" % to_string_char(rec[3]))
output_file.write(" 0: %s\n" % to_string_char(rec[3]))
write_both("\n")
long_property_name = not long_property_name
if rec[4] != None:
write_both("# Script extension only character\n")
write_both("/^\\p{%s}/utf\n" % script_name)
write_both(" %s\n" % to_string_char(rec[4]))
output_file.write(" 0: %s\n" % to_string_char(rec[4]))
write_both("\n")
write_both("/^\\p{sc=%s}/utf\n" % script_name)
write_both(" %s\n" % to_string_char(rec[4]))
output_file.write("No match\n")
write_both("\n")
else:
print("External character has not found for %s" % script_name)
high = rec[1]
if rec[3] != None and rec[3] > rec[1]:
high = rec[3]
write_both("# Character not in script\n")
write_both("/^\\p{%s}/utf\n" % script_name)
write_both(" %s\n" % to_string_char(high + 1))
output_file.write("No match\n")
write_both("\n")
gen_script_tests()
write_both("# End of test\n")

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,98 @@
#! /usr/bin/env python3
# PCRE2 UNICODE PROPERTY SUPPORT
# ------------------------------
# This script generates the pcre2_ucp.h file from Unicode data files. This
# header uses enumerations to give names to Unicode property types and script
# names.
# This script was created in December 2021 as part of the Unicode data
# generation refactoring.
# Import common data lists and functions
from GenerateCommon import \
bidi_classes, \
bool_properties, \
bool_props_list_item_size, \
break_properties, \
category_names, \
general_category_names, \
script_list_item_size, \
script_names, \
open_output
# Open the output file (no return on failure). This call also writes standard
# header boilerplate.
f = open_output("pcre2_ucp.h")
# Output this file's heading text
f.write("""\
#ifndef PCRE2_UCP_H_IDEMPOTENT_GUARD
#define PCRE2_UCP_H_IDEMPOTENT_GUARD
/* This file contains definitions of the Unicode property values that are
returned by the UCD access macros and used throughout PCRE2.
IMPORTANT: The specific values of the first two enums (general and particular
character categories) are assumed by the table called catposstab in the file
pcre2_auto_possess.c. They are unlikely to change, but should be checked after
an update. */
\n""")
f.write("/* These are the general character categories. */\n\nenum {\n")
for i in general_category_names:
f.write(" ucp_%s,\n" % i)
f.write("};\n\n")
f.write("/* These are the particular character categories. */\n\nenum {\n")
for i in range(0, len(category_names), 2):
f.write(" ucp_%s, /* %s */\n" % (category_names[i], category_names[i+1]))
f.write("};\n\n")
f.write("/* These are Boolean properties. */\n\nenum {\n")
for i in bool_properties:
f.write(" ucp_%s,\n" % i)
f.write(" /* This must be last */\n")
f.write(" ucp_Bprop_Count\n};\n\n")
f.write("/* Size of entries in ucd_boolprop_sets[] */\n\n")
f.write("#define ucd_boolprop_sets_item_size %d\n\n" % bool_props_list_item_size)
f.write("/* These are the bidi class values. */\n\nenum {\n")
for i in range(0, len(bidi_classes), 2):
sp = ' ' * (4 - len(bidi_classes[i]))
f.write(" ucp_bidi%s,%s /* %s */\n" % (bidi_classes[i], sp, bidi_classes[i+1]))
f.write("};\n\n")
f.write("/* These are grapheme break properties. The Extended Pictographic "
"property\ncomes from the emoji-data.txt file. */\n\nenum {\n")
for i in range(0, len(break_properties), 2):
sp = ' ' * (21 - len(break_properties[i]))
f.write(" ucp_gb%s,%s /* %s */\n" % (break_properties[i], sp, break_properties[i+1]))
f.write("};\n\n")
f.write("/* These are the script identifications. */\n\nenum {\n /* Scripts which has characters in other scripts. */\n")
for i in script_names:
if i == "Unknown":
f.write("\n /* Scripts which has no characters in other scripts. */\n")
f.write(" ucp_%s,\n" % i)
f.write("\n")
f.write(" /* This must be last */\n")
f.write(" ucp_Script_Count\n};\n\n")
f.write("/* Size of entries in ucd_script_sets[] */\n\n")
f.write("#define ucd_script_sets_item_size %d\n\n" % script_list_item_size)
f.write("#endif /* PCRE2_UCP_H_IDEMPOTENT_GUARD */\n\n")
f.write("/* End of pcre2_ucp.h */\n")
f.close()
# End

View File

@@ -0,0 +1,203 @@
#! /usr/bin/env python3
# PCRE2 UNICODE PROPERTY SUPPORT
# ------------------------------
# This script generates the pcre2_ucptables.c file, which contains tables for
# recognizing Unicode property names. It is #included by pcre2_tables.c. In
# order to reduce the number of relocations when loading the PCRE2 library, the
# names are held as a single large string, with offsets in the table. This is
# tedious to maintain by hand. Therefore, a script is used to generate the
# table.
# This script was created in December 2021 based on the previous GenerateUtt
# script, whose output had to be manually edited into pcre2_tables.c. Here is
# the history of the original script:
# -----------------------------------------------------------------------------
# Modified by PH 17-March-2009 to generate the more verbose form that works
# for UTF-support in EBCDIC as well as ASCII environments.
# Modified by PH 01-March-2010 to add new scripts for Unicode 5.2.0.
# Modified by PH 04-May-2010 to add new "X.." special categories.
# Modified by PH 30-April-2011 to add new scripts for Unicode 6.0.0
# Modified by ChPe 30-September-2012 to add this note; no other changes were
# necessary for Unicode 6.2.0 support.
# Modfied by PH 26-February-2013 to add the Xuc special category.
# Comment modified by PH 13-May-2014 to update to PCRE2 file names.
# Script updated to Python 3 by running it through the 2to3 converter.
# Added script names for Unicode 7.0.0, 20-June-2014.
# Added script names for Unicode 8.0.0, 19-June-2015.
# Added script names for Unicode 10.0.0, 02-July-2017.
# Added script names for Unicode 11.0.0, 03-July-2018.
# Added 'Unknown' script, 01-October-2018.
# Added script names for Unicode 12.1.0, 27-July-2019.
# Added script names for Unicode 13.0.0, 10-March-2020.
# Added Script names for Unicode 14.0.0, PCRE2-10.39
# Added support for bidi class and bidi control, 06-December-2021
# This also involved lower casing strings and removing underscores, in
# accordance with Unicode's "loose matching" rules, which Perl observes.
# Changed default script type from PT_SC to PT_SCX, 18-December-2021
# -----------------------------------------------------------------------------
#
# Note subsequent changes here:
#
# 27-December-2021: Added support for 4-letter script abbreviations.
# 10-January-2022: Further updates for Boolean property support
# -----------------------------------------------------------------------------
# Import common data lists and functions
from GenerateCommon import \
abbreviations, \
bool_properties, \
bidi_classes, \
category_names, \
general_category_names, \
script_names, \
open_output
# Open the output file (no return on failure). This call also writes standard
# header boilerplate.
f = open_output("pcre2_ucptables.c")
# The list in bidi_classes contains just the Unicode classes such as AN, LRE,
# etc., along with comments. We need to add "bidi" in front of each value, in
# order to create names that don't clash with other types of property.
bidi_class_names = []
for i in range(0, len(bidi_classes), 2):
bidi_class_names.append("bidi" + bidi_classes[i])
# Remove the comments from other lists that contain them.
category_names = category_names[::2]
# Create standardized versions of the names by lowercasing and removing
# underscores.
def stdname(x):
return x.lower().replace('_', '')
def stdnames(x):
y = [''] * len(x)
for i in range(len(x)):
y[i] = stdname(x[i])
return y
std_category_names = stdnames(category_names)
std_general_category_names = stdnames(general_category_names)
std_bidi_class_names = stdnames(bidi_class_names)
std_bool_properties = stdnames(bool_properties)
# Create the table, starting with the Unicode script, category and bidi class
# names. We keep both the standardized name and the original, because the
# latter is used for the ucp_xx names. NOTE: for the script abbreviations, we
# still use the full original names.
utt_table = []
scx_end = script_names.index('Unknown')
for idx, name in enumerate(script_names):
pt_type = 'PT_SCX' if idx < scx_end else 'PT_SC'
utt_table.append((stdname(name), name, pt_type))
for abbrev in abbreviations[name]:
utt_table.append((stdname(abbrev), name, pt_type))
# Add the remaining property lists
utt_table += list(zip(std_category_names, category_names, ['PT_PC'] * len(category_names)))
utt_table += list(zip(std_general_category_names, general_category_names, ['PT_GC'] * len(general_category_names)))
utt_table += list(zip(std_bidi_class_names, bidi_class_names, ['PT_BIDICL'] * len(bidi_class_names)))
for name in bool_properties:
utt_table.append((stdname(name), name, 'PT_BOOL'))
if name in abbreviations:
for abbrev in abbreviations[name]:
utt_table.append((stdname(abbrev), name, 'PT_BOOL'))
# Now add specials and synonyms. Note both the standardized and capitalized
# forms are needed.
utt_table.append(('any', 'Any', 'PT_ANY'))
utt_table.append(('l&', 'L&', 'PT_LAMP'))
utt_table.append(('lc', 'LC', 'PT_LAMP'))
utt_table.append(('xan', 'Xan', 'PT_ALNUM'))
utt_table.append(('xps', 'Xps', 'PT_PXSPACE'))
utt_table.append(('xsp', 'Xsp', 'PT_SPACE'))
utt_table.append(('xuc', 'Xuc', 'PT_UCNC'))
utt_table.append(('xwd', 'Xwd', 'PT_WORD'))
# Remove duplicates from the table and then sort it.
utt_table = list(set(utt_table))
utt_table.sort()
# Output file-specific heading
f.write("""\
#ifdef SUPPORT_UNICODE
/* The PRIV(utt)[] table below translates Unicode property names into type and
code values. It is searched by binary chop, so must be in collating sequence of
name. Originally, the table contained pointers to the name strings in the first
field of each entry. However, that leads to a large number of relocations when
a shared library is dynamically loaded. A significant reduction is made by
putting all the names into a single, large string and using offsets instead.
All letters are lower cased, and underscores are removed, in accordance with
the "loose matching" rules that Unicode advises and Perl uses. */
\n""")
# We have to use STR_ macros to define the strings so that it all works in
# UTF-8 mode on EBCDIC platforms.
for utt in utt_table:
f.write('#define STRING_%s0' % (utt[0].replace('&', '_AMPERSAND')))
for c in utt[0]:
if c == '&':
f.write(' STR_AMPERSAND')
else:
f.write(' STR_%s' % c);
f.write(' "\\0"\n')
# Output the long string of concatenated names
f.write('\nconst char PRIV(utt_names)[] =\n')
last = ''
for utt in utt_table:
if utt == utt_table[-1]:
last = ';'
f.write(' STRING_%s0%s\n' % (utt[0].replace('&', '_AMPERSAND'), last))
# Output the property type table
f.write('\nconst ucp_type_table PRIV(utt)[] = {\n')
offset = 0
last = ','
for utt in utt_table:
if utt[2] in ('PT_ANY', 'PT_LAMP', 'PT_ALNUM', 'PT_PXSPACE',
'PT_SPACE', 'PT_UCNC', 'PT_WORD'):
value = '0'
else:
value = 'ucp_' + utt[1]
if utt == utt_table[-1]:
last = ''
f.write(' { %3d, %s, %s }%s\n' % (offset, utt[2], value, last))
offset += len(utt[0]) + 1
f.write('};\n\n')
# Ending text
f.write("""\
const size_t PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table);
#endif /* SUPPORT_UNICODE */
/* End of pcre2_ucptables.c */
""")
f.close
# End

View File

@@ -0,0 +1,480 @@
#! /bin/sh
# This is a script for the use of PCRE2 maintainers. It configures and builds
# PCRE2 with a variety of configuration options, and in each case runs the
# tests to ensure that all goes well. Every possible combination would take far
# too long, so we use a representative sample. This script should be run in the
# PCRE2 source directory.
# While debugging, it is sometimes useful to be able to cut out some of the
# tests, in order to run those that are giving errors. The following options
# do this:
#
# -noasan skip the test that uses -fsanitize=address
# -nousan skip the test that uses -fsanitize=undefined
# -nodebug skip the test that uses --enable-debug
# -nojit skip all JIT tests
# -nojitmain skip non-valgrind JIT tests
# -nojitvalgrind skip JIT tests with valgrind
# -nomain skip all the main (non-JIT) set of tests
# -nomainvalgrind skip the main (non-JIT) valgrind tests
# -notmp skip the tests in a temporary directory
# -notmpjit skip the JIT test in a temporary directory
# -novalgrind skip all the valgrind tests
# Alternatively, if any of those names are given with '+' instead of '-no',
# only those groups named with '+' are run (e.g. +jit). If -dummy is given,
# no tests are actually run - this provides a means of testing the selectors.
# The -v option causes a call to 'pcre2test -C' to happen for each
# configuration.
useasan=1
useusan=1
usedebug=1
usejit=1
usejitvalgrind=1
usemain=1
usemainvalgrind=1
usetmp=1
usetmpjit=1
usevalgrind=1
dummy=0
seenplus=0
verbose=0
while [ $# -gt 0 ] ; do
case $1 in
+*) if [ $seenplus -eq 0 ]; then
useasan=0
useusan=0
usedebug=0
usejit=0
usejitvalgrind=0
usemain=0
usemainvalgrind=0
usetmp=0
usetmpjit=0
usevalgrind=0
seenplus=1
fi;;
esac
case $1 in
-dummy) dummy=1;;
-v) verbose=1;;
-noasan) useasan=0;;
-nousan) useusan=0;;
-nodebug) usedebug=0;;
-nojit) usejit=0; usejitvalgrind=0; usetmpjit=0;;
-nojitmain) usejit=0;;
-nojitvalgrind) usejitvalgrind=0;;
-nomain) usemain=0; usemainvalgrind=0;;
-nomainvalgrind) usemainvalgrind=0;;
-notmp) usetmp=0; usetmpjit=0;;
-notmpjit) usetmpjit=0;;
-novalgrind) usevalgrind=0;;
+asan) useasan=1;;
+usan) useusan=1;;
+debug) usedebug=1;;
+jit) usejit=1; usejitvalgrind=1; usetmpjit=1;;
+jitmain) usejit=1;;
+jitvalgrind) usejitvalgrind=1;;
+main) usemain=1; usemainvalgrind=1;;
+mainvalgrind) usemainvalgrind=1;;
+tmp) usetmp=1;;
+tmpjit) usetmpjit=1;;
+valgrind) usevalgrind=1; usejitvalgrind=1; usemainvalgrind=1;;
*) echo "Unknown option '$1'"; exit 1;;
esac
shift
done
if [ $usejitvalgrind -eq 0 -a $usemainvalgrind -eq 0 ] ; then
usevalgrind=0
fi
# This is in case the caller has set aliases (as I do - PH)
unset cp ls mv rm
# This is a temporary directory for testing out-of-line builds
tmp=/tmp/pcre2testing
# Don't bother with compiler optimization for most tests; it just slows down
# compilation a lot (and running the tests themselves is quick). However, one
# special test turns optimization on, because it can provoke some compiler
# warnings.
CFLAGS="-g"
OFLAGS="-O0"
CC="${CC:=cc}"
ISGCC=0
# If the compiler is gcc, add a lot of warning switches.
$CC --version >/tmp/pcre2ccversion 2>/dev/null
if [ $? -eq 0 ] && grep GCC /tmp/pcre2ccversion >/dev/null; then
ISGCC=1
CFLAGS="$CFLAGS -Wall"
CFLAGS="$CFLAGS -Wno-overlength-strings"
CFLAGS="$CFLAGS -Wpointer-arith"
CFLAGS="$CFLAGS -Wwrite-strings"
CFLAGS="$CFLAGS -Wundef -Wshadow"
CFLAGS="$CFLAGS -Wmissing-field-initializers"
CFLAGS="$CFLAGS -Wunused-parameter"
CFLAGS="$CFLAGS -Wextra -Wformat"
CFLAGS="$CFLAGS -Wbad-function-cast"
CFLAGS="$CFLAGS -Wmissing-declarations"
CFLAGS="$CFLAGS -Wnested-externs"
CFLAGS="$CFLAGS -pedantic"
CFLAGS="$CFLAGS -Wuninitialized"
CFLAGS="$CFLAGS -Wmaybe-uninitialized"
CFLAGS="$CFLAGS -Wmissing-prototypes"
CFLAGS="$CFLAGS -Wstrict-prototypes"
CFLAGS="$CFLAGS -Warray-bounds"
CFLAGS="$CFLAGS -Wformat-overflow=2"
fi
rm -f /tmp/pcre2ccversion
# This function runs a single test with the set of configuration options that
# are in $opts. The source directory must be set in srcdir. The function must
# be defined as "runtest()" not "function runtest()" in order to run on
# Solaris.
runtest()
{
rm -f $srcdir/pcre2test $srcdir/pcre2grep $srcdir/pcre2_jit_test $srcdir/pcre2posix_test
testcount=`expr $testcount + 1`
if [ "$opts" = "" ] ; then
echo "[$testcount/$testtotal] Configuring with: default settings"
else
echo "[$testcount/$testtotal] Configuring with:"
echo " $opts"
fi
if [ $dummy -eq 1 ]; then return; fi
CFLAGS="$CFLAGS" \
$srcdir/configure $opts >/dev/null 2>teststderrM
if [ $? -ne 0 ]; then
echo " "
echo "******** Error while configuring ********"
cat teststderrM
exit 1
fi
# There is an infelicity in the Autotools world (as of October 2015) which
# causes the message
#
# ar: `u' modifier ignored since `D' is the default (see `U')
#
# to be output while linking. This triggers an unwanted error report from this
# script, because it expects no stderr output while making. To get round this
# we filter the stderr output through sed, removing all occurrences of the
# above lines. Just for paranoia, check that sed is available before doing
# this.
echo "Making"
make -j >/dev/null 2>teststderrM
makeRC=$?
if command -v sed >/dev/null 2>&1 ; then
sed "/\`u' modifier ignored since \`D' is the default/ d" \
teststderrM > teststderrMM
mv -f teststderrMM teststderrM
fi
if [ $makeRC -ne 0 -o -s teststderrM ]; then
echo " "
echo "******** Errors or warnings while making ********"
echo " "
cat teststderrM
exit 1
fi
if [ $verbose -eq 1 ]; then
./pcre2test -C
fi
./pcre2test -C jit >/dev/null
jit=$?
./pcre2test -C pcre2-8 >/dev/null
pcre2_8=$?
echo "Running PCRE2 library tests $withvalgrind"
$srcdir/RunTest $valgrind >teststdoutM 2>teststderrM
if [ $? -ne 0 -o -s teststderrM ]; then
echo " "
echo "**** Test failed ****"
if [ -s teststderrM ] ; then
cat teststderrM
else
cat teststdoutM
fi
exit 1
fi
if [ $pcre2_8 -gt 0 ]; then
echo "Running pcre2grep tests $withvalgrind"
$srcdir/RunGrepTest $valgrind >teststdoutM 2>teststderrM
if [ $? -ne 0 -o -s teststderrM ]; then
echo " "
echo "**** Test failed ****"
cat teststderrM
cat teststdoutM
exit 1
fi
echo "Running pcre2posix test $withvalgrind"
$valgrind ./pcre2posix_test >teststdoutM 2>teststderrM
if [ $? -ne 0 ]; then
echo " "
echo "**** Test failed ****"
exit 1
fi
else
echo "Skipping pcre2grep and pcre2posix tests: 8-bit library not compiled"
fi
if [ "$jit" -gt 0 ]; then
echo "Running JIT regression tests $withvalgrind"
$jrvalgrind ./pcre2_jit_test >teststdoutM 2>teststderrM
if [ $? -ne 0 -o -s teststderrM ]; then
echo " "
echo "**** Test failed ****"
cat teststderrM
cat teststdoutM
exit 1
fi
else
echo "Skipping JIT regression tests: JIT is not enabled"
fi
}
# Update the total count whenever a new test is added; it is used to show
# progess as each test is run.
testtotal=`expr 17 \* $usemain + \
1 \* $usemain \* $usedebug + \
1 \* $usetmp + 1 \* $usetmpjit + \
1 \* $ISGCC \* $usemain + \
1 \* $ISGCC \* $usemain \* $useasan + \
1 \* $ISGCC \* $usemain \* $useusan + \
13 \* $usejit + \
2 \* $usemainvalgrind + \
2 \* $usejitvalgrind`
testcount=0
if [ $testtotal -eq 0 ] ; then
echo "** No tests selected"
exit 1
fi
valgrind=
jrvalgrind=
withvalgrind=
srcdir=.
export srcdir
if [ $usejit -ne 0 ]; then
enable_jit=--enable-jit
else
enable_jit=
fi
# If gcc is in use, run a maximally configured test with -O2, because that can
# throw up warnings that are not detected with -O0. Then run a second test with
# -fsanitize=address, which also may throw up new warnings as well as checking
# things at runtime. Finally, run another test using -fsanitize=undefined
# -std-gnu99 to check for runtime actions that are not well defined.
if [ $ISGCC -ne 0 -a $usemain -ne 0 ]; then
echo "---------- Maximally configured test with -O2 ----------"
SAVECFLAGS="$CFLAGS"
CFLAGS="-O2 $CFLAGS"
echo "CFLAGS=$CFLAGS"
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32"
runtest
if [ $useasan -ne 0 ]; then
echo "---------- Maximally configured test with -fsanitize=address ----------"
# Following a kernel change, sanitize address doesn't work unless the extra
# PIE options are also set.
CFLAGS="$OFLAGS $SAVECFLAGS -no-pie -fno-PIE -fsanitize=address"
echo "CFLAGS=$CFLAGS"
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32"
runtest
fi
# This also seems to be the case for sanitize undefined.
if [ $useusan -ne 0 ]; then
echo "------- Maximally configured test with -fsanitize=undefined -fno-sanitize=alignment -std=gnu99 -------"
CFLAGS="$OFLAGS $SAVECFLAGS -no-pie -fno-PIE -fsanitize=undefined -fno-sanitize=alignment -std=gnu99"
echo "CFLAGS=$CFLAGS"
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32"
runtest
fi
CFLAGS="$SAVECFLAGS"
fi
# This set of tests builds PCRE2 and runs the tests with a variety of configure
# options, in the current (source) directory. The empty configuration builds
# with all the default settings. As well as testing that these options work, we
# use --disable-shared or --disable-static except for the default test (which
# builds both) to save a bit of time by building only one version of the
# library for the subsequent tests.
echo "---------- CFLAGS for the remaining tests ----------"
CFLAGS="$OFLAGS $CFLAGS"
echo "CFLAGS=$CFLAGS"
if [ $usemain -ne 0 ]; then
if [ $usedebug -ne 0 ]; then
echo "---------- Maximally configured test with --enable-debug ----------"
opts="--disable-shared $enable_jit --enable-pcre2-16 --enable-pcre2-32 --enable-debug"
runtest
fi
echo "---------- Non-JIT tests in the current directory ----------"
for opts in \
"" \
"--disable-static" \
"--disable-shared" \
"--disable-unicode --disable-shared --enable-never-backslash-C" \
"--with-link-size=3 --disable-shared --disable-pcre2grep-callout" \
"--disable-unicode --enable-rebuild-chartables --disable-shared" \
"--disable-unicode --enable-newline-is-any --disable-shared" \
"--disable-unicode --enable-newline-is-cr --disable-shared" \
"--disable-unicode --enable-newline-is-crlf --disable-shared" \
"--disable-unicode --enable-newline-is-anycrlf --enable-bsr-anycrlf --disable-shared" \
"--enable-newline-is-any --disable-static" \
"--disable-unicode --enable-pcre2-16 --enable-debug" \
"--enable-pcre2-16 --disable-shared" \
"--disable-unicode --enable-pcre2-32" \
"--enable-pcre2-32 --disable-shared" \
"--disable-unicode --enable-pcre2-32 --enable-pcre2-16 --disable-shared" \
"--disable-unicode --enable-pcre2-32 --enable-pcre2-16 --disable-pcre2-8 --disable-shared"
do
runtest
done
fi
# Now run the JIT tests unless disabled
if [ $usejit -ne 0 ]; then
echo "---------- JIT tests in the current directory ----------"
for opts in \
"--disable-unicode --enable-jit --disable-shared" \
"--enable-jit --disable-shared" \
"--enable-jit --with-link-size=3 --disable-shared" \
"--enable-jit --enable-pcre2-16 --disable-shared" \
"--disable-unicode --enable-jit --enable-pcre2-16 --disable-pcre2-8 --disable-shared" \
"--enable-jit --enable-pcre2-16 --disable-pcre2-8 --disable-shared" \
"--enable-jit --enable-pcre2-16 --with-link-size=3 --disable-shared" \
"--enable-jit --enable-pcre2-16 --with-link-size=4 --disable-shared" \
"--enable-jit --enable-pcre2-32 --disable-shared" \
"--disable-unicode --enable-jit --enable-pcre2-32 --disable-pcre2-8 --disable-shared" \
"--enable-jit --enable-pcre2-32 --disable-pcre2-8 --disable-shared" \
"--enable-jit --enable-pcre2-32 --with-link-size=4 --disable-shared" \
"--enable-jit --enable-pcre2-32 --enable-pcre2-16 --disable-pcre2-8 --enable-newline-is-anycrlf --enable-bsr-anycrlf --disable-shared"
do
runtest
done
fi
# Now re-run some of the tests under valgrind.
if [ $usevalgrind -ne 0 ]; then
echo "---------- Tests in the current directory using valgrind ----------"
valgrind=valgrind
withvalgrind="with valgrind"
if [ $usemainvalgrind -ne 0 ]; then
for opts in \
"--disable-shared" \
"--with-link-size=3 --enable-pcre2-16 --enable-pcre2-32 --disable-shared"
do
opts="--enable-valgrind $opts"
runtest
done
fi
if [ $usejitvalgrind -ne 0 ]; then
jrvalgrind="valgrind --tool=memcheck -q --smc-check=all-non-file --suppressions=$srcdir/testdata/valgrind-jit.supp"
for opts in \
"--enable-jit --disable-shared" \
"--enable-jit --enable-pcre2-16 --enable-pcre2-32"
do
opts="--enable-valgrind $opts"
runtest
done
fi
fi
valgrind=
jrvalgrind=
withvalgrind=
# Clean up the distribution and then do at least one build and test in a
# directory other than the source directory. It doesn't work unless the
# source directory is cleaned up first.
if [ -f Makefile ]; then
echo "Running 'make distclean'"
make distclean >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo "** 'make distclean' failed"
exit 1
fi
fi
echo "---------- End of tests in the source directory ----------"
echo "Removing teststdoutM and teststderrM"
rm -rf teststdoutM teststderrM
if [ $usetmp -ne 0 -o $usetmpjit -ne 0 ]; then
srcdir=`pwd`
export srcdir
if [ ! -e $tmp ]; then
mkdir $tmp
fi
if [ ! -d $tmp ]; then
echo "** Failed to create $tmp or it is not a directory"
exit 1
fi
cd $tmp
if [ $? -ne 0 ]; then
echo "** Failed to cd to $tmp"
exit 1
fi
if [ $usetmp -ne 0 ]; then
echo "---------- Tests in the $tmp directory ----------"
for opts in \
"--disable-shared"
do
runtest
done
fi
if [ $usetmpjit -ne 0 ]; then
echo "---------- JIT tests in the $tmp directory ----------"
for opts in \
"--enable-jit --disable-shared"
do
runtest
done
fi
echo "Removing $tmp"
rm -rf $tmp
fi
echo "---------- All done ----------"
# End

View File

@@ -0,0 +1,330 @@
#! /bin/bash
# Script to prepare the files for building a PCRE2 release. It does some
# processing of the documentation and detrails files.
# You must run this script before runnning "make dist". If its first argument
# is "doc", it stops after preparing the documentation. There are no other
# arguments. The script makes use of the following files:
# 132html A Perl script that converts a .1 or .3 man page into HTML. It
# "knows" the relevant troff constructs that are used in the PCRE2
# man pages.
# CheckMan A Perl script that checks man pages for typos in the mark up.
# CleanTxt A Perl script that cleans up the output of "nroff -man" by
# removing backspaces and other redundant text so as to produce
# a readable .txt file.
# Detrail A Perl script that removes trailing spaces from files.
# doc/index.html.src
# A file that is copied as index.html into the doc/html directory
# when the HTML documentation is built. It works like this so that
# doc/html can be deleted and re-created from scratch.
# README & NON-AUTOTOOLS-BUILD
# These files are copied into the doc/html directory, with .txt
# extensions so that they can by hyperlinked from the HTML
# documentation, because some people just go to the HTML without
# looking for text files.
# Set the LANG to C, because nroff converts ASCII "HYPHEN-MINUS" to Unicode
# "HYPHEN" if the system is using a UTF-8 locale (like "C.UTF-8").
export LANG=C
# Extract the current release version from configure.ac.
CURRENT_RELEASE=`grep -E 'm4_define\(pcre2_(major|minor|prerelease)' configure.ac | \
grep -E -o '\[.*\]' | \
sed -E -e '1s/$/./' | \
tr -d '[]\n'`
# First, sort out the documentation. Remove pcre2demo.3 first because it won't
# pass the markup check (it is created below, using markup that none of the
# other pages use).
cd doc
echo Processing documentation
/bin/rm -f pcre2demo.3
# Check the remaining man pages
perl ../maint/CheckMan *.1 *.3
if [ $? != 0 ] ; then exit 1; fi
# Verify the version number in the man pages
for file in *.1 *.3 ; do
if ! grep -E ".TH.*\"PCRE2 $CURRENT_RELEASE\"" "$file" >/dev/null ; then
echo "Version number in $file does not match current release"
exit 1
fi
done
# Make Text form of the documentation. It needs some mangling to make it
# tidy for online reading. Concatenate all the .3 stuff, but omit the
# individual function pages.
cat <<End >pcre2.txt
-----------------------------------------------------------------------------
This file contains a concatenation of the PCRE2 man pages, converted to plain
text format for ease of searching with a text editor, or for use on systems
that do not have a man page processor. The small individual files that give
synopses of each function in the library have not been included. Neither has
the pcre2demo program. There are separate text files for the pcre2grep and
pcre2test commands.
-----------------------------------------------------------------------------
End
echo "Making pcre2.txt"
for file in pcre2 pcre2api pcre2build pcre2callout pcre2compat pcre2jit \
pcre2limits pcre2matching pcre2partial pcre2pattern pcre2perform \
pcre2posix pcre2sample pcre2serialize pcre2syntax \
pcre2unicode ; do
echo " Processing $file.3"
nroff -c -man $file.3 >$file.rawtxt
perl ../maint/CleanTxt <$file.rawtxt >>pcre2.txt
/bin/rm $file.rawtxt
echo "------------------------------------------------------------------------------" >>pcre2.txt
if [ "$file" != "pcre2sample" ] ; then
echo "" >>pcre2.txt
echo "" >>pcre2.txt
fi
done
# The three commands
for file in pcre2test pcre2grep pcre2-config ; do
echo Making $file.txt
nroff -c -man $file.1 >$file.rawtxt
perl ../maint/CleanTxt <$file.rawtxt >$file.txt
/bin/rm $file.rawtxt
done
# Make pcre2demo.3 from the pcre2demo.c source file
echo "Making pcre2demo.3"
perl <<"END" >pcre2demo.3
use Time::Piece;
open(VH, "<", "../src/config.h.generic") || die "Failed to open src/config.h.generic\n";
open(IN, "<", "../src/pcre2demo.c") || die "Failed to open src/pcre2demo.c\n";
open(OUT, ">", "pcre2demo.3") || die "Failed to open pcre2demo.3\n";
my $version;
while (<VH>)
{
chomp;
if ( /^#define PACKAGE_STRING "([^"]+)"/ ) { $version = $1 ; last }
}
my $t = `git log -n1 --date=format:"%d %B %Y" --format=%cd ../src/pcre2demo.c`;
chomp $t;
print OUT ".TH PCRE2DEMO 3 \"", $t, '" "', $version, "\"\n" .
".\\\"AUTOMATICALLY GENERATED BY PrepareRelease - do not EDIT!\n" .
".SH NAME\n" .
"PCRE2DEMO - A demonstration C program for PCRE2\n" .
".SH \"SOURCE CODE\"\n" .
".rs\n" .
".sp\n" .
".\\\" Start example.\n" .
".de EX\n" .
". do ds mF \\\\n[.fam]\n" .
". nr mE \\\\n(.f\n" .
". nf\n" .
". nh\n" .
". do fam C\n" .
". ft CW\n" .
"..\n" .
".\n" .
".\n" .
".\\\" End example.\n" .
".de EE\n" .
". do fam \\\\*(mF\n" .
". ft \\\\n(mE\n" .
". fi\n" .
". hy \\\\n(HY\n" .
"..\n" .
".\n" .
".RS -7\n" .
".EX\n" ;
while (<IN>)
{
s/\\/\\e/g;
print OUT;
}
print OUT ".EE\n";
close(IN);
close(OUT);
END
if [ $? != 0 ] ; then exit 1; fi
# Verify that `man` can process the pages without warnings.
for file in *.1 *.3 ; do
MAN_OUT=`MANROFFSEQ='' MANWIDTH=80 man --warnings=w,all -E UTF-8 -l -Tutf8 -Z "$file" 2>&1 >/dev/null`
if [ "$MAN_OUT" != "" ]; then
printf "Running man generated warnings:\n%s\n" "$MAN_OUT"
exit 1
fi
done
# Make HTML form of the documentation.
echo "Making HTML documentation"
/bin/rm html/*
cp index.html.src html/index.html
cp ../README html/README.txt
cp ../NON-AUTOTOOLS-BUILD html/NON-AUTOTOOLS-BUILD.txt
for file in *.1 ; do
base=`basename $file .1`
echo " Making $base.html"
perl ../maint/132html -toc $base <$file >html/$base.html
done
# Exclude table of contents for function summaries. It seems that expr
# forces an anchored regex. Also exclude them for small pages that have
# only one section.
for file in *.3 ; do
base=`basename $file .3`
toc=-toc
if [ `expr $base : '.*_'` -ne 0 ] ; then toc="" ; fi
if [ "$base" = "pcre2sample" ] || \
[ "$base" = "pcre2compat" ] || \
[ "$base" = "pcre2demo" ] || \
[ "$base" = "pcre2limits" ] || \
[ "$base" = "pcre2unicode" ] ; then
toc=""
fi
echo " Making $base.html"
perl ../maint/132html $toc $base <$file >html/$base.html
if [ $? != 0 ] ; then exit 1; fi
done
# End of documentation processing; stop if only documentation required.
cd ..
echo Documentation done
if [ "$1" = "doc" ] ; then exit; fi
# These files are detrailed; do not detrail the test data because there may be
# significant trailing spaces. Do not detrail RunTest.bat, because it has CRLF
# line endings and the detrail script removes all trailing white space. The
# configure files are also omitted from the detrailing.
txt_files=(
AUTHORS.md
BUILD.bazel
CMakeLists.txt
COPYING
ChangeLog
HACKING
INSTALL
LICENCE.md
MODULE.bazel
Makefile.am
NEWS
NON-AUTOTOOLS-BUILD
README
RunGrepTest
RunTest
SECURITY.md
WORKSPACE.bazel
build.zig
configure.ac
libpcre2-8.pc.in
libpcre2-16.pc.in
libpcre2-32.pc.in
libpcre2-posix.pc.in
pcre2-config.in
perltest.sh
cmake/COPYING-CMAKE-SCRIPTS
cmake/{*.cmake,*.cmake.in}
m4/ax_pthread.m4
m4/pcre2_visibility.m4
doc/p*
doc/html/*
)
crlf_files=(
RunGrepTest.bat
RunTest.bat
)
c_files=(
config-cmake.h.in
src/pcre2.h.in
src/pcre2_auto_possess.c
src/pcre2_chartables.c.dist
src/pcre2_chkdint.c
src/pcre2_compile.c
src/pcre2_compile.h
src/pcre2_compile_class.c
src/pcre2_config.c
src/pcre2_context.c
src/pcre2_convert.c
src/pcre2_dfa_match.c
src/pcre2_dftables.c
src/pcre2_error.c
src/pcre2_extuni.c
src/pcre2_find_bracket.c
src/pcre2_fuzzsupport.c
src/pcre2_internal.h
src/pcre2_intmodedep.h
src/pcre2_jit_char_inc.h
src/pcre2_jit_compile.c
src/pcre2_jit_match.c
src/pcre2_jit_misc.c
src/pcre2_jit_neon_inc.h
src/pcre2_jit_simd_inc.h
src/pcre2_jit_test.c
src/pcre2_maketables.c
src/pcre2_match.c
src/pcre2_match_data.c
src/pcre2_newline.c
src/pcre2_ord2utf.c
src/pcre2_pattern_info.c
src/pcre2_printint.c
src/pcre2_script_run.c
src/pcre2_serialize.c
src/pcre2_string_utils.c
src/pcre2_study.c
src/pcre2_substitute.c
src/pcre2_substring.c
src/pcre2_tables.c
src/pcre2_ucd.c
src/pcre2_ucp.h
src/pcre2_ucptables.c
src/pcre2_util.h
src/pcre2_valid_utf.c
src/pcre2_xclass.c
src/pcre2demo.c
src/pcre2grep.c
src/pcre2posix.c
src/pcre2posix.h
src/pcre2posix_test.c
src/pcre2test.c
)
echo Detrailing
perl maint/Detrail "${txt_files[@]}" "${c_files[@]}"
echo Validating all text
perl maint/CheckTxt "${files[@]}"
perl maint/CheckTxt -ascii "${c_files[@]}"
perl maint/CheckTxt -crlf "${crlf_files[@]}"
# Verify the version number in the Bazel file
if ! grep -E "version = \"$CURRENT_RELEASE\"" MODULE.bazel >/dev/null ; then
echo "Version number in MODULE.bazel does not match current release"
exit 1
fi
echo Done
#End

View File

@@ -0,0 +1,506 @@
MAINTENANCE README FOR PCRE2
============================
The files in the "maint" directory of the PCRE2 source contain data, scripts,
and programs that are used for the maintenance of PCRE2, but which do not form
part of the PCRE2 distribution tarballs. This document describes these files
and also contains some notes for maintainers. Its contents are:
Files in the maint directory
Updating to a new Unicode release
Preparing for a PCRE2 release
Making a PCRE2 release
Long-term ideas (wish list)
For a description of the way PCRE2 works, see the file called HACKING in the
top directory.
Files in the maint directory
============================
132html
A Perl script to convert man pages to HTML (.1 and .3 files "two" HTML),
used by PrepareRelease.
CheckMan
A Perl script to validate the syntax in PCRE2 man pages, used by
PrepareRelease.
CheckMan
A Perl script to clean up the nroff output in PCRE2 man pages, used by
PrepareRelease.
Detrail
A Perl script to remove trailing whitespace from PCRE2 files, used by
PrepareRelease.
GenerateCommon.py
A Python module containing data and functions that are used by the other
Generate scripts.
GenerateTest.py
A Python script that generates input and expected output test data for tests
26 or 27, which tests certain aspects of Unicode property support.
GenerateUcd.py
A Python script that generates the file pcre2_ucd.c from GenerateCommon.py
and Unicode data files, which are themselves downloaded from the Unicode web
site. The generated file contains the tables for a 2-stage lookup of Unicode
properties, along with some auxiliary tables. The script starts with a long
comment that gives details of the tables it constructs.
GenerateUcpHeader.py
A Python script that generates the file pcre2_ucp.h from GenerateCommon.py
and Unicode data files. The generated file defines constants for various
Unicode property values.
GenerateUcpTables.py
A Python script that generates the file pcre2_ucptables.c from
GenerateCommon.py and Unicode data files. The generated file contains tables
for looking up Unicode property names.
manifest-*
Data files used to verify the contents of the distribution tarball and
`make install` file lists.
ManyConfigTests
A shell script that runs "configure, make, test" a number of times with
different configuration settings.
PrepareRelease
A shell script to ensure that all auto-generated outputs are ready for
release.
pcre2_chartables.c.non-standard
This is a set of character tables that came from a Windows system. It has
characters greater than 128 that are set as spaces, amongst other things. I
kept it so that it can be used for testing from time to time.
README
This file.
RunManifestTest
RunManifestTest.ps1
Scripts to generate and verify a list of files against an expected 'manifest'
detailing what the directory should contain.
Unicode.tables
The files in this directory were downloaded from the Unicode web site. They
contain information about Unicode characters and scripts, and are used by the
Generate scripts. There is also UnicodeData.txt, which is no longer used by
any script, because it is useful occasionally for manually looking up the
details of certain characters. However, note that character names in this
file such as "Arabic sign sanah" do NOT mean that the character is in a
particular script (in this case, Arabic). Scripts.txt and
ScriptExtensions.txt are where to look for script information.
ucptest.c
A program for testing the Unicode property macros that do lookups in the
pcre2_ucd.c data, mainly useful after rebuilding the Unicode property tables.
Compile and run this in the "maint" directory (see comments at its head).
This program can also be used to find characters with specific properties and
to list which properties are supported.
ucptestdata
A directory containing four files, testinput{1,2} and testoutput{1,2}, for
use in conjunction with the ucptest program.
utf8.c
A short, freestanding C program for converting a Unicode code point into a
sequence of bytes in the UTF-8 encoding, and vice versa. If its argument is a
hex number such as 0x1234, it outputs a list of the equivalent UTF-8 bytes.
If its argument is a sequence of concatenated UTF-8 bytes (e.g. 12e188b4) it
treats them as a UTF-8 string and outputs the equivalent code points in hex.
See comments at its head for details.
Updating to a new Unicode release
=================================
When there is a new release of Unicode, the files in Unicode.tables must be
refreshed from the Unicode web site. Once that is done, the four Python scripts
that generate files from the Unicode data can be run from within the "maint"
directory. Note that the format used for those files is not stable, and
therefore changes to the scripts might be needed to support new versions.
Note: Previously, it was necessary to update lists of scripts and their
abbreviations by hand before running the Python scripts. This is no longer
necessary because the scripts have been upgraded to extract this information
themselves. Also, there used to be explicit lists of scripts in two of the man
pages. This is no longer the case; the pcre2test program can now output a list
of supported scripts, and the command to do so is part of the documentation.
You can give an output file name as an argument to the following scripts, but
by default:
GenerateUcd.py creates pcre2_ucd.c )
GenerateUcpHeader.py creates pcre2_ucp.h ) in the current directory
GenerateUcpTables.py creates pcre2_ucptables.c )
These files can be compared against the existing versions in the src directory
to check on any changes before replacing the old files, but you can also
generate directly into the final location by running:
./GenerateUcd.py ../src/pcre2_ucd.c
./GenerateUcpHeader.py ../src/pcre2_ucp.h
./GenerateUcpTables.py ../src/pcre2_ucptables.c
Once the .c and .h files are in the ../src directory, the ucptest program can
be compiled and used to check that the new tables work properly. The data files
in ucptestdata are set up to check a number of test characters. See the
comments at the start of ucptest.c. Depending of the type of changes, adding
tests for new scripts, properties or characters to the files in ucptestdata
is recommended. Make sure to regenerate and validate the output files after.
Finally, you should run the GenerateTest.py script to regenerate new versions
of the input and expected output from a series of Unicode property tests that
are automatically generated from the Unicode data files. By default, the files
are written to testinput and testoutput in the current directory, but they
should be moved to replace the files inside the main testdata directory and
that are being used for tests 27 or 26.
In summary:
```
./GenerateUcd.py ../src/pcre2_ucd.c
./GenerateUcpHeader.py ../src/pcre2_ucp.h
./GenerateUcpTables.py ../src/pcre2_ucptables.c
./GenerateTest.py
mv testinput ../testdata/testinput27
mv testoutput ../testdata/testoutput27
...compile ucptest.c
for i in 1 2; do
./ucptest < ucptestdata/testinput$i > testoutput$i
diff -U3 testoutput$i ucptestdata/testoutput$i
done
```
Preparing for a PCRE2 release
=============================
This section contains a checklist of things that I (PH) do before building a
new release.
. Ensure that the version number and version date are correct in configure.ac.
. Update the library version numbers in configure.ac according to the rules
given below.
. If new build options or new source files have been added, ensure that they
are added to the CMake files as well as to the autoconf files. The relevant
files are CMakeLists.txt and config-cmake.h.in. After making a release, test
it out with CMake if there have been changes here.
. Run ./autogen.sh to ensure everything is up-to-date.
. Run the script maint/ManyConfigTests. This compiles and runs the tests for
many different sets of configuration options, some with valgrind. It can take
quite a long time.
. Run tests in both 32-bit and 64-bit environments if possible. I can no longer
run 32-bit tests.
. Run tests with two or more different compilers (e.g. clang and gcc), and make
use of -fsanitize=address and friends where possible. For gcc,
-fsanitize=undefined -std=gnu99 picks up undefined behaviour at runtime. For
clang, -fsanitize=address,undefined,integer can be used but an exception is
needed to allow XCLASS with very large ranges in the 32-bit library so it
should be followed by -fno-sanitize=unsigned-shift-base, additionally
-fno-sanitize=unsigned-integer-overflow must be added when compiling with
JIT. Newer versions of clang also need -fno-sanitize=function, at least
until pcre2test stops using generic pointers on its callbacks. Another
useful clang option is -fsanitize=signed-integer-overflow but that should
be already included if using "integer".
. Do a test build using CMake. Remove src/config.h first, lest it override the
version that CMake creates. Also ensure there is no leftover CMakeCache.txt
in the directory you are testing in.
. Remove the CMake cache and then check that a CMake unity build works:
[c]cmake -DCMAKE_UNITY_BUILD=ON sets up a unity build.
. Run perltest.sh on the test data for tests 1 and 4. The output should match
the PCRE2 test output, apart from the version identification at the start of
each test. Sometimes there are other differences in test 4 if PCRE2 and Perl
are using different Unicode releases. The other tests are not Perl-compatible
(they use various PCRE2-specific features or options). The maint/RunPerlTest
shell script can be used to do this testing in Unix-like environment.
. It is possible to test with the emulated memmove() function by undefining
HAVE_MEMMOVE and HAVE_BCOPY in config.h, though I do not do this often.
. Documentation: check AUTHORS, ChangeLog (check version and date), LICENCE,
NEWS (check version and date), NON-AUTOTOOLS-BUILD, and README. Many of these
won't need changing, but over the long term things do change.
. I used to test new releases myself on a number of different operating
systems. For example, on Solaris it is helpful to test using Sun's cc
compiler as a change from gcc. Adding -m64 to the cc options does a 64-bit
build. Since I retired I can no longer do much of this. There are automated
tests under Ubuntu, Alpine, macOS and Windows that are now set up as GitHub
actions. Check that they are running clean.
. The buildbots at http://buildfarm.opencsw.org/ do some automated testing
of PCRE2 and should also be checked before putting out a release. (June 2024:
I am not sure these are currently working properly.)
Updating version info for libtool
=================================
This set of rules for updating library version information came from a web page
whose URL I have forgotten. The version information consists of three parts:
(current, revision, age).
1. Start with version information of 0:0:0 for each libtool library.
2. Update the version information only immediately before a public release of
your software. More frequent updates are unnecessary, and only guarantee
that the current interface number gets larger faster.
3. If the library source code has changed at all since the last update, then
increment revision; c:r:a becomes c:r+1:a.
4. If any interfaces have been added, removed, or changed since the last
update, increment current, and set revision to 0.
5. If any interfaces have been added since the last public release, then
increment age.
6. If any interfaces have been removed or changed since the last public
release, then set age to 0.
The following explanation may help in understanding the above rules a bit
better. Consider that there are three possible kinds of reaction from users to
changes in a shared library:
1. Programs using the previous version may use the new version as a drop-in
replacement, and programs using the new version can also work with the
previous one. In other words, no recompiling nor relinking is needed. In
this case, increment revision only, don't touch current or age.
2. Programs using the previous version may use the new version as a drop-in
replacement, but programs using the new version may use APIs not present in
the previous one. In other words, a program linking against the new version
may fail if linked against the old version at run time. In this case, set
revision to 0, increment current and age.
3. Programs may need to be changed, recompiled, relinked in order to use the
new version. Increment current, set revision and age to 0.
Making a PCRE2 release
======================
Run PrepareRelease and commit the files that it changes. The first thing this
script does is to run CheckMan on the man pages; if it finds any markup errors,
it reports them and then aborts. Otherwise it removes trailing spaces from
sources and refreshes the HTML documentation. Update the GitHub repository.
Once PrepareRelease has run clean, run "make distcheck" to create the tarballs
and the zipball. I then sign these files. Double-check with "git status" that
the repository is fully up-to-date, then create a new tag and a release on
GitHub. Upload the tarballs, zipball, and the signatures as "assets" of the
GitHub release.
Future ideas (wish list)
========================
This section records a list of ideas so that they do not get forgotten. They
vary enormously in their usefulness and potential for implementation. Some are
very sensible; some are rather wacky. Some have been on this list for many
years.
. Optimization
There are always ideas for new optimizations so as to speed up pattern
matching. Most of them try to save work by recognizing a non-match without
having to scan all the possibilities. These are some that I've recorded:
* /((A{0,5}){0,5}){0,5}(something complex)/ on a non-matching string is very
slow, though Perl is fast. Can we speed up somehow? Convert to {0,125}?
OTOH, this is pathological - the user could easily fix it.
* Turn ={4} into ==== ? (for speed). I once did an experiment, and it seems
to have little effect, and maybe makes things worse.
* "Ends with literal string" - note that a single character doesn't gain much
over the existing "required code unit" feature that just remembers one code
unit.
* Remember an initial string rather than just 1 code unit.
* A required code unit from alternatives - not just the last unit, but an
earlier one if common to all alternatives.
* Friedl contains other ideas.
* The code does not set initial code unit flags for Unicode property types
such as \p; I don't know how much benefit there would be for, for example,
setting the bits for 0-9 and all values >= xC0 (in 8-bit mode) when a
pattern starts with \p{N}.
. Perl and PCRE2 sometimes differ in the settings of capturing subpatterns
inside repeats. One example of the difference is the matching of
/(main(O)?)+/ against mainOmain, where PCRE2 leaves $2 set. In Perl, it's
unset. Changing this in PCRE2 will be very hard because I think it needs much
more state to be remembered.
. A feature to suspend a match via a callout was once requested.
. An option to convert results into character offsets and character lengths.
. A (non-Unix) user wanted pcregrep options to (a) list a file name just once,
preceded by a blank line, instead of adding it to every matched line, and (b)
support --outputfile=name.
. Define a union for the results from pcre2_pattern_info().
. Provide a "random access to the subject" facility so that the way in which it
is stored is independent of PCRE2. For efficiency, it probably isn't possible
to switch this dynamically. It would have to be specified when PCRE2 was
compiled. PCRE2 would then call a function every time it wanted a character.
. pcre2grep: add -rs for a sorted recurse. Having to store file names and sort
them will of course slow it down.
. Someone suggested --disable-callout to save code space when callouts are
never wanted. This seems rather marginal.
. A user suggested a parameter to limit the length of string matched, for
example if the parameter is N, the current match should fail if the matched
substring exceeds N. This could apply to both match functions. The value
could be a new field in the match context. Compare the offset_limit feature,
which limits where a match must start.
. Write a function that generates random matching strings for a compiled
pattern.
. Pcre2grep: an option to specify the output line separator, either as a string
or select from a fixed list. This is not straightforward, because at the
moment it outputs whatever is in the input file.
. Improve the code for duplicate checking in pcre2_dfa_match(). An incomplete,
non-thread-safe patch showed that this can help performance for patterns
where there are many alternatives. However, a simple thread-safe
implementation that I tried made things worse in many simple cases, so this
is not an obviously good thing.
. PCRE2 cannot at present distinguish between subpatterns with different names,
but the same number (created by the use of ?|). In order to do so, a way of
remembering *which* subpattern numbered n matched is needed. (*MARK) can
perhaps be used as a way round this problem. However, note that Perl does not
distinguish: like PCRE2, a name is just an alias for a number in Perl.
. Instead of having #ifdef HAVE_CONFIG_H in each module, put #include
"something" and the the #ifdef appears only in one place, in "something".
. Implement something like (?(R2+)... to check outer recursions.
. If Perl ever supports the POSIX notation [[.something.]] PCRE2 should try
to follow.
. A user wanted a way of ignoring all Unicode "mark" characters so that, for
example "a" followed by an accent would, together, match "a". This can only
be done clumsily at present by using a lookahead such as /(?=a)\X/, which
works for "combining" characters.
. Perl supports [\N{x}-\N{y}] as a Unicode range, even in EBCDIC. PCRE2
supports \N{U+dd..} everywhere, but not in EBCDIC.
. Unicode stuff from Perl:
\b{gcb} or \b{g} grapheme cluster boundary
\b{sb} sentence boundary
\b{wb} word boundary
See Unicode TR 29. The last two are very much aimed at natural language.
. Allow a callout to specify a number of characters to skip. This can be done
compatibly via an extra callout field.
. Allow callouts to return *PRUNE, *COMMIT, *THEN, *SKIP, with and without
continuing (that is, with and without an implied *FAIL). A new option,
PCRE2_CALLOUT_EXTENDED say, would be needed. This is unlikely ever to be
implemented by JIT, so this could be an option for pcre2_match().
. A limit on substitutions: a user suggested somehow finding a way of making
match_limit apply to the whole operation instead of each match separately.
. Some #defines could be replaced with enums to improve robustness.
. There was a request for an option for pcre2_match() to return the longest
match. This would mean searching for all possible matches, of course.
. A neater way of handling recursion file names in pcre2grep, e.g. a single
buffer that can grow. See also GitHub issue #2 (recursion looping via
symlinks).
. A user suggested that before/after parameters in pcre2grep could have
negative values, to list lines near to the matched line, but not necessarily
the line itself. For example, --before-context=-1 would list the line *after*
each matched line, without showing the matched line. The problem here is what
to do with matches that are close together. Maybe a simpler way would be a
flag to disable showing matched lines, only valid with either -A or -B?
. There was a suggestion for a pcre2grep colour default, or possibly a more
general PCRE2GREP_OPT, but only for some options - not file names or patterns.
. Breaking loops that match an empty string: perhaps find a way of continuing
if *something* has changed, but this might mean remembering additional data.
"Something" could be a capture value, but then a list of previous values
would be needed to avoid a cycle of changes.
. If a function could be written to find 3-character (or other length) fixed
strings, at least one of which must be present for a match, efficient
pre-searching of large datasets could be implemented.
. If pcre2grep had --first-line (match only in the first line) it could be
efficiently used to find files "starting with xxx". What about --last-line?
There was also the suggestion of an option for pcre2grep to scan only the
start of a file. I am not keen - this is the job of "head".
. A user requested a means of determining whether a failed match was failed by
the start-of-match optimizations, or by running the match engine. Easy enough
to define a bit in the match data, but all three matchers would need work.
. Would inlining "simple" recursions provide a useful performance boost for the
interpreters? JIT already does some of this, but it may not be worth it for
the interpreters.
. Redesign handling of class/nclass/xclass because the compile code logic is
currently very contorted and obscure. Also there was a request for a way of
re-defining \w (and therefore \W, \b, and \B). An in-pattern sequence such as
(?w=[...]) was suggested. Easiest way would be simply to inline the class,
with lookarounds for \b and \B. Ideally the setting should last till the end
of the group, which means remembering all previous settings; maybe a fixed
amount of stack would do - how deep would anyone want to nest these things?
. A user suggested something like --with-build-info to set a build information
string that could be retrieved by pcre2_config(). However, there's no
facility for a length limit in pcre2_config(), and what would be the
encoding?
. Quantified groups with a fixed count currently operate by replicating the
group in the compiled bytecode. This may not really matter in these days of
gigabyte memory, but perhaps another implementation might be considered.
Needs coordination between the interpreters and JIT.
. The POSIX interface is no longer POSIX compatible, because regoff_t is still
defined as an int.
. The POSIX interface is not thread safe because it modifies a pcre2_match
inside its regex_t while doing matching. A thread safe version that uses
a thread local object has been proposed but it will require that the code
requires at least C11 compatibility.
. See also any suggestions in the GitHub issues.
Philip Hazel
Email local part: Philip.Hazel
Email domain: gmail.com
Last updated: 22 August 2024

View File

@@ -0,0 +1,47 @@
#! /bin/sh
# Script to test a directory listing. We use this to verify that the list of
# files installed by "make install" or "cmake --install" matches what we expect.
LANG=C # Ensure stable ordering of `sort` output
export LANG
if [ "$1" = "" -o "$2" = "" ] ; then
echo "Usage: $0 <dir> <manifest name>" >&2
exit 1
fi
input_dir="$1"
expected_manifest="$2"
base=`basename $expected_manifest`
sed=sed
grep=grep
# Helpers for Solaris
if [ -f /usr/bin/gsed ] ; then
sed=/usr/bin/gsed
fi
if [ -f /usr/bin/ggrep ] ; then
grep=/usr/bin/ggrep
fi
find "$input_dir" -print | \
sort | \
xargs -n1 -- ls -l -d -n | \
$sed -E -e 's/ {2,}/ /g' | \
cut -d' ' -f '1,9-' \
> "$base"
if ! diff -u "$expected_manifest" "$base"; then
echo "Installed files differ from expected" >&2
echo "===Actual===" >&2
cat "$base" >&2
echo "===End===" >&2
exit 1
fi
echo "Installed files match expected"
rm -f "$base"

View File

@@ -0,0 +1,36 @@
# Script to test a directory listing. We use this to verify that the list of
# files installed by "make install" or "cmake --install" matches what we expect.
param (
[Parameter(Mandatory=$true)]
[string]$inputDir,
[Parameter(Mandatory=$true)]
[string]$manifestName
)
if ((-not $inputDir) -or (-not $manifestName)) {
throw "Usage: .\RunManifestTest.ps1 <dir> <manifest name>"
}
$base = [System.IO.Path]::GetFileName($manifestName)
$installedFiles = Get-ChildItem -Recurse -Force -Path $inputDir |
Sort-Object {[System.BitConverter]::ToString([system.Text.Encoding]::UTF8.GetBytes($_.FullName))} |
ForEach-Object { $_.Mode.Substring(0,5) + " " + ($_.FullName | Resolve-Path -Relative) }
$null = New-Item -Force $base -Value (($installedFiles | Out-String) -replace "`r`n", "`n")
$expectedFiles = Get-Content -Path $manifestName -Raw
$actualFiles = Get-Content -Path $base -Raw
if ($expectedFiles -ne $actualFiles) {
Write-Host "===Actual==="
Write-Host $actualFiles
Write-Host "===End==="
throw "Installed files differ from expected"
}
Write-Host "Installed files match expected"
Remove-Item -Path $base -Force

View File

@@ -0,0 +1,90 @@
#! /bin/sh
# Script to run the Perl-compatible PCRE2 tests through Perl. For testing
# with different versions of Perl, if the first argument is "-perl" then the
# second is taken as the Perl command to use, and both are then removed.
#
# The argument can be the number of the specific Perl compatible test to run
# (ex: "1", "4", "26" or "27"), otherwise it runs all tests and returns at
# exit, the test number with an incorrect output or the test number plus 32
# if it failed to run completely. It returns with 0 on success.
# This script should be run with the main PCRE2 directory current.
if [ "$1" = "-perl" ]; then
PERL="$2"
ARGS="$1 $PERL"
shift 2
else
PERL=perl
ARGS=""
fi
RC=0
if [ -z "$1" ] || [ "$1" = "1" ]; then
echo "-----------------------------------------------------------------"
echo "Perl test: main functionality (PCRE2 test 1)"
if ./perltest.sh $ARGS testdata/testinput1 testtry; then
tail -n +2 testtry > testtry2
diff -u testdata/testoutput1 testtry2 || RC=1
/bin/rm -rf testtry2
else
RC=33
fi
echo ""
fi
if [ -z "$1" ] || [ "$1" = "4" ]; then
echo "-----------------------------------------------------------------"
echo "Perl test: UTF-8 and Unicode property features (PCRE2 test 4)"
if ./perltest.sh $ARGS -utf8 testdata/testinput4 testtry; then
tail -n +2 testtry > testtry2
diff -u testdata/testoutput4 testtry2 || RC=4
/bin/rm -rf testtry2
else
RC=36
fi
echo ""
fi
P=$($PERL -MUnicode::UCD -e 'print Unicode::UCD::UnicodeVersion, "\n"')
if [ -z "$1" ] || [ "$1" = "26" ]; then
echo "-----------------------------------------------------------------"
echo "Perl test: Unicode property tests (PCRE2 test 26)"
U=$(head -5 testdata/testinput26 | $PERL -ne 'print "$1\n" if /tests for version ([\d.]+)$/')
if [ "$U" != "$P" ]; then
echo "SKIPPED: Perl uses Unicode $P but version $U was expected"
else
if ./perltest.sh $ARGS testdata/testinput26 testtry; then
tail -n +2 testtry > testtry2
diff -u testdata/testoutput26 testtry2 || RC=26
/bin/rm -rf testtry2
else
RC=58
fi
echo ""
fi
fi
if [ -z "$1" ] || [ "$1" = "27" ]; then
echo "-----------------------------------------------------------------"
echo "Perl test: Unicode property tests (PCRE2 test 27)"
U=$(head -5 testdata/testinput27 | $PERL -ne 'print "$1\n" if /tests for version ([\d.]+)$/')
if [ "$U" != "$P" ]; then
echo "SKIPPED: Perl uses Unicode $P but version $U was expected"
else
if ./perltest.sh $ARGS testdata/testinput27 testtry; then
tail -n +2 testtry > testtry2
diff -u testdata/testoutput27 testtry2 || RC=27
/bin/rm -rf testtry2
else
RC=59
fi
echo ""
fi
fi
exit $RC
# End

View File

@@ -0,0 +1,636 @@
# BidiMirroring-16.0.0.txt
# Date: 2024-01-30
# © 2024 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
#
# Bidi_Mirroring_Glyph Property
#
# This file is an informative contributory data file in the
# Unicode Character Database.
#
# This data file lists characters that have the Bidi_Mirrored=Yes property
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
# The repertoire covered by the file is Unicode 16.0.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
# Note that for "real" mirroring, a rendering engine needs to select
# appropriate alternative glyphs, and that many Unicode characters do not
# have a mirror-image Unicode character.
#
# Each mapping line contains two fields, separated by a semicolon (';').
# Each of the two fields contains a code point represented as a
# variable-length hexadecimal value with 4 to 6 digits.
# A comment indicates where the characters are "BEST FIT" mirroring.
#
# Code points for which Bidi_Mirrored=Yes, but for which no appropriate
# characters exist with mirrored glyphs, are
# listed as comments at the end of the file.
#
# Formally, the default value of the Bidi_Mirroring_Glyph property
# for each code point is <none>, unless a mapping to
# some other character is specified in this data file. When a code
# point has the default value for the Bidi_Mirroring_Glyph property,
# that means that no other character exists whose glyph is suitable
# for character-based mirroring.
#
# For information on bidi mirroring, see UAX #9: Unicode Bidirectional Algorithm,
# at https://www.unicode.org/reports/tr9/
#
# This file was originally created by Markus Scherer.
# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
# and for subsequent versions by Ken Whistler, Laurentiu Iancu, Roozbeh Pournader,
# and Robin Leroy.
#
# Historical and Compatibility Information:
#
# The OpenType Mirroring Pairs List (OMPL) is frozen to match the
# Unicode 5.1 version of the Bidi_Mirroring_Glyph property (2008).
# See https://www.microsoft.com/typography/otspec/ompl.txt
#
# The Unicode 6.1 version of the Bidi_Mirroring_Glyph property (2011)
# added one mirroring pair: 27CB <--> 27CD.
#
# The Unicode 11.0 version of the Bidi_Mirroring_Glyph property (2018)
# underwent a substantial revision, to formally recognize all of the
# exact mirroring pairs and "BEST FIT" mirroring pairs that had been
# added after the freezing of the OMPL list. As a result, starting
# with Unicode 11.0, the bmg mapping values more accurately reflect
# the current status of glyphs for Bidi_Mirrored characters in
# the Unicode Standard, but this listing now extends significantly
# beyond the frozen OMPL list. Implementers should be aware of this
# intentional distinction.
#
# ############################################################
#
# Property: Bidi_Mirroring_Glyph
#
# @missing: 0000..10FFFF; <none>
0028; 0029 # LEFT PARENTHESIS
0029; 0028 # RIGHT PARENTHESIS
003C; 003E # LESS-THAN SIGN
003E; 003C # GREATER-THAN SIGN
005B; 005D # LEFT SQUARE BRACKET
005D; 005B # RIGHT SQUARE BRACKET
007B; 007D # LEFT CURLY BRACKET
007D; 007B # RIGHT CURLY BRACKET
00AB; 00BB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
00BB; 00AB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0F3A; 0F3B # TIBETAN MARK GUG RTAGS GYON
0F3B; 0F3A # TIBETAN MARK GUG RTAGS GYAS
0F3C; 0F3D # TIBETAN MARK ANG KHANG GYON
0F3D; 0F3C # TIBETAN MARK ANG KHANG GYAS
169B; 169C # OGHAM FEATHER MARK
169C; 169B # OGHAM REVERSED FEATHER MARK
2039; 203A # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
203A; 2039 # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
2045; 2046 # LEFT SQUARE BRACKET WITH QUILL
2046; 2045 # RIGHT SQUARE BRACKET WITH QUILL
207D; 207E # SUPERSCRIPT LEFT PARENTHESIS
207E; 207D # SUPERSCRIPT RIGHT PARENTHESIS
208D; 208E # SUBSCRIPT LEFT PARENTHESIS
208E; 208D # SUBSCRIPT RIGHT PARENTHESIS
2208; 220B # ELEMENT OF
2209; 220C # [BEST FIT] NOT AN ELEMENT OF
220A; 220D # SMALL ELEMENT OF
220B; 2208 # CONTAINS AS MEMBER
220C; 2209 # [BEST FIT] DOES NOT CONTAIN AS MEMBER
220D; 220A # SMALL CONTAINS AS MEMBER
2215; 29F5 # DIVISION SLASH
221F; 2BFE # RIGHT ANGLE
2220; 29A3 # ANGLE
2221; 299B # MEASURED ANGLE
2222; 29A0 # SPHERICAL ANGLE
2224; 2AEE # DOES NOT DIVIDE
223C; 223D # TILDE OPERATOR
223D; 223C # REVERSED TILDE
2243; 22CD # ASYMPTOTICALLY EQUAL TO
2245; 224C # APPROXIMATELY EQUAL TO
224C; 2245 # ALL EQUAL TO
2252; 2253 # APPROXIMATELY EQUAL TO OR THE IMAGE OF
2253; 2252 # IMAGE OF OR APPROXIMATELY EQUAL TO
2254; 2255 # COLON EQUALS
2255; 2254 # EQUALS COLON
2264; 2265 # LESS-THAN OR EQUAL TO
2265; 2264 # GREATER-THAN OR EQUAL TO
2266; 2267 # LESS-THAN OVER EQUAL TO
2267; 2266 # GREATER-THAN OVER EQUAL TO
2268; 2269 # [BEST FIT] LESS-THAN BUT NOT EQUAL TO
2269; 2268 # [BEST FIT] GREATER-THAN BUT NOT EQUAL TO
226A; 226B # MUCH LESS-THAN
226B; 226A # MUCH GREATER-THAN
226E; 226F # [BEST FIT] NOT LESS-THAN
226F; 226E # [BEST FIT] NOT GREATER-THAN
2270; 2271 # [BEST FIT] NEITHER LESS-THAN NOR EQUAL TO
2271; 2270 # [BEST FIT] NEITHER GREATER-THAN NOR EQUAL TO
2272; 2273 # [BEST FIT] LESS-THAN OR EQUIVALENT TO
2273; 2272 # [BEST FIT] GREATER-THAN OR EQUIVALENT TO
2274; 2275 # [BEST FIT] NEITHER LESS-THAN NOR EQUIVALENT TO
2275; 2274 # [BEST FIT] NEITHER GREATER-THAN NOR EQUIVALENT TO
2276; 2277 # LESS-THAN OR GREATER-THAN
2277; 2276 # GREATER-THAN OR LESS-THAN
2278; 2279 # [BEST FIT] NEITHER LESS-THAN NOR GREATER-THAN
2279; 2278 # [BEST FIT] NEITHER GREATER-THAN NOR LESS-THAN
227A; 227B # PRECEDES
227B; 227A # SUCCEEDS
227C; 227D # PRECEDES OR EQUAL TO
227D; 227C # SUCCEEDS OR EQUAL TO
227E; 227F # [BEST FIT] PRECEDES OR EQUIVALENT TO
227F; 227E # [BEST FIT] SUCCEEDS OR EQUIVALENT TO
2280; 2281 # [BEST FIT] DOES NOT PRECEDE
2281; 2280 # [BEST FIT] DOES NOT SUCCEED
2282; 2283 # SUBSET OF
2283; 2282 # SUPERSET OF
2284; 2285 # [BEST FIT] NOT A SUBSET OF
2285; 2284 # [BEST FIT] NOT A SUPERSET OF
2286; 2287 # SUBSET OF OR EQUAL TO
2287; 2286 # SUPERSET OF OR EQUAL TO
2288; 2289 # [BEST FIT] NEITHER A SUBSET OF NOR EQUAL TO
2289; 2288 # [BEST FIT] NEITHER A SUPERSET OF NOR EQUAL TO
228A; 228B # [BEST FIT] SUBSET OF WITH NOT EQUAL TO
228B; 228A # [BEST FIT] SUPERSET OF WITH NOT EQUAL TO
228F; 2290 # SQUARE IMAGE OF
2290; 228F # SQUARE ORIGINAL OF
2291; 2292 # SQUARE IMAGE OF OR EQUAL TO
2292; 2291 # SQUARE ORIGINAL OF OR EQUAL TO
2298; 29B8 # CIRCLED DIVISION SLASH
22A2; 22A3 # RIGHT TACK
22A3; 22A2 # LEFT TACK
22A6; 2ADE # ASSERTION
22A8; 2AE4 # TRUE
22A9; 2AE3 # FORCES
22AB; 2AE5 # DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
22B0; 22B1 # PRECEDES UNDER RELATION
22B1; 22B0 # SUCCEEDS UNDER RELATION
22B2; 22B3 # NORMAL SUBGROUP OF
22B3; 22B2 # CONTAINS AS NORMAL SUBGROUP
22B4; 22B5 # NORMAL SUBGROUP OF OR EQUAL TO
22B5; 22B4 # CONTAINS AS NORMAL SUBGROUP OR EQUAL TO
22B6; 22B7 # ORIGINAL OF
22B7; 22B6 # IMAGE OF
22B8; 27DC # MULTIMAP
22C9; 22CA # LEFT NORMAL FACTOR SEMIDIRECT PRODUCT
22CA; 22C9 # RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT
22CB; 22CC # LEFT SEMIDIRECT PRODUCT
22CC; 22CB # RIGHT SEMIDIRECT PRODUCT
22CD; 2243 # REVERSED TILDE EQUALS
22D0; 22D1 # DOUBLE SUBSET
22D1; 22D0 # DOUBLE SUPERSET
22D6; 22D7 # LESS-THAN WITH DOT
22D7; 22D6 # GREATER-THAN WITH DOT
22D8; 22D9 # VERY MUCH LESS-THAN
22D9; 22D8 # VERY MUCH GREATER-THAN
22DA; 22DB # LESS-THAN EQUAL TO OR GREATER-THAN
22DB; 22DA # GREATER-THAN EQUAL TO OR LESS-THAN
22DC; 22DD # EQUAL TO OR LESS-THAN
22DD; 22DC # EQUAL TO OR GREATER-THAN
22DE; 22DF # EQUAL TO OR PRECEDES
22DF; 22DE # EQUAL TO OR SUCCEEDS
22E0; 22E1 # [BEST FIT] DOES NOT PRECEDE OR EQUAL
22E1; 22E0 # [BEST FIT] DOES NOT SUCCEED OR EQUAL
22E2; 22E3 # [BEST FIT] NOT SQUARE IMAGE OF OR EQUAL TO
22E3; 22E2 # [BEST FIT] NOT SQUARE ORIGINAL OF OR EQUAL TO
22E4; 22E5 # [BEST FIT] SQUARE IMAGE OF OR NOT EQUAL TO
22E5; 22E4 # [BEST FIT] SQUARE ORIGINAL OF OR NOT EQUAL TO
22E6; 22E7 # [BEST FIT] LESS-THAN BUT NOT EQUIVALENT TO
22E7; 22E6 # [BEST FIT] GREATER-THAN BUT NOT EQUIVALENT TO
22E8; 22E9 # [BEST FIT] PRECEDES BUT NOT EQUIVALENT TO
22E9; 22E8 # [BEST FIT] SUCCEEDS BUT NOT EQUIVALENT TO
22EA; 22EB # [BEST FIT] NOT NORMAL SUBGROUP OF
22EB; 22EA # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP
22EC; 22ED # [BEST FIT] NOT NORMAL SUBGROUP OF OR EQUAL TO
22ED; 22EC # [BEST FIT] DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL
22F0; 22F1 # UP RIGHT DIAGONAL ELLIPSIS
22F1; 22F0 # DOWN RIGHT DIAGONAL ELLIPSIS
22F2; 22FA # ELEMENT OF WITH LONG HORIZONTAL STROKE
22F3; 22FB # ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
22F4; 22FC # SMALL ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
22F6; 22FD # ELEMENT OF WITH OVERBAR
22F7; 22FE # SMALL ELEMENT OF WITH OVERBAR
22FA; 22F2 # CONTAINS WITH LONG HORIZONTAL STROKE
22FB; 22F3 # CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
22FC; 22F4 # SMALL CONTAINS WITH VERTICAL BAR AT END OF HORIZONTAL STROKE
22FD; 22F6 # CONTAINS WITH OVERBAR
22FE; 22F7 # SMALL CONTAINS WITH OVERBAR
2308; 2309 # LEFT CEILING
2309; 2308 # RIGHT CEILING
230A; 230B # LEFT FLOOR
230B; 230A # RIGHT FLOOR
2329; 232A # LEFT-POINTING ANGLE BRACKET
232A; 2329 # RIGHT-POINTING ANGLE BRACKET
2768; 2769 # MEDIUM LEFT PARENTHESIS ORNAMENT
2769; 2768 # MEDIUM RIGHT PARENTHESIS ORNAMENT
276A; 276B # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT
276B; 276A # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT
276C; 276D # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT
276D; 276C # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT
276E; 276F # HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT
276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT
2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
27C3; 27C4 # OPEN SUBSET
27C4; 27C3 # OPEN SUPERSET
27C5; 27C6 # LEFT S-SHAPED BAG DELIMITER
27C6; 27C5 # RIGHT S-SHAPED BAG DELIMITER
27C8; 27C9 # REVERSE SOLIDUS PRECEDING SUBSET
27C9; 27C8 # SUPERSET PRECEDING SOLIDUS
27CB; 27CD # MATHEMATICAL RISING DIAGONAL
27CD; 27CB # MATHEMATICAL FALLING DIAGONAL
27D5; 27D6 # LEFT OUTER JOIN
27D6; 27D5 # RIGHT OUTER JOIN
27DC; 22B8 # LEFT MULTIMAP
27DD; 27DE # LONG RIGHT TACK
27DE; 27DD # LONG LEFT TACK
27E2; 27E3 # WHITE CONCAVE-SIDED DIAMOND WITH LEFTWARDS TICK
27E3; 27E2 # WHITE CONCAVE-SIDED DIAMOND WITH RIGHTWARDS TICK
27E4; 27E5 # WHITE SQUARE WITH LEFTWARDS TICK
27E5; 27E4 # WHITE SQUARE WITH RIGHTWARDS TICK
27E6; 27E7 # MATHEMATICAL LEFT WHITE SQUARE BRACKET
27E7; 27E6 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET
27E8; 27E9 # MATHEMATICAL LEFT ANGLE BRACKET
27E9; 27E8 # MATHEMATICAL RIGHT ANGLE BRACKET
27EA; 27EB # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET
27EB; 27EA # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET
27EC; 27ED # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET
27ED; 27EC # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET
27EE; 27EF # MATHEMATICAL LEFT FLATTENED PARENTHESIS
27EF; 27EE # MATHEMATICAL RIGHT FLATTENED PARENTHESIS
2983; 2984 # LEFT WHITE CURLY BRACKET
2984; 2983 # RIGHT WHITE CURLY BRACKET
2985; 2986 # LEFT WHITE PARENTHESIS
2986; 2985 # RIGHT WHITE PARENTHESIS
2987; 2988 # Z NOTATION LEFT IMAGE BRACKET
2988; 2987 # Z NOTATION RIGHT IMAGE BRACKET
2989; 298A # Z NOTATION LEFT BINDING BRACKET
298A; 2989 # Z NOTATION RIGHT BINDING BRACKET
298B; 298C # LEFT SQUARE BRACKET WITH UNDERBAR
298C; 298B # RIGHT SQUARE BRACKET WITH UNDERBAR
298D; 2990 # LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
298E; 298F # RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
298F; 298E # LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER
2990; 298D # RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER
2991; 2992 # LEFT ANGLE BRACKET WITH DOT
2992; 2991 # RIGHT ANGLE BRACKET WITH DOT
2993; 2994 # LEFT ARC LESS-THAN BRACKET
2994; 2993 # RIGHT ARC GREATER-THAN BRACKET
2995; 2996 # DOUBLE LEFT ARC GREATER-THAN BRACKET
2996; 2995 # DOUBLE RIGHT ARC LESS-THAN BRACKET
2997; 2998 # LEFT BLACK TORTOISE SHELL BRACKET
2998; 2997 # RIGHT BLACK TORTOISE SHELL BRACKET
299B; 2221 # MEASURED ANGLE OPENING LEFT
29A0; 2222 # SPHERICAL ANGLE OPENING LEFT
29A3; 2220 # REVERSED ANGLE
29A4; 29A5 # ANGLE WITH UNDERBAR
29A5; 29A4 # REVERSED ANGLE WITH UNDERBAR
29A8; 29A9 # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND RIGHT
29A9; 29A8 # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING UP AND LEFT
29AA; 29AB # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND RIGHT
29AB; 29AA # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING DOWN AND LEFT
29AC; 29AD # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND UP
29AD; 29AC # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND UP
29AE; 29AF # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING RIGHT AND DOWN
29AF; 29AE # MEASURED ANGLE WITH OPEN ARM ENDING IN ARROW POINTING LEFT AND DOWN
29B8; 2298 # CIRCLED REVERSE SOLIDUS
29C0; 29C1 # CIRCLED LESS-THAN
29C1; 29C0 # CIRCLED GREATER-THAN
29C4; 29C5 # SQUARED RISING DIAGONAL SLASH
29C5; 29C4 # SQUARED FALLING DIAGONAL SLASH
29CF; 29D0 # LEFT TRIANGLE BESIDE VERTICAL BAR
29D0; 29CF # VERTICAL BAR BESIDE RIGHT TRIANGLE
29D1; 29D2 # BOWTIE WITH LEFT HALF BLACK
29D2; 29D1 # BOWTIE WITH RIGHT HALF BLACK
29D4; 29D5 # TIMES WITH LEFT HALF BLACK
29D5; 29D4 # TIMES WITH RIGHT HALF BLACK
29D8; 29D9 # LEFT WIGGLY FENCE
29D9; 29D8 # RIGHT WIGGLY FENCE
29DA; 29DB # LEFT DOUBLE WIGGLY FENCE
29DB; 29DA # RIGHT DOUBLE WIGGLY FENCE
29E8; 29E9 # DOWN-POINTING TRIANGLE WITH LEFT HALF BLACK
29E9; 29E8 # DOWN-POINTING TRIANGLE WITH RIGHT HALF BLACK
29F5; 2215 # REVERSE SOLIDUS OPERATOR
29F8; 29F9 # BIG SOLIDUS
29F9; 29F8 # BIG REVERSE SOLIDUS
29FC; 29FD # LEFT-POINTING CURVED ANGLE BRACKET
29FD; 29FC # RIGHT-POINTING CURVED ANGLE BRACKET
2A2B; 2A2C # MINUS SIGN WITH FALLING DOTS
2A2C; 2A2B # MINUS SIGN WITH RISING DOTS
2A2D; 2A2E # PLUS SIGN IN LEFT HALF CIRCLE
2A2E; 2A2D # PLUS SIGN IN RIGHT HALF CIRCLE
2A34; 2A35 # MULTIPLICATION SIGN IN LEFT HALF CIRCLE
2A35; 2A34 # MULTIPLICATION SIGN IN RIGHT HALF CIRCLE
2A3C; 2A3D # INTERIOR PRODUCT
2A3D; 2A3C # RIGHTHAND INTERIOR PRODUCT
2A64; 2A65 # Z NOTATION DOMAIN ANTIRESTRICTION
2A65; 2A64 # Z NOTATION RANGE ANTIRESTRICTION
2A79; 2A7A # LESS-THAN WITH CIRCLE INSIDE
2A7A; 2A79 # GREATER-THAN WITH CIRCLE INSIDE
2A7B; 2A7C # [BEST FIT] LESS-THAN WITH QUESTION MARK ABOVE
2A7C; 2A7B # [BEST FIT] GREATER-THAN WITH QUESTION MARK ABOVE
2A7D; 2A7E # LESS-THAN OR SLANTED EQUAL TO
2A7E; 2A7D # GREATER-THAN OR SLANTED EQUAL TO
2A7F; 2A80 # LESS-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
2A80; 2A7F # GREATER-THAN OR SLANTED EQUAL TO WITH DOT INSIDE
2A81; 2A82 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
2A82; 2A81 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE
2A83; 2A84 # LESS-THAN OR SLANTED EQUAL TO WITH DOT ABOVE RIGHT
2A84; 2A83 # GREATER-THAN OR SLANTED EQUAL TO WITH DOT ABOVE LEFT
2A85; 2A86 # [BEST FIT] LESS-THAN OR APPROXIMATE
2A86; 2A85 # [BEST FIT] GREATER-THAN OR APPROXIMATE
2A87; 2A88 # [BEST FIT] LESS-THAN AND SINGLE-LINE NOT EQUAL TO
2A88; 2A87 # [BEST FIT] GREATER-THAN AND SINGLE-LINE NOT EQUAL TO
2A89; 2A8A # [BEST FIT] LESS-THAN AND NOT APPROXIMATE
2A8A; 2A89 # [BEST FIT] GREATER-THAN AND NOT APPROXIMATE
2A8B; 2A8C # LESS-THAN ABOVE DOUBLE-LINE EQUAL ABOVE GREATER-THAN
2A8C; 2A8B # GREATER-THAN ABOVE DOUBLE-LINE EQUAL ABOVE LESS-THAN
2A8D; 2A8E # [BEST FIT] LESS-THAN ABOVE SIMILAR OR EQUAL
2A8E; 2A8D # [BEST FIT] GREATER-THAN ABOVE SIMILAR OR EQUAL
2A8F; 2A90 # [BEST FIT] LESS-THAN ABOVE SIMILAR ABOVE GREATER-THAN
2A90; 2A8F # [BEST FIT] GREATER-THAN ABOVE SIMILAR ABOVE LESS-THAN
2A91; 2A92 # LESS-THAN ABOVE GREATER-THAN ABOVE DOUBLE-LINE EQUAL
2A92; 2A91 # GREATER-THAN ABOVE LESS-THAN ABOVE DOUBLE-LINE EQUAL
2A93; 2A94 # LESS-THAN ABOVE SLANTED EQUAL ABOVE GREATER-THAN ABOVE SLANTED EQUAL
2A94; 2A93 # GREATER-THAN ABOVE SLANTED EQUAL ABOVE LESS-THAN ABOVE SLANTED EQUAL
2A95; 2A96 # SLANTED EQUAL TO OR LESS-THAN
2A96; 2A95 # SLANTED EQUAL TO OR GREATER-THAN
2A97; 2A98 # SLANTED EQUAL TO OR LESS-THAN WITH DOT INSIDE
2A98; 2A97 # SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE
2A99; 2A9A # DOUBLE-LINE EQUAL TO OR LESS-THAN
2A9A; 2A99 # DOUBLE-LINE EQUAL TO OR GREATER-THAN
2A9B; 2A9C # DOUBLE-LINE SLANTED EQUAL TO OR LESS-THAN
2A9C; 2A9B # DOUBLE-LINE SLANTED EQUAL TO OR GREATER-THAN
2A9D; 2A9E # [BEST FIT] SIMILAR OR LESS-THAN
2A9E; 2A9D # [BEST FIT] SIMILAR OR GREATER-THAN
2A9F; 2AA0 # [BEST FIT] SIMILAR ABOVE LESS-THAN ABOVE EQUALS SIGN
2AA0; 2A9F # [BEST FIT] SIMILAR ABOVE GREATER-THAN ABOVE EQUALS SIGN
2AA1; 2AA2 # DOUBLE NESTED LESS-THAN
2AA2; 2AA1 # DOUBLE NESTED GREATER-THAN
2AA6; 2AA7 # LESS-THAN CLOSED BY CURVE
2AA7; 2AA6 # GREATER-THAN CLOSED BY CURVE
2AA8; 2AA9 # LESS-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
2AA9; 2AA8 # GREATER-THAN CLOSED BY CURVE ABOVE SLANTED EQUAL
2AAA; 2AAB # SMALLER THAN
2AAB; 2AAA # LARGER THAN
2AAC; 2AAD # SMALLER THAN OR EQUAL TO
2AAD; 2AAC # LARGER THAN OR EQUAL TO
2AAF; 2AB0 # PRECEDES ABOVE SINGLE-LINE EQUALS SIGN
2AB0; 2AAF # SUCCEEDS ABOVE SINGLE-LINE EQUALS SIGN
2AB1; 2AB2 # [BEST FIT] PRECEDES ABOVE SINGLE-LINE NOT EQUAL TO
2AB2; 2AB1 # [BEST FIT] SUCCEEDS ABOVE SINGLE-LINE NOT EQUAL TO
2AB3; 2AB4 # PRECEDES ABOVE EQUALS SIGN
2AB4; 2AB3 # SUCCEEDS ABOVE EQUALS SIGN
2AB5; 2AB6 # [BEST FIT] PRECEDES ABOVE NOT EQUAL TO
2AB6; 2AB5 # [BEST FIT] SUCCEEDS ABOVE NOT EQUAL TO
2AB7; 2AB8 # [BEST FIT] PRECEDES ABOVE ALMOST EQUAL TO
2AB8; 2AB7 # [BEST FIT] SUCCEEDS ABOVE ALMOST EQUAL TO
2AB9; 2ABA # [BEST FIT] PRECEDES ABOVE NOT ALMOST EQUAL TO
2ABA; 2AB9 # [BEST FIT] SUCCEEDS ABOVE NOT ALMOST EQUAL TO
2ABB; 2ABC # DOUBLE PRECEDES
2ABC; 2ABB # DOUBLE SUCCEEDS
2ABD; 2ABE # SUBSET WITH DOT
2ABE; 2ABD # SUPERSET WITH DOT
2ABF; 2AC0 # SUBSET WITH PLUS SIGN BELOW
2AC0; 2ABF # SUPERSET WITH PLUS SIGN BELOW
2AC1; 2AC2 # SUBSET WITH MULTIPLICATION SIGN BELOW
2AC2; 2AC1 # SUPERSET WITH MULTIPLICATION SIGN BELOW
2AC3; 2AC4 # SUBSET OF OR EQUAL TO WITH DOT ABOVE
2AC4; 2AC3 # SUPERSET OF OR EQUAL TO WITH DOT ABOVE
2AC5; 2AC6 # SUBSET OF ABOVE EQUALS SIGN
2AC6; 2AC5 # SUPERSET OF ABOVE EQUALS SIGN
2AC7; 2AC8 # [BEST FIT] SUBSET OF ABOVE TILDE OPERATOR
2AC8; 2AC7 # [BEST FIT] SUPERSET OF ABOVE TILDE OPERATOR
2AC9; 2ACA # [BEST FIT] SUBSET OF ABOVE ALMOST EQUAL TO
2ACA; 2AC9 # [BEST FIT] SUPERSET OF ABOVE ALMOST EQUAL TO
2ACB; 2ACC # [BEST FIT] SUBSET OF ABOVE NOT EQUAL TO
2ACC; 2ACB # [BEST FIT] SUPERSET OF ABOVE NOT EQUAL TO
2ACD; 2ACE # SQUARE LEFT OPEN BOX OPERATOR
2ACE; 2ACD # SQUARE RIGHT OPEN BOX OPERATOR
2ACF; 2AD0 # CLOSED SUBSET
2AD0; 2ACF # CLOSED SUPERSET
2AD1; 2AD2 # CLOSED SUBSET OR EQUAL TO
2AD2; 2AD1 # CLOSED SUPERSET OR EQUAL TO
2AD3; 2AD4 # SUBSET ABOVE SUPERSET
2AD4; 2AD3 # SUPERSET ABOVE SUBSET
2AD5; 2AD6 # SUBSET ABOVE SUBSET
2AD6; 2AD5 # SUPERSET ABOVE SUPERSET
2ADE; 22A6 # SHORT LEFT TACK
2AE3; 22A9 # DOUBLE VERTICAL BAR LEFT TURNSTILE
2AE4; 22A8 # VERTICAL BAR DOUBLE LEFT TURNSTILE
2AE5; 22AB # DOUBLE VERTICAL BAR DOUBLE LEFT TURNSTILE
2AEC; 2AED # DOUBLE STROKE NOT SIGN
2AED; 2AEC # REVERSED DOUBLE STROKE NOT SIGN
2AEE; 2224 # DOES NOT DIVIDE WITH REVERSED NEGATION SLASH
2AF7; 2AF8 # TRIPLE NESTED LESS-THAN
2AF8; 2AF7 # TRIPLE NESTED GREATER-THAN
2AF9; 2AFA # DOUBLE-LINE SLANTED LESS-THAN OR EQUAL TO
2AFA; 2AF9 # DOUBLE-LINE SLANTED GREATER-THAN OR EQUAL TO
2BFE; 221F # REVERSED RIGHT ANGLE
2E02; 2E03 # LEFT SUBSTITUTION BRACKET
2E03; 2E02 # RIGHT SUBSTITUTION BRACKET
2E04; 2E05 # LEFT DOTTED SUBSTITUTION BRACKET
2E05; 2E04 # RIGHT DOTTED SUBSTITUTION BRACKET
2E09; 2E0A # LEFT TRANSPOSITION BRACKET
2E0A; 2E09 # RIGHT TRANSPOSITION BRACKET
2E0C; 2E0D # LEFT RAISED OMISSION BRACKET
2E0D; 2E0C # RIGHT RAISED OMISSION BRACKET
2E1C; 2E1D # LEFT LOW PARAPHRASE BRACKET
2E1D; 2E1C # RIGHT LOW PARAPHRASE BRACKET
2E20; 2E21 # LEFT VERTICAL BAR WITH QUILL
2E21; 2E20 # RIGHT VERTICAL BAR WITH QUILL
2E22; 2E23 # TOP LEFT HALF BRACKET
2E23; 2E22 # TOP RIGHT HALF BRACKET
2E24; 2E25 # BOTTOM LEFT HALF BRACKET
2E25; 2E24 # BOTTOM RIGHT HALF BRACKET
2E26; 2E27 # LEFT SIDEWAYS U BRACKET
2E27; 2E26 # RIGHT SIDEWAYS U BRACKET
2E28; 2E29 # LEFT DOUBLE PARENTHESIS
2E29; 2E28 # RIGHT DOUBLE PARENTHESIS
2E55; 2E56 # LEFT SQUARE BRACKET WITH STROKE
2E56; 2E55 # RIGHT SQUARE BRACKET WITH STROKE
2E57; 2E58 # LEFT SQUARE BRACKET WITH DOUBLE STROKE
2E58; 2E57 # RIGHT SQUARE BRACKET WITH DOUBLE STROKE
2E59; 2E5A # TOP HALF LEFT PARENTHESIS
2E5A; 2E59 # TOP HALF RIGHT PARENTHESIS
2E5B; 2E5C # BOTTOM HALF LEFT PARENTHESIS
2E5C; 2E5B # BOTTOM HALF RIGHT PARENTHESIS
3008; 3009 # LEFT ANGLE BRACKET
3009; 3008 # RIGHT ANGLE BRACKET
300A; 300B # LEFT DOUBLE ANGLE BRACKET
300B; 300A # RIGHT DOUBLE ANGLE BRACKET
300C; 300D # [BEST FIT] LEFT CORNER BRACKET
300D; 300C # [BEST FIT] RIGHT CORNER BRACKET
300E; 300F # [BEST FIT] LEFT WHITE CORNER BRACKET
300F; 300E # [BEST FIT] RIGHT WHITE CORNER BRACKET
3010; 3011 # LEFT BLACK LENTICULAR BRACKET
3011; 3010 # RIGHT BLACK LENTICULAR BRACKET
3014; 3015 # LEFT TORTOISE SHELL BRACKET
3015; 3014 # RIGHT TORTOISE SHELL BRACKET
3016; 3017 # LEFT WHITE LENTICULAR BRACKET
3017; 3016 # RIGHT WHITE LENTICULAR BRACKET
3018; 3019 # LEFT WHITE TORTOISE SHELL BRACKET
3019; 3018 # RIGHT WHITE TORTOISE SHELL BRACKET
301A; 301B # LEFT WHITE SQUARE BRACKET
301B; 301A # RIGHT WHITE SQUARE BRACKET
FE59; FE5A # SMALL LEFT PARENTHESIS
FE5A; FE59 # SMALL RIGHT PARENTHESIS
FE5B; FE5C # SMALL LEFT CURLY BRACKET
FE5C; FE5B # SMALL RIGHT CURLY BRACKET
FE5D; FE5E # SMALL LEFT TORTOISE SHELL BRACKET
FE5E; FE5D # SMALL RIGHT TORTOISE SHELL BRACKET
FE64; FE65 # SMALL LESS-THAN SIGN
FE65; FE64 # SMALL GREATER-THAN SIGN
FF08; FF09 # FULLWIDTH LEFT PARENTHESIS
FF09; FF08 # FULLWIDTH RIGHT PARENTHESIS
FF1C; FF1E # FULLWIDTH LESS-THAN SIGN
FF1E; FF1C # FULLWIDTH GREATER-THAN SIGN
FF3B; FF3D # FULLWIDTH LEFT SQUARE BRACKET
FF3D; FF3B # FULLWIDTH RIGHT SQUARE BRACKET
FF5B; FF5D # FULLWIDTH LEFT CURLY BRACKET
FF5D; FF5B # FULLWIDTH RIGHT CURLY BRACKET
FF5F; FF60 # FULLWIDTH LEFT WHITE PARENTHESIS
FF60; FF5F # FULLWIDTH RIGHT WHITE PARENTHESIS
FF62; FF63 # [BEST FIT] HALFWIDTH LEFT CORNER BRACKET
FF63; FF62 # [BEST FIT] HALFWIDTH RIGHT CORNER BRACKET
# The following characters have no appropriate mirroring character.
# For these characters it is up to the rendering system
# to provide mirrored glyphs.
# 2140; DOUBLE-STRUCK N-ARY SUMMATION
# 2201; COMPLEMENT
# 2202; PARTIAL DIFFERENTIAL
# 2203; THERE EXISTS
# 2204; THERE DOES NOT EXIST
# 2211; N-ARY SUMMATION
# 2216; SET MINUS
# 221A; SQUARE ROOT
# 221B; CUBE ROOT
# 221C; FOURTH ROOT
# 221D; PROPORTIONAL TO
# 2226; NOT PARALLEL TO
# 222B; INTEGRAL
# 222C; DOUBLE INTEGRAL
# 222D; TRIPLE INTEGRAL
# 222E; CONTOUR INTEGRAL
# 222F; SURFACE INTEGRAL
# 2230; VOLUME INTEGRAL
# 2231; CLOCKWISE INTEGRAL
# 2232; CLOCKWISE CONTOUR INTEGRAL
# 2233; ANTICLOCKWISE CONTOUR INTEGRAL
# 2239; EXCESS
# 223B; HOMOTHETIC
# 223E; INVERTED LAZY S
# 223F; SINE WAVE
# 2240; WREATH PRODUCT
# 2241; NOT TILDE
# 2242; MINUS TILDE
# 2244; NOT ASYMPTOTICALLY EQUAL TO
# 2246; APPROXIMATELY BUT NOT ACTUALLY EQUAL TO
# 2247; NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO
# 2248; ALMOST EQUAL TO
# 2249; NOT ALMOST EQUAL TO
# 224A; ALMOST EQUAL OR EQUAL TO
# 224B; TRIPLE TILDE
# 225F; QUESTIONED EQUAL TO
# 2260; NOT EQUAL TO
# 2262; NOT IDENTICAL TO
# 226D; NOT EQUIVALENT TO
# 228C; MULTISET
# 22A7; MODELS
# 22AA; TRIPLE VERTICAL BAR RIGHT TURNSTILE
# 22AC; DOES NOT PROVE
# 22AD; NOT TRUE
# 22AE; DOES NOT FORCE
# 22AF; NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE
# 22BE; RIGHT ANGLE WITH ARC
# 22BF; RIGHT TRIANGLE
# 22F5; ELEMENT OF WITH DOT ABOVE
# 22F8; ELEMENT OF WITH UNDERBAR
# 22F9; ELEMENT OF WITH TWO HORIZONTAL STROKES
# 22FF; Z NOTATION BAG MEMBERSHIP
# 2320; TOP HALF INTEGRAL
# 2321; BOTTOM HALF INTEGRAL
# 27C0; THREE DIMENSIONAL ANGLE
# 27CC; LONG DIVISION
# 27D3; LOWER RIGHT CORNER WITH DOT
# 27D4; UPPER LEFT CORNER WITH DOT
# 299C; RIGHT ANGLE VARIANT WITH SQUARE
# 299D; MEASURED RIGHT ANGLE WITH DOT
# 299E; ANGLE WITH S INSIDE
# 299F; ACUTE ANGLE
# 29A2; TURNED ANGLE
# 29A6; OBLIQUE ANGLE OPENING UP
# 29A7; OBLIQUE ANGLE OPENING DOWN
# 29C2; CIRCLE WITH SMALL CIRCLE TO THE RIGHT
# 29C3; CIRCLE WITH TWO HORIZONTAL STROKES TO THE RIGHT
# 29C9; TWO JOINED SQUARES
# 29CE; RIGHT TRIANGLE ABOVE LEFT TRIANGLE
# 29DC; INCOMPLETE INFINITY
# 29E1; INCREASES AS
# 29E3; EQUALS SIGN AND SLANTED PARALLEL
# 29E4; EQUALS SIGN AND SLANTED PARALLEL WITH TILDE ABOVE
# 29E5; IDENTICAL TO AND SLANTED PARALLEL
# 29F4; RULE-DELAYED
# 29F6; SOLIDUS WITH OVERBAR
# 29F7; REVERSE SOLIDUS WITH HORIZONTAL STROKE
# 2A0A; MODULO TWO SUM
# 2A0B; SUMMATION WITH INTEGRAL
# 2A0C; QUADRUPLE INTEGRAL OPERATOR
# 2A0D; FINITE PART INTEGRAL
# 2A0E; INTEGRAL WITH DOUBLE STROKE
# 2A0F; INTEGRAL AVERAGE WITH SLASH
# 2A10; CIRCULATION FUNCTION
# 2A11; ANTICLOCKWISE INTEGRATION
# 2A12; LINE INTEGRATION WITH RECTANGULAR PATH AROUND POLE
# 2A13; LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE
# 2A14; LINE INTEGRATION NOT INCLUDING THE POLE
# 2A15; INTEGRAL AROUND A POINT OPERATOR
# 2A16; QUATERNION INTEGRAL OPERATOR
# 2A17; INTEGRAL WITH LEFTWARDS ARROW WITH HOOK
# 2A18; INTEGRAL WITH TIMES SIGN
# 2A19; INTEGRAL WITH INTERSECTION
# 2A1A; INTEGRAL WITH UNION
# 2A1B; INTEGRAL WITH OVERBAR
# 2A1C; INTEGRAL WITH UNDERBAR
# 2A1E; LARGE LEFT TRIANGLE OPERATOR
# 2A1F; Z NOTATION SCHEMA COMPOSITION
# 2A20; Z NOTATION SCHEMA PIPING
# 2A21; Z NOTATION SCHEMA PROJECTION
# 2A24; PLUS SIGN WITH TILDE ABOVE
# 2A26; PLUS SIGN WITH TILDE BELOW
# 2A29; MINUS SIGN WITH COMMA ABOVE
# 2A3E; Z NOTATION RELATIONAL COMPOSITION
# 2A57; SLOPING LARGE OR
# 2A58; SLOPING LARGE AND
# 2A6A; TILDE OPERATOR WITH DOT ABOVE
# 2A6B; TILDE OPERATOR WITH RISING DOTS
# 2A6C; SIMILAR MINUS SIMILAR
# 2A6D; CONGRUENT WITH DOT ABOVE
# 2A6F; ALMOST EQUAL TO WITH CIRCUMFLEX ACCENT
# 2A70; APPROXIMATELY EQUAL OR EQUAL TO
# 2A73; EQUALS SIGN ABOVE TILDE OPERATOR
# 2A74; DOUBLE COLON EQUAL
# 2AA3; DOUBLE NESTED LESS-THAN WITH UNDERBAR
# 2ADC; FORKING
# 2AE2; VERTICAL BAR TRIPLE RIGHT TURNSTILE
# 2AE6; LONG DASH FROM LEFT MEMBER OF DOUBLE VERTICAL
# 2AF3; PARALLEL WITH TILDE OPERATOR
# 2AFB; TRIPLE SOLIDUS BINARY RELATION
# 2AFD; DOUBLE SOLIDUS OPERATOR
# 1D6DB; MATHEMATICAL BOLD PARTIAL DIFFERENTIAL
# 1D715; MATHEMATICAL ITALIC PARTIAL DIFFERENTIAL
# 1D74F; MATHEMATICAL BOLD ITALIC PARTIAL DIFFERENTIAL
# 1D789; MATHEMATICAL SANS-SERIF BOLD PARTIAL DIFFERENTIAL
# 1D7C3; MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL
# EOF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,225 @@
# PropertyAliases-16.0.0.txt
# Date: 2024-06-06, 21:52:48 GMT
# © 2024 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
#
# This file contains aliases for properties used in the UCD.
# These names can be used for XML formats of UCD data, for regular-expression
# property tests, and other programmatic textual descriptions of Unicode data.
#
# The names may be translated in appropriate environments, and additional
# aliases may be useful.
#
# FORMAT
#
# Each line has two or more fields, separated by semicolons.
#
# First Field: The first field is the short name for the property.
# It is typically an abbreviation, but in a number of cases it is simply
# a duplicate of the "long name" in the second field.
# For Unihan database tags, the short name is actually a longer string than
# the tag specified in the second field.
#
# Second Field: The second field is the long name for the property,
# typically the formal name used in documentation about the property.
#
# The above are the preferred aliases. Other aliases may be listed in additional fields.
#
# Loose matching should be applied to all property names and property values, with
# the exception of String Property values. With loose matching of property names and
# values, the case distinctions, whitespace, and '_' are ignored. For Numeric Property
# values, numeric equivalencies are applied: thus "01.00" is equivalent to "1".
#
# NOTE: Property value names are NOT unique across properties. For example:
#
# AL means Arabic Letter for the Bidi_Class property, and
# AL means Above_Left for the Combining_Class property, and
# AL means Alphabetic for the Line_Break property.
#
# In addition, some property names may be the same as some property value names.
# For example:
#
# sc means the Script property, and
# Sc means the General_Category property value Currency_Symbol (Sc)
#
# The combination of property value and property name is, however, unique.
#
# For more information, see UAX #44, Unicode Character Database, and
# UTS #18, Unicode Regular Expressions.
# ================================================
# ================================================
# Numeric Properties
# ================================================
cjkAccountingNumeric ; kAccountingNumeric
cjkOtherNumeric ; kOtherNumeric
cjkPrimaryNumeric ; kPrimaryNumeric
nv ; Numeric_Value
# ================================================
# String Properties
# ================================================
bmg ; Bidi_Mirroring_Glyph
bpb ; Bidi_Paired_Bracket
cf ; Case_Folding
cjkCompatibilityVariant ; kCompatibilityVariant
dm ; Decomposition_Mapping
EqUIdeo ; Equivalent_Unified_Ideograph
FC_NFKC ; FC_NFKC_Closure
lc ; Lowercase_Mapping
NFKC_CF ; NFKC_Casefold
NFKC_SCF ; NFKC_Simple_Casefold
scf ; Simple_Case_Folding ; sfc
slc ; Simple_Lowercase_Mapping
stc ; Simple_Titlecase_Mapping
suc ; Simple_Uppercase_Mapping
tc ; Titlecase_Mapping
uc ; Uppercase_Mapping
# ================================================
# Miscellaneous Properties
# ================================================
cjkIICore ; kIICore
cjkIRG_GSource ; kIRG_GSource
cjkIRG_HSource ; kIRG_HSource
cjkIRG_JSource ; kIRG_JSource
cjkIRG_KPSource ; kIRG_KPSource
cjkIRG_KSource ; kIRG_KSource
cjkIRG_MSource ; kIRG_MSource
cjkIRG_SSource ; kIRG_SSource
cjkIRG_TSource ; kIRG_TSource
cjkIRG_UKSource ; kIRG_UKSource
cjkIRG_USource ; kIRG_USource
cjkIRG_VSource ; kIRG_VSource
cjkRSUnicode ; kRSUnicode ; Unicode_Radical_Stroke; URS
isc ; ISO_Comment
JSN ; Jamo_Short_Name
kEH_Cat ; kEH_Cat
kEH_Desc ; kEH_Desc
kEH_HG ; kEH_HG
kEH_IFAO ; kEH_IFAO
kEH_JSesh ; kEH_JSesh
na ; Name
na1 ; Unicode_1_Name
Name_Alias ; Name_Alias
scx ; Script_Extensions
# ================================================
# Catalog Properties
# ================================================
age ; Age
blk ; Block
sc ; Script
# ================================================
# Enumerated Properties
# ================================================
bc ; Bidi_Class
bpt ; Bidi_Paired_Bracket_Type
ccc ; Canonical_Combining_Class
dt ; Decomposition_Type
ea ; East_Asian_Width
gc ; General_Category
GCB ; Grapheme_Cluster_Break
hst ; Hangul_Syllable_Type
InCB ; Indic_Conjunct_Break
InPC ; Indic_Positional_Category
InSC ; Indic_Syllabic_Category
jg ; Joining_Group
jt ; Joining_Type
lb ; Line_Break
NFC_QC ; NFC_Quick_Check
NFD_QC ; NFD_Quick_Check
NFKC_QC ; NFKC_Quick_Check
NFKD_QC ; NFKD_Quick_Check
nt ; Numeric_Type
SB ; Sentence_Break
vo ; Vertical_Orientation
WB ; Word_Break
# ================================================
# Binary Properties
# ================================================
AHex ; ASCII_Hex_Digit
Alpha ; Alphabetic
Bidi_C ; Bidi_Control
Bidi_M ; Bidi_Mirrored
Cased ; Cased
CE ; Composition_Exclusion
CI ; Case_Ignorable
Comp_Ex ; Full_Composition_Exclusion
CWCF ; Changes_When_Casefolded
CWCM ; Changes_When_Casemapped
CWKCF ; Changes_When_NFKC_Casefolded
CWL ; Changes_When_Lowercased
CWT ; Changes_When_Titlecased
CWU ; Changes_When_Uppercased
Dash ; Dash
Dep ; Deprecated
DI ; Default_Ignorable_Code_Point
Dia ; Diacritic
EBase ; Emoji_Modifier_Base
EComp ; Emoji_Component
EMod ; Emoji_Modifier
Emoji ; Emoji
EPres ; Emoji_Presentation
Ext ; Extender
ExtPict ; Extended_Pictographic
Gr_Base ; Grapheme_Base
Gr_Ext ; Grapheme_Extend
Gr_Link ; Grapheme_Link
Hex ; Hex_Digit
Hyphen ; Hyphen
ID_Compat_Math_Continue ; ID_Compat_Math_Continue
ID_Compat_Math_Start ; ID_Compat_Math_Start
IDC ; ID_Continue
Ideo ; Ideographic
IDS ; ID_Start
IDSB ; IDS_Binary_Operator
IDST ; IDS_Trinary_Operator
IDSU ; IDS_Unary_Operator
Join_C ; Join_Control
kEH_NoMirror ; kEH_NoMirror
kEH_NoRotate ; kEH_NoRotate
LOE ; Logical_Order_Exception
Lower ; Lowercase
Math ; Math
MCM ; Modifier_Combining_Mark
NChar ; Noncharacter_Code_Point
OAlpha ; Other_Alphabetic
ODI ; Other_Default_Ignorable_Code_Point
OGr_Ext ; Other_Grapheme_Extend
OIDC ; Other_ID_Continue
OIDS ; Other_ID_Start
OLower ; Other_Lowercase
OMath ; Other_Math
OUpper ; Other_Uppercase
Pat_Syn ; Pattern_Syntax
Pat_WS ; Pattern_White_Space
PCM ; Prepended_Concatenation_Mark
QMark ; Quotation_Mark
Radical ; Radical
RI ; Regional_Indicator
SD ; Soft_Dotted
STerm ; Sentence_Terminal
Term ; Terminal_Punctuation
UIdeo ; Unified_Ideograph
Upper ; Uppercase
VS ; Variation_Selector
WSpace ; White_Space ; space
XIDC ; XID_Continue
XIDS ; XID_Start
XO_NFC ; Expands_On_NFC
XO_NFD ; Expands_On_NFD
XO_NFKC ; Expands_On_NFKC
XO_NFKD ; Expands_On_NFKD
# ================================================
# Total: 142
# EOF

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,233 @@
# ScriptExtensions-16.0.0.txt
# Date: 2024-07-30, 19:38:00 GMT
# © 2024 Unicode®, Inc.
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
#
# Unicode Character Database
# For documentation, see https://www.unicode.org/reports/tr44/
#
# The Script_Extensions property indicates which characters are commonly used
# with more than one script, but with a limited number of scripts.
# For each code point, there is one or more property values. Each such value is a Script property value.
# For more information, see:
# UAX #24, Unicode Script Property: https://www.unicode.org/reports/tr24/
# Especially the sections:
# https://www.unicode.org/reports/tr24/#Assignment_Script_Values
# https://www.unicode.org/reports/tr24/#Assignment_ScriptX_Values
#
# Each Script_Extensions value in this file consists of a set
# of one or more abbreviated Script property values. The ordering of the
# values in that set is not material, but for stability in presentation
# it is given here as alphabetical.
#
# All code points not explicitly listed for Script_Extensions
# have as their value the corresponding Script property value.
#
# @missing: 0000..10FFFF; <script>
00B7 ; Avst Cari Copt Dupl Elba Geor Glag Gong Goth Grek Hani Latn Lydi Mahj Perm Shaw #Po MIDDLE DOT
02BC ; Beng Cyrl Deva Latn Lisu Thai Toto #Lm MODIFIER LETTER APOSTROPHE
02C7 ; Bopo Latn # Lm CARON
02C9..02CB ; Bopo Latn # Lm [3] MODIFIER LETTER MACRON..MODIFIER LETTER GRAVE ACCENT
02CD ; Latn Lisu # Lm MODIFIER LETTER LOW MACRON
02D7 ; Latn Thai # Sk MODIFIER LETTER MINUS SIGN
02D9 ; Bopo Latn # Sk DOT ABOVE
0300 ; Cher Copt Cyrl Grek Latn Perm Sunu Tale #Mn COMBINING GRAVE ACCENT
0301 ; Cher Cyrl Grek Latn Osge Sunu Tale Todr #Mn COMBINING ACUTE ACCENT
0302 ; Cher Cyrl Latn Tfng # Mn COMBINING CIRCUMFLEX ACCENT
0303 ; Glag Latn Sunu Syrc Thai # Mn COMBINING TILDE
0304 ; Aghb Cher Copt Cyrl Goth Grek Latn Osge Syrc Tfng Todr #Mn COMBINING MACRON
0305 ; Copt Elba Glag Goth Kana Latn # Mn COMBINING OVERLINE
0306 ; Cyrl Grek Latn Perm # Mn COMBINING BREVE
0307 ; Copt Dupl Hebr Latn Perm Syrc Tale Tfng Todr #Mn COMBINING DOT ABOVE
0308 ; Armn Cyrl Dupl Goth Grek Hebr Latn Perm Syrc Tale #Mn COMBINING DIAERESIS
0309 ; Latn Tfng # Mn COMBINING HOOK ABOVE
030A ; Dupl Latn Syrc # Mn COMBINING RING ABOVE
030B ; Cher Cyrl Latn Osge # Mn COMBINING DOUBLE ACUTE ACCENT
030C ; Cher Latn Tale # Mn COMBINING CARON
030D ; Latn Sunu # Mn COMBINING VERTICAL LINE ABOVE
030E ; Ethi Latn # Mn COMBINING DOUBLE VERTICAL LINE ABOVE
0310 ; Latn Sunu # Mn COMBINING CANDRABINDU
0311 ; Cyrl Latn Todr # Mn COMBINING INVERTED BREVE
0313 ; Grek Latn Perm Todr # Mn COMBINING COMMA ABOVE
0320 ; Latn Syrc # Mn COMBINING MINUS SIGN BELOW
0323 ; Cher Dupl Kana Latn Syrc # Mn COMBINING DOT BELOW
0324 ; Cher Dupl Latn Syrc # Mn COMBINING DIAERESIS BELOW
0325 ; Latn Syrc # Mn COMBINING RING BELOW
032D ; Latn Sunu Syrc # Mn COMBINING CIRCUMFLEX ACCENT BELOW
032E ; Latn Syrc # Mn COMBINING BREVE BELOW
0330 ; Cher Latn Syrc # Mn COMBINING TILDE BELOW
0331 ; Aghb Cher Goth Latn Sunu Thai # Mn COMBINING MACRON BELOW
0342 ; Grek # Mn COMBINING GREEK PERISPOMENI
0345 ; Grek # Mn COMBINING GREEK YPOGEGRAMMENI
0358 ; Latn Osge # Mn COMBINING DOT ABOVE RIGHT
035E ; Aghb Latn Todr # Mn COMBINING DOUBLE MACRON
0363..036F ; Latn # Mn [13] COMBINING LATIN SMALL LETTER A..COMBINING LATIN SMALL LETTER X
0374 ; Copt Grek # Lm GREEK NUMERAL SIGN
0375 ; Copt Grek # Sk GREEK LOWER NUMERAL SIGN
0483 ; Cyrl Perm # Mn COMBINING CYRILLIC TITLO
0484 ; Cyrl Glag # Mn COMBINING CYRILLIC PALATALIZATION
0485..0486 ; Cyrl Latn # Mn [2] COMBINING CYRILLIC DASIA PNEUMATA..COMBINING CYRILLIC PSILI PNEUMATA
0487 ; Cyrl Glag # Mn COMBINING CYRILLIC POKRYTIE
0589 ; Armn Geor Glag # Po ARMENIAN FULL STOP
060C ; Arab Gara Nkoo Rohg Syrc Thaa Yezi #Po ARABIC COMMA
061B ; Arab Gara Nkoo Rohg Syrc Thaa Yezi #Po ARABIC SEMICOLON
061C ; Arab Syrc Thaa # Cf ARABIC LETTER MARK
061F ; Adlm Arab Gara Nkoo Rohg Syrc Thaa Yezi #Po ARABIC QUESTION MARK
0640 ; Adlm Arab Mand Mani Ougr Phlp Rohg Sogd Syrc #Lm ARABIC TATWEEL
064B..0655 ; Arab Syrc # Mn [11] ARABIC FATHATAN..ARABIC HAMZA BELOW
0660..0669 ; Arab Thaa Yezi # Nd [10] ARABIC-INDIC DIGIT ZERO..ARABIC-INDIC DIGIT NINE
0670 ; Arab Syrc # Mn ARABIC LETTER SUPERSCRIPT ALEF
06D4 ; Arab Rohg # Po ARABIC FULL STOP
0951 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Shrd Taml Telu Tirh #Mn DEVANAGARI STRESS SIGN UDATTA
0952 ; Beng Deva Gran Gujr Guru Knda Latn Mlym Orya Taml Telu Tirh #Mn DEVANAGARI STRESS SIGN ANUDATTA
0964 ; Beng Deva Dogr Gong Gonm Gran Gujr Guru Knda Mahj Mlym Nand Onao Orya Sind Sinh Sylo Takr Taml Telu Tirh #Po DEVANAGARI DANDA
0965 ; Beng Deva Dogr Gong Gonm Gran Gujr Gukh Guru Knda Limb Mahj Mlym Nand Onao Orya Sind Sinh Sylo Takr Taml Telu Tirh #Po DEVANAGARI DOUBLE DANDA
0966..096F ; Deva Dogr Kthi Mahj # Nd [10] DEVANAGARI DIGIT ZERO..DEVANAGARI DIGIT NINE
09E6..09EF ; Beng Cakm Sylo # Nd [10] BENGALI DIGIT ZERO..BENGALI DIGIT NINE
0A66..0A6F ; Guru Mult # Nd [10] GURMUKHI DIGIT ZERO..GURMUKHI DIGIT NINE
0AE6..0AEF ; Gujr Khoj # Nd [10] GUJARATI DIGIT ZERO..GUJARATI DIGIT NINE
0BE6..0BEF ; Gran Taml # Nd [10] TAMIL DIGIT ZERO..TAMIL DIGIT NINE
0BF0..0BF2 ; Gran Taml # No [3] TAMIL NUMBER TEN..TAMIL NUMBER ONE THOUSAND
0BF3 ; Gran Taml # So TAMIL DAY SIGN
0CE6..0CEF ; Knda Nand Tutg # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE
1040..1049 ; Cakm Mymr Tale # Nd [10] MYANMAR DIGIT ZERO..MYANMAR DIGIT NINE
10FB ; Geor Glag Latn # Po GEORGIAN PARAGRAPH SEPARATOR
16EB..16ED ; Runr # Po [3] RUNIC SINGLE PUNCTUATION..RUNIC CROSS PUNCTUATION
1735..1736 ; Buhd Hano Tagb Tglg # Po [2] PHILIPPINE SINGLE PUNCTUATION..PHILIPPINE DOUBLE PUNCTUATION
1802..1803 ; Mong Phag # Po [2] MONGOLIAN COMMA..MONGOLIAN FULL STOP
1805 ; Mong Phag # Po MONGOLIAN FOUR DOTS
1CD0 ; Beng Deva Gran Knda # Mn VEDIC TONE KARSHANA
1CD1 ; Deva # Mn VEDIC TONE SHARA
1CD2 ; Beng Deva Gran Knda # Mn VEDIC TONE PRENKHA
1CD3 ; Deva Gran Knda # Po VEDIC SIGN NIHSHVASA
1CD4 ; Deva # Mn VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
1CD5..1CD6 ; Beng Deva # Mn [2] VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA..VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
1CD7 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
1CD8 ; Beng Deva # Mn VEDIC TONE CANDRA BELOW
1CD9 ; Deva Shrd # Mn VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
1CDA ; Deva Knda Mlym Orya Taml Telu # Mn VEDIC TONE DOUBLE SVARITA
1CDB ; Deva # Mn VEDIC TONE TRIPLE SVARITA
1CDC..1CDD ; Deva Shrd # Mn [2] VEDIC TONE KATHAKA ANUDATTA..VEDIC TONE DOT BELOW
1CDE..1CDF ; Deva # Mn [2] VEDIC TONE TWO DOTS BELOW..VEDIC TONE THREE DOTS BELOW
1CE0 ; Deva Shrd # Mn VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
1CE1 ; Beng Deva # Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
1CE2..1CE8 ; Deva # Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
1CE9 ; Deva Nand # Lo VEDIC SIGN ANUSVARA ANTARGOMUKHA
1CEA ; Beng Deva # Lo VEDIC SIGN ANUSVARA BAHIRGOMUKHA
1CEB..1CEC ; Deva # Lo [2] VEDIC SIGN ANUSVARA VAMAGOMUKHA..VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
1CED ; Beng Deva # Mn VEDIC SIGN TIRYAK
1CEE..1CF1 ; Deva # Lo [4] VEDIC SIGN HEXIFORM LONG ANUSVARA..VEDIC SIGN ANUSVARA UBHAYATO MUKHA
1CF2 ; Beng Deva Gran Knda Mlym Nand Orya Sinh Telu Tirh Tutg #Lo VEDIC SIGN ARDHAVISARGA
1CF3 ; Deva Gran # Lo VEDIC SIGN ROTATED ARDHAVISARGA
1CF4 ; Deva Gran Knda Tutg # Mn VEDIC TONE CANDRA ABOVE
1CF5..1CF6 ; Beng Deva # Lo [2] VEDIC SIGN JIHVAMULIYA..VEDIC SIGN UPADHMANIYA
1CF7 ; Beng # Mc VEDIC SIGN ATIKRAMA
1CF8..1CF9 ; Deva Gran # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
1CFA ; Nand # Lo VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA
1DC0..1DC1 ; Grek # Mn [2] COMBINING DOTTED GRAVE ACCENT..COMBINING DOTTED ACUTE ACCENT
1DF8 ; Cyrl Latn Syrc # Mn COMBINING DOT ABOVE LEFT
1DFA ; Syrc # Mn COMBINING DOT BELOW LEFT
202F ; Latn Mong Phag # Zs NARROW NO-BREAK SPACE
204F ; Adlm Arab # Po REVERSED SEMICOLON
205A ; Cari Geor Glag Hung Lyci Orkh # Po TWO DOT PUNCTUATION
205D ; Cari Grek Hung Mero # Po TRICOLON
20F0 ; Deva Gran Latn # Mn COMBINING ASTERISK ABOVE
2E17 ; Copt Latn # Pd DOUBLE OBLIQUE HYPHEN
2E30 ; Avst Orkh # Po RING POINT
2E31 ; Avst Cari Geor Hung Kthi Lydi Samr #Po WORD SEPARATOR MIDDLE DOT
2E3C ; Dupl # Po STENOGRAPHIC FULL STOP
2E41 ; Adlm Arab Hung # Po REVERSED COMMA
2E43 ; Cyrl Glag # Po DASH WITH LEFT UPTURN
2FF0..2FFF ; Hani Tang # So [16] IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT..IDEOGRAPHIC DESCRIPTION CHARACTER ROTATION
3001 ; Bopo Hang Hani Hira Kana Mong Yiii #Po IDEOGRAPHIC COMMA
3002 ; Bopo Hang Hani Hira Kana Mong Phag Yiii #Po IDEOGRAPHIC FULL STOP
3003 ; Bopo Hang Hani Hira Kana # Po DITTO MARK
3006 ; Hani # Lo IDEOGRAPHIC CLOSING MARK
3008 ; Bopo Hang Hani Hira Kana Mong Tibt Yiii #Ps LEFT ANGLE BRACKET
3009 ; Bopo Hang Hani Hira Kana Mong Tibt Yiii #Pe RIGHT ANGLE BRACKET
300A ; Bopo Hang Hani Hira Kana Lisu Mong Tibt Yiii #Ps LEFT DOUBLE ANGLE BRACKET
300B ; Bopo Hang Hani Hira Kana Lisu Mong Tibt Yiii #Pe RIGHT DOUBLE ANGLE BRACKET
300C ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT CORNER BRACKET
300D ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT CORNER BRACKET
300E ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE CORNER BRACKET
300F ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE CORNER BRACKET
3010 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT BLACK LENTICULAR BRACKET
3011 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT BLACK LENTICULAR BRACKET
3013 ; Bopo Hang Hani Hira Kana # So GETA MARK
3014 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT TORTOISE SHELL BRACKET
3015 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT TORTOISE SHELL BRACKET
3016 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE LENTICULAR BRACKET
3017 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE LENTICULAR BRACKET
3018 ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE TORTOISE SHELL BRACKET
3019 ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE TORTOISE SHELL BRACKET
301A ; Bopo Hang Hani Hira Kana Yiii # Ps LEFT WHITE SQUARE BRACKET
301B ; Bopo Hang Hani Hira Kana Yiii # Pe RIGHT WHITE SQUARE BRACKET
301C ; Bopo Hang Hani Hira Kana # Pd WAVE DASH
301D ; Bopo Hang Hani Hira Kana # Ps REVERSED DOUBLE PRIME QUOTATION MARK
301E..301F ; Bopo Hang Hani Hira Kana # Pe [2] DOUBLE PRIME QUOTATION MARK..LOW DOUBLE PRIME QUOTATION MARK
302A..302D ; Bopo Hani # Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
3030 ; Bopo Hang Hani Hira Kana # Pd WAVY DASH
3031..3035 ; Hira Kana # Lm [5] VERTICAL KANA REPEAT MARK..VERTICAL KANA REPEAT MARK LOWER HALF
3037 ; Bopo Hang Hani Hira Kana # So IDEOGRAPHIC TELEGRAPH LINE FEED SEPARATOR SYMBOL
303C ; Hani Hira Kana # Lo MASU MARK
303D ; Hani Hira Kana # Po PART ALTERNATION MARK
303E..303F ; Hani # So [2] IDEOGRAPHIC VARIATION INDICATOR..IDEOGRAPHIC HALF FILL SPACE
3099..309A ; Hira Kana # Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
309B..309C ; Hira Kana # Sk [2] KATAKANA-HIRAGANA VOICED SOUND MARK..KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
30A0 ; Hira Kana # Pd KATAKANA-HIRAGANA DOUBLE HYPHEN
30FB ; Bopo Hang Hani Hira Kana Yiii # Po KATAKANA MIDDLE DOT
30FC ; Hira Kana # Lm KATAKANA-HIRAGANA PROLONGED SOUND MARK
3190..3191 ; Hani # So [2] IDEOGRAPHIC ANNOTATION LINKING MARK..IDEOGRAPHIC ANNOTATION REVERSE MARK
3192..3195 ; Hani # No [4] IDEOGRAPHIC ANNOTATION ONE MARK..IDEOGRAPHIC ANNOTATION FOUR MARK
3196..319F ; Hani # So [10] IDEOGRAPHIC ANNOTATION TOP MARK..IDEOGRAPHIC ANNOTATION MAN MARK
31C0..31E5 ; Hani # So [38] CJK STROKE T..CJK STROKE SZP
31EF ; Hani Tang # So IDEOGRAPHIC DESCRIPTION CHARACTER SUBTRACTION
3220..3229 ; Hani # No [10] PARENTHESIZED IDEOGRAPH ONE..PARENTHESIZED IDEOGRAPH TEN
322A..3247 ; Hani # So [30] PARENTHESIZED IDEOGRAPH MOON..CIRCLED IDEOGRAPH KOTO
3280..3289 ; Hani # No [10] CIRCLED IDEOGRAPH ONE..CIRCLED IDEOGRAPH TEN
328A..32B0 ; Hani # So [39] CIRCLED IDEOGRAPH MOON..CIRCLED IDEOGRAPH NIGHT
32C0..32CB ; Hani # So [12] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DECEMBER
32FF ; Hani # So SQUARE ERA NAME REIWA
3358..3370 ; Hani # So [25] IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR ZERO..IDEOGRAPHIC TELEGRAPH SYMBOL FOR HOUR TWENTY-FOUR
337B..337F ; Hani # So [5] SQUARE ERA NAME HEISEI..SQUARE CORPORATION
33E0..33FE ; Hani # So [31] IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY ONE..IDEOGRAPHIC TELEGRAPH SYMBOL FOR DAY THIRTY-ONE
A66F ; Cyrl Glag # Mn COMBINING CYRILLIC VZMET
A700..A707 ; Hani Latn # Sk [8] MODIFIER LETTER CHINESE TONE YIN PING..MODIFIER LETTER CHINESE TONE YANG RU
A830..A832 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Mlym Modi Nand Shrd Sind Takr Tirh Tutg #No [3] NORTH INDIC FRACTION ONE QUARTER..NORTH INDIC FRACTION THREE QUARTERS
A833..A835 ; Deva Dogr Gujr Guru Khoj Knda Kthi Mahj Modi Nand Shrd Sind Takr Tirh Tutg #No [3] NORTH INDIC FRACTION ONE SIXTEENTH..NORTH INDIC FRACTION THREE SIXTEENTHS
A836..A837 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh #So [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK
A838 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Shrd Sind Takr Tirh #Sc NORTH INDIC RUPEE MARK
A839 ; Deva Dogr Gujr Guru Khoj Kthi Mahj Modi Sind Takr Tirh #So NORTH INDIC QUANTITY MARK
A8F1 ; Beng Deva Tutg # Mn COMBINING DEVANAGARI SIGN AVAGRAHA
A8F3 ; Deva Taml # Lo DEVANAGARI SIGN CANDRABINDU VIRAMA
A92E ; Kali Latn Mymr # Po KAYAH LI SIGN CWI
A9CF ; Bugi Java # Lm JAVANESE PANGRANGKEP
FD3E ; Arab Nkoo # Pe ORNATE LEFT PARENTHESIS
FD3F ; Arab Nkoo # Ps ORNATE RIGHT PARENTHESIS
FDF2 ; Arab Thaa # Lo ARABIC LIGATURE ALLAH ISOLATED FORM
FDFD ; Arab Thaa # So ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
FE45..FE46 ; Bopo Hang Hani Hira Kana # Po [2] SESAME DOT..WHITE SESAME DOT
FF61 ; Bopo Hang Hani Hira Kana Yiii # Po HALFWIDTH IDEOGRAPHIC FULL STOP
FF62 ; Bopo Hang Hani Hira Kana Yiii # Ps HALFWIDTH LEFT CORNER BRACKET
FF63 ; Bopo Hang Hani Hira Kana Yiii # Pe HALFWIDTH RIGHT CORNER BRACKET
FF64..FF65 ; Bopo Hang Hani Hira Kana Yiii # Po [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDLE DOT
FF70 ; Hira Kana # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
FF9E..FF9F ; Hira Kana # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
10100..10101 ; Cpmn Cprt Linb # Po [2] AEGEAN WORD SEPARATOR LINE..AEGEAN WORD SEPARATOR DOT
10102 ; Cprt Linb # Po AEGEAN CHECK MARK
10107..10133 ; Cprt Lina Linb # No [45] AEGEAN NUMBER ONE..AEGEAN NUMBER NINETY THOUSAND
10137..1013F ; Cprt Linb # So [9] AEGEAN WEIGHT BASE UNIT..AEGEAN MEASURE THIRD SUBUNIT
102E0 ; Arab Copt # Mn COPTIC EPACT THOUSANDS MARK
102E1..102FB ; Arab Copt # No [27] COPTIC EPACT DIGIT ONE..COPTIC EPACT NUMBER NINE HUNDRED
10AF2 ; Mani Ougr # Po MANICHAEAN PUNCTUATION DOUBLE DOT WITHIN DOT
11301 ; Gran Taml # Mn GRANTHA SIGN CANDRABINDU
11303 ; Gran Taml # Mc GRANTHA SIGN VISARGA
1133B..1133C ; Gran Taml # Mn [2] COMBINING BINDU BELOW..GRANTHA SIGN NUKTA
11FD0..11FD1 ; Gran Taml # No [2] TAMIL FRACTION ONE QUARTER..TAMIL FRACTION ONE HALF-1
11FD3 ; Gran Taml # No TAMIL FRACTION THREE QUARTERS
1BCA0..1BCA3 ; Dupl # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
1D360..1D371 ; Hani # No [18] COUNTING ROD UNIT DIGIT ONE..COUNTING ROD TENS DIGIT NINE
1F250..1F251 ; Hani # So [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT
# EOF

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,28 @@
# Common helpers for UpdateRelease.py and UpdateDates.py.
import re
def get_current_release():
with open('configure.ac', 'r') as file:
content = file.read()
matches = [match[1] for match in re.findall(r"m4_define\(pcre2_(major|minor|prerelease), \[(.*?)\]\)", content)]
current_release = '%s.%s%s' % tuple(matches)
return current_release
CURRENT_RELEASE = get_current_release()
# Update a file, using a pattern. Verify that it matches the file, and perform
# the replacement.
def update_file(filename, pattern, replacement):
with open(filename, 'r') as file:
content = file.read()
if not re.search(pattern, content):
raise Exception('Pattern not found in %s' % filename)
content = re.sub(pattern, replacement, content)
with open(filename, 'w') as file:
file.write(content)

View File

@@ -0,0 +1,57 @@
#! /usr/bin/env python3
# Script to update all the hardcoded dates in the source tree.
# - Documentation manpages have a "last updated" header and footer.
# - So do the READMEs.
# - The source files have copyright headers.
# This script should be run in the main PCRE2 directory.
import glob
import re
import subprocess
from UpdateCommon import update_file
date_regex = r'\d+ (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\w* \d+'
header_regex = r'(?m)^(.TH.*? )"%s"' % date_regex
last_updated_regex = r'(?m)^Last updated: %s' % date_regex
def get_last_date(filename):
result = subprocess.run(['git', 'log', '-n1', '--date=format:%d %B %Y', '--format=%cd', '--grep', '#noupdate', '--invert-grep', filename], capture_output=True, text=True)
return result.stdout.strip()
def check_no_match(filename, pattern):
with open(filename, 'r') as file:
content = file.read()
if re.search(pattern, content):
raise Exception('Pattern unexpectedly found in %s' % filename)
def update_man_date(filename):
print(' Updating %s' % filename)
file_date = get_last_date(filename)
update_file(filename, header_regex, '\\1"%s"' % file_date)
if filename.startswith('doc/pcre2_') or filename == 'doc/pcre2demo.3':
check_no_match(filename, last_updated_regex)
else:
update_file(filename, last_updated_regex, 'Last updated: %s' % file_date)
print('Updating man pages')
# doc/*.1
for filename in glob.glob('doc/*.1'):
update_man_date(filename)
# doc/*.3
for filename in glob.glob('doc/*.3'):
update_man_date(filename)
# README, NON-AUTOTOOLS-BUILD
print('Updating README and NON-AUTOTOOLS-BUILD')
for filename in ['README', 'NON-AUTOTOOLS-BUILD']:
line = 'Last updated: %s' % get_last_date(filename)
padding = '=' * len(line)
update_file(filename, r'(?i)=+\nLast updated: .*?\n=+', '%s\n%s\n%s' % (padding, line, padding))

View File

@@ -0,0 +1,29 @@
#! /usr/bin/env python3
# Script to update all the hardcoded release numbers in the source tree.
# - Documentation manpages.
# - Bazel MODULE file.
# This script should be run in the main PCRE2 directory.
import glob
from UpdateCommon import update_file, CURRENT_RELEASE
def update_man_version(filename):
print(' Updating %s' % filename)
update_file(filename, r'(.TH.*? )"PCRE2 .*?"', '\\1"PCRE2 %s"' % CURRENT_RELEASE)
print('Updating man pages')
# doc/*.1
for filename in glob.glob('doc/*.1'):
update_man_version(filename)
# doc/*.3
for filename in glob.glob('doc/*.3'):
update_man_version(filename)
# MODULE.bazel
print('Updating MODULE.bazel')
update_file('MODULE.bazel', r'(?m)^ version = ".*?"', ' version = "%s"' % CURRENT_RELEASE)

View File

@@ -0,0 +1,253 @@
drwxr-xr-x install-dir
drwxr-xr-x install-dir/bin
-rwxr-xr-x install-dir/bin/pcre2-config
-rwxr-xr-x install-dir/bin/pcre2grep
-rwxr-xr-x install-dir/bin/pcre2test
drwxr-xr-x install-dir/include
-rw-r--r-- install-dir/include/pcre2.h
-rw-r--r-- install-dir/include/pcre2posix.h
drwxr-xr-x install-dir/lib
drwxr-xr-x install-dir/lib/cmake
drwxr-xr-x install-dir/lib/cmake/pcre2
-rw-r--r-- install-dir/lib/cmake/pcre2/pcre2-config-version.cmake
-rw-r--r-- install-dir/lib/cmake/pcre2/pcre2-config.cmake
-rw-r--r-- install-dir/lib/libpcre2-16.a
lrwxrwxrwx install-dir/lib/libpcre2-16.so -> libpcre2-16.so.0
lrwxrwxrwx install-dir/lib/libpcre2-16.so.0 -> libpcre2-16.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-16.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-32.a
lrwxrwxrwx install-dir/lib/libpcre2-32.so -> libpcre2-32.so.0
lrwxrwxrwx install-dir/lib/libpcre2-32.so.0 -> libpcre2-32.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-32.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-8.a
lrwxrwxrwx install-dir/lib/libpcre2-8.so -> libpcre2-8.so.0
lrwxrwxrwx install-dir/lib/libpcre2-8.so.0 -> libpcre2-8.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-8.so.0.14.0
-rw-r--r-- install-dir/lib/libpcre2-posix.a
lrwxrwxrwx install-dir/lib/libpcre2-posix.so -> libpcre2-posix.so.3
lrwxrwxrwx install-dir/lib/libpcre2-posix.so.3 -> libpcre2-posix.so.3.0.6
-rw-r--r-- install-dir/lib/libpcre2-posix.so.3.0.6
drwxr-xr-x install-dir/lib/pkgconfig
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-16.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-32.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-8.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-posix.pc
drwxr-xr-x install-dir/share
drwxr-xr-x install-dir/share/doc
drwxr-xr-x install-dir/share/doc/pcre2
-rw-r--r-- install-dir/share/doc/pcre2/AUTHORS.md
-rw-r--r-- install-dir/share/doc/pcre2/COPYING
-rw-r--r-- install-dir/share/doc/pcre2/ChangeLog
-rw-r--r-- install-dir/share/doc/pcre2/LICENCE.md
-rw-r--r-- install-dir/share/doc/pcre2/NEWS
-rw-r--r-- install-dir/share/doc/pcre2/README
-rw-r--r-- install-dir/share/doc/pcre2/SECURITY.md
drwxr-xr-x install-dir/share/doc/pcre2/html
-rw-r--r-- install-dir/share/doc/pcre2/html/NON-AUTOTOOLS-BUILD.txt
-rw-r--r-- install-dir/share/doc/pcre2/html/README.txt
-rw-r--r-- install-dir/share/doc/pcre2/html/index.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2-config.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_callout_enumerate.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_copy_with_tables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_config.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_converted_pattern_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_dfa_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_error_message.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_mark.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_match_data_heapframes_size.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_match_data_size.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_ovector_count.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_ovector_pointer.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_startchar.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_compile.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_free_unused_memory.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_assign.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_maketables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_maketables_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_create_from_pattern.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_pattern_convert.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_pattern_info.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_decode.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_encode.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_get_number_of_codes.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_bsr.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_character_tables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_compile_extra_options.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_compile_recursion_guard.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_depth_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_glob_escape.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_glob_separator.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_heap_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_match_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_pattern_compiled_length.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_pattern_length.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_varlookbehind.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_newline.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_offset_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_optimize.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_parens_nest_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_recursion_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_recursion_memory_management.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_substitute_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_substitute_case_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substitute.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_copy_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_copy_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_get_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_get_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_length_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_length_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_list_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_list_get.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_nametable_scan.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_number_from_name.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2api.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2build.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2compat.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2convert.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2demo.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2grep.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2jit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2limits.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2matching.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2partial.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2pattern.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2perform.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2posix.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2sample.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2serialize.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2syntax.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2test.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2unicode.html
-rw-r--r-- install-dir/share/doc/pcre2/pcre2-config.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2grep.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2test.txt
drwxr-xr-x install-dir/share/man
drwxr-xr-x install-dir/share/man/man1
-rw-r--r-- install-dir/share/man/man1/pcre2-config.1
-rw-r--r-- install-dir/share/man/man1/pcre2grep.1
-rw-r--r-- install-dir/share/man/man1/pcre2test.1
drwxr-xr-x install-dir/share/man/man3
-rw-r--r-- install-dir/share/man/man3/pcre2.3
-rw-r--r-- install-dir/share/man/man3/pcre2_callout_enumerate.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_copy_with_tables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_config.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_converted_pattern_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_dfa_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_error_message.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_mark.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_match_data_heapframes_size.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_match_data_size.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_ovector_count.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_ovector_pointer.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_startchar.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_compile.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_free_unused_memory.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_assign.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_maketables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_maketables_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_create_from_pattern.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_pattern_convert.3
-rw-r--r-- install-dir/share/man/man3/pcre2_pattern_info.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_decode.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_encode.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_get_number_of_codes.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_bsr.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_character_tables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_compile_extra_options.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_compile_recursion_guard.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_depth_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_glob_escape.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_glob_separator.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_heap_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_match_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_pattern_compiled_length.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_pattern_length.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_varlookbehind.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_newline.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_offset_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_optimize.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_parens_nest_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_recursion_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_recursion_memory_management.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_substitute_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_substitute_case_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substitute.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_copy_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_copy_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_get_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_get_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_length_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_length_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_list_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_list_get.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_nametable_scan.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_number_from_name.3
-rw-r--r-- install-dir/share/man/man3/pcre2api.3
-rw-r--r-- install-dir/share/man/man3/pcre2build.3
-rw-r--r-- install-dir/share/man/man3/pcre2callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2compat.3
-rw-r--r-- install-dir/share/man/man3/pcre2convert.3
-rw-r--r-- install-dir/share/man/man3/pcre2demo.3
-rw-r--r-- install-dir/share/man/man3/pcre2jit.3
-rw-r--r-- install-dir/share/man/man3/pcre2limits.3
-rw-r--r-- install-dir/share/man/man3/pcre2matching.3
-rw-r--r-- install-dir/share/man/man3/pcre2partial.3
-rw-r--r-- install-dir/share/man/man3/pcre2pattern.3
-rw-r--r-- install-dir/share/man/man3/pcre2perform.3
-rw-r--r-- install-dir/share/man/man3/pcre2posix.3
-rw-r--r-- install-dir/share/man/man3/pcre2sample.3
-rw-r--r-- install-dir/share/man/man3/pcre2serialize.3
-rw-r--r-- install-dir/share/man/man3/pcre2syntax.3
-rw-r--r-- install-dir/share/man/man3/pcre2unicode.3

View File

@@ -0,0 +1,253 @@
drwxr-xr-x install-dir
drwxr-xr-x install-dir/bin
-rwxr-xr-x install-dir/bin/pcre2-config
-rwxr-xr-x install-dir/bin/pcre2grep
-rwxr-xr-x install-dir/bin/pcre2test
drwxr-xr-x install-dir/include
-rw-r--r-- install-dir/include/pcre2.h
-rw-r--r-- install-dir/include/pcre2posix.h
drwxr-xr-x install-dir/lib
drwxr-xr-x install-dir/lib/cmake
drwxr-xr-x install-dir/lib/cmake/pcre2
-rw-r--r-- install-dir/lib/cmake/pcre2/pcre2-config-version.cmake
-rw-r--r-- install-dir/lib/cmake/pcre2/pcre2-config.cmake
-rwxr-xr-x install-dir/lib/libpcre2-16.0.14.0.dylib
lrwxr-xr-x install-dir/lib/libpcre2-16.0.dylib -> libpcre2-16.0.14.0.dylib
-rw-r--r-- install-dir/lib/libpcre2-16.a
lrwxr-xr-x install-dir/lib/libpcre2-16.dylib -> libpcre2-16.0.dylib
-rwxr-xr-x install-dir/lib/libpcre2-32.0.14.0.dylib
lrwxr-xr-x install-dir/lib/libpcre2-32.0.dylib -> libpcre2-32.0.14.0.dylib
-rw-r--r-- install-dir/lib/libpcre2-32.a
lrwxr-xr-x install-dir/lib/libpcre2-32.dylib -> libpcre2-32.0.dylib
-rwxr-xr-x install-dir/lib/libpcre2-8.0.14.0.dylib
lrwxr-xr-x install-dir/lib/libpcre2-8.0.dylib -> libpcre2-8.0.14.0.dylib
-rw-r--r-- install-dir/lib/libpcre2-8.a
lrwxr-xr-x install-dir/lib/libpcre2-8.dylib -> libpcre2-8.0.dylib
-rwxr-xr-x install-dir/lib/libpcre2-posix.3.0.6.dylib
lrwxr-xr-x install-dir/lib/libpcre2-posix.3.dylib -> libpcre2-posix.3.0.6.dylib
-rw-r--r-- install-dir/lib/libpcre2-posix.a
lrwxr-xr-x install-dir/lib/libpcre2-posix.dylib -> libpcre2-posix.3.dylib
drwxr-xr-x install-dir/lib/pkgconfig
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-16.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-32.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-8.pc
-rw-r--r-- install-dir/lib/pkgconfig/libpcre2-posix.pc
drwxr-xr-x install-dir/share
drwxr-xr-x install-dir/share/doc
drwxr-xr-x install-dir/share/doc/pcre2
-rw-r--r-- install-dir/share/doc/pcre2/AUTHORS.md
-rw-r--r-- install-dir/share/doc/pcre2/COPYING
-rw-r--r-- install-dir/share/doc/pcre2/ChangeLog
-rw-r--r-- install-dir/share/doc/pcre2/LICENCE.md
-rw-r--r-- install-dir/share/doc/pcre2/NEWS
-rw-r--r-- install-dir/share/doc/pcre2/README
-rw-r--r-- install-dir/share/doc/pcre2/SECURITY.md
drwxr-xr-x install-dir/share/doc/pcre2/html
-rw-r--r-- install-dir/share/doc/pcre2/html/NON-AUTOTOOLS-BUILD.txt
-rw-r--r-- install-dir/share/doc/pcre2/html/README.txt
-rw-r--r-- install-dir/share/doc/pcre2/html/index.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2-config.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_callout_enumerate.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_copy_with_tables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_code_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_compile_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_config.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_convert_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_converted_pattern_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_dfa_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_general_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_error_message.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_mark.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_match_data_heapframes_size.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_match_data_size.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_ovector_count.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_ovector_pointer.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_get_startchar.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_compile.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_free_unused_memory.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_assign.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_jit_stack_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_maketables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_maketables_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_copy.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_context_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_create.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_create_from_pattern.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_match_data_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_pattern_convert.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_pattern_info.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_decode.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_encode.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_serialize_get_number_of_codes.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_bsr.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_character_tables.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_compile_extra_options.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_compile_recursion_guard.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_depth_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_glob_escape.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_glob_separator.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_heap_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_match_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_pattern_compiled_length.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_pattern_length.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_max_varlookbehind.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_newline.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_offset_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_optimize.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_parens_nest_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_recursion_limit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_recursion_memory_management.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_substitute_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_set_substitute_case_callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substitute.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_copy_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_copy_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_get_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_get_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_length_byname.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_length_bynumber.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_list_free.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_list_get.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_nametable_scan.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2_substring_number_from_name.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2api.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2build.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2callout.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2compat.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2convert.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2demo.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2grep.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2jit.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2limits.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2matching.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2partial.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2pattern.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2perform.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2posix.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2sample.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2serialize.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2syntax.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2test.html
-rw-r--r-- install-dir/share/doc/pcre2/html/pcre2unicode.html
-rw-r--r-- install-dir/share/doc/pcre2/pcre2-config.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2grep.txt
-rw-r--r-- install-dir/share/doc/pcre2/pcre2test.txt
drwxr-xr-x install-dir/share/man
drwxr-xr-x install-dir/share/man/man1
-rw-r--r-- install-dir/share/man/man1/pcre2-config.1
-rw-r--r-- install-dir/share/man/man1/pcre2grep.1
-rw-r--r-- install-dir/share/man/man1/pcre2test.1
drwxr-xr-x install-dir/share/man/man3
-rw-r--r-- install-dir/share/man/man3/pcre2.3
-rw-r--r-- install-dir/share/man/man3/pcre2_callout_enumerate.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_copy_with_tables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_code_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_compile_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_config.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_convert_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_converted_pattern_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_dfa_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_general_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_error_message.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_mark.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_match_data_heapframes_size.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_match_data_size.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_ovector_count.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_ovector_pointer.3
-rw-r--r-- install-dir/share/man/man3/pcre2_get_startchar.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_compile.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_free_unused_memory.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_assign.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_jit_stack_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_maketables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_maketables_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_copy.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_context_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_create.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_create_from_pattern.3
-rw-r--r-- install-dir/share/man/man3/pcre2_match_data_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_pattern_convert.3
-rw-r--r-- install-dir/share/man/man3/pcre2_pattern_info.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_decode.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_encode.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_serialize_get_number_of_codes.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_bsr.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_character_tables.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_compile_extra_options.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_compile_recursion_guard.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_depth_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_glob_escape.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_glob_separator.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_heap_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_match_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_pattern_compiled_length.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_pattern_length.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_max_varlookbehind.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_newline.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_offset_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_optimize.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_parens_nest_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_recursion_limit.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_recursion_memory_management.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_substitute_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_set_substitute_case_callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substitute.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_copy_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_copy_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_get_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_get_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_length_byname.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_length_bynumber.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_list_free.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_list_get.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_nametable_scan.3
-rw-r--r-- install-dir/share/man/man3/pcre2_substring_number_from_name.3
-rw-r--r-- install-dir/share/man/man3/pcre2api.3
-rw-r--r-- install-dir/share/man/man3/pcre2build.3
-rw-r--r-- install-dir/share/man/man3/pcre2callout.3
-rw-r--r-- install-dir/share/man/man3/pcre2compat.3
-rw-r--r-- install-dir/share/man/man3/pcre2convert.3
-rw-r--r-- install-dir/share/man/man3/pcre2demo.3
-rw-r--r-- install-dir/share/man/man3/pcre2jit.3
-rw-r--r-- install-dir/share/man/man3/pcre2limits.3
-rw-r--r-- install-dir/share/man/man3/pcre2matching.3
-rw-r--r-- install-dir/share/man/man3/pcre2partial.3
-rw-r--r-- install-dir/share/man/man3/pcre2pattern.3
-rw-r--r-- install-dir/share/man/man3/pcre2perform.3
-rw-r--r-- install-dir/share/man/man3/pcre2posix.3
-rw-r--r-- install-dir/share/man/man3/pcre2sample.3
-rw-r--r-- install-dir/share/man/man3/pcre2serialize.3
-rw-r--r-- install-dir/share/man/man3/pcre2syntax.3
-rw-r--r-- install-dir/share/man/man3/pcre2unicode.3

View File

@@ -0,0 +1,248 @@
d---- .\install-dir\bin
-a--- .\install-dir\bin\pcre2-16.dll
-a--- .\install-dir\bin\pcre2-32.dll
-a--- .\install-dir\bin\pcre2-8.dll
-a--- .\install-dir\bin\pcre2-config
-a--- .\install-dir\bin\pcre2-posix.dll
-a--- .\install-dir\bin\pcre2grep.exe
-a--- .\install-dir\bin\pcre2test.exe
d---- .\install-dir\include
-a--- .\install-dir\include\pcre2.h
-a--- .\install-dir\include\pcre2posix.h
d---- .\install-dir\lib
d---- .\install-dir\lib\cmake
d---- .\install-dir\lib\cmake\pcre2
-a--- .\install-dir\lib\cmake\pcre2\pcre2-config-version.cmake
-a--- .\install-dir\lib\cmake\pcre2\pcre2-config.cmake
-a--- .\install-dir\lib\pcre2-16-static.lib
-a--- .\install-dir\lib\pcre2-16.lib
-a--- .\install-dir\lib\pcre2-32-static.lib
-a--- .\install-dir\lib\pcre2-32.lib
-a--- .\install-dir\lib\pcre2-8-static.lib
-a--- .\install-dir\lib\pcre2-8.lib
-a--- .\install-dir\lib\pcre2-posix-static.lib
-a--- .\install-dir\lib\pcre2-posix.lib
d---- .\install-dir\lib\pkgconfig
-a--- .\install-dir\lib\pkgconfig\libpcre2-16.pc
-a--- .\install-dir\lib\pkgconfig\libpcre2-32.pc
-a--- .\install-dir\lib\pkgconfig\libpcre2-8.pc
-a--- .\install-dir\lib\pkgconfig\libpcre2-posix.pc
d---- .\install-dir\share
d---- .\install-dir\share\doc
d---- .\install-dir\share\doc\pcre2
-a--- .\install-dir\share\doc\pcre2\AUTHORS.md
-a--- .\install-dir\share\doc\pcre2\COPYING
-a--- .\install-dir\share\doc\pcre2\ChangeLog
-a--- .\install-dir\share\doc\pcre2\LICENCE.md
-a--- .\install-dir\share\doc\pcre2\NEWS
-a--- .\install-dir\share\doc\pcre2\README
-a--- .\install-dir\share\doc\pcre2\SECURITY.md
d---- .\install-dir\share\doc\pcre2\html
-a--- .\install-dir\share\doc\pcre2\html\NON-AUTOTOOLS-BUILD.txt
-a--- .\install-dir\share\doc\pcre2\html\README.txt
-a--- .\install-dir\share\doc\pcre2\html\index.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2-config.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_callout_enumerate.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_code_copy.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_code_copy_with_tables.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_code_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_compile.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_compile_context_copy.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_compile_context_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_compile_context_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_config.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_convert_context_copy.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_convert_context_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_convert_context_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_converted_pattern_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_dfa_match.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_general_context_copy.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_general_context_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_general_context_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_error_message.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_mark.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_match_data_heapframes_size.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_match_data_size.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_ovector_count.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_ovector_pointer.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_get_startchar.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_compile.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_free_unused_memory.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_match.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_stack_assign.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_stack_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_jit_stack_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_maketables.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_maketables_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_context_copy.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_context_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_context_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_data_create.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_data_create_from_pattern.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_match_data_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_pattern_convert.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_pattern_info.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_serialize_decode.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_serialize_encode.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_serialize_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_serialize_get_number_of_codes.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_bsr.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_callout.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_character_tables.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_compile_extra_options.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_compile_recursion_guard.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_depth_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_glob_escape.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_glob_separator.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_heap_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_match_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_max_pattern_compiled_length.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_max_pattern_length.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_max_varlookbehind.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_newline.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_offset_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_optimize.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_parens_nest_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_recursion_limit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_recursion_memory_management.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_substitute_callout.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_set_substitute_case_callout.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substitute.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_copy_byname.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_copy_bynumber.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_get_byname.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_get_bynumber.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_length_byname.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_length_bynumber.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_list_free.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_list_get.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_nametable_scan.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2_substring_number_from_name.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2api.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2build.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2callout.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2compat.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2convert.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2demo.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2grep.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2jit.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2limits.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2matching.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2partial.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2pattern.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2perform.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2posix.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2sample.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2serialize.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2syntax.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2test.html
-a--- .\install-dir\share\doc\pcre2\html\pcre2unicode.html
-a--- .\install-dir\share\doc\pcre2\pcre2-config.txt
-a--- .\install-dir\share\doc\pcre2\pcre2.txt
-a--- .\install-dir\share\doc\pcre2\pcre2grep.txt
-a--- .\install-dir\share\doc\pcre2\pcre2test.txt
d---- .\install-dir\share\man
d---- .\install-dir\share\man\man1
-a--- .\install-dir\share\man\man1\pcre2-config.1
-a--- .\install-dir\share\man\man1\pcre2grep.1
-a--- .\install-dir\share\man\man1\pcre2test.1
d---- .\install-dir\share\man\man3
-a--- .\install-dir\share\man\man3\pcre2.3
-a--- .\install-dir\share\man\man3\pcre2_callout_enumerate.3
-a--- .\install-dir\share\man\man3\pcre2_code_copy.3
-a--- .\install-dir\share\man\man3\pcre2_code_copy_with_tables.3
-a--- .\install-dir\share\man\man3\pcre2_code_free.3
-a--- .\install-dir\share\man\man3\pcre2_compile.3
-a--- .\install-dir\share\man\man3\pcre2_compile_context_copy.3
-a--- .\install-dir\share\man\man3\pcre2_compile_context_create.3
-a--- .\install-dir\share\man\man3\pcre2_compile_context_free.3
-a--- .\install-dir\share\man\man3\pcre2_config.3
-a--- .\install-dir\share\man\man3\pcre2_convert_context_copy.3
-a--- .\install-dir\share\man\man3\pcre2_convert_context_create.3
-a--- .\install-dir\share\man\man3\pcre2_convert_context_free.3
-a--- .\install-dir\share\man\man3\pcre2_converted_pattern_free.3
-a--- .\install-dir\share\man\man3\pcre2_dfa_match.3
-a--- .\install-dir\share\man\man3\pcre2_general_context_copy.3
-a--- .\install-dir\share\man\man3\pcre2_general_context_create.3
-a--- .\install-dir\share\man\man3\pcre2_general_context_free.3
-a--- .\install-dir\share\man\man3\pcre2_get_error_message.3
-a--- .\install-dir\share\man\man3\pcre2_get_mark.3
-a--- .\install-dir\share\man\man3\pcre2_get_match_data_heapframes_size.3
-a--- .\install-dir\share\man\man3\pcre2_get_match_data_size.3
-a--- .\install-dir\share\man\man3\pcre2_get_ovector_count.3
-a--- .\install-dir\share\man\man3\pcre2_get_ovector_pointer.3
-a--- .\install-dir\share\man\man3\pcre2_get_startchar.3
-a--- .\install-dir\share\man\man3\pcre2_jit_compile.3
-a--- .\install-dir\share\man\man3\pcre2_jit_free_unused_memory.3
-a--- .\install-dir\share\man\man3\pcre2_jit_match.3
-a--- .\install-dir\share\man\man3\pcre2_jit_stack_assign.3
-a--- .\install-dir\share\man\man3\pcre2_jit_stack_create.3
-a--- .\install-dir\share\man\man3\pcre2_jit_stack_free.3
-a--- .\install-dir\share\man\man3\pcre2_maketables.3
-a--- .\install-dir\share\man\man3\pcre2_maketables_free.3
-a--- .\install-dir\share\man\man3\pcre2_match.3
-a--- .\install-dir\share\man\man3\pcre2_match_context_copy.3
-a--- .\install-dir\share\man\man3\pcre2_match_context_create.3
-a--- .\install-dir\share\man\man3\pcre2_match_context_free.3
-a--- .\install-dir\share\man\man3\pcre2_match_data_create.3
-a--- .\install-dir\share\man\man3\pcre2_match_data_create_from_pattern.3
-a--- .\install-dir\share\man\man3\pcre2_match_data_free.3
-a--- .\install-dir\share\man\man3\pcre2_pattern_convert.3
-a--- .\install-dir\share\man\man3\pcre2_pattern_info.3
-a--- .\install-dir\share\man\man3\pcre2_serialize_decode.3
-a--- .\install-dir\share\man\man3\pcre2_serialize_encode.3
-a--- .\install-dir\share\man\man3\pcre2_serialize_free.3
-a--- .\install-dir\share\man\man3\pcre2_serialize_get_number_of_codes.3
-a--- .\install-dir\share\man\man3\pcre2_set_bsr.3
-a--- .\install-dir\share\man\man3\pcre2_set_callout.3
-a--- .\install-dir\share\man\man3\pcre2_set_character_tables.3
-a--- .\install-dir\share\man\man3\pcre2_set_compile_extra_options.3
-a--- .\install-dir\share\man\man3\pcre2_set_compile_recursion_guard.3
-a--- .\install-dir\share\man\man3\pcre2_set_depth_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_glob_escape.3
-a--- .\install-dir\share\man\man3\pcre2_set_glob_separator.3
-a--- .\install-dir\share\man\man3\pcre2_set_heap_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_match_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_max_pattern_compiled_length.3
-a--- .\install-dir\share\man\man3\pcre2_set_max_pattern_length.3
-a--- .\install-dir\share\man\man3\pcre2_set_max_varlookbehind.3
-a--- .\install-dir\share\man\man3\pcre2_set_newline.3
-a--- .\install-dir\share\man\man3\pcre2_set_offset_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_optimize.3
-a--- .\install-dir\share\man\man3\pcre2_set_parens_nest_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_recursion_limit.3
-a--- .\install-dir\share\man\man3\pcre2_set_recursion_memory_management.3
-a--- .\install-dir\share\man\man3\pcre2_set_substitute_callout.3
-a--- .\install-dir\share\man\man3\pcre2_set_substitute_case_callout.3
-a--- .\install-dir\share\man\man3\pcre2_substitute.3
-a--- .\install-dir\share\man\man3\pcre2_substring_copy_byname.3
-a--- .\install-dir\share\man\man3\pcre2_substring_copy_bynumber.3
-a--- .\install-dir\share\man\man3\pcre2_substring_free.3
-a--- .\install-dir\share\man\man3\pcre2_substring_get_byname.3
-a--- .\install-dir\share\man\man3\pcre2_substring_get_bynumber.3
-a--- .\install-dir\share\man\man3\pcre2_substring_length_byname.3
-a--- .\install-dir\share\man\man3\pcre2_substring_length_bynumber.3
-a--- .\install-dir\share\man\man3\pcre2_substring_list_free.3
-a--- .\install-dir\share\man\man3\pcre2_substring_list_get.3
-a--- .\install-dir\share\man\man3\pcre2_substring_nametable_scan.3
-a--- .\install-dir\share\man\man3\pcre2_substring_number_from_name.3
-a--- .\install-dir\share\man\man3\pcre2api.3
-a--- .\install-dir\share\man\man3\pcre2build.3
-a--- .\install-dir\share\man\man3\pcre2callout.3
-a--- .\install-dir\share\man\man3\pcre2compat.3
-a--- .\install-dir\share\man\man3\pcre2convert.3
-a--- .\install-dir\share\man\man3\pcre2demo.3
-a--- .\install-dir\share\man\man3\pcre2jit.3
-a--- .\install-dir\share\man\man3\pcre2limits.3
-a--- .\install-dir\share\man\man3\pcre2matching.3
-a--- .\install-dir\share\man\man3\pcre2partial.3
-a--- .\install-dir\share\man\man3\pcre2pattern.3
-a--- .\install-dir\share\man\man3\pcre2perform.3
-a--- .\install-dir\share\man\man3\pcre2posix.3
-a--- .\install-dir\share\man\man3\pcre2sample.3
-a--- .\install-dir\share\man\man3\pcre2serialize.3
-a--- .\install-dir\share\man\man3\pcre2syntax.3
-a--- .\install-dir\share\man\man3\pcre2unicode.3

View File

@@ -0,0 +1,255 @@
drwxr-xr-x install-dir
drwxr-xr-x install-dir/usr
drwxr-xr-x install-dir/usr/local
drwxr-xr-x install-dir/usr/local/bin
-rwxr-xr-x install-dir/usr/local/bin/pcre2-config
-rwxr-xr-x install-dir/usr/local/bin/pcre2grep
-rwxr-xr-x install-dir/usr/local/bin/pcre2test
drwxr-xr-x install-dir/usr/local/include
-rw-r--r-- install-dir/usr/local/include/pcre2.h
-rw-r--r-- install-dir/usr/local/include/pcre2posix.h
drwxr-xr-x install-dir/usr/local/lib
-rw-r--r-- install-dir/usr/local/lib/libpcre2-16.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-16.la
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-16.so -> libpcre2-16.so.0.14.0
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-16.so.0 -> libpcre2-16.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-16.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-32.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-32.la
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-32.so -> libpcre2-32.so.0.14.0
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-32.so.0 -> libpcre2-32.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-32.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-8.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-8.la
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-8.so -> libpcre2-8.so.0.14.0
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-8.so.0 -> libpcre2-8.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-8.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-posix.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.la
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.so -> libpcre2-posix.so.3.0.6
lrwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.so.3 -> libpcre2-posix.so.3.0.6
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.so.3.0.6
drwxr-xr-x install-dir/usr/local/lib/pkgconfig
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-16.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-32.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-8.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-posix.pc
drwxr-xr-x install-dir/usr/local/share
drwxr-xr-x install-dir/usr/local/share/doc
drwxr-xr-x install-dir/usr/local/share/doc/pcre2
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/AUTHORS.md
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/COPYING
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/ChangeLog
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/LICENCE.md
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/NEWS
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/README
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/SECURITY.md
drwxr-xr-x install-dir/usr/local/share/doc/pcre2/html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/NON-AUTOTOOLS-BUILD.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/README.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/index.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2-config.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_callout_enumerate.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_copy_with_tables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_config.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_converted_pattern_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_dfa_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_error_message.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_mark.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_match_data_heapframes_size.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_match_data_size.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_ovector_count.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_ovector_pointer.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_startchar.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_compile.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_free_unused_memory.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_assign.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_maketables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_maketables_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_create_from_pattern.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_pattern_convert.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_pattern_info.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_decode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_encode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_get_number_of_codes.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_bsr.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_character_tables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_compile_extra_options.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_compile_recursion_guard.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_depth_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_glob_escape.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_glob_separator.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_heap_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_match_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_pattern_compiled_length.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_pattern_length.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_varlookbehind.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_newline.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_offset_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_optimize.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_parens_nest_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_recursion_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_recursion_memory_management.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_substitute_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_substitute_case_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substitute.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_copy_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_copy_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_get_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_get_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_length_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_length_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_list_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_list_get.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_nametable_scan.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_number_from_name.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2api.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2build.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2compat.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2convert.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2demo.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2grep.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2jit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2limits.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2matching.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2partial.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2pattern.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2perform.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2posix.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2sample.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2serialize.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2syntax.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2test.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2unicode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2-config.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2grep.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2test.txt
drwxr-xr-x install-dir/usr/local/share/man
drwxr-xr-x install-dir/usr/local/share/man/man1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2-config.1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2grep.1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2test.1
drwxr-xr-x install-dir/usr/local/share/man/man3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_callout_enumerate.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_copy_with_tables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_config.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_converted_pattern_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_dfa_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_error_message.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_mark.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_match_data_heapframes_size.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_match_data_size.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_ovector_count.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_ovector_pointer.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_startchar.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_compile.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_free_unused_memory.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_assign.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_maketables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_maketables_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_create_from_pattern.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_pattern_convert.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_pattern_info.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_decode.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_encode.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_get_number_of_codes.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_bsr.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_character_tables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_compile_extra_options.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_compile_recursion_guard.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_depth_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_glob_escape.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_glob_separator.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_heap_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_match_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_pattern_compiled_length.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_pattern_length.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_varlookbehind.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_newline.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_offset_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_optimize.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_parens_nest_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_recursion_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_recursion_memory_management.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_substitute_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_substitute_case_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substitute.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_copy_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_copy_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_get_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_get_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_length_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_length_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_list_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_list_get.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_nametable_scan.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_number_from_name.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2api.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2build.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2compat.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2convert.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2demo.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2jit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2limits.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2matching.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2partial.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2pattern.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2perform.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2posix.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2sample.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2serialize.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2syntax.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2unicode.3

View File

@@ -0,0 +1,255 @@
drwxr-xr-x install-dir
drwxr-xr-x install-dir/usr
drwxr-xr-x install-dir/usr/local
drwxr-xr-x install-dir/usr/local/bin
-rwxr-xr-x install-dir/usr/local/bin/pcre2-config
-rwxr-xr-x install-dir/usr/local/bin/pcre2grep
-rwxr-xr-x install-dir/usr/local/bin/pcre2test
drwxr-xr-x install-dir/usr/local/include
-rw-r--r-- install-dir/usr/local/include/pcre2.h
-rw-r--r-- install-dir/usr/local/include/pcre2posix.h
drwxr-xr-x install-dir/usr/local/lib
-rw-r--r-- install-dir/usr/local/lib/libpcre2-16.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-16.la
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-16.so -> libpcre2-16.so.0.14.0
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-16.so.0 -> libpcre2-16.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-16.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-32.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-32.la
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-32.so -> libpcre2-32.so.0.14.0
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-32.so.0 -> libpcre2-32.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-32.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-8.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-8.la
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-8.so -> libpcre2-8.so.0.14.0
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-8.so.0 -> libpcre2-8.so.0.14.0
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-8.so.0.14.0
-rw-r--r-- install-dir/usr/local/lib/libpcre2-posix.a
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.la
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-posix.so -> libpcre2-posix.so.3.0.6
lrwxrwxrwx install-dir/usr/local/lib/libpcre2-posix.so.3 -> libpcre2-posix.so.3.0.6
-rwxr-xr-x install-dir/usr/local/lib/libpcre2-posix.so.3.0.6
drwxr-xr-x install-dir/usr/local/lib/pkgconfig
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-16.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-32.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-8.pc
-rw-r--r-- install-dir/usr/local/lib/pkgconfig/libpcre2-posix.pc
drwxr-xr-x install-dir/usr/local/share
drwxr-xr-x install-dir/usr/local/share/doc
drwxr-xr-x install-dir/usr/local/share/doc/pcre2
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/AUTHORS.md
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/COPYING
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/ChangeLog
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/LICENCE.md
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/NEWS
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/README
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/SECURITY.md
drwxr-xr-x install-dir/usr/local/share/doc/pcre2/html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/NON-AUTOTOOLS-BUILD.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/README.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/index.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2-config.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_callout_enumerate.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_copy_with_tables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_code_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_compile_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_config.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_convert_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_converted_pattern_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_dfa_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_general_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_error_message.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_mark.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_match_data_heapframes_size.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_match_data_size.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_ovector_count.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_ovector_pointer.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_get_startchar.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_compile.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_free_unused_memory.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_assign.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_jit_stack_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_maketables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_maketables_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_copy.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_context_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_create.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_create_from_pattern.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_match_data_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_pattern_convert.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_pattern_info.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_decode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_encode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_serialize_get_number_of_codes.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_bsr.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_character_tables.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_compile_extra_options.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_compile_recursion_guard.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_depth_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_glob_escape.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_glob_separator.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_heap_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_match_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_pattern_compiled_length.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_pattern_length.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_max_varlookbehind.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_newline.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_offset_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_optimize.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_parens_nest_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_recursion_limit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_recursion_memory_management.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_substitute_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_set_substitute_case_callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substitute.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_copy_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_copy_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_get_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_get_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_length_byname.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_length_bynumber.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_list_free.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_list_get.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_nametable_scan.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2_substring_number_from_name.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2api.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2build.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2callout.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2compat.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2convert.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2demo.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2grep.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2jit.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2limits.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2matching.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2partial.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2pattern.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2perform.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2posix.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2sample.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2serialize.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2syntax.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2test.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/html/pcre2unicode.html
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2-config.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2grep.txt
-rw-r--r-- install-dir/usr/local/share/doc/pcre2/pcre2test.txt
drwxr-xr-x install-dir/usr/local/share/man
drwxr-xr-x install-dir/usr/local/share/man/man1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2-config.1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2grep.1
-rw-r--r-- install-dir/usr/local/share/man/man1/pcre2test.1
drwxr-xr-x install-dir/usr/local/share/man/man3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_callout_enumerate.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_copy_with_tables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_code_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_compile_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_config.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_convert_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_converted_pattern_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_dfa_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_general_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_error_message.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_mark.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_match_data_heapframes_size.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_match_data_size.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_ovector_count.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_ovector_pointer.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_get_startchar.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_compile.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_free_unused_memory.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_assign.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_jit_stack_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_maketables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_maketables_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_copy.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_context_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_create.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_create_from_pattern.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_match_data_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_pattern_convert.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_pattern_info.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_decode.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_encode.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_serialize_get_number_of_codes.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_bsr.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_character_tables.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_compile_extra_options.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_compile_recursion_guard.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_depth_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_glob_escape.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_glob_separator.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_heap_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_match_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_pattern_compiled_length.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_pattern_length.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_max_varlookbehind.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_newline.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_offset_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_optimize.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_parens_nest_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_recursion_limit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_recursion_memory_management.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_substitute_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_set_substitute_case_callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substitute.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_copy_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_copy_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_get_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_get_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_length_byname.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_length_bynumber.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_list_free.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_list_get.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_nametable_scan.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2_substring_number_from_name.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2api.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2build.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2callout.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2compat.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2convert.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2demo.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2jit.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2limits.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2matching.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2partial.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2pattern.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2perform.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2posix.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2sample.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2serialize.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2syntax.3
-rw-r--r-- install-dir/usr/local/share/man/man3/pcre2unicode.3

View File

@@ -0,0 +1,467 @@
drwxr-xr-x tarball-dir
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/AUTHORS.md
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/BUILD.bazel
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/CMakeLists.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/COPYING
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/ChangeLog
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/HACKING
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/INSTALL
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/LICENCE.md
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/MODULE.bazel
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/Makefile.am
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/Makefile.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/NEWS
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/NON-AUTOTOOLS-BUILD
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/README
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/RunGrepTest
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/RunGrepTest.bat
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/RunTest
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/RunTest.bat
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/SECURITY.md
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/WORKSPACE.bazel
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/aclocal.m4
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/ar-lib
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/build.zig
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/cmake
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/cmake/COPYING-CMAKE-SCRIPTS
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/cmake/FindEditline.cmake
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/cmake/FindReadline.cmake
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/cmake/pcre2-config-version.cmake.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/cmake/pcre2-config.cmake.in
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/compile
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/config-cmake.h.in
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/config.guess
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/config.sub
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/configure
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/configure.ac
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/depcomp
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/deps
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/deps/sljit
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorApple.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorFreeBSD.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorPosix.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorWindows.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorNetBSD.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitProtExecAllocatorPosix.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorWindows.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitConfig.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitConfigCPU.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitConfigInternal.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitLir.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitLir.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeARM_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeARM_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeARM_T2_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeMIPS_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeMIPS_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeMIPS_common.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativePPC_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativePPC_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativePPC_common.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeRISCV_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeRISCV_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeRISCV_common.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeS390X.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeX86_32.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeX86_64.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitNativeX86_common.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitSerialize.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/deps/sljit/sljit_src/sljitUtils.c
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/doc
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/doc/html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/NON-AUTOTOOLS-BUILD.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/README.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/index.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2-config.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_callout_enumerate.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_code_copy.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_code_copy_with_tables.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_code_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_compile.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_compile_context_copy.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_compile_context_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_compile_context_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_config.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_convert_context_copy.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_convert_context_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_convert_context_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_converted_pattern_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_dfa_match.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_general_context_copy.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_general_context_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_general_context_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_error_message.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_mark.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_match_data_heapframes_size.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_match_data_size.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_ovector_count.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_ovector_pointer.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_get_startchar.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_compile.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_free_unused_memory.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_match.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_stack_assign.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_stack_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_jit_stack_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_maketables.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_maketables_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_context_copy.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_context_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_context_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_data_create.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_data_create_from_pattern.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_match_data_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_pattern_convert.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_pattern_info.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_serialize_decode.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_serialize_encode.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_serialize_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_serialize_get_number_of_codes.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_bsr.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_callout.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_character_tables.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_compile_extra_options.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_compile_recursion_guard.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_depth_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_glob_escape.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_glob_separator.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_heap_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_match_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_max_pattern_compiled_length.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_max_pattern_length.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_max_varlookbehind.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_newline.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_offset_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_optimize.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_parens_nest_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_recursion_limit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_recursion_memory_management.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_substitute_callout.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_set_substitute_case_callout.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substitute.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_copy_byname.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_copy_bynumber.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_get_byname.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_get_bynumber.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_length_byname.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_length_bynumber.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_list_free.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_list_get.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_nametable_scan.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2_substring_number_from_name.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2api.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2build.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2callout.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2compat.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2convert.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2demo.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2grep.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2jit.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2limits.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2matching.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2partial.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2pattern.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2perform.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2posix.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2sample.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2serialize.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2syntax.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2test.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/html/pcre2unicode.html
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2-config.1
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2-config.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_callout_enumerate.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_code_copy.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_code_copy_with_tables.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_code_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_compile.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_compile_context_copy.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_compile_context_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_compile_context_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_config.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_convert_context_copy.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_convert_context_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_convert_context_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_converted_pattern_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_dfa_match.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_general_context_copy.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_general_context_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_general_context_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_error_message.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_mark.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_match_data_heapframes_size.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_match_data_size.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_ovector_count.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_ovector_pointer.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_get_startchar.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_compile.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_free_unused_memory.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_match.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_stack_assign.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_stack_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_jit_stack_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_maketables.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_maketables_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_context_copy.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_context_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_context_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_data_create.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_data_create_from_pattern.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_match_data_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_pattern_convert.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_pattern_info.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_serialize_decode.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_serialize_encode.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_serialize_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_serialize_get_number_of_codes.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_bsr.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_callout.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_character_tables.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_compile_extra_options.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_compile_recursion_guard.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_depth_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_glob_escape.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_glob_separator.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_heap_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_match_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_max_pattern_compiled_length.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_max_pattern_length.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_max_varlookbehind.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_newline.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_offset_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_optimize.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_parens_nest_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_recursion_limit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_recursion_memory_management.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_substitute_callout.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_set_substitute_case_callout.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substitute.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_copy_byname.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_copy_bynumber.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_get_byname.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_get_bynumber.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_length_byname.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_length_bynumber.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_list_free.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_list_get.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_nametable_scan.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2_substring_number_from_name.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2api.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2build.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2callout.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2compat.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2convert.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2demo.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2grep.1
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2grep.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2jit.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2limits.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2matching.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2partial.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2pattern.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2perform.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2posix.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2sample.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2serialize.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2syntax.3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2test.1
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2test.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/doc/pcre2unicode.3
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/install-sh
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/libpcre2-16.pc.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/libpcre2-32.pc.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/libpcre2-8.pc.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/libpcre2-posix.pc.in
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/ltmain.sh
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/ax_pthread.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/libtool.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/ltoptions.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/ltsugar.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/ltversion.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/lt~obsolete.m4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/m4/pcre2_visibility.m4
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/missing
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/pcre2-config.in
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/perltest.sh
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/src
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/config.h.generic
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/config.h.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2.h.generic
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2.h.in
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_auto_possess.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_chartables.c.dist
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_chkdint.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_compile.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_compile.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_compile_class.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_config.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_context.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_convert.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_dfa_match.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_dftables.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_error.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_extuni.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_find_bracket.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_fuzzsupport.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_internal.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_intmodedep.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_char_inc.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_compile.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_match.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_misc.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_neon_inc.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_simd_inc.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_jit_test.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_maketables.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_match.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_match_data.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_newline.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_ord2utf.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_pattern_info.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_printint.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_script_run.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_serialize.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_string_utils.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_study.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_substitute.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_substring.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_tables.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_ucd.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_ucp.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_ucptables.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_util.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_valid_utf.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2_xclass.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2demo.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2grep.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2posix.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2posix.h
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2posix_test.c
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/src/pcre2test.c
-rwxr-xr-x tarball-dir/pcre2-SNAPSHOT/test-driver
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/testdata
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepbinary
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepfilelist
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinput
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinput3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinput8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputBad8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputBad8_Trail
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputC.bz2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputC.gz
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputM
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputUN
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputv
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepinputx
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/greplist
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepnot.bz2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutput
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutput8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputC
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputCN
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputCNU
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputCU
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputCbz2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputCgz
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputN
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/grepoutputUN
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/greppatN4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testbtables
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput1
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput10
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput11
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput12
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput13
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput14
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput15
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput17
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput18
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput19
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput20
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput21
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput22
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput23
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput24
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput25
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput26
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput27
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput5
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput6
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput7
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinput9
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinputEBC
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testinputheap
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput1
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput10
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput11-16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput11-32
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput12-16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput12-32
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput13
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput14-16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput14-32
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput14-8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput15
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput17
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput18
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput19
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput20
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput21
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput22-16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput22-32
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput22-8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput23
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput24
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput25
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput26
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput27
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput3A
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput3B
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput5
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput6
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput7
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-16-2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-16-3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-16-4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-32-2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-32-3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-32-4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-8-2
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-8-3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput8-8-4
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutput9
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutputEBC
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutputheap-16
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutputheap-32
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/testoutputheap-8
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/valgrind-jit.supp
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/wintestinput3
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/testdata/wintestoutput3
drwxr-xr-x tarball-dir/pcre2-SNAPSHOT/vms
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/vms/configure.com
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/vms/openvms_readme.txt
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/vms/pcre2.h_patch
-rw-r--r-- tarball-dir/pcre2-SNAPSHOT/vms/stdint.h

View File

@@ -0,0 +1,147 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include "pcre2_internal.h"
const uint8_t PRIV(default_tables)[] = {
0,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,
56,57,58,59,60,61,62,63,
64,97,98,99,100,101,102,103,
104,105,106,107,108,109,110,111,
112,113,114,115,116,117,118,119,
120,121,122,91,92,93,94,95,
96,97,98,99,100,101,102,103,
104,105,106,107,108,109,110,111,
112,113,114,115,116,117,118,119,
120,121,122,123,124,125,126,127,
128,129,130,131,132,133,134,135,
136,137,138,139,140,141,142,143,
144,145,146,147,148,149,150,151,
152,153,154,155,156,157,158,159,
160,161,162,163,164,165,166,167,
168,169,170,171,172,173,174,175,
176,177,178,179,180,181,182,183,
184,185,186,187,188,189,190,191,
224,225,226,227,228,229,230,231,
232,233,234,235,236,237,238,239,
240,241,242,243,244,245,246,215,
248,249,250,251,252,253,254,223,
224,225,226,227,228,229,230,231,
232,233,234,235,236,237,238,239,
240,241,242,243,244,245,246,247,
248,249,250,251,252,253,254,255,
0,1,2,3,4,5,6,7,
8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,
24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,
40,41,42,43,44,45,46,47,
48,49,50,51,52,53,54,55,
56,57,58,59,60,61,62,63,
64,97,98,99,100,101,102,103,
104,105,106,107,108,109,110,111,
112,113,114,115,116,117,118,119,
120,121,122,91,92,93,94,95,
96,65,66,67,68,69,70,71,
72,73,74,75,76,77,78,79,
80,81,82,83,84,85,86,87,
88,89,90,123,124,125,126,127,
128,129,130,131,132,133,134,135,
136,137,138,139,140,141,142,143,
144,145,146,147,148,149,150,151,
152,153,154,155,156,157,158,159,
160,161,162,163,164,165,166,167,
168,169,170,171,172,173,174,175,
176,177,178,179,180,181,182,183,
184,185,186,187,188,189,190,191,
224,225,226,227,228,229,230,231,
232,233,234,235,236,237,238,239,
240,241,242,243,244,245,246,215,
248,249,250,251,252,253,254,223,
192,193,194,195,196,197,198,199,
200,201,202,203,204,205,206,207,
208,209,210,211,212,213,214,247,
216,217,218,219,220,221,222,255,
0,62,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
32,0,0,0,1,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,255,3,
126,0,0,0,126,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,255,3,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,12,2,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
254,255,255,7,0,0,0,0,
0,0,0,0,0,0,0,0,
255,255,127,127,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,254,255,255,7,
0,0,0,0,0,4,32,4,
0,0,0,128,255,255,127,255,
0,0,0,0,0,0,255,3,
254,255,255,135,254,255,255,7,
0,0,0,0,0,4,44,6,
255,255,127,255,255,255,127,255,
0,0,0,0,254,255,255,255,
255,255,255,255,255,255,255,127,
0,0,0,0,254,255,255,255,
255,255,255,255,255,255,255,255,
0,2,0,0,255,255,255,255,
255,255,255,255,255,255,255,127,
0,0,0,0,255,255,255,255,
255,255,255,255,255,255,255,255,
0,0,0,0,254,255,0,252,
1,0,0,248,1,0,0,120,
0,0,0,0,254,255,255,255,
0,0,128,0,0,0,128,0,
255,255,255,255,0,0,0,0,
0,0,0,0,0,0,0,128,
255,255,255,255,0,0,0,0,
0,0,0,0,0,0,0,0,
/* Fiddled by hand when the table bits changed. May be broken! */
128,0,0,0,0,0,0,0,
0,1,1,1,1,1,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
1,0,0,0,128,0,0,0,
128,128,128,128,0,0,128,0,
24,24,24,24,24,24,24,24,
24,24,0,0,0,0,0,128,
0,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,18,
18,18,18,128,128,0,128,16,
0,22,22,22,22,22,22,22,
22,22,22,22,22,22,22,22,
22,22,22,22,22,22,22,22,
22,22,22,128,128,0,0,0,
0,0,0,0,0,1,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,0,
0,0,18,0,0,0,0,0,
0,0,24,24,0,18,0,0,
0,24,18,0,0,0,0,0,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,0,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,18,
18,18,18,18,18,18,18,0,
18,18,18,18,18,18,18,18
};

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,59 @@
findprop 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
findprop 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
findprop 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
findprop 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
findprop 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
findprop 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
findprop 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
findprop 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
findprop 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
findprop 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
findprop a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
findprop b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
findprop c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
findprop d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
findprop e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
findprop f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
findprop 0100 0101 0102 0103 0104 0105 0106
findprop 345 399 03b9 1fbe
findprop 00390 1fd3
findprop ffe0 ffe1 ffe2 ffe3 ffe4 ffe5 ffe6 ffe7
findprop ffe8 ffe9 ffea ffeb ffec ffed ffee ffef
findprop fff8 fff9 fffa fffb fffc fffd fffe ffff
findprop 10000 10001 e01ef f0000 100000
findprop 1b00 12000 7c0 a840 10900
findprop 1d79 a77d
findprop 0800 083e a4d0 a4f7 aa80 aadf
findprop 10b00 10b35 13000 1342e 10840 10855
findprop 11100 1113c 11680 116c0
findprop 0d 0a 0e 0711 1b04 1111 1169 11fe ae4c ad89
findprop 118a0 11ac7 16ad0
findprop 11700 14400 108e0 11280 1d800
findprop 11800 1e903 11da9 10d27 11ee0 16e48 10f27 10f30
findprop a836 a833 1cf4 20f0 1cd0
findprop 32ff
findprop 1f16d
findprop U+10e93 U+10eaa
findprop +á +é U+212A
findprop 0602 202a 202b 202c 2068 2069 202d 202e 2067
findprop 143e5
findprop 1CC4E
findprop U+1FAE9

View File

@@ -0,0 +1,23 @@
find script Han
find type Pe script Common scriptx Hangul
find script !latin scriptx sundanese
find type Sk
find type Pd
find gbreak LVT
find script Old_Uyghur
find bidi PDF
find bidi CS
find bidi CS type Sm
find bidi B
find bidi FSI
find bidi PDI
find bidi RLI
find bidi RLO
find bidi S
find bidi WS
find bidi white_space bool ascii
find script bopo
find bool prependedconcatenationmark
find bool pcm
find script Todhri
find script Sunuwar

View File

@@ -0,0 +1,430 @@
findprop 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
U+0000 BN Control: Control, common, Control, [ascii]
U+0001 BN Control: Control, common, Control, [ascii]
U+0002 BN Control: Control, common, Control, [ascii]
U+0003 BN Control: Control, common, Control, [ascii]
U+0004 BN Control: Control, common, Control, [ascii]
U+0005 BN Control: Control, common, Control, [ascii]
U+0006 BN Control: Control, common, Control, [ascii]
U+0007 BN Control: Control, common, Control, [ascii]
U+0008 BN Control: Control, common, Control, [ascii]
U+0009 S Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+000A B Control: Control, common, LF, [ascii, patternwhitespace, whitespace]
U+000B S Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+000C WS Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+000D B Control: Control, common, CR, [ascii, patternwhitespace, whitespace]
U+000E BN Control: Control, common, Control, [ascii]
U+000F BN Control: Control, common, Control, [ascii]
findprop 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
U+0010 BN Control: Control, common, Control, [ascii]
U+0011 BN Control: Control, common, Control, [ascii]
U+0012 BN Control: Control, common, Control, [ascii]
U+0013 BN Control: Control, common, Control, [ascii]
U+0014 BN Control: Control, common, Control, [ascii]
U+0015 BN Control: Control, common, Control, [ascii]
U+0016 BN Control: Control, common, Control, [ascii]
U+0017 BN Control: Control, common, Control, [ascii]
U+0018 BN Control: Control, common, Control, [ascii]
U+0019 BN Control: Control, common, Control, [ascii]
U+001A BN Control: Control, common, Control, [ascii]
U+001B BN Control: Control, common, Control, [ascii]
U+001C B Control: Control, common, Control, [ascii]
U+001D B Control: Control, common, Control, [ascii]
U+001E B Control: Control, common, Control, [ascii]
U+001F S Control: Control, common, Control, [ascii]
findprop 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
U+0020 WS Separator: Space separator, common, Other, [ascii, graphemebase, patternwhitespace, whitespace]
U+0021 ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, sentenceterminal, terminalpunctuation]
U+0022 ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, quotationmark]
U+0023 ET Punctuation: Other punctuation, common, Other, [ascii, emoji, emojicomponent, graphemebase, patternsyntax]
U+0024 ET Symbol: Currency symbol, common, Other, [ascii, graphemebase, patternsyntax]
U+0025 ET Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
U+0026 ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
U+0027 ON Punctuation: Other punctuation, common, Other, [ascii, caseignorable, graphemebase, patternsyntax, quotationmark]
U+0028 ON Punctuation: Open punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+0029 ON Punctuation: Close punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+002A ON Punctuation: Other punctuation, common, Other, [ascii, emoji, emojicomponent, graphemebase, patternsyntax]
U+002B ES Symbol: Mathematical symbol, common, Other, [ascii, graphemebase, math, patternsyntax]
U+002C CS Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, terminalpunctuation]
U+002D ES Punctuation: Dash punctuation, common, Other, [ascii, dash, graphemebase, patternsyntax]
U+002E CS Punctuation: Other punctuation, common, Other, [ascii, caseignorable, graphemebase, patternsyntax, sentenceterminal, terminalpunctuation]
U+002F CS Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
findprop 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f
U+0030 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0031 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0032 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0033 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0034 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0035 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0036 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0037 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0038 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+0039 EN Number: Decimal number, common, Other, [ascii, asciihexdigit, emoji, emojicomponent, graphemebase, hexdigit, idcontinue, xidcontinue]
U+003A CS Punctuation: Other punctuation, common, Other, [ascii, caseignorable, graphemebase, patternsyntax, terminalpunctuation]
U+003B ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, terminalpunctuation]
U+003C ON Symbol: Mathematical symbol, common, Other, [ascii, bidimirrored, graphemebase, math, patternsyntax]
U+003D ON Symbol: Mathematical symbol, common, Other, [ascii, graphemebase, math, patternsyntax]
U+003E ON Symbol: Mathematical symbol, common, Other, [ascii, bidimirrored, graphemebase, math, patternsyntax]
U+003F ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, sentenceterminal, terminalpunctuation]
findprop 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f
U+0040 ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
U+0041 L Letter: Upper case letter, latin, Other, U+0061, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0042 L Letter: Upper case letter, latin, Other, U+0062, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0043 L Letter: Upper case letter, latin, Other, U+0063, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0044 L Letter: Upper case letter, latin, Other, U+0064, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0045 L Letter: Upper case letter, latin, Other, U+0065, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0046 L Letter: Upper case letter, latin, Other, U+0066, [ascii, asciihexdigit, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, hexdigit, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0047 L Letter: Upper case letter, latin, Other, U+0067, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0048 L Letter: Upper case letter, latin, Other, U+0068, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0049 L Letter: Upper case letter, latin, Other, U+0069, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004A L Letter: Upper case letter, latin, Other, U+006A, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004B L Letter: Upper case letter, latin, Other, U+006B, U+212A, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004C L Letter: Upper case letter, latin, Other, U+006C, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004D L Letter: Upper case letter, latin, Other, U+006D, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004E L Letter: Upper case letter, latin, Other, U+006E, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+004F L Letter: Upper case letter, latin, Other, U+006F, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
findprop 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f
U+0050 L Letter: Upper case letter, latin, Other, U+0070, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0051 L Letter: Upper case letter, latin, Other, U+0071, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0052 L Letter: Upper case letter, latin, Other, U+0072, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0053 L Letter: Upper case letter, latin, Other, U+0073, U+017F, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0054 L Letter: Upper case letter, latin, Other, U+0074, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0055 L Letter: Upper case letter, latin, Other, U+0075, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0056 L Letter: Upper case letter, latin, Other, U+0076, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0057 L Letter: Upper case letter, latin, Other, U+0077, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0058 L Letter: Upper case letter, latin, Other, U+0078, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0059 L Letter: Upper case letter, latin, Other, U+0079, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+005A L Letter: Upper case letter, latin, Other, U+007A, [ascii, alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+005B ON Punctuation: Open punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+005C ON Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
U+005D ON Punctuation: Close punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+005E ON Symbol: Modifier symbol, common, Other, [ascii, caseignorable, diacritic, graphemebase, math, patternsyntax]
U+005F ON Punctuation: Connector punctuation, common, Other, [ascii, graphemebase, idcontinue, xidcontinue]
findprop 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
U+0060 ON Symbol: Modifier symbol, common, Other, [ascii, caseignorable, diacritic, graphemebase, patternsyntax]
U+0061 L Letter: Lower case letter, latin, Other, U+0041, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0062 L Letter: Lower case letter, latin, Other, U+0042, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0063 L Letter: Lower case letter, latin, Other, U+0043, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0064 L Letter: Lower case letter, latin, Other, U+0044, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0065 L Letter: Lower case letter, latin, Other, U+0045, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0066 L Letter: Lower case letter, latin, Other, U+0046, [ascii, asciihexdigit, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, hexdigit, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0067 L Letter: Lower case letter, latin, Other, U+0047, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0068 L Letter: Lower case letter, latin, Other, U+0048, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0069 L Letter: Lower case letter, latin, Other, U+0049, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, softdotted, xidcontinue, xidstart]
U+006A L Letter: Lower case letter, latin, Other, U+004A, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, softdotted, xidcontinue, xidstart]
U+006B L Letter: Lower case letter, latin, Other, U+004B, U+212A, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+006C L Letter: Lower case letter, latin, Other, U+004C, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+006D L Letter: Lower case letter, latin, Other, U+004D, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+006E L Letter: Lower case letter, latin, Other, U+004E, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+006F L Letter: Lower case letter, latin, Other, U+004F, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f
U+0070 L Letter: Lower case letter, latin, Other, U+0050, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0071 L Letter: Lower case letter, latin, Other, U+0051, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0072 L Letter: Lower case letter, latin, Other, U+0052, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0073 L Letter: Lower case letter, latin, Other, U+0053, U+017F, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0074 L Letter: Lower case letter, latin, Other, U+0054, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0075 L Letter: Lower case letter, latin, Other, U+0055, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0076 L Letter: Lower case letter, latin, Other, U+0056, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0077 L Letter: Lower case letter, latin, Other, U+0057, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0078 L Letter: Lower case letter, latin, Other, U+0058, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0079 L Letter: Lower case letter, latin, Other, U+0059, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+007A L Letter: Lower case letter, latin, Other, U+005A, [ascii, alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+007B ON Punctuation: Open punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+007C ON Symbol: Mathematical symbol, common, Other, [ascii, graphemebase, math, patternsyntax]
U+007D ON Punctuation: Close punctuation, common, Other, [ascii, bidimirrored, graphemebase, patternsyntax]
U+007E ON Symbol: Mathematical symbol, common, Other, [ascii, graphemebase, math, patternsyntax]
U+007F BN Control: Control, common, Control, [ascii]
findprop 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f
U+0080 BN Control: Control, common, Control
U+0081 BN Control: Control, common, Control
U+0082 BN Control: Control, common, Control
U+0083 BN Control: Control, common, Control
U+0084 BN Control: Control, common, Control
U+0085 B Control: Control, common, Control, [patternwhitespace, whitespace]
U+0086 BN Control: Control, common, Control
U+0087 BN Control: Control, common, Control
U+0088 BN Control: Control, common, Control
U+0089 BN Control: Control, common, Control
U+008A BN Control: Control, common, Control
U+008B BN Control: Control, common, Control
U+008C BN Control: Control, common, Control
U+008D BN Control: Control, common, Control
U+008E BN Control: Control, common, Control
U+008F BN Control: Control, common, Control
findprop 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f
U+0090 BN Control: Control, common, Control
U+0091 BN Control: Control, common, Control
U+0092 BN Control: Control, common, Control
U+0093 BN Control: Control, common, Control
U+0094 BN Control: Control, common, Control
U+0095 BN Control: Control, common, Control
U+0096 BN Control: Control, common, Control
U+0097 BN Control: Control, common, Control
U+0098 BN Control: Control, common, Control
U+0099 BN Control: Control, common, Control
U+009A BN Control: Control, common, Control
U+009B BN Control: Control, common, Control
U+009C BN Control: Control, common, Control
U+009D BN Control: Control, common, Control
U+009E BN Control: Control, common, Control
U+009F BN Control: Control, common, Control
findprop a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af
U+00A0 CS Separator: Space separator, common, Other, [graphemebase, whitespace]
U+00A1 ON Punctuation: Other punctuation, common, Other, [graphemebase, patternsyntax]
U+00A2 ET Symbol: Currency symbol, common, Other, [graphemebase, patternsyntax]
U+00A3 ET Symbol: Currency symbol, common, Other, [graphemebase, patternsyntax]
U+00A4 ET Symbol: Currency symbol, common, Other, [graphemebase, patternsyntax]
U+00A5 ET Symbol: Currency symbol, common, Other, [graphemebase, patternsyntax]
U+00A6 ON Symbol: Other symbol, common, Other, [graphemebase, patternsyntax]
U+00A7 ON Punctuation: Other punctuation, common, Other, [graphemebase, patternsyntax]
U+00A8 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00A9 ON Symbol: Other symbol, common, Extended Pictographic, [emoji, extendedpictographic, graphemebase, patternsyntax]
U+00AA L Letter: Other letter, latin, Other, [alphabetic, cased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00AB ON Punctuation: Initial punctuation, common, Other, [bidimirrored, graphemebase, patternsyntax, quotationmark]
U+00AC ON Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
U+00AD BN Control: Format, common, Control, [caseignorable, defaultignorablecodepoint]
U+00AE ON Symbol: Other symbol, common, Extended Pictographic, [emoji, extendedpictographic, graphemebase, patternsyntax]
U+00AF ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
findprop b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf
U+00B0 ET Symbol: Other symbol, common, Other, [graphemebase, patternsyntax]
U+00B1 ET Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
U+00B2 EN Number: Other number, common, Other, [graphemebase, idcompatmathcontinue]
U+00B3 EN Number: Other number, common, Other, [graphemebase, idcompatmathcontinue]
U+00B4 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00B5 L Letter: Lower case letter, common, Other, U+03BC, U+039C, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00B6 ON Punctuation: Other punctuation, common, Other, [graphemebase, patternsyntax]
U+00B7 ON Punctuation: Other punctuation, common, Other, [latin, greek, georgian, han, gothic, shavian, coptic, glagolitic, carian, lydian, avestan, duployan, elbasan, mahajani, oldpermic, gunjalagondi], [caseignorable, diacritic, extender, graphemebase, idcontinue, xidcontinue]
U+00B8 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00B9 EN Number: Other number, common, Other, [graphemebase, idcompatmathcontinue]
U+00BA L Letter: Other letter, latin, Other, [alphabetic, cased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00BB ON Punctuation: Final punctuation, common, Other, [bidimirrored, graphemebase, patternsyntax, quotationmark]
U+00BC ON Number: Other number, common, Other, [graphemebase]
U+00BD ON Number: Other number, common, Other, [graphemebase]
U+00BE ON Number: Other number, common, Other, [graphemebase]
U+00BF ON Punctuation: Other punctuation, common, Other, [graphemebase, patternsyntax]
findprop c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf
U+00C0 L Letter: Upper case letter, latin, Other, U+00E0, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C1 L Letter: Upper case letter, latin, Other, U+00E1, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C2 L Letter: Upper case letter, latin, Other, U+00E2, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C3 L Letter: Upper case letter, latin, Other, U+00E3, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C4 L Letter: Upper case letter, latin, Other, U+00E4, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C5 L Letter: Upper case letter, latin, Other, U+00E5, U+212B, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C6 L Letter: Upper case letter, latin, Other, U+00E6, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C7 L Letter: Upper case letter, latin, Other, U+00E7, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C8 L Letter: Upper case letter, latin, Other, U+00E8, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00C9 L Letter: Upper case letter, latin, Other, U+00E9, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CA L Letter: Upper case letter, latin, Other, U+00EA, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CB L Letter: Upper case letter, latin, Other, U+00EB, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CC L Letter: Upper case letter, latin, Other, U+00EC, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CD L Letter: Upper case letter, latin, Other, U+00ED, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CE L Letter: Upper case letter, latin, Other, U+00EE, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00CF L Letter: Upper case letter, latin, Other, U+00EF, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
findprop d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df
U+00D0 L Letter: Upper case letter, latin, Other, U+00F0, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D1 L Letter: Upper case letter, latin, Other, U+00F1, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D2 L Letter: Upper case letter, latin, Other, U+00F2, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D3 L Letter: Upper case letter, latin, Other, U+00F3, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D4 L Letter: Upper case letter, latin, Other, U+00F4, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D5 L Letter: Upper case letter, latin, Other, U+00F5, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D6 L Letter: Upper case letter, latin, Other, U+00F6, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D7 ON Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
U+00D8 L Letter: Upper case letter, latin, Other, U+00F8, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00D9 L Letter: Upper case letter, latin, Other, U+00F9, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DA L Letter: Upper case letter, latin, Other, U+00FA, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DB L Letter: Upper case letter, latin, Other, U+00FB, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DC L Letter: Upper case letter, latin, Other, U+00FC, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DD L Letter: Upper case letter, latin, Other, U+00FD, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DE L Letter: Upper case letter, latin, Other, U+00FE, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+00DF L Letter: Lower case letter, latin, Other, U+1E9E, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef
U+00E0 L Letter: Lower case letter, latin, Other, U+00C0, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E1 L Letter: Lower case letter, latin, Other, U+00C1, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E2 L Letter: Lower case letter, latin, Other, U+00C2, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E3 L Letter: Lower case letter, latin, Other, U+00C3, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E4 L Letter: Lower case letter, latin, Other, U+00C4, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E5 L Letter: Lower case letter, latin, Other, U+00C5, U+212B, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E6 L Letter: Lower case letter, latin, Other, U+00C6, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E7 L Letter: Lower case letter, latin, Other, U+00C7, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E8 L Letter: Lower case letter, latin, Other, U+00C8, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E9 L Letter: Lower case letter, latin, Other, U+00C9, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00EA L Letter: Lower case letter, latin, Other, U+00CA, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00EB L Letter: Lower case letter, latin, Other, U+00CB, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00EC L Letter: Lower case letter, latin, Other, U+00CC, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00ED L Letter: Lower case letter, latin, Other, U+00CD, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00EE L Letter: Lower case letter, latin, Other, U+00CE, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00EF L Letter: Lower case letter, latin, Other, U+00CF, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ff
U+00F0 L Letter: Lower case letter, latin, Other, U+00D0, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F1 L Letter: Lower case letter, latin, Other, U+00D1, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F2 L Letter: Lower case letter, latin, Other, U+00D2, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F3 L Letter: Lower case letter, latin, Other, U+00D3, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F4 L Letter: Lower case letter, latin, Other, U+00D4, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F5 L Letter: Lower case letter, latin, Other, U+00D5, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F6 L Letter: Lower case letter, latin, Other, U+00D6, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F7 ON Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
U+00F8 L Letter: Lower case letter, latin, Other, U+00D8, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00F9 L Letter: Lower case letter, latin, Other, U+00D9, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FA L Letter: Lower case letter, latin, Other, U+00DA, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FB L Letter: Lower case letter, latin, Other, U+00DB, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FC L Letter: Lower case letter, latin, Other, U+00DC, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FD L Letter: Lower case letter, latin, Other, U+00DD, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FE L Letter: Lower case letter, latin, Other, U+00DE, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00FF L Letter: Lower case letter, latin, Other, U+0178, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop 0100 0101 0102 0103 0104 0105 0106
U+0100 L Letter: Upper case letter, latin, Other, U+0101, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0101 L Letter: Lower case letter, latin, Other, U+0100, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0102 L Letter: Upper case letter, latin, Other, U+0103, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0103 L Letter: Lower case letter, latin, Other, U+0102, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0104 L Letter: Upper case letter, latin, Other, U+0105, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+0105 L Letter: Lower case letter, latin, Other, U+0104, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+0106 L Letter: Upper case letter, latin, Other, U+0107, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
findprop 345 399 03b9 1fbe
U+0345 NSM Mark: Non-spacing mark, inherited, Extend, U+03B9, U+0399, U+1FBE, [greek], [alphabetic, caseignorable, cased, changeswhencasefolded, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, diacritic, graphemeextend, idcontinue, incb, lowercase, xidcontinue]
U+0399 L Letter: Upper case letter, greek, Other, U+03B9, U+0345, U+1FBE, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+03B9 L Letter: Lower case letter, greek, Other, U+0345, U+0399, U+1FBE, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+1FBE L Letter: Lower case letter, greek, Other, U+03B9, U+0345, U+0399, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop 00390 1fd3
U+0390 L Letter: Lower case letter, greek, Other, U+1FD3, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+1FD3 L Letter: Lower case letter, greek, Other, U+0390, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
findprop ffe0 ffe1 ffe2 ffe3 ffe4 ffe5 ffe6 ffe7
U+FFE0 ET Symbol: Currency symbol, common, Other, [graphemebase]
U+FFE1 ET Symbol: Currency symbol, common, Other, [graphemebase]
U+FFE2 ON Symbol: Mathematical symbol, common, Other, [graphemebase, math]
U+FFE3 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+FFE4 ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFE5 ET Symbol: Currency symbol, common, Other, [graphemebase]
U+FFE6 ET Symbol: Currency symbol, common, Other, [graphemebase]
U+FFE7 L Control: Unassigned, unknown, Other
findprop ffe8 ffe9 ffea ffeb ffec ffed ffee ffef
U+FFE8 ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFE9 ON Symbol: Mathematical symbol, common, Other, [graphemebase, math]
U+FFEA ON Symbol: Mathematical symbol, common, Other, [graphemebase, math]
U+FFEB ON Symbol: Mathematical symbol, common, Other, [graphemebase, math]
U+FFEC ON Symbol: Mathematical symbol, common, Other, [graphemebase, math]
U+FFED ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFEE ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFEF L Control: Unassigned, unknown, Other
findprop fff8 fff9 fffa fffb fffc fffd fffe ffff
U+FFF8 BN Control: Unassigned, unknown, Control, [defaultignorablecodepoint]
U+FFF9 ON Control: Format, common, Control, [caseignorable]
U+FFFA ON Control: Format, common, Control, [caseignorable]
U+FFFB ON Control: Format, common, Control, [caseignorable]
U+FFFC ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFFD ON Symbol: Other symbol, common, Other, [graphemebase]
U+FFFE BN Control: Unassigned, unknown, Other, [noncharactercodepoint]
U+FFFF BN Control: Unassigned, unknown, Other, [noncharactercodepoint]
findprop 10000 10001 e01ef f0000 100000
U+10000 L Letter: Other letter, linearb, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10001 L Letter: Other letter, linearb, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+E01EF NSM Mark: Non-spacing mark, inherited, Extend, [caseignorable, defaultignorablecodepoint, graphemeextend, idcontinue, incb, variationselector, xidcontinue]
U+F0000 L Control: Private use, unknown, Other
U+100000 L Control: Private use, unknown, Other
findprop 1b00 12000 7c0 a840 10900
U+1B00 NSM Mark: Non-spacing mark, balinese, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+12000 L Letter: Other letter, cuneiform, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+07C0 R Number: Decimal number, nko, Other, [graphemebase, idcontinue, xidcontinue]
U+A840 L Letter: Other letter, phagspa, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10900 R Letter: Other letter, phoenician, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop 1d79 a77d
U+1D79 L Letter: Lower case letter, latin, Other, U+A77D, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+A77D L Letter: Upper case letter, latin, Other, U+1D79, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
findprop 0800 083e a4d0 a4f7 aa80 aadf
U+0800 R Letter: Other letter, samaritan, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+083E R Punctuation: Other punctuation, samaritan, Other, [graphemebase, sentenceterminal, terminalpunctuation]
U+A4D0 L Letter: Other letter, lisu, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+A4F7 L Letter: Other letter, lisu, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AA80 L Letter: Other letter, taiviet, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AADF L Punctuation: Other punctuation, taiviet, Other, [graphemebase, terminalpunctuation]
findprop 10b00 10b35 13000 1342e 10840 10855
U+10B00 R Letter: Other letter, avestan, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10B35 R Letter: Other letter, avestan, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+13000 L Letter: Other letter, egyptianhieroglyphs, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1342E L Letter: Other letter, egyptianhieroglyphs, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10840 R Letter: Other letter, imperialaramaic, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10855 R Letter: Other letter, imperialaramaic, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop 11100 1113c 11680 116c0
U+11100 NSM Mark: Non-spacing mark, chakma, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1113C L Number: Decimal number, chakma, Other, [graphemebase, idcontinue, xidcontinue]
U+11680 L Letter: Other letter, takri, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+116C0 L Number: Decimal number, takri, Other, [graphemebase, idcontinue, xidcontinue]
findprop 0d 0a 0e 0711 1b04 1111 1169 11fe ae4c ad89
U+000D B Control: Control, common, CR, [ascii, patternwhitespace, whitespace]
U+000A B Control: Control, common, LF, [ascii, patternwhitespace, whitespace]
U+000E BN Control: Control, common, Control, [ascii]
U+0711 NSM Mark: Non-spacing mark, syriac, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1B04 L Mark: Spacing mark, balinese, SpacingMark, [alphabetic, graphemebase, idcontinue, xidcontinue]
U+1111 L Letter: Other letter, hangul, Hangul syllable type L, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1169 L Letter: Other letter, hangul, Hangul syllable type V, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+11FE L Letter: Other letter, hangul, Hangul syllable type T, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE4C L Letter: Other letter, hangul, Hangul syllable type LV, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD89 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop 118a0 11ac7 16ad0
U+118A0 L Letter: Upper case letter, warangciti, Other, U+118C0, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+11AC7 L Letter: Other letter, paucinhau, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+16AD0 L Letter: Other letter, bassavah, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop 11700 14400 108e0 11280 1d800
U+11700 L Letter: Other letter, ahom, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+14400 L Letter: Other letter, anatolianhieroglyphs, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+108E0 R Letter: Other letter, hatran, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+11280 L Letter: Other letter, multani, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1D800 L Symbol: Other symbol, signwriting, Other, [graphemebase]
findprop 11800 1e903 11da9 10d27 11ee0 16e48 10f27 10f30
U+11800 L Letter: Other letter, dogra, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1E903 R Letter: Upper case letter, adlam, Other, U+1E925, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+11DA9 L Number: Decimal number, gunjalagondi, Other, [graphemebase, idcontinue, xidcontinue]
U+10D27 NSM Mark: Non-spacing mark, hanifirohingya, Extend, [alphabetic, caseignorable, diacritic, graphemeextend, idcontinue, incb, xidcontinue]
U+11EE0 L Letter: Other letter, makasar, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+16E48 L Letter: Upper case letter, medefaidrin, Other, U+16E68, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
U+10F27 R Letter: Other letter, oldsogdian, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10F30 AL Letter: Other letter, sogdian, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop a836 a833 1cf4 20f0 1cd0
U+A836 L Symbol: Other symbol, common, Other, [devanagari, gurmukhi, gujarati, kaithi, takri, khojki, mahajani, modi, khudawadi, tirhuta, dogra], [graphemebase]
U+A833 L Number: Other number, common, Other, [devanagari, gurmukhi, gujarati, kannada, kaithi, sharada, takri, khojki, mahajani, modi, khudawadi, tirhuta, dogra, nandinagari, tulutigalari], [graphemebase]
U+1CF4 NSM Mark: Non-spacing mark, inherited, Extend, [devanagari, kannada, grantha, tulutigalari], [caseignorable, diacritic, graphemeextend, idcontinue, incb, xidcontinue]
U+20F0 NSM Mark: Non-spacing mark, inherited, Extend, [latin, devanagari, grantha], [caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1CD0 NSM Mark: Non-spacing mark, inherited, Extend, [devanagari, bengali, kannada, grantha], [caseignorable, diacritic, graphemeextend, idcontinue, incb, xidcontinue]
findprop 32ff
U+32FF L Symbol: Other symbol, common, Other, [han], [graphemebase]
findprop 1f16d
U+1F16D ON Symbol: Other symbol, common, Extended Pictographic, [extendedpictographic, graphemebase]
findprop U+10e93 U+10eaa
U+10E93 R Letter: Other letter, yezidi, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10EAA R Control: Unassigned, unknown, Other
findprop +á +é U+212A
U+00E1 L Letter: Lower case letter, latin, Other, U+00C1, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+00E9 L Letter: Lower case letter, latin, Other, U+00C9, [alphabetic, cased, changeswhencasemapped, changeswhentitlecased, changeswhenuppercased, graphemebase, idcontinue, idstart, lowercase, xidcontinue, xidstart]
U+212A L Letter: Upper case letter, latin, Other, U+004B, U+006B, [alphabetic, cased, changeswhencasefolded, changeswhencasemapped, changeswhenlowercased, graphemebase, idcontinue, idstart, uppercase, xidcontinue, xidstart]
findprop 0602 202a 202b 202c 2068 2069 202d 202e 2067
U+0602 AN Control: Format, arabic, Prepend, [caseignorable, prependedconcatenationmark]
U+202A LRE Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+202B RLE Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+202C PDF Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+2068 FSI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+2069 PDI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+202D LRO Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+202E RLO Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
U+2067 RLI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
findprop 143e5
U+143E5 L Letter: Other letter, egyptianhieroglyphs, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
findprop 1CC4E
U+1CC4E ON Symbol: Other symbol, common, Other, [graphemebase]
findprop U+1FAE9
U+1FAE9 ON Symbol: Other symbol, common, Extended Pictographic, [emoji, emojipresentation, extendedpictographic, graphemebase]

View File

@@ -0,0 +1,309 @@
find script Han
U+2E80..U+2E99 ON Symbol: Other symbol, han, Other, [graphemebase, radical]
U+2E9B..U+2EF3 ON Symbol: Other symbol, han, Other, [graphemebase, radical]
U+2F00..U+2FD5 ON Symbol: Other symbol, han, Other, [graphemebase, radical]
U+3005 L Letter: Modifier letter, han, Other, [alphabetic, caseignorable, extender, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+3007 L Number: Letter number, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+3021..U+3029 L Number: Letter number, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+3038..U+303A L Number: Letter number, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+303B L Letter: Modifier letter, han, Other, [alphabetic, caseignorable, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+3400..U+4DBF L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+4E00..U+9FFF L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+F900..U+FA0D L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA0E..U+FA0F L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA10 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA11 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA12 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA13..U+FA14 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA15..U+FA1E L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA1F L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA20 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA21 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA22 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA23..U+FA24 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA25..U+FA26 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA27..U+FA29 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+FA2A..U+FA6D L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+FA70..U+FAD9 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+16FE2 ON Punctuation: Other punctuation, han, Other, [graphemebase]
U+16FE3 L Letter: Modifier letter, han, Other, [alphabetic, caseignorable, extender, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+16FF0..U+16FF1 L Mark: Spacing mark, han, Extend, [alphabetic, diacritic, graphemeextend, idcontinue, incb, xidcontinue]
U+20000..U+2A6DF L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2A700..U+2B739 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2B740..U+2B81D L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2B820..U+2CEA1 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2CEB0..U+2EBE0 L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2EBF0..U+2EE5D L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+2F800..U+2FA1D L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, xidcontinue, xidstart]
U+30000..U+3134A L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
U+31350..U+323AF L Letter: Other letter, han, Other, [alphabetic, graphemebase, idcontinue, idstart, ideographic, unifiedideograph, xidcontinue, xidstart]
find type Pe script Common scriptx Hangul
U+3009 ON Punctuation: Close punctuation, common, Other, [tibetan, hangul, mongolian, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+300B ON Punctuation: Close punctuation, common, Other, [tibetan, hangul, mongolian, hiragana, katakana, bopomofo, han, yiii, lisu], [bidimirrored, graphemebase, patternsyntax]
U+300D ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax, quotationmark]
U+300F ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax, quotationmark]
U+3011 ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+3015 ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+3017 ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+3019 ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+301B ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, patternsyntax]
U+301E..U+301F ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han], [graphemebase, patternsyntax, quotationmark]
U+FF63 ON Punctuation: Close punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han, yiii], [bidimirrored, graphemebase, quotationmark]
find script !latin scriptx sundanese
U+1B80..U+1B81 NSM Mark: Non-spacing mark, sundanese, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1B82 L Mark: Spacing mark, sundanese, SpacingMark, [alphabetic, graphemebase, idcontinue, xidcontinue]
U+1B83..U+1BA0 L Letter: Other letter, sundanese, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1BA1 L Mark: Spacing mark, sundanese, SpacingMark, [alphabetic, graphemebase, idcontinue, xidcontinue]
U+1BA2..U+1BA5 NSM Mark: Non-spacing mark, sundanese, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1BA6..U+1BA7 L Mark: Spacing mark, sundanese, SpacingMark, [alphabetic, graphemebase, idcontinue, xidcontinue]
U+1BA8..U+1BA9 NSM Mark: Non-spacing mark, sundanese, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1BAA L Mark: Spacing mark, sundanese, Extend, [diacritic, graphemeextend, graphemelink, idcontinue, incb, xidcontinue]
U+1BAB NSM Mark: Non-spacing mark, sundanese, Extend, [caseignorable, diacritic, graphemeextend, graphemelink, idcontinue, incb, xidcontinue]
U+1BAC..U+1BAD NSM Mark: Non-spacing mark, sundanese, Extend, [alphabetic, caseignorable, graphemeextend, idcontinue, incb, xidcontinue]
U+1BAE..U+1BAF L Letter: Other letter, sundanese, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1BB0..U+1BB9 L Number: Decimal number, sundanese, Other, [graphemebase, idcontinue, xidcontinue]
U+1BBA..U+1BBF L Letter: Other letter, sundanese, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+1CC0..U+1CC7 L Punctuation: Other punctuation, sundanese, Other, [graphemebase]
find type Sk
U+005E ON Symbol: Modifier symbol, common, Other, [ascii, caseignorable, diacritic, graphemebase, math, patternsyntax]
U+0060 ON Symbol: Modifier symbol, common, Other, [ascii, caseignorable, diacritic, graphemebase, patternsyntax]
U+00A8 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00AF ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00B4 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+00B8 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02C2..U+02C5 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02D2..U+02D6 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02D7 ON Symbol: Modifier symbol, common, Other, [latin, thai], [caseignorable, diacritic, graphemebase]
U+02D8 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02D9 ON Symbol: Modifier symbol, common, Other, [latin, bopomofo], [caseignorable, diacritic, graphemebase]
U+02DA..U+02DF ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02E5..U+02E9 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02EA..U+02EB ON Symbol: Modifier symbol, bopomofo, Other, [caseignorable, diacritic, graphemebase]
U+02ED ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+02EF..U+02FF ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+0375 ON Symbol: Modifier symbol, greek, Other, [greek, coptic], [caseignorable, diacritic, graphemebase]
U+0384 ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+0385 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+0888 AL Symbol: Modifier symbol, arabic, Other, [caseignorable, graphemebase]
U+1FBD ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+1FBF..U+1FC1 ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+1FCD..U+1FCF ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+1FDD..U+1FDF ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+1FED..U+1FEF ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+1FFD..U+1FFE ON Symbol: Modifier symbol, greek, Other, [caseignorable, diacritic, graphemebase]
U+309B..U+309C ON Symbol: Modifier symbol, common, Other, [hiragana, katakana], [caseignorable, diacritic, graphemebase, idcontinue, idstart]
U+A700..U+A707 ON Symbol: Modifier symbol, common, Other, [latin, han], [caseignorable, diacritic, graphemebase]
U+A708..U+A716 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+A720..U+A721 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+A789..U+A78A L Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+AB5B L Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+AB6A..U+AB6B ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+FBB2..U+FBC2 AL Symbol: Modifier symbol, arabic, Other, [caseignorable, graphemebase]
U+FF3E ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase, math]
U+FF40 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+FFE3 ON Symbol: Modifier symbol, common, Other, [caseignorable, diacritic, graphemebase]
U+1F3FB..U+1F3FF ON Symbol: Modifier symbol, common, Extend, [caseignorable, emoji, emojicomponent, emojimodifier, emojipresentation, graphemebase, incb]
find type Pd
U+002D ES Punctuation: Dash punctuation, common, Other, [ascii, dash, graphemebase, patternsyntax]
U+058A ON Punctuation: Dash punctuation, armenian, Other, [dash, graphemebase]
U+05BE R Punctuation: Dash punctuation, hebrew, Other, [dash, graphemebase]
U+1400 ON Punctuation: Dash punctuation, canadianaboriginal, Other, [dash, graphemebase]
U+1806 ON Punctuation: Dash punctuation, mongolian, Other, [dash, graphemebase]
U+2010..U+2015 ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase, patternsyntax]
U+2E17 ON Punctuation: Dash punctuation, common, Other, [latin, coptic], [dash, graphemebase, patternsyntax]
U+2E1A ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase, patternsyntax]
U+2E3A..U+2E3B ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase, patternsyntax]
U+2E40 ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase, patternsyntax]
U+2E5D ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase, patternsyntax]
U+301C ON Punctuation: Dash punctuation, common, Other, [hangul, hiragana, katakana, bopomofo, han], [dash, graphemebase, patternsyntax]
U+3030 ON Punctuation: Dash punctuation, common, Extended Pictographic, [hangul, hiragana, katakana, bopomofo, han], [dash, emoji, extendedpictographic, graphemebase, patternsyntax]
U+30A0 ON Punctuation: Dash punctuation, common, Other, [hiragana, katakana], [dash, graphemebase]
U+FE31..U+FE32 ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase]
U+FE58 ON Punctuation: Dash punctuation, common, Other, [dash, graphemebase]
U+FE63 ES Punctuation: Dash punctuation, common, Other, [dash, graphemebase, math]
U+FF0D ES Punctuation: Dash punctuation, common, Other, [dash, graphemebase]
U+10D6E ON Punctuation: Dash punctuation, garay, Other, [dash, graphemebase]
U+10EAD R Punctuation: Dash punctuation, yezidi, Other, [dash, graphemebase]
find gbreak LVT
U+AC01..U+AC1B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AC1D..U+AC37 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AC39..U+AC53 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AC55..U+AC6F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AC71..U+AC8B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AC8D..U+ACA7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ACA9..U+ACC3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ACC5..U+ACDF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ACE1..U+ACFB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ACFD..U+AD17 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD19..U+AD33 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD35..U+AD4F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD51..U+AD6B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD6D..U+AD87 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AD89..U+ADA3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ADA5..U+ADBF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ADC1..U+ADDB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ADDD..U+ADF7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+ADF9..U+AE13 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE15..U+AE2F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE31..U+AE4B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE4D..U+AE67 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE69..U+AE83 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AE85..U+AE9F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AEA1..U+AEBB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AEBD..U+AED7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AED9..U+AEF3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AEF5..U+AF0F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF11..U+AF2B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF2D..U+AF47 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF49..U+AF63 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF65..U+AF7F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF81..U+AF9B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AF9D..U+AFB7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AFB9..U+AFD3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AFD5..U+AFEF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+AFF1..U+B00B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B00D..U+B027 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B029..U+B043 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B045..U+B05F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B061..U+B07B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B07D..U+B097 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B099..U+B0B3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B0B5..U+B0CF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B0D1..U+B0EB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B0ED..U+B107 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B109..U+B123 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B125..U+B13F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B141..U+B15B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B15D..U+B177 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B179..U+B193 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B195..U+B1AF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B1B1..U+B1CB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B1CD..U+B1E7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B1E9..U+B203 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B205..U+B21F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B221..U+B23B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B23D..U+B257 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B259..U+B273 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B275..U+B28F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B291..U+B2AB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B2AD..U+B2C7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B2C9..U+B2E3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B2E5..U+B2FF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B301..U+B31B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B31D..U+B337 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B339..U+B353 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B355..U+B36F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B371..U+B38B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B38D..U+B3A7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B3A9..U+B3C3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B3C5..U+B3DF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B3E1..U+B3FB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B3FD..U+B417 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B419..U+B433 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B435..U+B44F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B451..U+B46B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B46D..U+B487 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B489..U+B4A3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B4A5..U+B4BF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B4C1..U+B4DB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B4DD..U+B4F7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B4F9..U+B513 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B515..U+B52F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B531..U+B54B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B54D..U+B567 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B569..U+B583 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B585..U+B59F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B5A1..U+B5BB L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B5BD..U+B5D7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B5D9..U+B5F3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B5F5..U+B60F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B611..U+B62B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B62D..U+B647 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B649..U+B663 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B665..U+B67F L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B681..U+B69B L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B69D..U+B6B7 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B6B9..U+B6D3 L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+B6D5..U+B6EF L Letter: Other letter, hangul, Hangul syllable type LVT, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
...
find script Old_Uyghur
U+10F70..U+10F81 R Letter: Other letter, olduyghur, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+10F82..U+10F85 NSM Mark: Non-spacing mark, olduyghur, Extend, [caseignorable, diacritic, graphemeextend, idcontinue, incb, xidcontinue]
U+10F86..U+10F89 R Punctuation: Other punctuation, olduyghur, Other, [graphemebase, sentenceterminal, terminalpunctuation]
find bidi PDF
U+202C PDF Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
find bidi CS
U+002C CS Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax, terminalpunctuation]
U+002E CS Punctuation: Other punctuation, common, Other, [ascii, caseignorable, graphemebase, patternsyntax, sentenceterminal, terminalpunctuation]
U+002F CS Punctuation: Other punctuation, common, Other, [ascii, graphemebase, patternsyntax]
U+003A CS Punctuation: Other punctuation, common, Other, [ascii, caseignorable, graphemebase, patternsyntax, terminalpunctuation]
U+00A0 CS Separator: Space separator, common, Other, [graphemebase, whitespace]
U+060C CS Punctuation: Other punctuation, common, Other, [arabic, syriac, thaana, nko, hanifirohingya, yezidi, garay], [graphemebase, terminalpunctuation]
U+202F CS Separator: Space separator, common, Other, [latin, mongolian, phagspa], [graphemebase, whitespace]
U+2044 CS Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
U+FE50 CS Punctuation: Other punctuation, common, Other, [graphemebase, terminalpunctuation]
U+FE52 CS Punctuation: Other punctuation, common, Other, [caseignorable, graphemebase, sentenceterminal, terminalpunctuation]
U+FE55 CS Punctuation: Other punctuation, common, Other, [caseignorable, graphemebase, terminalpunctuation]
U+FF0C CS Punctuation: Other punctuation, common, Other, [graphemebase, terminalpunctuation]
U+FF0E CS Punctuation: Other punctuation, common, Other, [caseignorable, graphemebase, sentenceterminal, terminalpunctuation]
U+FF0F CS Punctuation: Other punctuation, common, Other, [graphemebase]
U+FF1A CS Punctuation: Other punctuation, common, Other, [caseignorable, graphemebase, terminalpunctuation]
find bidi CS type Sm
U+2044 CS Symbol: Mathematical symbol, common, Other, [graphemebase, math, patternsyntax]
find bidi B
U+000A B Control: Control, common, LF, [ascii, patternwhitespace, whitespace]
U+000D B Control: Control, common, CR, [ascii, patternwhitespace, whitespace]
U+001C..U+001E B Control: Control, common, Control, [ascii]
U+0085 B Control: Control, common, Control, [patternwhitespace, whitespace]
U+2029 B Separator: Paragraph separator, common, Control, [patternwhitespace, whitespace]
find bidi FSI
U+2068 FSI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
find bidi PDI
U+2069 PDI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
find bidi RLI
U+2067 RLI Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
find bidi RLO
U+202E RLO Control: Format, common, Control, [bidicontrol, caseignorable, defaultignorablecodepoint]
find bidi S
U+0009 S Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+000B S Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+001F S Control: Control, common, Control, [ascii]
find bidi WS
U+000C WS Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+0020 WS Separator: Space separator, common, Other, [ascii, graphemebase, patternwhitespace, whitespace]
U+1680 WS Separator: Space separator, ogham, Other, [graphemebase, whitespace]
U+2000..U+200A WS Separator: Space separator, common, Other, [graphemebase, whitespace]
U+2028 WS Separator: Line separator, common, Control, [patternwhitespace, whitespace]
U+205F WS Separator: Space separator, common, Other, [graphemebase, whitespace]
U+3000 WS Separator: Space separator, common, Other, [graphemebase, whitespace]
find bidi white_space bool ascii
U+000C WS Control: Control, common, Control, [ascii, patternwhitespace, whitespace]
U+0020 WS Separator: Space separator, common, Other, [ascii, graphemebase, patternwhitespace, whitespace]
find script bopo
U+02EA..U+02EB ON Symbol: Modifier symbol, bopomofo, Other, [caseignorable, diacritic, graphemebase]
U+3105..U+312F L Letter: Other letter, bopomofo, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+31A0..U+31BF L Letter: Other letter, bopomofo, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
find bool prependedconcatenationmark
U+0600..U+0604 AN Control: Format, arabic, Prepend, [caseignorable, prependedconcatenationmark]
U+0605 AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+06DD AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+070F AL Control: Format, syriac, Prepend, [caseignorable, prependedconcatenationmark]
U+0890..U+0891 AN Control: Format, arabic, Prepend, [caseignorable, prependedconcatenationmark]
U+08E2 AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+110BD L Control: Format, kaithi, Prepend, [caseignorable, prependedconcatenationmark]
U+110CD L Control: Format, kaithi, Prepend, [caseignorable, prependedconcatenationmark]
find bool pcm
U+0600..U+0604 AN Control: Format, arabic, Prepend, [caseignorable, prependedconcatenationmark]
U+0605 AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+06DD AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+070F AL Control: Format, syriac, Prepend, [caseignorable, prependedconcatenationmark]
U+0890..U+0891 AN Control: Format, arabic, Prepend, [caseignorable, prependedconcatenationmark]
U+08E2 AN Control: Format, common, Prepend, [caseignorable, prependedconcatenationmark]
U+110BD L Control: Format, kaithi, Prepend, [caseignorable, prependedconcatenationmark]
U+110CD L Control: Format, kaithi, Prepend, [caseignorable, prependedconcatenationmark]
find script Todhri
U+105C0..U+105F3 L Letter: Other letter, todhri, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
find script Sunuwar
U+11BC0..U+11BE0 L Letter: Other letter, sunuwar, Other, [alphabetic, graphemebase, idcontinue, idstart, xidcontinue, xidstart]
U+11BE1 L Punctuation: Other punctuation, sunuwar, Other, [graphemebase]
U+11BF0..U+11BF9 L Number: Decimal number, sunuwar, Other, [graphemebase, idcontinue, xidcontinue]

View File

@@ -0,0 +1,347 @@
/****************************************************
* PCRE maintainers' helper program: UTF-8 converter *
****************************************************/
/* This is a test program for converting character code points to UTF-8 and
vice versa. Note that this program conforms to the original definition of
UTF-8, which allows codepoints up to 7fffffff. The more recent definition
limits the validity of Unicode UTF-8 codepoints to a maximum of 10ffffff, and
forbids the "surrogate" code points. This program now gives warnings for these
invalid code points.
The arguments are either single code point values written as U+hh.. or 0xhh..
for conversion to UTF-8, or sequences of hex values, written without 0x and
optionally including spaces (but such arguments must be quoted), for conversion
from UTF-8 to codepoints. For example:
./utf8 0x1234
U+00001234 => e1 88 b4
./utf8 "e1 88 b4"
U+00001234 <= e1 88 b4
In the second case, a number of UTF-8 characters can be present in one
argument. In other words, each such argument is interpreted (after ignoring
spaces) as a string of UTF-8 bytes representing a string of characters:
./utf8 "65 e188b4 77"
0x00000065 <= 65
0x00001234 <= e1 88 b4
0x00000077 <= 77
If the option -s is given, the sequence of UTF-bytes is written out between
angle brackets at the end of the line. On a UTF-8 terminal, this will show the
appropriate graphic for the code point.
Errors provoke error messages, but the program carries on with the next
argument. The return code is always zero.
Philip Hazel
Original creation data: unknown
Code extended and tidied to avoid compiler warnings: 26 March 2020
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
/* The valid ranges for UTF-8 characters are:
0000 0000 to 0000 007f 1 byte (ascii)
0000 0080 to 0000 07ff 2 bytes
0000 0800 to 0000 ffff 3 bytes
0001 0000 to 001f ffff 4 bytes
0020 0000 to 03ff ffff 5 bytes
0400 0000 to 7fff ffff 6 bytes
*/
static const unsigned int utf8_table1[] = {
0x0000007f, 0x000007ff, 0x0000ffff, 0x001fffff, 0x03ffffff, 0x7fffffff};
static const int utf8_table2[] = {
0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc};
static const int utf8_table3[] = {
0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01};
/*************************************************
* Convert character value to UTF-8 *
*************************************************/
/* This function takes an unsigned long integer value in the range 0 -
0x7fffffff and encodes it as a UTF-8 character in 1 to 6 bytes.
Arguments:
cvalue the character value
buffer pointer to buffer for result - at least 6 bytes long
Returns: number of bytes placed in the buffer
0 if input code point is too big
*/
static size_t
ord2utf8(unsigned long int cvalue, unsigned char *buffer)
{
size_t i, j;
for (i = 0; i < sizeof(utf8_table1)/sizeof(int); i++)
if (cvalue <= utf8_table1[i]) break;
if (i >= sizeof(utf8_table1)/sizeof(int)) return 0;
buffer += i;
for (j = i; j > 0; j--)
{
*buffer-- = 0x80 | (cvalue & 0x3f);
cvalue >>= 6;
}
*buffer = utf8_table2[i] | cvalue;
return i + 1;
}
/*************************************************
* Convert UTF-8 string to value *
*************************************************/
/* This function takes one or more bytes that represent a UTF-8 character from
the start of a string of bytes. It returns the value of the character, or the
offset of a malformation. For an overlong encoding that works but is not the
correct (shortest) one, the error offset is just after the last byte.
Argument:
buffer a pointer to the byte vector
buffend a pointer to the end of the buffer
vptr a pointer to a variable to receive the value
lenptr a pointer to a variable to receive the offset when error detected
Returns: > 0 => the number of bytes consumed
0 => invalid UTF-8: first byte missing 0x40 bit
-1 => invalid UTF-8: first byte has too many high-order 1-bits
-2 => incomplete sequence at end of string
-3 => incomplete sequence within string
-4 => overlong code sequence
*/
static int
utf82ord(unsigned char *buffer, unsigned char *buffend,
long unsigned int *vptr, int *lenptr)
{
unsigned int c = *buffer++;
unsigned int d = c;
int i, j, s;
/* Check for an ASCII character, or find the number of additional bytes in a
multibyte character. */
for (i = -1; i < 6; i++)
{
if ((d & 0x80) == 0) break;
d <<= 1;
}
switch (i)
{
case -1: /* ASCII character; first byte does not have 0x80 bit */
*vptr = c;
return 1;
case 0: /* First byte has 0x80 but is missing 0x40 bit */
*lenptr = 0;
return 0;
case 6:
*lenptr = 0; /* Too many high bits */
return -1;
default:
break;
}
/* i now has a value in the range 1-5 */
s = 6*i;
d = (c & utf8_table3[i]) << s;
for (j = 0; j < i; j++)
{
if (buffer >= buffend)
{
*lenptr = j + 1;
return -2;
}
c = *buffer++;
if ((c & 0xc0) != 0x80)
{
*lenptr = j + 1;
return -3;
}
s -= 6;
d |= (c & 0x3f) << s;
}
/* Valid UTF-8 syntax */
*vptr = d;
/* Check that encoding was the correct one, not overlong */
for (j = 0; j < (int)(sizeof(utf8_table1)/sizeof(int)); j++)
if (d <= utf8_table1[j]) break;
if (j != i)
{
*lenptr = i + 1;
return -4;
}
/* Valid value */
return i + 1;
}
/*************************************************
* Main Program *
*************************************************/
int
main(int argc, char **argv)
{
int i = 1;
int show = 0;
unsigned char buffer[64];
if (argc > 1 && strcmp(argv[1], "-s") == 0)
{
show = 1;
i = 2;
}
for (; i < argc; i++)
{
char *x = argv[i];
char *endptr;
if (strncmp(x, "0x", 2) == 0 || strncmp(x, "U+", 2) == 0)
{
size_t rc, j;
unsigned long int d = strtoul(x+2, &endptr, 16);
if (*endptr != 0)
{
printf("** Invalid hex number %s\n", x);
continue; /* With next argument */
}
rc = ord2utf8(d, buffer);
printf("U+%08lx => ", d);
if (rc == 0)
printf("** Code point greater than 0x7fffffff cannot be encoded");
else
{
for (j = 0; j < rc; j++) printf("%02x ", buffer[j]);
if (show)
{
printf(">");
for (j = 0; j < rc; j++) printf("%c", buffer[j]);
printf("< ");
}
if (d >= 0xd800 && d <= 0xdfff)
printf("** Invalid Unicode (surrogate)");
else if (d > 0x10ffff)
printf("** Invalid Unicode (greater than U+10ffff)");
}
printf("\n");
}
else
{
unsigned char *bptr;
unsigned char *buffend;
int len = 0;
int y = 0;
int z = 0;
for (;;)
{
while (*x == ' ') x++;
if (*x == 0 && !z) break;
if (!isxdigit(*x))
{
printf("** Malformed hex string: %s\n", argv[i]);
len = -1;
break;
}
y = y * 16 + (tolower(*x) - ((isdigit(*x))? '0' : 'W'));
x++;
if (z)
{
buffer[len++] = y;
y = 0;
}
z ^= 1;
}
if (len < 0) continue; /* With next argument after malformation */
bptr = buffer;
buffend = buffer + len;
while (bptr < buffend)
{
unsigned long int d;
int j;
int offset;
int rc = utf82ord(bptr, buffend, &d, &offset);
if (rc > 0)
{
printf("U+%08lx <= ", d);
for (j = 0; j < rc; j++) printf("%02x ", bptr[j]);
if (show)
{
printf(">");
for (j = 0; j < rc; j++) printf("%c", bptr[j]);
printf("<");
}
printf("\n");
bptr += rc;
}
else if (rc == -4)
{
printf("U+%08lx <= ", d);
for (j = 0; j < offset; j++) printf("%02x ", bptr[j]);
printf("** Overlong UTF-8 sequence\n");
bptr += offset;
}
else
{
switch (rc)
{
case 0: printf("** First byte missing 0x40 bit");
break;
case -1: printf("** First byte has too many high-order bits");
break;
case -2: printf("** Incomplete UTF-8 sequence at end of string");
break;
case -3: printf("** Incomplete UTF-8 sequence");
break;
default: printf("** Unexpected return %d from utf82ord()", rc);
break;
}
printf(" at offset %d in string ", offset);
while (bptr < buffend) printf("%02x ", *bptr++);
printf("\n");
break;
}
}
}
}
return 0;
}
/* End */