From a8e6ce08aa6e5c9f6b00615de8838dd0c972a134 Mon Sep 17 00:00:00 2001 From: dockes Date: Mon, 14 Dec 2009 09:43:43 +0000 Subject: [PATCH] iscmd: supplement -x with -d test not a dir --- src/filters/rclabw | 5 +++-- src/filters/rcldjvu | 5 +++-- src/filters/rcldoc | 5 +++-- src/filters/rcldvi | 5 +++-- src/filters/rclflac | 8 ++++++-- src/filters/rclgaim | 5 +++-- src/filters/rclid3 | 5 +++-- src/filters/rclkwd | 5 +++-- src/filters/rcllyx | 5 +++-- src/filters/rclman | 5 +++-- src/filters/rclogg | 8 ++++++-- src/filters/rclopxml | 5 +++-- src/filters/rclpdf | 5 +++-- src/filters/rclppt | 5 +++-- src/filters/rclps | 5 +++-- src/filters/rclpurple | 5 +++-- src/filters/rclrtf | 5 +++-- src/filters/rclscribus | 5 +++-- src/filters/rclsiduxman | 5 +++-- src/filters/rclsoff | 5 +++-- src/filters/rclsvg | 5 +++-- src/filters/rcltex | 5 +++-- src/filters/rcltext | 5 +++-- src/filters/rclwpd | 5 +++-- src/filters/rclxls | 5 +++-- src/filters/recfiltcommon | 4 ++-- 26 files changed, 83 insertions(+), 52 deletions(-) diff --git a/src/filters/rclabw b/src/filters/rclabw index 02cda362..48941484 100755 --- a/src/filters/rclabw +++ b/src/filters/rclabw @@ -15,6 +15,7 @@ LC_ALL=C ; export LC_ALL progname="rclabw" filetype=abiword + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -38,10 +39,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcldjvu b/src/filters/rcldjvu index 30d5329d..a2b7aac3 100755 --- a/src/filters/rcldjvu +++ b/src/filters/rcldjvu @@ -35,6 +35,7 @@ filetype=dejavu + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -58,10 +59,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcldoc b/src/filters/rcldoc index 14c33f1b..be7d7ed7 100755 --- a/src/filters/rcldoc +++ b/src/filters/rcldoc @@ -28,6 +28,7 @@ decoder="antiword -t -i 1 -m UTF-8" #decoder="wvWare -1 -c UTF-8" + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -51,10 +52,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcldvi b/src/filters/rcldvi index 2ad9fc4b..57fa6c97 100755 --- a/src/filters/rcldvi +++ b/src/filters/rcldvi @@ -32,6 +32,7 @@ filetype=dvi + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -55,10 +56,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclflac b/src/filters/rclflac index db9e3a93..738406d3 100755 --- a/src/filters/rclflac +++ b/src/filters/rclflac @@ -11,6 +11,7 @@ progname="rclflac" filetype=media + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -34,10 +35,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } @@ -70,6 +71,9 @@ then senderror INPUTNOSUCHFILE "$infile" fi +# protect access to our temp files and directories +umask 77 + ############################################################################## # !! Leave the following line unmodified ! #ENDRECFILTCOMMONCODE diff --git a/src/filters/rclgaim b/src/filters/rclgaim index 029dc5cd..84f26895 100755 --- a/src/filters/rclgaim +++ b/src/filters/rclgaim @@ -21,6 +21,7 @@ filetype="gaim log" + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -44,10 +45,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclid3 b/src/filters/rclid3 index 11709954..b888abef 100755 --- a/src/filters/rclid3 +++ b/src/filters/rclid3 @@ -11,6 +11,7 @@ progname="rclid3" filetype=audio + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -34,10 +35,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclkwd b/src/filters/rclkwd index 96529a10..a416af72 100755 --- a/src/filters/rclkwd +++ b/src/filters/rclkwd @@ -19,6 +19,7 @@ filetype=kword + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -42,10 +43,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcllyx b/src/filters/rcllyx index ddc5ec63..2b06c0d3 100755 --- a/src/filters/rcllyx +++ b/src/filters/rcllyx @@ -34,6 +34,7 @@ filetype=lyx + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -57,10 +58,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclman b/src/filters/rclman index e85eff56..e82b12a3 100755 --- a/src/filters/rclman +++ b/src/filters/rclman @@ -23,6 +23,7 @@ filetype=man + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -46,10 +47,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclogg b/src/filters/rclogg index c8b94451..16cd006c 100755 --- a/src/filters/rclogg +++ b/src/filters/rclogg @@ -11,6 +11,7 @@ progname="rclogg" filetype=ogg + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -34,10 +35,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } @@ -70,6 +71,9 @@ then senderror INPUTNOSUCHFILE "$infile" fi +# protect access to our temp files and directories +umask 77 + ############################################################################## # !! Leave the following line unmodified ! #ENDRECFILTCOMMONCODE diff --git a/src/filters/rclopxml b/src/filters/rclopxml index 719ad5f9..710fed4d 100755 --- a/src/filters/rclopxml +++ b/src/filters/rclopxml @@ -12,6 +12,7 @@ LC_ALL=C ; export LC_ALL progname=rclopxml filetype=openxml + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -35,10 +36,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclpdf b/src/filters/rclpdf index 951d67bd..4e01f66d 100755 --- a/src/filters/rclpdf +++ b/src/filters/rclpdf @@ -36,6 +36,7 @@ filetype=pdf + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -59,10 +60,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclppt b/src/filters/rclppt index 798ec612..8dc29414 100755 --- a/src/filters/rclppt +++ b/src/filters/rclppt @@ -33,6 +33,7 @@ filetype=powerpoint + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -56,10 +57,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclps b/src/filters/rclps index a585fcac..b4cfa98f 100755 --- a/src/filters/rclps +++ b/src/filters/rclps @@ -30,6 +30,7 @@ filetype=postscript + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -53,10 +54,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclpurple b/src/filters/rclpurple index 2d5803bd..4056a5dc 100755 --- a/src/filters/rclpurple +++ b/src/filters/rclpurple @@ -21,6 +21,7 @@ filetype="purple/pidgin log" + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -44,10 +45,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclrtf b/src/filters/rclrtf index 89afd190..4e587eb7 100755 --- a/src/filters/rclrtf +++ b/src/filters/rclrtf @@ -16,6 +16,7 @@ filetype=rtf + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -39,10 +40,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclscribus b/src/filters/rclscribus index daeac955..9be6c19a 100755 --- a/src/filters/rclscribus +++ b/src/filters/rclscribus @@ -23,6 +23,7 @@ filetype=Scribus + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -46,10 +47,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclsiduxman b/src/filters/rclsiduxman index e9cbe10c..edc450c0 100755 --- a/src/filters/rclsiduxman +++ b/src/filters/rclsiduxman @@ -16,6 +16,7 @@ LC_ALL=C ; export LC_ALL progname="rclsiduxman" filetype="sidux manual htm" + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -39,10 +40,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclsoff b/src/filters/rclsoff index aae69329..626c44d9 100755 --- a/src/filters/rclsoff +++ b/src/filters/rclsoff @@ -21,6 +21,7 @@ filetype=openoffice + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -44,10 +45,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclsvg b/src/filters/rclsvg index dfda7a0a..b2acbfba 100755 --- a/src/filters/rclsvg +++ b/src/filters/rclsvg @@ -15,6 +15,7 @@ LC_ALL=C ; export LC_ALL progname="rclsvg" filetype=svg + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -38,10 +39,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcltex b/src/filters/rcltex index 65d69a8d..ef79415d 100755 --- a/src/filters/rcltex +++ b/src/filters/rcltex @@ -11,6 +11,7 @@ progname="rcltex" filetype=TeX + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -34,10 +35,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rcltext b/src/filters/rcltext index a7079200..30e65799 100755 --- a/src/filters/rcltext +++ b/src/filters/rcltext @@ -17,6 +17,7 @@ LC_ALL=C ; export LC_ALL progname="rcltext" filetype=text + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -40,10 +41,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclwpd b/src/filters/rclwpd index fdf940b2..cd6a47fb 100755 --- a/src/filters/rclwpd +++ b/src/filters/rclwpd @@ -14,6 +14,7 @@ progname="rclwpd" filetype=wpd + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -37,10 +38,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/rclxls b/src/filters/rclxls index 65224589..3e15146a 100755 --- a/src/filters/rclxls +++ b/src/filters/rclxls @@ -34,6 +34,7 @@ filetype=excel + #RECFILTCOMMONCODE ############################################################################## # !! Leave the previous line unmodified!! Code imported from the @@ -57,10 +58,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac } diff --git a/src/filters/recfiltcommon b/src/filters/recfiltcommon index 72775568..7d2f64b6 100755 --- a/src/filters/recfiltcommon +++ b/src/filters/recfiltcommon @@ -22,10 +22,10 @@ iscmd() cmd=$1 case $cmd in */*) - if test -x $cmd ; then return 0; else return 1; fi ;; + if test -x $cmd -a ! -d $cmd ; then return 0; else return 1; fi ;; *) oldifs=$IFS; IFS=":"; set -- $PATH; IFS=$oldifs - for d in $*;do test -x $d/$cmd && return 0;done + for d in $*;do test -x $d/$cmd -a ! -d $d/$cmd && return 0;done return 1 ;; esac }