*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:21:02 +0000 (03:21 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:21:02 +0000 (03:21 +0000)
lisp/ChangeLog
lisp/custom.el
lisp/gnus-ems.el
lisp/gnus-msg.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nnmail.el

index 29b49e2..b701c7f 100644 (file)
@@ -1,5 +1,56 @@
+Tue Aug 22 22:20:06 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-forward-field): Allow negative args.
+       (custom-backward-field): New function.
+       (custom-mode-map): Bind it.
+       (custom-buffer-create): Document it.
+
+Tue Aug 22 21:05:42 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el (gnus-gnus-to-newsrc-format): Clear modtime.
+       (gnus-offer-save-summaries): Don't prompt for any summary buffers
+       that aren't Gnus summary buffers.
+       (gnus-setup-news): Would bug out when started with
+       `gnus-no-server'. 
+       (gnus-get-unread-articles): Would always connect to the server. 
+       (gnus-groups-to-gnus-format): Really find out whether the server
+       is native or not.
+       (gnus-article-hide-headers): Would never hide "From " lines. 
+
+       * gnus-msg.el (gnus-bug): Put point on Subject line.
+
+       * gnus-ems.el: Would set invisible props to nil in 19.28.
+
+       * gnus.el (gnus-summary-fetch-faq): Use `gnus-group-fetch-faq'.
+
+Tue Aug 22 15:16:15 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * nnmail.el (nnmail-article-group): Protect call to
+       `nnmail-split-methods' against errors.  We don't wan't the user to
+       lose mail if he made an error in `nnmail-split-methods'.
+
+Tue Aug 22 04:37:27 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus-vis.el (gnus-header-face-alist): SkyeBlue.
+
+       * gnus.el (gnus-newsrc-to-gnus-format): Would later cause bugouts
+       in a different function.
+
+Tue Aug 22 03:08:09 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el (gnus-offer-save-summaries): Would bug out under XEmacs
+       when there was no buffers to update.
+
+Tue Aug 22 02:31:52 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el: 0.99.17 is released.
+
+       * gnus.el: Bugged out during 19.28 compilation.
+
 Mon Aug 21 20:47:08 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
 
+       * gnus.el: 0.99.16 is releaed.
+
        * gnus.el (gnus-group-list-groups): Didn't use default-list-level.
 
        * nntp.el (nntp-retrieve-groups): Did not delete error messages. 
index 7a95e93..61634d2 100644 (file)
@@ -3,7 +3,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@iesd.auc.dk>
 ;; Keywords: help
-;; Version: 0.3
+;; Version: 0.4
 
 ;;; Commentary:
 ;;
