From 6dcf21b8e53723d68772937a445820085a9b8045 Mon Sep 17 00:00:00 2001 From: Jean-Francois Dockes Date: Sat, 30 Apr 2011 10:55:31 +0200 Subject: [PATCH] Fixed the man filter to get rid of groff temp files, and add a few possible extensions for man pages. Closes issue #56 --- src/filters/rclman | 26 ++++++++++++++++++++++++-- src/sampleconf/mimemap | 19 ++++++++++++++++++- 2 files changed, 42 insertions(+), 3 deletions(-) diff --git a/src/filters/rclman b/src/filters/rclman index 0cd61253..6e016255 100755 --- a/src/filters/rclman +++ b/src/filters/rclman @@ -86,17 +86,39 @@ umask 77 checkcmds groff +# We need a temporary directory +if test z"$RECOLL_TMPDIR" != z; then + ttdir=$RECOLL_TMPDIR +elif test z"$TMPDIR" != z ; then + ttdir=$TMPDIR +else + ttdir=/tmp +fi +tmpdir=$ttdir/rclman_tmp$$ +mkdir $tmpdir || exit 1 +mkdir $tmpdir/rclmantmp || exit 1 + +cleanup() +{ + # Note that we're using a constant part (rclmantmp), that hopefully + # guarantees that we can't do big mistakes here. + rm -rf $tmpdir/rclmantmp + rmdir $tmpdir +} + +trap cleanup EXIT HUP QUIT INT TERM + # Note: the qt preview really likes to find an tag at the top echo '' # Filter out some unwanted data when indexing if test X$RECOLL_FILTER_FORPREVIEW = Xyes ; then - groff -man -Thtml < "$infile" + (cd $tmpdir/rclmantmp; groff -man -Thtml) < "$infile" else # When indexing we try to avoid adding terms for the section headers, which # are unfortunately somewhat ill defined. We eliminate rather loosely # lines containing likely section header words preceded by a tag. - groff -man -Thtml < "$infile" | \ + (cd $tmpdir/rclmantmp; groff -man -Thtml) < "$infile" | \ egrep -v \ '>NAME|>SYNOPSIS|>DESCRIPTION|>EXIT|>OPTIONS|>DIAGNOSTICS|>SUPPORTED HARDWARE|>CONFIGURATION|>AUTHOR|>BUGS|>REPORTING BUGS|>KNOWN BUGS|>COPYRIGHT|>SEE ALSO|>HISTORY|>ENVIRONMENT|>FILES' fi diff --git a/src/sampleconf/mimemap b/src/sampleconf/mimemap index 10a34a85..6bfdcd72 100644 --- a/src/sampleconf/mimemap +++ b/src/sampleconf/mimemap @@ -150,14 +150,31 @@ recoll_noindex = .tar.gz .tgz .tar.bz2 .tbz .log.gz .md5 .map \ # We can't use the default text/troff type because this doesn't say # what macro set to use (groff -man) [/usr/share/man] +.0p = text/x-man .1 = text/x-man +.1m = text/x-man +.1p = text/x-man +.1ssl = text/x-man +.1x = text/x-man .2 = text/x-man .3 = text/x-man +.3curses = text/x-man +.3form = text/x-man +.3gl = text/x-man +.3menu = text/x-man +.3ncurses = text/x-man +.3p = text/x-man +.3pm = text/x-man +.3ssl = text/x-man +.3tiff = text/x-man +.3x = text/x-man .4 = text/x-man .5 = text/x-man +.5ssl = text/x-man .6 = text/x-man +.6x = text/x-man .7 = text/x-man +.7ssl = text/x-man .8 = text/x-man .9 = text/x-man .n = text/x-man -.3pm = text/x-man