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"` sinfile=`basename "$infile"`
#echo "rcluncomp: $sinfile" 1>&2 #echo "rcluncomp: $sinfile" 1>&2
# What we do depends on suffix existence.
case "$sinfile" in case "$sinfile" in
*.*)
cp "$infile" "$outdir/$sinfile" || exit 1 # File with a suffix: try to decompress in file mode so that the
$uncomp "$outdir/$sinfile" || exit 1 # decompressor can transform the file name if it knows how. Try
uncompressed=`echo $outdir/*` # 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 $uncomp < "$infile" > "$outdir/$sinfile" || exit 1
uncompressed="$outdir/$sinfile" uncompressed="$outdir/$sinfile"
;; ;;

View File

@ -19,6 +19,8 @@
application/x-gzip = uncompress rcluncomp gunzip %f %t application/x-gzip = uncompress rcluncomp gunzip %f %t
application/x-compress = uncompress rcluncomp gunzip %f %t application/x-compress = uncompress rcluncomp gunzip %f %t
application/x-bzip2 = uncompress rcluncomp bunzip2 %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. # Filters for indexing and internal preview.