@@ -1555,6 +1555,7 @@ If the optional argument GET is non-nil, use that to get external data."
     (custom-text-insert "This is a customization buffer.\n")
     (custom-help-insert "\n")
     (custom-help-button 'custom-forward-field)
+    (custom-help-button 'custom-backward-field)
     (custom-help-button 'custom-enter-value)
     (custom-help-button 'custom-field-factory-reset)
     (custom-help-button 'custom-field-reset)
@@ -1630,6 +1631,7 @@ If the optional argument GET is non-nil, use that to get external data."
   (setq custom-mode-map (make-sparse-keymap))
   (define-key custom-mode-map (if (string-match "XEmacs" emacs-version) [button2] [mouse-2]) 'custom-push-button)
   (define-key custom-mode-map "\t" 'custom-forward-field)
+  (define-key custom-mode-map "\M-\t" 'custom-backward-field)
   (define-key custom-mode-map "\r" 'custom-enter-value)
   (define-key custom-mode-map "\C-k" 'custom-kill-line)
   (define-key custom-mode-map "\C-c\C-r" 'custom-field-reset)
@@ -1676,8 +1678,25 @@ With optional ARG, move across that many fields."
                     (next-single-property-change (point-min) 'custom-tag)))
       (if next
          (goto-char next)
+       (error "No customization fields in this buffer."))))
+  (while (< arg 0)
+    (setq arg (1+ arg))
+    (let ((previous (if (get-text-property (1- (point)) 'custom-tag)
+                       (previous-single-property-change (point) 'custom-tag)
+                     (point))))
+      (setq previous
+           (or (previous-single-property-change previous 'custom-tag)
+               (previous-single-property-change (point-max) 'custom-tag)))
+      (if previous
+         (goto-char previous)
        (error "No customization fields in this buffer.")))))
 
+(defun custom-backward-field (arg)
+  "Move point to the previous field or button.
+With optional ARG, move across that many fields."
+  (interactive "p")
+  (custom-forward-field (- arg)))
+
 (defun custom-toggle-documentation (&optional arg)
   "Toggle display of documentation text.
 If the optional argument is non-nil, show text iff the argument is positive."
index 425284c..498a820 100644 (file)
@@ -197,9 +197,8 @@ pounce directly on the real variables themselves.")
      ((and (not (string-match "28.9" emacs-version)) 
           (not (string-match "29" emacs-version)))
       ;; Remove the `intangible' prop.
-      (eval-when-compile 
-       (setq gnus-hidden-properties nil))
-      (let ((props gnus-hidden-properties))
+      (let ((props (and (boundp 'gnus-hidden-properties) 
+                       gnus-hidden-properties)))
        (while (and props (not (eq (car (cdr props)) 'intangible)))
          (setq props (cdr props)))
        (and props (setcdr props (cdr (cdr (cdr props))))))
index 09e186f..9f53ff9 100644 (file)
@@ -1685,9 +1685,9 @@ If YANK is non-nil, include the original article."
     (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$"))
     (forward-line 1)
     (insert (format "%s\n%s\n\n\n\n\n" (gnus-version) (emacs-version)))
-    (let ((b (point)))
-      (gnus-debug)
-      (goto-char (- b 3)))
+    (gnus-debug)
+    (goto-char (point-min))
+    (search-forward "Subject: " nil t)
     (message "")))
 
 (defun gnus-bug-mail-send-and-exit ()
index 23454f1..48f8a72 100644 (file)
@@ -146,7 +146,7 @@ The latter can be used like this:
         '(("" bold italic)))
        ((eq gnus-background-mode 'dark)
         (list (list "From" nil 
-                    (custom-face-lookup "SkyeBlue" nil nil t t nil))
+                    (custom-face-lookup "SkyBlue" nil nil t t nil))
               (list "Subject" nil 
                     (custom-face-lookup "pink" nil nil t t nil))
               (list "Newsgroups:.*," nil
index f49e73b..b265c0f 100644 (file)
@@ -167,7 +167,20 @@ instead.")
   "/anonymous@rtfm.mit.edu:/pub/usenet-by-group/"
   "*Directory where the group FAQs are stored.
 This will most commonly be on a remote machine, and the file will be
-fetched by ange-ftp.")
+fetched by ange-ftp.
+
+If the default site is too slow, try one of these:
+
+   North America: ftp.uu.net                     /usenet/news.answers
+                 mirrors.aol.com                /pub/rtfm/usenet
+                 ftp.seas.gwu.edu               /pub/rtfm
+                  rtfm.mit.edu                   /pub/usenet/news.answers
+   Europe:        ftp.uni-paderborn.de           /pub/FAQ
+                 ftp.Germany.EU.net             /pub/newsarchive/news.answers
+                 ftp.sunet.se                   /pub/usenet
+   Asia:          nctuccca.edu.tw                /USENET/FAQ
+                 hwarang.postech.ac.kr          /pub/usenet/news.answers
+                 ftp.hk.super.net               /mirror/faqs")
 
 (defvar gnus-group-archive-directory
   "/ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/" 
@@ -1316,7 +1329,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "(ding) Gnus v0.99.17"
+(defconst gnus-version "(ding) Gnus v0.99.18"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -4665,7 +4678,7 @@ If N is negative, this group and the N-1 previous groups will be checked."
   "Fetch the FAQ for the current group."
   (interactive (list (gnus-group-real-name (gnus-group-group-name))))
   (or group (error "No group name given"))
-  (let ((file (concat gnus-group-faq-directory group))) 
+  (let ((file (concat gnus-group-faq-directory (gnus-group-real-name group))))
     (if (not (file-exists-p file))
        (error "No such file: %s" file)
       (find-file file))))
@@ -4911,20 +4924,24 @@ The hook `gnus-exit-gnus-hook' is called before actually exiting."
 
 (defun gnus-offer-save-summaries ()
   (save-excursion
-    (let ((buflist (buffer-list)) buffers bufname)
+    (let ((buflist (buffer-list)) 
+         buffers bufname)
       (while buflist
        (and (setq bufname (buffer-name (car buflist)))
             (string-match "Summary" bufname)
+            (save-excursion
+              (set-buffer bufname)
+              ;; We check that this is, indeed, a summary buffer.
+              (eq major-mode 'gnus-summary-mode))
             (setq buffers (cons bufname buffers)))
        (setq buflist (cdr buflist)))
-      (map-y-or-n-p "Update summary buffer %s? "
-                   (lambda (buf)
-                     (set-buffer buf)
-                     (and
-                      ;; We check that this is, indeed, a summary buffer.
-                      (eq major-mode 'gnus-summary-mode)
-                      (gnus-summary-exit)))
-                   buffers))))
+      (and buffers
+          (map-y-or-n-p 
+           "Update summary buffer %s? "
+           (lambda (buf)
+             (set-buffer buf)
+             (gnus-summary-exit))
+           buffers)))))
 
 (defun gnus-group-describe-briefly ()
   "Give a one line description of the group mode commands."
@@ -7747,10 +7764,8 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
 (defun gnus-summary-fetch-faq (group)
   "Fetch the FAQ for the current group."
   (interactive (list gnus-newsgroup-name))
-  (let ((gnus-faq-buffer 
-        (find-file (concat gnus-group-faq-directory 
-                           (gnus-group-real-name group)))))
-  (and gnus-faq-buffer (gnus-configure-windows 'summary-faq))))
+  (and (gnus-group-fetch-faq group)
+       (gnus-configure-windows 'summary-faq)))
 
 ;; Suggested by Per Abrahamsen <amanda@iesd.auc.dk>.
 (defun gnus-summary-describe-group (&optional force)
@@ -10879,7 +10894,7 @@ Provided for backwards compatability."
        ;; Hide any "From " lines at the beginning of (mail) articles. 
        (while (looking-at "From ")
          (forward-line 1))
-       (if (bobp) 
+       (or (bobp) 
            (add-text-properties (point-min) (point) gnus-hidden-properties))
        ;; Then treat the rest of the header lines.
        (narrow-to-region 
@@ -12019,6 +12034,9 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
         (not level)
         (gnus-read-active-file))
 
+    (or gnus-active-hashtb
+       (setq gnus-active-hashtb (make-vector 4095 0)))
+
     ;; Possibly eval the dribble file.
     (and init gnus-use-dribble-file (gnus-dribble-eval-file))
 
@@ -12431,11 +12449,12 @@ newsgroup."
                     ;; Close the groups as we look at them!
                     (gnus-close-group group))))
 
-       (or gnus-read-active-file (gnus-check-server method))
        ;; These groups are native or secondary. 
        (if (and (not gnus-read-active-file)
                 (<= (nth 1 info) level))
-           (setq active (gnus-activate-group (car info)))))
+           (progn
+             (or gnus-read-active-file (gnus-check-server method))
+             (setq active (gnus-activate-group (car info))))))
       
       (if active
          (gnus-get-unread-articles-in-group info active)
@@ -12830,7 +12849,8 @@ Returns whether the updating was successful."
                      (setq gnus-moderated-list 
                            (cons (symbol-name group) gnus-moderated-list))))
              (error 
-              (and (symbolp group)
+              (and group
+                   (symbolp group)
                    (set group nil))))
            (widen)
            (forward-line 1)))
@@ -12856,14 +12876,13 @@ Returns whether the updating was successful."
                  (set group nil)))
            (error 
             (progn 
-              (and (symbolp group)
+              (and group
+                   (symbolp group)
                    (set group nil))
-              (if ignore-errors
-                  ()
-                (gnus-message 3 "Warning - illegal active: %s"
-                              (buffer-substring 
-                               (gnus-point-at-bol) (gnus-point-at-eol)))
-                nil))))
+              (or ignore-errors
+                  (gnus-message 3 "Warning - illegal active: %s"
+                                (buffer-substring 
+                                 (gnus-point-at-bol) (gnus-point-at-eol)))))))
          (widen)
          (forward-line 1))))))
 
@@ -12876,7 +12895,10 @@ Returns whether the updating was successful."
                      (setq gnus-active-hashtb
                            (gnus-make-hashtable 
                             (count-lines (point-min) (point-max)))))))
-       (prefix (and method (not (eq method gnus-select-method))
+       (prefix (and method 
+                    (not (gnus-server-equal
+                          (gnus-server-get-method nil method)
+                          (gnus-server-get-method nil gnus-select-method)))
                     (gnus-group-prefixed-name "" method))))
 
     (goto-char (point-min))
@@ -12896,7 +12918,7 @@ Returns whether the updating was successful."
                  (goto-char opoint)
                  (set (let ((obarray hashtb)) (read cur)) 
                       (cons min max)))
-             (error (if group (set group nil))))
+             (error (and group (symbolp group) (set group nil))))
            (forward-line 1)))
       (let (min max group)
        (while (not (eobp))
@@ -12908,7 +12930,7 @@ Returns whether the updating was successful."
                          max (read cur))
                    (set (setq group (let ((obarray hashtb)) (read cur)))
                         (cons min max))))
