;; This package implements a simple wrapper around the GNU TLS command
;; line application "gnutls-cli" to make Emacs support STARTTLS.
;;
+;; This package require GNUTLS 0.9.8 (released 2003-10-02) or later.
+;;
;; Usage is similar to `open-network-stream', i.e.:
;;
;; (setq tmp (open-starttls-stream "test" (current-buffer) "cyrus.andrew.cmu.edu" 143))
This should typically only be done once. It typically return a
multi-line informational message with information about the
handshake, or NIL on failure."
- (let (buffer response old-max done-ok done-bad)
+ (let (buffer info old-max done-ok done-bad)
(if (null (setq buffer (process-buffer process)))
;; XXX how to remove/extract the TLS negotiation junk?
(signal-process (process-id process) 'SIGALRM)
"-p" (if (integerp service)
(int-to-string service)
service)
- starttls-extra-args))
- response)
+ starttls-extra-args)))
(process-kill-without-query process)
(while (and process
(memq (process-status process) '(open run))
+2003-10-03 Jesper Harder <harder@ifa.au.dk>
+
+ * mm-decode.el (mm-file-name-delete-control)
+ (mm-file-name-delete-gotchas): New functions.
+ (mm-file-name-rewrite-functions): Use them.
+
+2003-10-02 Reiner Steib <Reiner.Steib@gmx.de>
+
+ * spam.el (spam-install-hooks-function): Added Autoload cookie.
+
+2003-10-02 Jesper Harder <harder@ifa.au.dk>
+
+ * pgg-def.el (pgg-default-keyserver-address): Change to
+ subkeys.pgp.net. From Michael Shields <shields@msrl.com>
+
2003-10-01 Simon Josefsson <jas@extundo.com>
* message.el (message-idna-to-ascii-rhs-1): RHS can be terminated
:type 'boolean
:group 'mime-display)
-(defvar mm-file-name-rewrite-functions nil
+(defvar mm-file-name-rewrite-functions
+ '(mm-file-name-delete-control mm-file-name-delete-gotchas)
"*List of functions used for rewriting file names of MIME parts.
Each function takes a file name as input and returns a file name.
Ready-made functions include
+`mm-file-name-delete-control'
+`mm-file-name-delete-gotchas'
`mm-file-name-delete-whitespace',
`mm-file-name-trim-whitespace',
`mm-file-name-collapse-whitespace',
(setq file-name (replace-match s t t file-name))))
file-name)
+(defun mm-file-name-delete-control (filename)
+ "Delete control characters from FILENAME."
+ (gnus-replace-in-string filename "[\x00-\x1f\x7f]" ""))
+
+(defun mm-file-name-delete-gotchas (filename)
+ "Delete shell gotchas from FILENAME."
+ (setq filename (gnus-replace-in-string filename "[<>|]" ""))
+ (gnus-replace-in-string filename "^[.-]*" ""))
+
(defun mm-save-part (handle)
"Write HANDLE to a file."
(let* ((name (mail-content-type-get (mm-handle-type handle) 'name))
\f
;;;; Hooks
+;;;###autoload
(defun spam-install-hooks-function ()
"Install the spam.el hooks"
(interactive)
+2003-10-03 Jesper Harder <harder@ifa.au.dk>
+
+ * emacs-mime.texi (Files and Directories): Update.
+
+2003-10-02 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * gnus.texi (Filtering Spam Using The Spam ELisp Package): added
+ spam-process-ham-in-spam-groups and
+ spam-process-ham-in-nonham-groups variable descriptions
+
2003-10-01 Jesper Harder <harder@ifa.au.dk>
* message.texi (Various Message Variables): Typo.
Ready-made functions include
@table @code
+@item mm-file-name-delete-control
+@findex mm-file-name-delete-control
+Delete all control characters.
+
+@item mm-file-name-delete-gotchas
+@findex mm-file-name-delete-gotchas
+Delete characters that could have unintended consequences when used
+with flawed shell scripts, i.e. @samp{|}, @samp{>} and @samp{<}; and
+@samp{-}, @samp{.} as the first character.
+
@item mm-file-name-delete-whitespace
@findex mm-file-name-delete-whitespace
Remove all whitespace.
Replace whitespace with underscores. Set the variable
@code{mm-file-name-replace-whitespace} to any other string if you do
not like underscores.
-
@end table
The standard Emacs functions @code{capitalize}, @code{downcase},
@emph{Ham} \e$B%0%k!<%W$rH4$1$k$H$-$K!"\e(Bham \e$B0u$,IU$$$F$$$k$9$Y$F$N5-;v\e(B
\e$B$O\e(B ham \e$B%W%m%;%C%5!<$KAw$i$l!"$=$l$i$r\e(B spam \e$B$G$O$J$$I8K\$H$7$F3X=,$7$^$9!#\e(B
+@vindex spam-process-ham-in-spam-groups
+\e$BJQ?t\e(B @code{spam-process-ham-in-spam-groups} \e$B$O%G%#%U%)%k%H$G\e(B
+\e$B$O\e(B @code{nil} \e$B$G$9!#\e(BSpam \e$B%0%k!<%W$G8+$D$+$C$?\e(B ham \e$B$,%W%m%;%C%5!<$KAw$i$l\e(B
+\e$B$k$h$&$K$7$?$$>l9g$O\e(B @code{t} \e$B$K$7$F2<$5$$!#DL>o$3$l$O9T$J$o$l$^$;$s!#$"\e(B
+\e$B$J$?$,<+J,$G\e(B ham \e$B5-;v$r\e(B ham \e$B%0%k!<%W$KAw$C$F!"$=$3$G=hM}$9$k$3$H$,4|BT$5\e(B
+\e$B$l$F$$$^$9!#\e(B
+
+@vindex spam-process-ham-in-nonham-groups
+\e$BJQ?t\e(B @code{spam-process-ham-in-nonham-groups} \e$B$O%G%#%U%)%k%H$G\e(B
+\e$B$O\e(B @code{nil} \e$B$G$9!#\e(BHam \e$B$G$O$J$$\e(B (spam \e$B$^$?$OL$J,N`$N\e(B) \e$B%0%k!<%W$G8+$D$+$C\e(B
+\e$B$?\e(B ham \e$B$,%W%m%;%C%5!<$KAw$i$l$k$h$&$K$7$?$$>l9g$O\e(B @code{t} \e$B$K$7$F2<$5$$!#\e(B
+\e$BDL>o$3$l$O9T$J$o$l$^$;$s!#$"$J$?$,<+J,$G\e(B ham \e$B5-;v$r\e(B ham \e$B%0%k!<%W$KAw$C$F!"\e(B
+\e$B$=$3$G=hM}$9$k$3$H$,4|BT$5$l$F$$$^$9!#\e(B
+
@vindex gnus-spam-process-destinations
@emph{Ham} \e$B$^$?$O\e(B @emph{\e$BL$J,N`\e(B} \e$B%0%k!<%W$rH4$1$k$H$-$K!"$9$Y$F\e(B
\e$B$N\e(B @strong{spam} \e$B5-;v$O!"\e(B@code{spam-process-destination} \e$B%0%k!<%W%Q%i%a!<\e(B
When you leave a @emph{ham} group, all ham-marked articles are sent to
a ham processor, which will study these as non-spam samples.
+@vindex spam-process-ham-in-spam-groups
+By default the variable @code{spam-process-ham-in-spam-groups} is
+nil. Set it to t if you want ham found in spam groups to be
+processed. Normally this is not done, you are expected instead to
+send your ham to a ham group and process it there.
+
+@vindex spam-process-ham-in-nonham-groups
+By default the variable @code{spam-process-ham-in-nonham-groups} is
+nil. Set it to t if you want ham found in non-ham (spam or
+unclassified) groups to be processed. Normally this is not done, you
+are expected instead to send your ham to a ham group and process it
+there.
+
@vindex gnus-spam-process-destinations
When you leave a @emph{ham} or @emph{unclassified} group, all
@strong{spam} articles are moved to a location determined by either