changeset 2814:54ae25ba376b

Ref #624: Filter files by shell or regular expression pattern https://github.com/BestImageViewer/geeqie/issues/624 The File name (when "contains" is selected) and Comment items on the Search page use Perl Compatible Regular Expressions. Basic searches should be no different to current usage.
author Colin Clark <colin.clark@cclark.uk>
date Mon, 13 Aug 2018 14:30:01 +0100
parents e9e8e8b2afce
children e993f52f08a2
files doc/docbook/GuideImageSearchSearch.xml doc/docbook/GuideReference.xml doc/docbook/GuideReferencePCRE.xml src/search.c web/help/GuideFaq.html web/help/GuideImageSearchCache.html web/help/GuideImageSearchSearch.html web/help/GuideIndex.html web/help/GuideReference.html web/help/GuideReferenceCommandLine.html web/help/GuideReferenceConfig.html web/help/GuideReferenceDecodeLatLong.html web/help/GuideReferenceKeyboardShortcuts.html web/help/GuideReferenceLIRC.html web/help/GuideReferenceLua.html web/help/GuideReferenceMetadata.html web/help/GuideReferencePCRE.html web/help/GuideReferencePixbufLoaders.html web/help/GuideReferenceStandards.html web/help/GuideReferenceSupportedFormats.html web/help/GuideReferenceThumbnails.html web/help/GuideReferenceUTC.html web/help/GuideReferenceXmpExif.html
diffstat 23 files changed, 1069 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/doc/docbook/GuideImageSearchSearch.xml	Sun Aug 12 17:29:35 2018 +0100
+++ b/doc/docbook/GuideImageSearchSearch.xml	Mon Aug 13 14:30:01 2018 +0100
@@ -72,7 +72,13 @@
         <term>
           <guilabel>File name</guilabel>
         </term>
-        <listitem>The search will match if the entered text appears within the file name, or if the text exactly matches the file name, depending on the method selected from the drop down menu. The text comparison can be made to be case sensitive by enabling the Match case checkbox.</listitem>
+        <listitem>
+          The search will match if the entered text appears within the file name, or if the text exactly matches the file name, depending on the method selected from the drop down menu. The text comparison can be made to be case sensitive by enabling the Match case checkbox.
+          <para />
+          If "contains" is selected,
+          <link linkend="GuideReferencePCRE">Perl Compatible Regular Expressions</link>
+          are used.
+        </listitem>
       </varlistentry>
       <varlistentry>
         <term>
@@ -139,6 +145,16 @@
       </varlistentry>
       <varlistentry>
         <term>
+          <guilabel>Comment</guilabel>
+        </term>
+        <listitem>
+          The search will match if the file's Comments field contains the entered pattern.
+          <link linkend="GuideReferencePCRE">Perl Compatible Regular Expressions</link>
+          are used.
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
           <guilabel>Geocoded position</guilabel>
         </term>
         <listitem>
--- a/doc/docbook/GuideReference.xml	Sun Aug 12 17:29:35 2018 +0100
+++ b/doc/docbook/GuideReference.xml	Mon Aug 13 14:30:01 2018 +0100
@@ -14,5 +14,6 @@
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideReferenceUTC.xml" />
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideReferenceDecodeLatLong.xml" />
   <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideReferenceStandards.xml" />
+  <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="GuideReferencePCRE.xml" />
   <para />
 </chapter>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/docbook/GuideReferencePCRE.xml	Mon Aug 13 14:30:01 2018 +0100
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<section id="GuideReferencePCRE">
+  <title id="titleGuideReferencePCRE">Perl Compatible Regular Expressions</title>
+  <para>
+    The Filename and Comment sections on the search window use
+    <ulink url="https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions">Perl Compatible Regular Expressions</ulink>
+    . In general use there are a number of differences to the wildcard expansion used on the command line:
+    <itemizedlist>
+      <listitem>Use "." and not "?" for a single character.</listitem>
+      <listitem>Use "abc.*ghk" and not "abc*ghk" for multiple characters</listitem>
+      <listitem>Use "\." to represent the dot in a file extension</listitem>
+    </itemizedlist>
+  </para>
+</section>
--- a/src/search.c	Sun Aug 12 17:29:35 2018 +0100
+++ b/src/search.c	Mon Aug 13 14:30:01 2018 +0100
@@ -154,6 +154,7 @@
 	FileData *search_dir_fd;
 	gboolean   search_path_recurse;
 	gchar *search_name;
+	GRegex *search_name_regex;
 	gboolean   search_name_match_case;
 	gint64 search_size;
 	gint64 search_size_end;
@@ -172,6 +173,7 @@
 	CacheData *search_similarity_cd;
 	GList *search_keyword_list;
 	gchar *search_comment;
+	GRegex *search_comment_regex;
 	gint   search_rating;
 	gint   search_rating_end;
 	gboolean   search_comment_match_case;
@@ -1915,13 +1917,13 @@
 			{
 			if (sd->search_name_match_case)
 				{
-				match = (strstr(fd->name, sd->search_name) != NULL);
+				match = g_regex_match(sd->search_name_regex, fd->name, 0, NULL);
 				}
 			else
 				{
 				/* sd->search_name is converted in search_start() */
 				gchar *haystack = g_utf8_strdown(fd->name, -1);
-				match = (strstr(haystack, sd->search_name) != NULL);
+				match = g_regex_match(sd->search_name_regex, haystack, 0, NULL);
 				g_free(haystack);
 				}
 			}
@@ -2112,11 +2114,11 @@
 
 			if (sd->match_comment == SEARCH_MATCH_CONTAINS)
 				{
-				match = (strstr(comment, sd->search_comment) != NULL);
+				match = g_regex_match(sd->search_comment_regex, comment, 0, NULL);
 				}
 			else if (sd->match_comment == SEARCH_MATCH_NONE)
 				{
-				match = (strstr(comment, sd->search_comment) == NULL);
+				match = !g_regex_match(sd->search_comment_regex, comment, 0, NULL);
 				}
 			g_free(comment);
 			}
@@ -2459,6 +2461,8 @@
 
 static void search_start(SearchData *sd)
 {
+	GError *error = NULL;
+
 	search_stop(sd);
 	search_result_clear(sd);
 
@@ -2475,6 +2479,20 @@
 		sd->search_name = tmp;
 		}
 