-           (error (if group (set group nil))))
+           (error (and group (symbolp group) (set group nil))))
          (forward-line 1))))))
 
 (defun gnus-read-newsrc-file (&optional force)
@@ -13076,8 +13098,8 @@ If FORCE is non-nil, the .newsrc file is read."
     (goto-char (point-min))
     ;; We intern the symbol `options' in the active hashtb so that we
     ;; can `eq' against it later.
-    (setq options-symbol (intern "options" gnus-active-hashtb))
-    (setq Options-symbol (intern "Options" gnus-active-hashtb))
+    (set (setq options-symbol (intern "options" gnus-active-hashtb)) nil)
+    (set (setq Options-symbol (intern "Options" gnus-active-hashtb)) nil)
   
     (while (not (eobp))
       ;; We first read the first word on the line by narrowing and
@@ -13404,6 +13426,11 @@ If FORCE is non-nil, the .newsrc file is read."
                        (if ranges (insert ","))))))
              (insert "\n")))
        (setq newsrc (cdr newsrc)))
+      ;; It has been reported that sometime the modtime on the .newsrc
+      ;; file seems to be off. We really do want to overwrite it, so
+      ;; we clear the modtime here before saving. It's a bit odd,
+      ;; though... 
+      (clear-visited-file-modtime)
       (save-buffer)
       (kill-buffer (current-buffer)))))
 
index e9f2cbf..5a3dfcc 100644 (file)
@@ -603,7 +603,13 @@ FUNC will be called with the group name to determine the article number."
            (setq group-art
                  (mapcar
                   (lambda (group) (cons group (funcall func group)))
-                  (funcall nnmail-split-methods)))
+                  (condition-case nil
+                      (funcall nnmail-split-methods)
+                    (error
+                     (message "\
+Problems with `nnmail-split-methods', using `bogus' mail group")
+                     (sit-for 1)
+                     '("bogus")))))
          ;; Go throught the split methods to find a match.
          (while (and methods (or nnmail-crosspost (not group-art)))
            (goto-char (point-max))