*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:22:04 +0000 (03:22 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:22:04 +0000 (03:22 +0000)
lisp/ChangeLog
lisp/custom.el
lisp/gnus-cite.el
lisp/gnus-cus.el
lisp/gnus-edit.el
lisp/gnus-ems.el
lisp/gnus-score.el
lisp/gnus.el
lisp/nnbabyl.el
texi/gnus.texi

index b701c7f..e30eba8 100644 (file)
@@ -1,3 +1,71 @@
+Thu Aug 24 01:41:33 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el (gnus-group-faq-directory): Changed the default to point
+       to aol.
+       (gnus-newsrc-to-gnus-format): Would bug out when there were bogus
+       groups in the .newsrc file.
+
+       * gnus-ems.el: Don't bug out if x-get-resource isn't defined under
+       XEmacs.
+
+       * gnus.el (gnus-ask-server-for-new-groups): Would sometimes
+       iterate over obarray instead of hashtb.
+       (gnus-summary-next-article): Would give wrong message when going
+       to canceled articles and gnus-auto-select-same was non-nil.
+
+Wed Aug 23 22:39:03 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-save): New variable.
+       (custom-save-and-exit): New function.
+       (custom-buffer-create): Document it.
+       (custom-mode-map): Bind it.
+       (custom-buffer-create): New optional argument `SAVE' to overwrite
+       `custom-save'. 
+       * gnus-edit.el (gnus-score-customize): Use new argument.
+
+Wed Aug 23 22:39:03 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-mode): Insert appropiate check in hook if
+       `make-local-hook' doesn't exists.
+       (custom-post-command): Remove check for mode here.
+
+Wed Aug 23 22:03:50 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-factory-reset-all): Removed dead code.
+       (custom-field-factory-reset): Removed dead code.
+       (custom-default-factory-reset): Didn't import the default value.
+       (custom-save): Didn't import the default value.
+
+Wed Aug 23 01:41:20 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el (gnus-ask-server-for-new-groups): Might not ignore bogus
+       groups. 
+
+       * gnus-score.el (gnus-score-insert-help): `I??' would bug out.
+
+       * gnus.el (gnus-article-display-x-face): Reverse logic a bit.
+       (gnus): Do the startup message earlier.
+       (gnus-group-list-groups): Void variable.
+       (gnus-summary-raise-thread): Increase by (- 1 arg).
+
+       * nnbabyl.el (nnbabyl-read-mbox): Would create extra dummy
+       articles. 
+
+Wed Aug 23 00:49:17 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * gnus.el (gnus-summary-next-article): `SPC' `n' didn't work under
+       XEmacs. 
+
+Tue Aug 22 22:20:06 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-default): Add support for calculated
+       defaults values. 
+       * gnus-cus.el: Use it.
+
+Tue Aug 22 21:05:42 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+
+       * gnus.el: 0.99.18 is released.
+
 Tue Aug 22 22:20:06 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
 
        * custom.el (custom-forward-field): Allow negative args.
index 61634d2..c6fba71 100644 (file)
@@ -533,6 +533,7 @@ Select the properties you want this face to have.")
             (hidden . nil)
             (face . custom-default-face)
             (data . nil)
