1.13 tests txt mods + solaris port (FNM_LEADING_DIR)

This commit is contained in:
dockes 2010-01-05 15:00:18 +00:00
parent 7941e16d8f
commit aed54ee6ee
12 changed files with 52 additions and 40 deletions

View File

@ -143,6 +143,9 @@ void libclf_setmaxfd(int max)
closefrom_maxfd = max; closefrom_maxfd = max;
} }
#ifdef sun
#include <limits.h>
#endif
int libclf_closefrom(int fd0) int libclf_closefrom(int fd0)
{ {
int i, maxfd = closefrom_maxfd; int i, maxfd = closefrom_maxfd;

View File

@ -125,20 +125,29 @@ bool FsTreeWalker::setSkippedPaths(const list<string> &paths)
*it = path_canon(*it); *it = path_canon(*it);
return true; return true;
} }
bool FsTreeWalker::inSkippedPaths(const string& path) bool FsTreeWalker::inSkippedPaths(const string& path, bool ckparents)
{ {
int fnmflags = FNM_PATHNAME;
#ifdef FNM_LEADING_DIR
if (ckparents)
fnmflags |= FNM_LEADING_DIR;
#endif
list<string>::const_iterator it; list<string>::const_iterator it;
for (it = data->skippedPaths.begin(); for (it = data->skippedPaths.begin();
it != data->skippedPaths.end(); it++) { it != data->skippedPaths.end(); it++) {
// If we find a system where FNM_LEADING_DIR is undefined (its #ifndef FNM_LEADING_DIR
// unposixy), will have to do this for all ascendant paths up if (ckparents) {
// to the topdir. We'll then have a constructor option because string mpath = path;
// this is only useful when called externally. When used while (mpath.length() > 2) {
// internally, we don't descend in skipped paths, and so don't if (fnmatch(it->c_str(), mpath.c_str(), fnmflags) == 0)
// need FNM_LEADING_DIR return true;
if (fnmatch(it->c_str(), path.c_str(), FNM_PATHNAME | mpath = path_getfather(mpath);
FNM_LEADING_DIR) == 0) }
return true; } else
#endif /* FNM_LEADING_DIR */
if (fnmatch(it->c_str(), path.c_str(), fnmflags) == 0) {
return true;
}
} }
return false; return false;
} }
@ -217,7 +226,12 @@ FsTreeWalker::Status FsTreeWalker::iwalk(const string &top,
continue; continue;
} }
if (!data->skippedPaths.empty()) { if (!data->skippedPaths.empty()) {
if (inSkippedPaths(fn)) // We do not check the ancestors. This means that you can have
// a topdirs member under a skippedPath, to index a portion of
// an ignored area. This is the way it had always worked, but
// this was broken by 1.13.00 and the systematic use of
// FNM_LEADING_DIR
if (inSkippedPaths(fn, false))
goto skip; goto skip;
} }

View File

