Omega 1.4.5 (2017-10-16): documentation: * Direct users towards $set{flag_spelling_correction,true} rather than the deprecated $set{spelling,true} (which is slated for removal in 1.5.0). * Fix typo in docs. indexers: * omindex: + Check file size before calling libmagic to get the mime type, since reading the file size is a much cheaper check and we can skip the libmagic test if the file is empty or larger than the specified maximum size. Patch from caiyulun. * scriptindex: + Reject index scripts with multiple "unique" actions. We don't handle this case sensibly, and it doesn't seem like it really has a use, so better to give an error for people who do this inadvertently. omega: * New $seterror command to set the error message. Implemented by Gaurav Arora. * Make $highlight more efficient. Patch from Vivek Pal. templates: * query: Use $prettyurl for the URL shown at the end of each match (previously we only used it on the URL shown as a fallback when the document has no title). Split off from changes by Vivek Pal in https://github.com/xapian/xapian/pull/161 testsuite: * omegatest: Tell faketime to freeze the clock - previously the clock ran on from the specified fake time, and on a slow and/or heavily loaded machine a test taking more than a second might fail due to this. * Start adding feature tests for scriptindex (so far, checking that specifying multiple 'unique' actions results in an error). Omega 1.4.4 (2017-04-19): indexers: * omindex: + 1.4.3 added a new --sample option, but contrary to the documentation the default behaviour was to take the sample from the meta description (which was the hard-wired behaviour in 1.4.2 and earlier). The default has now been changed to take the sample from the body. + Index .shtm, .xhtml and .xhtm as HTML by default - .shtm is another extension used for server-parsed HTML (in addition to the more common .shtml), and .xhtm and .xhtml are XHTML. + Fix fallback lookup for extension containing upper case. User mappings worked, but built-in extension to MIME type mappings were effectively being ignored (because the result of the function call was not being checked). Bug introduced in 1.3.4. + Fix term-based date ranges, broken by changes in 1.4.2. Found and diagnosed by Gaurav Arora. + Handle date range with start after end better - with term-based ranges, this used to generate a bogus filter, but now just generates Dlatest. + Use Y-term when range starts/ends at year start/end. Previously we used 12 M-terms for these cases. + Use full leap-year check when constructing term-based date ranges - previous code was good until 2100, but even then it would only result in an extra term being included for a non-existent February 29th in rare cases. omega: * New OmegaScript command $cgiparams which returns a list of the parameter names. * Handle tab in a CGI parameter name in the same way as space. Mostly this is a way to avoid having tabs in CGI parameter names - they aren't useful, but if they could have tabs in we can't put CGI parameter names in a list. templates: * query: Fix highlighting of matching terms. We were using both $snippet and $highlight, which results in double highlighting and HTML escaping, most noticeable by literal and appearing around matching terms in the rendered HTML snippet. Reported by Mark Thomas on xapian-discuss. build system: * If gen-mimemap failed after creating mimemap.h, the rule wouldn't get rerun. Omega 1.4.3 (2017-01-25): indexers: * omindex: + Add support for indexing vCard files if Perl and its Text::vCard module are available. + Recognise application/x-rpm as alternative type since libmagic reports this rather than application/x-redhat-package-manager. + Use official MIME type application/vnd.debian.binary-package for debian packages. We used to map .deb and .udeb to application/x-debian-package, but in 2014 (after we added that support for .deb) an official type was registered with IANA. We now map extensions .deb and .udeb to the official type, but the unofficial type is still recognised (older versions of libmagic probably report it, and users may be mapping to it). + Handle PHP as MIME type text/x-php. The main difference this makes is that PHP files which don't have extension '.php' (e.g. .phtml, .phps, .php5, .ph4, etc) get identified by libmagic as text/x-php and will now be indexed. It also means that the user can now more easily configure different filters for HTML and PHP. + Don't use meta description as sample by default. Now we have dynamic snippets (via $snippet), the body text is a better default. Also generated HTML sometimes has unhelpful content in the meta description. To get the previous behaviour, use the new omindex command line option: --sample=description Omega 1.4.2 (2016-12-26): documentation: * Replace auto-generated list of the supported MIME types with an auto-generated table showing the extensions that are mapped to each MIME type by default. Partly addresses #569, reported by catkin. indexers: * omindex: Add support for indexing markdown files (extension .md or .markdown, mime-type text/markdown, using "markdown" to convert to HTML). testsuite: * Add support for "make installcheck" to run tests against installed version. build system: * configure: Fail with clear error with xapian-core < 1.4.0. portability: * Fix GCC -Wimplicit-fallthrough warning. * Add missing for time_t. * Avoid snprintf_for formatting fixed-width integers - it results in warnings about possible output truncation with GCC7 (which aren't actually possible due to limited input range) and it's a bit heavyweight for this job anyway. Omega 1.4.1 (2016-10-21): general: documentation: * Document bug in how $filters encodes DOCIDORDER=A. * Suggest DOCIDORDER=X for DONT_CARE. * Correct mentions of C++ API method MSet::get_snippet() to MSet::snippet(). * Fix typo in Omega 1.4.0 NEWS entry. Patch from James Aylett. indexers: * omindex: * Also index leafname with _ and & replaced by spaces. Literal spaces are often avoided in filenames, and "hello_world.txt" ought to be searchable for via "hello" and "world". Partly addresses #618, reported by Julien Pfefferkorn. omega: * Add support for sorting by more than one value - e.g. SORT=+1,-2 * Add $msizelower and $msizeupper which provide access to the lower and upper bounds on the number of matches. * Add support for $set{weighting,coord}. * Add weightingpurefilter option. Normally a query consisting only of filter terms won't have relevance weights calculated. This new option allows you to specify a weighting scheme to use for such queries, with the same values supported as for the existing weighting option. For example, $set{weightingpurefilter,coord} will weight such queries by how many filter terms match each document. * $filters now includes DATEVALUE, which means we'll force the first page when reloading or changing page starting from existing URLs upon upgrade to 1.4.1, but the exact same existing URL could be for a search without the date filter where we want to force the first page, so there's an inherent ambiguity there. Forcing first page in this case seems the least problematic side-effect. Omission noted by Gaurav Arora. testsuite: * Add feature test for boolprefix and prefix maps. * Add more feature tests for $filters. build system: * GCC 4.7 is now enforced as the minimum version. * Drop unused configure check for symbol visibility * Drop compiler options that are no longer useful: + -fshow-column is the default in all GCC versions we now support (checked as GCC 4.6). + -Wno-long-long is no longer necessary now that we require C++11 where "long long" is a standard type. portability: * Fix build on platforms which don't provide timegm(), such as Cygwin. Reported on xapian-discuss by John Bankert. Omega 1.4.0 (2016-06-24): general: documentation: * Clarify $allterms and $terms documentation. Make it clearer how they differ, and document that $allterms without a parameter list gives all terms indexing the current hit. Noted by Andy Chilton. Omega 1.3.7 (2016-06-01): indexers: * Make named entity look-up (e.g. é -> 233) use the same keyword-lookup table approach we already use for HTML tags and built-in MIME content-types, rather than a std::map, which makes it faster while using less memory. Omega 1.3.6 (2016-05-09): documentation: * Fix overview.rst processing in VPATH build. Our workaround for lack of an include path in docutils was only handling the first include in the file. omega: * Implement $match command for omegascript. Patch from Richhiey Thomas. templates: * Lower case all HTML tags, attributes and values; explicitly close