Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37536795
en ru br
Репозитории ALT
S:4.1.1-alt2
5.1: 3.7.4-alt0.M50P.1
4.1: 3.6.1.cvs5-alt0.M41.2
4.0: 3.6.1.cvs5-alt0.M40.1
www.altlinux.org/Changes

Другие репозитории
Upstream:3.3.1

Группа :: Сети/Почта
Пакет: claws-mail

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: claws-mail-4.1.1-alt2.patch
Скачать


 AUTHORS                                        |  2 ++
 configure.ac                                   |  1 -
 po/ru.po                                       |  4 +--
 src/common/ssl.c                               |  4 ++-
 src/common/utils.c                             |  1 +
 src/gtk/authors.h                              |  1 +
 src/mimeview.c                                 |  4 +--
 src/plugins/litehtml_viewer/litehtml/html.h    |  1 +
 src/plugins/litehtml_viewer/litehtml/num_cvt.h |  1 +
 src/procheader.c                               |  6 ++--
 src/procheader.h                               |  4 +--
 src/textview.c                                 |  8 ++---
 tools/filter_conv.pl                           |  1 +
 tools/fix_date.sh                              | 13 +++++---
 tools/kdeservicemenu/install.sh                | 18 ++++++-----
 tools/mairix.sh                                | 12 ++++++--
 tools/make.themes.project                      | 10 ++++--
 tools/tb2claws-mail                            |  2 +-
 tools/textviewer.pl                            |  2 ++
 tools/textviewer.sh                            | 42 +++++++++++++++-----------
 tools/uudec                                    | 15 ++++++++-
 tools/uuooffice                                | 10 ++++--
 22 files changed, 110 insertions(+), 52 deletions(-)
diff --git a/AUTHORS b/AUTHORS
index 25d698c04..6a0178974 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -340,3 +340,5 @@ contributors (in addition to the above; based on Changelog)
 	Ramin Yaghoubzadeh Torky
 	Manuel Stoeckl
 	Frank Mueller
+	JP Guillonneau
+	Viatrix
diff --git a/configure.ac b/configure.ac
index f0fe8f235..00f2b64a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -832,7 +832,6 @@ if test x"$enable_alternate_addressbook" = xno; then
 		dnl check for available libraries, and pull them in
 		AC_CHECK_LIB(resolv, res_query, LDAP_LIBS="$LDAP_LIBS -lresolv")
 		AC_CHECK_LIB(socket, bind, LDAP_LIBS="$LDAP_LIBS -lsocket")
-		AC_CHECK_LIB(nsl, gethostbyaddr, LDAP_LIBS="$LDAP_LIBS -lnsl")
 		AC_CHECK_LIB(lber, ber_get_tag, LDAP_LIBS="$LDAP_LIBS -llber",,
 				 $LDAP_LIBS)
 
diff --git a/po/ru.po b/po/ru.po
index f99977d02..f143fb1bf 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -4641,7 +4641,7 @@ msgstr "п п╬я─п╦я┤п╫п╣п╡я▀п╧"
 
 #: src/gtk/colorlabel.c:45 src/prefs_common.c:392
 msgid "Grey"
-msgstr "п≈п╣п╩п╣п╫я▀п╧"
+msgstr "п║п╣я─я▀п╧"
 
 #: src/gtk/colorlabel.c:46 src/prefs_common.c:396
 msgid "Light brown"
@@ -17460,7 +17460,7 @@ msgstr "п▓п╦п╢ я│п╬п╬п╠я┴п╣п╫п╦я▐"
 
 #: src/prefs_msg_colors.c:152
 msgid "Enable coloration of message text"
-msgstr "п▓п╨п╩я▌я┤п╦я┌я▄ п╬п╨я─п╟я│п╨я┐ я┌п╣я│я┌п╟ я│п╬п╬п╠я┴п╣п╫п╦я▐"
+msgstr "п▓п╨п╩я▌я┤п╦я┌я▄ п╬п╨я─п╟я│п╨я┐ я┌п╣п╨я│я┌п╟ я│п╬п╬п╠я┴п╣п╫п╦я▐"
 
 #: src/prefs_msg_colors.c:160
 msgid "Quote"
