Handle non-standard file name suffixes during decompression. Recoll should now index arbitrary compressed XML formats. Closes issue #93

This commit is contained in:
Jean-Francois Dockes 2012-05-21 11:50:09 +02:00
parent f34994d882
commit eeaf564d4e
2 changed files with 20 additions and 7 deletions

View File

@ -17,14 +17,25 @@ outdir=$3
sinfile=`basename "$infile"`
#echo "rcluncomp: $sinfile" 1>&2
# What we do depends on suffix existence.
case "$sinfile" in
*.*)
cp "$infile" "$outdir/$sinfile" || exit 1
$uncomp "$outdir/$sinfile" || exit 1
uncompressed=`echo $outdir/*`
;;
*)
# File with a suffix: try to decompress in file mode so that the
# decompressor can transform the file name if it knows how. Try
# filter mode if this fails
*.*)
cp "$infile" "$outdir/$sinfile" || exit 1
# try uncompress
if $uncomp "$outdir/$sinfile" ; then
uncompressed=`echo $outdir/*`
else
rm -f "$outdir/sinfile"
$uncomp < "$infile" > "$outdir/$sinfile" || exit 1
uncompressed="$outdir/$sinfile"
fi
;;
# Suffixless file names: use filter mode
*)
$uncomp < "$infile" > "$outdir/$sinfile" || exit 1
uncompressed="$outdir/$sinfile"
;;

View File

@ -19,6 +19,8 @@
application/x-gzip = uncompress rcluncomp gunzip %f %t
application/x-compress = uncompress rcluncomp gunzip %f %t
application/x-bzip2 = uncompress rcluncomp bunzip2 %f %t
application/x-xz = uncompress rcluncomp unxz %f %t
application/x-lzma = uncompress rcluncomp unxz %f %t
## ###################################
# Filters for indexing and internal preview.