*** pub/sgnus/lisp/gnus-cite.el	Thu Oct 19 10:40:31 1995
--- sgnus/lisp/gnus-cite.el	Sun Oct 29 19:21:45 1995
***************
*** 241,247 ****
      (set-buffer gnus-article-buffer)
      (gnus-cite-parse-maybe force)
      (goto-char (point-min))
!     (search-forward "\n\n")
      (let ((start (point))
  	  (atts gnus-cite-attribution-alist)
  	  (buffer-read-only nil)
--- 241,247 ----
      (set-buffer gnus-article-buffer)
      (gnus-cite-parse-maybe force)
      (goto-char (point-min))
!     (search-forward "\n\n" nil t)
      (let ((start (point))
  	  (atts gnus-cite-attribution-alist)
  	  (buffer-read-only nil)
***************
*** 370,376 ****
  
    ;; Parse current buffer searching for attribution lines.
    (goto-char (point-min))
!   (search-forward "\n\n")
    (while (re-search-forward gnus-cite-attribution-suffix (point-max) t)
      (let* ((start (match-beginning 0))
  	   (end (match-end 0))
--- 370,376 ----
  
    ;; Parse current buffer searching for attribution lines.
    (goto-char (point-min))
!   (search-forward "\n\n" nil t)
    (while (re-search-forward gnus-cite-attribution-suffix (point-max) t)
      (let* ((start (match-beginning 0))
  	   (end (match-end 0))
*** pub/sgnus/lisp/gnus-mh.el	Thu Oct 19 10:40:32 1995
--- sgnus/lisp/gnus-mh.el	Thu Oct 26 21:26:19 1995
***************
*** 87,93 ****
--- 87,121 ----
      (and in-reply-to (insert "In-Reply-To: " in-reply-to "\n"))
      (setq mh-sent-from-folder gnus-article-copy)
      (setq mh-sent-from-msg 1)
+     (setq gnus-mail-buffer (buffer-name (current-buffer)))
+     (local-set-key "\C-c\C-c" 'gnus-mh-mail-send-and-exit)
      (setq mh-previous-window-config config)))
+ 
+ (defun gnus-mh-mail-send-and-exit (&optional dont-send)
+   "Send the current mail and return to Gnus."
+   (interactive)
+   (let* ((reply gnus-article-reply)
+ 	 (winconf gnus-prev-winconf)
+ 	 (address-group gnus-add-to-address)
+ 	 (to-address (and address-group
+ 			  (mail-fetch-field "to"))))
+     (setq gnus-add-to-address nil)
+     (or dont-send (mh-send-letter))
+     (bury-buffer)
+     ;; This mail group doesn't have a `to-address', so we add one
+     ;; here.  Magic!  
+     (and to-address
+ 	 (gnus-group-add-parameter 
+ 	  address-group (cons 'to-address to-address)))
+     (if (get-buffer gnus-group-buffer)
+ 	(progn
+ 	  (if (gnus-buffer-exists-p (car-safe reply))
+ 	      (progn
+ 		(set-buffer (car reply))
+ 		(and (cdr reply)
+ 		     (gnus-summary-mark-article-as-replied 
+ 		      (cdr reply)))))
+ 	  (and winconf (set-window-configuration winconf))))))
  
  (defun gnus-Folder-save-name (newsgroup headers &optional last-folder)
    "Generate folder name from NEWSGROUP, HEADERS, and optional LAST-FOLDER.
*** pub/sgnus/lisp/gnus-msg.el	Thu Oct 19 10:40:33 1995
--- sgnus/lisp/gnus-msg.el	Sun Oct 29 19:17:31 1995
***************
*** 1237,1242 ****
--- 1237,1243 ----
  		   (call-process-region (point-min) (point-max) shell-file-name
  					nil nil nil "-c" program)))
  		(t
+ 		 (setq fcc-file (expand-file-name fcc-file))
  		 ;; Suggested by hyoko@flab.fujitsu.junet.
  		 ;; Save article in Unix mail format by default.
  		 (gnus-make-directory (file-name-directory fcc-file))
***************
*** 1492,1498 ****
    (pop-to-buffer gnus-mail-buffer)
    (erase-buffer)
    (gnus-mail-setup 'new to)
!   (gnus-inews-modify-mail-mode-map))
  
  (defun gnus-mail-reply (&optional yank to-address followup)
    (save-excursion
--- 1493,1499 ----
    (pop-to-buffer gnus-mail-buffer)
    (erase-buffer)
    (gnus-mail-setup 'new to)
!   (run-hooks 'gnus-mail-hook))
  
  (defun gnus-mail-reply (&optional yank to-address followup)
    (save-excursion
***************
*** 1586,1592 ****
  	(setq gnus-in-reply-to message-of)
  
  	(auto-save-mode auto-save-default)
- 	(gnus-inews-modify-mail-mode-map)
  
  	(if (and follow-to (listp follow-to))
  	    (progn
--- 1587,1592 ----
***************
*** 1647,1653 ****
      (news-reply-mode)
      ;; Let posting styles be configured.
      (gnus-configure-posting-styles)
!     (news-setup nil subject nil (gnus-group-real-name group) nil)
      (gnus-inews-insert-signature)
      (and gnus-post-prepare-function
  	 (symbolp gnus-post-prepare-function)
--- 1647,1653 ----
      (news-reply-mode)
      ;; Let posting styles be configured.
      (gnus-configure-posting-styles)
!     (news-setup nil subject nil (and group (gnus-group-real-name group)) nil)
      (gnus-inews-insert-signature)
      (and gnus-post-prepare-function
  	 (symbolp gnus-post-prepare-function)
***************
*** 1976,1987 ****
  	()
        (erase-buffer)
        (gnus-mail-setup 'forward nil subject)
-       (gnus-inews-modify-mail-mode-map)
        (make-local-variable 'gnus-prev-winconf)
        (setq gnus-prev-winconf winconf)
        (gnus-forward-insert-buffer forward-buffer)
        (goto-char (point-min))
!       (re-search-forward "^To: " nil t)
        (gnus-configure-windows 'mail-forward 'force)
        ;; You have a chance to arrange the message.
        (run-hooks 'gnus-mail-forward-hook)
--- 1976,1986 ----
  	()
        (erase-buffer)
        (gnus-mail-setup 'forward nil subject)
        (make-local-variable 'gnus-prev-winconf)
        (setq gnus-prev-winconf winconf)
        (gnus-forward-insert-buffer forward-buffer)
        (goto-char (point-min))
!       (re-search-forward "^To: ?" nil t)
        (gnus-configure-windows 'mail-forward 'force)
        ;; You have a chance to arrange the message.
        (run-hooks 'gnus-mail-forward-hook)
***************
*** 2203,2209 ****
    (funcall
     (cond
      ((or 
!       (and (eq type 'reply) 
  	   (eq gnus-mail-reply-method 'gnus-mail-reply-using-mhe))
        (and (eq type 'forward)
  	   (eq gnus-mail-forward-method 'gnus-mail-forward-using-mhe))
--- 2202,2208 ----
    (funcall
     (cond
      ((or 
!       (and (or (eq type 'reply) (eq type 'followup))
  	   (eq gnus-mail-reply-method 'gnus-mail-reply-using-mhe))
        (and (eq type 'forward)
  	   (eq gnus-mail-forward-method 'gnus-mail-forward-using-mhe))
***************
*** 2212,2218 ****
  	       'gnus-mail-other-window-using-mhe)))
       'gnus-mh-mail-setup)
      ((or 
!       (and (eq type 'reply) 
  	   (eq gnus-mail-reply-method 'gnus-mail-reply-using-vm))
        (and (eq type 'forward)
  	   (eq gnus-mail-forward-method 'gnus-mail-forward-using-vm))
--- 2211,2217 ----
  	       'gnus-mail-other-window-using-mhe)))
       'gnus-mh-mail-setup)
      ((or 
!       (and (or (eq type 'reply) (eq type 'followup)) 
  	   (eq gnus-mail-reply-method 'gnus-mail-reply-using-vm))
        (and (eq type 'forward)
  	   (eq gnus-mail-forward-method 'gnus-mail-forward-using-vm))
***************
*** 2225,2231 ****
  
  (defun gnus-sendmail-mail-setup (to subject in-reply-to cc replybuffer actions)
    (mail-mode)
!   (mail-setup to subject nil cc replybuffer actions))
    
  ;;; Gcc handling.
  
--- 2224,2231 ----
  
  (defun gnus-sendmail-mail-setup (to subject in-reply-to cc replybuffer actions)
    (mail-mode)
!   (mail-setup to subject nil cc replybuffer actions)
!   (gnus-inews-modify-mail-mode-map))
    
  ;;; Gcc handling.
  
*** pub/sgnus/lisp/gnus-score.el	Thu Oct 19 10:40:33 1995
--- sgnus/lisp/gnus-score.el	Sun Oct 29 19:17:32 1995
***************
*** 84,90 ****
  
  (defvar gnus-score-cache nil)
  (defvar gnus-scores-articles nil)
- (defvar gnus-scores-exclude-files nil)
  (defvar gnus-header-index nil)
  (defvar gnus-score-index nil)
  
--- 84,89 ----
*** pub/sgnus/lisp/gnus-topic.el	Thu Oct 19 10:40:33 1995
--- sgnus/lisp/gnus-topic.el	Thu Oct 26 17:03:52 1995
***************
*** 26,31 ****
--- 26,32 ----
  ;;; Code:
  
  (require 'gnus)
+ (eval-when-compile (require 'cl))
  
  (defvar gnus-group-topic-face 'bold
    "*Face used to highlight topic headers.")
***************
*** 47,52 ****
--- 48,56 ----
  (defvar gnus-topic-names nil
    "A list of all topic names.")
  
+ (defvar gnus-topic-names nil
+   "A list of all topic names.")
+ 
  (defvar gnus-group-topic-topics-only nil
    "*If non-nil, only the topics will be shown when typing `l' or `L'.")
  
***************
*** 63,69 ****
    "The name of the topic on the current line."
    (get-text-property (gnus-point-at-bol) 'gnus-topic))
  
! (defun gnus-group-prepare-topics (level &optional all lowest regexp topic)
    "List all newsgroups with unread articles of level LEVEL or lower, and
  use the `gnus-group-topics' to sort the groups.
  If ALL is non-nil, list groups that have no unread articles.
--- 67,73 ----
    "The name of the topic on the current line."
    (get-text-property (gnus-point-at-bol) 'gnus-topic))
  
! (defun gnus-group-prepare-topics (level &optional all lowest regexp list-topic)
    "List all newsgroups with unread articles of level LEVEL or lower, and
  use the `gnus-group-topics' to sort the groups.
  If ALL is non-nil, list groups that have no unread articles.
***************
*** 73,79 ****
          (lowest (or lowest 1))
  	tlist info)
      
!     (or topic (erase-buffer))
      
      ;; List dead groups?
      (and (>= level gnus-level-zombie) (<= lowest gnus-level-zombie)
--- 77,83 ----
          (lowest (or lowest 1))
  	tlist info)
      
!     (or list-topic (erase-buffer))
      
      ;; List dead groups?
      (and (>= level gnus-level-zombie) (<= lowest gnus-level-zombie)
***************
*** 88,99 ****
  	  gnus-level-killed ?K
            regexp))
      
!     ;; Use topics
      (if (< lowest gnus-level-zombie)
!         (let ((topics (gnus-topic-find-groups topic))
                topic how)
  	  (setq gnus-topic-names topics)
-           (erase-buffer)
            (while topics
              (setq topic (car (car topics))
  		  tlist (cdr (car topics))
--- 92,102 ----
  	  gnus-level-killed ?K
            regexp))
      
!     ;; Use topics.
      (if (< lowest gnus-level-zombie)
!         (let ((topics (gnus-topic-find-groups list-topic level all))
                topic how)
  	  (setq gnus-topic-names topics)
            (while topics
              (setq topic (car (car topics))
  		  tlist (cdr (car topics))
***************
*** 101,114 ****
                    topics (cdr topics))
  
  	    ;; Insert the topic.
!             (add-text-properties 
! 	     (point)
! 	     (progn
! 	       (insert topic "\n")
! 	       (point))
! 	     (list 'mouse-face gnus-mouse-face
! 		   'face gnus-group-topic-face
! 		   'gnus-topic topic))
  
  	    ;; We insert the groups for the topics we want to have. 
              (if (and (or (and (not how) (not gnus-group-topic-topics-only))
--- 104,118 ----
                    topics (cdr topics))
  
  	    ;; Insert the topic.
! 	    (unless list-topic
! 	      (add-text-properties 
! 	       (point)
! 	       (progn
! 		 (insert topic "\n")
! 		 (point))
! 	       (list 'mouse-face gnus-mouse-face
! 		     'face gnus-group-topic-face
! 		     'gnus-topic topic)))
  
  	    ;; We insert the groups for the topics we want to have. 
              (if (and (or (and (not how) (not gnus-group-topic-topics-only))
***************
*** 132,147 ****
    (setq gnus-group-list-mode (cons level all))
    (run-hooks 'gnus-group-prepare-hook))
  
! (defun gnus-topic-find-groups (&optional topic)
    "Find all topics and all groups in all topics.
  If TOPIC, just find the groups in that topic."
    (let ((newsrc (cdr gnus-newsrc-alist))
! 	(topics (mapcar (lambda (e) (list (car e)))
! 			gnus-group-topics))
  	(topic-alist (if topic (list (assoc topic gnus-group-topics))
  		       gnus-group-topics))
!         info clevel unread group w lowest level all gtopic)
      (setq lowest (or lowest 1))
      ;; We go through the newsrc to look for matches.
      (while newsrc
        (setq info (car newsrc)
--- 136,155 ----
    (setq gnus-group-list-mode (cons level all))
    (run-hooks 'gnus-group-prepare-hook))
  
! (defun gnus-topic-find-groups (&optional topic level all)
    "Find all topics and all groups in all topics.
  If TOPIC, just find the groups in that topic."
    (let ((newsrc (cdr gnus-newsrc-alist))
! 	(topics (if topic
! 		    (list (list topic))
! 		  (mapcar (lambda (e) (list (car e)))
! 			  gnus-group-topics)))
  	(topic-alist (if topic (list (assoc topic gnus-group-topics))
  		       gnus-group-topics))
!         info clevel unread group w lowest gtopic)
      (setq lowest (or lowest 1))
+     (setq all (or all nil))
+     (setq level (or level 7))
      ;; We go through the newsrc to look for matches.
      (while newsrc
        (setq info (car newsrc)
***************
*** 150,156 ****
              unread (car (gnus-gethash group gnus-newsrc-hashtb)))
        (and 
         unread				; nil means that the group is dead.
!        (setq clevel (car (cdr info)))
         (>= clevel lowest)		; Is inside the level we want.
         (or all
  	   (eq unread t)
--- 158,164 ----
              unread (car (gnus-gethash group gnus-newsrc-hashtb)))
        (and 
         unread				; nil means that the group is dead.
!        (<= (setq clevel (car (cdr info))) level) 
         (>= clevel lowest)		; Is inside the level we want.
         (or all
  	   (eq unread t)
***************
*** 194,208 ****
  
  (defun gnus-topic-insert-topic (topic)
    "Insert TOPIC."
    (gnus-group-prepare-topics 
!   (car gnus-group-list-mode) (cdr gnus-group-list-mode)
!   nil nil topic))
    
  (defun gnus-topic-fold ()
    "Remove/insert the current topic."
    (let ((topic (gnus-group-topic-name))) 
!     (if (not topic)
! 	()				; Nothing to do.
        (save-excursion
  	(if (not (member topic gnus-topics-not-listed))
  	    ;; If the topic is visible, we remove it.
--- 202,216 ----
  
  (defun gnus-topic-insert-topic (topic)
    "Insert TOPIC."
+   (setq gnus-topics-not-listed (delete topic gnus-topics-not-listed))
    (gnus-group-prepare-topics 
!    (car gnus-group-list-mode) (cdr gnus-group-list-mode)
!    nil nil topic))
    
  (defun gnus-topic-fold ()
    "Remove/insert the current topic."
    (let ((topic (gnus-group-topic-name))) 
!     (when topic
        (save-excursion
  	(if (not (member topic gnus-topics-not-listed))
  	    ;; If the topic is visible, we remove it.
*** pub/sgnus/lisp/gnus.el	Thu Oct 19 10:40:36 1995
--- sgnus/lisp/gnus.el	Sun Oct 29 19:21:44 1995
***************
*** 1370,1375 ****
--- 1370,1376 ----
  (defvar gnus-current-score-file nil)
  (defvar gnus-internal-global-score-files nil)
  (defvar gnus-score-file-list nil)
+ (defvar gnus-scores-exclude-files nil)
  
  (defvar gnus-opened-servers nil)
  
***************
*** 1433,1442 ****
        (?z gnus-tmp-score-char ?c)
        (?U gnus-tmp-unread ?c)
        (?t (gnus-summary-number-of-articles-in-thread 
! 	   (and (boundp 'thread) (car thread)))
  	  ?d)
        (?e (gnus-summary-number-of-articles-in-thread 
! 	   (and (boundp 'thread) (car thread)) t)
  	  ?c)
        (?u gnus-tmp-user-defined ?s)))
    "An alist of format specifications that can appear in summary lines,
--- 1434,1443 ----
        (?z gnus-tmp-score-char ?c)
        (?U gnus-tmp-unread ?c)
        (?t (gnus-summary-number-of-articles-in-thread 
! 	   (and (boundp 'thread) (car thread)) gnus-tmp-level)
  	  ?d)
        (?e (gnus-summary-number-of-articles-in-thread 
! 	   (and (boundp 'thread) (car thread)) gnus-tmp-level t)
  	  ?c)
        (?u gnus-tmp-user-defined ?s)))
    "An alist of format specifications that can appear in summary lines,
***************
*** 1476,1482 ****
    "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "September Gnus v0.11"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
--- 1477,1483 ----
    "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "September Gnus v0.12"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
***************
*** 1626,1631 ****
--- 1627,1634 ----
  
  (defvar gnus-newsgroup-threads nil)
  
+ (defvar gnus-newsgroup-threads nil)
+ 
  (defvar gnus-newsgroup-ancient nil
    "List of `gnus-fetch-old-headers' articles in the current newsgroup.")
  
***************
*** 2106,2113 ****
  	(setq address (substring from (match-beginning 0) (match-end 0))))
      ;; Then we check whether the "name <address>" format is used.
      (and address
! 	 (string-match (concat "<" (regexp-quote address) ">") from)
! 	 (and (setq name (substring from 0 (1- (match-beginning 0))))
  	      ;; Strip any quotes from the name.
  	      (string-match "\".*\"" name)
  	      (setq name (substring name 1 (1- (match-end 0))))))
--- 2109,2118 ----
  	(setq address (substring from (match-beginning 0) (match-end 0))))
      ;; Then we check whether the "name <address>" format is used.
      (and address
!  	 ;; Fix by MORIOKA Tomohiko <morioka@jaist.ac.jp>
!  	 ;; Linear white space is not required.
!  	 (string-match (concat "[ \t]*<" (regexp-quote address) ">") from)
!  	 (and (setq name (substring from 0 (match-beginning 0)))
  	      ;; Strip any quotes from the name.
  	      (string-match "\".*\"" name)
  	      (setq name (substring name 1 (1- (match-end 0))))))
***************
*** 2266,2272 ****
        (gnus-set-work-buffer)
        (insert format)
        (goto-char (point-min))
!       (while (re-search-forward "%[-0-9]*\\(,[0-9]*\\)*\\(.\\)\\(.\\)?" nil t)
  	(setq spec (string-to-char (buffer-substring (match-beginning 2)
  						     (match-end 2))))
  	;; First check if there are any specs that look anything like
--- 2271,2277 ----
        (gnus-set-work-buffer)
        (insert format)
        (goto-char (point-min))
!       (while (re-search-forward "%[-0-9]*\\(,[0-9]+\\)?\\([^0-9]\\)\\(.\\)?" nil t)
  	(setq spec (string-to-char (buffer-substring (match-beginning 2)
  						     (match-end 2))))
  	;; First check if there are any specs that look anything like
***************
*** 2289,2295 ****
  					  (buffer-substring
  					   (match-beginning 3)
  					   (match-end 3))))
! 			  'header)
  		    ?s))
  	     (delete-region (match-beginning 3) (match-end 3)))
  	(if (not (zerop max-width))
--- 2294,2300 ----
  					  (buffer-substring
  					   (match-beginning 3)
  					   (match-end 3))))
! 			  'gnus-tmp-header)
  		    ?s))
  	     (delete-region (match-beginning 3) (match-end 3)))
  	(if (not (zerop max-width))
***************
*** 2713,2725 ****
      (setq gnus-buffer-list (cdr gnus-buffer-list))))
  
  (defun gnus-windows-old-to-new (setting)
    (if (symbolp setting)
        (setq setting 
! 	    (cond ((eq setting 'SelectArticle)
  		   'article)
! 		  ((eq setting 'SelectSubject)
  		   'summary)
! 		  ((eq setting 'SelectNewsgroup)
  		   'group)
  		  (t setting))))
    (if (or (listp setting)
--- 2718,2731 ----
      (setq gnus-buffer-list (cdr gnus-buffer-list))))
  
  (defun gnus-windows-old-to-new (setting)
+   ;; First we take care of the really, really old Gnus 3 actions.
    (if (symbolp setting)
        (setq setting 
! 	    (cond ((memq setting '(SelectArticle))
  		   'article)
! 		  ((memq setting '(SelectSubject ExpandSubject))
  		   'summary)
! 		  ((memq setting '(SelectNewsgroup ExitNewsgroup))
  		   'group)
  		  (t setting))))
    (if (or (listp setting)
***************
*** 3662,3668 ****
    "Byte-compile the Gnus startup file.
  This will also compile the user-defined format specs."
    (interactive)
!   (let ((file (make-temp-name "/tmp/gnuss")))
      (save-excursion
        (gnus-message 7 "Compiling user file...")
        (nnheader-set-temp-buffer " *compile gnus*")
--- 3668,3674 ----
    "Byte-compile the Gnus startup file.
  This will also compile the user-defined format specs."
    (interactive)
!   (let ((file (concat (make-temp-name "/tmp/gnuss") ".el")))
      (save-excursion
        (gnus-message 7 "Compiling user file...")
        (nnheader-set-temp-buffer " *compile gnus*")
***************
*** 3690,3705 ****
  		  "-line-format-spec (list 'gnus-byte-code 'gnus-"
  		  format "-line-format-spec))\n"))
  
! 	(insert "(setq gnus-old-specs '" (prin1-to-string fs) "\n")
  
  	(write-region (point-min) (point-max) file nil 'silent)
  	(byte-compile-file file)
  	(rename-file
! 	 (concat file ".elc") 
  	 (concat gnus-init-file 
  		 (if (string-match "\\.el$" gnus-init-file) "c" ".elc"))
  	 t)
! 	(delete-file file)
  	(kill-buffer (current-buffer)))
        (gnus-message 7 "Compiling user file...done"))))
  
--- 3696,3712 ----
  		  "-line-format-spec (list 'gnus-byte-code 'gnus-"
  		  format "-line-format-spec))\n"))
  
! 	(insert "(setq gnus-old-specs '" (prin1-to-string fs) ")\n")
  
  	(write-region (point-min) (point-max) file nil 'silent)
  	(byte-compile-file file)
  	(rename-file
! 	 (concat file "c") 
  	 (concat gnus-init-file 
  		 (if (string-match "\\.el$" gnus-init-file) "c" ".elc"))
  	 t)
! 	(when (file-exists-p file)
! 	  (delete-file file))
  	(kill-buffer (current-buffer)))
        (gnus-message 7 "Compiling user file...done"))))
  
***************
*** 4758,4771 ****
  		(not (file-exists-p (concat (file-name-as-directory (car path))
  					    "doc.txt"))))
        (setq path (cdr path)))
!     (or path (error "Couldn't find doc group"))
!     (gnus-group-make-group 
!      (gnus-group-real-name name)
!      (list 'nndoc name
! 	   (list 'nndoc-address 
! 		 (concat (file-name-as-directory (car path)) "doc.txt"))
! 	   (list 'nndoc-article-type 'mbox)))
!     (forward-line -1))
    (gnus-group-position-point))
  
  (defun gnus-group-make-doc-group (file type)
--- 4765,4779 ----
  		(not (file-exists-p (concat (file-name-as-directory (car path))
  					    "doc.txt"))))
        (setq path (cdr path)))
!     (if (not path)
! 	(message "Couldn't find doc group")
!       (gnus-group-make-group 
!        (gnus-group-real-name name)
!        (list 'nndoc name
! 	     (list 'nndoc-address 
! 		   (concat (file-name-as-directory (car path)) "doc.txt"))
! 	     (list 'nndoc-article-type 'mbox)))
!       (forward-line -1)))
    (gnus-group-position-point))
  
  (defun gnus-group-make-doc-group (file type)
***************
*** 5966,5972 ****
    (define-key gnus-summary-mode-map "\C-t" 'gnus-summary-toggle-truncation)
    (define-key gnus-summary-mode-map "?" 'gnus-summary-mark-as-dormant)
    (define-key gnus-summary-mode-map 
!     "\C-c\M-\C-s" 'gnus-summary-show-all-expunged)
    (define-key gnus-summary-mode-map 
      "\C-c\C-s\C-n" 'gnus-summary-sort-by-number)
    (define-key gnus-summary-mode-map 
--- 5974,5980 ----
    (define-key gnus-summary-mode-map "\C-t" 'gnus-summary-toggle-truncation)
    (define-key gnus-summary-mode-map "?" 'gnus-summary-mark-as-dormant)
    (define-key gnus-summary-mode-map 
!     "\C-c\M-\C-s" 'gnus-summary-limit-include-expunged)
    (define-key gnus-summary-mode-map 
      "\C-c\C-s\C-n" 'gnus-summary-sort-by-number)
    (define-key gnus-summary-mode-map 
***************
*** 6011,6017 ****
    (define-key gnus-summary-mode-map "\C-d" 'gnus-summary-enter-digest-group)
    (define-key gnus-summary-mode-map "v" 'gnus-summary-verbose-headers)
    (define-key gnus-summary-mode-map "\C-c\C-b" 'gnus-bug)
-   (define-key gnus-summary-mode-map "/" 'gnus-summary-limit-to-subject)
  
  
    ;; Sort of orthogonal keymap
--- 6019,6024 ----
***************
*** 6030,6036 ****
    (define-key gnus-summary-mark-map "B" 'gnus-summary-remove-bookmark)
    (define-key gnus-summary-mark-map "#" 'gnus-summary-mark-as-processable)
    (define-key gnus-summary-mark-map "\M-#" 'gnus-summary-unmark-as-processable)
!   (define-key gnus-summary-mark-map "S" 'gnus-summary-show-all-expunged)
    (define-key gnus-summary-mark-map "C" 'gnus-summary-catchup)
    (define-key gnus-summary-mark-map "H" 'gnus-summary-catchup-to-here)
    (define-key gnus-summary-mark-map "\C-c" 'gnus-summary-catchup-all)
--- 6037,6043 ----
    (define-key gnus-summary-mark-map "B" 'gnus-summary-remove-bookmark)
    (define-key gnus-summary-mark-map "#" 'gnus-summary-mark-as-processable)
    (define-key gnus-summary-mark-map "\M-#" 'gnus-summary-unmark-as-processable)
!   (define-key gnus-summary-mark-map "S" 'gnus-summary-limit-include-expunged)
    (define-key gnus-summary-mark-map "C" 'gnus-summary-catchup)
    (define-key gnus-summary-mark-map "H" 'gnus-summary-catchup-to-here)
    (define-key gnus-summary-mark-map "\C-c" 'gnus-summary-catchup-all)
***************
*** 6050,6056 ****
    (define-key gnus-summary-mode-map "S" 'gnus-summary-send-map)
  
    (define-prefix-command 'gnus-summary-limit-map)
!   (define-key gnus-summary-mark-map "N" 'gnus-summary-limit-map)
    (define-key gnus-summary-limit-map "n" 'gnus-summary-limit-to-articles)
    (define-key gnus-summary-limit-map "w" 'gnus-summary-pop-limit)
    (define-key gnus-summary-limit-map "s" 'gnus-summary-limit-to-subject)
--- 6057,6064 ----
    (define-key gnus-summary-mode-map "S" 'gnus-summary-send-map)
  
    (define-prefix-command 'gnus-summary-limit-map)
!   (define-key gnus-summary-mark-map "/" 'gnus-summary-limit-map)
!   (define-key gnus-summary-limit-map "/" 'gnus-summary-limit-to-subject)
    (define-key gnus-summary-limit-map "n" 'gnus-summary-limit-to-articles)
    (define-key gnus-summary-limit-map "w" 'gnus-summary-pop-limit)
    (define-key gnus-summary-limit-map "s" 'gnus-summary-limit-to-subject)
***************
*** 6059,6064 ****
--- 6067,6073 ----
    (define-key gnus-summary-limit-map "v" 'gnus-summary-limit-to-score)
    (define-key gnus-summary-limit-map "D" 'gnus-summary-limit-include-dormant)
    (define-key gnus-summary-limit-map "d" 'gnus-summary-limit-exclude-dormant)
+   (define-key gnus-summary-mark-map "E" 'gnus-summary-limit-include-expunged)
    (define-key gnus-summary-limit-map "c" 
      'gnus-summary-limit-exclude-childless-dormant)
  
***************
*** 6672,6689 ****
  		 (run-hooks 'gnus-summary-update-hook))
  	    (forward-line 1)))))))
  
! (defvar gnus-tmp-gathered nil)
  
! (defun gnus-summary-number-of-articles-in-thread (thread &optional char)
    ;; Sum up all elements (and sub-elements) in a list.
    (let* ((number
  	  ;; Fix by Luc Van Eycken <Luc.VanEycken@esat.kuleuven.ac.be>.
! 	  (if (and (consp thread) (cdr thread))
! 	      (apply
! 	       '+ 1 (mapcar
! 		     'gnus-summary-number-of-articles-in-thread 
! 		     (cdr thread)))
! 	    1)))
      (if char 
  	(if (> number 1) gnus-not-empty-thread-mark
  	  gnus-empty-thread-mark)
--- 6681,6707 ----
  		 (run-hooks 'gnus-summary-update-hook))
  	    (forward-line 1)))))))
  
! (defvar gnus-tmp-new-adopts)
  
! (defun gnus-summary-number-of-articles-in-thread (thread &optional level char)
    ;; Sum up all elements (and sub-elements) in a list.
    (let* ((number
  	  ;; Fix by Luc Van Eycken <Luc.VanEycken@esat.kuleuven.ac.be>.
! 	  (cond ((and (consp thread) (cdr thread))
! 		 (apply
! 		  '+ 1 (mapcar
! 			'gnus-summary-number-of-articles-in-thread 
! 			(cdr thread))))
! 		((null thread)
! 		 1)
! 		((and level (zerop level) gnus-tmp-new-adopts)
! 		 (apply '+ 1 (mapcar 
! 			      'gnus-summary-number-of-articles-in-thread 
! 			      gnus-tmp-new-adopts)))
! 		((memq (mail-header-number (car thread))
! 		       gnus-newsgroup-limit)
! 		 1) 
! 		(t 0))))
      (if char 
  	(if (> number 1) gnus-not-empty-thread-mark
  	  gnus-empty-thread-mark)
***************
*** 6774,6779 ****
--- 6792,6798 ----
        (gnus-update-format-specifications)
        ;; Find the initial limit.
        (gnus-summary-initial-limit)
+       (gnus-set-mode-line 'summary)
        ;; Generate the summary buffer.
        (or no-display
  	  (gnus-summary-prepare))
***************
*** 6781,6787 ****
  	  (cond (gnus-newsgroup-dormant
  		 (gnus-summary-limit-include-dormant))
  		((and gnus-newsgroup-scored show-all)
! 		 (gnus-summary-show-all-expunged))))
        ;; Function `gnus-apply-kill-file' must be called in this hook.
        (run-hooks 'gnus-apply-kill-hook)
        (if (zerop (buffer-size))
--- 6800,6806 ----
  	  (cond (gnus-newsgroup-dormant
  		 (gnus-summary-limit-include-dormant))
  		((and gnus-newsgroup-scored show-all)
! 		 (gnus-summary-limit-include-expunged))))
        ;; Function `gnus-apply-kill-file' must be called in this hook.
        (run-hooks 'gnus-apply-kill-hook)
        (if (zerop (buffer-size))
***************
*** 7141,7147 ****
  
    (let ((level 0)
  	thread header number subject stack state gnus-tmp-gathered mark
! 	new-roots new-adopts thread-end)
  
      (setq gnus-tmp-prev-subject nil)
  
--- 7160,7166 ----
  
    (let ((level 0)
  	thread header number subject stack state gnus-tmp-gathered mark
! 	new-roots gnus-tmp-new-adopts thread-end)
  
      (setq gnus-tmp-prev-subject nil)
  
***************
*** 7153,7172 ****
  
        ;; Do the threaded display.
  
!       (while (or threads stack new-adopts new-roots)
  
  	(if (and (= level 0)
  		 (progn (setq gnus-tmp-dummy-line nil) t)
  		 (or (not stack)
  		     (= (car (car stack)) 0))
  		 (not gnus-tmp-false-parent)
! 		 (or new-adopts new-roots))
  	    (progn
! 	      (if new-adopts
  		  (setq level (if gnus-tmp-root-expunged 0 1)
! 			thread (list (car new-adopts))
  			header (car (car thread))
! 			new-adopts (cdr new-adopts))
  		(if new-roots
  		    (setq thread (list (car new-roots))
  			  header (car (car thread))
--- 7172,7191 ----
  
        ;; Do the threaded display.
  
!       (while (or threads stack gnus-tmp-new-adopts new-roots)
  
  	(if (and (= level 0)
  		 (progn (setq gnus-tmp-dummy-line nil) t)
  		 (or (not stack)
  		     (= (car (car stack)) 0))
  		 (not gnus-tmp-false-parent)
! 		 (or gnus-tmp-new-adopts new-roots))
  	    (progn
! 	      (if gnus-tmp-new-adopts
  		  (setq level (if gnus-tmp-root-expunged 0 1)
! 			thread (list (car gnus-tmp-new-adopts))
  			header (car (car thread))
! 			gnus-tmp-new-adopts (cdr gnus-tmp-new-adopts))
  		(if new-roots
  		    (setq thread (list (car new-roots))
  			  header (car (car thread))
***************
*** 7195,7202 ****
  	      (cond 
  	       ((eq gnus-summary-make-false-root 'adopt)
  		;; We let the first article adopt the rest.
! 		(setq new-adopts (nconc new-adopts
! 					(cdr (cdr (car thread)))))
  		(setq gnus-tmp-gathered 
  		      (nconc (mapcar
  			      (lambda (h) (mail-header-number (car h)))
--- 7214,7221 ----
  	      (cond 
  	       ((eq gnus-summary-make-false-root 'adopt)
  		;; We let the first article adopt the rest.
! 		(setq gnus-tmp-new-adopts (nconc gnus-tmp-new-adopts
! 						 (cdr (cdr (car thread)))))
  		(setq gnus-tmp-gathered 
  		      (nconc (mapcar
  			      (lambda (h) (mail-header-number (car h)))
***************
*** 7240,7249 ****
  			  (lambda (h) (mail-header-number (car h)))
  			  (cdr (car thread)))
  			 gnus-tmp-gathered))
! 	    (setq new-adopts (if (cdr (car thread))
! 				 (append new-adopts 
! 					 (cdr (car thread)))
! 			       new-adopts)
  		  thread-end t
  		  header nil)
  	    (if (zerop level)
--- 7259,7268 ----
  			  (lambda (h) (mail-header-number (car h)))
  			  (cdr (car thread)))
  			 gnus-tmp-gathered))
! 	    (setq gnus-tmp-new-adopts (if (cdr (car thread))
! 					  (append gnus-tmp-new-adopts 
! 						  (cdr (car thread)))
! 					gnus-tmp-new-adopts)
  		  thread-end t
  		  header nil)
  	    (if (zerop level)
***************
*** 9596,9604 ****
  	(goto-char (point-min))
  	(setq e (1- (search-forward "\n\n"))))
        (insert-buffer-substring gnus-original-article-buffer 1 e)
!       (let ((hook (delete 'gnus-article-hide-headers-if-wanted
! 			  (delete 'gnus-article-hide-headers
! 				  gnus-article-display-hook))))
  	(run-hooks 'hook))
        (if (or (not hidden) (and (numberp arg) (< arg 0)))
  	  (gnus-article-hide-headers)))))
--- 9615,9623 ----
  	(goto-char (point-min))
  	(setq e (1- (search-forward "\n\n"))))
        (insert-buffer-substring gnus-original-article-buffer 1 e)
!       (let ((hook (delq 'gnus-article-hide-headers-if-wanted
! 			(delq 'gnus-article-hide-headers
! 			      (copy-sequence gnus-article-display-hook)))))
  	(run-hooks 'hook))
        (if (or (not hidden) (and (numberp arg) (< arg 0)))
  	  (gnus-article-hide-headers)))))
***************
*** 10673,10679 ****
  		(gnus-summary-find-next)))))
  
  ;; Suggested by Daniel Quinlan <quinlan@best.com>.  
! (defun gnus-summary-show-all-expunged ()
    "Display all the hidden articles that were expunged for low scores."
    (interactive)
    (gnus-set-global-variables)
--- 10692,10699 ----
  		(gnus-summary-find-next)))))
  
  ;; Suggested by Daniel Quinlan <quinlan@best.com>.  
! (defalias 'gnus-summary-show-all-expunged 'gnus-summary-limit-include-expunged)
! (defun gnus-summary-limit-include-expunged ()
    "Display all the hidden articles that were expunged for low scores."
    (interactive)
    (gnus-set-global-variables)
***************
*** 10765,10772 ****
    (gnus-set-global-variables)
    (gnus-summary-catchup all quietly nil 'fast)
    ;; Select next newsgroup or exit.
!   (if (and (eq gnus-auto-select-next 'quietly)
! 	   (not (gnus-ephemeral-group-p gnus-newsgroup-name)))
        (gnus-summary-next-group nil)
      (gnus-summary-exit)))
  
--- 10785,10791 ----
    (gnus-set-global-variables)
    (gnus-summary-catchup all quietly nil 'fast)
    ;; Select next newsgroup or exit.
!   (if (eq gnus-auto-select-next 'quietly)
        (gnus-summary-next-group nil)
      (gnus-summary-exit)))
  
***************
*** 11034,11040 ****
  		       gnus-extract-address-components
  		       (mail-header-from header))))
  	(concat (or (car extract) (cdr extract))
- 		"\r" (int-to-string (mail-header-number header))
  		"\r" (mail-header-subject header))))
      'gnus-thread-sort-by-author)
     reverse))
--- 11053,11058 ----
***************
*** 11054,11060 ****
  		       (mail-header-from header))))
  	(concat 
  	 (downcase (gnus-simplify-subject (gnus-summary-article-subject) t))
-  	 "\r" (int-to-string (mail-header-number header))
  	 "\r" (or (car extract) (cdr extract)))))
      'gnus-thread-sort-by-subject)
     reverse))
--- 11072,11077 ----
***************
*** 14182,14188 ****
  		       ;; Options may continue on the next line.
  		       (or (and (re-search-forward "^[^ \t]" nil 'move)
  				(progn (beginning-of-line) (point)))
! 			   (point))))))
         (symbol
  	(or (boundp symbol) (set symbol nil))
  	;; It was a group name.
--- 14199,14206 ----
  		       ;; Options may continue on the next line.
  		       (or (and (re-search-forward "^[^ \t]" nil 'move)
  				(progn (beginning-of-line) (point)))
! 			   (point)))))
! 	(forward-line -1))
         (symbol
  	(or (boundp symbol) (set symbol nil))
  	;; It was a group name.
***************
*** 15141,15150 ****
  	       (search-forward "+")
  	       (forward-char -1)
  	       (insert "\\")))
- 	;; Translate ".all" to "[./].*";
- 	(while (search-forward ".all" nil t)
- 	  (replace-match "[./].*" t t))
- 	(goto-char (point-min))
  	;; Translate "all" to ".*".
  	(while (search-forward "all" nil t)
  	  (replace-match ".*" t t))
--- 15159,15164 ----
*** pub/sgnus/lisp/nnbabyl.el	Thu Oct 19 10:40:36 1995
--- sgnus/lisp/nnbabyl.el	Sun Oct 29 19:17:37 1995
***************
*** 157,163 ****
      (set-buffer nnbabyl-mbox-buffer)
      (goto-char (point-min))
      (if (search-forward (nnbabyl-article-string article) nil t)
! 	(let (start stop)
  	  (re-search-backward (concat "^" nnbabyl-mail-delimiter) nil t)
  	  (while (and (not (looking-at ".+:"))
  		      (zerop (forward-line 1))))
--- 157,163 ----
      (set-buffer nnbabyl-mbox-buffer)
      (goto-char (point-min))
      (if (search-forward (nnbabyl-article-string article) nil t)
! 	(let (start stop summary-line)
  	  (re-search-backward (concat "^" nnbabyl-mail-delimiter) nil t)
  	  (while (and (not (looking-at ".+:"))
  		      (zerop (forward-line 1))))
***************
*** 172,182 ****
  	    (erase-buffer)
  	    (insert-buffer-substring nnbabyl-mbox-buffer start stop)
  	    (goto-char (point-min))
! 	    (if (search-forward "\n*** EOOH ***" nil t)
! 		(progn
! 		  (delete-region (progn (beginning-of-line) (point))
! 				 (or (search-forward "\n\n" nil t)
! 				     (point)))))
  	    (if (numberp article) 
  		(cons nnbabyl-current-group article)
  	      (nnbabyl-article-group-number)))))))
--- 172,190 ----
  	    (erase-buffer)
  	    (insert-buffer-substring nnbabyl-mbox-buffer start stop)
  	    (goto-char (point-min))
! 	    ;; If there is an EOOH header, then we have to remove some
! 	    ;; duplicated headers. 
! 	    (setq summary-line (looking-at "Summary-line:"))
! 	    (when (search-forward "\n*** EOOH ***" nil t)
! 	      (if summary-line
! 		  ;; The headers to be deleted are located before the
! 		  ;; EOOH line...
! 		  (delete-region (point-min) (progn (forward-line 1)
! 		  (point)))
! 		;; ...or after.
! 		(delete-region (progn (beginning-of-line) (point))
! 			       (or (search-forward "\n\n" nil t)
! 				   (point)))))
  	    (if (numberp article) 
  		(cons nnbabyl-current-group article)
  	      (nnbabyl-article-group-number)))))))
*** pub/sgnus/lisp/nnsoup.el	Thu Oct 19 10:40:37 1995
--- sgnus/lisp/nnsoup.el	Sat Oct 28 00:12:36 1995
***************
*** 547,553 ****
  				      ?n ?m)))
  		  nnsoup-replies-list))
        (gnus-soup-reply-prefix (car nnsoup-replies-list)))))
! 	
  (provide 'nnsoup)
  
  ;;; nnsoup.el ends here
--- 547,596 ----
  				      ?n ?m)))
  		  nnsoup-replies-list))
        (gnus-soup-reply-prefix (car nnsoup-replies-list)))))
! 
! (defun nnsoup-make-active ()
!   (let ((files (sort (directory-files nnsoup-directory t "IDX$")
! 		     (lambda (f1 f2)
! 		       (< (progn (string-match "/\\([0-9]+\\)\\." f1)
! 				 (string-to-int (substring 
! 						 f1 (match-beginning 1)
! 						 (match-end 1))))
! 			  (progn (string-match "/\\([0-9]+\\)\\." f2)
! 				 (string-to-int (substring 
! 						 f2 (match-beginning 1)
! 						 (match-end 1))))))))
! 	active group lines ident elem min)
!     (set-buffer (get-buffer-create " *nnsoup work*"))
!     (buffer-disable-undo)
!     (while files
!       (message "Doing %s..." (car files))
!       (erase-buffer)
!       (insert-file-contents (car files))
!       (goto-char (point-min))
!       (end-of-line)
!       (re-search-backward "[ \t]\\([^ ]+\\):[0-9]")
!       (setq group (buffer-substring (match-beginning 1) (match-end 1)))
!       (setq lines (count-lines (point-min) (point-max)))
!       (setq ident (progn (string-match
! 			  "/\\([0-9]+\\)\\." (car files))
! 			 (substring 
! 			  (car files) (match-beginning 1)
! 			  (match-end 1))))
!       (if (not (setq elem (assoc group active)))
! 	  (push (list group (list (cons 1 lines) 
! 				  (vector ident group "ncm" "" lines)))
! 		active)
! 	(setcdr elem (cons (list (cons (setq min (1+ (cdr (car (car
! 								(cdr elem))))))
! 				       (+ min lines))
! 				 (vector ident group "ncm" "" lines))
! 			   (cdr elem))))
!       (setq files (cdr files)))
!     (setq nnsoup-group-alist active)
!     (while active
!       (setcdr (car active) (nreverse (cdr (car active))))
!       (setq active (cdr active)))))
! 
  (provide 'nnsoup)
  
  ;;; nnsoup.el ends here
*** pub/sgnus/lisp/ChangeLog	Thu Oct 19 10:40:46 1995
--- sgnus/lisp/ChangeLog	Sun Oct 29 19:17:38 1995
***************
*** 1,8 ****
! Thu Oct 19 10:08:24 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
  
! 	* gnus-msg.el (gnus-inews-send-mail-copy): Changed X-Courtesy-Copy
! 	to Posted-To.
  
  Mon Oct 16 11:57:14 1995  Lars Ingebrigtsen  <lars@eyesore.no>
  
  	* gnus.el (gnus-group-foreign-p): New definition.  Secondary
--- 1,54 ----
! Tue Oct 24 22:11:44 1995  Peter Arius  <arius@informatik.uni-erlangen.de>
! 
! 	* gnus.el (gnus-summary-skip-intangible): Quotes missing in macro 
! 	body; turned into an inline function.
! 	(gnus-summary-article-intangible-p): dito.
! 	(gnus-summary-article-number): Didn't skip intangible articles 
! 	when compiled.  Turned from macro into an inline function.
! 
! Thu Oct 26 00:04:57 1995  Lars Ingebrigtsen  <lars@eyesore.no>
! 
! 	* gnus-msg.el (gnus-new-news): Would bug out on nil group names.
! 
! 	* gnus-mh.el (gnus-mh-mail-send-and-exit): Use mh's send-letter
! 	function. 
! 
! 	* gnus.el (gnus-summary-number-of-articles-in-thread): Don't count
! 	limited articles.	
! 	(gnus-summary-number-of-articles-in-thread): Count false roots
! 	correctly. 
! 
! 	* gnus-msg.el (gnus-inews-do-fcc): Expand the FCC file name.
! 
! 	* gnus.el (gnus-summary-read-group): Update summary line after
! 	setting the initial limit.
! 	(gnus-summary-mode-map): Moved all limit commands to the `/'
! 	submap. 
  
! 	* gnus-msg.el (gnus-new-mail): Didn't run `gnus-mail-hook'.
  
+ Wed Oct 25 22:45:44 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus-mh.el (gnus-mh-mail-setup): Didn't set `gnus-mail-buffer'. 
+ 
+ 	* gnus.el (gnus-compile): Didn't really work.
+ 
+ 	* nnbabyl.el (nnbabyl-request-article): Handle Summary-Line.
+ 
+ 	* gnus-topic.el: Didn't really work.
+ 
+ 	* gnus.el (gnus-parse-simple-format): Bugged out on user format
+ 	functions. 
+ 	(gnus-group-make-help-group): Don't signal errors on non-retrieval
+ 	of the doc group.
+ 	(gnus-summary-toggle-header): Would delete functions from hook
+ 	forever. 
+ 
+ Thu Oct 19 10:08:24 1995  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
+  
+  	* gnus-msg.el (gnus-inews-send-mail-copy): Changed X-Courtesy-Copy
+  	to Posted-To.
+  
  Mon Oct 16 11:57:14 1995  Lars Ingebrigtsen  <lars@eyesore.no>
  
  	* gnus.el (gnus-group-foreign-p): New definition.  Secondary
*** pub/sgnus/lisp/Makefile	Thu Oct 19 10:40:46 1995
--- sgnus/lisp/Makefile	Thu Oct 26 16:19:53 1995
***************
*** 8,12 ****
--- 8,15 ----
  some:
  	$(EMACS) $(FLAGS) -f dgnushack-recompile
  
+ tags:
+ 	etags *.el
+ 
  separately:
  	rm -f *.elc ; for i in *.el; do $(EMACS) $(FLAGS) -f batch-byte-compile $i; done
*** pub/sgnus/texi/gnus.texi	Thu Oct 19 10:40:48 1995
--- sgnus/texi/gnus.texi	Sun Oct 29 19:53:49 1995
***************
*** 1159,1164 ****
--- 1159,1167 ----
  (All these format variables can also be random elisp forms.  In that
  case, they will be @code{eval}ed to insert the required lines.)
  
+ (All these format variables can also be random elisp forms.  In that
+ case, they will be @code{eval}ed to insert the required lines.)
+ 
  In addition to the normal "padding" specs that @code{format} supports
  (eg. @samp{%7d}), specifications like @samp{%7,12s} are allowed.  A spec
  of this type means that the field will be at least 7 characters long,
***************
*** 3079,3084 ****
--- 3082,3091 ----
  (@code{gnus-group-add-to-topic}) command.  It understands the
  process/prefix convention (@pxref{Process/Prefix}). 
  
+ If you want to add a group to a topic, you can use the @kbd{G t}
+ (@code{gnus-group-add-to-topic}) command.  It understands the
+ process/prefix convention (@pxref{Process/Prefix}). 
+ 
  
  @node Misc Group Stuff
  @section Misc Group Stuff
***************
*** 4158,4164 ****
  @item mail-yank-ignored-headers
  @vindex mail-yank-ignored-headers
  When you yank a message, you do not want to quote any headers, so
! @code{(setq mail-yank-ignored-headers ":")}.
  
  @item user-mail-address
  @vindex user-mail-address
--- 4165,4171 ----
  @item mail-yank-ignored-headers
  @vindex mail-yank-ignored-headers
  When you yank a message, you do not want to quote any headers, so
! @code{(setq mail-yank-ignored-headers "^")}.
  
  @item user-mail-address
  @vindex user-mail-address
***************
*** 4173,4178 ****
--- 4180,4192 ----
  @samp{"narfi.ifi.uio.no"}, then this variable should be
  @samp{"ifi.uio.no"}. 
  
+ @item gnus-local-domain
+ @vindex gnus-local-domain
+ @cindex domain
+ The local doman name excluding the host name.  If your host is called
+ @samp{"narfi.ifi.uio.no"}, then this variable should be
+ @samp{"ifi.uio.no"}. 
+ 
  @item gnus-user-from-line
  @vindex gnus-user-from-line
  Your full, complete e-mail address with name.  This variable overrides
***************
*** 4356,4362 ****
  to it.
  
  @findex gnus-summary-send-draft
! @kindex S D c
  When you want to continue editing the article, you simply enter the
  draft group and push @kbd{S D c} (@code{gnus-summary-send-draft}) to do
  that.  You will be placed in a buffer where you left off.
--- 4370,4376 ----
  to it.
  
  @findex gnus-summary-send-draft
! @kindex S D c S (Summary)
  When you want to continue editing the article, you simply enter the
  draft group and push @kbd{S D c} (@code{gnus-summary-send-draft}) to do
  that.  You will be placed in a buffer where you left off.
***************
*** 4766,4774 ****
  
  @table @kbd
  
! @item M N u
  @itemx x
! @kindex M N u (Summary)
  @kindex x (Summary)
  @findex gnus-summary-limit-to-unread
  Limit the summary buffer to articles that are not marked as read
--- 4780,4794 ----
  
  @table @kbd
  
! @item / /
! @kindex / / (Summary)
! @findex gnus-summary-limit-to-subject
! Limit the summary buffer to articles that match some subject
! (@code{gnus-summary-limit-to-subject}). 
! 
! @item / u
  @itemx x
! @kindex / u (Summary)
  @kindex x (Summary)
  @findex gnus-summary-limit-to-unread
  Limit the summary buffer to articles that are not marked as read
***************
*** 4776,4832 ****
  buffer to articles that are strictly unread.  This means that ticked and
  dormant articles will also be excluded.
  
! @item M N m
! @kindex M N m (Summary)
  @findex gnus-summary-limit-to-marks
  Ask for a mark and then limit to all articles that have not been marked
  with that mark (@code{gnus-summary-limit-to-marks}).
  
! @item M N n
! @kindex M N n (Summary)
  @findex 
  Limit the summary buffer to the current article
  (@code{gnus-summary-limit-to-articles}).  Uses the process/prefix
  convention (@pxref{Process/Prefix}).
  
! @item M N w
! @kindex M N w (Summary)
  @findex gnus-summary-pop-limit
  Pop the previous limit off the stack and restore it
  (@code{gnus-summary-pop-limit}).  If given a prefix, pop all limits off
  the stack.
  
! @item M N s
  @itemx /
! @kindex M N s (Summary)
  @kindex / (Summary)
  @findex gnus-summary-limit-to-subject
  Limit the summary buffer to articles that have a subject that matches a
  regexp (@code{gnus-summary-limit-to-subject}).
  
! @item M N v
! @kindex M N v (Summary)
  @findex gnus-summary-limit-to-score
  Limit the summary buffer to articles that have a score at or above some
  score (@code{gnus-summary-limit-to-score}).
  
! @item M S
  @kindex M S (Summary)
! @findex gnus-summary-show-all-expunged
! Display all expunged articles (@code{gnus-summary-show-all-expunged}).
  
! @item M N D
! @kindex M N D (Summary)
  @findex gnus-summary-limit-include-dormant
  Display all dormant articles (@code{gnus-summary-limit-include-dormant}).
  
! @item M N d
! @kindex M N d (Summary)
  @findex gnus-summary-limit-exclude-dormant
  Hide all dormant articles (@code{gnus-summary-limit-exclude-dormant}).
  
! @item M N c
! @kindex M N c (Summary)
  @findex gnus-summary-limit-exclude-childless-dormant
  Hide all dormant articles that have no children
  (@code{gnus-summary-limit-exclude-childless-dormant}). 
--- 4796,4855 ----
  buffer to articles that are strictly unread.  This means that ticked and
  dormant articles will also be excluded.
  
! @item / m
! @kindex / m (Summary)
  @findex gnus-summary-limit-to-marks
  Ask for a mark and then limit to all articles that have not been marked
  with that mark (@code{gnus-summary-limit-to-marks}).
  
! @item / n
! @kindex / n (Summary)
  @findex 
  Limit the summary buffer to the current article
  (@code{gnus-summary-limit-to-articles}).  Uses the process/prefix
  convention (@pxref{Process/Prefix}).
  
! @item / w
! @kindex / w (Summary)
  @findex gnus-summary-pop-limit
  Pop the previous limit off the stack and restore it
  (@code{gnus-summary-pop-limit}).  If given a prefix, pop all limits off
  the stack.
  
! @item / s
  @itemx /
! @kindex / s (Summary)
  @kindex / (Summary)
  @findex gnus-summary-limit-to-subject
  Limit the summary buffer to articles that have a subject that matches a
  regexp (@code{gnus-summary-limit-to-subject}).
  
! @item / v
! @kindex / v (Summary)
  @findex gnus-summary-limit-to-score
  Limit the summary buffer to articles that have a score at or above some
  score (@code{gnus-summary-limit-to-score}).
  
! @item / E
! @itemx M S
  @kindex M S (Summary)
! @kindex / E (Summary)
! @findex gnus-summary-limit-include-expunged
! Display all expunged articles
! (@code{gnus-summary-limit-include-expunged}). 
  
! @item / D
! @kindex / D (Summary)
  @findex gnus-summary-limit-include-dormant
  Display all dormant articles (@code{gnus-summary-limit-include-dormant}).
  
! @item / d
! @kindex / d (Summary)
  @findex gnus-summary-limit-exclude-dormant
  Hide all dormant articles (@code{gnus-summary-limit-exclude-dormant}).
  
! @item / c
! @kindex / c (Summary)
  @findex gnus-summary-limit-exclude-childless-dormant
  Hide all dormant articles that have no children
  (@code{gnus-summary-limit-exclude-childless-dormant}). 
***************
*** 5506,5511 ****
--- 5529,5547 ----
   ("^Subject:.*vm\\|^Xref:.*vm" "vm-stuff"))
  @end lisp
  
+ @vindex gnus-split-methods
+ You can have Gnus suggest where to save articles by plonking regexp into
+ the @code{gnus-split-methods} alist.  The syntax of this variable is the
+ same as @code{nnmail-split-methods}. For instance, if you would like to
+ save articles related to Gnus in the file @file{gnus-stuff}, and articles
+ related to VM in @code{vm-stuff}, you could set this variable to something
+ like:
+ 
+ @lisp
+ (("^Subject:.*gnus\\|^Newsgroups:.*gnus" "gnus-stuff")
+  ("^Subject:.*vm\\|^Xref:.*vm" "vm-stuff"))
+ @end lisp
+ 
  @vindex gnus-use-long-file-name
  Finally, you have the @code{gnus-use-long-file-name} variable.  If it is
  @code{nil}, all the preceding functions will replace all periods
***************
*** 5885,5896 ****
  @table @kbd
  
  @item W H a
! @kindex W H a
  @findex gnus-article-highlight
  Highlight the current article (@code{gnus-article-highlight}).
  
  @item W H h
! @kindex W H h
  @findex gnus-article-highlight-headers
  @vindex gnus-header-face-alist
  Highlight the headers (@code{gnus-article-highlight-headers}).  The
--- 5921,5932 ----
  @table @kbd
  
  @item W H a
! @kindex W H a (Summary)
  @findex gnus-article-highlight
  Highlight the current article (@code{gnus-article-highlight}).
  
  @item W H h
! @kindex W H h (Summary)
  @findex gnus-article-highlight-headers
  @vindex gnus-header-face-alist
  Highlight the headers (@code{gnus-article-highlight-headers}).  The
***************
*** 5902,5908 ****
  match made will be used.
  
  @item W H c
! @kindex W H c
  @findex gnus-article-highlight-citation
  Highlight cited text (@code{gnus-article-highlight-citation}). 
  
--- 5938,5944 ----
  match made will be used.
  
  @item W H c
! @kindex W H c (Summary)
  @findex gnus-article-highlight-citation
  Highlight cited text (@code{gnus-article-highlight-citation}). 
  
***************
*** 5952,5958 ****
  
  
  @item W H s
! @kindex W H s
  @vindex gnus-signature-separator
  @findex gnus-article-highlight-signature
  Highlight the signature (@code{gnus-article-highlight-signature}).
--- 5988,5994 ----
  
  
  @item W H s
! @kindex W H s (Summary)
  @vindex gnus-signature-separator
  @findex gnus-article-highlight-signature
  Highlight the signature (@code{gnus-article-highlight-signature}).
***************
*** 7200,7205 ****
--- 7236,7247 ----
  scoring, then you might set this variable to @code{t}.  This will make
  Gnus save the scores into the @file{.newsrc.eld} file.
  
+ @item gnus-save-score
+ @vindex gnus-save-score
+ If you have really complicated score files, and do lots of batch
+ scoring, then you might set this variable to @code{t}.  This will make
+ Gnus save the scores into the @file{.newsrc.eld} file.
+ 
  @item gnus-score-interactive-default-score
  @vindex gnus-score-interactive-default-score
  Score used by all the interactive raise/lower commands to raise/lower
***************
*** 8020,8025 ****
--- 8062,8071 ----
  To set the whole thing in motion, though, you have to set
  @code{gnus-use-demon} to @code{t}.
  
+ @vindex gnus-use-demon
+ To set the whole thing in motion, though, you have to set
+ @code{gnus-use-demon} to @code{t}.
+ 
  So, if you want to add a handler, you could put something like this in
  your @file{.gnus} file:
  
***************
*** 9158,9164 ****
  
  
  @node Emacs Lisp
! @section Emacs Lisp
  
  Emacs is the King of Editors because it's really a Lisp interpreter.
  Each and every key you tap runs some Emacs Lisp code snippet, and since
--- 9204,9210 ----
  
  
  @node Emacs Lisp
! @subsection Emacs Lisp
  
  Emacs is the King of Editors because it's really a Lisp interpreter.
  Each and every key you tap runs some Emacs Lisp code snippet, and since
***************
*** 9219,9224 ****
--- 9265,9271 ----
  
  @node Frequently Asked Questions
  @section Frequently Asked Questions
+ 
  
  
  @node Index
*** pub/sgnus/texi/ChangeLog	Thu Oct 19 10:40:46 1995
--- sgnus/texi/ChangeLog	Thu Oct 26 15:00:01 1995
***************
*** 1,3 ****
--- 1,15 ----
+ Thu Oct 26 14:56:41 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus.texi (Limiting): Change.
+ 
+ Mon Oct 16 12:47:13 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus.texi (Listing Groups): Addition.
+ 
+ Sun Oct 15 09:23:55 1995  Lars Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus.texi (Group Topics): Addition.
+ 
  Mon Oct 16 12:47:13 1995  Lars Ingebrigtsen  <lars@eyesore.no>
  
  	* gnus.texi (Listing Groups): Addition.