+            (calculate . nil)
             (default . __uninitialized__)))
   "Alist of default properties for type symbols.
 The format is `((SYMBOL (PROPERTY . VALUE)... )... )'.")
@@ -600,8 +601,11 @@ If none exist, default to `tag' or, failing that, `type'."
 
 (defun custom-default (custom)
   "Extract `default' from CUSTOM."
-  (custom-property custom 'default))
-
+  (let ((value (custom-property custom 'calculate)))
+    (if value
+       (eval value)
+      (custom-property custom 'default))))
+              
 (defun custom-data (custom)
   "Extract the `data' from CUSTOM."
   (custom-property custom 'data))
@@ -1435,7 +1439,8 @@ FG BG STIPPLE BOLD ITALIC UNDERLINE"
 
 (defun custom-default-factory-reset (field)
   "Reset content of editing FIELD to `default'."
-  (let ((default (custom-default (custom-field-custom field))))
+  (let* ((custom (custom-field-custom field))
+        (default (car (custom-import custom (custom-default custom)))))
     (or (eq default custom-nil)
        (custom-field-accept field default nil))))
 
@@ -1524,12 +1529,13 @@ about GNU Emacs."
   (custom-buffer-create "*Customize*")
   (custom-reset-all))
 
-(defun custom-buffer-create (name &optional custom types set get)
+(defun custom-buffer-create (name &optional custom types set get save)
   "Create a customization buffer named NAME.
 If the optional argument CUSTOM is non-nil, use that as the custom declaration.
 If the optional argument TYPES is non-nil, use that as the local types.
 If the optional argument SET is non-nil, use that to set external data.
-If the optional argument GET is non-nil, use that to get external data."
+If the optional argument GET is non-nil, use that to get external data.
+If the optional argument SAVE is non-nil, use that for saving changes."
   (switch-to-buffer name)
   (buffer-disable-undo (current-buffer))
   (custom-mode)
@@ -1546,6 +1552,10 @@ If the optional argument GET is non-nil, use that to get external data."
       ()
     (make-local-variable 'custom-external)
     (setq custom-external get))
+  (if (null save)
+      ()
+    (make-local-variable 'custom-save)
+    (setq custom-save save))
   (let ((inhibit-point-motion-hooks t)
        (before-change-functions nil)
        (after-change-functions nil))
@@ -1560,6 +1570,7 @@ If the optional argument GET is non-nil, use that to get external data."
     (custom-help-button 'custom-field-factory-reset)
     (custom-help-button 'custom-field-reset)
     (custom-help-button 'custom-field-apply)
+    (custom-help-button 'custom-save-and-exit)
     (custom-help-button 'custom-toggle-documentation)
     (custom-help-insert "\nClick mouse-2 on any button to activate it.\n")
     (custom-text-insert "\n")
@@ -1640,6 +1651,7 @@ If the optional argument GET is non-nil, use that to get external data."
   (define-key custom-mode-map "\C-c\M-\C-z" 'custom-factory-reset-all)
   (define-key custom-mode-map "\C-c\C-a" 'custom-field-apply)
   (define-key custom-mode-map "\C-c\M-\C-a" 'custom-apply-all)
+  (define-key custom-mode-map "\C-c\C-c" 'custom-save-and-exit)
   (define-key custom-mode-map "\C-c\C-d" 'custom-toggle-documentation))
 
 ;; C-c keymap ideas: C-a field-beginning, C-e field-end, C-f
@@ -1660,7 +1672,10 @@ If the optional argument GET is non-nil, use that to get external data."
   (setq after-change-functions '(custom-after-change))
   (if (not (fboundp 'make-local-hook))
       ;; Emacs 19.28 and earlier.
-      (add-hook 'post-command-hook 'custom-post-command nil)      
+      (add-hook 'post-command-hook 
+               (lambda ()
+                 (if (eq major-mode 'custom-mode)
+                     (custom-post-command))))
     ;; Emacs 19.29.
     (make-local-hook 'post-command-hook)
     (add-hook 'post-command-hook 'custom-post-command nil t)))
@@ -1788,11 +1803,9 @@ If the optional argument is non-nil, show text iff the argument is positive."
                    (not (y-or-n-p "Discard all changes? "))
                    (error "Reset aborted")))
   (let ((all custom-name-fields)
-       name field custom default)
+       field)
     (while all
       (setq field (cdr (car all))
-           custom (custom-field-custom field)
-           default (custom-default custom)
            all (cdr all))
       (custom-field-factory-reset field))))
 
@@ -1801,10 +1814,9 @@ If the optional argument is non-nil, show text iff the argument is positive."
   (interactive (list (or (get-text-property (point) 'custom-field)
                         (get-text-property (point) 'custom-tag))))
   (if (arrayp field)
-      (let* ((custom (custom-field-custom field))
-            (default (custom-default custom)))
-       (save-excursion
-         (funcall (custom-property custom 'factory-reset) field)))))
+      (save-excursion
+       (funcall (custom-property (custom-field-custom field) 'factory-reset)
+                field))))
 
 (defun custom-apply-all ()
   "Apply any changes since the last reset in all fields."
@@ -1846,6 +1858,16 @@ If the optional argument is non-nil, show text iff the argument is positive."
   (interactive)
   (error "This button is not yet implemented"))
 
+(defvar custom-save 'custom-save
+  "Function that will save current customization buffer.")
+
+(defun custom-save-and-exit ()
+  "Save and exit customization buffer."
+  (interactive "@")
+  (save-excursion
+   (funcall custom-save))
+  (kill-buffer (current-buffer)))
+
 (defun custom-save ()
   "Save customization information."
   (interactive)
@@ -1864,7 +1886,7 @@ If the optional argument is non-nil, show text iff the argument is positive."
          (let* ((field (cdr (car new)))
                 (custom (custom-field-custom field))
                 (value (custom-field-original field))
-                (default (custom-default custom))
+                (default (car (custom-import custom (custom-default custom))))
                 (name (car (car new))))
            (setq new (cdr new))
            (custom-assert '(eq name (custom-name custom)))
@@ -2009,23 +2031,21 @@ If the optional argument is non-nil, show text iff the argument is positive."
 ;; Last field containing point.
 (make-variable-buffer-local 'custom-field-last)
 
-
 (defun custom-post-command ()
   ;; Keep track of their active field.
-  (if (not (eq major-mode 'custom-mode))
-      (message "Aargh! Why is custom-post-command called here?")
-      ()
-    (let ((field (custom-field-property (point))))
-      (if (eq field custom-field-last)
-         (if (memq field custom-field-changed)
-             (custom-field-resize field))
-       (custom-field-parse custom-field-last)
-       (if custom-field-last
-           (custom-field-leave custom-field-last))
-       (if field
-           (custom-field-enter field))
-       (setq custom-field-last field)))
-    (set-buffer-modified-p (or custom-modified-list custom-field-changed))))
+  (custom-assert '(eq major-mode 'custom-mode))
+  (let ((field (custom-field-property (point))))
+    (if (eq field custom-field-last)
+       (if (memq field custom-field-changed)
+           (custom-field-resize field))
+      (custom-field-parse custom-field-last)
+      (if custom-field-last
+         (custom-field-leave custom-field-last))
+      (if field
+         (custom-field-enter field))
+      (setq custom-field-last field))
+    (set-buffer-modified-p (or custom-modified-list
+                              custom-field-changed))))
 
 (defvar custom-field-was nil)
 ;; The custom data before the change.
index 2c491b7..fd8b2f9 100644 (file)
@@ -130,7 +130,7 @@ It is merged with the face for the cited text belonging to the attribution.")
   "Highlight cited text.
 Each citation in the article will be highlighted with a different face.
 The faces are taken from `gnus-cite-face-list'.
-Attribution lines are highlighted with the sameface as the
+Attribution lines are highlighted with the same face as the
 corresponding citation merged with `gnus-cite-attribution-face'.
 
 Text is considered cited if at least `gnus-cite-minimum-match-count'
@@ -222,7 +222,7 @@ See the documentation for `gnus-article-highlight-citation'."
 (defun gnus-article-hide-citation-maybe (&optional force)
   "Hide cited text that has an attribution line.
 This will do nothing unless at least `gnus-cite-hide-percentage'
-percent ans at least `gnus-cite-hide-absolute' lines of the body is
+percent and at least `gnus-cite-hide-absolute' lines of the body is
 cited text with attributions.  When called interactively, these two
 variables are ignored.
 See also the documentation for `gnus-article-highlight-citation'."
index 2f05c49..7ed13b8 100644 (file)
 ;;; Code:
 
 (require 'custom)
+(require 'gnus-ems)
+
+;; The following is just helper functions and data, not ment to be set
+;; by the user.
+(defun gnus-make-face (color)
+  ;; Create entry for face with COLOR.
+  (custom-face-lookup color nil nil nil nil nil))
+
+(defvar gnus-face-light-name-list
+  '("light blue" "light cyan" "light yellow" "light pink"
+    "pale green" "beige" "orange" "magenta" "violet" "medium purple"
+    "turquoise"))
+
+(defvar gnus-face-dark-name-list
+  '("dark salmon" "firebrick"
+    "dark green" "dark orange" "dark khaki" "dark violet"
+    "dark turquoise"))
 
 (custom-declare '()
   '((tag . "GNUS")
@@ -51,6 +68,12 @@ WWW Browser to call when clicking on an URL button in the article buffer.
 You can choose between one of the predefined browsers, or `Other'.")
                  (name . gnus-button-url)
                  (default . w3-fetch)
+                 (calculate . (cond ((boundp 'browse-url-browser-function)
+                                     browse-url-browser-function)
+                                    ((fboundp 'w3-fetch) 
+                                     'w3-fetch)
+                                    ((eq window-system 'x) 
+                                     'gnus-netscape-open-url)))
                  (type . choice)
                  (data ((tag . "W3")
                         (type . const)
@@ -71,7 +94,9 @@ Face used for group or summary buffer mouse highlighting.
 The line beneath the mouse pointer will be highlighted with this
 face.")
                  (name . gnus-mouse-face)
-                 (default . highlight)
+                 (calculate . (if (boundp 'gnus-mouse-face)
+                                   gnus-mouse-face
+                                 'highlight))
                  (type . face))
                 ((tag . "Article Display")
                  (doc . "Controls how the article buffer will look.
@@ -296,7 +321,43 @@ header, specify `None' in the `Content' field.  Similarly, specify
 alone.")
                  (name . gnus-header-face-alist)
                  (type . list)
-                 (default . (("" bold italic)))
+                 (calculate . (cond ((not (eq gnus-display-type 'color))
+                                     '(("" bold italic)))
+                                    ((eq gnus-background-mode 'dark)
+                                     (list (list "From" nil 
+                                                 (custom-face-lookup 
+                                                  "SkyeBlue" nil nil t t nil))
+                                           (list "Subject" nil 
+                                                 (custom-face-lookup
+                                                  "pink" nil nil t t nil))
+                                           (list "Newsgroups:.*," nil
+                                                 (custom-face-lookup
+                                                  "yellow" nil nil t t nil))
+                                           (list "" 
+                                                 (custom-face-lookup
+                                                  "cyan" nil nil t nil nil)
+                                                 (custom-face-lookup
+                                                  "green"
+                                                  nil nil nil t nil))))
+                                    (t
+                                     (list (list "From" nil 
+                                                 (custom-face-lookup
+                                                  "RoyalBlue"
+                                                  nil nil t t nil))
+                                           (list "Subject" nil 
+                                                 (custom-face-lookup
+                                                  "firebrick"
+                                                  nil nil t t nil))
+                                           (list "Newsgroups:.*," nil
+                                                 (custom-face-lookup
+                                                  "red" nil nil t t nil))
+                                           (list ""
+                                                 (custom-face-lookup
+                                                  "DarkGreen"
+                                                  nil nil t nil nil)
+                                                 (custom-face-lookup
+                                                  "DarkGreen"
+                                                  nil nil nil t nil))))))
                  (data ((type . repeat)
                         (header . nil)
                         (data (type . list)
@@ -328,7 +389,14 @@ Gnus will try to give each citation from each article its own face.
 This should make it easier to see who wrote what.")
                  (name . gnus-cite-face-list)
                  (type . list)
-                 (default . (italic))
+                 (calculate . (cond ((not (eq gnus-display-type 'color))
+                                     '(italic))
+                                    ((eq gnus-background-mode 'dark)
+                                     (mapcar 'gnus-make-face 
+                                             gnus-face-light-name-list))
+                                    (t 
+                                     (mapcar 'gnus-make-face 
+                                             gnus-face-dark-name-list))))
                  (data ((type . repeat)
                         (header . nil)
                         (data (type . face)
@@ -372,8 +440,71 @@ below:   The score below which articles are automatically marked as read.
 mark:    The article's mark.")
                  (name . gnus-summary-highlight)
                  (type . list)
-                 (default . (((> score default) . bold)
-                             ((< score default) . italic)))
+                 (calculate . (cond ((not (eq gnus-display-type 'color))
+                                     '(((> score default) . bold)
+                                       ((< score default) . italic)))
+                                    ((eq gnus-background-mode 'dark)
+                                     (list (cons '(= mark gnus-canceled-mark)
+                                                 (custom-face-lookup "yellow" "black" nil nil nil nil))
+                                           (cons '(and (> score default) 
+                                                       (or (= mark gnus-dormant-mark)
+                                                           (= mark gnus-ticked-mark)))
+                                                 (custom-face-lookup "pink" nil nil t nil nil))
+                                           (cons '(and (< score default) 
+                                                       (or (= mark gnus-dormant-mark)
+                                                           (= mark gnus-ticked-mark)))
+                                                 (custom-face-lookup "pink" nil nil nil t nil))
+                                           (cons '(or (= mark gnus-dormant-mark)
+                                                      (= mark gnus-ticked-mark))
+                                                 (custom-face-lookup "pink" nil nil nil nil nil))
+
+                                           (cons '(and (> score default) (= mark gnus-ancient-mark))
+                                                 (custom-face-lookup "SkyBlue" nil nil t nil nil))
+                                           (cons '(and (< score default) (= mark gnus-ancient-mark))
+                                                 (custom-face-lookup "SkyBlue" nil nil nil t nil))
+                                           (cons '(= mark gnus-ancient-mark)
+                                                 (custom-face-lookup "SkyBlue" nil nil nil nil nil))
+
+                                           (cons '(and (> score default) (= mark gnus-unread-mark))
+                                                 (custom-face-lookup "white" nil nil t nil nil))
+                                           (cons '(and (< score default) (= mark gnus-unread-mark))
+                                                 (custom-face-lookup "white" nil nil nil t nil))
+                                           (cons '(= mark gnus-unread-mark)
+                                                 (custom-face-lookup "white" nil nil nil nil nil))
+
+                                           (cons '(> score default) 'bold)
+                                           (cons '(< score default) 'italic)))
+                                    (t
+                                     (list (cons '(= mark gnus-canceled-mark)
+                                                 (custom-face-lookup "yellow" "black" nil nil nil nil))
+                                           (cons '(and (> score default) 
+                                                       (or (= mark gnus-dormant-mark)
+                                                           (= mark gnus-ticked-mark)))
+                                                 (custom-face-lookup "firebrick" nil nil t nil nil))
+                                           (cons '(and (< score default) 
+                                                       (or (= mark gnus-dormant-mark)
+                                                           (= mark gnus-ticked-mark)))
+                                                 (custom-face-lookup "firebrick" nil nil nil t nil))
+                                           (cons '(or (= mark gnus-dormant-mark)
+                                                      (= mark gnus-ticked-mark))
+                                                 (custom-face-lookup "firebrick" nil nil nil nil nil))
+
+                                           (cons '(and (> score default) (= mark gnus-ancient-mark))
+                                                 (custom-face-lookup "RoyalBlue" nil nil t nil nil))
+                                           (cons '(and (< score default) (= mark gnus-ancient-mark))
+                                                 (custom-face-lookup "RoyalBlue" nil nil nil t nil))
+                                           (cons '(= mark gnus-ancient-mark)
+                                                 (custom-face-lookup "RoyalBlue" nil nil nil nil nil))
+
+                                           (cons '(and (> score default) (/= mark gnus-unread-mark))
+                                                 (custom-face-lookup "DarkGreen" nil nil t nil nil))
+                                           (cons '(and (< score default) (/= mark gnus-unread-mark))
+                                                 (custom-face-lookup "DarkGreen" nil nil nil t nil))
+                                           (cons '(/= mark gnus-unread-mark)
+                                                 (custom-face-lookup "DarkGreen" nil nil nil nil nil))
+
+                                           (cons '(> score default) 'bold)
+                                           (cons '(< score default) 'italic)))))
                  (data ((type . repeat)
                         (header . nil)
                         (data (type . pair)
@@ -390,18 +521,16 @@ mark:    The article's mark.")
                 ;; beginners. 
                 )))))
 
-(defun gnus-custom-import-swap-alist (custom alist)
-  ;; Swap key and value in CUSTOM ALIST.
-  (let ((swap (mapcar (lambda (e) (cons (cdr e) (car e))) alist)))
-    (funcall (custom-super custom 'import) custom swap)))
+;(defun gnus-custom-import-swap-alist (custom alist)
+;  ;; Swap key and value in CUSTOM ALIST.
+;  (let ((swap (mapcar (lambda (e) (cons (cdr e) (car e))) alist)))
+;    (funcall (custom-super custom 'import) custom swap)))
 
-(defun gnus-custom-export-swap-alist (custom alist)
-  ;; Swap key and value in CUSTOM ALIST.
-  (let ((swap (mapcar (lambda (e) (cons (cdr e) (car e))) alist)))
-    (funcall (custom-super custom 'export) custom swap)))
+;(defun gnus-custom-export-swap-alist (custom alist)
+;  ;; Swap key and value in CUSTOM ALIST.
+;  (let ((swap (mapcar (lambda (e) (cons (cdr e) (car e))) alist)))
+;    (funcall (custom-super custom 'export) custom swap)))
 
 (provide 'gnus-cus)
 
 ;;; gnus-cus.el ends here
-
-
index ef4e2b8..75fd8a0 100644 (file)
@@ -533,7 +533,8 @@ groups matched by the current score file.")
     (custom-buffer-create "*Score Edit*" gnus-score-custom-data
                          gnus-score-custom-type-properties
                          'gnus-score-custom-set
-                         'gnus-score-custom-get))
+                         'gnus-score-custom-get
+                         'gnus-score-custom-save))
   (make-local-variable 'gnus-score-custom-file)
   (setq gnus-score-custom-file (expand-file-name  "SCORE" "~/News"))
   (make-local-variable 'gnus-score-alist)
index 498a820..2debf38 100644 (file)
@@ -169,7 +169,9 @@ pounce directly on the real variables themselves.")
     
       (defvar gnus-background-mode 
        (let ((bg-resource 
-              (x-get-resource ".backgroundMode" "BackgroundMode" 'string))
+              (condition-case ()
+                  (x-get-resource ".backgroundMode" "BackgroundMode" 'string)
+                (error nil)))
              (params (frame-parameters)))
          (cond (bg-resource (intern (downcase bg-resource)))
                ((and (assq 'background-color params)
@@ -315,18 +317,16 @@ NOTE: This command only works with newsgroups that use real or simulated NNTP."
                (header-number header)))
        (let ((gnus-override-method gnus-refer-article-method)
              (gnus-ancient-mark gnus-read-mark)
-             (tmp-buf (get-buffer-create " *gnus refer"))
              (tmp-point (window-start
                          (get-buffer-window gnus-article-buffer)))
-             number)
+             number tmp-buf)
          (and gnus-refer-article-method
-              (or (gnus-server-opened gnus-refer-article-method)
-                  (gnus-open-server gnus-refer-article-method)))
+              (gnus-check-server gnus-refer-article-method))
          ;; Save the old article buffer.
          (save-excursion
-           (set-buffer tmp-buf)
-           (buffer-disable-undo (current-buffer))
-           (insert-buffer-substring gnus-article-buffer))
+           (set-buffer gnus-article-buffer)
+           (gnus-kill-buffer " *temp Article*")
+           (setq tmp-buf (rename-buffer " *temp Article*")))
          (prog1
              (if (gnus-article-prepare 
                   message-id nil (gnus-read-header message-id))
@@ -340,14 +340,13 @@ NOTE: This command only works with newsgroups that use real or simulated NNTP."
                    message-id)
                ;; We restore the old article buffer.
                (save-excursion
-                 (set-buffer gnus-article-buffer)
+                 (kill-buffer gnus-article-buffer)
+                 (set-buffer tmp-buf)
+                 (rename-buffer gnus-article-buffer)
                  (let ((buffer-read-only nil))
-                   (insert-buffer-substring tmp-buf)
                    (and tmp-point
                         (set-window-start (get-buffer-window (current-buffer))
-                                          tmp-point))))
-               nil)
-           (kill-buffer tmp-buf)))))))
+                                          tmp-point)))))))))))
 
 (defun gnus-summary-insert-pseudos-xemacs (pslist &optional not-view)
   (let ((buffer-read-only nil)
index 08a780e..5b0910d 100644 (file)
@@ -283,6 +283,7 @@ used as score."
   (save-excursion
     (set-buffer (get-buffer-create "*Score Help*"))
     (buffer-disable-undo (current-buffer))
+    (delete-windows-on (current-buffer))
     (erase-buffer)
     (insert string ":\n\n")
     (let ((max -1)
index b265c0f..d3644d3 100644 (file)
@@ -36,6 +36,7 @@
 (require 'mail-utils)
 (require 'timezone)
 (require 'nnheader)
+(require 'gnus-cus)
 
 ;; Site dependent variables. These variables should be defined in
 ;; paths.el.
@@ -134,7 +135,7 @@ This is a list where each element is a complete select method (see
 If, for instance, you want to read your mail with the nnml backend,
 you could set this variable:
 
-(setq gnus-secondary-select-methods '((nnml \"\"))")
+(setq gnus-secondary-select-methods '((nnml \"\")))")
 
 (defvar gnus-secondary-servers nil
   "*List of NNTP servers that the user can choose between interactively.
@@ -164,7 +165,7 @@ If a file with the .el or .elc suffixes exist, it will be read
 instead.") 
 
 (defvar gnus-group-faq-directory
-  "/anonymous@rtfm.mit.edu:/pub/usenet-by-group/"
+  "/ftp@mirrors.aol.com:/pub/rtfm/usenet/"
   "*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.
@@ -978,7 +979,7 @@ with some simple extensions.
     ("nndoc" none prompt-address) 
     ("nnbabyl" mail respool) 
     ("nnkiboze" post virtual) 
-    ("nnsoup" post)
+    ;;("nnsoup" post)
     ("nnfolder" mail respool))
   "An alist of valid select methods.
 The first element of each list lists should be a string with the name
@@ -1329,7 +1330,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.18"
+(defconst gnus-version "(ding) Gnus v0.99.19"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1581,13 +1582,13 @@ Thank you for your help in stamping out bugs.
   (autoload 'rmail-show-message "rmail")
 
   ;; gnus-soup
-  (autoload 'gnus-group-brew-soup "gnus-soup" nil t)
-  (autoload 'gnus-brew-soup "gnus-soup" nil t)
-  (autoload 'gnus-soup-add-article "gnus-soup" nil t)
-  (autoload 'gnus-soup-send-replies "gnus-soup" nil t)
-  (autoload 'gnus-soup-save-areas "gnus-soup" nil t)
-  (autoload 'gnus-soup-pack-packet "gnus-soup" nil t)
-  (autoload 'nnsoup-pack-replies "nnsoup" nil t)
+  ;;(autoload 'gnus-group-brew-soup "gnus-soup" nil t)
+  ;;(autoload 'gnus-brew-soup "gnus-soup" nil t)
+  ;;(autoload 'gnus-soup-add-article "gnus-soup" nil t)
+  ;;(autoload 'gnus-soup-send-replies "gnus-soup" nil t)
+  ;;(autoload 'gnus-soup-save-areas "gnus-soup" nil t)
+  ;;(autoload 'gnus-soup-pack-packet "gnus-soup" nil t)
+  ;;(autoload 'nnsoup-pack-replies "nnsoup" nil t)
 
   ;; gnus-mh
   (autoload 'gnus-mail-reply-using-mhe "gnus-mh")
@@ -3108,11 +3109,11 @@ Note: LIST has to be sorted over `<'."
   (define-key gnus-group-group-map "V" 'gnus-group-make-empty-virtual)
   (define-key gnus-group-group-map "D" 'gnus-group-enter-directory)
   (define-key gnus-group-group-map "f" 'gnus-group-make-doc-group)
-  (define-key gnus-group-group-map "sb" 'gnus-group-brew-soup)
-  (define-key gnus-group-group-map "sw" 'gnus-soup-save-areas)
-  (define-key gnus-group-group-map "ss" 'gnus-soup-send-replies)
-  (define-key gnus-group-group-map "sp" 'gnus-soup-pack-packet)
-  (define-key gnus-group-group-map "sr" 'nnsoup-pack-replies)
+  ;;(define-key gnus-group-group-map "sb" 'gnus-group-brew-soup)
+  ;;(define-key gnus-group-group-map "sw" 'gnus-soup-save-areas)
+  ;;(define-key gnus-group-group-map "ss" 'gnus-soup-send-replies)
+  ;;(define-key gnus-group-group-map "sp" 'gnus-soup-pack-packet)
+  ;;(define-key gnus-group-group-map "sr" 'nnsoup-pack-replies)
 
   (define-prefix-command 'gnus-group-list-map)
   (define-key gnus-group-mode-map "A" 'gnus-group-list-map)
@@ -3215,7 +3216,17 @@ prompt the user for the name of an NNTP server to use."
       (progn
        (switch-to-buffer gnus-group-buffer)
        (gnus-group-get-new-news))
+
     (gnus-clear-system)
+
+    (gnus-group-setup-buffer)
+    (let ((buffer-read-only nil))
+      (erase-buffer)
+      (if (not gnus-inhibit-startup-message)
+         (progn
+           (gnus-group-startup-message)
+           (sit-for 0))))
+    
     (nnheader-init-server-buffer)
     (gnus-read-init-file)
 
@@ -3223,7 +3234,6 @@ prompt the user for the name of an NNTP server to use."
          did-connect)
       (unwind-protect
          (progn
-           (gnus-group-setup-buffer)
            (or dont-connect 
                (setq did-connect
                      (gnus-start-news-server (and arg (not level))))))
@@ -3241,12 +3251,6 @@ prompt the user for the name of an NNTP server to use."
          (and gnus-use-dribble-file (gnus-dribble-read-file))
 
          (gnus-summary-make-display-table)
-         (let ((buffer-read-only nil))
-           (erase-buffer)
-           (if (not gnus-inhibit-startup-message)
-               (progn
-                 (gnus-group-startup-message)
-                 (sit-for 0))))
          (gnus-setup-news nil level)
          (gnus-group-list-groups level)
          (gnus-configure-windows 'group))))))
@@ -3254,6 +3258,8 @@ prompt the user for the name of an NNTP server to use."
 (defun gnus-unload ()
   "Unload all Gnus features."
   (interactive)
+  (or (boundp 'load-history)
+      (error "Sorry, `gnus-unload' is not implemented in this Emacs version."))
   (let ((history load-history)
        feature)
     (while history
@@ -3262,8 +3268,6 @@ prompt the user for the name of an NNTP server to use."
           (unload-feature feature 'force))
       (setq history (cdr history)))))
 
-                                       
-
 (defun gnus-group-startup-message (&optional x y)
   "Insert startup message in current buffer."
   ;; Insert the message.
@@ -3361,7 +3365,7 @@ listed."
                       (or
                        (gnus-group-default-level nil t)
                        gnus-group-default-list-level
-                       level-subscribed))))
+                       gnus-level-subscribed))))
   (or level
       (setq level (car gnus-group-list-mode)
            unread (cdr gnus-group-list-mode)))
@@ -8059,7 +8063,9 @@ If BACKWARD, the previous article is selected instead of the next."
      ;; If not, we try the first unread, if that is wanted.
      ((and subject
           gnus-auto-select-same
-          (gnus-summary-first-unread-article))
+          (or (gnus-summary-first-unread-article)
+              (eq (gnus-summary-article-mark) gnus-canceled-mark)))
+      (gnus-summary-position-cursor)
       (gnus-message 6 "Wrapped"))
      ;; Try to get next/previous article not displayed in this group.
      ((and gnus-auto-extend-newsgroup
@@ -8075,7 +8081,7 @@ If BACKWARD, the previous article is selected instead of the next."
      (t
       (or (assoc 'quit-config (gnus-find-method-for-group gnus-newsgroup-name))
          (gnus-summary-jump-to-group gnus-newsgroup-name))
-      (let ((cmd (aref (this-command-keys) 0))
+      (let ((cmd last-command-char)
            (group 
             (if (eq gnus-keep-same-level 'best) 
                 (gnus-summary-best-group gnus-newsgroup-name)
@@ -8084,7 +8090,7 @@ If BACKWARD, the previous article is selected instead of the next."
        ;; it back.  
        (select-window (get-buffer-window (current-buffer)))
        ;; Keep just the event type of CMD.
-       (and (listp cmd) (setq cmd (car cmd)))
+       ;(and (listp cmd) (setq cmd (car cmd)))
        ;; Select next unread newsgroup automagically.
        (cond 
         ((not gnus-auto-select-next)
@@ -9122,7 +9128,7 @@ This will have permanent effect only in mail groups."
 (defun gnus-summary-raise-thread (&optional score)
   "Raise the score of the articles in the current thread with SCORE."
   (interactive "P")
-  (setq score (1- (gnus-score-default score)))
+  (setq score (gnus-score-default score))
   (let (e)
     (save-excursion
       (let ((level (gnus-summary-thread-level)))
@@ -11015,14 +11021,14 @@ Provided for backwards compatability."
        (search-forward "\n\n")
        (narrow-to-region (point-min) (point))
        (goto-char (point-min))
-       (if (or (not gnus-article-x-face-command)
-               (and (not force)
-                    (or (not gnus-article-x-face-too-ugly)
-                        (string-match gnus-article-x-face-too-ugly
-                                      (mail-fetch-field "from"))))
-               (progn
-                 (goto-char (point-min))
-                 (not (re-search-forward "^X-Face: " nil t))))
+       (if (not (and gnus-article-x-face-command
+                     (or force
+                         (and gnus-article-x-face-too-ugly
+                              (not (string-match gnus-article-x-face-too-ugly
+                                                 (mail-fetch-field "from")))))
+                     (progn
+                       (goto-char (point-min))
+                       (re-search-forward "^X-Face: " nil t))))
            nil
          (let ((beg (point))
                (end (1- (re-search-forward "^\\($\\|[^ \t]\\)" nil t))))
@@ -12134,8 +12140,9 @@ The `-n' option line from .newsrc is respected."
                         gnus-secondary-select-methods)))
         (groups 0)
         (new-date (current-time-string))
-        hashtb group new-newsgroups got-new method)
-    ;; Go thorugh both primary and secondary select methods and
+        (hashtb (gnus-make-hashtable 100))
+        group new-newsgroups got-new method)
+    ;; Go through both primary and secondary select methods and
     ;; request new newsgroups.  
     (while methods
       (setq method (gnus-server-get-method nil (car methods)))
@@ -12144,8 +12151,6 @@ The `-n' option line from .newsrc is respected."
           (save-excursion
             (setq got-new t)
             (set-buffer nntp-server-buffer)
-            (or hashtb (setq hashtb (gnus-make-hashtable 
-                                     (count-lines (point-min) (point-max)))))
             ;; Enter all the new groups in a hashtable.
             (gnus-active-to-gnus-format method hashtb 'ignore)))
       (setq methods (cdr methods)))
@@ -12154,7 +12159,9 @@ The `-n' option line from .newsrc is respected."
     (mapatoms
      (lambda (group-sym)
        (setq group (symbol-name group-sym))
-       (if (or (gnus-gethash group gnus-newsrc-hashtb)
+       (if (or (null group)
+              (null (symbol-value group-sym))
+              (gnus-gethash group gnus-newsrc-hashtb)
               (member group gnus-zombie-list)
               (member group gnus-killed-list))
           ;; The group is already known.
@@ -12314,7 +12321,8 @@ The `-n' option line from .newsrc is respected."
                         (setq info (cdr entry))
                         (setq num (car entry)))
                     (setq active (gnus-gethash group gnus-active-hashtb))
-                    (setq num (if active (- (1+ (cdr active)) (car active)) t))
+                    (setq num 
+                          (if active (- (1+ (cdr active)) (car active)) t))
                     ;; Check whether the group is foreign. If so, the
                     ;; foreign select method has to be entered into the
                     ;; info. 
@@ -13132,6 +13140,7 @@ If FORCE is non-nil, the .newsrc file is read."
                                (progn (beginning-of-line) (point)))
                           (point))))))
        (symbol
+       (or (boundp symbol) (set symbol nil))
        ;; It was a group name.
        (setq subscribed (= (following-char) ?:)
              group (symbol-name symbol)
index b7de19f..9dc8ddc 100644 (file)
 
        (goto-char (point-min))
        (re-search-forward delim nil t)
-       (setq start (match-beginning 0))
+       (setq start (match-end 0))
        (while (re-search-forward delim nil t)
          (setq end (match-end 0))
          (or (search-backward "\nX-Gnus-Newsgroup: " start t)
index eb5b97e..86cadfc 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 @comment %**start of header (This is for running Texinfo on a region.)
 @setfilename gnus.info
-@settitle (ding) Gnus 0.84 Manual
+@settitle (ding) Gnus 0.99.18 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -1135,7 +1135,8 @@ It is recommended that you keep all your mail groups (if any) on quite
 low levels (eg. 1 or 2).
 
 If you want to play with the level variables, you should show some care.
-Set them once, and don't touch them ever again.  
+Set them once, and don't touch them ever again.  Better yet, don't touch
+them at all unless you know exactly what you're doing.
 
 @vindex gnus-level-default-unsubscribed
 @vindex gnus-level-default-subscribed