0.2:
* SYNOPSIS preprocessor lines use Fd.
* Names found in the SYNOPSIS are remembered using Marc Espie's
ohash library (bundled for compatibility with operating systems
lacking it); that information is used subsequently to mark up
function names with Fn, function arguments with Fa, type names
with Vt, preprocessor macros with Dv.
* Foreign function names are marked up with Xr.
* Whitespace handling has been improved in many respects (blank
lines in literal displays; re-wrap text lines; new sentence, new
line; better horizontal spacing; no more whitespace at the end
of lines).
* Improved handling of closing punctuation.
* Escaping of quotes at the beginning of macro arguments.
This Perl module implements an XML parser with a interface similar to
XML::Parser. Though not all callbacks are supported, you should be able
to use it in the same way you use XML::Parser. Due to using experimental
regexp features it'll work only on Perl 5.6 and above and may behave
differently on different platforms.
Note that you cannot use regular expressions or split in callbacks. This
is due to a limitation of perl's regular expression implementation
(which is not re-entrant).
[Changes contributed by Olly Betts]
- Support passing collapse_max argument to Enquire::set_collapse_key().
Fixes#669, reported by Felix Ostmann.
- Add missing 'my' to testcases.
- Add 'use strict' to all testcases.
- Add a "LICENSE" section to the main POD.
- META.yml: Specify licence and minimum Perl version.
- Fix t/symboltest.t to work when built against an installed version
of xapian-core (broken by changes in 1.2.20.0).
- Fix "Filehandle STDOUT reopened as M only for input" warning from
running "perl Makefile.PL".
- Remove TODO for wrapping MatchAll and MatchNothing - these were added
in 1.2.13.0. Reported by Will Crawford.
- Wrap Xapian::BAD_VALUENO.
- Fix "make test" to use the Xapian.so we just built, rather than an
installed version.
documentation:
* docs/overview.rst: Document 'E' prefixed boolean terms for filtering by
extension (see #668, reported by bramvdh).
* docs/encodings.rst: Add a document about character encoding, as suggested by
James Aylett in #550.
* docs/cgiparams.rst: Improve wording of docs for SORT parameter.
* docs/omegascript.rst: Update documentation references to DATE1, DATE2, and
DAYSMINUS which were renamed in 0.6.x and the compatibility aliases removed
in 1.0.0.
indexers:
* omindex:
+ outlookmsg2html: Fix handling of message/rfc822 subparts.
+ Ignore extensions .msi and .msp, which are Microsoft installer files, but
which libmagic sometimes incorrectly identifies as application/msword.
+ Interpret a command of "false" in "--filter" as meaning to ignore files
with that MIME type.
omega:
* $prettyurl now decodes valid UTF-8 sequences, and some additional ASCII
characters in the path part: []@!$&'()*+.;= (Fixes#550 and #644, reported by
catkin and terencz.)
* $prettyurl now leaves the query and fragment parts of the URL alone and won't
decode an escaped "/" (omindex doesn't create URLs with any of these, so we
only risk breaking other URLs which have them).
* Drop compilation date and time from output when run from the command line -
they prevent reproducible builds and the version number is sufficient
information.
* Handle CGI parameter [=0 as [=1.
templates:
* templates/query: When listing matching terms, don't make the commas italic.
* templates/query: Eliminate blank line before <html>.
* templates/xml: Add XML declaration.
* templates/godmode: Specify charset utf-8 in the content-type.
* templates/xml: Update handling of DATE1, DATE2 and DAYSMINUS which were
renamed in 0.6.x and the compatibility aliases removed in 1.0.0.
build system:
* Link test programs with libtool's '-no-install' or '-no-fast-install', like
we already do in xapian-core, which means that libtool doesn't need to
generate shell script wrappers for them on most platforms.
* configure: Use pkg-config in preference to determine flags needed to
compile and link with PCRE, as this will just work when cross-compiling
(at least under MXE).
* configure: Define MINGW_HAS_SECURE_API under mingw to get _putenv_s()
declared in stdlib.h.
* Enable automake option 'subdir-objects' to avoid warning from newer automake.
portability:
* Add spaces between literal strings and macros which expand to literal strings
for C++11 compatibility.
* Remove 'register' as it's deprecated and clang spits out warnings because of
that. Any modern compiler likely just ignores it as an optimisation hint
anyway.
* Avoid doing link tests with libmagic in configure as they fail on mingw due
to not automatically picking up libraries which libmagic itself depends on.
API:
* QueryParser: Extend the set of characters allowed in the start of a range to
be anything except for '(' and characters <= ' '. This better matches what's
accepted for a range end (anything except for ')' and characters <= ' ').
Reported by Jani Nikula.
matcher:
* Reimplement OP_PHRASE for non-exact phrases. The previous implementation was
buggy, giving both false positives and false negatives in rare cases when
three or more terms were involved. Fixes#653, reported by Jean-Francois
Dockes.
* Reimplement OP_NEAR - the new implementation consistently requires the terms
to occur at different positions, and fixes some previously missed matches.
* Fix a reversed check for picking the shorter position list for an exact
phrase of two terms. The difference this makes isn't dramatic, but can be
measured (at least with cachegrind). Thanks to kbwt for spotting this.
* When matching an exact phrase, if a term doesn't occur where we want, use
its actual position to advance the anchor term, rather than just checking
the next position of the anchor term.
brass backend:
* Fix cursor versioning to consider cancel() and reopen() as events where
the cursor version may need incrementing, and flag the current cursor version
as used when a cursor is rebuilt. Fixes#675, reported by Germán M. Bravo.
* Avoid using file descriptions < 3 for writable database tables, as it risks
corruption if some code in the same process tries to write to stdout or
stderr without realising it is closed. (Partly addresses #651)
chert backend:
* Fix cursor versioning to consider cancel() and reopen() as events where
the cursor version may need incrementing, and flag the current cursor version
as used when a cursor is rebuilt. Fixes#675, reported by Germán M. Bravo.
* Avoid using file descriptions < 3 for writable database tables, as it risks
corruption if some code in the same process tries to write to stdout or
stderr without realising it is closed. (Partly addresses #651)
* After splitting a block, we always insert the new block in the parent right
after the block it was split from - there's no need to binary chop.
flint backend:
* Fix cursor versioning to consider cancel() and reopen() as events where
the cursor version may need incrementing, and flag the current cursor version
as used when a cursor is rebuilt. Fixes#675, reported by Germán M. Bravo.
remote backend:
* Fix sort by value when multiple databases are in use and one or more are
remote. This change necessitated a minor version bump in the remote
protocol. Fixes#674, reported by Dylan Griffith. If you are upgrading a
live system which uses the remote backend, upgrade the servers before the
clients.
build system:
* The compiler ABI check in the public API headers now issues a warning
(instead of an error) for an ABI mismatch for ABI versions 2 and later
(which means GCC >= 3.4). The changes in these ABI versions are bug fixes
for corner cases, so there's a good chance of things working - e.g. building
xapian-bindings with GCC 5.1 (which defaults to ABI version 8) against
xapian-core built with GCC 4.9 (which defaults to ABI version 2) seems to
work OK. A warning is still useful as a clue to what is going on if linking
fails due to a missing symbol.
* xapian-config,xapian-core.pc: When compiling with xlC on AIX, the reported
--cxxflags/--cflags now include -D_LARGE_FILES=1 as this is defined for the
library, and defining it changes the ABI of std::string with this compiler,
so it must also be defined when building code using the Xapian API.
* xapian-core.pc: Include --enable-runtime-pseudo-reloc in --libs output for
mingw and cygwin, like xapian-config does.
* xapian-core.pc: Fix include directory reported by `pkg-config --cflags`.
This bug was harmless if xapian-core was installed to a directory which was
on the default header search path (such as /usr/include).
* xapian-config: Fix typo so cached result of test in is_uninstalled() is
actually used on subsequent calls. Fixes#676, reported (with patch) by Ryan
Schmidt.
* configure: Changes in 1.2.19 broke the custom macro we use to probe for
supported compiler flags such that the flags never got used. This release
fixes this problem.
* configure: Set default value for AUTOM4TE before AC_OUTPUT so the default
will actually get used. Only relevant when building in maintainer mode
(e.g. from git).
* soaktest: Link with libtool's '-no-install' or '-no-fast-install', like we
already do for other test programs, which means that libtool doesn't need to
generate shell script wrappers for them on most platforms.
* Generate and install a file for pkg-config. (Fixes#540)
* configure: Update link to cygwin FAQ in error message.
documentation:
* API documentation: Minor wording tweaks and formatting improvements.
* docs/deprecation.rst: Add deprecation of omindex --preserve-nonduplicates
which happened in 1.2.4.
* HACKING: Update URL.
* HACKING: libtool 2.4.6 is now used for bootstrapping snapshots and releases.
* include/xapian/weight.h: Document the enum stat_flags values.
* docs/postingsource.rst: Use a modern class in postingsource example. (Noted
by James Aylett)
* docs/deprecation.rst,docs/replication.rst: Fix typos.
* Update doxygen configuration files to avoid warnings about obsolete tags from
newer doxygen versions.
* HACKING: Update details of building Xapian packages.
tools:
* xapian-compact: Make sure we open all the tables of input databases at the
same revision. (Fixes#649)
* xapian-metadata: Add 'list' subcommand to list all the metadata keys.
* xapian-replicate: Fix connection timeout to be 10 seconds rather than 10000
seconds (the incorrect timeout has been the case since 1.2.3).
* xapian-replicate: Set SO_KEEPALIVE for xapian-replicate's connection to the
master, and add command line option to allow setting socket-level timeouts
(SO_RCVTIMEO and SO_SNDTIMEO) on platforms that support them. Fixes#546,
reported by nkvoll.
* xapian-replicate-server: Avoid potentially reading uninitialised data if a
changeset file is truncated.
* xapian-check: For chert and brass, cross-check the position and postlist
tables to detect positional data for non-existent documents.
portability:
* Add spaces between literal strings and macros which expand to literal strings
for C++11 compatibility.
* ValueCountMatchSpy::top_values_begin(): Fix the comparison function not to
return true for two equal elements, which manifests as incorrect sorting in
some cases when using clang's libc++ (which recent OS X versions do).
* apitest: The adddoc5 testcase fails under clang due to an exception handling
bug, so just #ifdef out the problematic part of the testcase when building
with clang for now.
* Fix clang warnings on OS X. Reported by Germán M. Bravo.
* Fix examples to build with IBM's xlC compiler on AIX - they were failing due
to _LARGE_FILES being defined for the library build but not for the examples,
and defining this changes the ABI of std::string with this compiler.
* configure: Improve the probe for whether the test harness can use RTTI to
work for IBM's xlC compiler (which defaults to not generating RTTI).
* Fix to build with Sun's C++ compiler.
* Use F_DUPFD where available to dup to a file descriptor which is >= 2, rather
than calling dup() until we get one.
* When unserialising a double, avoid reading one byte past the end of the
serialised value. In practice this was harmless on most platforms, as
dbl_max_mantissa is 255 for IEEE-754 format doubles, and at least GCC's
std::string keeps the buffer nul-terminated. Reported by Germán M. Bravo in
github PR#67.
* When unserialising a double, add missing cast to unsigned char when we check
if the value will fit in the double type. On machines with IEEE-754 doubles
(which is most current platforms) this happened to work OK before. It would
also have been fine on machines where char is unsigned by default.
* Fix incorrect use of "delete" which should be "delete []". This is
undefined behaviour in C++, though the type is POD, so in practice this
probably worked OK on many platforms.
* When locking a database for writing, use F_OFD_SETLK where available, which
avoids having to fork() a child process to hold the lock. This currently
requires Linux kernel >= 3.15, but it has been submitted to POSIX so
hopefully will be widely supported eventually. Thanks to Austin Clements for
pointing out this now exists.
* Fix detection of fdatasync(), which appears to have been broken practically
forever - this means we've probably been using fsync() instead, which
probably isn't a big additional overhead. Thanks to Vlad Shablinsky for
helping with Mac OS X portability of this fix.
* configure: Define MINGW_HAS_SECURE_API under mingw to get _putenv_s()
declared in stdlib.h.
* Use POSIX O_NONBLOCK in preference to O_NDELAY - the semantics of the latter
differ between BSD and System V.
* According to POSIX, strerror() may not be thread safe, so use alternative
thread-safe ways to translate errno values where possible.
* On Microsoft Windows, avoid defining EADDRINUSE, etc if they're already
defined, and use WSAE* constants un-negated - they start from a high value
so won't collide with E* constants.
debug code:
* Fix some overly strict assertions in flint, which caused apitest's
cursordelbug1 to fail with assertions on.
* Add more assertions to the chert backend code.
* Allow to set the gap between subtitles, to be used when inserting or splitting subtitles
* Fixed character count when editing text
* Multiple subtitle engine fixes:
* Fixed parsing and writing (AQTitle, Karaoke Lyrics LRC, MacSUB, MPSub, Panimator,
Phoenix Japanimation Society, Sofni, SubCreator 1.x, ViPlay Subtitle File)
* Fixed output of deciseconds (SubCreator 1.x)
* Removed extra newline in the output (MacSUB, Phoenix Japanimation Society, Panimator)
* Fixed bug with multiple lines of text per subtitle (Sofni)
* Switched to GStreamer 1.0
* Fixed Help menu items
- Convert PERL5_MODULE_TYPE to default
(upstream)
- Update 1.6.3 to 1.6.5
---------------------
1.6.5 April 21 2015
- Changes to make installation work better, address
https://rt.cpan.org/Public/Bug/Display.html?id=54816
--------------
2.11 2015/05/12 14:19:07 Europe/Oslo (cosimo)
No functional changes, only minor cleanups and a fix for RT#99810
(compilation on non-gcc based systems). Thanks to bjakubski for sending
in patches on Github.
-------------------
1.23 2015.05.20
- Add version numbers to all the pm files.
1.22 2015.05.20
- Refactoring code: 3 argument open, no bareword filehandles
- Refactoring code: convert indirect calls to direct calls
- Add optional test using Test::Perl::Critic
- Fix missing file issue introduced in 1.21
- Include the Test::Comile based test
1.21 2015.05.20
- More tests (use Test::Compile)
- Refactoring code (use Path::Tiny)
- Run perltidy on the code.
- Separate packages to their own files.
- Add use warnings; use strict; remove use diagnostics;
- Remove remaining use 5.... statements.
1.20 2015.05.19
- Refactor test script to use Test::More
1.19 2015.05.18
- Include link to VCS, Bug tracking system, hopepage.
1.18 2015.05.18
- Just to let PAUSE index it.
1.17_01 2015.05.18
- New maintainer (SZABGAB)
---------------------
1.899 Wed May 6 06:34:22 2015
- Fixed bug in ORD() where huge integers (in strings) were
downgraded to floating point before being (incorrectly) inflected
(thanks Dmytro!)
Version 3.2.3
* Avoid rewinding content of a previous inline when autolinking is enabled.
Daniel LeCheminant
* Fix escaping of forward slashes with the Safe render object (add a missing
semi-colon).
0.30.0
=========
Support color on windows
--version show status of features chosen at compile-time
Add support for files: Mathematica, R, wsdl/wadl, Gentoo ebuild,
Velocity, Clojure (1.7), puppet, F#, Nim, Pike
---------------------
0.625 Thu 05 Jun 2014 23:55:42 +1000 <joe@kafsemo.org>
- Allow xml-model processing instructions (#94078).
- Don't warn when undef is passed to setOutput (#94369).
0.624 Wed Feb 12 23:28:39 2014 +1100 <joe@kafsemo.org>
- Allow an empty system ID in a doctype declaration.
--------------
2014-12-07 Sean M. Burke sburke@cpan.org
* RELEASE 1.23. Just a bugfix version.
* The bug in question: https://rt.cpan.org/Ticket/Display.html?id=97456
* Thank you very much to superstar Dagfinn Ilmari Mannsaker for noting
it first *and* for providing a patch for a problem that would baffle
me completely:
"On perls 5.8.8 through 5.12.x, regex matches against UTF-16
surrogate characters emits a fatal "Malformed UTF-8 character"
warning if warnings are enabled. ExtUtils::MakeMaker prior to 6.78
runs the test suite with -w, causing the installation to fail.
The attached patch [which I applied -SMB] disables utf8
warnings while doing the regex substitution and converting the
character number to a character in the test."
And thank you very much to Ricardo Signes and Tim Bunce for reminding
me to actually release this thang! I was stupid and forgot... for
several MONTHS.
* Doc: Adding mention of Tom Christiansen's "Perl Unicode Cookbook":
http://www.perl.com/pub/2012/04/perlunicook-standard-preamble.html
* Doc: Adding a suggestion of "use utf8;" in German example.
-------------------
0.18 2015.04.05
Remove auto_include from Makefile.PL to limit inc/ to the Module::Install code.
0.17 2015.04.05
Add lots of full html tests.
Add command line script script/trac2html
Enable excluding class="" from the HTML
run Perl::Tidy
run Perl::Critic
Escape { in regex RT #100712
0.16 2014.09.13
New maintainer.
Link to Github.
License in META files.
- Add BUILD_DEPENDS+= p5-Unicode-CaseFold-[0-9]* for make test
(upstream)
- update to 0.15
----------------
0.15 Thu Jul 17 16:50:58 WEST 2014
- substitute lowercase by case folding.
What is Case-Folding?
In non-Unicode contexts, a common idiom to compare two strings
case-insensitively is lc($this) eq lc($that). Before comparing two strings
we normalize them to an all-lowercase version. "Hello", "HELLO", and
"HeLlO" all have the same lowercase form ("hello"), so it doesn't matter
which one we start with; they are all equal to one another after lc.
In Unicode, things aren't so simple. A Unicode character might have
mappings for uppercase, lowercase, and titlecase, and the lowercase mapping
of the uppercase mapping of a given character might not be the character
that you started with! For example lc(uc("\N{LATIN SMALL LETTER SHARP S"))
is "ss", not the eszett we started off with! Case-folding is a part of the
Unicode standard that allows any two strings that differ from one another
only by case to map to the same "case-folded" form, even when those strings
include characters with complex case-mappings.