(insert header)
(canlock-verify))))
(or canlock-ignore-errors
- (error "Folder buffer has been killed."))))
+ (error "Folder buffer has been killed"))))
;;;###autoload
(defun cmail-summary-canlock-verify ()
;; Keywords: crypto
;; Created: 2000-04-28
-;; $Id: gpg-ring.el,v 1.1.4.1 2000-12-21 11:16:03 yamaoka Exp $
+;; $Id: gpg-ring.el,v 1.1.4.2 2001-07-15 23:22:50 yamaoka Exp $
;; This file is NOT (yet?) part of GNU Emacs.
\f
-;;;; Code:
+;;; Code:
(require 'gpg)
-(eval-when-compile
- (require 'cl))
+(eval-when-compile (require 'cl))
;;;; Customization:
(provide 'gpg-ring)
-;;; gpg-ring.el ends here
\ No newline at end of file
+;;; gpg-ring.el ends here
;; function (bound to `C-h l' by default).
\f
-;;;; Code:
+;;; Code:
(require 'timer)
-(eval-when-compile
- (require 'cl))
+(eval-when-compile (require 'cl))
(eval-and-compile
(defalias 'gpg-point-at-eol
;; temporary file resides in a world-writable directory.
(unless (or (memq system-type '(windows-nt cygwin32 win32 w32 mswindows))
(eq (file-modes gpg-temp-directory) 448)) ; mode 0700
- (error "Directory for temporary files (%s) must have mode 0700." gpg-temp-directory))
+ (error "Directory for temporary files (%s) must have mode 0700" gpg-temp-directory))
(setq name (make-temp-name name))
(let ((mode (default-file-modes)))
(unwind-protect
(save-window-excursion
(display-buffer (current-buffer))
(unless (y-or-n-p "Continue? ")
- (error "GnuPG operation aborted."))))))
+ (error "GnuPG operation aborted"))))))
(defmacro gpg-show-result (always-show &rest body)
"Show GnuPG result to user for confirmation.
;; These notices must be retained in any copies of any part of this
;; documentation and/or software.
-;;; Code: ---------------------------------------------------------------------
+;;; Code:
(defvar md5-program "md5sum"
"*Program that reads a message on its standard input and writes an
;;; ssl.el,v --- ssl functions for emacsen without them builtin
-;; Author: $Author: yamaoka $
-;; Created: $Date: 2001-03-16 00:14:21 $
-;; Version: $Revision: 1.1.2.1 $
+;; Author: #Author: zsh #
+;; Created: #Date: 2001/07/13 19:31:09 #
+;; Version: #Revision: 1.2 #
;; Keywords: comm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Boston, MA 02111-1307, USA.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(require 'cl)
+(eval-when-compile (require 'cl))
(require 'base64)
(eval-and-compile
-;; @(#) xml.el --- XML parser
+;;; xml.el --- XML parser
;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+2001-07-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
+
+ * gnus-art.el,...: Error convention changes.
+
+2001-07-13 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-sum.el (gnus-rebuild-thread): Count hidden lines too.
+
+2001-07-13 20:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * nnrss.el (nnrss-read-group-data): Nuke emacs-lisp-mode-hook.
+ (nnrss-read-server-data): Ditto.
+
+2001-07-13 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-setup.el (gnus-use-installed-gnus): Typo.
+ * Cleanup files.
+ From Pavel@Janik.cz (Pavel Jan\e,Bm\e(Bk).
+
+2001-07-13 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.el (gnus-summary-line-format): Add %o.
+
+ * gnus-sum.el (gnus-summary-pipe-output): Don't configure as pipe
+ unless shell outputs something.
+
+2001-07-13 07:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-art.el (gnus-boring-article-headers): Better doc.
+ (article-hide-headers): Better regexp.
+ Suggested by Matt Swift <swift@alum.mit.edu>.
+
+ * nnheader.el (nnheader-max-head-length): Better doc.
+ (nnheader-header-value): Skip spaces.
+ (nnheader-parse-head): Remove space.
+ Suggested by Matt Swift <swift@alum.mit.edu>.
+
+ * gnus-sum.el (gnus-summary-show-raw-article): New function.
+ (gnus-get-newsgroup-headers): Remove space.
+
+2001-07-12 23:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-msg.el (gnus-msg-treat-broken-reply-to): Add force.
+ (gnus-summary-reply): Use it.
+ (gnus-summary-reply-broken-reply-to): New.
+ (gnus-msg-force-broken-reply-to): New.
+
+ * mm-view.el (mm-inline-text): Showing as text/plain when error.
+
+2001-07-12 21:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus-draft.el (gnus-draft-setup): Restore gnus-newsgroup-name.
+
2001-07-12 15:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
* mm-decode.el (mm-external-terminal-program): New variable.
-;;; binhex.el -- elisp native binhex decode
+;;; binhex.el --- elisp native binhex decode
;; Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;; Todo: encoding, implement basic `fill-region' (Emacs and XEmacs
;; implementations differ..)
-;; History:
+;;; History:
;; 2000-02-17 posted on ding mailing list
;; 2000-02-19 use `point-at-{b,e}ol' in XEmacs
(error
(unless (funcall gnus-agent-confirmation-function
(format "Error (%s). Continue? " err))
- (error "Cannot fetch articles into the Gnus agent.")))
+ (error "Cannot fetch articles into the Gnus agent")))
(quit
(unless (funcall gnus-agent-confirmation-function
(format "Quit fetching session (%s). Continue? "
err))
- (signal 'quit "Cannot fetch articles into the Gnus agent."))))
+ (signal 'quit "Cannot fetch articles into the Gnus agent"))))
(pop methods))
(gnus-message 6 "Finished fetching articles into the Gnus agent"))))
(defcustom gnus-boring-article-headers '(empty followup-to reply-to)
"Headers that are only to be displayed if they have interesting data.
-Possible values in this list are `empty', `newsgroups', `followup-to',
-`to-address', `reply-to', `date', `long-to', and `many-to'."
+Possible values in this list are:
+
+ 'empty Headers with no content.
+ 'newsgroups Newsgroup identical to Gnus group.
+ 'to-address To identical to To-address.
+ 'followup-to Followup-to identical to Newsgroups.
+ 'reply-to Reply-to identical to From.
+ 'date Date less than four days old.
+ 'long-to To and/or Cc longer than 1024 characters.
+ 'many-to Multiple To and/or Cc."
:type '(set (const :tag "Headers with no content." empty)
- (const :tag "Newsgroups with only one group." newsgroups)
- (const :tag "To identical to to-address." to-address)
- (const :tag "Followup-to identical to newsgroups." followup-to)
- (const :tag "Reply-to identical to from." reply-to)
+ (const :tag "Newsgroups identical to Gnus group." newsgroups)
+ (const :tag "To identical to To-address." to-address)
+ (const :tag "Followup-to identical to Newsgroups." followup-to)
+ (const :tag "Reply-to identical to From." reply-to)
(const :tag "Date less than four days old." date)
- (const :tag "Very long To and/or Cc header." long-to)
+ (const :tag "To and/or Cc longer than 1024 characters." long-to)
(const :tag "Multiple To and/or Cc headers." many-to))
:group 'gnus-article-hiding)
;; `gnus-ignored-headers' and `gnus-visible-headers' to
;; select which header lines is to remain visible in the
;; article buffer.
- (while (re-search-forward "^[^ \t]*:" nil t)
+ (while (re-search-forward "^[^ \t:]*:" nil t)
(beginning-of-line)
;; Mark the rank of the header.
(put-text-property
(when (string-equal command "")
(if gnus-last-shell-command
(setq command gnus-last-shell-command)
- (error "A command is required.")))
+ (error "A command is required")))
(gnus-eval-in-buffer-window gnus-article-buffer
(save-restriction
(widen)
(let* ((data (get-text-property (point) 'gnus-data))
file param)
(if (mm-multiple-handles gnus-article-mime-handles)
- (error "This function is not implemented."))
+ (error "This function is not implemented"))
(setq file (and data (mm-save-part data)))
(when file
(with-current-buffer (mm-handle-buffer data)
(unless func
(error (format "Can't find the encrypt protocol %s" protocol)))
(if (equal gnus-newsgroup-name "nndraft:drafts")
- (error "Can't encrypt the article in group nndraft:drafts."))
+ (error "Can't encrypt the article in group nndraft:drafts"))
(if (equal gnus-newsgroup-name "nndraft:queue")
- (error "Don't encrypt the article in group nndraft:queue."))
+ (error "Don't encrypt the article in group nndraft:queue"))
(gnus-summary-iterate n
(save-excursion
(set-buffer gnus-summary-buffer)
This can be changed using the `\\[gnus-score-change-score-file]' command."
(interactive (list gnus-current-score-file))
(unless file
- (error (format "No score file for %s."
+ (error (format "No score file for %s"
(gnus-group-decoded-name gnus-newsgroup-name))))
(let ((scores (gnus-score-load file))
(types (mapcar (lambda (entry)
(defun gnus-draft-edit-message ()
"Enter a mail/post buffer to edit and send the draft."
(interactive)
- (let ((article (gnus-summary-article-number)))
+ (let ((article (gnus-summary-article-number))
+ (group gnus-newsgroup-name))
(gnus-summary-mark-as-read article gnus-canceled-mark)
- (gnus-draft-setup-for-editing article gnus-newsgroup-name)
+ (gnus-draft-setup-for-editing article group)
(set-buffer-modified-p t)
(save-excursion
(save-restriction
(message-remove-header "date")))
(message-save-drafts)
(let ((gnus-verbose-backends nil))
- (gnus-request-expire-articles (list article) gnus-newsgroup-name t))
+ (gnus-request-expire-articles (list article) group t))
(push
`((lambda ()
(when (gnus-buffer-exists-p ,gnus-summary-buffer)
(gnus-backlog-remove-article group narticle)
(when (and ga
(ignore-errors (setq ga (car (read-from-string ga)))))
+ (setq gnus-newsgroup-name
+ (if (equal (car ga) "") nil (car ga)))
(setq message-post-method
`(lambda (arg)
(gnus-post-method arg ,(car ga))))
;; the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.
+;;; Commentary:
+
+;;; Code:
+
(eval-when-compile (require 'cl))
(require 'gnus)
(require 'gnus-sum)
split))
(provide 'gnus-mlspl)
+
+;;; gnus-mlspl.el ends here
(defvar gnus-last-posting-server nil)
(defvar gnus-message-group-art nil)
+(defvar gnus-msg-force-broken-reply-to nil)
+
(defconst gnus-bug-message
(format "Sending a bug report to the Gnus Towers.
========================================
"m" gnus-summary-mail-other-window
"u" gnus-uu-post-news
"\M-c" gnus-summary-mail-crosspost-complaint
+ "Br" gnus-summary-reply-broken-reply-to
+ "BR" gnus-summary-reply-broken-reply-to-with-original
"om" gnus-summary-mail-forward
"op" gnus-summary-post-forward
"Om" gnus-summary-digest-mail-forward
(when yank
(gnus-inews-yank-articles yank))))))
-(defun gnus-msg-treat-broken-reply-to ()
+(defun gnus-msg-treat-broken-reply-to (&optional force)
"Remove the Reply-to header iff broken-reply-to."
- (when (gnus-group-find-parameter
- gnus-newsgroup-name 'broken-reply-to)
+ (when (or force
+ (gnus-group-find-parameter
+ gnus-newsgroup-name 'broken-reply-to))
(save-restriction
(message-narrow-to-head)
(message-remove-header "reply-to"))))
(message-narrow-to-head)
(setq headers (concat headers (buffer-string)))))))
(set-buffer (gnus-copy-article-buffer))
- (gnus-msg-treat-broken-reply-to)
+ (gnus-msg-treat-broken-reply-to gnus-msg-force-broken-reply-to)
(save-restriction
(message-narrow-to-head)
(when very-wide
(interactive "P")
(gnus-summary-reply (gnus-summary-work-articles n) wide))
+(defun gnus-summary-reply-broken-reply-to (&optional yank wide very-wide)
+ "Like `gnus-summary-reply' except removing reply-to field.
+If prefix argument YANK is non-nil, the original article is yanked
+automatically.
+If WIDE, make a wide reply.
+If VERY-WIDE, make a very wide reply."
+ (interactive
+ (list (and current-prefix-arg
+ (gnus-summary-work-articles 1))))
+ (let ((gnus-msg-force-broken-reply-to t))
+ (gnus-summary-reply yank wide very-wide)))
+
+(defun gnus-summary-reply-broken-reply-to-with-original (n &optional wide)
+ "Like `gnus-summary-reply-with-original' except removing reply-to field.
+The original article will be yanked."
+ (interactive "P")
+ (gnus-summary-reply-broken-reply-to (gnus-summary-work-articles n) wide))
+
(defun gnus-summary-wide-reply (&optional yank)
"Start composing a wide reply mail to the current message.
If prefix argument YANK is non-nil, the original article is yanked
(eval-when-compile (require 'cl))
(defvar gnus-use-installed-gnus t
- "*If non-nil Use installed version of Gnus.")
+ "*If non-nil use installed version of Gnus.")
(defvar gnus-use-installed-mailcrypt (featurep 'xemacs)
"*If non-nil use installed version of mailcrypt.")
["Fetch current thread" gnus-summary-refer-thread t]
["Fetch article with id..." gnus-summary-refer-article t]
["Setup Mailing List Params" gnus-mailing-list-insinuate t]
- ["Redisplay" gnus-summary-show-article t])))
+ ["Redisplay" gnus-summary-show-article t]
+ ["Raw article" gnus-summary-show-raw-article t])))
(easy-menu-define
gnus-summary-article-menu gnus-summary-mode-map ""
(cons "Article" innards))
(setq thread (gnus-remove-thread id)))
(setq old-pos (gnus-point-at-bol))
(setq current (save-excursion
- (and (zerop (forward-line -1))
+ (and (re-search-backward "[\r\n]" nil t)
(gnus-summary-article-number))))
;; If this is a gathered thread, we have to go some re-gathering.
(when (stringp (car thread))
;; Subject.
(progn
(goto-char p)
- (if (search-forward "\nsubject: " nil t)
+ (if (search-forward "\nsubject:" nil t)
(nnheader-header-value)
"(none)"))
;; From.
(progn
(goto-char p)
- (if (or (search-forward "\nfrom: " nil t)
- (search-forward "\nfrom:" nil t))
+ (if (search-forward "\nfrom:" nil t)
(nnheader-header-value)
"(nobody)"))
;; Date.
(progn
(goto-char p)
- (if (search-forward "\ndate: " nil t)
- (nnheader-header-value)
- ""))
+ (if (search-forward "\ndate:" nil t)
+ (nnheader-header-value) ""))
;; Message-ID.
(progn
(goto-char p)
;; References.
(progn
(goto-char p)
- (if (search-forward "\nreferences: " nil t)
+ (if (search-forward "\nreferences:" nil t)
(progn
(setq end (point))
(prog1
;; Get the references from the in-reply-to header if there
;; were no references and the in-reply-to header looks
;; promising.
- (if (and (search-forward "\nin-reply-to: " nil t)
+ (if (and (search-forward "\nin-reply-to:" nil t)
(setq in-reply-to (nnheader-header-value))
(string-match "<[^>]+>" in-reply-to))
(let (ref2)
;; Xref.
(progn
(goto-char p)
- (and (search-forward "\nxref: " nil t)
+ (and (search-forward "\nxref:" nil t)
(nnheader-header-value)))
;; Extra.
(when gnus-extra-headers
(while extra
(goto-char p)
(when (search-forward
- (concat "\n" (symbol-name (car extra)) ": ") nil t)
+ (concat "\n" (symbol-name (car extra)) ":") nil t)
(push (cons (car extra) (nnheader-header-value)) out))
(pop extra))
out))))
(gnus-summary-goto-subject gnus-current-article)
(gnus-summary-position-point))
+(defun gnus-summary-show-raw-article ()
+ "Show the raw article without any article massaging functions being run."
+ (interactive)
+ (gnus-summary-show-article t))
+
(defun gnus-summary-verbose-headers (&optional arg)
"Toggle permanent full header display.
If ARG is a positive number, turn header display on.
(require 'gnus-art)
(let ((gnus-default-article-saver 'gnus-summary-save-in-pipe))
(gnus-summary-save-article arg t))
- (gnus-configure-windows 'pipe))
+ (let ((buffer (get-buffer "*Shell Command Output*")))
+ (if (and buffer
+ (with-current-buffer buffer (> (point-max) (point-min))))
+ (gnus-configure-windows 'pipe))))
(defun gnus-summary-save-article-mail (&optional arg)
"Append the current article to an mail file.
(provide 'gnus-uu)
-;; gnus-uu.el ends here
+;;; gnus-uu.el ends here
%x Contents of the Xref: header (string)
%D Date of the article (string)
%d Date of the article (string) in DD-MMM format
+%o Date of the article (string) in YYYYMMDD`T'HHMMSS format
%M Message-id of the article (string)
%r References of the article (string)
%c Number of characters in the article (integer)
(error
(unless (yes-or-no-p
(format "Mail source error (%s). Continue? " err))
- (error "Cannot get new mail."))
+ (error "Cannot get new mail"))
0))))))))
(defun mail-source-make-complex-temp-name (prefix)
This only works when `display-time' is enabled."
(interactive "P")
(if (not mail-source-primary-source)
- (error "Need to set `mail-source-primary-source' to check for new mail."))
+ (error "Need to set `mail-source-primary-source' to check for new mail"))
(let ((on (if (null arg)
(not mail-source-report-new-mail)
(> (prefix-numeric-value arg) 0))))
(format
"Already sent message via %s; resend? "
(car elem)))
- (error "Denied posting -- multiple copies.")))
+ (error "Denied posting -- multiple copies")))
(setq success (funcall (caddr elem) arg)))
(setq sent t)))))
(unless (or sent (not success))
(provide 'mm-bodies)
-;; mm-bodies.el ends here
+;;; mm-bodies.el ends here
;;; Code:
-(eval-when-compile
- (require 'cl))
+(eval-when-compile (require 'cl))
(require 'mm-util)
(require 'mm-decode)
(let ((name (cdr (assq 'name (cdr (mm-handle-type handle)))))
(coding-system-for-read mm-binary-coding-system))
(unless name
- (error "The filename is not specified."))
+ (error "The filename is not specified"))
(mm-disable-multibyte-mule4)
(if (file-exists-p name)
(mm-insert-file-contents name nil nil nil nil t)
- (error (format "File %s is gone." name)))))
+ (error (format "File %s is gone" name)))))
(defun mm-extern-url (handle)
(erase-buffer)
(name buffer-file-name)
(coding-system-for-read mm-binary-coding-system))
(unless url
- (error "URL is not specified."))
+ (error "URL is not specified"))
(mm-with-unibyte-current-buffer-mule4
(url-insert-file-contents url))
(mm-disable-multibyte-mule4)
"@" site ":" directory "/" name))
(coding-system-for-read mm-binary-coding-system))
(unless name
- (error "The filename is not specified."))
+ (error "The filename is not specified"))
(mm-disable-multibyte-mule4)
(mm-insert-file-contents path nil nil nil nil t)))
(func (cdr (assq (intern
(downcase
(or access-type
- (error "Couldn't find access type."))))
+ (error "Couldn't find access type"))))
mm-extern-function-alist)))
gnus-displaying-mime buf
handles)
(unless (mm-handle-cache handle)
(unless func
- (error (format "Access type (%s) is not supported." access-type)))
+ (error (format "Access type (%s) is not supported" access-type)))
(with-temp-buffer
(mm-insert-part handle)
(goto-char (point-max))
(setq handles (mm-dissect-buffer t)))
(unless (bufferp (car handles))
(mm-destroy-parts handles)
- (error "Multipart external body is not supported."))
+ (error "Multipart external body is not supported"))
(save-excursion ;; single part
(set-buffer (setq buf (mm-handle-buffer handles)))
(let (good)
(error nil))
(delete-region ,(point-min-marker) ,(point-max-marker))))))))))
-;; mm-extern.el ends here
+;;; mm-extern.el ends here
;;; Code:
-(eval-when-compile
- (require 'cl))
+(eval-when-compile (require 'cl))
(require 'gnus-sum)
(require 'mm-util)
gnus-displaying-mime handles buffer)
(unless (mm-handle-cache handle)
(unless id
- (error "Can not find message/partial id."))
+ (error "Can not find message/partial id"))
(setq phandles
(sort (cons handle
(mm-partial-find-parts
(if ntotal
(if total
(unless (eq total ntotal)
- (error "The numbers of total are different."))
+ (error "The numbers of total are different"))
(setq total ntotal)))
(unless (< nn n)
(unless (eq nn n)
(error nil))
(delete-region ,(point-min-marker) ,(point-max-marker))))))))))
-;; mm-partial.el ends here
+;;; mm-partial.el ends here
(defun mm-mime-charset (charset)
"Return the MIME charset corresponding to the MULE CHARSET."
(if (eq charset 'unknown)
- (error "The message contains non-printable characters, please use attachment."))
+ (error "The message contains non-printable characters, please use attachment"))
(if (and (fboundp 'coding-system-get) (fboundp 'get-charset-property))
;; This exists in Emacs 20.
(or
-;;; mm-uu.el -- Return uu stuff as mm handles
+;;; mm-uu.el --- Return uu stuff as mm handles
;; Copyright (c) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
;; Author: Shenghuo Zhu <zsh@cs.rochester.edu>
;;; Commentary:
-
;;; Code:
(eval-when-compile (require 'cl))
(condition-case var
(w3-region (point-min) (point-max))
(error
+ (delete-region (point-min) (point-max))
+ (let ((b (point))
+ (charset (mail-content-type-get
+ (mm-handle-type handle) 'charset)))
+ (if (or (eq charset 'gnus-decoded)
+ (eq mail-parse-charset 'gnus-decoded))
+ (save-restriction
+ (narrow-to-region (point) (point))
+ (mm-insert-part handle)
+ (goto-char (point-max)))
+ (insert (mm-decode-string (mm-get-part handle)
+ charset))))
(message
"Error while rendering html; showing as text/plain"))))))
(mm-handle-set-undisplayer
(provide 'mm-view)
-;; mm-view.el ends here
+;;; mm-view.el ends here
(goto-char (match-end 0))
(apply 'mml-insert-tag 'part (cons (if sign 'sign 'encrypt)
(cons method tags))))
- (t (error "The message is corrupted. No mail header separator."))))))
+ (t (error "The message is corrupted. No mail header separator"))))))
(defun mml-secure-sign-pgpmime ()
"Add MML tags to PGP/MIME sign this MML part."
hash point)
(goto-char (point-min))
(unless (re-search-forward "^-----BEGIN PGP SIGNED MESSAGE-----\r?$" nil t)
- (error "Cannot find signed begin line." ))
+ (error "Cannot find signed begin line"))
(goto-char (match-beginning 0))
(forward-line 1)
(unless (looking-at "Hash:[ \t]*\\([a-zA-Z0-9]+\\)")
- (error "Cannot not find PGP hash." ))
+ (error "Cannot not find PGP hash"))
(setq hash (match-string 1))
(unless (re-search-forward "^$" nil t)
- (error "Cannot not find PGP message." ))
+ (error "Cannot not find PGP message"))
(forward-line 1)
(delete-region (point-min) (point))
(insert (format "Content-Type: multipart/signed; boundary=\"%s\";\n"
(setq point (point))
(goto-char (point-max))
(unless (re-search-backward "^-----END PGP SIGNATURE-----\r?$" nil t)
- (error "Cannot find signature part." ))
+ (error "Cannot find signature part"))
(replace-match "-----END PGP MESSAGE-----" t t)
(goto-char (match-beginning 0))
(unless (re-search-backward "^-----BEGIN PGP SIGNATURE-----\r?$"
nil t)
- (error "Cannot find signature part." ))
+ (error "Cannot find signature part"))
(replace-match "-----BEGIN PGP MESSAGE-----" t t)
(goto-char (match-beginning 0))
(save-restriction
(message-options-get 'message-sender))))
(goto-char (point-min))
(unless (looking-at "-----BEGIN PGP MESSAGE-----")
- (error "Fail to encrypt the message."))
+ (error "Fail to encrypt the message"))
(let ((boundary
(funcall mml-boundary-function (incf mml-multipart-number))))
(insert (format "Content-Type: multipart/encrypted; boundary=\"%s\";\n"
t t) ; armor & textmode
(unless (> (point-max) (point-min))
(pop-to-buffer mml2015-result-buffer)
- (error "Sign error.")))
+ (error "Sign error")))
(goto-char (point-min))
(while (re-search-forward "\r+$" nil t)
(replace-match "" t t))
t t) ; armor & textmode
(unless (> (point-max) (point-min))
(pop-to-buffer mml2015-result-buffer)
- (error "Encrypt error.")))
+ (error "Encrypt error")))
(goto-char (point-min))
(while (re-search-forward "\r+$" nil t)
(replace-match "" t t))
(let ((func (nth 2 (assq mml2015-use mml2015-function-alist))))
(if func
(funcall func cont)
- (error "Cannot find encrypt function."))))
+ (error "Cannot find encrypt function"))))
;;;###autoload
(defun mml2015-sign (cont)
(let ((func (nth 1 (assq mml2015-use mml2015-function-alist))))
(if func
(funcall func cont)
- (error "Cannot find sign function."))))
+ (error "Cannot find sign function"))))
;;;###autoload
(defun mml2015-self-encrypt ()
(nntp))
(provide 'nndb)
+
+;;; nndb.el ends here
(autoload 'gnus-sorted-complement "gnus-range"))
(defvar nnheader-max-head-length 4096
- "*Max length of the head of articles.")
+ "*Max length of the head of articles.
+
+Value is an integer, nil, or t. Nil means read in chunks of a file
+indefinitely until a complete head is found\; t means always read the
+entire file immediately, disregarding `nnheader-head-chop-length'.
+
+Integer values will in effect be rounded up to the nearest multiple of
+`nnheader-head-chop-length'.")
(defvar nnheader-head-chop-length 2048
"*Length of each read operation when trying to fetch HEAD headers.")
(defsubst nnheader-header-value ()
(let ((pt (point)))
- (prog1
+ (prog2
+ (skip-chars-forward " \t")
(buffer-substring (match-end 0) (std11-field-end))
(goto-char pt))))
;; Subject.
(progn
(goto-char p)
- (if (search-forward "\nsubject: " nil t)
+ (if (search-forward "\nsubject:" nil t)
(nnheader-header-value) "(none)"))
;; From.
(progn
(goto-char p)
- (if (or (search-forward "\nfrom: " nil t)
- (search-forward "\nfrom:" nil t))
+ (if (search-forward "\nfrom:" nil t)
(nnheader-header-value) "(nobody)"))
;; Date.
(progn
(goto-char p)
- (if (search-forward "\ndate: " nil t)
+ (if (search-forward "\ndate:" nil t)
(nnheader-header-value) ""))
;; Message-ID.
(progn
;; References.
(progn
(goto-char p)
- (if (search-forward "\nreferences: " nil t)
+ (if (search-forward "\nreferences:" nil t)
(nnheader-header-value)
;; Get the references from the in-reply-to header if there
;; were no references and the in-reply-to header looks
;; promising.
- (if (and (search-forward "\nin-reply-to: " nil t)
+ (if (and (search-forward "\nin-reply-to:" nil t)
(setq in-reply-to (nnheader-header-value))
(string-match "<[^\n>]+>" in-reply-to))
(let (ref2)
;; Xref.
(progn
(goto-char p)
- (and (search-forward "\nxref: " nil t)
+ (and (search-forward "\nxref:" nil t)
(nnheader-header-value)))
;; Extra.
(while extra
(goto-char p)
(when (search-forward
- (concat "\n" (symbol-name (car extra)) ": ") nil t)
+ (concat "\n" (symbol-name (car extra)) ":") nil t)
(push (cons (car extra) (nnheader-header-value))
out))
(pop extra))
"nnimap: Group %s is not uidvalid. Continue? " group)))
imap-current-mailbox
(imap-mailbox-unselect)
- (error "nnimap: Group %s is not uid-valid." group))
+ (error "nnimap: Group %s is not uid-valid" group))
(nnheader-report 'nnimap (imap-error-text)))))))
(defun nnimap-replace-whitespace (string)
nnrss-directory)))
(when (file-exists-p file)
(with-temp-buffer
- (let ((coding-system-for-read 'binary))
- (insert-file-contents file))
- (emacs-lisp-mode)
- (goto-char (point-min))
- (eval-buffer)))))
+ (let ((coding-system-for-read 'binary)
+ emacs-lisp-mode-hook)
+ (insert-file-contents file)
+ (emacs-lisp-mode)
+ (goto-char (point-min))
+ (eval-buffer))))))
(defun nnrss-save-server-data (server)
(gnus-make-directory nnrss-directory)
nnrss-directory)))
(when (file-exists-p file)
(with-temp-buffer
- (let ((coding-system-for-read 'binary))
- (insert-file-contents file))
- (emacs-lisp-mode)
- (goto-char (point-min))
- (eval-buffer))
+ (let ((coding-system-for-read 'binary)
+ emacs-lisp-mode-hook)
+ (insert-file-contents file)
+ (emacs-lisp-mode)
+ (goto-char (point-min))
+ (eval-buffer)))
(dolist (e nnrss-group-data)
(gnus-sethash (nth 2 e) e nnrss-group-hashtb)
(if (and (car e) (> nnrss-group-min (car e)))
((equal 'pass pop3-authentication-scheme)
(pop3-user process pop3-maildrop)
(pop3-pass process))
- (t (error "Invalid POP3 authentication scheme.")))
+ (t (error "Invalid POP3 authentication scheme")))
(setq message-count (car (pop3-stat process)))
(pop3-quit process)
message-count))
(pop3-send-command process (format "USER %s" user))
(let ((response (pop3-read-response process t)))
(if (not (and response (string-match "+OK" response)))
- (error (format "USER %s not valid." user)))))
+ (error (format "USER %s not valid" user)))))
(defun pop3-pass (process)
"Send authentication information to the server."
(y-or-n-p
"Some texts are not encoded. Encode anyway?")))
(rfc2047-encode-region (point-min) (point-max))
- (error "Cannot send unencoded text."))))
+ (error "Cannot send unencoded text"))))
((mm-coding-system-p method)
(if (and (featurep 'mule)
(if (boundp 'default-enable-multibyte-characters)
;;; 1999-10-23 included in pgnus
;;; 2000-08-15 `rfc2104-hexstring-to-bitstring'
;;; 2000-05-12 added sha-1 example, added test case reference
+
+;;; Code:
(eval-when-compile (require 'cl))
;; The smilies were drawn by Joe Reiss <jreiss@vt.edu>.
+;;; Code:
+
(eval-when-compile (require 'cl))
(require 'custom)
"Toggle smiley at given point.
Note -- this function hasn't been implemented yet."
(interactive "e")
- (error "This function hasn't been implemented yet.")
-)
+ (error "This function hasn't been implemented yet"))
(defun smiley-toggle-extents (e)
(interactive "e")
;; FIXME::
(defun smiley-toggle-extents-ems (e)
(interactive "e")
- (error "This function hasn't been implemented yet.")
-)
+ (error "This function hasn't been implemented yet"))
;;;###autoload
(defun smiley-buffer (&optional buffer st nd)
(if smime-CA-directory
(list "-CApath"
(expand-file-name smime-CA-directory))))))
- (unless CAs (error "No CA configured."))
+ (unless CAs (error "No CA configured"))
(with-current-buffer buffer
(erase-buffer))
(if (apply 'smime-call-openssl-region b e buffer "smime" "-verify"
+2001-07-13 12:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (RSS): Add.
+ From Christoph Conrad <cc@cli.de>.
+
+2001-07-13 08:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Incorporating Old Mail): Add index.
+
+2001-07-13 00:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
+
+ * gnus.texi (Group Parameters): Add.
+
2001-07-04 Simon Josefsson <jas@extundo.com>
* gnus.texi (IMAP): Add.
\e$B%9$rDs6!$7$^$9\e(B)\e$B!#%H%T%C%/%Q%i%a!<%?$K$D$$$FFI$s$G$_$k$3$H$bLLGr$$$G$7$g\e(B
\e$B$&\e(B (@pxref{Topic Parameters})\e$B!#\e(B
+\e$B%0%k!<%W%Q%i%a!<%?$O\e(B @code{gnus-parameters} \e$B$K@_Dj$9$k$3$H$b$G$-$^$9!#$G\e(B
+\e$B$b$$$/$D$+$N%Q%i%a!<%?!"Nc$($P\e(B @code{visible} \e$B$O8zNO$rH/4x$7$^$;$s!#Nc$G\e(B
+\e$B$9!#\e(B
+
+@example
+(setq gnus-parameters
+ '(("mail\\..*" (gnus-show-threads nil)
+ (gnus-use-scoring nil)
+ (gnus-summary-line-format
+ "%U%R%z%I%(%[%d:%ub%-20,20f%]%) %s\n")
+ (gcc-self . t)
+ (display . all))
+ ("mail\\.me" (gnus-use-scoring t))
+ ("list\\..*" (total-expire . t)
+ (broken-reply-to . t)))
+@end example
+
@node Listing Groups
@section \e$B%0%k!<%W$N0lMwI=<(\e(B
@cindex group listing
\e$B$9\e(B (@code{gnus-summary-save-article-vm})\e$B!#\e(B
@item O p
+@itemx |
@kindex O p (\e$B35N,\e(B)
+@kindex | (\e$B35N,\e(B)
@findex gnus-summary-pipe-output
\e$B8=:_$N5-;v$r%Q%$%W$KJ]B8$7$^$9!#$&!<$s$H!"$"$N$)!";d$,8@$*$&$H$7$F$$$k;v\e(B
\e$B$O!=!=8=:_$N5-;v$r%W%m%;%9$K%Q%$%W$9$k$H$$$&$3$H$G\e(B
@node Incorporating Old Mail
@subsection \e$B8E$$%a!<%k$r<h$j9~$`\e(B
+@cindex incorporating old mail
+@cindex import old mail
\e$B$?$$$F$$$N?M$O?'!9$J%U%!%$%k%U%)!<%^%C%H$GC_@Q$5$l$?$?$/$5$s$N8E$$%a!<%k\e(B
\e$B$,$"$k$G$7$g$&!#$b$7\e(B gnus \e$B$K?h$J\e(B gnus \e$B%a!<%k%P%C%/%(%s%I$N0l$D$r;H$&$h$&\e(B
(if descr (concat "\n\t" (cdr descr)) "")))
@end lisp
+\e$B0J2<$N%3!<%I$O!"35N,%P%C%U%!$+$iD>@\\e(B nnrss \e$B$N\e(B url \e$B$r%*!<%W%s$9$k$N$KJXMx\e(B
+\e$B$+$b$7$l$^$;$s!#\e(B
+@lisp
+(require 'browse-url)
+
+(defun browse-nnrss-url( arg )
+ (interactive "p")
+ (let ((url (assq nnrss-url-field
+ (mail-header-extra
+ (gnus-data-header
+ (assq (gnus-summary-article-number)
+ gnus-newsgroup-data))))))
+ (if url
+ (browse-url (cdr url))
+ (gnus-summary-scroll-up arg))))
+
+(eval-after-load "gnus"
+ #'(define-key gnus-summary-mode-map
+ (kbd "<RET>") 'browse-nnrss-url))
+(add-to-list 'nnmail-extra-headers nnrss-url-field)
+@end lisp
+
@node Customizing w3
@subsection w3 \e$B$N%+%9%?%^%$%:\e(B
@cindex w3
silly Lisp errors.) You might also be interested in reading about topic
parameters (@pxref{Topic Parameters}).
+Group parameters can be set in @code{gnus-parameters} too. But some
+variables, such as @code{visible}, have no effect. For example,
+
+@example
+(setq gnus-parameters
+ '(("mail\\..*" (gnus-show-threads nil)
+ (gnus-use-scoring nil)
+ (gnus-summary-line-format
+ "%U%R%z%I%(%[%d:%ub%-20,20f%]%) %s\n")
+ (gcc-self . t)
+ (display . all))
+ ("mail\\.me" (gnus-use-scoring t))
+ ("list\\..*" (total-expire . t)
+ (broken-reply-to . t)))
+@end example
@node Listing Groups
@section Listing Groups
(@code{gnus-summary-save-article-vm}).
@item O p
+@itemx |
@kindex O p (Summary)
+@kindex | (Summary)
@findex gnus-summary-pipe-output
Save the current article in a pipe. Uhm, like, what I mean is---Pipe
the current article to a process (@code{gnus-summary-pipe-output}).
@node Incorporating Old Mail
@subsection Incorporating Old Mail
+@cindex incorporating old mail
+@cindex import old mail
Most people have lots of old mail stored in various file formats. If
you have set up Gnus to read mail using one of the spiffy Gnus mail
(if descr (concat "\n\t" (cdr descr)) "")))
@end lisp
+The following code may be useful to open an nnrss url directly from the
+summary buffer.
+@lisp
+(require 'browse-url)
+
+(defun browse-nnrss-url( arg )
+ (interactive "p")
+ (let ((url (assq nnrss-url-field
+ (mail-header-extra
+ (gnus-data-header
+ (assq (gnus-summary-article-number)
+ gnus-newsgroup-data))))))
+ (if url
+ (browse-url (cdr url))
+ (gnus-summary-scroll-up arg))))
+
+(eval-after-load "gnus"
+ #'(define-key gnus-summary-mode-map
+ (kbd "<RET>") 'browse-nnrss-url))
+(add-to-list 'nnmail-extra-headers nnrss-url-field)
+@end lisp
+
@node Customizing w3
@subsection Customizing w3
@cindex w3
;; Also know as the "wish list". Some are done. For the others, no
;; promise when to be implemented.
+* Multiple charsets for topic names.
+
+* Allow specification of server in Newsgroups header
+
+ [Kai wrote]
+
+ WIBNI I could put `Newsgroups: nntp+quimby:bla' into a message and
+ Gnus would know to post this message on my server `nntp:quimby' into
+ the group bla? I think this would be way cool.
+
+ But Gnus would have to rewrite the Newsgroups header before actually
+ sending the posting.
+
+ Thanks for Micha Wiedenmann for this suggestion.
+
* Understand mail-user-agent. Maybe gnus-mail-user-agent.
[Done]