Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

*** empty log message ***

  • Loading branch information...
commit 47e3fa64db21cbf0506906933464bad3c4fd209b 1 parent cdb7a52
Lars Ingebrigtsen larsmagne authored
60 lisp/ChangeLog
View
@@ -1,3 +1,63 @@
+Wed Jun 3 04:03:37 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.6.11 is released.
+
+Wed Jun 3 03:33:50 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.el: Checked doc string syntax throughout.
+
+ * message.el (message-subject-re-regexp): Renamed.
+
+Wed Jun 3 03:33:05 1998 Simon Josefsson <jas@pdc.kth.se>
+
+ * message.el (message-ignored-subject-re): New variable.
+
+Wed Jun 3 03:25:13 1998 Sam Steingold <sds@usa.net>
+
+ * gnus-msg.el (gnus-bug-create-help-buffer): New variable.
+ (gnus-bug): Use it.
+
+1998-05-07 Hrvoje Niksic <hniksic@srce.hr>
+
+ * nnmail.el: (nnmail-get-split-group): Use `regexp-quote'
+ when file name is a part of pattern.
+
+ * nnmail.el (nnmail-crosspost-link-function): Ditto.
+
+ * gnus-ems.el: Use `symbol-name' instead of `(format "%s" ...)'.
+
+ * gnus-score.el (gnus-score-load-file): Use `regexp-quote'
+ when file name is a part of pattern.
+
+1998-05-06 Hrvoje Niksic <hniksic@srce.hr>
+
+ * gnus-cache.el (gnus-cache-generate-active): Use `regexp-quote'
+ when file name is a part of pattern.
+
+Wed Jun 3 03:13:34 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * nnfolder.el (nnfolder-delete-mail): Changed parameters.
+ (nnfolder-request-replace-article): Rename X-From-Line.
+
+Wed Jun 3 03:10:04 1998 Dan Christensen <jdc@chow.mat.jhu.edu>
+
+ * nnfolder.el (nnfolder-adjust-min-active): Work.
+
+Mon Jun 1 05:27:28 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-summary-limit-to-age): Reversed time and
+ almost collapsed space!
+
+ * nnmail.el (nnmail-days-to-time): Computed wrong time.
+
+Mon Jun 1 05:19:46 1998 Kim-Minh Kaplan <KimMinh.Kaplan@utopia.eunet.fr>
+
+ * gnus-sum.el (gnus-dependencies-add-header): Break loops.
+
+Mon Jun 1 05:13:34 1998 Fabrice POPINEAU <popineau@esemetz.ese-metz.fr>
+
+ * gnus-cache.el (gnus-cache-generate-active): Regexp-quote.
+
Mon Jun 1 04:31:23 1998 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.6.10 is released.
5 lisp/gnus-cache.el
View
@@ -607,8 +607,9 @@ If LOW, update the lower bound instead."
(if top
""
(string-match
- (concat "^" (file-name-as-directory
- (expand-file-name gnus-cache-directory)))
+ (concat "^" (regexp-quote
+ (file-name-as-directory
+ (expand-file-name gnus-cache-directory))))
(directory-file-name directory))
(nnheader-replace-chars-in-string
(substring (directory-file-name directory) (match-end 0))
2  lisp/gnus-ems.el
View
@@ -133,7 +133,7 @@
(eval-and-compile
(let ((case-fold-search t))
(cond
- ((string-match "windows-nt\\|os/2\\|emx" (format "%s" system-type))
+ ((string-match "windows-nt\\|os/2\\|emx" (symbol-name system-type))
(setq nnheader-file-name-translation-alist
(append nnheader-file-name-translation-alist
'((?: . ?_)
18 lisp/gnus-gl.el
View
@@ -299,7 +299,7 @@ If this times out we give up and assume that something has died..." )
;;;; Login Functions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bbb-login ()
- "return the token number if login is successful, otherwise return nil"
+ "return the token number if login is successful, otherwise return nil."
(interactive)
(setq grouplens-bbb-token nil)
(if (not (equal grouplens-pseudonym ""))
@@ -324,7 +324,7 @@ If this times out we give up and assume that something has died..." )
(gnus-add-shutdown 'bbb-logout 'gnus)
(defun bbb-logout ()
- "logout of bbb session"
+ "logout of bbb session."
(when grouplens-bbb-token
(let ((bbb-process
(bbb-connect-to-bbbd grouplens-bbb-host grouplens-bbb-port)))
@@ -339,9 +339,8 @@ If this times out we give up and assume that something has died..." )
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(defun bbb-build-mid-scores-alist (groupname)
- "this function can be called as part of the function to return the
-list of score files to use. See the gnus variable
-gnus-score-find-score-files-function.
+ "this function can be called as part of the function to return the list of score files to use.
+See the gnus variable gnus-score-find-score-files-function.
*Note:* If you want to use grouplens scores along with calculated scores,
you should see the offset and scale variables. At this point, I don't
@@ -669,9 +668,8 @@ recommend using both scores and grouplens predictions together."
(gnus-summary-best-unread-article))
(defun grouplens-summary-catchup-and-exit (rating)
- "Mark all articles not marked as unread in this newsgroup as read,
- then exit. If prefix argument ALL is non-nil, all articles are
- marked as read."
+ "Mark all articles not marked as unread in this newsgroup as read, then exit.
+If prefix argument ALL is non-nil, all articles are marked as read."
(interactive "P")
(when rating
(bbb-summary-rate-article rating))
@@ -748,7 +746,7 @@ recommend using both scores and grouplens predictions together."
(defconst gnus-gl-version "gnus-gl.el 2.50")
(defconst gnus-gl-maintainer-address "grouplens-bug@cs.umn.edu")
(defun gnus-gl-submit-bug-report ()
- "Submit via mail a bug report on gnus-gl"
+ "Submit via mail a bug report on gnus-gl."
(interactive)
(require 'reporter)
(reporter-submit-bug-report gnus-gl-maintainer-address
@@ -765,7 +763,7 @@ recommend using both scores and grouplens predictions together."
'gnus-gl-get-trace))
(defun gnus-gl-get-trace ()
- "Insert the contents of the BBBD trace buffer"
+ "Insert the contents of the BBBD trace buffer."
(when grouplens-bbb-buffer
(insert-buffer grouplens-bbb-buffer)))
9 lisp/gnus-group.el
View
@@ -2736,11 +2736,10 @@ of groups killed."
(if (< (length out) 2) (car out) (nreverse out))))
(defun gnus-group-yank-group (&optional arg)
- "Yank the last newsgroups killed with \\[gnus-group-kill-group],
-inserting it before the current newsgroup. The numeric ARG specifies
-how many newsgroups are to be yanked. The name of the newsgroup yanked
-is returned, or (if several groups are yanked) a list of yanked groups
-is returned."
+ "Yank the last newsgroups killed with \\[gnus-group-kill-group], inserting it before the current newsgroup.
+The numeric ARG specifies how many newsgroups are to be yanked. The
+name of the newsgroup yanked is returned, or (if several groups are
+yanked) a list of yanked groups is returned."
(interactive "p")
(setq arg (or arg 1))
(let (info group prev out)
23 lisp/gnus-msg.el
View
@@ -94,6 +94,9 @@ the second with the current group name.")
(defvar gnus-message-setup-hook nil
"Hook run after setting up a message buffer.")
+(defvar gnus-bug-create-help-buffer t
+ "*Should we create the *Gnus Help Bug* buffer?")
+
;;; Internal variables.
(defvar gnus-message-buffer "*Mail Gnus*")
@@ -502,7 +505,7 @@ If SILENT, don't prompt the user."
;;; as well include the Emacs version as well.
;;; The following function works with later GNU Emacs, and XEmacs.
(defun gnus-extended-version ()
- "Stringified Gnus version and Emacs version"
+ "Stringified Gnus version and Emacs version."
(interactive)
(concat
gnus-version
@@ -529,7 +532,7 @@ If SILENT, don't prompt the user."
;; Written by "Mr. Per Persson" <pp@gnu.ai.mit.edu>.
(defun gnus-inews-insert-mime-headers ()
- "Insert MIME headers.
+ "Insert MIME headers.
Assumes ISO-Latin-1 is used iff 8-bit characters are present."
(goto-char (point-min))
(let ((mail-header-separator
@@ -784,18 +787,20 @@ If YANK is non-nil, include the original article."
(error "Gnus has been shut down"))
(gnus-setup-message 'bug
(delete-other-windows)
- (switch-to-buffer (get-buffer-create "*Gnus Help Bug*"))
- (erase-buffer)
- (insert gnus-bug-message)
- (goto-char (point-min))
+ (when gnus-bug-create-help-buffer
+ (switch-to-buffer "*Gnus Help Bug*")
+ (erase-buffer)
+ (insert gnus-bug-message)
+ (goto-char (point-min)))
(message-pop-to-buffer "*Gnus Bug*")
(message-setup `((To . ,gnus-maintainer) (Subject . "")))
- (push `(gnus-bug-kill-buffer) message-send-actions)
+ (when gnus-bug-create-help-buffer
+ (push `(gnus-bug-kill-buffer) message-send-actions))
(goto-char (point-min))
(re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
(forward-line 1)
- (insert (gnus-version) "\n")
- (insert (emacs-version) "\n")
+ (insert (gnus-version) "\n"
+ (emacs-version) "\n")
(when (and (boundp 'nntp-server-type)
(stringp nntp-server-type))
(insert nntp-server-type))
3  lisp/gnus-nocem.el
View
@@ -108,8 +108,7 @@ matches an previously scanned and verified nocem message."
"Real-name mappings of subscribed groups.")
(defun gnus-fill-real-hashtb ()
- "Fill up a hash table with the real-name mappings from the user's
-active file."
+ "Fill up a hash table with the real-name mappings from the user's active file."
(setq gnus-nocem-real-group-hashtb (gnus-make-hashtable
(length gnus-newsrc-alist)))
(mapcar (lambda (group)
6 lisp/gnus-picon.el
View
@@ -466,7 +466,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
'text nil nil nil rightp))))))
(defun gnus-picons-action-toggle (data)
- "Toggle annotation"
+ "Toggle annotation."
(interactive "e")
(let* ((annot (car data))
(glyph (annotation-glyph annot)))
@@ -474,7 +474,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
(set-annotation-data annot (cons annot glyph))))
(defun gnus-picons-clear-cache ()
- "Clear the picons cache"
+ "Clear the picons cache."
(interactive)
(setq gnus-picons-glyph-alist nil
gnus-picons-url-alist nil))
@@ -730,7 +730,7 @@ none, and whose CDR is the corresponding element of DOMAINS."
(error "Unknown picon job tag %s" tag)))))))
(defun gnus-picons-next-job ()
- "Start processing the job queue if it is not in progress"
+ "Start processing the job queue if it is not in progress."
(unless gnus-picons-job-already-running
(gnus-picons-next-job-internal)))
6 lisp/gnus-score.el
View
@@ -1075,8 +1075,9 @@ SCORE is the score to add."
;; Load score file FILE. Returns a list a retrieved score-alists.
(let* ((file (expand-file-name
(or (and (string-match
- (concat "^" (expand-file-name
- gnus-kill-files-directory))
+ (concat "^" (regexp-quote
+ (expand-file-name
+ gnus-kill-files-directory)))
(expand-file-name file))
file)
(concat (file-name-as-directory gnus-kill-files-directory)
@@ -2739,6 +2740,7 @@ The list is determined from the variable gnus-score-file-alist."
(interactive (list gnus-global-score-files))
(let (out)
(while files
+ ;; #### /$ Unix-specific?
(if (string-match "/$" (car files))
(setq out (nconc (directory-files
(car files) t
289 lisp/gnus-sum.el
View
@@ -2856,11 +2856,90 @@ If NO-DISPLAY, don't generate a summary buffer."
gnus-newsgroup-dependencies)))
threads))
+;; Build the thread tree.
+(defun gnus-dependencies-add-header (header dependencies force-new)
+ "Enter HEADER into the DEPENDENCIES table if it is not already there.
+
+If FORCE-NEW is not NIL, enter HEADER into the DEPENDENCIES table even
+if it was already present.
+
+If `gnus-summary-ignore-duplicates' is NIL then duplicate Message-IDs
+will not be entered in the DEPENDENCIES table. Otherwise duplicate
+Message-IDs will be renamed be renamed to a unique Message-ID before
+being entered.
+
+Returns HEADER if it was entered in the DEPENDENCIES. Returns NIL otherwise."
+
+ (let* ((id (mail-header-id header))
+ (id-dep (and id (intern id dependencies)))
+ ref ref-dep ref-header)
+ ;; Enter this `header' in the `dependencies' table
+ (cond
+ ((not id-dep)
+ (setq header nil))
+ ;; The first two cases do the normal part : enter a new `header'
+ ;; in the `dependencies' table,
+ ((not (boundp id-dep))
+ (set id-dep (list header)))
+ ((null (car (symbol-value id-dep)))
+ (setcar (symbol-value id-dep) header))
+
+ ;; From here the `header' was already present in the
+ ;; `dependencies' table.
+
+ (force-new
+ ;; Overrides an existing entry,
+ ;; Just set the header part of the entry.
+ (setcar (symbol-value id-dep) header))
+
+ ;; Renames the existing `header' to a unique Message-ID.
+ ((not gnus-summary-ignore-duplicates)
+ ;; An article with this Message-ID has already been seen.
+ ;; We rename the Message-ID.
+ (set (setq id-dep (intern (setq id (nnmail-message-id)) dependencies))
+ (list header))
+ (mail-header-set-id header id))
+
+ ;; - The last case ignores an existing entry, except it adds
+ ;; any additional Xrefs (in case the two articles came from
+ ;; different servers.
+ ;; Also sets `header' to `nil' meaning that the
+ ;; `dependencies' table was *not* modified.
+ (t
+ (mail-header-set-xref
+ (car (symbol-value id-dep))
+ (concat (or (mail-header-xref (car (symbol-value id-dep)))
+ "")
+ (or (mail-header-xref header) "")))
+ (setq header nil)))
+
+ (when header
+ ;; First check if that we are not creating a References loop.
+ (setq ref (gnus-parent-id (mail-header-references header)))
+ (while (and ref
+ (setq ref-dep (intern-soft ref dependencies))
+ (boundp ref-dep)
+ (setq ref-header (car (symbol-value ref-dep))))
+ (if (string= id ref)
+ ;; Yuk ! This is a reference loop. Make the article be a
+ ;; root article.
+ (progn
+ (mail-header-set-references (car (symbol-value id-dep)) "none")
+ (setq ref nil))
+ (setq ref (gnus-parent-id (mail-header-references ref-header)))))
+ (setq ref (gnus-parent-id (mail-header-references header)))
+ (setq ref-dep (intern (or ref "none") dependencies))
+ (if (boundp ref-dep)
+ (setcdr (symbol-value ref-dep)
+ (nconc (cdr (symbol-value ref-dep))
+ (list (symbol-value id-dep))))
+ (set ref-dep (list nil (symbol-value id-dep)))))
+ header))
+
(defun gnus-build-sparse-threads ()
(let ((headers gnus-newsgroup-headers)
- (deps gnus-newsgroup-dependencies)
header references generation relations
- cthread subject child end pthread relation new-child children)
+ cthread subject child end pthread relation new-child)
;; First we create an alist of generations/relations, where
;; generations is how much we trust the relation, and the relation
;; is parent/child.
@@ -2876,51 +2955,28 @@ If NO-DISPLAY, don't generate a summary buffer."
(setq generation 0)
(while (search-backward ">" nil t)
(setq end (1+ (point)))
- (when (search-backward "<" nil t)
- ;; This is a rather weak for of loop-checking, but if
- ;; an article contains the same Message-ID twice in
- ;; the References header, this will catch it. I haven't
- ;; considered other forms of thread loop preventions,
- ;; though -- I think one should probably go through
- ;; the entire thread after building it and break
- ;; any loops that are found.
- (unless (member (setq new-child (buffer-substring (point) end))
- children)
+ (if (search-backward "<" nil t)
(push (list (incf generation)
child (setq child new-child)
subject)
- relations)
- (push child children))))
+ relations)))
(push (list (1+ generation) child nil subject) relations)
(erase-buffer)))
(kill-buffer (current-buffer)))
;; Sort over trustworthiness.
- (setq relations (sort relations 'car-less-than-car))
- (while (setq relation (pop relations))
- (when (if (boundp (setq cthread (intern (cadr relation) deps)))
- (unless (car (symbol-value cthread))
- ;; Make this article the parent of these threads.
- (setcar (symbol-value cthread)
- (vector gnus-reffed-article-number
- (cadddr relation)
- "" ""
- (cadr relation)
- (or (caddr relation) "") 0 0 "")))
- (set cthread (list (vector gnus-reffed-article-number
- (cadddr relation)
- "" "" (cadr relation)
- (or (caddr relation) "") 0 0 ""))))
- (push gnus-reffed-article-number gnus-newsgroup-limit)
- (push gnus-reffed-article-number gnus-newsgroup-sparse)
- (push (cons gnus-reffed-article-number gnus-sparse-mark)
- gnus-newsgroup-reads)
- (decf gnus-reffed-article-number)
- ;; Make this new thread the child of its parent.
- (if (boundp (setq pthread (intern (or (caddr relation) "none") deps)))
- (setcdr (symbol-value pthread)
- (nconc (cdr (symbol-value pthread))
- (list (symbol-value cthread))))
- (set pthread (list nil (symbol-value cthread))))))
+ (mapc #'(lambda (relation)
+ (when (gnus-dependencies-add-header
+ (make-full-mail-header gnus-reffed-article-number
+ (cadddr relation)
+ "" "" (cadr relation)
+ (or (caddr relation) "") 0 0 "")
+ gnus-newsgroup-dependencies nil)
+ (push gnus-reffed-article-number gnus-newsgroup-limit)
+ (push gnus-reffed-article-number gnus-newsgroup-sparse)
+ (push (cons gnus-reffed-article-number gnus-sparse-mark)
+ gnus-newsgroup-reads)
+ (decf gnus-reffed-article-number)))
+ (sort relations 'car-less-than-car))
(gnus-message 7 "Making sparse threads...done")))
(defun gnus-build-old-threads ()
@@ -2939,8 +2995,7 @@ If NO-DISPLAY, don't generate a summary buffer."
(setq heads (cdr heads))
(setq id (symbol-name refs))
(while (and (setq id (gnus-build-get-header id))
- (not (car (gnus-gethash
- id gnus-newsgroup-dependencies)))))
+ (not (car (gnus-id-to-thread id)))))
(setq heads nil)))))
gnus-newsgroup-dependencies)))
@@ -2948,8 +3003,7 @@ If NO-DISPLAY, don't generate a summary buffer."
;; Look through the buffer of NOV lines and find the header to
;; ID. Enter this line into the dependencies hash table, and return
;; the id of the parent article (if any).
- (let ((deps gnus-newsgroup-dependencies)
- found header)
+ (let (found header)
(prog1
(save-excursion
(set-buffer nntp-server-buffer)
@@ -2965,8 +3019,8 @@ If NO-DISPLAY, don't generate a summary buffer."
(when found
(beginning-of-line)
(and
- (setq header (gnus-nov-parse-line
- (read (current-buffer)) deps))
+ (setq header (gnus-nov-parse-line (read (current-buffer))
+ gnus-newsgroup-dependencies))
(gnus-parent-id (mail-header-references header))))))
(when header
(let ((number (mail-header-number header)))
@@ -2981,8 +3035,7 @@ If NO-DISPLAY, don't generate a summary buffer."
(defun gnus-build-all-threads ()
"Read all the headers."
- (let ((deps gnus-newsgroup-dependencies)
- (gnus-summary-ignore-duplicates t)
+ (let ((gnus-summary-ignore-duplicates t)
found header article)
(save-excursion
(set-buffer nntp-server-buffer)
@@ -2991,7 +3044,8 @@ If NO-DISPLAY, don't generate a summary buffer."
(while (not (eobp))
(ignore-errors
(setq article (read (current-buffer)))
- (setq header (gnus-nov-parse-line article deps)))
+ (setq header (gnus-nov-parse-line article
+ gnus-newsgroup-dependencies)))
(when header
(push header gnus-newsgroup-headers)
(if (memq (setq article (mail-header-number header))
@@ -3177,8 +3231,7 @@ If NO-DISPLAY, don't generate a summary buffer."
(defun gnus-root-id (id)
"Return the id of the root of the thread where ID appears."
(let (last-id prev)
- (while (and id (setq prev (car (gnus-gethash
- id gnus-newsgroup-dependencies))))
+ (while (and id (setq prev (car (gnus-id-to-thread id))))
(setq last-id id
id (gnus-parent-id (mail-header-references prev))))
last-id))
@@ -3190,8 +3243,7 @@ If NO-DISPLAY, don't generate a summary buffer."
(defun gnus-remove-thread (id &optional dont-remove)
"Remove the thread that has ID in it."
- (let ((dep gnus-newsgroup-dependencies)
- headers thread last-id)
+ (let (headers thread last-id)
;; First go up in this thread until we find the root.
(setq last-id (gnus-root-id id))
(setq headers (list (car (gnus-id-to-thread last-id))
@@ -3224,7 +3276,7 @@ If NO-DISPLAY, don't generate a summary buffer."
(if thread
(unless dont-remove
(setq gnus-newsgroup-threads (delq thread gnus-newsgroup-threads)))
- (setq thread (gnus-gethash last-id dep)))
+ (setq thread (gnus-id-to-thread last-id)))
(when thread
(prog1
thread ; We return this thread.
@@ -3389,8 +3441,7 @@ Unscored articles will be counted as having a score of zero."
(apply gnus-thread-score-function
(or (append
(mapcar 'gnus-thread-total-score
- (cdr (gnus-gethash (mail-header-id root)
- gnus-newsgroup-dependencies)))
+ (cdr (gnus-id-to-thread (mail-header-id root))))
(when (> (mail-header-number root) 0)
(list (or (cdr (assq (mail-header-number root)
gnus-newsgroup-scored))
@@ -4339,43 +4390,11 @@ The resulting hash table is returned, or nil if no Xrefs were found."
(funcall gnus-alter-header-function header)
(setq id (mail-header-id header)
ref (gnus-parent-id (mail-header-references header))))
-
- ;; We do the threading while we read the headers. The
- ;; message-id and the last reference are both entered into
- ;; the same hash table. Some tippy-toeing around has to be
- ;; done in case an article has arrived before the article
- ;; which it refers to.
- (if (boundp (setq id-dep (intern id dependencies)))
- (if (and (car (symbol-value id-dep))
- (not force-new))
- ;; An article with this Message-ID has already been seen.
- (if gnus-summary-ignore-duplicates
- ;; We ignore this one, except we add
- ;; any additional Xrefs (in case the two articles
- ;; came from different servers).
- (progn
- (mail-header-set-xref
- (car (symbol-value id-dep))
- (concat (or (mail-header-xref
- (car (symbol-value id-dep)))
- "")
- (or (mail-header-xref header) "")))
- (setq header nil))
- ;; We rename the Message-ID.
- (set
- (setq id-dep (intern (setq id (nnmail-message-id))
- dependencies))
- (list header))
- (mail-header-set-id header id))
- (setcar (symbol-value id-dep) header))
- (set id-dep (list header)))
- (when header
- (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
- (setcdr (symbol-value ref-dep)
- (nconc (cdr (symbol-value ref-dep))
- (list (symbol-value id-dep))))
- (set ref-dep (list nil (symbol-value id-dep))))
- (push header headers))
+
+ (setq header
+ (gnus-dependencies-add-header header dependencies force-new))
+ (if header
+ (push header headers))
(goto-char (point-max))
(widen))
(nreverse headers)))))
@@ -4415,73 +4434,31 @@ The resulting hash table is returned, or nil if no Xrefs were found."
(forward-char))
(setq header
- (vector
+ (make-full-mail-header
number ; number
(funcall
gnus-unstructured-field-decoder (gnus-nov-field)) ; subject
(funcall
gnus-structured-field-decoder (gnus-nov-field)) ; from
(gnus-nov-field) ; date
- (setq id (or (gnus-nov-field)
- (nnheader-generate-fake-message-id))) ; id
- (progn
- (let ((beg (point)))
- (search-forward "\t" eol)
- (if (search-backward ">" beg t)
- (setq ref
- (buffer-substring
- (1+ (point))
- (or (search-backward "<" beg t) beg)))
- (setq ref nil))
- (goto-char beg))
- (gnus-nov-field)) ; refs
+ (or (gnus-nov-field)
+ (nnheader-generate-fake-message-id)) ; id
+ (gnus-nov-field) ; refs
(gnus-nov-read-integer) ; chars
(gnus-nov-read-integer) ; lines
- (if (= (following-char) ?\n)
- nil
+ (unless (= (following-char) ?\n)
(gnus-nov-field))))) ; misc
(widen))
(when gnus-alter-header-function
- (funcall gnus-alter-header-function header)
- (setq id (mail-header-id header)
- ref (gnus-parent-id (mail-header-references header))))
-
- ;; We build the thread tree.
- (when (equal id ref)
- ;; This article refers back to itself. Naughty, naughty.
- (setq ref nil))
- (if (boundp (setq id-dep (intern id dependencies)))
- (if (and (car (symbol-value id-dep))
- (not force-new))
- ;; An article with this Message-ID has already been seen.
- (if gnus-summary-ignore-duplicates
- ;; We ignore this one, except we add any additional
- ;; Xrefs (in case the two articles came from different
- ;; servers.
- (progn
- (mail-header-set-xref
- (car (symbol-value id-dep))
- (concat (or (mail-header-xref
- (car (symbol-value id-dep)))
- "")
- (or (mail-header-xref header) "")))
- (setq header nil))
- ;; We rename the Message-ID.
- (set
- (setq id-dep (intern (setq id (nnmail-message-id))
- dependencies))
- (list header))
- (mail-header-set-id header id))
- (setcar (symbol-value id-dep) header))
- (set id-dep (list header)))
- (when header
- (if (boundp (setq ref-dep (intern (or ref "none") dependencies)))
- (setcdr (symbol-value ref-dep)
- (nconc (cdr (symbol-value ref-dep))
- (list (symbol-value id-dep))))
- (set ref-dep (list nil (symbol-value id-dep)))))
+ (funcall gnus-alter-header-function header))
+
+ (setq id (mail-header-id header)
+ ref (gnus-parent-id (mail-header-references header)))
+
+ (gnus-dependencies-add-header header dependencies force-new)
+
header))
;; Goes through the xover lines and returns a list of vectors
@@ -4611,9 +4588,9 @@ This is meant to be called in `gnus-article-internal-prepare-hook'."
;;; Process/prefix in the summary buffer
(defun gnus-summary-work-articles (n)
- "Return a list of articles to be worked upon. The prefix argument,
-the list of process marked articles, and the current article will be
-taken into consideration."
+ "Return a list of articles to be worked upon.
+The prefix argument, the list of process marked articles, and the
+current article will be taken into consideration."
(save-excursion
(set-buffer gnus-summary-buffer)
(cond
@@ -5129,8 +5106,8 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
(gnus-handle-ephemeral-exit quit-config)))))
(defun gnus-handle-ephemeral-exit (quit-config)
- "Handle movement when leaving an ephemeral group. The state
-which existed when entering the ephemeral is reset."
+ "Handle movement when leaving an ephemeral group.
+The state which existed when entering the ephemeral is reset."
(if (not (buffer-name (car quit-config)))
(gnus-configure-windows 'group 'force)
(set-buffer (car quit-config))
@@ -5895,7 +5872,9 @@ articles that are younger than AGE days."
(setq is-younger (nnmail-time-less
(nnmail-time-since (nnmail-date-to-time date))
cutoff))
- (when (if younger-p is-younger (not is-younger))
+ (when (if younger-p
+ (not is-younger)
+ is-younger)
(push (gnus-data-number d) articles))))
(gnus-summary-limit (nreverse articles)))
(gnus-summary-position-point)))
@@ -8714,9 +8693,7 @@ save those articles instead."
(when (and header
(gnus-summary-article-sparse-p (mail-header-number header)))
(let* ((parent (gnus-parent-id (mail-header-references header)))
- (thread
- (and parent
- (gnus-gethash parent gnus-newsgroup-dependencies))))
+ (thread (and parent (gnus-id-to-thread parent))))
(when thread
(delq (assq header thread) thread))))
;; We have to really fetch the header to this article.
4 lisp/gnus-topic.el
View
@@ -355,8 +355,8 @@ with some simple extensions.
;;; Generating group buffers
(defun gnus-group-prepare-topics (level &optional all lowest regexp list-topic topic-level)
- "List all newsgroups with unread articles of level LEVEL or lower, and
-use the `gnus-group-topics' to sort the groups.
+ "List all newsgroups with unread articles of level LEVEL or lower.
+Use the `gnus-group-topics' to sort the groups.
If ALL is non-nil, list groups that have no unread articles.
If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
(set-buffer gnus-group-buffer)
4 lisp/gnus-util.el
View
@@ -341,7 +341,7 @@
(message "")))
(defun gnus-dd-mmm (messy-date)
- "Return a string like DD-MMM from a big messy string"
+ "Return a string like DD-MMM from a big messy string."
(let ((datevec (ignore-errors (timezone-parse-date messy-date))))
(if (or (not datevec)
(string-equal "0" (aref datevec 1)))
@@ -376,7 +376,7 @@ Cache the result as a text property stored in DATE."
(format-time-string "%Y%m%dT%H%M%S" time))
(defun gnus-date-iso8601 (date)
- "Convert the DATE to YYMMDDTHHMMSS"
+ "Convert the DATE to YYMMDDTHHMMSS."
(condition-case ()
(gnus-time-iso8601 (gnus-date-get-time date))
(error "")))
4 lisp/gnus-uu.el
View
@@ -648,7 +648,7 @@ didn't work, and overwrite existing files. Otherwise, ask each time."
(gnus-summary-position-point))
(defun gnus-uu-mark-over (&optional score)
- "Mark all articles with a score over SCORE (the prefix.)"
+ "Mark all articles with a score over SCORE (the prefix)."
(interactive "P")
(let ((score (gnus-score-default score))
(data gnus-newsgroup-data))
@@ -1901,8 +1901,10 @@ If no file has been included, the user will be asked for a file."
(goto-char (point-max))
(insert (format "\n%s\n" gnus-uu-post-binary-separator))
+ ;; #### Unix-specific?
(when (string-match "^~/" file-path)
(setq file-path (concat "$HOME" (substring file-path 1))))
+ ;; #### Unix-specific?
(if (string-match "/[^/]*$" file-path)
(setq file-name (substring file-path (1+ (match-beginning 0))))
(setq file-name file-path))
4 lisp/gnus.el
View
@@ -250,7 +250,7 @@ is restarted, and sometimes reloaded."
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.6.10"
+(defconst gnus-version-number "5.6.11"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -2696,7 +2696,7 @@ Allow completion over sensible values."
;;;###autoload
(defun gnus-slave-no-server (&optional arg)
- "Read network news as a slave, without connecting to local server"
+ "Read network news as a slave, without connecting to local server."
(interactive "P")
(gnus-no-server arg t))
13 lisp/message.el
View
@@ -217,6 +217,11 @@ any confusion."
:group 'message-interface
:type 'regexp)
+(defcustom message-subject-re-regexp "^[ \t]*\\([Rr][Ee]:[ \t]*\\)*[ \t]*"
+ "*Regexp matching \"Re: \" in the subject line."
+ :group 'message-various
+ :type 'regexp)
+
;;;###autoload
(defcustom message-signature-separator "^-- *$"
"Regexp matching the signature separator."
@@ -1035,7 +1040,7 @@ The cdr of ech entry is a function for applying the face to a region.")
(defun message-strip-subject-re (subject)
"Remove \"Re:\" from subject lines."
- (if (string-match "^[Rr][Ee]: *" subject)
+ (if (string-match message-subject-re-regexp subject)
(substring subject (match-end 0))
subject))
@@ -1906,7 +1911,7 @@ the user from the mailer."
t))))
(defun message-send-via-mail (arg)
- "Send the current message via mail."
+ "Send the current message via mail."
(message-send-mail arg))
(defun message-send-via-news (arg)
@@ -3213,7 +3218,7 @@ Headers already prepared in the buffer are not modified."
message-id (message-fetch-field "message-id" t))
;; Remove any (buggy) Re:'s that are present and make a
;; proper one.
- (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
+ (when (string-match message-subject-re-regexp subject)
(setq subject (substring subject (match-end 0))))
(setq subject (concat "Re: " subject))
@@ -3334,7 +3339,7 @@ If TO-NEWSGROUPS, use that as the new Newsgroups line."
(setq distribution nil))
;; Remove any (buggy) Re:'s that are present and make a
;; proper one.
- (when (string-match "^[ \t]*[Rr][Ee]:[ \t]*" subject)
+ (when (string-match message-subject-re-regexp subject)
(setq subject (substring subject (match-end 0))))
(setq subject (concat "Re: " subject))
(widen))
40 lisp/nnfolder.el
View
@@ -396,12 +396,15 @@ time saver for large mailboxes.")
(nnfolder-possibly-change-group group)
(save-excursion
(set-buffer buffer)
+ (goto-char (point-min))
+ (when (looking-at "X-From-Line: ")
+ (replace-match "From "))
(nnfolder-normalize-buffer)
(set-buffer nnfolder-current-buffer)
(goto-char (point-min))
(if (not (nnfolder-goto-article article))
nil
- (nnfolder-delete-mail t t)
+ (nnfolder-delete-mail t)
(insert-buffer-substring buffer)
(nnfolder-save-buffer)
t)))
@@ -463,10 +466,9 @@ time saver for large mailboxes.")
(goto-char (point-min))
(while (and (search-forward marker nil t)
(re-search-forward number nil t))
- (setq activemin (min activemin
- (string-to-number (buffer-substring
- (match-beginning 0)
- (match-end 0))))))
+ (let ((newnum (string-to-number (match-string 0))))
+ (if (nnmail-within-headers-p)
+ (setq activemin (min activemin newnum)))))
(setcar active activemin))))
(defun nnfolder-article-string (article)
@@ -498,19 +500,21 @@ Returns t if successful, nil otherwise."
(when found
(nnmail-search-unix-mail-delim-backward))))
-(defun nnfolder-delete-mail (&optional force leave-delim)
- "Delete the message that point is in."
- (save-excursion
- (delete-region
- (save-excursion
- (nnmail-search-unix-mail-delim-backward)
- (if leave-delim (progn (forward-line 1) (point))
- (point)))
- (progn
- (forward-line 1)
- (if (nnmail-search-unix-mail-delim)
- (point)
- (point-max))))))
+(defun nnfolder-delete-mail (&optional leave-delim)
+ "Delete the message that point is in.
+If optional argument LEAVE-DELIM is t, then mailbox delimiter is not
+deleted. Point is left where the deleted region was."
+ (delete-region
+ (save-excursion
+ (forward-line 1) ; in case point is at beginning of message already
+ (nnmail-search-unix-mail-delim-backward)
+ (if leave-delim (progn (forward-line 1) (point))
+ (point)))
+ (progn
+ (forward-line 1)
+ (if (nnmail-search-unix-mail-delim)
+ (point)
+ (point-max)))))
(defun nnfolder-possibly-change-group (group &optional server dont-check)
;; Change servers.
2  lisp/nnkiboze.el
View
@@ -182,7 +182,7 @@
;;;###autoload
(defun nnkiboze-generate-groups ()
- "Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups
+ "\"Usage: emacs -batch -l nnkiboze -f nnkiboze-generate-groups\".
Finds out what articles are to be part of the nnkiboze groups."
(interactive)
(let ((nnmail-spool-file nil)
14 lisp/nnmail.el
View
@@ -218,7 +218,7 @@ several files - eg. \".spool[0-9]*\"."
:type 'function)
(defcustom nnmail-crosspost-link-function
- (if (string-match "windows-nt\\|emx" (format "%s" system-type))
+ (if (string-match "windows-nt\\|emx" (symbol-name system-type))
'copy-file
'add-name-to-file)
"*Function called to create a copy of a file.
@@ -541,7 +541,7 @@ parameter. It should return nil, `warn' or `delete'."
"Convert DAYS into time."
(let* ((seconds (* 1.0 days 60 60 24))
(rest (expt 2 16))
- (ms (condition-case nil (round (/ seconds rest))
+ (ms (condition-case nil (floor (/ seconds rest))
(range-error (expt 2 16)))))
(list ms (condition-case nil (round (- seconds (* ms rest)))
(range-error (expt 2 16))))))
@@ -717,10 +717,12 @@ return nil if FILE is a spool file or the procmail group for which it
is a spool. If not using procmail, return GROUP."
(if (or (eq nnmail-spool-file 'procmail)
nnmail-use-procmail)
- (if (string-match (concat "^" (expand-file-name
- (file-name-as-directory
- nnmail-procmail-directory))
- "\\([^/]*\\)" nnmail-procmail-suffix "$")
+ (if (string-match (concat "^" (regexp-quote
+ (expand-file-name
+ (file-name-as-directory
+ nnmail-procmail-directory)))
+ "\\([^/]*\\)"
+ (regexp-quote nnmail-procmail-suffix) "$")
(expand-file-name file))
(let ((procmail-group (substring (expand-file-name file)
(match-beginning 1)
4 lisp/smiley.el
View
@@ -192,7 +192,7 @@ above them."
(smiley-buffer (current-buffer) beg end))
(defun smiley-toggle-extent (event)
- "Toggle smiley at given point"
+ "Toggle smiley at given point."
(interactive "e")
(let* ((ant (event-glyph-extent event))
(pt (event-closest-point event))
@@ -303,7 +303,7 @@ Mouse button3 - menu"))
(defvar gnus-article-buffer)
;;;###autoload
(defun gnus-smiley-display ()
- "Display \"smileys\" as small graphical icons."
+ "Display \"smileys\" as small graphical icons."
(interactive)
(save-excursion
(set-buffer gnus-article-buffer)
6 texi/ChangeLog
View
@@ -1,3 +1,9 @@
+Wed Jun 3 03:30:47 1998 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * message.texi (Message Headers): Addition.
+
+ * gnus.texi (Compatibility): Addition.
+
Tue May 19 02:44:31 1998 Mike Pullen <mpullen@midwest.net>
* gnus.texi.orig: Typo fixes.
26 texi/gnus.texi
View
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.6.10 Manual
+@settitle Gnus 5.6.11 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 Gnus 5.6.10 Manual
+@title Gnus 5.6.11 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 Gnus 5.6.10.
+This manual corresponds to Gnus 5.6.11.
@end ifinfo
@@ -15371,6 +15371,12 @@ Overall, a casual user who hasn't written much code that depends on
@sc{gnus} internals should suffer no problems. If problems occur,
please let me know by issuing that magic command @kbd{M-x gnus-bug}.
+@vindex gnus-bug-create-help-buffer
+If you are in the habit of sending bug reports @emph{very} often, you
+may find the helpful help buffer annoying after a while. If so, set
+@code{gnus-bug-create-help-buffer} to @code{nil} to avoid having it pop
+up at you.
+
@node Conformity
@subsection Conformity
@@ -15557,6 +15563,7 @@ Russ Allbery,
Peter Arius,
Matt Armstrong,
Marc Auslander,
+Frank Bennett,
Robert Bihlmeyer,
Chris Bone,
Mark Borges,
@@ -15564,6 +15571,7 @@ Mark Boyns,
Lance A. Brown,
Kees de Bruin,
Martin Buchholz,
+Joe Buehler,
Kevin Buhr,
Alastair Burt,
Joao Cachopo,
@@ -15598,6 +15606,8 @@ D. Hall,
Magnus Hammerin,
Kenichi Handa, @c Handa
Raja R. Harinath,
+Yoshiki Hayashi, @c ?
+P. E. Jareth Hein,
Hisashige Kenji, @c Hisashige
Marc Horowitz,
Gunnar Horrigmo,
@@ -15624,12 +15634,13 @@ James LewisMoss,
Christian Limpach,
Markus Linnala,
Dave Love,
+Mike McEwan,
Tonny Madsen,
Shlomo Mahlab,
Nat Makarevitch,
Istvan Marko,
David Martin,
-Jason R Mastaler,
+Jason R. Mastaler,
Gordon Matzigkeit,
Timo Metzemakers,
Richard Mlynarik,
@@ -15649,6 +15660,8 @@ Stephen Peters,
Jens-Ulrik Holger Petersen,
Ulrich Pfeifer,
John McClary Prevost,
+Mike Pullen,
+Jim Radford,
Colin Rafferty,
Lasse Rasinen,
Lars Balker Rasmussen,
@@ -15658,6 +15671,7 @@ Roland B. Roberts,
Bart Robinson,
Christian von Roques,
Jason Rumney,
+Wolfgang Rupprecht,
Jay Sachs,
Dewey M. Sasser,
Loren Schall,
@@ -15714,7 +15728,7 @@ actually are people who are using Gnus. Who'd'a thunk it!
* ding Gnus:: New things in Gnus 5.0/5.1, the first new Gnus.
* September Gnus:: The Thing Formally Known As Gnus 5.3/5.3.
* Red Gnus:: Third time best---Gnus 5.4/5.5.
-* Quassia Gnus:: Two times two is four, or Gnus 5.6.10.
+* Quassia Gnus:: Two times two is four, or Gnus 5.6.11.
@end menu
These lists are, of course, just @emph{short} overviews of the
@@ -16249,7 +16263,7 @@ Emphasized text can be properly fontisized:
@node Quassia Gnus
@subsubsection Quassia Gnus
-New features in Gnus 5.6.10:
+New features in Gnus 5.6.11:
@itemize @bullet
18 texi/message.texi
View
@@ -1,7 +1,7 @@
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 5.6.10 Manual
+@settitle Message 5.6.11 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 5.6.10 Manual
+@title Message 5.6.11 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 5.6.10. Message is distributed with
+This manual corresponds to Message 5.6.11. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.
@@ -717,6 +717,18 @@ Allegedly.
This string is inserted at the end of the headers in all message
buffers.
+@item message-subject-re-regexp
+@vindex message-subject-re-regexp
+Responses to messages have subjects that start with @samp{Re: }. This
+is @emph{not} an abbreviation of the English word ``response'', but in
+Latin, and means ``in response to''. Some illiterate nincompoops have
+failed to grasp this fact, and have ``internationalized'' their software
+to use abonimations like @samp{Aw: } (``antwort'') or @samp{Sv: }
+(``svar'') instead, which is meaningless and evil. However, you may
+have to deal with users that use these evil tools, in which case you may
+set this variable to a regexp that matches these prefixes. Myself, I
+just throw away non-compliant mail.
+
@end table
Please sign in to comment.
Something went wrong with that request. Please try again.