+2000-04-21 01:24:41 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * flow-fill.el: Renamed from fill-flowed.
+
+ * message.el (message-forward-ignored-headers): Default to
+ removing CTE.
+
+2000-04-21 00:48:48 <Kai.Grossjohann@CS.Uni-Dortmund.DE>
+
+ * message.el (message-mode): Don't fill headers.
+
+2000-04-20 23:12:43 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * message.el (message-pipe-buffer-body): Use shell
+
+2000-02-21 Yoshiki Hayashi <yoshiki@xemacs.org>
+
+ * nnvirtual.el (nnvirtual-request-article):
+ Bind gnus-override-method to nil.
+ (nnvirtual-request-update-mark): Don't update mark when
+ article is not there.
+
2000-04-20 16:35:41 Shenghuo ZHU <zsh@cs.rochester.edu>
* mm-uu.el (mm-uu-dissect): Check forwarded message.
2000-04-20 21:17:48 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * gnus-util.el (gnus-parse-netrc): Allow "port".
+ (gnus-netrc-machine): Take a port param.
+ (gnus-netrc-machine):
+
* gnus-art.el (gnus-request-article-this-buffer): Allow
re-selecting referenced articles.
+++ /dev/null
-;;; fill-flowed.el --- interprete RFC2646 "flowed" text
-;; Copyright (C) 2000 Free Software Foundation, Inc.
-
-;; Author: Simon Josefsson <jas@pdc.kth.se>
-;; Keywords: mail
-
-;; 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
-;; the Free Software Foundation; either version 2 of the License, or
-;; (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-;;; Commentary:
-
-;; This implement decoding of RFC2646 formatted text, including the
-;; quoted-depth wins rules.
-
-;; Theory of operation: search for lines ending with SPC, save quote
-;; length of line, remove SPC and concatenate line with the following
-;; line if quote length of following line matches current line.
-
-;; When no further concatenations are possible, we've found a
-;; paragraph and we let `fill-region' fill the long line into several
-;; lines with the quote prefix as `fill-prefix'.
-
-;; Todo: encoding
-
-;; History:
-
-;; 2000-02-17 posted on ding mailing list
-;; 2000-02-19 use `point-at-{b,e}ol' in XEmacs
-;; 2000-03-11 no compile warnings for point-at-bol stuff
-;; 2000-03-26 commited to gnus cvs
-
-;;; Code:
-
-(eval-and-compile
- (fset 'fill-flowed-point-at-bol
- (if (fboundp 'point-at-bol)
- 'point-at-bol
- 'line-beginning-position))
-
- (fset 'fill-flowed-point-at-eol
- (if (fboundp 'point-at-eol)
- 'point-at-eol
- 'line-end-position)))
-
-(defun fill-flowed (&optional buffer)
- (save-excursion
- (set-buffer (or (current-buffer) buffer))
- (goto-char (point-min))
- (while (re-search-forward " $" nil t)
- (when (save-excursion
- (beginning-of-line)
- (looking-at "^\\(>*\\)\\( ?\\)"))
- (let ((quote (match-string 1)))
- (if (string= quote "")
- (setq quote nil))
- (when (and quote (string= (match-string 2) ""))
- (save-excursion
- ;; insert SP after quote for pleasant reading of quoted lines
- (beginning-of-line)
- (when (> (skip-chars-forward ">") 0)
- (insert " "))))
- (while (and (save-excursion
- (backward-char 3)
- (looking-at "[^-][^-] "))
- (save-excursion
- (unless (eobp)
- (forward-char 1)
- (if quote
- (looking-at (format "^\\(%s\\)\\([^>]\\)" quote))
- (looking-at "^ ?")))))
- (save-excursion
- (replace-match (if (string= (match-string 2) " ")
- "" "\\2")))
- (backward-delete-char -1)
- (end-of-line))
- (let ((fill-prefix (when quote (concat quote " "))))
- (fill-region (fill-flowed-point-at-bol)
- (fill-flowed-point-at-eol)
- 'left 'nosqueeze)))))))
-
-(provide 'fill-flowed)
-
-;;; fill-flowed.el ends here
--- /dev/null
+;;; fill-flowed.el --- interprete RFC2646 "flowed" text
+;; Copyright (C) 2000 Free Software Foundation, Inc.
+
+;; Author: Simon Josefsson <jas@pdc.kth.se>
+;; Keywords: mail
+
+;; 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
+;; the Free Software Foundation; either version 2 of the License, or
+;; (at your option) any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, write to the Free Software
+;; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+;;; Commentary:
+
+;; This implement decoding of RFC2646 formatted text, including the
+;; quoted-depth wins rules.
+
+;; Theory of operation: search for lines ending with SPC, save quote
+;; length of line, remove SPC and concatenate line with the following
+;; line if quote length of following line matches current line.
+
+;; When no further concatenations are possible, we've found a
+;; paragraph and we let `fill-region' fill the long line into several
+;; lines with the quote prefix as `fill-prefix'.
+
+;; Todo: encoding
+
+;; History:
+
+;; 2000-02-17 posted on ding mailing list
+;; 2000-02-19 use `point-at-{b,e}ol' in XEmacs
+;; 2000-03-11 no compile warnings for point-at-bol stuff
+;; 2000-03-26 commited to gnus cvs
+
+;;; Code:
+
+(eval-and-compile
+ (fset 'fill-flowed-point-at-bol
+ (if (fboundp 'point-at-bol)
+ 'point-at-bol
+ 'line-beginning-position))
+
+ (fset 'fill-flowed-point-at-eol
+ (if (fboundp 'point-at-eol)
+ 'point-at-eol
+ 'line-end-position)))
+
+(defun fill-flowed (&optional buffer)
+ (save-excursion
+ (set-buffer (or (current-buffer) buffer))
+ (goto-char (point-min))
+ (while (re-search-forward " $" nil t)
+ (when (save-excursion
+ (beginning-of-line)
+ (looking-at "^\\(>*\\)\\( ?\\)"))
+ (let ((quote (match-string 1)))
+ (if (string= quote "")
+ (setq quote nil))
+ (when (and quote (string= (match-string 2) ""))
+ (save-excursion
+ ;; insert SP after quote for pleasant reading of quoted lines
+ (beginning-of-line)
+ (when (> (skip-chars-forward ">") 0)
+ (insert " "))))
+ (while (and (save-excursion
+ (backward-char 3)
+ (looking-at "[^-][^-] "))
+ (save-excursion
+ (unless (eobp)
+ (forward-char 1)
+ (if quote
+ (looking-at (format "^\\(%s\\)\\([^>]\\)" quote))
+ (looking-at "^ ?")))))
+ (save-excursion
+ (replace-match (if (string= (match-string 2) " ")
+ "" "\\2")))
+ (backward-delete-char -1)
+ (end-of-line))
+ (let ((fill-prefix (when quote (concat quote " "))))
+ (fill-region (fill-flowed-point-at-bol)
+ (fill-flowed-point-at-eol)
+ 'left 'nosqueeze)))))))
+
+(provide 'fill-flowed)
+
+;;; fill-flowed.el ends here
;; Function.
((gnus-functionp elem)
(funcall elem group))
- ;; Regexp-file cons
+ ;; Regexp-file cons.
((consp elem)
(when (string-match (gnus-globalify-regexp (car elem)) group)
- (replace-match (cadr elem) t nil group ))))))
+ (replace-match (cadr elem) t nil group))))))
(when found
(if (file-name-absolute-p found)
found
(when (file-exists-p file)
(with-temp-buffer
(let ((tokens '("machine" "default" "login"
- "password" "account" "macdef" "force"))
+ "password" "account" "macdef" "force"
+ "port"))
alist elem result pair)
(insert-file-contents file)
(goto-char (point-min))
(forward-line 1))
(nreverse result)))))
-(defun gnus-netrc-machine (list machine)
+(defun gnus-netrc-machine (list machine &optional port)
"Return the netrc values from LIST for MACHINE or for the default entry."
- (let ((rest list))
- (while (and list
- (not (equal (cdr (assoc "machine" (car list))) machine)))
+ (let ((rest list)
+ result)
+ (while list
+ (when (equal (cdr (assoc "machine" (car list))) machine)
+ (push (car list) result))
(pop list))
- (car (or list
- (progn (while (and rest (not (assoc "default" (car rest))))
- (pop rest))
- rest)))))
+ (unless result
+ ;; No machine name matches, so we look for default entries.
+ (while rest
+ (when (assoc "default" (car rest))
+ (push (car rest) result))
+ (pop rest)))
+ (setq result (nreverse result))
+ (if (null result)
+ nil
+ (while (and result
+ (not (equalp port (or (gnus-netrc-get result) "nntp"))))
+ (pop result))
+ result)))
(defun gnus-netrc-get (alist type)
"Return the value of token TYPE from ALIST."
:group 'message-interface
:type 'regexp)
-(defcustom message-forward-ignored-headers nil
+(defcustom message-forward-ignored-headers "Content-Transfer-Encoding"
"*All headers that match this regexp will be deleted when forwarding a message."
:group 'message-forwarding
:type '(choice (const :tag "None" nil)
(setq adaptive-fill-first-line-regexp
(concat "[ \t]*[-a-z0-9A-Z]*\\(>[ \t]*\\)+[ \t]*\\|"
adaptive-fill-first-line-regexp))
+ (make-local-variable 'auto-fill-inhibit-regexp)
+ (setq auto-fill-inhibit-regexp "^[A-Z][^: \n\t]+:")
(make-local-variable 'indent-tabs-mode) ;Turn off tabs for indentation.
(setq indent-tabs-mode nil)
(run-hooks 'text-mode-hook 'message-mode-hook))
(save-restriction
(when (message-goto-body)
(narrow-to-region (point) (point-max)))
- (let ((body (buffer-substring (point-min) (point-max))))
- (unless (equal 0 (call-process-region
- (point-min) (point-max) program t t))
- (insert body)
- (message "%s failed" program))))))
+ (shell-command-on-region
+ (point-min) (point-max) program nil t))))
(defun message-rename-buffer (&optional enter-string)
"Rename the *message* buffer to \"*message* RECIPIENT\".
If SEND-IF-FORCE, only send authinfo to the server if the
.authinfo file has the FORCE token."
(let* ((list (gnus-parse-netrc nntp-authinfo-file))
- (alist (gnus-netrc-machine list nntp-address))
+ (alist (gnus-netrc-machine list nntp-address "nntp"))
(force (gnus-netrc-get alist "force"))
(user (or (gnus-netrc-get alist "login") nntp-authinfo-user))
(passwd (gnus-netrc-get alist "password")))
@item
\e$(B$=$l$>$l$N9T$OG$0U$N?t$N\e(B \e$(B6h@Z$j0u\e(B/\e$(BCM\e(B \e$(B$NBP$r4^$`;v$,$G$-$^$9!#M-8z$J6h@Z\e(B
\e$(B$j0u$O\e(B @samp{machine}\e$(B!"\e(B@samp{login}\e$(B!"\e(B@samp{password}\e$(B!"\e(B@samp{default}\e$(B!"\e(B
-@samp{force} \e$(B$G$9!#\e(B(\e$(B:G8e$N$b$N$OM-8z$J\e(B @code{.netrc}/@code{ftp} \e$(B$N6h@Z$j\e(B
-\e$(B0u$G$O$"$j$^$;$s!#$3$l$,%U%!%$%k\e(B @file{.authinfo} \e$(B$,\e(B @file{.netrc} \e$(B%U%!\e(B
-\e$(B%$%kMM<0$+$i0o$l$kM#0l$NJ}K!$G$9!#\e(B)
+@samp{port}\e$(B!"\e(B@samp{force} \e$(B$G$9!#\e(B
+(\e$(B:G8e$N$b$N$OM-8z$J\e(B @code{.netrc}/@code{ftp} \e$(B$N6h@Z$j0u$G$O$"$j$^$;$s!#\e(B
+\e$(B$3$l$,%U%!%$%k\e(B @file{.authinfo} \e$(B$,\e(B @file{.netrc} \e$(B%U%!%$%kMM<0$+$i0o$l$k\e(B
+\e$(B$[$H$s$IM#0l$NJ}K!$G$9!#\e(B)
@end enumerate
turn into a [-] button.)
@item
+Perhaps there should be a command to "attach" a buffer of comments to
+a message? That is, `B WHATEVER', you're popped into a buffer, write
+something, end with `C-c C-c', and then the thing you've written gets
+to be the child of the message you're commenting.
+
+@item
Solve the halting problem.
@c TODO
@item
Each line may contain an arbitrary number of token/value pairs. The
valid tokens include @samp{machine}, @samp{login}, @samp{password},
-@samp{default} and @samp{force}. (The latter is not a valid
-@file{.netrc}/@code{ftp} token, which is the only way the
+@samp{default}, @samp{port} and @samp{force}. (The latter is not a
+valid @file{.netrc}/@code{ftp} token, which is almost the only way the
@file{.authinfo} file format deviates from the @file{.netrc} file
format.)
turn into a [-] button.)
@item
+Perhaps there should be a command to "attach" a buffer of comments to
+a message? That is, `B WHATEVER', you're popped into a buffer, write
+something, end with `C-c C-c', and then the thing you've written gets
+to be the child of the message you're commenting.
+
+@item
Solve the halting problem.
@c TODO