+	if(sd->search_name_regex)
+		{
+		g_regex_unref(sd->search_name_regex);
+		}
+
+	sd->search_name_regex = g_regex_new(sd->search_name, 0, 0, &error);
+	if (error)
+		{
+		log_printf("Error: could not compile regular expression %s\n%s\n", sd->search_name, error->message);
+		g_error_free(error);
+		error = NULL;
+		sd->search_name_regex = g_regex_new("", 0, 0, NULL);
+		}
+
 	if (!sd->search_comment_match_case)
 		{
 		/* convert to lowercase here, so that this is only done once per search */
@@ -2483,6 +2501,20 @@
 		sd->search_comment = tmp;
 		}
 
+	if(sd->search_comment_regex)
+		{
+		g_regex_unref(sd->search_comment_regex);
+		}
+
+	sd->search_comment_regex = g_regex_new(sd->search_comment, 0, 0, &error);
+	if (error)
+		{
+		log_printf("Error: could not compile regular expression %s\n%s\n", sd->search_comment, error->message);
+		g_error_free(error);
+		error = NULL;
+		sd->search_comment_regex = g_regex_new("", 0, 0, NULL);
+		}
+
 	sd->search_count = 0;
 	sd->search_total = 0;
 
@@ -3032,7 +3064,9 @@
 	file_data_unref(sd->search_dir_fd);
 
 	g_free(sd->search_name);
+	g_regex_unref(sd->search_name_regex);
 	g_free(sd->search_comment);
+	g_regex_unref(sd->search_comment_regex);
 	g_free(sd->search_similarity_path);
 	string_list_free(sd->search_keyword_list);
 
@@ -3149,6 +3183,7 @@
 	gtk_widget_show(combo);
 	pref_checkbox_new_int(hbox, _("Match case"),
 			      sd->search_name_match_case, &sd->search_name_match_case);