diff --git a/src/common/ssl.c b/src/common/ssl.c
index 1eafe3f6e..7cea09a9c 100644
--- a/src/common/ssl.c
+++ b/src/common/ssl.c
@@ -195,8 +195,9 @@ const gchar *claws_ssl_get_cert_file(void)
 {
 #ifndef G_OS_WIN32
 	const char *cert_files[]={
-		"/etc/ssl/cert.pem",
 		"/etc/pki/tls/certs/ca-bundle.crt",
+		"/usr/share/ca-certificates/ca-bundle.crt",
+		"/etc/ssl/cert.pem",
 		"/etc/certs/ca-bundle.crt",
 		"/etc/ssl/ca-bundle.pem",
 		"/usr/share/ssl/certs/ca-bundle.crt",
@@ -231,6 +232,7 @@ const gchar *claws_ssl_get_cert_dir(void)
 		return g_getenv("SSL_CERT_DIR");
 #ifndef G_OS_WIN32
 	const char *cert_dirs[]={
+		"/var/lib/ssl/certs",
 		"/etc/pki/tls/certs",
 		"/etc/certs",
 		"/usr/share/ssl/certs",
diff --git a/src/common/utils.c b/src/common/utils.c
index 497bedfca..396a65eff 100644
--- a/src/common/utils.c
+++ b/src/common/utils.c
@@ -608,6 +608,7 @@ gchar *escape_internal_quotes(gchar *str, gchar quote_chr)
 	if (str == NULL || *str == '\0')
 		return str;
 
+	g_strstrip(str);
 	/* search for unescaped quote_chr */
 	p = str;
 	if (*p == quote_chr)
diff --git a/src/gtk/authors.h b/src/gtk/authors.h
index 100c60895..125d307e3 100644
--- a/src/gtk/authors.h
+++ b/src/gtk/authors.h
@@ -317,6 +317,7 @@ static char *CONTRIBS_LIST[] = {
 "Aleksandar Uroе║eviд┤",
 "Petr Vanek",
 "Jeroen Versteeg",
+"Viatrix",
 "Kevin Vigor",
 "Michael Vilain",
 "Johan Vromans",
diff --git a/src/mimeview.c b/src/mimeview.c
index e782dce76..ef12ed8f5 100644
--- a/src/mimeview.c
+++ b/src/mimeview.c
@@ -1,6 +1,6 @@
 /*
  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
+ * Copyright (C) 1999-2023 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -1669,7 +1669,7 @@ static void mimeview_drag_data_get(GtkWidget	    *widget,
 
 		fp = claws_fopen(partinfo->data.filename, "rb");
 		if (fp != NULL && fseek(fp, partinfo->offset, SEEK_SET) == 0) {
-			headers = procheader_get_header_array_asis(fp);
+			headers = procheader_get_header_array(fp);
 			if (headers) {
 				gint i;
 				for (i = 0; i < headers->len; i++) {
diff --git a/src/plugins/litehtml_viewer/litehtml/html.h b/src/plugins/litehtml_viewer/litehtml/html.h
index 4151b1225..20457f155 100644
--- a/src/plugins/litehtml_viewer/litehtml/html.h
+++ b/src/plugins/litehtml_viewer/litehtml/html.h
@@ -9,6 +9,7 @@
 #include <cstring>
 #include <algorithm>
 #include <sstream>
+#include <cstdint>
 #include "os_types.h"
 #include "types.h"
 #include "background.h"
diff --git a/src/plugins/litehtml_viewer/litehtml/num_cvt.h b/src/plugins/litehtml_viewer/litehtml/num_cvt.h
index 515e46d62..367dcc36a 100644
--- a/src/plugins/litehtml_viewer/litehtml/num_cvt.h
+++ b/src/plugins/litehtml_viewer/litehtml/num_cvt.h
@@ -2,6 +2,7 @@
 #define NUM_CVT_H
 
 #include <string>
+#include <cstdint>
 #include "os_types.h"
 
 namespace litehtml
diff --git a/src/procheader.c b/src/procheader.c
index 106deadec..220a808a9 100644
--- a/src/procheader.c
+++ b/src/procheader.c
@@ -1,6 +1,6 @@
 /*
  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2014 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2023 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -265,7 +265,7 @@ gint procheader_get_one_field_asis(gchar **buf, FILE *fp)
 				     FALSE);
 }
 
-GPtrArray *procheader_get_header_array_asis(FILE *fp)
+GPtrArray *procheader_get_header_array(FILE *fp)
 {
 	gchar *buf = NULL;
 	GPtrArray *headers;
@@ -275,7 +275,7 @@ GPtrArray *procheader_get_header_array_asis(FILE *fp)
 
 	headers = g_ptr_array_new();
 
-	while (procheader_get_one_field_asis(&buf, fp) != -1) {
+	while (procheader_get_one_field(&buf, fp, NULL) != -1) {
 		if ((header = procheader_parse_header(buf)) != NULL)
 			g_ptr_array_add(headers, header);
 		g_free(buf);
diff --git a/src/procheader.h b/src/procheader.h
index 3e5681946..a5c3201d0 100644
--- a/src/procheader.h
+++ b/src/procheader.h
@@ -1,6 +1,6 @@
 /*
  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2014 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2023 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -47,7 +47,7 @@ gint procheader_get_one_field		(gchar		**buf,
 gint procheader_get_one_field_asis	(gchar		**buf,
 					 FILE		*fp);
 
-GPtrArray *procheader_get_header_array_asis	(FILE		*fp);
+GPtrArray *procheader_get_header_array		(FILE		*fp);
 void procheader_header_array_destroy		(GPtrArray	*harray);
 void procheader_header_free			(Header		*header);
 
diff --git a/src/textview.c b/src/textview.c
index b986de84e..0e7b3ae18 100644
--- a/src/textview.c
+++ b/src/textview.c
@@ -1,6 +1,6 @@
 /*
  * Claws Mail -- a GTK based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2022 the Claws Mail team and Hiroyuki Yamamoto
+ * Copyright (C) 1999-2023 the Claws Mail team and Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -1926,7 +1926,7 @@ static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
 	cm_return_val_if_fail(fp != NULL, NULL);
 
 	if (prefs_common.show_all_headers) {
-		headers = procheader_get_header_array_asis(fp);
+		headers = procheader_get_header_array(fp);
 		sorted_headers = g_ptr_array_new();
 		for (i = 0; i < headers->len; i++) {
 			header = g_ptr_array_index(headers, i);
@@ -1945,7 +1945,7 @@ static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
 		return NULL;
 	}
 
-	headers = procheader_get_header_array_asis(fp);
+	headers = procheader_get_header_array(fp);
 
 	sorted_headers = g_ptr_array_new();
 
@@ -1956,7 +1956,6 @@ static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
 
 		for (i = 0; i < headers->len; i++) {
 			header = g_ptr_array_index(headers, i);
-
 			if (procheader_headername_equal(header->name,
 							dp->name)) {
 				if (dp->hidden)
@@ -1973,6 +1972,7 @@ static GPtrArray *textview_scan_header(TextView *textview, FILE *fp)
 	if (prefs_common.show_other_header) {
 		for (i = 0; i < headers->len; i++) {
 			header = g_ptr_array_index(headers, i);
+			unfold_line(header->body);
 			if (!procheader_header_is_internal(header->name)) {
 				g_ptr_array_add(sorted_headers, header);
 			} else {
diff --git a/tools/filter_conv.pl b/tools/filter_conv.pl
index fec94e819..894e3621e 100755
--- a/tools/filter_conv.pl
+++ b/tools/filter_conv.pl
@@ -158,6 +158,7 @@ close(FILTERRC);
 
 ###############################################################################
 
+chdir($ENV{ HOME } . "/.claws-mail") or die("You don't appear to have Sylpheed Claws installed\n");
 open(MATCHERRC, ">>matcherrc");
   print MATCHERRC @new_filters;
 close(MATCHERRC);
diff --git a/tools/fix_date.sh b/tools/fix_date.sh
index 379807d68..1c5beedf6 100755
--- a/tools/fix_date.sh
+++ b/tools/fix_date.sh
@@ -28,8 +28,8 @@
 
 # TODO: fallback to X-OriginalArrivalTime: ?
 
-VERSION="0.1.4"
-
+VERSION="0.1.3"
+DOS2UNIX=dos2unix
 
 version()
 {
@@ -114,7 +114,12 @@ fi
 test $# -lt 1 && \
 	usage 1
 
-for PROG in dos2unix grep sed
+if ! type "$DOS2UNIX" >/dev/null 2>&1; then
+	echo "error: $DOS2UNIX command not found, please install it"
+	exit 1
+fi
+
+for PROG in "$DOS2UNIX" grep sed
 do
     type "$PROG" >/dev/null 2>&1 || \
         { echo "error: $PROG not found in PATH"; exit 1; }
@@ -152,7 +157,7 @@ do
 	# find the empty line that separates body (if any) from headers,
 	# work on a temporary dos2unix'ed copy because body might
 	# contain DOS CRLF and grep '^$' won't work
-	head -$MAX_HEADER_LINES "$1" | dos2unix > "$TMP"
+	head -$MAX_HEADER_LINES "$1" | "$DOS2UNIX" > "$TMP"
 	SEP=`grep -nEm1 "^$" "$TMP" 2>/dev/null | cut -d ':' -f 1`
 	rm -f "$TMP"
 	if [ -z "$SEP" -o "$SEP" = "0" -o $? -ne 0 ]
diff --git a/tools/kdeservicemenu/install.sh b/tools/kdeservicemenu/install.sh
index e3560ebde..ad21f47e8 100755
--- a/tools/kdeservicemenu/install.sh
+++ b/tools/kdeservicemenu/install.sh
@@ -2,6 +2,8 @@
 
 PERL_SCRIPT="claws-mail-kdeservicemenu.pl"
 DESKTOP="claws-mail-attach-files.desktop"
+KDESU=kdesu
+KDIALOG=kdialog
 
 function check_environ {
 echo "Checking for kde4-config..."
@@ -21,7 +23,7 @@ else
   else
     echo "kde-config not found..."
     echo "asking user to find kde4-config or kde-config..."
-    KDECONFIG=$(kdialog --title "Locate kde-config or kde4-config" --getopenfilename / )
+    KDECONFIG=$("$KDIALOG" --title "Locate kde-config or kde4-config" --getopenfilename / )
     test -z $KDECONFIG && exit 1
     if [[ $KDECONFIG == *4-config ]]; then
       SERVICEMENU_DIR="share/kde4/services/ServiceMenus"
@@ -42,7 +44,7 @@ echo "Installing $PREFIX/$SERVICEMENU_DIR/$DESKTOP"
 mv -f $DESKTOP $PREFIX/$SERVICEMENU_DIR/$DESKTOP
 if [[ $? -ne 0 ]]
 then
-  kdialog --error "Could not complete installation."
+  "$KDIALOG" --error "Could not complete installation."
   exit
 fi
 echo "Installing $PREFIX/bin/$PERL_SCRIPT"
@@ -51,7 +53,7 @@ echo "Setting permissions ..."
 chmod 0644 $PREFIX/$SERVICEMENU_DIR/$DESKTOP
 chmod 0755 $PREFIX/bin/$PERL_SCRIPT
 echo "Finished installation."
-kdialog --msgbox "Finished installation."
+"$KDIALOG" --msgbox "Finished installation."
 }
 
 function uninstall_all {
@@ -59,13 +61,13 @@ echo "Removing $PREFIX/$SERVICEMENU_DIR/$DESKTOP"
 rm $PREFIX/$SERVICEMENU_DIR/$DESKTOP
 if [[ $? -ne 0 ]]
 then
-  kdialog --error "Could not complete uninstall."
+  "$KDIALOG" --error "Could not complete uninstall."
   exit
 fi
 echo "Removing $PREFIX/bin/$PERL_SCRIPT"
 rm $PREFIX/bin/$PERL_SCRIPT
 echo "Finished uninstall."
-kdialog --msgbox "Finished uninstall."
+"$KDIALOG" --msgbox "Finished uninstall."
 }
 
 function show_help {
@@ -80,7 +82,7 @@ function show_help {
 }
 
 if [ -z $1 ]
-    then option="--$(kdialog --menu "Please select installation type" \
+    then option="--$("$KDIALOG" --menu "Please select installation type" \
 				local "install for you only" \
 				global "install for all users" \
 				uninstall-local "uninstall for you only" \
@@ -94,7 +96,7 @@ case $option in
     PREFIX=$($KDECONFIG --prefix)
     echo "Installing in $PREFIX/$SERVICEMENU_DIR ..."
     if [ "$(id -u)" != "0" ]; then
-	exec kdesu "$0 --global"
+	exec "$KDESU" "$0 --global"
     fi
     install_all
     ;;
@@ -115,7 +117,7 @@ case $option in
     PREFIX=$($KDECONFIG --prefix)
     echo "Uninstalling from $PREFIX/$SERVICEMENU_DIR ..."
     if [ "$(id -u)" != "0" ]; then
-	exec kdesu "$0 --uninstall-global"
+	exec "$KDESU" "$0 --uninstall-global"
     fi
     uninstall_all
     ;;
diff --git a/tools/mairix.sh b/tools/mairix.sh
index b44fd3595..ce743c08f 100755
--- a/tools/mairix.sh
+++ b/tools/mairix.sh
@@ -21,6 +21,8 @@
 # if any param is passed, $1 must be the mairixrc file to use
 # if no param is passed, ~/.mairixrc is assumed
 
+MAIRIX=mairix
+
 read TEXT
 test -z "$TEXT" && \
 	exit 0
@@ -33,6 +35,12 @@ else
 	RCFILE=~/.mairixrc
 fi
 
-mairix -f "$RCFILE" --purge && \
-	mairix -f "$RCFILE" "$@" $TEXT
+
+which "$MAIRIX" > /dev/null 2>&1 ||
+{
+	echo "Please install '$MAIRIX' to use this script." >&2
+	exit 1
+};
+$MAIRIX -f "$RCFILE" --purge && \
+	$MAIRIX -f "$RCFILE" "$@" $TEXT
 exit $?
diff --git a/tools/make.themes.project b/tools/make.themes.project
index 038bad760..68a3955d2 100644
--- a/tools/make.themes.project
+++ b/tools/make.themes.project
@@ -21,6 +21,12 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 # 
 
+WGET=wget
+if ! type "$WGET" > /dev/null 2>&1; then
+       echo "Please install 'wget' to use this script." >&2
+       exit 1
+fi
+
 test x$1 = x && echo "Error: version number not given" && exit 1;
 
 VERS=$1
@@ -35,7 +41,7 @@ WLOG=themes.wget.log
 function getListFromPage()
 {
   test -f ${PAGE} && rm -f ${PAGE};
-  wget -q -a ${WLOG} ${SITE}/${PAGE}
+  $WGET -q -a ${WLOG} ${SITE}/${PAGE}
   test ! -f ${PAGE} && echo "Error: couldn't get ${PAGE}." && exit 1;
 
   grep 'download.php?file=' ${PAGE} \
@@ -58,7 +64,7 @@ function downloadThemes()
      test $tarf = "png" \
          && tarf=`echo $theme | cut -f3 -d/ `;
      echo -n "Downloading... ";
-     wget -q -a ${WLOG} -O ${DDIR}/$tarf ${SITE}/$theme
+     $WGET -q -a ${WLOG} -O ${DDIR}/$tarf ${SITE}/$theme
      test ! -f ${DDIR}/$tarf && echo "Error: couldn't get $tarf" && exit 1;
      pushd ${DDIR} > /dev/null
      tarops="";
diff --git a/tools/tb2claws-mail b/tools/tb2claws-mail
index 70300610a..d2971ba71 100755
--- a/tools/tb2claws-mail
+++ b/tools/tb2claws-mail
@@ -53,7 +53,7 @@ closedir(CLAWS);
 # get all existing addressbook filenames
 foreach $cached (@cached) {
     if ($cached =~ m/^addrbook/ && $cached =~ m/[0-9].xml$/) {
-	push(addr, "$cached");
+	push(@addr, "$cached");
     }
 }
 # sort filenames, get last and set newest filename
diff --git a/tools/textviewer.pl b/tools/textviewer.pl
index e9f04ae05..8945e84bb 100755
--- a/tools/textviewer.pl
+++ b/tools/textviewer.pl
@@ -96,6 +96,8 @@ my %fh = (
 
 	bz2	=> [ "bzip2 -d < %f | strings" ],
 
+	gz	=> [ "zcat %f | strings" ],
+
 	zip	=> [ "unzip -l %f"	], # ZIP
 
 	test	=> [ \&test		], # Internal
diff --git a/tools/textviewer.sh b/tools/textviewer.sh
index 38c889431..4fa6ce06c 100755
--- a/tools/textviewer.sh
+++ b/tools/textviewer.sh
@@ -87,6 +87,14 @@
 #
 ###############################################################################
 
+ANTIWORD=antiword
+PDFTOTEXT=pdftotext
+OOO2TXT=ooo2txt
+XLHTML=xlhtml
+HTML2TEXT=html2text
+PPTHTML=ppthtml
+UNRTF=unrtf
+
 if [ $# -eq 0 ]
 then
   	echo "No filename supplied." >&2 
@@ -172,72 +180,72 @@ case $TYPE in
 	ZIP)	echo -e "Zip file contents:\n"		;
 		unzip -l "$1"				;;
 
-	RTF)	which unrtf > /dev/null  2>&1 || 
+	RTF)	which "$UNRTF" > /dev/null  2>&1 || 
 		{
 			echo "Program 'unrtf' for displaying RTF files not found" >&2
 			exit 1
 		};
 		echo -e "Displaying \"$1\" using \"unrtf\":\n";
-		unrtf -t text "$1" 2>/dev/null | egrep  -v '^### ' | fold -s -w 72  ;;
+		"$UNRTF" -t text "$1" 2>/dev/null | grep -E -v '^### ' | fold -s -w 72  ;;
 
-	TEXT)	cat "$1"				;;
+	TEXT)	cat "$1" | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g";;
 
-	MSWORD) which antiword  > /dev/null  2>&1 || 
+	MSWORD) which "$ANTIWORD"  > /dev/null  2>&1 || 
 		{
 			echo "Program 'antiword' for displaying MS Word files not found" >&2
 			exit 1 
 		};
 		echo -e "Displaying \"$1\" using \"antiword\":\n";
-		antiword -w 72 "$1" 				;;
+		"$ANTIWORD" -w 72 "$1" 				;;
 
-	POWERPOINT) which ppthtml > /dev/null 2>&1 ||
+	POWERPOINT) which "$PPTHTML" > /dev/null 2>&1 ||
 		{ 
 			echo "Program 'ppthtml' for displaying Powerpoint files not found" >&2
 			exit 1
 		};
-		which html2text > /dev/null 2>&1 ||                           
+		which "$HTML2TEXT" > /dev/null 2>&1 ||                           
                 {                                                               
                         echo "Program 'html2text' for displaying Powerpoint files not found" >&2
                         exit 1                                                  
                 };   
 		echo -e "Displaying \"$1\" using \"ppthtml\" and \"html2text\":\n";
-		ppthtml "$1" | html2text			;;
+		"$PPTHTML" "$1" | "$HTML2TEXT"			;;
 
-        EXCEL) which xlhtml > /dev/null 2>&1 ||
+        EXCEL) which "$XLHTML" > /dev/null 2>&1 ||
                 {
                         echo "Program 'xlhtml' for displaying Excel files not found" >&2
                         exit 1
                 };
-                which html2text > /dev/null 2>&1 || 
+                which "$HTML2TEXT" > /dev/null 2>&1 || 
                 {
                         echo "Program 'html2text' for displaying Excel files not found" >&2
                         exit 1
                 };
                 echo -e "Displaying \"$1\" using \"xlhtml\" and \"html2text\":\n";
-                xlhtml "$1" | html2text                        ;;
+                "$XLHTML" "$1" | "$HTML2TEXT"                        ;;
  
-	OOWRITER) which ooo2txt > /dev/null 2>&1 ||
+	OOWRITER) which "$OOO2TXT" > /dev/null 2>&1 ||
 		{
 			echo "Program 'ooo2txt' for converting OpenOffice Writer files not files not found" >&2
 			exit 1
 		};
 		echo -e "Displaying \"$1\" using \"ooo2txt\":\n";
-		ooo2txt "$1"					;;
+		"$OOO2TXT" "$1"					;;
 
-	PDF) which pdftotext > /dev/null 2>&1 ||
+	PDF) which "$PDFTOTEXT" > /dev/null 2>&1 ||
 		{
 			echo "Program 'pdftotext' for converting Adobe Portable Document Format to text not found" >&2
 			exit 1
 		};
 		echo -e "Displaying \"$1\" using \"pdftotext\":\n";
-		pdftotext "$1"	-				;;
+		"$PDFTOTEXT" "$1"	-				;;
 
-	HTML) which html2text > /dev/null 2>&1 ||
+	HTML) which "$HTML2TEXT" > /dev/null 2>&1 ||
 		{
 			echo "Program 'html2text' for converting HTML files not found" >&2
 			exit 1
 		};
-		html2text -nobs "$1" ;;
+		"$HTML2TEXT" -nobs "$1" ;;
 
 	*)	echo "Unsupported file type \"$FILETYPE\", cannot display.";;
 esac
diff --git a/tools/uudec b/tools/uudec
index 9b106bb21..664f4057f 100755
--- a/tools/uudec
+++ b/tools/uudec
@@ -1,2 +1,15 @@
 #!/bin/sh
-uudecode -o - "$1" | display -
+UUDECODE=uudecode
+DISPLAY_CMD=display
+
+if ! type "$UUDECODE" > /dev/null 2>&1; then
+	echo "Please install 'uudecode' to use this script." >&2
+	exit 1
+fi
+
+if ! type "$DISPLAY_CMD" > /dev/null 2>&1; then
+	echo "Please install 'display' to use this script." >&2
+	exit 1
+fi
+
+$UUDECODE -o - "$1" | $DISPLAY_CMD -
diff --git a/tools/uuooffice b/tools/uuooffice
index 6a5dc060c..e0b5517de 100755
--- a/tools/uuooffice
+++ b/tools/uuooffice
@@ -18,8 +18,14 @@
 #
 # uuooffice		helper script to open documents attached to emails with OpenOffice
 
+OOFFICE=ooffice
+UUDECODE=uudecode
 FILENAME=$(grep -Em 1 "^begin [0-7][0-7][0-7] ." "$1" | cut -d ' ' -f 3-)
 TMPFILE=/tmp/${0##*/}_$FILENAME
-uudecode -o - "$1" > "$TMPFILE"
-ooffice "$TMPFILE"
+which "$UUDECODE" > /dev/null 2>&1 &&
+	$UUDECODE -o - "$1" > "$TMPFILE" ||
+	echo "Please install 'uudecode' to use this script." >&2
+[ -e "$TMPFILE" ] && which "$OOFFICE" > /dev/null 2>&1 &&
+	$OOFFICE "$TMPFILE" ||
+	echo "Please install 'ooffice' to use this script." >&2
 rm -f "$TMPFILE"
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin