Now use new function names with prefix tre_ exported by libtre.
This makes msort compatible with libtre 0.8.
Removed unnecessary conditioning of Hybrid mapping code on LOCALE_SORT_ORDER.
Changed type of ExclusionTables, fixing a bug in the reporting of exclusions and
saving considerable memory when exclusions are used.
Added -Z option for copying the first record to the output without sorting it.
This is useful for files with a header. Added a regression test for this option.
If a key has comparison type "random, we don't bother to store it
since we aren't going to use it. This saves a little time
and possibly a good bit of storage.
If one or more records have been discarded due to problems in key
extraction but the run is otherwise successful, the exit code is
now RECORDEXCLUDED (13) rather than BADRECORD (8).
ISO8601 keys may now have an optional leading sign.
Cleaned up and improved the log.
Made error-checking and reporting finer-grained in GetMonthNames.
A few of the regression tests depend on the locale system, which may fail
for reasons independent of msort. These tests have now been separated
so that their failure will not suggest that msort itself is not working.
Typing "make test" runs the main set of tests. Typing "make localtest"
runs the locale-dependent tests, the results of which are written to
Split time and iso8601 date/time regression tests so as not to
mix data with and without time zone offsets since mixing them causes
tests to fail if executed in some time zones.
Added regression test for more complex substition.
Added information to the manual section on random comparison.
If you don't know how random comparison can be useful other than
for unsorting, you might want to check this out.
It is now possible to set the random number generator seed from the command-line,
allowing replication of random sorts. Whatever its origin, the seed used is now
reported in the log.
Added regression tests for angles and collating sequences.
Rearranged the start and completion time stamps in the log so that
the former immediately precedes the latter, facilitating comparison.
Null keys resulting from the presence of a tag with no following value, are now
detected and handled like key fields that are missing in their entirety.
Fixed a bug in which compound positional keys (those involving portions of more
than one field) were not properly null terminated, resulting in various sorts
Positional key specifications with a character offset of zero are now treated
as fatal errors and reported to the user.
Made report of failure of key extraction on one or more records subject to Verbose flag,
so that giving the -q option completely silences msort so long as there are no non-fatal
ISO8601 time/date stamps are now written into the beginning and end of the log file.
Made failure of check for libintl during configuration non-fatal.
Added 16 more regression tests.
Fixed bug resulting from allocation of insufficient memory.
Removed inappropriate free of stack storage.
Removed debugging line inadvertently left in.
Eliminated printing of message "Consult the log for details" if
logging is not enabled.
Added section on Dependencies to README, discussing use of non-standard
libraries and how to build the simplest configuration.
Eliminated direct call to libgmp, which should simplify installation.
Now get gmp version info from function in libuninum if a sufficiently recent
version of libuninum is available.
Added check for libintl.
Added nine regression tests.
Updated case-folding to Unicode 5.1.
Fixed bug that caused inappropriate rejection of ISO8601
date/time stamps lacking a numerical time zone offset.
Fixed bug that caused inappropriate return of error
from well-formed ISO8601 times.
Fixed a bug that caused a segmentation fault if
an attempt was made to analyze as a date a string not
containing the expected first date component separator.
Added -A flag for lexicographic sorts of using only the
first character (after subs, exclusions, etc.). This
emulates pre-modern alphabetization practice.
Added some regression tests, which may be executed by
typing "make test".
Added some sample sort order definition files.
Added information about system and machine type to version info.
Fixed segfault bug when using utf8proc for normalization.
Modified domain name processing to handle optional protocol
segment, which is treated as lowest priority component like
the username in an email address.
Fixed bugs in rearrangement of email addresses.
Made license for msg consistently GPLv3.
Fixed small bug in Turkic case folding.
Fixed bug in hybrid comparison arising on 64-bit architectures.
Fixes bug in which a character range with a positive first
index and negative second index was not accepted.
Fixes bug that prevented compilation with --disable-uninum
when <uninum/uninum.h> is not present.
Msg now checks for Tk 8.5 and adapts font sizes accordingly.
Fixes bug that prevented compilation with --disable-uninum if
file <uninum/nsdefs.h> is not present.
Added command-line options for specifying input and output
files. Also, if the specified input and output files are
the same, the input is now overwritten.
Added the option of suppressing logging.
License is now GPL version 3.
Eliminated printing of version information when called
with no arguments.
Time and date-time keys may now contain ISO 8601 time zone specifiers.
This version provides a choice between the International Components for Unicode
and utf8proc libraries, which we use only for Unicode normalization. utf8proc
is a smaller library with fewer dependencies and is likely easier to install.
This version normalizes all Unicode input by default.
Dates may now make use of any supported number system.
Month fields in dates may contain month names rather than numbers.
Dates may now consist of just year and day-of-year fields.
This release adapts msort and msg to libuninum 2.1.
Both numeric and numeric string keys may now be given in any of several dozen
Extended domain name comparison to handle email addresses.
Fixed small bugs in description of keys.
Adds domain name comparison.
Updated documentation and added command line option
giving equivalents to GNU sort.
Fixes a segfault on combination of -c n and -w options.
Fixes a free of free pointer on failed key extraction.
If there is only one record, we still mention that there
is no point in sorting only one record but we now exit
successfully after writing out that record.
This is desirable for non-interactive use.
Case-folding was updated to Unicode 4.1.
Turkic case-folding has been added as an option.
The GUI now rolls up as it was beginning to take up
too much real estate.
The option of just checking whether the input is sorted is now available.
Conversion of stylistic variants now handles Hebrew presentation forms.
Added ability to sort on month names and abbreviations.
Added options for treating certain classes of characters as their "basic" counterparts.
Memory usage has been significantly reduced.
It is now possible to use the collation rules for a locale rather than writing
a sort order definition. This is done by giving a locale name as argument to the
-s flag. If the argument to the -s flag is the word "locale", the collation rules
for the current locale will be used.