@ -81,7 +81,7 @@ class FsTreeWalker {
/** Test if path/name should be skipped. This can be used independantly of /** Test if path/name should be skipped. This can be used independantly of
* an actual tree walk */ * an actual tree walk */
bool inSkippedPaths(const string& path); bool inSkippedPaths(const string& path, bool ckparents = true);
bool inSkippedNames(const string& name); bool inSkippedNames(const string& name);
private: private:

View File

@ -1 +1 @@
FreqFor maildir_uniquexxx : 692 FreqFor maildir_uniquexxx : 691

View File

@ -5,7 +5,7 @@ topdir=`dirname $0`/..
initvariables $0 initvariables $0
recollq 'Beatles OR Lennon Live OR Unplugged' 2> $mystderr | recollq 'andorhuniique Beatles OR Lennon Live OR Unplugged' 2> $mystderr |
egrep -v '^Recoll query: ' > $mystdout egrep -v '^Recoll query: ' > $mystdout
diff -w ${myname}.txt $mystdout > $mydiffs 2>&1 diff -w ${myname}.txt $mystdout > $mydiffs 2>&1

View File

@ -1,3 +1,3 @@
2 results 2 results
text/plain [file:///home/dockes/projets/fulltext/testrecoll/andor/bu.txt] [bu.txt] 18 bytes text/plain [file:///home/dockes/projets/fulltext/testrecoll/andor/bu.txt] [bu.txt] 32 bytes
text/plain [file:///home/dockes/projets/fulltext/testrecoll/andor/leli.txt] [leli.txt] 12 bytes text/plain [file:///home/dockes/projets/fulltext/testrecoll/andor/leli.txt] [leli.txt] 26 bytes

View File

@ -8,9 +8,9 @@ initvariables $0
# We need an UTF-8 locale here for recollq arg transcoding # We need an UTF-8 locale here for recollq arg transcoding
LANG=en_US.UTF-8 LANG=en_US.UTF-8
export LANG export LANG
recollq 'まず' 2> $mystderr | recollq 'keyword:ckjtsthuniique まず' 2> $mystderr |
egrep -v '^Recoll query: ' > $mystdout egrep -v '^Recoll query: ' > $mystdout
recollq 'ます' 2>> $mystderr | recollq 'keyword:ckjtsthuniique ます' 2>> $mystderr |
egrep -v '^Recoll query: ' >> $mystdout egrep -v '^Recoll query: ' >> $mystdout

View File

@ -1,9 +1,9 @@
3 results 3 results
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/cjk/mbox] [Re: recoll sidux and -ja] 68397 bytes
text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/mazu.html] [mazu.html] 260 bytes text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/mazu.html] [mazu.html] 260 bytes
text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/japanese.html] [japanese.html] 1403 bytes text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/japanese.html] [japanese.html] 1403 bytes
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/cjk/mbox] [Re: recoll sidux and -ja] 68397 bytes
4 results 4 results
text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/term-konsole-ja.htm] [sidux Manuals - The Terminal or Konsole] 34269 bytes message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/cjk/mbox] [Re: recoll sidux and -ja] 68397 bytes
text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/masu.html] [masu.html] 215 bytes text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/masu.html] [masu.html] 215 bytes
text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/japanese.html] [japanese.html] 1403 bytes text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/japanese.html] [japanese.html] 1403 bytes
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/cjk/mbox] [Re: recoll sidux and -ja] 68397 bytes text/html [file:///home/dockes/projets/fulltext/testrecoll/cjk/term-konsole-ja.htm] [sidux Manuals - The Terminal or Konsole] 34269 bytes

View File

@ -1,6 +1,6 @@
2 results 2 results
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/outmail] [Re: CDNow, mkfichcom.tcl and "] 2248233 bytes message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/outmail] [Re: CDNow, mkfichcom.tcl and "] 2248254 bytes
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/outmail] [Home Ip] 2248233 bytes message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/outmail] [Home Ip] 2248254 bytes
1 results 1 results
message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/BadHtmlInMail] [Prochaine rando] 3637 bytes message/rfc822 [file:///home/dockes/projets/fulltext/testrecoll/mail/BadHtmlInMail] [Prochaine rando] 3637 bytes
1 results 1 results

View File

@ -1,2 +1,3 @@
1 results 2 results
application/msword [file:///home/dockes/projets/fulltext/testrecoll/msword/programme.doc] [programme.doc] 58880 bytes application/msword [file:///home/dockes/projets/fulltext/testrecoll/msword/programme.doc] [programme.doc] 58880 bytes
application/msword [file:///home/dockes/projets/fulltext/testrecoll/zip/misc.zip] [misc.zip] 168155 bytes

View File

@ -1,3 +1,3 @@
2 results 2 results
text/plain [file:///home/dockes/projets/fulltext/testrecoll/txt/liste.txt] [liste.txt] 1165 bytes text/plain [file:///home/dockes/projets/fulltext/testrecoll/txt/liste.txt] [liste.txt] 1182 bytes
text/plain [file:///home/dockes/projets/fulltext/testrecoll/txt/liste1.txt] [liste1.txt] 893 bytes text/plain [file:///home/dockes/projets/fulltext/testrecoll/txt/liste1.txt] [liste1.txt] 893 bytes

View File

@ -126,6 +126,10 @@
<a href="CHANGES.html">Changes</a>. <a href="BUGS.html">Bugs</a>. <a href="CHANGES.html">Changes</a>. <a href="BUGS.html">Bugs</a>.
</p> </p>
<p>For building on Solaris (at least 5.8), you need to apply
this <a href="sunos/recoll11300solaris.patch">patch</a> to the
Recoll source.</p>
<p>In order to build Recoll from source, you will need to install <p>In order to build Recoll from source, you will need to install
the Xapian core development libraries. You will find source and binary the Xapian core development libraries. You will find source and binary
packages on the <a href="http://www.xapian.org/download.php"> packages on the <a href="http://www.xapian.org/download.php">
@ -289,21 +293,11 @@ gpg --export --armor A0735AD0 | sudo apt-key add -
<blockquote> <blockquote>
<p>Note to Solaris users: you need to perform the initial <p>Note to Solaris users: you need to perform the initial
indexing pass with "recollindex", not the recoll GUI indexing indexing pass with "recollindex", not the recoll GUI indexing
thread. See <a href="BUGS.html">errata</a>.</p> thread. See <a href="BUGS.html">errata</a>.
<p>Also you need a small patch to compile on solaris (version 8 at
least). In directory utils, you need to
include <tt>&lt;limits.h></tt> in <tt>closefrom.cpp</tt>
<pre><tt>
diff -w closefrom.cpp.orig closefrom.cpp
145a146,148
> #ifdef sun
> #include <limits.h>
> #endif
</tt></pre>
<p><b>Solaris 8 SPARC</b>: <p><b>Solaris 8 SPARC</b>:
<a href="sunos/recoll-1.12.3-SunOS-5.8.tgz"> <a href="sunos/recoll-1.13.00-SunOS-5.8.tgz">
recoll-1.12.3-SunOS-5.8.tgz</a>. </p> recoll-1.13.00-SunOS-5.8.tgz</a>. </p>
<p>Recoll also builds and runs on Solaris 10, but, given the <p>Recoll also builds and runs on Solaris 10, but, given the
situation (2008) of open source packages for Solaris (very old situation (2008) of open source packages for Solaris (very old