-% $Id: t-prot.sl,v 1.11 2005/01/07 18:15:36 jochen Exp $
-% Copyright (c) 2003 Jochen Striepe <t-prot@tolot.escape.de>
+% $Id: t-prot.sl,v 1.16 2005/05/10 13:09:06 jochen Exp $
+% Copyright (c) 2003-2005 Jochen Striepe <t-prot@tolot.escape.de>
%
% This file is provided as an example implemention for articles to be
% filtered through t-prot before displayed. They are still filtered if
% variable t_prot_qp = "";
% into ~/.slrn/t-prot-cfg and add
% interpret .slrn/t-prot-cfg
-% to your ~/.slrnrc (after 'interpret t-prot.sl'). However, please keep
-% in mind that the path of the temp directory should NOT be readable to
-% other users -- otherwise it might reveal information on what you read,
-% and probably even be a security hole.
-% Please see t-prot's man page for details on command line parameters.
+% to your ~/.slrnrc (after 'interpret t-prot.sl'). If "mimedecode" is
+% installed on your system you might want to use
+% variable t_prot_qp = "mimedecode";
+% You can get mimedecode at
+% http://packages.debian.org/stable/mail/mimedecode.html
+%
+% However, please keep in mind that the path of the temp directory should
+% NOT be readable to other users -- otherwise it might reveal information on
+% what you read, and probably even be a security hole. Please see t-prot's
+% man page for details on command line parameters.
%
% If you want to toggle t-prot filtering on/off without leaving slrn,
% you may want to add something like
-% setkey article register_t_prot "\e1"
-% setkey article unregister_t_prot "\e0"
-% to your ~/.slrnrc -- press ESC-1 to activate t-prot filtering, and
-% ESC-0 to disable it (this will take effect on the next article you
+% setkey article register_t_prot "\e6"
+% setkey article unregister_t_prot "\e7"
+% to your ~/.slrnrc -- press ESC-6 to activate t-prot filtering, and
+% ESC-7 to disable it (this will take effect on the next article you
% read, see the package's TODO file).
%
% Requirements/Bugs: tr(1) and rm(1) are POSIX and should be available
% these should be reasonable defaults (they work fine for me, SCNR):
variable t_prot_params = "-aceklmtS --diff --bigq -L$HOME/.slrn/mlfooters -A$HOME/.slrn/adfooters";
-variable t_prot_tmpdir = "$HOME/tmp/slrn";
+variable t_prot_tmpdir = "$HOME/tmp/slrn"; % you better make sure it exists
variable t_prot_qp = "perl -i -p -e '$p=1 if /^Content-Transfer-Encoding: quoted-printable/i; if ($p==1) { s/=([0-9a-f][0-9a-f])/chr(hex($1))/egi; s/=\n//eg; };'";
define t_prot () {
if (t_prot_qp != "") { qp = t_prot_qp+"|"; } else { qp = ""; }
- pipe_article (qp+"t-prot "+t_prot_params+" >"+fname);
+
+ f = popen (qp+"t-prot "+t_prot_params+" >"+fname, "w");
+ if (f == NULL) {
+ error ("Unable to filter article to "+fname);
+ return;
+ }
+ () = fputs (article_as_string(), f);
+ () = pclose (f);
+
f = fopen (fname, "r");
if (f == NULL) {
}
fclose (f);
- % The removal of the tmp file works this way but should be made a
- % little more reliable. Any ideas?
- system ("rm -f "+fname);
+ if (0 != remove(fname)) error ("Unable to remove "+fname);
+
replace_article (art);
}