/usr/bin/kantiword is in antiword 0.37-8.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 | #!/bin/sh
#
# Script to make drag and drop in KDE possible
#set -x
#
CONFS=$(kde-config --path config | tr ':' ' ')
CONF_FILE=kantiwordrc
mapping=
# default output format is PDF
format="-a"
ext=pdf
for i in $CONFS; do
if [ -r "$i/$CONF_FILE" ]; then
ENCODING=$(grep ^encoding "$i/$CONF_FILE" | tr -d '[:blank:]' | cut -d '=' -f 2)
if [ -f "/usr/share/antiword/$ENCODING.txt" ]; then
mapping="-m $ENCODING.txt"
fi
FORMAT=$(grep ^output_format "$i/$CONF_FILE" | tr -d '[:blank:]' | cut -d '=' -f 2)
if [ "$FORMAT" = "PS" ]; then
# switch to output format PS, Cyrillic is better supported
format="-p"
ext=ps
fi
break
fi
done
DESKTOP=$(kde-config --userpath desktop)
if [ $# -lt 2 ]; then
echo "Would you like to install an icon on your Desktop, where you"
echo "will be able to drop an *.doc file on to? It will be displayed"
echo "as a PDF document or as plain text (if no PDF viewer available)."
echo -n "[Y/n]: > "
read n
if [ "x$n" = "xy" ] || [ "x$n" = "xY" ] || [ "x$n" = "x" ]; then
if [ -r /etc/papersize ]; then
n=$(cat /etc/papersize)
fi
if [ "x$n" != "xa4" ] && [ "x$n" != "xletter" ]; then
echo
echo "Type"
echo "'a' for output papersize A4,"
echo "'l' for letter or"
echo "'n' for cancel."
echo -n "[a/l/N]: > "
read n
fi
if [ "x$n" = "xa" ] || [ "x$n" = "xa4" ]; then
cp -f /usr/share/antiword/kantiword.eu.desktop "$DESKTOP/kantiword.desktop"
elif [ "x$n" = "xl" ] || [ "x$n" = "xletter" ]; then
cp -f /usr/share/antiword/kantiword.us.desktop "$DESKTOP/kantiword.desktop"
fi
fi
exit 0
fi
# Determine the temp directory
if [ -d "$TMPDIR" ] && [ -w "$TMPDIR" ]; then
tmp_dir="$TMPDIR"
elif [ -d "$TEMP" ] && [ -w "$TEMP" ]; then
tmp_dir="$TEMP"
else
tmp_dir="/tmp"
fi
# Try to create the temp files in a secure way
if [ -x /bin/tempfile ]; then
out_file=$(/bin/tempfile -d "$tmp_dir" -p antiword -s ".$ext") || exit 1
err_file=$(/bin/tempfile -d "$tmp_dir" -p antiword -s ".err")
txt_file=$(/bin/tempfile -d "$tmp_dir" -p antiword -s ".txt")
if [ $? -ne 0 ]; then
rm -f "$out_file"
exit 1
fi
elif [ -x /bin/mktemp ]; then
out_file=$(/bin/mktemp -q -p "$tmp_dir" antiword.$ext.XXXXXXXXX) || exit 1
err_file=$(/bin/mktemp -q -p "$tmp_dir" antiword.err.XXXXXXXXX)
txt_file=$(/bin/mktemp -q -p "$tmp_dir" antiword.txt.XXXXXXXXX)
if [ $? -ne 0 ]; then
rm -f "$out_file"
exit 1
fi
else
# Creating the temp files in an un-secure way
out_file="$tmp_dir/antiword.$$.$ext"
err_file="$tmp_dir/antiword.$$.err"
txt_file="$tmp_dir/antiword.$$.txt"
fi
error=0
# filename is empty, user had clicked on icon, so print a help message
# in err_file
if [ -z $2 ]; then
cat >"$err_file" <<EOF
You should drag any *.doc file and drop it on this icon for
displaying. Kantiword can not do anything with an empty filename.
EOF
error=1
else
# Determine the paper size
paper_size=$1
shift
# Make the output file (default PDF)
antiword $mapping $format $paper_size -i 0 "$@" 2>"$err_file" >"$out_file"
if [ $? -ne 0 ]; then
error=1
fi
fi
if [ $error -ne 0 ]; then
# Something went wrong
if [ -r "$err_file" ] && [ -s "$err_file" ]; then
if [ -x /usr/bin/konsole ]; then
/usr/bin/konsole --hold --caption "Error from Antiword" -e more "$err_file"
else
/usr/bin/X11/xterm -T "Error from Antiword" -e less "$err_file"
fi
fi
# Clean up
rm -f "$out_file" "$err_file" "$txt_file"
exit 1
fi
# Show the PDF file
if [ "$ext" = "pdf" -a -x /usr/bin/kpdf ]; then
/usr/bin/kpdf "$out_file"
elif [ "$ext" = "pdf" -a -x /usr/bin/xpdf ]; then
/usr/bin/xpdf "$out_file" -paper=$paper_size
elif [ -x /usr/bin/gv ]; then
/usr/bin/gv "$out_file" --nocenter --media=$paper_size
else
# no viewer available, so display as plain text
antiword $mapping "$@" 2>"$err_file" >"$txt_file"
if [ -x /usr/bin/konsole ]; then
/usr/bin/konsole --hold --caption "Text output from Antiword" -e more "$txt_file"
else
/usr/bin/X11/xterm -T "Text output from Antiword" -e less "$txt_file"
fi
fi
# Clean up
rm -f "$out_file" "$err_file" "$txt_file"
exit 0
|