| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
| |
Some code points have two (possibly more names). This makes sure that
all work.
|
| |
|
|
|
|
|
|
|
| |
This name is more descriptive of what this option has come to be. The
previous option name has been released only in a few of the 5.13 series
Perls, and is for internal mktables development only, so backward
compatibility shouldn't be an issue.
|
|
|
|
| |
More than just names are output now, $output_names is renamed $annotate
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This option is not used for production, but is useful for someone
running mktables by hand who wants to compare Unicode versions, and
perhaps for debugging mktables. It causes the code points in the output
tables to have comments added that give information about that code
point, so it isn't necessary to look up the hex numbers.
This patch is a significant expansion of the previous capability, and
adds the character's representation, and text for the non-named
characters.
I'm finding it useful in moving to Unicode 6.0.
|
|
|
|
|
| |
This will be used for annotations. Currently no file is written in
utf8, so the calls all have 0 for the parameter.
|
|
|
|
|
|
|
| |
matches_identically_to() was a Table method, but it really applies to
the Range_List contained in the table. Moving it to that class instead
will help with later code that wants to compare a Range_List that isn't
in a table.
|
|
|
|
|
|
| |
When I created matches_identically_to() originally, I just copied from
another subroutine, changing a few things. I shouldn't have copied this
message, as it was only applicable to the original routine.
|
|
|
|
|
| |
is_equivalent_to() doesn't mean what it says. Instead it means if the
two objects have been set equivalent to each other.
|
|
|
|
|
|
| |
Commit e1a3bfbd2f5194edc05010f0b5e5a568b1fdf508
omitted some code that was in my working version. My git skills aren't
good enough to go back and add that in without zapping everything else.
|
|
|
|
|
| |
This changes the parameters to write() so it can accept more than one
array ref, thus eliminating the need for an unshift onto a large array.
|
|
|
|
|
| |
has_specials was used to avoid an extra pass for tables that didn't
need it. That pass has been eliminated, so this code is useless.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch is mainly for performance, but in eliminating a pass which
modified the tables, it allows for later changes to not have to rely on
things happening in a certain order.
Previously, tables that had special ranges in them, such as mappings to
multiple characters and character names that are algorithmically
derivable had a separate pass to process those ranges ahead of the main
table, as the information about these is output at the beginning of the
file.
What this patch does is to add a call-back for the processing of
the main body to call when it finds a special range that it doesn't
handle. That call-back just adds the information to various
temporaries, depending on what the range is.
After the processing of all the ranges, those temporaries hold all the
information needed to output the specials data. This is processed and
the text is unshifted to the beginning of the output.
pre_body() used to process all this. But it has been split up. The
code that does need to go at the beginning is moved to the write()
routine for the sub-class, which processes it before calling the super
class's write. The code that figured out about the special ranges is
moved to the new call-back handle_special_range(). The remaining code
remains in pre_body(), but it is now called later in the process.
|
| |
|
|
|
|
|
|
|
|
|
| |
This patch is in preparation for adding more complete annotations to the
output tables. Previously, only Map tables had a listed format. Match
tables also have a format (empty), but that was understood. But the new
annotation code will need to refer to that format, so I moved the field
into the base class common to both types of tables, and added the
EMPTY_FORMAT for use by Match tables.
|
|
|
|
|
|
|
|
|
|
|
| |
This table which is used only by Normalize.pm has a special format that
is used in no other table. In preparation for adding annotations to it,
make a special format signifier for it. This affects only one line at
the top that indicates to the user the format of the table.
The table has comments in it to say it is volatile and no one should use
this table besides Normalize.pm, which currently doesn't look at that
signifier.
|
|
|
|
| |
I found that 'youngest' was confusing
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This bug has bitten me enough times that I decided to fix it. It would
only be applicable to someone who is developing mktables, and making
changes to it while the program is running. Due to the complicated
nature of the dependencies of mktables, it basically functions as its
own make command, knowing when to rebuild or not based on the
modification times of itself and its input and output files.
Previously, it did not account for changes to itself made while running,
so it would think that it wouldn't have to rebuild, even though it did.
I solve this problem by keeping track of the time the process started,
and storing it in mktables.lst. If something has changed since then,
then the files need to be rebuilt.
|
| |
|
|
|
|
|
|
|
| |
This is an intermediate patch that changes the variable name as to
whether the files need rebuilding or not to something I understand
better. This has long been confusing, as up until a year ago, there had
been a long-standing bug in the program that didn't get it right.
|
|
|
|
| |
This will be useful in outputting better annotations.
|
| |
|
| |
|
|
|
|
| |
This method will be used in multiple places
|
|
|
|
|
|
| |
Tables whose values are strings, aren't arbitrary strings, as for
example they can't contain '#' characters that start comments. So,
don't say they are 'arbitrary'.
|
|
|
|
|
|
| |
An installation may choose to output more tables than by default. The
comment in tables should make it clearer that these are not necessarily
present.
|
|
|
|
|
| |
These two tables can be used frequently, so save a reference instead of
looking it up each time
|
| |
|
|
|
|
| |
This functionality is now in charnames.
|
|
|
|
|
|
|
|
| |
The simple as opposed to the full casing tables weren't able to be
generated correctly because I was passing the name of a table instead of
its object. Normally these tables are generated at all, but I turned
generation of them on temporarily for development purposes, and found
this bug. So there is no test case that can be generated for this fix.
|
| |
|
|
|
|
|
|
| |
Certain generated files had some values converted from hex into decimal.
All the published values are in hex, so should use the more familiar
form for readability.
|
| |
|
|
|
|
|
| |
in the new File::DosGlob tests that came in with
2f3c8ce922663caa9b02d9fddae7536225b6f95d.
|
| |
|
|
|
|
| |
Follow-up to 07004ebbe530fe5ce1c67e63c0b8e1c0aa77b3b9.
|
|
|
|
|
|
|
|
|
| |
If the soon-to-be-implemented configuration option
-Duseshortenedsymbols has been selected, bypass the home-grown
symbol shortening traditionally done by xsubpp because the
compiler's /NAMES=SHORTENED feature will be used instead.
This is only relevant on VMS.
|
|
|
|
|
|
|
|
|
|
| |
Multiple code paths were dereferencing version objects without
checking the underlying type, which could result in segmentation
faults per RT#78286
This patch consolidates all dereferencing into vverify() and
has vverify return the underlying HV or NULL instead of
a boolean value.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If an overload method is itself blessed into a class that has
overloaded operators but does not have fallback enabled, then an error
is produced:
$ perl5.10.0
use overload '+' => sub{};
bless overload::Method main => '+';
overload::Method main => '+';
^D
Operation "ne": no method found,
left argument in overloaded package main,
right argument has no overloaded magic at /usr/local/lib/perl5/5.10.0/
overload.pm line 59.
The attached patch fixes this.
|
| |
|
|
|
|
| |
And add a test to prevent this happening again.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It produces output like this:
lib/sigtrap....................................................sh: line 1: 66151 Abort trap ./perl "-I../lib" -Msigtrap=INT -e 'sub { kill q-INT-, $$ } -> (3)' 2>&1
ok
And is effectively skipped on Windows.
So this new revision of the test
• calls the signal handler directly, instead of trying to trigger it
with a signal and
• overrides kill globally to stop sigtrap.pm from aborting.
|
|
|
|
|
|
| |
Now that have less indent, don't need so many lines. The only changes
in this commit are several blocks of comments to occupy more of each
line. No wording changes are involved.
|
|
|
|
|
|
| |
This patch changes white space only. It lessens the indent of certain
lines that were made longer in an earlier commit, and now most of them
fit into 80 columns.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
mktables is changed to process the Unicode named sequence file.
charnames.pm is changed to cache the looked-up values in utf8. A new
function, string_vianame is created that can handle named sequences, as
the interface for vianame cannot. The subroutine lookup_name() is
slightly refactored to do almost all of the common work for \N{} and the
vianame routines. It now understands named sequences as created my
mktables..
tests and documentation are added. In the randomized testing section,
half use vianame() and half string_vianame().
|
| |
|