From d07f1de159a6fb94657827a63baf376823e68dbe Mon Sep 17 00:00:00 2001 From: himi Date: Sun, 1 Mar 1998 03:00:58 +0000 Subject: [PATCH] sync, and pop3 modified version --- ChangeLog | 42 +++++++++++++++ lisp/ChangeLog | 51 +++++++++++++++++++ lisp/gnus-agent.el | 23 ++++++++- lisp/gnus-art.el | 2 +- lisp/gnus-demon.el | 1 + lisp/gnus-ems.el | 63 ++++++++++++++++++++++- lisp/gnus-picon.el | 144 ++++++++++++++++++---------------------------------- lisp/gnus-start.el | 7 +-- lisp/gnus-sum.el | 7 ++- lisp/gnus-util.el | 5 +- lisp/gnus.el | 17 ++++--- lisp/message.el | 7 ++- lisp/nndb.el | 3 +- lisp/nneething.el | 2 + lisp/nnheader.el | 5 +- lisp/nnlistserv.el | 2 - lisp/nnmail.el | 4 +- lisp/nnsoup.el | 3 +- lisp/nnvirtual.el | 1 + lisp/pop3.el | 28 ++++++---- readme | 6 +-- texi/gnus.texi | 12 +++-- texi/message.texi | 6 +-- 23 files changed, 300 insertions(+), 141 deletions(-) diff --git a/ChangeLog b/ChangeLog index df07ec1..e10261e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +1998-03-01 Miyashita Hisashi + + * lisp/pop3.el (pop3-password): + If this variable is t, memorize a input password. + (pop3-pass): + (pop3-apop): + Not use pop3-password which is bound by outer extent. + (pop3-movemail): + Set pop3-password to memorize input password. + Call pop3-pass and pop3-apop with `password' argument. + Send LAST command to get unread messages, + when pop3-use-last-command is non-nil. + (pop3-use-last-command): + New variable. + +1998-02-28 MORIOKA Tomohiko + + * lisp/gnus.el (gnus-version-number): Update to 6.0.8. + + * lisp/gnus.el: Sync up with qgnus-0.34. + +1998-02-28 MORIOKA Tomohiko + + * lisp/message.el: Sync up with qgnus-0.33. + + * lisp/gnus-ems.el (gnus-bdf-image-file): New variable; moved from + gnus.el. + (gnus-mule-group-startup-message): New function; moved and renamed + from `gnus-group-startup-message' of gnus.el. + + * lisp/gnus.el, lisp/gnus-sum.el, lisp/gnus-art.el, + lisp/gnus-agent.el: Sync up with qgnus-0.33. + +1998-02-28 Tatsuya Ichikawa + + * lisp/gnus.el (gnus-bdf-image-file): New variable. + (gnus-mule-group-startup-message): Display bitmap image using + bitmap.el running with Emacs 20. + + * lisp/gnus-agent.el (gnus-agent-fetch-headers): Fix problem when + Xref field is not exist. + 1998-02-26 MORIOKA Tomohiko * README.semi (How to join development): Modify for Semi-gnus diff --git a/lisp/ChangeLog b/lisp/ChangeLog index fe61cf7..9bafbe5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,54 @@ +Sat Feb 28 08:27:20 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.34 is released. + +Sat Feb 28 08:17:37 1998 Lars Magne Ingebrigtsen + + * gnus.el: Quassia Gnus v0.33 is released. + +Sat Feb 28 08:10:27 1998 Lars Magne Ingebrigtsen + + * gnus-picon.el (gnus-picons-display-x-face): `buf' -- unbound + var. + +Sat Feb 28 08:03:23 1998 François Pinard + + * gnus: configure'd. + +Sat Feb 28 07:43:00 1998 Nelson Jose dos Santos Ferreira + + * nnsoup.el (nnsoup-store-reply): Fix double sep error. + +Sat Feb 28 07:01:17 1998 Lasse Rasinen + + * gnus-start.el (gnus-ask-server-for-new-groups): Message more. + +Fri Feb 27 13:26:34 1998 Lars Magne Ingebrigtsen + + * message.el (message-resend): Allow arbitrary Also's. + +1998-02-27 Dave Love + + * gnus-sum.el (gnus-simplify-subject-functions): Fix + customization, doc. + +1998-02-25 Dave Love + + * gnus-art.el (gnus-article-x-face-command): Replace leading `{'. + +Mon Feb 23 18:26:48 1998 Lars Magne Ingebrigtsen + + * gnus-agent.el (gnus-plugged): New command and keystroke. + + * gnus-ems.el (gnus-ems-redefine): Define + 'gnus-summary-set-display-table as a function that takes no + params. + + * gnus.el (gnus-interactive): Don't use gnus-sum macros. + (gnus-valid-select-methods): Include nnlistserv. + + * gnus.el: Autoloaded things to make byte-comp silent. + Mon Feb 23 18:06:47 1998 Lars Magne Ingebrigtsen * gnus.el: Quassia Gnus v0.32 is released. diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el index ed4cc72..df71437 100644 --- a/lisp/gnus-agent.el +++ b/lisp/gnus-agent.el @@ -1,4 +1,4 @@ -;;; gnus-agent.el --- unplugged support for Gnus +;;; gnus-agent.el --- unplugged support for Semi-gnus ;; Copyright (C) 1997,98 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen @@ -261,6 +261,13 @@ (gnus)) ;;;###autoload +(defun gnus-plugged () + "Start Gnus plugged." + (interactive) + (setq gnus-plugged t) + (gnus)) + +;;;###autoload (defun gnus-agentize () "Allow Gnus to be an offline newsreader. The normal usage of this command is to put the following as the @@ -696,6 +703,17 @@ the actual number of articles toggled is returned." (set-buffer nntp-server-buffer) (unless (eq 'nov (gnus-retrieve-headers articles group)) (nnvirtual-convert-headers)) + ;; + ;; To gnus-agent-expire work fine with no Xref field in .overview + ;; Tatsuya Ichikawa + (goto-char (point-min)) + (while (not (eobp)) + (goto-char (point-at-eol)) + (insert "\t") + (forward-line 1)) + ;; Tatsuya Ichikawa + ;; To gnus-agent-expire work fine with no Xref field in .overview + ;; ;; Save these headers for later processing. (copy-to-buffer gnus-agent-overview-buffer (point-min) (point-max)) (let (file) @@ -1252,7 +1270,8 @@ The following commands are available: (gnus-delete-line) (setq headers nil))) (when headers - (unless (memq (setq article (mail-header-number headers)) unreads) + (if (memq (setq article (mail-header-number headers)) unreads) + (forward-line 1) (if (not (< (inline (gnus-time-to-day (inline (nnmail-date-to-time diff --git a/lisp/gnus-art.el b/lisp/gnus-art.el index bcf7368..762f0e9 100644 --- a/lisp/gnus-art.el +++ b/lisp/gnus-art.el @@ -170,7 +170,7 @@ regexp. If it matches, the text in question is not a signature." :group 'gnus-article-hiding) (defcustom gnus-article-x-face-command - " echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -" + "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -quit -" "*String or function to be executed to display an X-Face header. If it is a string, the command will be executed in a sub-shell asynchronously. The compressed face will be piped to this command." diff --git a/lisp/gnus-demon.el b/lisp/gnus-demon.el index a5765fe..f3968ea 100644 --- a/lisp/gnus-demon.el +++ b/lisp/gnus-demon.el @@ -31,6 +31,7 @@ (require 'gnus-int) (require 'nnheader) (require 'nntp) +(require 'nnmail) (eval-and-compile (if (string-match "XEmacs" (emacs-version)) (require 'itimer) diff --git a/lisp/gnus-ems.el b/lisp/gnus-ems.el index ec43267..b955f1d 100644 --- a/lisp/gnus-ems.el +++ b/lisp/gnus-ems.el @@ -1,7 +1,8 @@ -;;; gnus-ems.el --- functions for making Gnus work under different Emacsen +;;; gnus-ems.el --- functions for making Semi-gnus work under different Emacsen ;; Copyright (C) 1995,96,97,98 Free Software Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen +;; Tatsuya Ichikawa ;; Keywords: news ;; This file is part of GNU Emacs. @@ -78,6 +79,56 @@ (truncate-string valstr (, max-width)) valstr)))) +(defvar gnus-bdf-image-file nil) +(defun gnus-mule-group-startup-message (&optional x y) + "Insert startup message in current buffer." + ;; Insert the message. + (erase-buffer) + (insert + (if (featurep 'bitmap) + (format " %s + +" + "" (if (and (stringp gnus-bdf-image-file) + (file-exists-p gnus-bdf-image-file)) + (insert-file gnus-image-file))) + (format " %s + _ ___ _ _ + _ ___ __ ___ __ _ ___ + __ _ ___ __ ___ + _ ___ _ + _ _ __ _ + ___ __ _ + __ _ + _ _ _ + _ _ _ + _ _ _ + __ ___ + _ _ _ _ + _ _ + _ _ + _ _ + _ + __ + +" + ""))) + ;; And then hack it. + (gnus-indent-rigidly (point-min) (point-max) + (/ (max (- (window-width) (or x 46)) 0) 2)) + (goto-char (point-min)) + (forward-line 1) + (let* ((pheight (count-lines (point-min) (point-max))) + (wheight (window-height)) + (rest (- wheight pheight))) + (insert (make-string (max 0 (* 2 (/ rest 3))) ?\n))) + ;; Fontify some. + (put-text-property (point-min) (point-max) 'face 'gnus-splash-face) + (goto-char (point-min)) + (setq mode-line-buffer-identification (concat " " gnus-version)) + (setq gnus-simple-splash t) + (set-buffer-modified-p t)) + (defun gnus-encode-coding-string (string system) string) @@ -179,10 +230,18 @@ "Display table used in summary mode buffers.") (fset 'gnus-cite-add-face 'gnus-mule-cite-add-face) (fset 'gnus-max-width-function 'gnus-mule-max-width-function) - (fset 'gnus-summary-set-display-table 'ignore) + (fset 'gnus-summary-set-display-table (lambda ())) (fset 'gnus-encode-coding-string 'encode-coding-string) (fset 'gnus-decode-coding-string 'decode-coding-string) +<<<<<<< gnus-ems.el +======= + + (and window-system + (module-installed-p 'bitmap) + (fset 'gnus-group-startup-message 'gnus-mule-group-startup-message)) + +>>>>>>> 1.3 (when (boundp 'gnus-check-before-posting) (setq gnus-check-before-posting (delq 'long-lines diff --git a/lisp/gnus-picon.el b/lisp/gnus-picon.el index 40d15c1..7f04650 100644 --- a/lisp/gnus-picon.el +++ b/lisp/gnus-picon.el @@ -90,7 +90,7 @@ Some people may want to add \"unknown\" to this list." :group 'picons) (defcustom gnus-picons-x-face-file-name - '(format "/tmp/picon-xface.%s.xbm" (user-login-name)) + (format "/tmp/picon-xface.%s.xbm" (user-login-name)) "*The name of the file in which to store the converted X-face header." :type 'string :group 'picons) @@ -159,13 +159,6 @@ List of pairs (KEY . GLYPH) where KEY is either a filename or an URL.") "Picons file names cache. List of pairs (KEY . NAME) where KEY is (USER HOST DBS) and NAME is an URL.") -(defvar gnus-group-annotations nil - "List of annotations added/removed when selecting/exiting a group") -(defvar gnus-article-annotations nil - "List of annotations added/removed when selecting an article") -(defvar gnus-x-face-annotations nil - "List of annotations added/removed when selecting an article with an X-Face.") - (defvar gnus-picons-jobs-alist nil "List of jobs that still need be done. This is a list of (SYM-ANN TAG ARGS...) where SYM-ANN three annotations list, @@ -178,28 +171,16 @@ arguments necessary for the job.") ;;; Functions: -(defun gnus-picons-remove (symbol) - "Remove all annotations in variable named SYMBOL. -This function is careful to set it to nil before removing anything so that -asynchronous process don't get crazy." - (setq gnus-picons-jobs-alist (remassq symbol gnus-picons-jobs-alist)) - ;; notify running job that it may have been preempted - (if (and (listp gnus-picons-job-already-running) - (eq (car gnus-picons-job-already-running) symbol)) - (setq gnus-picons-job-already-running t)) - ;; clear all annotations - (mapc (function (lambda (item) - (if (annotationp item) - (delete-annotation item)))) - (prog1 (symbol-value symbol) - (set symbol nil)))) - (defun gnus-picons-remove-all () "Removes all picons from the Gnus display(s)." (interactive) - (gnus-picons-remove 'gnus-article-annotations) - (gnus-picons-remove 'gnus-group-annotations) - (gnus-picons-remove 'gnus-x-face-annotations)) + (map-extents (function (lambda (ext unused) (delete-annotation ext) nil)) + nil nil nil nil nil 'gnus-picon) + (setq gnus-picons-jobs-alist '()) + ;; notify running job that it may have been preempted + (if (and (listp gnus-picons-job-already-running) + gnus-picons-job-already-running) + (setq gnus-picons-job-already-running t))) (defun gnus-get-buffer-name (variable) "Returns the buffer name associated with the contents of a variable." @@ -226,41 +207,33 @@ asynchronous process don't get crazy." (list (list (current-buffer) (cons nil gnus-picons-has-modeline-p))))))) -(defun gnus-picons-prepare-for-annotations (annotations) - "Prepare picons buffer for puting annotations memorized in ANNOTATIONS. -ANNOTATIONS should be a symbol naming a variable wich contains a list of -annotations. Sets buffer to `gnus-picons-display-where'." +(defun gnus-picons-prepare-for-annotations () + "Prepare picons buffer for putting annotations." ;; let drawing catch up (when gnus-picons-refresh-before-display (sit-for 0)) (gnus-picons-set-buffer) - (gnus-picons-remove annotations)) + (gnus-picons-remove-all)) -(defsubst gnus-picons-make-annotation (&rest args) +(defun gnus-picons-make-annotation (&rest args) (let ((annot (apply 'make-annotation args))) - (set-extent-property annot 'duplicable nil) + (set-extent-property annot 'gnus-picon t) + (set-extent-property annot 'duplicable t) annot)) (defun gnus-picons-article-display-x-face () "Display the x-face header bitmap in the 'gnus-picons-display-where buffer." - ;; delete any old ones. - ;; This is needed here because gnus-picons-display-x-face will not - ;; be called if there is no X-Face header - (gnus-picons-remove 'gnus-x-face-annotations) - ;; display the new one. (let ((gnus-article-x-face-command 'gnus-picons-display-x-face)) (gnus-article-display-x-face))) (defun gnus-picons-x-face-sentinel (process event) - (let* ((env (assq process gnus-picons-processes-alist)) - (annot (cdr env))) + (when (memq process gnus-picons-processes-alist) (setq gnus-picons-processes-alist - (remassq process gnus-picons-processes-alist)) - (when (annotationp annot) - (set-annotation-glyph annot - (make-glyph gnus-picons-x-face-file-name)) - (if (memq annot gnus-x-face-annotations) - (delete-file gnus-picons-x-face-file-name))))) + (delq process gnus-picons-processes-alist)) + (gnus-picons-set-buffer) + (gnus-picons-make-annotation (make-glyph gnus-picons-x-face-file-name) + nil 'text) + (delete-file gnus-picons-x-face-file-name))) (defun gnus-picons-display-x-face (beg end) "Function to display the x-face header in the picons window. @@ -268,26 +241,17 @@ To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" (interactive) (if (featurep 'xface) ;; Use builtin support - (let ((buf (current-buffer))) - (save-excursion - (gnus-picons-prepare-for-annotations 'gnus-x-face-annotations) - (setq gnus-x-face-annotations - (cons (gnus-picons-make-annotation - (vector 'xface - :data (concat "X-Face: " - (buffer-substring beg end buf))) - nil 'text) - gnus-x-face-annotations)))) + (save-excursion + (gnus-picons-set-buffer) + (gnus-picons-make-annotation + (vector 'xface + :data (concat "X-Face: " (buffer-substring beg end))) + nil 'text)) ;; convert the x-face header to a .xbm file (let* ((process-connection-type nil) - (annot (save-excursion - (gnus-picons-prepare-for-annotations - 'gnus-x-face-annotations) - (gnus-picons-make-annotation nil nil 'text))) (process (start-process-shell-command "gnus-x-face" nil gnus-picons-convert-x-face))) - (push annot gnus-x-face-annotations) - (push (cons process annot) gnus-picons-processes-alist) + (push process gnus-picons-processes-alist) (process-kill-without-query process) (set-process-sentinel process 'gnus-picons-x-face-sentinel) (process-send-region process beg end) @@ -312,37 +276,28 @@ To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" (message-tokenize-header gnus-local-domain ".")) (message-tokenize-header (substring from (1+ at-idx)) ".")))) - (gnus-picons-prepare-for-annotations 'gnus-article-annotations) - ;; if display in article buffer, the group annotations - ;; wrongly placed. Move them here - (if (eq gnus-picons-display-where 'article) - (dolist (ext gnus-group-annotations) - (when (extent-live-p ext) - (set-extent-endpoints ext (point) (point))))) + (gnus-picons-prepare-for-annotations) + (gnus-group-display-picons) (if (null gnus-picons-piconsearch-url) - (setq gnus-article-annotations - (nconc gnus-article-annotations - (gnus-picons-display-pairs - (gnus-picons-lookup-pairs - addrs gnus-picons-domain-directories) - gnus-picons-display-as-address - "." t) - (if (and gnus-picons-display-as-address addrs) - (list (gnus-picons-make-annotation - [string :data "@"] nil - 'text nil nil nil t))) - (gnus-picons-display-picon-or-name - (gnus-picons-lookup-user username addrs) - username t))) + (progn + (gnus-picons-display-pairs (gnus-picons-lookup-pairs + addrs + gnus-picons-domain-directories) + gnus-picons-display-as-address + "." t) + (if (and gnus-picons-display-as-address addrs) + (gnus-picons-make-annotation + [string :data "@"] nil 'text nil nil nil t)) + (gnus-picons-display-picon-or-name + (gnus-picons-lookup-user username addrs) + username t)) (push (list 'gnus-article-annotations 'search username addrs gnus-picons-domain-directories t) gnus-picons-jobs-alist) - (gnus-picons-next-job)) - - (add-hook 'gnus-summary-exit-hook 'gnus-picons-remove-all)))))) + (gnus-picons-next-job))))))) (defun gnus-group-display-picons () - "Display icons for the group in the gnus-picons-display-where buffer." + "Display icons for the group in the `gnus-picons-display-where' buffer." (interactive) (when (and (featurep 'xpm) (or (not (fboundp 'device-type)) (equal (device-type) 'x)) @@ -350,16 +305,15 @@ To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" (not (string-match gnus-picons-group-excluded-groups gnus-newsgroup-name)))) (save-excursion - (gnus-picons-prepare-for-annotations 'gnus-group-annotations) + (gnus-picons-prepare-for-annotations) (if (null gnus-picons-piconsearch-url) - (setq gnus-group-annotations - (gnus-picons-display-pairs + (gnus-picons-display-pairs (gnus-picons-lookup-pairs (reverse (message-tokenize-header (gnus-group-real-name gnus-newsgroup-name) ".")) gnus-picons-news-directories) - t ".")) + t ".") (push (list 'gnus-group-annotations 'search nil (message-tokenize-header (gnus-group-real-name gnus-newsgroup-name) ".") @@ -372,7 +326,7 @@ To use: (setq gnus-article-x-face-command 'gnus-picons-display-x-face)" (add-hook 'gnus-summary-exit-hook 'gnus-picons-remove-all)))) -(defsubst gnus-picons-lookup-internal (addrs dir) +(defun gnus-picons-lookup-internal (addrs dir) (setq dir (expand-file-name dir gnus-picons-database)) (gnus-picons-try-face (dolist (part (reverse addrs) dir) (setq dir (expand-file-name part dir))))) @@ -601,8 +555,7 @@ none, and whose CDR is the corresponding element of DOMAINS." (defun gnus-picons-network-display-internal (sym-ann glyph part right-p) (gnus-picons-set-buffer) - (set sym-ann (nconc (symbol-value sym-ann) - (gnus-picons-display-picon-or-name glyph part right-p))) + (gnus-picons-display-picon-or-name glyph part right-p) (gnus-picons-next-job-internal)) (defun gnus-picons-network-display-callback (url part sym-ann right-p) @@ -697,6 +650,7 @@ none, and whose CDR is the corresponding element of DOMAINS." (prog1 (gnus-picons-parse-filenames) (kill-buffer (current-buffer))))) +;; Initiate a query on the picon database (defun gnus-picons-network-search (user addrs dbs sym-ann right-p) (let* ((host (mapconcat 'identity addrs ".")) (key (list (or user "unknown") host (if user diff --git a/lisp/gnus-start.el b/lisp/gnus-start.el index 0159fb7..974936e 100644 --- a/lisp/gnus-start.el +++ b/lisp/gnus-start.el @@ -1076,9 +1076,10 @@ for new groups." hashtb)) (when new-newsgroups (gnus-subscribe-hierarchical-interactive new-newsgroups))) - (when (> groups 0) - (gnus-message 6 "%d new newsgroup%s arrived." - groups (if (> groups 1) "s have" " has"))) + (if (> groups 0) + (gnus-message 5 "%d new newsgroup%s arrived" + groups (if (> groups 1) "s have" " has")) + (gnus-message 5 "No new newsgroups")) (when got-new (setq gnus-newsrc-last-checked-date new-date)) got-new)) diff --git a/lisp/gnus-sum.el b/lisp/gnus-sum.el index 3959334..6637221 100644 --- a/lisp/gnus-sum.el +++ b/lisp/gnus-sum.el @@ -130,9 +130,12 @@ comparing subjects." (defcustom gnus-simplify-subject-functions nil "List of functions taking a string argument that simplify subjects. -The functions are applied recursively." +The functions are applied recursively. + +Useful functions to put in this list include: `gnus-simplify-subject-re', +`gnus-simplify-subject-fuzzy' and `gnus-simplify-whitespace'." :group 'gnus-thread - :type '(repeat (list function))) + :type '(repeat function)) (defcustom gnus-simplify-ignored-prefixes nil "*Regexp, matches for which are removed from subject lines when simplifying fuzzily." diff --git a/lisp/gnus-util.el b/lisp/gnus-util.el index dbe42bc..856b7a2 100644 --- a/lisp/gnus-util.el +++ b/lisp/gnus-util.el @@ -37,7 +37,10 @@ (require 'message) (eval-and-compile - (autoload 'nnmail-date-to-time "nnmail")) + (autoload 'nnmail-date-to-time "nnmail") + (autoload 'rmail-insert-rmail-file-header "rmail") + (autoload 'rmail-count-new-messages "rmail") + (autoload 'rmail-show-message "rmail")) (defun gnus-boundp (variable) "Return non-nil if VARIABLE is bound and non-nil." diff --git a/lisp/gnus.el b/lisp/gnus.el index 266efbe..17d7c58 100644 --- a/lisp/gnus.el +++ b/lisp/gnus.el @@ -246,11 +246,11 @@ is restarted, and sometimes reloaded." :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) -(defconst gnus-version-number "6.0.7" +(defconst gnus-version-number "6.0.8" "Version number for this version of gnus.") (defconst gnus-version - (format "Semi-gnus %s (based on Quassia Gnus v0.32)" gnus-version-number) + (format "Semi-gnus %s (based on Quassia Gnus v0.34)" gnus-version-number) "Version string for this version of gnus.") (defcustom gnus-inhibit-startup-message nil @@ -1128,6 +1128,7 @@ slower." ("nnfolder" mail respool address) ("nngateway" none address prompt-address physical-address) ("nnweb" none) + ("nnlistserv" none) ("nnagent" post-mail)) "*An alist of valid select methods. The first element of each list lists should be a string with the name @@ -1632,7 +1633,9 @@ gnus-newsrc-hashtb should be kept so that both hold the same information.") gnus-group-list-groups gnus-group-first-unread-group gnus-group-set-mode-line gnus-group-set-info gnus-group-save-newsrc gnus-group-setup-buffer gnus-group-get-new-news - gnus-group-make-help-group gnus-group-update-group) + gnus-group-make-help-group gnus-group-update-group + gnus-clear-inboxes-moved gnus-group-iterate + gnus-group-group-name) ("gnus-bcklg" gnus-backlog-request-article gnus-backlog-enter-article gnus-backlog-remove-article) ("gnus-art" gnus-article-read-summary-keys gnus-article-save @@ -2074,11 +2077,13 @@ g -- Group name." ((= c ?g) (gnus-group-group-name)) ((= c ?A) - (gnus-summary-article-number)) + (gnus-summary-skip-intangible) + (or (get-text-property (point) 'gnus-number) + (gnus-summary-last-subject))) ((= c ?H) - (gnus-summary-article-header)) + (gnus-data-header (gnus-data-find (gnus-summary-article-number)))) (t - (error "Not implemented spec"))) + (error "Non-implemented spec"))) out) (cond ((= c ?r) diff --git a/lisp/message.el b/lisp/message.el index 8de61e2..04180da 100644 --- a/lisp/message.el +++ b/lisp/message.el @@ -931,7 +931,10 @@ The cdr of ech entry is a function for applying the face to a region.") (autoload 'gnus-output-to-rmail "gnus-util") (autoload 'mail-abbrev-in-expansion-header-p "mailabbrev") (autoload 'nndraft-request-associate-buffer "nndraft") - (autoload 'nndraft-request-expire-articles "nndraft")) + (autoload 'nndraft-request-expire-articles "nndraft") + (autoload 'gnus-open-server "gnus-int") + (autoload 'gnus-request-post "gnus-int") + (autoload 'rmail-output "rmail")) @@ -3739,7 +3742,7 @@ Optional NEWS will use news to forward instead of mail." (goto-char (point-max))) (insert mail-header-separator) ;; Rename all old ("Also-")Resent headers. - (while (re-search-backward "^\\(Also-\\)?Resent-" beg t) + (while (re-search-backward "^\\(Also-\\)*Resent-" beg t) (beginning-of-line) (insert "Also-")) ;; Quote any "From " lines at the beginning. diff --git a/lisp/nndb.el b/lisp/nndb.el index 088b5c6..032d7c0 100644 --- a/lisp/nndb.el +++ b/lisp/nndb.el @@ -70,7 +70,8 @@ (autoload 'cancel-timer "timer") (autoload 'telnet "telnet" nil t) (autoload 'telnet-send-input "telnet" nil t) - (autoload 'timezone-parse-date "timezone")) + (autoload 'timezone-parse-date "timezone") + (autoload 'gnus-declare-backend "gnus-start")) ;; Declare nndb as derived from nntp diff --git a/lisp/nneething.el b/lisp/nneething.el index be3bcbd..4584560 100644 --- a/lisp/nneething.el +++ b/lisp/nneething.el @@ -68,6 +68,8 @@ If this variable is nil, no files will be excluded.") +(autoload 'gnus-encode-coding-string "gnus-ems") + ;;; Interface functions. (nnoo-define-basics nneething) diff --git a/lisp/nnheader.el b/lisp/nnheader.el index c16bdef..5751973 100644 --- a/lisp/nnheader.el +++ b/lisp/nnheader.el @@ -59,7 +59,10 @@ on your system, you could say something like: (autoload 'mail-position-on-field "sendmail") (autoload 'message-remove-header "message") (autoload 'cancel-function-timers "timers") - (autoload 'gnus-point-at-eol "gnus-util")) + (autoload 'gnus-point-at-eol "gnus-util") + (autoload 'gnus-delete-line "gnus-util") + (autoload 'gnus-buffer-live-p "gnus-util") + (autoload 'gnus-encode-coding-string "gnus-ems")) ;;; Header access macros. diff --git a/lisp/nnlistserv.el b/lisp/nnlistserv.el index e74b6a2..684595c 100644 --- a/lisp/nnlistserv.el +++ b/lisp/nnlistserv.el @@ -30,8 +30,6 @@ (eval-when-compile (require 'cl)) -(push '("nnlistserv" none) gnus-valid-select-methods) - (require 'nnoo) (require 'nnweb) diff --git a/lisp/nnmail.el b/lisp/nnmail.el index c12f099..5c0cd70 100644 --- a/lisp/nnmail.el +++ b/lisp/nnmail.el @@ -33,7 +33,9 @@ (require 'custom) (eval-and-compile - (autoload 'gnus-error "gnus-util")) + (autoload 'gnus-error "gnus-util") + (autoload 'gnus-buffer-live-p "gnus-util") + (autoload 'gnus-encode-coding-string "gnus-ems")) (defgroup nnmail nil "Reading mail with Gnus." diff --git a/lisp/nnsoup.el b/lisp/nnsoup.el index 39db45f..6eb1a02 100644 --- a/lisp/nnsoup.el +++ b/lisp/nnsoup.el @@ -666,6 +666,7 @@ backend for the messages.") (require 'mail-utils) (let ((tembuf (generate-new-buffer " message temp")) (case-fold-search nil) + (real-header-separator mail-header-separator) (mail-header-separator "") delimline (mailbuf (current-buffer))) @@ -692,7 +693,7 @@ backend for the messages.") ;; Change header-delimiter to be what sendmail expects. (goto-char (point-min)) (re-search-forward - (concat "^" (regexp-quote mail-header-separator) "\n")) + (concat "^" (regexp-quote real-header-separator) "\n")) (replace-match "\n") (backward-char 1) (setq delimline (point-marker)) diff --git a/lisp/nnvirtual.el b/lisp/nnvirtual.el index 556b318..41964dc 100644 --- a/lisp/nnvirtual.el +++ b/lisp/nnvirtual.el @@ -38,6 +38,7 @@ (require 'gnus-util) (require 'gnus-start) (require 'gnus-sum) +(require 'gnus-msg) (require 'cl) (nnoo-declare nnvirtual) diff --git a/lisp/pop3.el b/lisp/pop3.el index 1bfd8ec..647df79 100644 --- a/lisp/pop3.el +++ b/lisp/pop3.el @@ -4,7 +4,7 @@ ;; Author: Richard L. Pieri ;; Keywords: mail, pop3 -;; Version: 1.3l+ +;; Version: 1.3l+himi-1 ;; This file is part of GNU Emacs. @@ -49,7 +49,10 @@ (defvar pop3-password-required t "*Non-nil if a password is required when connecting to POP server.") (defvar pop3-password nil - "*Password to use when connecting to POP server.") + "*Password to use when connecting to POP server. +If this variable is t, your input password would be memorized.") +(defvar pop3-use-last-command nil + "*Non-nil when you want to use `LAST' command to get unread messages.") (defvar pop3-authentication-scheme 'pass "*POP3 authentication scheme. @@ -73,21 +76,23 @@ Used for APOP authentication.") (crashbuf (get-buffer-create " *pop3-retr*")) (n 1) message-count - (pop3-password pop3-password) + password ) ;; for debugging only (if pop3-debug (switch-to-buffer (process-buffer process))) ;; query for password - (if (and pop3-password-required (not pop3-password)) - (setq pop3-password + (if (and pop3-password-required (not (stringp pop3-password))) + (setq password (pop3-read-passwd (format "Password for %s: " pop3-maildrop)))) (cond ((equal 'apop pop3-authentication-scheme) - (pop3-apop process pop3-maildrop)) + (pop3-apop process pop3-maildrop password)) ((equal 'pass pop3-authentication-scheme) (pop3-user process pop3-maildrop) - (pop3-pass process)) + (pop3-pass process password)) (t (error "Invalid POP3 authentication scheme."))) (setq message-count (car (pop3-stat process))) + (if pop3-use-last-command + (setq n (+ 1 (pop3-last process)))) (while (<= n message-count) (message (format "Retrieving message %d of %d from %s..." n message-count pop3-mailhost)) @@ -107,6 +112,7 @@ Used for APOP authentication.") ) (pop3-quit process) (kill-buffer crashbuf) + (if pop3-password (setq pop3-password password)) ) ) @@ -260,17 +266,17 @@ Return the response string if optional second argument is non-nil." (if (not (and response (string-match "+OK" response))) (error (format "USER %s not valid." user))))) -(defun pop3-pass (process) +(defun pop3-pass (process password) "Send authentication information to the server." - (pop3-send-command process (format "PASS %s" pop3-password)) + (pop3-send-command process (format "PASS %s" password)) (let ((response (pop3-read-response process t))) (if (not (and response (string-match "+OK" response))) (pop3-quit process)))) -(defun pop3-apop (process user) +(defun pop3-apop (process user password) "Send alternate authentication information to the server." (if (not (fboundp 'md5)) (autoload 'md5 "md5")) - (let ((hash (md5 (concat pop3-timestamp pop3-password)))) + (let ((hash (md5 (concat pop3-timestamp password)))) (pop3-send-command process (format "APOP %s %s" user hash)) (let ((response (pop3-read-response process t))) (if (not (and response (string-match "+OK" response))) diff --git a/readme b/readme index c8249c2..a232075 100644 --- a/readme +++ b/readme @@ -6,9 +6,9 @@ To use Gnus you first have to unpack the files, which you've obviously done, because you are reading this. You should definitely byte-compile the source files. To do that, you -can simply say "make" in this directory. If you are using XEmacs, you -*must* say "make EMACS=xemacs". In that case you may also want to -pull down the package of nice glyphs from +can simply say "./configure; make" in this directory. If you are +using XEmacs, you *must* say "make EMACS=xemacs". In that case you +may also want to pull down the package of nice glyphs from . It should be installed into the "gnus-5.4.53/etc" directory. diff --git a/texi/gnus.texi b/texi/gnus.texi index ee0fbb7..3d28d62 100644 --- a/texi/gnus.texi +++ b/texi/gnus.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename gnus -@settitle Quassia Gnus 0.32 Manual +@settitle Quassia Gnus 0.34 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -316,7 +316,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Quassia Gnus 0.32 Manual +@title Quassia Gnus 0.34 Manual @author by Lars Magne Ingebrigtsen @page @@ -352,7 +352,7 @@ can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. -This manual corresponds to Quassia Gnus 0.32. +This manual corresponds to Quassia Gnus 0.34. @end ifinfo @@ -12297,7 +12297,7 @@ ignored when handling global score files. @item read-only Read-only score files will not be updated or saved. Global score files should feature this atom (@pxref{Global Score Files}). (Note: -@dfn{Global} here really means @dfn{global}; not just your personal +@dfn{Global} here really means @dfn{global}; not your personal apply-to-all-groups score files.) @item orphan @@ -17299,6 +17299,10 @@ Allow breaking lengthy NNTP commands. gnus-article-highlight-limit, to disable highlighting in big articles. @item +Editing an article should put the article to be edited +in a special, unique buffer. + +@item Solve the halting problem. @c TODO diff --git a/texi/message.texi b/texi/message.texi index 08eb899..f9142e4 100644 --- a/texi/message.texi +++ b/texi/message.texi @@ -1,7 +1,7 @@ \input texinfo @c -*-texinfo-*- @setfilename message -@settitle Message 0.32 Manual +@settitle Message 0.34 Manual @synindex fn cp @synindex vr cp @synindex pg cp @@ -42,7 +42,7 @@ into another language, under the above conditions for modified versions. @tex @titlepage -@title Message 0.32 Manual +@title Message 0.34 Manual @author by Lars Magne Ingebrigtsen @page @@ -83,7 +83,7 @@ Message mode buffers. * Key Index:: List of Message mode keys. @end menu -This manual corresponds to Message 0.32. Message is distributed with +This manual corresponds to Message 0.34. Message is distributed with the Gnus distribution bearing the same version number as this manual has. -- 1.7.10.4