+Thu Jul 4 06:08:11 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * nntp.el (nntp-open-telnet): Working function.
+ (nntp-telnet-parameters, (nntp-telnet-user-name,
+ nntp-telnet-passwd): New variables.
+
+ * gnus.el (gnus-summary-prepare-threads): Would infloop.
+ (gnus-summary-isearch-article): Don't go to the start of the
+ article.
+
+Thu Jul 4 05:44:22 1996 Steven L. Baur <steve@miranova.com>
+
+ * gnus.el (gnus-article-hide-pem): New command and keystroke.
+
+Thu Jul 4 05:00:58 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * gnus.el (gnus-summary-local-variables): Init reffed to 0.
+ (gnus-set-global-variables): Set reffed.
+
+Wed Jul 3 06:15:28 1996 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el (gnus-reffed-article-number): Make buffer-local.
+
+Wed Jul 3 03:17:42 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
+
+ * gnus.el (gnus-article-setup-buffer): Make the original buffer go
+ away on exit.
+
+ * message.el (message-reply): Insert proper number of commas.
+ (message-tokenize-header): Tokenize properly.
+
+Wed Jul 3 03:01:59 1996 Joe Wells <jbw@cs.bu.edu>
+
+ * gnus.el (gnus-check-new-newsgroups): Doc fix.
+
+Wed Jul 3 02:58:09 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
+
+ * gnus.el: Gnus v5.2.33 is released.
+
+Wed Jul 3 00:27:35 1996 Jan Vroonhof <vroonhof@math.ethz.ch>
+
+ * nnheader.el (nnheader-re-read-dir): Prefer efs over ange-ftp.
+
+Sun Jun 30 23:19:38 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * gnus.el: Gnus v5.2.32 is released.
+
Sun Jun 30 21:57:31 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
* gnus.el (gnus-check-bogus-groups-hook): New hook.
"*If non-nil, the \\<gnus-group-mode-map>\\[gnus-group-get-new-news-this-group] command will advance point to the next group.")
(defvar gnus-check-new-newsgroups t
- "*Non-nil means that Gnus will add new newsgroups at startup.
-If this variable is `ask-server', Gnus will ask the server for new
-groups since the last time it checked. This means that the killed list
-is no longer necessary, so you could set `gnus-save-killed-list' to
-nil.
-
-A variant is to have this variable be a list of select methods. Gnus
-will then use the `ask-server' method on all these select methods to
-query for new groups from all those servers.
+ "*Non-nil means that Gnus will run gnus-find-new-newsgroups at startup.
+This normally finds new newsgroups by comparing the active groups the
+servers have already reported with those Gnus already knows, either alive
+or killed.
+
+When any of the following are true, gnus-find-new-newsgroups will instead
+ask the servers (primary, secondary, and archive servers) to list new
+groups since the last time it checked:
+ 1. This variable is `ask-server'.
+ 2. This variable is a list of select methods (see below).
+ 3. `gnus-read-active-file' is nil or `some'.
+ 4. A prefix argument is given to gnus-find-new-newsgroups interactively.
+
+Thus, if this variable is `ask-server' or a list of select methods or
+`gnus-read-active-file' is nil or `some', then the killed list is no
+longer necessary, so you could safely set `gnus-save-killed-list' to nil.
+
+This variable can be a list of select methods which Gnus will query with
+the `ask-server' method in addition to the primary, secondary, and archive
+servers.
Eg.
(setq gnus-check-new-newsgroups
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version-number "5.2.32"
+(defconst gnus-version-number "5.2.33"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
gnus-newsgroup-history gnus-newsgroup-ancient
gnus-newsgroup-sparse
(gnus-newsgroup-adaptive . gnus-use-adaptive-scoring)
- gnus-newsgroup-adaptive-score-file
+ gnus-newsgroup-adaptive-score-file (gnus-reffed-article-number . -1)
(gnus-newsgroup-expunged-tally . 0)
gnus-cache-removable-articles gnus-newsgroup-cached
gnus-newsgroup-data gnus-newsgroup-data-reverse
"s" gnus-article-hide-signature
"c" gnus-article-hide-citation
"p" gnus-article-hide-pgp
+ "P" gnus-article-hide-pem
"\C-c" gnus-article-hide-citation-maybe)
(gnus-define-keys (gnus-summary-wash-highlight-map "H" gnus-summary-wash-map)
(article-buffer gnus-article-buffer)
(original gnus-original-article-buffer)
(gac gnus-article-current)
+ (reffed gnus-reffed-article-number)
(score-file gnus-current-score-file))
(save-excursion
(set-buffer gnus-group-buffer)
(setq gnus-summary-buffer summary)
(setq gnus-article-buffer article-buffer)
(setq gnus-original-article-buffer original)
+ (setq gnus-reffed-article-number reffed)
(setq gnus-current-score-file score-file)))))
(defun gnus-summary-last-article-p (&optional article)
;; If the article lies outside the current limit,
;; then we do not display it.
((and (not (memq number gnus-newsgroup-limit))
- ;(not gnus-tmp-dummy-line)
- )
+ (not gnus-tmp-dummy-line))
(setq gnus-tmp-gathered
(nconc (mapcar
(lambda (h) (mail-header-number (car h)))
gnus-newsgroup-end
(mail-header-number
(gnus-last-element gnus-newsgroup-headers))))
- (setq gnus-reffed-article-number -1)
;; GROUP is successfully selected.
(or gnus-newsgroup-headers t)))))
(gnus-summary-select-article)
(gnus-configure-windows 'article)
(gnus-eval-in-buffer-window gnus-article-buffer
- (goto-char (point-min))
+ ;;(goto-char (point-min))
(isearch-forward regexp-p)))
(defun gnus-summary-search-article-forward (regexp &optional backward)
(set-buffer (get-buffer-create gnus-original-article-buffer))
(buffer-disable-undo (current-buffer))
(setq major-mode 'gnus-original-article-mode)
+ (gnus-add-current-to-buffer-list)
(make-local-variable 'gnus-original-article))
(if (get-buffer name)
(save-excursion
(gnus-hide-text (match-beginning 0) (match-end 0) props))
(widen))))))
+(defun gnus-article-hide-pem (&optional arg)
+ "Toggle hiding of any PEM headers and signatures in the current article.
+If given a negative prefix, always show; if given a positive prefix,
+always hide."
+ (interactive (gnus-hidden-arg))
+ (unless (gnus-article-check-hidden-text 'pem arg)
+ (save-excursion
+ (set-buffer gnus-article-buffer)
+ (let ((props (nconc (list 'gnus-type 'pem) gnus-hidden-properties))
+ buffer-read-only end)
+ (widen)
+ (goto-char (point-min))
+ ;; hide the horrendously ugly "header".
+ (and (search-forward "\n-----BEGIN PRIVACY-ENHANCED MESSAGE-----\n"
+ nil
+ t)
+ (setq end (1+ (match-beginning 0)))
+ (gnus-hide-text
+ end
+ (if (search-forward "\n\n" nil t)
+ (match-end 0)
+ (point-max))
+ props))
+ ;; hide the trailer as well
+ (and (search-forward "\n-----END PRIVACY-ENHANCED MESSAGE-----\n"
+ nil
+ t)
+ (gnus-hide-text (match-beginning 0) (match-end 0) props))))))
+
(defun gnus-article-hide-signature (&optional arg)
"Hide the signature in the current article.
If given a negative prefix, always show; if given a positive prefix,
\",\" is used as the separator."
(let ((regexp (format "[%s]+" (or separator ",")))
(beg 1)
+ (first t)
quoted elems)
(save-excursion
(message-set-work-buffer)
(insert header)
(goto-char (point-min))
(while (not (eobp))
- (forward-char 1)
+ (if first
+ (setq first nil)
+ (forward-char 1))
(cond ((and (> (point) beg)
(or (eobp)
(and (looking-at regexp)
(message-set-work-buffer)
(unless never-mct
(insert (or reply-to from "")))
- (insert
- (if (bolp) "" ", ") (or to "")
- (if mct (concat (if (bolp) "" ", ") mct) "")
- (if cc (concat (if (bolp) "" ", ") cc) ""))
+ (insert (if (bolp) "" ", ") (or to ""))
+ (insert (if mct (concat (if (bolp) "" ", ") mct) ""))
+ (insert (if cc (concat (if (bolp) "" ", ") cc) ""))
;; Remove addresses that match `rmail-dont-reply-to-names'.
(insert (prog1 (rmail-dont-reply-to (buffer-string))
(erase-buffer)))
(mapcar
(lambda (addr)
(cons (mail-strip-quoted-names addr) addr))
- (nreverse (mail-parse-comma-list))))
+ (message-tokenize-header (buffer-string))))
(let ((s ccalist))
(while s
(setq ccalist (delq (assoc (car (pop s)) s) ccalist)))))
--- /dev/null
+;;; messcompat.el --- making message mode compatible with mail mode
+;; Copyright (C) 1996 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Keywords: mail, news
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs 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, or (at your option)
+;; any later version.
+
+;; GNU Emacs 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 GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This file tries to provide backward compatability with sendmail.el
+;; for Message mode. It should be used by simply adding
+;;
+;; (require 'messcompat)
+;;
+;; to the .emacs file. Loading it after Message mode has been
+;; loaded will have no effect.
+
+;;; Code:
+
+(require 'sendmail)
+
+(defvar message-from-style mail-from-style
+ "*Specifies how \"From\" headers look.
+
+If `nil', they contain just the return address like:
+ king@grassland.com
+If `parens', they look like:
+ king@grassland.com (Elvis Parsley)
+If `angles', they look like:
+ Elvis Parsley <king@grassland.com>
+
+Otherwise, most addresses look like `angles', but they look like
+`parens' if `angles' would need quoting and `parens' would not.")
+
+(defvar message-interactive mail-interactive
+ "Non-nil means when sending a message wait for and display errors.
+nil means let mailer mail back a message to report errors.")
+
+(defvar message-setup-hook mail-setup-hook
+ "Normal hook, run each time a new outgoing message is initialized.
+The function `message-setup' runs this hook.")
+
+(defvar message-mode-hook mail-mode-hook
+ "Hook run in message mode buffers.")
+
+(defvar message-indentation-spaces mail-indentation-spaces
+ "*Number of spaces to insert at the beginning of each cited line.
+Used by `message-yank-original' via `message-yank-cite'.")
+
+(defvar message-cite-function (car mail-citation-hook)
+ "*Function for citing an original message.")
+
+(defvar message-signature mail-signature
+ "*String to be inserted at the end of the message buffer.
+If t, the `message-signature-file' file will be inserted instead.
+If a function, the result from the function will be used instead.
+If a form, the result from the form will be used instead.")
+
+;;;###autoload
+(defvar message-signature-file mail-signature-file
+ "*File containing the text inserted at end of message. buffer.")
+
+(defvar message-default-headers mail-default-headers
+ "*A string containing header lines to be inserted in outgoing messages.
+It is inserted before you edit the message, so you can edit or delete
+these lines.")
+
+(defvar message-send-hook mail-send-hook
+ "Hook run before sending messages.")
+
+(provide 'messcompat)
+
+;;; messcompat.el ends here
(defvar efs-path-regexp)
(defun nnheader-re-read-dir (path)
"Re-read directory PATH if PATH is on a remote system."
- (if (boundp 'ange-ftp-path-format)
- (when (string-match (car ange-ftp-path-format) path)
- (ange-ftp-re-read-dir path))
- (if (boundp 'efs-path-regexp)
+ (if (or (fboundp 'efs-re-read-dir) (boundp 'efs-path-regexp))
(when (string-match efs-path-regexp path)
- (efs-re-read-dir path)))))
+ (efs-re-read-dir path))
+ (if (or (fboundp 'ange-ftp-re-read-dir) (boundp 'ange-ftp-path-format))
+ (when (string-match (car ange-ftp-path-format) path)
+ (ange-ftp-re-read-dir path)))))
(fset 'nnheader-run-at-time 'run-at-time)
(fset 'nnheader-cancel-timer 'cancel-timer)
NNTP server available there (see nntp-rlogin-parameters).")
(defvoo nntp-rlogin-parameters '("telnet" "${NNTPSERVER:=localhost}" "nntp")
- "*Parameters to `nntp-open-login'.
+ "*Parameters to `nntp-open-rlogin'.
That function may be used as `nntp-open-server-function'. In that
case, this list will be used as the parameter list given to rsh.")
(defvoo nntp-rlogin-user-name nil
"*User name on remote system when using the rlogin connect method.")
+(defvoo nntp-telnet-parameters '("exec" "telnet" "${NNTPSERVER:=localhost}" "nntp")
+ "*Parameters to `nntp-open-telnet'.
+That function may be used as `nntp-open-server-function'. In that
+case, this list will be executed as a command after logging in
+via telnet.")
+
+(defvoo nntp-telnet-user-name nil
+ "User name to log in via telnet with.")
+
+(defvoo nntp-telnet-passwd nil
+ "Password to use to log in via telnet with.")
+
(defvoo nntp-address nil
"*The name of the NNTP server.")
(condition-case nil
(nntp-wait-for-response "^[23].*\r?\n" 'slow)
(error nil)
- (quit nil)))
+ ;(quit nil)
+ ))
(unless status
(nntp-close-server-internal server)
(nnheader-report
((null server)
(nnheader-report 'nntp "NNTP server is not specified."))
(t ; We couldn't open the server.
- (nnheader-report
- 'nntp (buffer-substring (point-min) (point-max)))))
+ (nnheader-report 'nntp (buffer-string))))
(when timer
(nnheader-cancel-timer timer))
(message "")
nntp-rlogin-parameters " ")))))
proc))
-(defun nntp-telnet-to-machine ()
- (let (b)
- (telnet "localhost")
+(defun nntp-wait-for-string (regexp)
+ "Wait until string arrives in the buffer."
+ (let ((buf (current-buffer)))
(goto-char (point-min))
- (while (not (re-search-forward "^login: *" nil t))
- (sit-for 1)
- (goto-char (point-min)))
- (goto-char (point-max))
- (insert "larsi")
- (telnet-send-input)
- (setq b (point))
- (while (not (re-search-forward ">" nil t))
+ (while (not (re-search-forward regexp nil t))
+ (accept-process-output)
(sit-for 1)
- (goto-char b))
- (goto-char (point-max))
- (insert "ls")
- (telnet-send-input)))
+ (set-buffer buf)
+ (goto-char (point-min)))))
+
+(defun nntp-open-telnet (server)
+ (save-excursion
+ (set-buffer nntp-server-buffer)
+ (erase-buffer)
+ (let ((proc (start-process
+ "nntpd" nntp-server-buffer "telnet"))
+ (case-fold-search t))
+ (when (memq (process-status proc) '(open run))
+ (process-send-string proc "set escape \^X\n")
+ (process-send-string proc (concat "open " server "\n"))
+ (nntp-wait-for-string "^\r*login:")
+ (process-send-string
+ proc (concat
+ (or nntp-telnet-user-name
+ (setq nntp-telnet-user-name (read-string "login: ")))
+ "\n"))
+ (nntp-wait-for-string "^\r*password:")
+ (process-send-string
+ proc (concat
+ (or nntp-telnet-passwd
+ (setq nntp-telnet-passwd
+ (nnmail-read-passwd "Password: ")))
+ "\n"))
+ (erase-buffer)
+ (nntp-wait-for-string "bash\\|\$ *\r?$\\|> *\r?")
+ (process-send-string
+ proc (concat (mapconcat 'identity nntp-telnet-parameters " ") "\n"))
+ (nntp-wait-for-string "^\r*200")
+ (beginning-of-line)
+ (delete-region (point-min) (point))
+ (process-send-string proc "\^]")
+ (process-send-string proc "mode character\n")
+ (sit-for 2)
+ (forward-line 1)
+ (delete-region (point) (point-max)))
+ proc)))
(defun nntp-close-server-internal (&optional server)
"Close connection to news server."
(if nntp-server-process
(delete-process nntp-server-process))
(setq nntp-server-process nil)
- (setq nntp-address ""))
+ ;(setq nntp-address "")
+ )
(defun nntp-accept-response ()
"Read response of server.
+Thu Jul 4 05:45:32 1996 Lars Magne Ingebrigtsen <larsi@aegir.ifi.uio.no>
+
+ * gnus.texi (Article Hiding): Addition.
+
+Wed Jul 3 03:07:08 1996 Lars Magne Ingebrigtsen <larsi@ylfing.ifi.uio.no>
+
+ * gnus.texi (Followups To Yourself): Deletia.
+
Wed Jun 19 16:30:55 1996 Lars Magne Ingebrigtsen <larsi@nipling.ifi.uio.no>
* gnus.texi (Censorship): Removed.
@findex gnus-article-hide-pgp
Hide @sc{pgp} signatures (@code{gnus-article-hide-pgp}).
+@item W W P
+@kindex W W P (Summary)
+@findex gnus-article-hide-pem
+Hide @sc{pem} (privacy enhavnced hessages) gruft
+(@code{gnus-article-hide-pem}).
+
@item W W c
@kindex W W c (Summary)
@findex gnus-article-hide-citation
@item W w
@kindex W w (Summary)
@findex gnus-article-fill-cited-article
-Do word wrap (@code{gnus-article-fill-cited-article}).
+Do word wrap (@code{gnus-article-fill-cited-article}). If you use this
+function in @code{gnus-article-display-hook}, it should be run fairly
+late and certainly after any highlighting.
@item W c
@kindex W c (Summary)
@vindex gnus-inews-article-hook
These two functions are both primarily meant to be used in hooks like
-@code{gnus-inews-article-hook}.
-
+@code{message-send-hook}.
@node Scoring Tips
@section Scoring Tips