+Sun May 21 00:11:00 1995 Lars Magne Ingebrigtsen <larsi@hymir.ifi.uio.no>
+
+ * gnus-cache.el (gnus-cache-retrieve-headers): Don't bug out on
+ changed source groups.
+
+ * gnus.el (gnus-matches-options-n): Did not find matching options.
+ (gnus-configure-windows): Signal error with missing point.
+ (gnus-narrow-to-headers): Don't bug out on malformed mail.
+
+ * gnus-uu.el: Made prompts more explicit.
+
+ * gnus.el (gnus-article-prepare): Show thread before doing visual
+ marks.
+ (gnus-summary-scroll-up): Would recenter oddly.
+
+Sat May 20 23:37:42 1995 Lars Magne Ingebrigtsen <larsi@hymir.ifi.uio.no>
+
+ * gnus-score.el (gnus-score-headers): gnus-current-score-file
+ would be nil.
+
+ * gnus-cite.el (gnus-supercite-regexp): New value.
+
+Sat May 20 04:56:14 1995 Lars Ingebrigtsen <lars@eyesore.no>
+
+ * nnbabyl.el (nnbabyl-retrieve-headers): Faster routine.
+
+ * nnheader.el (nnheader-insert-head): New function to speed up
+ HEADer reading.
+
+ * nnspool.el (nnspool-retrieve-headers): Use it.
+ * nnmh.el (nnmh-retrieve-headers): Ditto.
+ * nnml.el (nnml-retrieve-headers): Ditto.
+
+ * nnmh.el (nnmh-be-safe): New variable and serious speedup.
+
+Sat May 20 17:11:50 1995 Lars Ingebrigtsen <lars@eyesore.no>
+
+ * gnus.el: 0.74 is released.
+
Sat May 20 00:11:59 1995 Lars Ingebrigtsen <lars@eyesore.no>
+ * gnus.el: 0.73 is released.
+
* gnus-msg.el (gnus-mail-reply-using-mail): Don't barf wifout a
message-id.
(cache-file (gnus-cache-file-name group ".overview"))
type)
(let ((gnus-use-cache nil))
- (setq type (gnus-retrieve-headers articles group)))
+ (setq type (and articles (gnus-retrieve-headers articles group))))
(gnus-cache-save-buffers)
(save-excursion
(cond ((not (file-exists-p cache-file))
;;; Customization:
-(defvar gnus-cite-prefix-regexp "^[^\n]*[]>|:}+]"
+(defvar gnus-cite-prefix-regexp
+ "^[]>|:}+ ]*[]>|:}+]\\(.*>\\)?\\|^.*>"
"Regexp matching the longest possible citation prefix on a line.")
(defvar gnus-cite-max-prefix 20
(concat "^\\(" gnus-cite-prefix-regexp "\\)? *"
">>>>> +\"\\([^\"\n]+\\)\" +==")
"Regexp matching normal SuperCite attribution lines.
-The first regexp group should match a prefix added by another package.
-The second regexp group should match the SuperCite attribution itself.")
+The first regexp group should match a prefix added by another package.")
(defvar gnus-supercite-secondary-regexp "^.*\"\\([^\"\n]+\\)\" +=="
"Regexp matching mangled SuperCite attribution lines.
(put-text-property start end (car props) (cadr props) buffer)
(remove-text-properties start end ()))))
- (or (fboundp 'make-overlay (fset 'make-overlay 'make-extent)))
- (or (fboundp 'over-lay-put (fset 'overlay-put 'set-extent-property)))
- (or (boundp 'standard-display-table (setq standard-display-table nil)))
+ (or (fboundp 'make-overlay) (fset 'make-overlay 'make-extent))
+ (or (fboundp 'overlay-put) (fset 'overlay-put 'set-extent-property))
+ (or (fboundp 'move-overlay)
+ (defun move-overlay (extent start end &optional buffer)
+ (set-extent-endpoints extent start end)))
+ (or (boundp 'standard-display-table) (setq standard-display-table nil))
(if (not gnus-visual)
()
(now (gnus-day-number (current-time-string)))
(expire (- now gnus-score-expiry-days))
(headers gnus-newsgroup-headers)
- (gnus-current-score-file gnus-current-score-file)
+ (current-score-file gnus-current-score-file)
entry header)
(gnus-message 5 "Scoring...")
;; Create articles, an alist of the form `(HEADER . SCORE)'.
(save-excursion
(set-buffer (get-buffer-create "*Headers*"))
(buffer-disable-undo (current-buffer))
+
+ ;; Set the global variant of this variable.
+ (setq gnus-current-score-file current-score-file)
;; score orphans
(if gnus-orphan-score
(progn
-(defun gnus-score-followup (scores header now expire)
+(defun gnus-score-followup (scores header now expire &optional trace)
;; Insert the unique article headers in the buffer.
(let ((gnus-score-index (nth 1 (assoc header gnus-header-index)))
(current-score-file gnus-current-score-file)
"Decodes and saves the resulting file."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Uudecode and save in dir: "
gnus-uu-default-dir
gnus-uu-default-dir t)))
(gnus-uu-decode-with-method 'gnus-uu-uustrip-article n dir))
"Unshars and saves the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Unshar and save in dir: "
gnus-uu-default-dir
gnus-uu-default-dir t)))
(gnus-uu-decode-with-method 'gnus-uu-unshar-article n dir))
"Saves the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file? "
- gnus-uu-default-dir
- gnus-uu-default-dir)))
+ (read-file-name
+ (if gnus-uu-save-separate-articles
+ "Save articles is dir: "
+ "Save articles in file: ")
+ gnus-uu-default-dir
+ gnus-uu-default-dir)))
(setq gnus-uu-saved-article-name file)
(gnus-uu-decode-with-method 'gnus-uu-save-article n nil t)
(setq gnus-uu-generated-file-list
"Unbinhexes the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Unbinhex and save in dir: "
gnus-uu-default-dir
gnus-uu-default-dir t)))
(gnus-uu-decode-with-method 'gnus-uu-binhex-article n dir))
"Decodes, views and saves the resulting file."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Uudecode, view and save in dir: "
gnus-uu-default-dir
gnus-uu-default-dir t)))
(let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
"Unshars and saves the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Unshar, view and save in dir: "
gnus-uu-default-dir
gnus-uu-default-dir t)))
(let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
"Saves and views the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file? "
- gnus-uu-default-dir gnus-uu-default-dir)))
+ (read-file-name (if gnus-uu-save-separate-articles
+ "Save articles is dir: "
+ "Save articles in file: ")
+ gnus-uu-default-dir gnus-uu-default-dir)))
(let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
(gnus-uu-decode-save n file)))
"Unbinhexes and views the current article."
(interactive
(list current-prefix-arg
- (read-file-name "Where do you want to save the file(s)? "
+ (read-file-name "Unbinhex, view and save in dir: "
gnus-uu-default-dir gnus-uu-default-dir)))
(let ((gnus-view-pseudos (or gnus-view-pseudos 'automatic)))
(gnus-uu-decode-binhex n file)))
;; Fix by Mike Dugan <dugan@bucrf16.bu.edu>.
(from (if (get-text-property beg 'mouse-face)
beg
- (next-single-property-change
- beg 'mouse-face nil end)))
- (to (next-single-property-change
- from 'mouse-face nil end)))
- (if (< to beg)
+ (1+ (or (next-single-property-change
+ beg 'mouse-face nil end)
+ end))))
+ (to (1- (or (next-single-property-change
+ from 'mouse-face nil end)
+ end))))
+ ;; If no mouse-face prop on line (e.g. xemacs) we
+ ;; will have to = from = end, so we highlight the
+ ;; entire line instead.
+ (if (= to from)
(progn
(setq from beg)
(setq to end)))
If this variable is nil, scoring will be disabled.")
(defvar gnus-group-default-list-level gnus-level-subscribed
- "*Default listing level.")
+ "*Default listing level.
+Ignored if `gnus-group-use-permanent-levels' is nil.")
(defvar gnus-group-use-permanent-levels nil
"*If non-nil, once you set a level, Gnus will use this level.")
(defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls & Boys)"
"The mail address of the Gnus maintainer.")
-(defconst gnus-version "(ding) Gnus v0.74"
+(defconst gnus-version "(ding) Gnus v0.75"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
(defun gnus-narrow-to-headers ()
(widen)
(save-excursion
- (goto-char (point-min))
- (if (search-forward "\n\n")
- (narrow-to-region 1 (1- (point))))))
+ (narrow-to-region
+ (goto-char (point-min))
+ (if (search-forward "\n\n" nil t)
+ (1- (point))
+ (point-max)))))
(defun gnus-update-format-specifications ()
(gnus-make-thread-indent-array)
(setq rule (cdr rule)))
;; Finally, we pop to the buffer that's supposed to have point.
+ (or jump-buffer (error "Missing `point' in spec for %s" setting))
+
(pop-to-buffer jump-buffer)
jump-buffer))
(gnus-eval-in-buffer-window
gnus-article-buffer
(setq endp (gnus-article-next-page lines)))
+ (gnus-summary-recenter)
(if endp
(cond (circular
(gnus-summary-beginning-of-article))
;; Selected subject is different from current article's.
(gnus-summary-display-article article)
(gnus-configure-windows 'article)
+ (gnus-summary-recenter)
(gnus-eval-in-buffer-window gnus-article-buffer
(gnus-article-prev-page lines))))
(gnus-summary-position-cursor))
(gnus-message 3 "End of message")))
((< lines 0)
(gnus-article-prev-page (- lines))))))
+ (gnus-summary-recenter)
(gnus-summary-position-cursor))
(defun gnus-summary-next-same-subject ()
(gnus-get-header-by-number gnus-current-article)
gnus-article-current
(cons gnus-newsgroup-name gnus-current-article))
+ (gnus-summary-show-thread)
(run-hooks 'gnus-mark-article-hook)
(gnus-set-mode-line 'summary)
(and gnus-visual
(t
(let ((regs gnus-newsrc-options-n))
(while (and regs
- (not (string-match (car (car gnus-newsrc-options-n)) group)))
+ (not (string-match (car (car regs)) group)))
(setq regs (cdr regs)))
(and regs (cdr (car regs)))))))
(let ((file nil)
(number (length sequence))
(count 0)
- beg article art-string start stop)
+ article art-string start stop)
(nnbabyl-possibly-change-newsgroup newsgroup)
(while sequence
(setq article (car sequence))
(setq art-string (nnbabyl-article-string article))
(set-buffer nnbabyl-mbox-buffer)
(if (or (search-forward art-string nil t)
- (progn (goto-char (point-min))
- (search-forward art-string nil t)))
+ (search-backward art-string nil t))
(progn
- (setq start
- (save-excursion
- (re-search-backward
- (concat "^" nnbabyl-mail-delimiter) nil t)
- (while (and (not (looking-at ".+:"))
- (zerop (forward-line 1))))
- (point)))
+ (re-search-backward (concat "^" nnbabyl-mail-delimiter) nil t)
+ (while (and (not (looking-at ".+:"))
+ (zerop (forward-line 1))))
+ (setq start (point))
(search-forward "\n\n" nil t)
(setq stop (1- (point)))
(set-buffer nntp-server-buffer)
- (insert (format "221 %d Article retrieved.\n" article))
- (setq beg (point))
+ (insert "221 " (int-to-string article) " Article retrieved.\n")
(insert-buffer-substring nnbabyl-mbox-buffer start stop)
(goto-char (point-max))
(insert ".\n")))
(set (car (car state)) (nth 1 (car state)))
(setq state (cdr state))))
+;; Read the head of an article.
+(defun nnheader-insert-head (file)
+ (let ((beg 0)
+ found)
+ (while (and (eq 1024 (nth 1 (insert-file-contents
+ file nil beg (setq beg (+ 1024 beg)))))
+ (search-backward "\n\n" nil t)))))
+
+
(provide 'nnheader)
;;; nnheader.el ends here
(cons nnmail-spool-file procmails))
(t
procmails))))
-
+
(provide 'nnmail)
;;; nnml.el ends here
(require 'gnus)
(defvar nnmh-directory "~/Mail/"
- "Mail directory.")
+ "*Mail spool directory.")
(defvar nnmh-get-new-mail t
- "If non-nil, nnmh will check the incoming mail file and split the mail.")
+ "*If non-nil, nnmh will check the incoming mail file and split the mail.")
(defvar nnmh-prepare-save-mail-hook nil
- "Hook run narrowed to an article before saving.")
+ "*Hook run narrowed to an article before saving.")
+
+(defvar nnmh-be-safe nil
+ "*If non-nil, nnmh will check all articles to make sure whether they are new or not.")
\f
(progn
(insert (format "221 %d Article retrieved.\n" article))
(setq beg (point))
- (insert-file-contents file)
+ (nnheader-insert-head file)
(goto-char beg)
(if (search-forward "\n\n" nil t)
(forward-char -1)
(if (file-directory-p pathname)
(progn
(setq nnmh-current-directory pathname)
- (and nnmh-get-new-mail (nnmh-update-gnus-unreads group))
+ (and nnmh-get-new-mail
+ nnmh-be-safe
+ (nnmh-update-gnus-unreads group))
(or dont-check
(progn
(setq dir
(progn
(insert (format "221 %d Article retrieved.\n" article))
(setq beg (point))
- (insert-file-contents file)
+ (nnheader-insert-head file)
(goto-char beg)
(if (search-forward "\n\n" nil t)
(forward-char -1)
(progn
(insert (format "221 %d Article retrieved.\n" article))
(setq beg (point))
- (insert-file-contents file)
+ (nnheader-insert-head file)
(goto-char beg)
(search-forward "\n\n" nil t)
(forward-char -1)