+	gtk_widget_set_tooltip_text(GTK_WIDGET(combo), "When set to \"contains\", this field uses Perl Compatible Regular Expressions.\ne.g. use \n.*\\.jpg\n and not \n*.jpg\n\nSee the Help file.");
 
 	/* Search for file size */
 	hbox = menu_choice(sd->box_search, &sd->check_size, &sd->menu_size,
@@ -3257,6 +3292,7 @@
 	gtk_widget_show(sd->entry_comment);
 	pref_checkbox_new_int(hbox, _("Match case"),
 			      sd->search_comment_match_case, &sd->search_comment_match_case);
+	gtk_widget_set_tooltip_text(GTK_WIDGET(sd->entry_comment), "This field uses Perl Compatible Regular Expressions.\ne.g. use \nabc.*ghk\n and not \nabc*ghk\n\nSee the Help file.");
 
 	/* Search for image rating */
 	hbox = menu_choice(sd->box_search, &sd->check_rating, &sd->menu_rating,
--- a/web/help/GuideFaq.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideFaq.html	Mon Aug 13 14:30:01 2018 +0100
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Frequently Asked Questions</title>
-<link rel="previous" href="GuideReferenceStandards.html" title="Standards">
+<link rel="previous" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">
 <link rel="next" href="Imageviewing.html" title="Image viewing">
 <link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
 <style type="text/css">
@@ -410,7 +410,7 @@
 </head>
 <body>
 <div class="navbar navbar-top"><table class="navbar"><tr>
-<td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceStandards.html" title="Standards">Standards</a></td>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></td>
 <td class="navbar-next"><a class="navbar-next" href="Imageviewing.html" title="Image viewing">Image viewing</a></td>
 </tr></table></div>
 <div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
@@ -463,7 +463,7 @@
 </ul></div>
 </div></div>
 <div class="navbar navbar-bottom"><table class="navbar"><tr>
-<td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceStandards.html" title="Standards">Standards</a></td>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></td>
 <td class="navbar-next"><a class="navbar-next" href="Imageviewing.html" title="Image viewing">Image viewing</a></td>
 </tr></table></div>
 </body>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/help/GuideImageSearchCache.html	Mon Aug 13 14:30:01 2018 +0100
@@ -0,0 +1,477 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Caching Data For Searches</title>
+<link rel="previous" href="GuideImageSearchCache.html" title="Caching Data For Searches">
+<link rel="next" href="GuideImageSearchSearch.html" title="Search Window">
+<link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
+<style type="text/css">
+
+html { height: 100%; }
+body {
+  margin: 0px; padding: 12px;
+  background-color: #f9f9f6;
+  min-height: 100%;
+  direction: ltr;
+}
+div, p, pre, blockquote { margin: 0; padding: 0; }
+p img { vertical-align: middle; }
+sub { font-size: 0.83em; }
+sub sub { font-size: 1em; }
+sup { font-size: 0.83em; }
+sup sup { font-size: 1em; }
+table { border-collapse: collapse; }
+table.table-pgwide { width: 100%; }
+td { vertical-align: top; }
+td { padding: 0.2em 0.83em 0.2em 0.83em; }
+th { padding: 0 0.83em 0 0.83em; }
+tr.tr-shade {
+  background-color: #f9f9f6;
+}
+td.td-colsep { border-right: solid 1px; }
+td.td-rowsep { border-bottom: solid 1px; }
+thead { border-top: solid 2px; border-bottom: solid 2px; }
+tfoot { border-top: solid 2px; border-bottom: solid 2px; }
+div.body {
+  padding: 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.body-sidebar {
+  margin-right: 13em;
+}
+div.division div.division { margin-top: 1.72em; }
+div.division div.division div.division { margin-top: 1.44em; }
+div.header {
+  margin: 0;
+  color: #3f3f3f;
+  border-bottom: solid 1px #e0e0df;
+}
+h1, h2, h3, h4, h5, h6, h7 {
+  margin: 0; padding: 0;
+  color: #3f3f3f;
+}
+h1.title { font-size: 1.72em; }
+h2.title { font-size: 1.44em; }
+h3.title { font-size: 1.2em; }
+h4.title, h5.title, h6.title, h7.title { font-size: 1em; }
+.block { margin-top: 1em; }
+.block .block-first { margin-top: 0; }
+.block-indent {
+  margin-left left: 1.72em;
+  margin-: 1em;
+}
+.block-indent .block-indent { margin-left: 0em; margin-right: 0em; }
+td .block-indent  { margin-left: 0em; margin-right: 0em; }
+dd .block-indent  { margin-left: 0em; margin-right: 0em; }
+.block-verbatim { white-space: pre; }
+div.title {
+  margin-bottom: 0.2em;
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.title-formal { padding-left: 0.2em; padding-right: 0.2em; }
+div.title-formal .label { font-weight: normal; }
+a {
+  color: #1f609f;
+  text-decoration: none;
+}
+a:hover { text-decoration: underline; }
+a:visited { color: #9f1f6f; }
+ul, ol, dl { margin: 0; padding: 0; }
+li {
+  margin-top: 1em;
+  margin-left: 2.4em;
+  padding: 0;
+}
+li.li-first { margin-top: 0; }
+dt { margin: 1em 0 0 0; }
+dt.dt-first { margin: 0; }
+dd {
+  margin-left: 1.72em;
+  margin-top: 0.5em;
+}
+dl.dl-compact dt { margin-top: 0; }
+dl.dl-compact dd { margin-top: 0; margin-bottom: 0; }
+
+
+ul.linktrail {
+  display: block;
+  margin: 0.2em 0 0 0;
+  text-align: right;
+}
+li.linktrail { display: inline; margin: 0; padding: 0; }
+
+li.linktrail::before {
+  content: '  /  ';
+  color: #3f3f3f;
+}
+
+li.linktrail-first::before, li.linktrail-only::before { content: ''; }
+
+
+div.navbar {
+  padding: 0.5em 1em 0.5em 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.navbar-top { margin-bottom: 1em; }
+div.navbar-bottom { margin-top: 1em; clear: both; }
+div.navbar img { border: 0; vertical-align: -0.4em; }
+table.navbar { width: 100%; margin: 0; border: none; }
+table.navbar td { padding: 0; border: none; }
+td.navbar-next {
+  text-align: right;
+}
+a.navbar-prev::before {
+  
+  content: '◀  ';
+  color: #3f3f3f;
+}
+a.navbar-next::after {
+  
+  content: '  ▶';
+  color: #3f3f3f;
+}
+
+
+div.sidebar {
+  float: right;
+  padding: 0; margin: 0; width: 12em;
+}
+div.sidenav {
+  padding: 0.5em 1em 0 1em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.sidenav div.autotoc {
+  background-color: #ffffff;
+  border: none; padding: 0; margin: 0;
+}
+div.sidenav div.autotoc div.autotoc { margin-top: 0.5em; }
+div.sidenav div.autotoc li { margin-bottom: 0.5em; }
+div.sidenav div.autotoc div.autotoc div.autotoc {
+  margin-left: 1em;
+  margin-top: 0;
+}
+div.sidenav div.autotoc div.autotoc div.autotoc li { margin-bottom: 0; }
+
+
+div.autotoc {
+  
+  display: table;
+  margin-top: 1em;
+  margin-left: 1.72em;
+  padding: 0.5em 1em 0.5em 1em;
+  background-color: #f0f9ff;
+  border: solid 1px #c0c9ff;
+}
+div.autotoc ul { margin: 0; padding: 0; }
+div.autotoc li { list-style-type: none; margin: 0; }
+div.autotoc div.autotoc-title { margin-bottom: 0.5em; }
+div.autotoc div.autotoc { border: none; padding: 0; margin-top: 0; margin-bottom: 0.5em; }
+div.autotoc div.autotoc div.autotoc { margin-bottom: 0; }
+
+
+span.bibliolabel {
+  color: #3f3f3f;
+}
+
+
+div.admonition {
+  padding: 0.5em 6px 0.5em 6px;
+  border: solid 1px #e0e0df;
+  background-color: #fffff0;
+}
+div.caution-inner, div.important-inner, div.note-inner, div.tip-inner, div.warning-inner {
+  padding-left: 60px;
+  background-position: left top;
+  background-repeat: no-repeat;
+  min-height: 48px;
+}
+div.caution-inner { background-image: url("admon-caution.png"); }
+div.important-inner { background-image: url("admon-important.png"); }
+div.note-inner { background-image: url("admon-note.png"); }
+div.note-bug div.note-inner { background-image: url("admon-bug.png"); }
+div.tip-inner { background-image: url("admon-tip.png"); }
+div.warning-inner { background-image: url("admon-warning.png"); }
+div.blockquote {
+  
+  background-image: url('watermark-blockquote-201C.png');
+  background-repeat: no-repeat;
+  background-position: top left;
+  padding: 0.5em;
+  padding-left: 4em;
+}
+div.attribution {
+  margin-top: 0.5em;
+  color: #3f3f3f;
+}
+div.attribution::before {
+  
+  content: '― ';
+}
+div.epigraph {
+  text-align: right;
+  margin-left: 20%;
+  margin-right: 0;
+  color: #3f3f3f;
+}
+div.figure, div.informalfigure {
+  
+  display: table;
+  padding: 0.5em;
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.figure-inner, div.informalfigure-inner {
+  padding: 0.5em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.caption { margin-top: 0.5em; }
+div.programlisting {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen .prompt {
+  color: #3f3f3f;
+}
+div.screen .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.programlisting .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+pre.linenumbering {
+  color: #3f3f3f;
+  margin: 0;
+  padding-right: 1em;
+  float: left;
+  text-align: right;
+}
+
+
+
+dl.index dt { margin-top: 0; }
+dl.index dd { margin-top: 0; margin-bottom: 0; }
+dl.indexdiv dt { margin-top: 0; }
+dl.indexdiv dd { margin-top: 0; margin-bottom: 0; }
+dl.setindex dt { margin-top: 0; }
+dl.setindex dd { margin-top: 0; margin-bottom: 0; }
+div.list div.title-formal span.title {
+  border-bottom: solid 1px #e0e0df;
+}
+div.simplelist {
+  margin-left: 1.72em;
+}
+div.simplelist table { margin-left: 0; border: none; }
+div.simplelist td {
+  padding: 0.5em;
+  border-left: solid 1px #e0e0df;
+}
+div.simplelist td.td-first {
+  padding-left: 0;
+  border-left: 0;
+}
+div.synopsis {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border-top: solid 2px #c0c9ff;
+  border-bottom: solid 2px #c0c9ff;
+}
+div.synopsis div.synopsis {
+  padding: 0;
+  border: none;
+}
+div.synopsis div.block { margin-top: 0.2em; }
+div.synopsis div.block-first { margin-top: 0; }
+div.cmdsynopsis { font-family: monospace; }
+
+span.accel { text-decoration: underline; }
+span.acronym { font-family: sans-serif; }
+span.application { font-style: italic; }
+span.classname, span.exceptionname, span.interfacename { font-family: monospace; }
+span.code {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.code { border: none; padding: 0; }
+span.command {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.command { border: none; padding: 0; }
+span.computeroutput { font-family: monospace; }
+
+span.constant { font-family: monospace; }
+span.database { font-family: monospace; }
+span.email { font-family: monospace; }
+span.emphasis { font-style: italic; }
+span.emphasis-bold { font-style: normal; font-weight: bold; }
+span.envar { font-family: monospace; }
+
+span.filename { font-family: monospace; }
+span.firstterm { font-style: italic; }
+span.foreignphrase { font-style: italic; }
+span.function { font-family: monospace; }
+
+dt.glossterm span.glossterm { font-style: normal; }
+
+
+span.glossterm { font-style: italic; }
+
+span.guibutton, span.guilabel, span.guimenu, span.guimenuitem, span.guisubmenu, span.interface {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.keycap {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.lineannotation { font-style: italic; }
+span.literal { font-family: monospace; }
+span.markup  { font-family: monospace; }
+span.medialabel { font-style: italic; }
+span.methodname { font-family: monospace; }
+span.ooclass, span.ooexception, span.oointerface { font-family: monospace; }
+span.option { font-family: monospace; }
+span.parameter { font-family: monospace; }
+span.paramdef span.parameter { font-style: italic; }
+span.prompt { font-family: monospace; }
+span.property { font-family: monospace; }
+span.replaceable  { font-style: italic; }
+span.returnvalue { font-family: monospace; }
+span.sgmltag { font-family: monospace; }
+span.structfield, span.structname { font-family: monospace; }
+span.symbol { font-family: monospace; }
+span.systemitem { font-family: monospace; }
+span.token { font-family: monospace; }
+span.type { font-family: monospace; }
+span.uri { font-family: monospace; }
+span.userinput { font-family: monospace; }
+span.varname { font-family: monospace; }
+span.wordasword { font-style: italic; }
+
+
+
+div.footnotes { font-style: italic; font-size: 0.8em; }
+div.footnote { margin-top: 1.44em; }
+span.footnote-number { display: inline; padding-right: 0.83em; }
+span.footnote-number + p { display: inline; }
+a.footnote { text-decoration: none; font-size: 0.8em; }
+a.footnote-ref { text-decoration: none; }
+
+span.co {
+  margin-left: 0.2em; margin-right: 0.2em;
+  padding-left: 0.4em; padding-right: 0.4em;
+  border: solid 1px #000000;
+  -moz-border-radius: 8px;
+  background-color: #000000;
+  color: #FFFFFF;
+  font-size: 8px;
+}
+span.co:hover {
+  border-color: #333333;
+  background-color: #333333;
+  color: #FFFFFF;
+}
+span.co a { text-decoration: none; }
+span.co a:hover { text-decoration: none; }
+
+dt.question { margin-left: 0em; }
+dt.question div.label { float: left; }
+dd + dt.question { margin-top: 1em; }
+dd.answer {
+  margin-top: 1em;
+  margin-left: 2em;
+  margin-right: 1em;
+}
+dd.answer div.label { float: left; }
+</style>
+</head>
+<body>
+<div class="navbar navbar-top"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideImageSearchCache.html" title="Caching Data For Searches">Caching Data For Searches</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideImageSearchSearch.html" title="Search Window">Search Window</a></td>
+</tr></table></div>
+<div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
+<li><a href="GuideIndex-info.html" title="About This Document">About This Document</a></li>
+<li>
+<a class="xref" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a><div class="autotoc"><ul>
+<li><a class="xref" href="GuideIntroduction.html" title="Introduction">Introduction</a></li>
+<li><a class="xref" href="GuideMainWindow.html" title="Main Window">Main Window</a></li>
+<li><a class="xref" href="GuideSidebars.html" title="Sidebars">Sidebars</a></li>
+<li><a class="xref" href="GuideOtherWindows.html" title="Stand-alone Windows">Stand-alone Windows</a></li>
+<li>
+<a class="xref" href="GuideImageSearch.html" title="Search and Select">Search and Select</a><div class="autotoc"><ul>
+<li>Caching Data For Searches</li>
+<li><a class="xref" href="GuideImageSearchSearch.html" title="Search Window">Search Window</a></li>
+<li><a class="xref" href="GuideImageSearchFindingDuplicates.html" title="Finding Duplicates">Finding Duplicates</a></li>
+<li><a class="xref" href="GuideImageMarks.html" title="Marking Images">Marking Images</a></li>
+</ul></div>
+</li>
+<li><a class="xref" href="GuideImageManagementPlugins.html" title="Plugins">Plugins</a></li>
+<li><a class="xref" href="GuideImageManagement.html" title="File Management">File Management</a></li>
+<li><a class="xref" href="GuideColorManagement.html" title="Color Management">Color Management</a></li>
+<li><a class="xref" href="GuideImagePresentation.html" title="Image Presentation">Image Presentation</a></li>
+<li><a class="xref" href="GuidePrinting.html" title="Printing">Printing</a></li>
+<li><a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a></li>
+<li><a class="xref" href="GuideOptionsAdditional.html" title="Additional Preferences">Additional Preferences</a></li>
+<li><a class="xref" href="GuideReference.html" title="Reference">Reference</a></li>
+<li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
+<li><a class="xref" href="GuideLicence.html" title="Licence">Licence</a></li>
+<li><a class="xref" href="GuideCredits.html" title="Credits">Credits</a></li>
+<li><a class="xref" href="GuideGnuFdl.html" title="GNU Free Documentation License">GNU Free Documentation License</a></li>
+</ul></div>
+</li>
+</ul></div></div></div>
+<div class="body body-sidebar"><div class="division section">
+<a name="GuideImageSearchCache"></a><div class="header"><h1 class="section title"><span class="title"><a name="titleGuideImageSearchCache"></a>Caching Data For Searches</span></h1></div>
+<ul class="linktrail">
+<li class="linktrail linktrail-first"><a class="linktrail" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a></li>
+<li class="linktrail linktrail-last"><a class="linktrail" href="GuideImageSearch.html" title="Search and Select">Search and Select</a></li>
+</ul>
+<p class="para block block-first">
+      Searching large numbers of files for similarity can take significant cpu time. Part of this is the time to compute the similarity matrix for each file.
+      <p class="para block block-first"></p>
+      If the
+      <a class="link" href="GuideOptionsGeneral.html#PreferencesThumbnails" title="Thumbnails">Cache Thumbnails</a>
+      option is selected in Preferences/General, the similarity matrix and the checksum will also be cached. This will reduce the time needed for future searches.
+      <div class="admonition block note block-indent"><div class="note-inner">If you frequently search on similarity and your images are in a tree arrangement under a single point, initiating a one-time search on similarity from the top of the tree will generate the similarity data for all images.</div></div>
+      <p class="para block">Similarity data are stored in a folder hierachy that mirrors the location of the source images. The data have the same name as the original appended by the file extension .sim.</p>
+      <p class="para block">
+        The root of the hierachy is:
+        <p class="para block block-first">
+          <div dir="ltr" class=" block programlisting block-indent block-first"><pre class="programlisting">$XDG_CACHE_HOME/geeqie/thumbnails/</pre></div>
+          or, if $XDG_CACHE_HOME is not defined:
+          <div dir="ltr" class=" block programlisting block-indent"><pre class="programlisting">$HOME/.cache/geeqie/thumbnails/</pre></div>
+        </p>
+      </p>
+    </p>
+<p class="para block"></p>
+</div></div>
+<div class="navbar navbar-bottom"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideImageSearchCache.html" title="Caching Data For Searches">Caching Data For Searches</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideImageSearchSearch.html" title="Search Window">Search Window</a></td>
+</tr></table></div>
+</body>
+</html>
--- a/web/help/GuideImageSearchSearch.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideImageSearchSearch.html	Mon Aug 13 14:30:01 2018 +0100
@@ -531,7 +531,13 @@
 <dt class="term dt-first">
           <span class="guilabel">File name</span>
         </dt>
-<dd>The search will match if the entered text appears within the file name, or if the text exactly matches the file name, depending on the method selected from the drop down menu. The text comparison can be made to be case sensitive by enabling the Match case checkbox.</dd>
+<dd>
+          The search will match if the entered text appears within the file name, or if the text exactly matches the file name, depending on the method selected from the drop down menu. The text comparison can be made to be case sensitive by enabling the Match case checkbox.
+          <p class="para block block-first"></p>
+          If "contains" is selected,
+          <a class="link" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a>
+          are used.
+        </dd>
 <dt class="term">
           <span class="guilabel">File size</span>
         </dt>
@@ -586,6 +592,14 @@
         </dt>
 <dd>The search will match if the file's associated keywords match all, match any, or exclude the entered keywords, depending on the method selected from the drop down menu. Keywords can be separated with a space, comma, or tab character.</dd>
 <dt class="term">
+          <span class="guilabel">Comment</span>
+        </dt>
+<dd>
+          The search will match if the file's Comments field contains the entered pattern.
+          <a class="link" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a>
+          are used.
+        </dd>
+<dt class="term">
           <span class="guilabel">Geocoded position</span>
         </dt>
 <dd>
--- a/web/help/GuideIndex.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideIndex.html	Mon Aug 13 14:30:01 2018 +0100
@@ -659,6 +659,9 @@
 <li>
 <span class="label">13.13. </span><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a>
 </li>
+<li>
+<span class="label">13.14. </span><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a>
+</li>
 </ul></div>
 </li>
 <li>
--- a/web/help/GuideReference.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReference.html	Mon Aug 13 14:30:01 2018 +0100
@@ -443,6 +443,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
@@ -496,6 +497,9 @@
 <li>
 <span class="label">13.13. </span><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a>
 </li>
+<li>
+<span class="label">13.14. </span><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a>
+</li>
 </ul></div>
 </div></div>
 <div class="navbar navbar-bottom"><table class="navbar"><tr>
--- a/web/help/GuideReferenceCommandLine.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceCommandLine.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceConfig.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceConfig.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceDecodeLatLong.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceDecodeLatLong.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li>Decoding Latitude and Longitude</li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceKeyboardShortcuts.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceKeyboardShortcuts.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceLIRC.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceLIRC.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceLua.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceLua.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceMetadata.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceMetadata.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/help/GuideReferencePCRE.html	Mon Aug 13 14:30:01 2018 +0100
@@ -0,0 +1,479 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>Perl Compatible Regular Expressions</title>
+<link rel="previous" href="GuideReferenceStandards.html" title="Standards">
+<link rel="next" href="GuideFaq.html" title="Frequently Asked Questions">
+<link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
+<style type="text/css">
+
+html { height: 100%; }
+body {
+  margin: 0px; padding: 12px;
+  background-color: #f9f9f6;
+  min-height: 100%;
+  direction: ltr;
+}
+div, p, pre, blockquote { margin: 0; padding: 0; }
+p img { vertical-align: middle; }
+sub { font-size: 0.83em; }
+sub sub { font-size: 1em; }
+sup { font-size: 0.83em; }
+sup sup { font-size: 1em; }
+table { border-collapse: collapse; }
+table.table-pgwide { width: 100%; }
+td { vertical-align: top; }
+td { padding: 0.2em 0.83em 0.2em 0.83em; }
+th { padding: 0 0.83em 0 0.83em; }
+tr.tr-shade {
+  background-color: #f9f9f6;
+}
+td.td-colsep { border-right: solid 1px; }
+td.td-rowsep { border-bottom: solid 1px; }
+thead { border-top: solid 2px; border-bottom: solid 2px; }
+tfoot { border-top: solid 2px; border-bottom: solid 2px; }
+div.body {
+  padding: 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.body-sidebar {
+  margin-right: 13em;
+}
+div.division div.division { margin-top: 1.72em; }
+div.division div.division div.division { margin-top: 1.44em; }
+div.header {
+  margin: 0;
+  color: #3f3f3f;
+  border-bottom: solid 1px #e0e0df;
+}
+h1, h2, h3, h4, h5, h6, h7 {
+  margin: 0; padding: 0;
+  color: #3f3f3f;
+}
+h1.title { font-size: 1.72em; }
+h2.title { font-size: 1.44em; }
+h3.title { font-size: 1.2em; }
+h4.title, h5.title, h6.title, h7.title { font-size: 1em; }
+.block { margin-top: 1em; }
+.block .block-first { margin-top: 0; }
+.block-indent {
+  margin-left left: 1.72em;
+  margin-: 1em;
+}
+.block-indent .block-indent { margin-left: 0em; margin-right: 0em; }
+td .block-indent  { margin-left: 0em; margin-right: 0em; }
+dd .block-indent  { margin-left: 0em; margin-right: 0em; }
+.block-verbatim { white-space: pre; }
+div.title {
+  margin-bottom: 0.2em;
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.title-formal { padding-left: 0.2em; padding-right: 0.2em; }
+div.title-formal .label { font-weight: normal; }
+a {
+  color: #1f609f;
+  text-decoration: none;
+}
+a:hover { text-decoration: underline; }
+a:visited { color: #9f1f6f; }
+ul, ol, dl { margin: 0; padding: 0; }
+li {
+  margin-top: 1em;
+  margin-left: 2.4em;
+  padding: 0;
+}
+li.li-first { margin-top: 0; }
+dt { margin: 1em 0 0 0; }
+dt.dt-first { margin: 0; }
+dd {
+  margin-left: 1.72em;
+  margin-top: 0.5em;
+}
+dl.dl-compact dt { margin-top: 0; }
+dl.dl-compact dd { margin-top: 0; margin-bottom: 0; }
+
+
+ul.linktrail {
+  display: block;
+  margin: 0.2em 0 0 0;
+  text-align: right;
+}
+li.linktrail { display: inline; margin: 0; padding: 0; }
+
+li.linktrail::before {
+  content: '  /  ';
+  color: #3f3f3f;
+}
+
+li.linktrail-first::before, li.linktrail-only::before { content: ''; }
+
+
+div.navbar {
+  padding: 0.5em 1em 0.5em 1em;
+  max-width: 60em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.navbar-top { margin-bottom: 1em; }
+div.navbar-bottom { margin-top: 1em; clear: both; }
+div.navbar img { border: 0; vertical-align: -0.4em; }
+table.navbar { width: 100%; margin: 0; border: none; }
+table.navbar td { padding: 0; border: none; }
+td.navbar-next {
+  text-align: right;
+}
+a.navbar-prev::before {
+  
+  content: '◀  ';
+  color: #3f3f3f;
+}
+a.navbar-next::after {
+  
+  content: '  ▶';
+  color: #3f3f3f;
+}
+
+
+div.sidebar {
+  float: right;
+  padding: 0; margin: 0; width: 12em;
+}
+div.sidenav {
+  padding: 0.5em 1em 0 1em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.sidenav div.autotoc {
+  background-color: #ffffff;
+  border: none; padding: 0; margin: 0;
+}
+div.sidenav div.autotoc div.autotoc { margin-top: 0.5em; }
+div.sidenav div.autotoc li { margin-bottom: 0.5em; }
+div.sidenav div.autotoc div.autotoc div.autotoc {
+  margin-left: 1em;
+  margin-top: 0;
+}
+div.sidenav div.autotoc div.autotoc div.autotoc li { margin-bottom: 0; }
+
+
+div.autotoc {
+  
+  display: table;
+  margin-top: 1em;
+  margin-left: 1.72em;
+  padding: 0.5em 1em 0.5em 1em;
+  background-color: #f0f9ff;
+  border: solid 1px #c0c9ff;
+}
+div.autotoc ul { margin: 0; padding: 0; }
+div.autotoc li { list-style-type: none; margin: 0; }
+div.autotoc div.autotoc-title { margin-bottom: 0.5em; }
+div.autotoc div.autotoc { border: none; padding: 0; margin-top: 0; margin-bottom: 0.5em; }
+div.autotoc div.autotoc div.autotoc { margin-bottom: 0; }
+
+
+span.bibliolabel {
+  color: #3f3f3f;
+}
+
+
+div.admonition {
+  padding: 0.5em 6px 0.5em 6px;
+  border: solid 1px #e0e0df;
+  background-color: #fffff0;
+}
+div.caution-inner, div.important-inner, div.note-inner, div.tip-inner, div.warning-inner {
+  padding-left: 60px;
+  background-position: left top;
+  background-repeat: no-repeat;
+  min-height: 48px;
+}
+div.caution-inner { background-image: url("admon-caution.png"); }
+div.important-inner { background-image: url("admon-important.png"); }
+div.note-inner { background-image: url("admon-note.png"); }
+div.note-bug div.note-inner { background-image: url("admon-bug.png"); }
+div.tip-inner { background-image: url("admon-tip.png"); }
+div.warning-inner { background-image: url("admon-warning.png"); }
+div.blockquote {
+  
+  background-image: url('watermark-blockquote-201C.png');
+  background-repeat: no-repeat;
+  background-position: top left;
+  padding: 0.5em;
+  padding-left: 4em;
+}
+div.attribution {
+  margin-top: 0.5em;
+  color: #3f3f3f;
+}
+div.attribution::before {
+  
+  content: '― ';
+}
+div.epigraph {
+  text-align: right;
+  margin-left: 20%;
+  margin-right: 0;
+  color: #3f3f3f;
+}
+div.figure, div.informalfigure {
+  
+  display: table;
+  padding: 0.5em;
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.figure-inner, div.informalfigure-inner {
+  padding: 0.5em;
+  background-color: #ffffff;
+  border: solid 1px #e0e0df;
+}
+div.caption { margin-top: 0.5em; }
+div.programlisting {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border: solid 1px #e0e0df;
+}
+div.screen .prompt {
+  color: #3f3f3f;
+}
+div.screen .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+div.programlisting .userinput {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+pre.linenumbering {
+  color: #3f3f3f;
+  margin: 0;
+  padding-right: 1em;
+  float: left;
+  text-align: right;
+}
+
+
+
+dl.index dt { margin-top: 0; }
+dl.index dd { margin-top: 0; margin-bottom: 0; }
+dl.indexdiv dt { margin-top: 0; }
+dl.indexdiv dd { margin-top: 0; margin-bottom: 0; }
+dl.setindex dt { margin-top: 0; }
+dl.setindex dd { margin-top: 0; margin-bottom: 0; }
+div.list div.title-formal span.title {
+  border-bottom: solid 1px #e0e0df;
+}
+div.simplelist {
+  margin-left: 1.72em;
+}
+div.simplelist table { margin-left: 0; border: none; }
+div.simplelist td {
+  padding: 0.5em;
+  border-left: solid 1px #e0e0df;
+}
+div.simplelist td.td-first {
+  padding-left: 0;
+  border-left: 0;
+}
+div.synopsis {
+  padding: 0.5em;
+  
+  background-color: #f9f9f6;
+  border-top: solid 2px #c0c9ff;
+  border-bottom: solid 2px #c0c9ff;
+}
+div.synopsis div.synopsis {
+  padding: 0;
+  border: none;
+}
+div.synopsis div.block { margin-top: 0.2em; }
+div.synopsis div.block-first { margin-top: 0; }
+div.cmdsynopsis { font-family: monospace; }
+
+span.accel { text-decoration: underline; }
+span.acronym { font-family: sans-serif; }
+span.application { font-style: italic; }
+span.classname, span.exceptionname, span.interfacename { font-family: monospace; }
+span.code {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.code { border: none; padding: 0; }
+span.command {
+  font-family: monospace;
+  border: solid 1px #e0e0df;
+  padding-left: 0.2em;
+  padding-right: 0.2em;
+}
+pre span.command { border: none; padding: 0; }
+span.computeroutput { font-family: monospace; }
+
+span.constant { font-family: monospace; }
+span.database { font-family: monospace; }
+span.email { font-family: monospace; }
+span.emphasis { font-style: italic; }
+span.emphasis-bold { font-style: normal; font-weight: bold; }
+span.envar { font-family: monospace; }
+
+span.filename { font-family: monospace; }
+span.firstterm { font-style: italic; }
+span.foreignphrase { font-style: italic; }
+span.function { font-family: monospace; }
+
+dt.glossterm span.glossterm { font-style: normal; }
+
+
+span.glossterm { font-style: italic; }
+
+span.guibutton, span.guilabel, span.guimenu, span.guimenuitem, span.guisubmenu, span.interface {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.keycap {
+  font-weight: bold;
+  color: #3f3f3f;
+}
+span.lineannotation { font-style: italic; }
+span.literal { font-family: monospace; }
+span.markup  { font-family: monospace; }
+span.medialabel { font-style: italic; }
+span.methodname { font-family: monospace; }
+span.ooclass, span.ooexception, span.oointerface { font-family: monospace; }
+span.option { font-family: monospace; }
+span.parameter { font-family: monospace; }
+span.paramdef span.parameter { font-style: italic; }
+span.prompt { font-family: monospace; }
+span.property { font-family: monospace; }
+span.replaceable  { font-style: italic; }
+span.returnvalue { font-family: monospace; }
+span.sgmltag { font-family: monospace; }
+span.structfield, span.structname { font-family: monospace; }
+span.symbol { font-family: monospace; }
+span.systemitem { font-family: monospace; }
+span.token { font-family: monospace; }
+span.type { font-family: monospace; }
+span.uri { font-family: monospace; }
+span.userinput { font-family: monospace; }
+span.varname { font-family: monospace; }
+span.wordasword { font-style: italic; }
+
+
+
+div.footnotes { font-style: italic; font-size: 0.8em; }
+div.footnote { margin-top: 1.44em; }
+span.footnote-number { display: inline; padding-right: 0.83em; }
+span.footnote-number + p { display: inline; }
+a.footnote { text-decoration: none; font-size: 0.8em; }
+a.footnote-ref { text-decoration: none; }
+
+span.co {
+  margin-left: 0.2em; margin-right: 0.2em;
+  padding-left: 0.4em; padding-right: 0.4em;
+  border: solid 1px #000000;
+  -moz-border-radius: 8px;
+  background-color: #000000;
+  color: #FFFFFF;
+  font-size: 8px;
+}
+span.co:hover {
+  border-color: #333333;
+  background-color: #333333;
+  color: #FFFFFF;
+}
+span.co a { text-decoration: none; }
+span.co a:hover { text-decoration: none; }
+
+dt.question { margin-left: 0em; }
+dt.question div.label { float: left; }
+dd + dt.question { margin-top: 1em; }
+dd.answer {
+  margin-top: 1em;
+  margin-left: 2em;
+  margin-right: 1em;
+}
+dd.answer div.label { float: left; }
+</style>
+</head>
+<body>
+<div class="navbar navbar-top"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceStandards.html" title="Standards">Standards</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></td>
+</tr></table></div>
+<div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
+<li><a href="GuideIndex-info.html" title="About This Document">About This Document</a></li>
+<li>
+<a class="xref" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a><div class="autotoc"><ul>
+<li><a class="xref" href="GuideIntroduction.html" title="Introduction">Introduction</a></li>
+<li><a class="xref" href="GuideMainWindow.html" title="Main Window">Main Window</a></li>
+<li><a class="xref" href="GuideSidebars.html" title="Sidebars">Sidebars</a></li>
+<li><a class="xref" href="GuideOtherWindows.html" title="Stand-alone Windows">Stand-alone Windows</a></li>
+<li><a class="xref" href="GuideImageSearch.html" title="Search and Select">Search and Select</a></li>
+<li><a class="xref" href="GuideImageManagementPlugins.html" title="Plugins">Plugins</a></li>
+<li><a class="xref" href="GuideImageManagement.html" title="File Management">File Management</a></li>
+<li><a class="xref" href="GuideColorManagement.html" title="Color Management">Color Management</a></li>
+<li><a class="xref" href="GuideImagePresentation.html" title="Image Presentation">Image Presentation</a></li>
+<li><a class="xref" href="GuidePrinting.html" title="Printing">Printing</a></li>
+<li><a class="xref" href="GuideOptionsMain.html" title="Preferences">Preferences</a></li>
+<li><a class="xref" href="GuideOptionsAdditional.html" title="Additional Preferences">Additional Preferences</a></li>
+<li>
+<a class="xref" href="GuideReference.html" title="Reference">Reference</a><div class="autotoc"><ul>
+<li><a class="xref" href="GuideReferenceCommandLine.html" title="Command Line Options">Command Line Options</a></li>
+<li><a class="xref" href="GuideReferenceKeyboardShortcuts.html" title="Keyboard and Mouse Shortcuts">Keyboard and Mouse Shortcuts</a></li>
+<li><a class="xref" href="GuideReferenceThumbnails.html" title="Thumbnails">Thumbnails</a></li>
+<li><a class="xref" href="GuideReferenceMetadata.html" title="Metadata Processing">Metadata Processing</a></li>
+<li><a class="xref" href="GuideReferenceLua.html" title="Lua Extensions">Lua Extensions</a></li>
+<li><a class="xref" href="GuideReferenceConfig.html" title="Configuration Files and Locations">Configuration Files and Locations</a></li>
+<li><a class="xref" href="GuideReferenceLIRC.html" title="Infra-red controller">Infra-red controller</a></li>
+<li><a class="xref" href="GuideReferenceXmpExif.html" title="XMP, Exif and IPTC">XMP, Exif and IPTC</a></li>
+<li><a class="xref" href="GuideReferenceSupportedFormats.html" title="Supported File Formats">Supported File Formats</a></li>
+<li><a class="xref" href="GuideReferencePixbufLoaders.html" title="Additional pixbuf loaders">Additional pixbuf loaders</a></li>
+<li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
+<li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
+<li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li>Perl Compatible Regular Expressions</li>
+</ul></div>
+</li>
+<li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
+<li><a class="xref" href="GuideLicence.html" title="Licence">Licence</a></li>
+<li><a class="xref" href="GuideCredits.html" title="Credits">Credits</a></li>
+<li><a class="xref" href="GuideGnuFdl.html" title="GNU Free Documentation License">GNU Free Documentation License</a></li>
+</ul></div>
+</li>
+</ul></div></div></div>
+<div class="body body-sidebar"><div class="division section">
+<a name="GuideReferencePCRE"></a><div class="header"><h1 class="section title"><span class="title"><a name="titleGuideReferencePCRE"></a>Perl Compatible Regular Expressions</span></h1></div>
+<ul class="linktrail">
+<li class="linktrail linktrail-first"><a class="linktrail" href="GuideIndex.html" title="The Geeqie User Manual">The Geeqie User Manual</a></li>
+<li class="linktrail linktrail-last"><a class="linktrail" href="GuideReference.html" title="Reference">Reference</a></li>
+</ul>
+<p class="para block block-first">
+    The Filename and Comment sections on the search window use
+    <a class="ulink" href="https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions" title="https://en.wikipedia.org/wiki/Perl_Compatible_Regular_Expressions">Perl Compatible Regular Expressions</a>
+    . In general use there are a number of differences to the wildcard expansion used on the command line:
+    <div class="block list itemizedlist"><ul class="itemizedlist">
+<li class="li-first">Use "." and not "?" for a single character.</li>
+<li>Use "abc.*ghk" and not "abc*ghk" for multiple characters</li>
+<li>Use "\." to represent the dot in a file extension</li>
+</ul></div>
+  </p>
+</div></div>
+<div class="navbar navbar-bottom"><table class="navbar"><tr>
+<td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceStandards.html" title="Standards">Standards</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></td>
+</tr></table></div>
+</body>
+</html>
--- a/web/help/GuideReferencePixbufLoaders.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferencePixbufLoaders.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceStandards.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceStandards.html	Mon Aug 13 14:30:01 2018 +0100
@@ -4,7 +4,7 @@
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Standards</title>
 <link rel="previous" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">
-<link rel="next" href="GuideFaq.html" title="Frequently Asked Questions">
+<link rel="next" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">
 <link rel="top" href="GuideIndex.html" title="The Geeqie User Manual">
 <style type="text/css">
 
@@ -411,7 +411,7 @@
 <body>
 <div class="navbar navbar-top"><table class="navbar"><tr>
 <td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></td>
-<td class="navbar-next"><a class="navbar-next" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></td>
 </tr></table></div>
 <div class="sidebar"><div class="sidenav"><div class="autotoc"><ul>
 <li><a href="GuideIndex-info.html" title="About This Document">About This Document</a></li>
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li>Standards</li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
@@ -486,7 +487,7 @@
 </div></div>
 <div class="navbar navbar-bottom"><table class="navbar"><tr>
 <td class="navbar-prev"><a class="navbar-prev" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></td>
-<td class="navbar-next"><a class="navbar-next" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></td>
+<td class="navbar-next"><a class="navbar-next" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></td>
 </tr></table></div>
 </body>
 </html>
--- a/web/help/GuideReferenceSupportedFormats.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceSupportedFormats.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceThumbnails.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceThumbnails.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceUTC.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceUTC.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li>UTC and Daylight Saving Time (DST)</li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>
--- a/web/help/GuideReferenceXmpExif.html	Sun Aug 12 17:29:35 2018 +0100
+++ b/web/help/GuideReferenceXmpExif.html	Mon Aug 13 14:30:01 2018 +0100
@@ -444,6 +444,7 @@
 <li><a class="xref" href="GuideReferenceUTC.html" title="UTC and Daylight Saving Time (DST)">UTC and Daylight Saving Time (DST)</a></li>
 <li><a class="xref" href="GuideReferenceDecodeLatLong.html" title="Decoding Latitude and Longitude">Decoding Latitude and Longitude</a></li>
 <li><a class="xref" href="GuideReferenceStandards.html" title="Standards">Standards</a></li>
+<li><a class="xref" href="GuideReferencePCRE.html" title="Perl Compatible Regular Expressions">Perl Compatible Regular Expressions</a></li>
 </ul></div>
 </li>
 <li><a class="xref" href="GuideFaq.html" title="Frequently Asked Questions">Frequently Asked Questions</a></li>