*** pub/sgnus/lisp/gnus-score.el	Thu May 16 08:21:04 1996
--- sgnus/lisp/gnus-score.el	Fri May 17 14:54:06 1996
***************
*** 218,226 ****
  
  (defvar gnus-score-cache nil)
  (defvar gnus-scores-articles nil)
- (defvar gnus-header-index nil)
  (defvar gnus-score-index nil)
  
  (eval-and-compile
    (autoload 'gnus-uu-ctl-map "gnus-uu" nil nil 'keymap))
  
--- 218,243 ----
  
  (defvar gnus-score-cache nil)
  (defvar gnus-scores-articles nil)
  (defvar gnus-score-index nil)
  
+ 
+ (defconst gnus-header-index
+   ;; Name to index alist.
+   '(("number" 0 gnus-score-integer)
+     ("subject" 1 gnus-score-string)
+     ("from" 2 gnus-score-string)
+     ("date" 3 gnus-score-date)
+     ("message-id" 4 gnus-score-string) 
+     ("references" 5 gnus-score-string) 
+     ("chars" 6 gnus-score-integer) 
+     ("lines" 7 gnus-score-integer) 
+     ("xref" 8 gnus-score-string)
+     ("head" -1 gnus-score-body)
+     ("body" -1 gnus-score-body)
+     ("all" -1 gnus-score-body)
+     ("followup" 2 gnus-score-followup)
+     ("thread" 5 gnus-score-thread)))
+ 
  (eval-and-compile
    (autoload 'gnus-uu-ctl-map "gnus-uu" nil nil 'keymap))
  
***************
*** 792,801 ****
  	   (setq alist (cons (list 'read-only t) alist)))
        (setq gnus-score-cache
  	    (cons (cons file alist) gnus-score-cache)))
!     ;; If there are actual scores in the alist, we add it to the
!     ;; return value of this function.
!     (if (memq t (mapcar (lambda (e) (stringp (car e))) alist))
! 	(setq lists (list alist)))
      ;; Treat the other possible atoms in the score alist.
      (let ((mark (car (gnus-score-get 'mark alist)))
  	  (expunge (car (gnus-score-get 'expunge alist)))
--- 809,826 ----
  	   (setq alist (cons (list 'read-only t) alist)))
        (setq gnus-score-cache
  	    (cons (cons file alist) gnus-score-cache)))
!     (let ((a alist)
! 	  found)
!       (while a
! 	;; Downcase all header names.
! 	(when (stringp (caar a))
! 	  (setcar (car a) (downcase (caar a)))
! 	  (setq found t))
! 	(pop a))
!       ;; If there are actual scores in the alist, we add it to the
!       ;; return value of this function.
!       (when found
! 	(setq lists (list alist))))
      ;; Treat the other possible atoms in the score alist.
      (let ((mark (car (gnus-score-get 'mark alist)))
  	  (expunge (car (gnus-score-get 'expunge alist)))
***************
*** 1085,1094 ****
  	      (gnus-score-orphans gnus-orphan-score))
  	    ;; Run each header through the score process.
  	    (while entries
! 	      (setq entry (car entries)
! 		    header (downcase (nth 0 entry))
! 		    entries (cdr entries))
! 	      (setq gnus-score-index (nth 1 (assoc header gnus-header-index)))
  	      (when (< 0 (apply 'max (mapcar
  				      (lambda (score)
  					(length (gnus-score-get header score)))
--- 1110,1118 ----
  	      (gnus-score-orphans gnus-orphan-score))
  	    ;; Run each header through the score process.
  	    (while entries
! 	      (setq entry (pop entries)
! 		    header (nth 0 entry)
! 		    gnus-score-index (nth 1 (assoc header gnus-header-index)))
  	      (when (< 0 (apply 'max (mapcar
  				      (lambda (score)
  					(length (gnus-score-get header score)))
***************
*** 1303,1311 ****
        (let* ((buffer-read-only nil)
  	     (articles gnus-scores-articles)
  	     (all-scores scores)
! 	     (request-func (cond ((string= "head" (downcase header))
  				  'gnus-request-head)
! 				 ((string= "body" (downcase header))
  				  'gnus-request-body)
  				 (t 'gnus-request-article)))
  	     entries alist ofunc article last)
--- 1327,1335 ----
        (let* ((buffer-read-only nil)
  	     (articles gnus-scores-articles)
  	     (all-scores scores)
! 	     (request-func (cond ((string= "head" header)
  				  'gnus-request-head)
! 				 ((string= "body" header)
  				  'gnus-request-body)
  				 (t 'gnus-request-article)))
  	     entries alist ofunc article last)
***************
*** 1711,1733 ****
  (defun gnus-score-build-cons (article)
    ;; Build a `gnus-newsgroup-scored' type cons from ARTICLE.
    (cons (mail-header-number (car article)) (cdr article)))
- 
- (defconst gnus-header-index
-   ;; Name to index alist.
-   '(("number" 0 gnus-score-integer)
-     ("subject" 1 gnus-score-string)
-     ("from" 2 gnus-score-string)
-     ("date" 3 gnus-score-date)
-     ("message-id" 4 gnus-score-string) 
-     ("references" 5 gnus-score-string) 
-     ("chars" 6 gnus-score-integer) 
-     ("lines" 7 gnus-score-integer) 
-     ("xref" 8 gnus-score-string)
-     ("head" -1 gnus-score-body)
-     ("body" -1 gnus-score-body)
-     ("all" -1 gnus-score-body)
-     ("followup" 2 gnus-score-followup)
-     ("thread" 5 gnus-score-thread)))
  
  (defun gnus-current-score-file-nondirectory (&optional score-file)
    (let ((score-file (or score-file gnus-current-score-file)))
--- 1735,1740 ----
*** pub/sgnus/lisp/gnus-uu.el	Thu May 16 08:21:06 1996
--- sgnus/lisp/gnus-uu.el	Fri May 17 14:54:01 1996
***************
*** 1877,1883 ****
  	  (progn
  	    (end-of-line)
  	    (insert (format " (0/%d)" parts))))
!       (gnus-inews-news))
  
      (save-excursion
        (setq i 1)
--- 1877,1883 ----
  	  (progn
  	    (end-of-line)
  	    (insert (format " (0/%d)" parts))))
!       (message-send))
  
      (save-excursion
        (setq i 1)
***************
*** 1940,1946 ****
  	      (forward-line 1)))
  	(insert beg-line)
  	(insert "\n")
! 	(gnus-inews-news)))
  
      (and (setq buf (get-buffer send-buffer-name))
  	 (kill-buffer buf))
--- 1940,1947 ----
  	      (forward-line 1)))
  	(insert beg-line)
  	(insert "\n")
! 	(let (message-sent-message-via)
! 	  (message-send))))
  
      (and (setq buf (get-buffer send-buffer-name))
  	 (kill-buffer buf))
*** pub/sgnus/lisp/gnus-xmas.el	Thu May 16 08:21:07 1996
--- sgnus/lisp/gnus-xmas.el	Fri May 17 16:32:54 1996
***************
*** 151,157 ****
      (remove-text-properties 
       beg end 
       '(gnus-topic nil gnus-topic-level nil gnus-topic-visible nil))
!     (goto-char end)))
  		  
  (defun gnus-xmas-topic-remove-excess-properties ()
    (let ((end (point))
--- 151,161 ----
      (remove-text-properties 
       beg end 
       '(gnus-topic nil gnus-topic-level nil gnus-topic-visible nil))
!     (goto-char end)
!     (map-extents 
!      (lambda (e ma)
!        (set-extent-property e 'start-closed t))
!      (current-buffer) beg end)))
  		  
  (defun gnus-xmas-topic-remove-excess-properties ()
    (let ((end (point))
*** pub/sgnus/lisp/gnus.el	Thu May 16 08:21:09 1996
--- sgnus/lisp/gnus.el	Fri May 17 16:32:52 1996
***************
*** 1718,1724 ****
    "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "September Gnus v0.86"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
--- 1718,1724 ----
    "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "September Gnus v0.87"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
***************
*** 4844,4850 ****
    "Update the current line in the group buffer."
    (let* ((buffer-read-only nil)
  	 (group (gnus-group-group-name))
- 	 (gnus-group-indentation (gnus-group-group-indentation))
  	 (entry (and group (gnus-gethash group gnus-newsrc-hashtb))))
      (and entry
  	 (not (gnus-ephemeral-group-p group))
--- 4844,4849 ----
***************
*** 4860,4866 ****
    "Insert GROUP on the current line."
    (let ((entry (gnus-gethash group gnus-newsrc-hashtb))
  	active info)
-     (setq gnus-group-indentation (gnus-group-group-indentation))
      (if entry
  	(progn
  	  ;; (Un)subscribed group.
--- 4859,4864 ----
***************
*** 11006,11011 ****
--- 11004,11010 ----
  Optional argument BACKWARD means do search for backward.
  gnus-select-article-hook is not called during the search."
    (let ((gnus-select-article-hook nil)	;Disable hook.
+ 	(gnus-article-display-hook nil)
  	(gnus-mark-article-hook nil)	;Inhibit marking as read.
  	(re-search
  	 (if backward
***************
*** 11571,11577 ****
      (if (and gnus-novice-user
  	     (not (gnus-y-or-n-p
  		   (format "Do you really want to delete %s forever? "
! 			   (if (> (length articles) 1) "these articles"
  			     "this article")))))
  	()
        ;; Delete the articles.
--- 11570,11577 ----
      (if (and gnus-novice-user
  	     (not (gnus-y-or-n-p
  		   (format "Do you really want to delete %s forever? "
! 			   (if (> (length articles) 1) 
! 			       (format "these %s articles" (length articles))
  			     "this article")))))
  	()
        ;; Delete the articles.
***************
*** 11636,11642 ****
  	(gnus-summary-update-article (cdr gnus-article-current))
  	(when gnus-use-cache
  	  (gnus-cache-update-article 
! 	   (cdr gnus-article-current) (car gnus-article-current))))
        (save-excursion
  	(when (get-buffer gnus-original-article-buffer)
  	  (set-buffer gnus-original-article-buffer)
--- 11636,11645 ----
  	(gnus-summary-update-article (cdr gnus-article-current))
  	(when gnus-use-cache
  	  (gnus-cache-update-article 
! 	   (cdr gnus-article-current) (car gnus-article-current)))
! 	(when gnus-keep-backlog
! 	  (gnus-backlog-remove-article 
! 	   (car gnus-article-current) (cdr gnus-article-current))))
        (save-excursion
  	(when (get-buffer gnus-original-article-buffer)
  	  (set-buffer gnus-original-article-buffer)
***************
*** 13777,13783 ****
  	      (if delete
  		  (delete-region beg (point-max))
  		;; Suggested by Sudish Joseph <joseph@cis.ohio-state.edu>.
! 		(gnus-hide-text-type beg (point-max) 'headers)))))))))
  
  (defun gnus-article-hide-boring-headers (&optional arg)
    "Toggle hiding of headers that aren't very interesting.
--- 13780,13788 ----
  	      (if delete
  		  (delete-region beg (point-max))
  		;; Suggested by Sudish Joseph <joseph@cis.ohio-state.edu>.
! 		(gnus-hide-text-type beg (point-max) 'headers))
! 	      ;; Work around XEmacs lossage.
! 	      (put-text-property (point-min) beg 'invisible nil))))))))
  
  (defun gnus-article-hide-boring-headers (&optional arg)
    "Toggle hiding of headers that aren't very interesting.
***************
*** 14177,14253 ****
  		  (message-remove-header date-regexp t)
  		  (beginning-of-line))
  	      (goto-char (point-max)))
! 	    (insert
! 	     (cond
! 	      ;; Convert to the local timezone.	 We have to slap a
! 	      ;; `condition-case' round the calls to the timezone
! 	      ;; functions since they aren't particularly resistant to
! 	      ;; buggy dates.
! 	      ((eq type 'local)
! 	       (concat "Date: " (condition-case ()
! 				    (timezone-make-date-arpa-standard date)
! 				  (error date))
! 		       "\n"))
! 	      ;; Convert to Universal Time.
! 	      ((eq type 'ut)
! 	       (concat "Date: "
! 		       (condition-case ()
! 			   (timezone-make-date-arpa-standard date nil "UT")
! 			 (error date))
! 		       "\n"))
! 	      ;; Get the original date from the article.
! 	      ((eq type 'original)
! 	       (concat "Date: " date "\n"))
! 	      ;; Do an X-Sent lapsed format.
! 	      ((eq type 'lapsed)
! 	       ;; If the date is seriously mangled, the timezone
! 	       ;; functions are liable to bug out, so we condition-case
! 	       ;; the entire thing.
! 	       (let* ((real-time
! 		       (condition-case ()
! 			   (gnus-time-minus
! 			    (gnus-encode-date
! 			     (timezone-make-date-arpa-standard
! 			      (current-time-string now)
! 			      (current-time-zone now) "UT"))
! 			    (gnus-encode-date
! 			     (timezone-make-date-arpa-standard
! 			      date nil "UT")))
! 			 (error '(0 0))))
! 		      (real-sec (+ (* (float (car real-time)) 65536)
! 				   (cadr real-time)))
! 		      (sec (abs real-sec))
! 		      num prev)
! 		 (if (zerop sec)
! 		     "X-Sent: Now\n"
! 		   (concat
! 		    "X-Sent: "
! 		    ;; This is a bit convoluted, but basically we go
! 		    ;; through the time units for years, weeks, etc,
! 		    ;; and divide things to see whether that results
! 		    ;; in positive answers.
! 		    (mapconcat
! 		     (lambda (unit)
! 		       (if (zerop (setq num (ffloor (/ sec (cdr unit)))))
! 			   ;; The (remaining) seconds are too few to
! 			   ;; be divided into this time unit.
! 			   ""
! 			 ;; It's big enough, so we output it.
! 			 (setq sec (- sec (* num (cdr unit))))
! 			 (prog1
! 			     (concat (if prev ", " "") (int-to-string
! 							(floor num))
! 				     " " (symbol-name (car unit))
! 				     (if (> num 1) "s" ""))
! 			   (setq prev t))))
! 		     gnus-article-time-units "")
! 		    ;; If dates are odd, then it might appear like the
! 		    ;; article was sent in the future.
! 		    (if (> real-sec 0)
! 			" ago\n"
! 		      " in the future\n")))))
! 	      (t
! 	       (error "Unknown conversion type: %s" type))))
  	    ;; Do highlighting.
  	    (forward-line -1)
  	    (when (and (gnus-visual-p 'article-highlight 'highlight)
--- 14182,14188 ----
  		  (message-remove-header date-regexp t)
  		  (beginning-of-line))
  	      (goto-char (point-max)))
! 	    (insert (gnus-make-date-line date type))
  	    ;; Do highlighting.
  	    (forward-line -1)
  	    (when (and (gnus-visual-p 'article-highlight 'highlight)
***************
*** 14257,14262 ****
--- 14192,14275 ----
  	      (put-text-property (match-beginning 2) (match-end 2)
  				 'face eface))))))))
  
+ (defun gnus-make-date-line (date type)
+   "Return a DATE line of TYPE."
+   (cond
+    ;; Convert to the local timezone.	 We have to slap a
+    ;; `condition-case' round the calls to the timezone
+    ;; functions since they aren't particularly resistant to
+    ;; buggy dates.
+    ((eq type 'local)
+     (concat "Date: " (condition-case ()
+ 			 (timezone-make-date-arpa-standard date)
+ 		       (error date))
+ 	    "\n"))
+    ;; Convert to Universal Time.
+    ((eq type 'ut)
+     (concat "Date: "
+ 	    (condition-case ()
+ 		(timezone-make-date-arpa-standard date nil "UT")
+ 	      (error date))
+ 	    "\n"))
+    ;; Get the original date from the article.
+    ((eq type 'original)
+     (concat "Date: " date "\n"))
+    ;; Do an X-Sent lapsed format.
+    ((eq type 'lapsed)
+     ;; If the date is seriously mangled, the timezone
+     ;; functions are liable to bug out, so we condition-case
+     ;; the entire thing.
+     (let* ((now (current-time))
+ 	   (real-time
+ 	    (condition-case ()
+ 		(gnus-time-minus
+ 		 (gnus-encode-date
+ 		  (timezone-make-date-arpa-standard
+ 		   (current-time-string now)
+ 		   (current-time-zone now) "UT"))
+ 		 (gnus-encode-date
+ 		  (timezone-make-date-arpa-standard
+ 		   date nil "UT")))
+ 	      (error '(0 0))))
+ 	   (real-sec (+ (* (float (car real-time)) 65536)
+ 			(cadr real-time)))
+ 	   (sec (abs real-sec))
+ 	   num prev)
+       (cond
+        ((equal real-time '(0 0))
+ 	"X-Sent: Unknown\n")
+        ((zerop sec)
+ 	"X-Sent: Now\n")
+        (t
+ 	(concat
+ 	 "X-Sent: "
+ 	 ;; This is a bit convoluted, but basically we go
+ 	 ;; through the time units for years, weeks, etc,
+ 	 ;; and divide things to see whether that results
+ 	 ;; in positive answers.
+ 	 (mapconcat
+ 	  (lambda (unit)
+ 	    (if (zerop (setq num (ffloor (/ sec (cdr unit)))))
+ 		;; The (remaining) seconds are too few to
+ 		;; be divided into this time unit.
+ 		""
+ 	      ;; It's big enough, so we output it.
+ 	      (setq sec (- sec (* num (cdr unit))))
+ 	      (prog1
+ 		  (concat (if prev ", " "") (int-to-string
+ 					     (floor num))
+ 			  " " (symbol-name (car unit))
+ 			  (if (> num 1) "s" ""))
+ 		(setq prev t))))
+ 	  gnus-article-time-units "")
+ 	 ;; If dates are odd, then it might appear like the
+ 	 ;; article was sent in the future.
+ 	 (if (> real-sec 0)
+ 	     " ago\n"
+ 	   " in the future\n"))))))
+    (t
+     (error "Unknown conversion type: %s" type))))
+ 
  (defun gnus-article-date-local (&optional highlight)
    "Convert the current article date to the local timezone."
    (interactive (list t))
***************
*** 16858,16863 ****
--- 16871,16898 ----
  	(delete-region
  	 (point) (next-single-property-change
  		  (1+ (point)) 'gnus-backlog nil (point-max)))))))
+ 
+ (defun gnus-backlog-remove-article (group number)
+   "Remove article NUMBER in GROUP from the backlog."
+   (when (numberp number)
+     (gnus-backlog-setup)
+     (let ((ident (intern (concat group ":" (int-to-string number))
+ 			 gnus-backlog-hashtb))
+ 	  beg end)
+       (when (memq ident gnus-backlog-articles)
+ 	;; It was in the backlog.
+ 	(save-excursion
+ 	  (set-buffer (gnus-backlog-buffer))
+ 	  (when (setq beg (text-property-any
+ 			   (point-min) (point-max) 'gnus-backlog
+ 			   ident))
+ 	    ;; Find the end (i. e., the beginning of the next article).
+ 	    (setq end
+ 		  (next-single-property-change
+ 		   (1+ beg) 'gnus-backlog (current-buffer) (point-max)))
+ 	    (delete-region beg end)
+ 	    ;; Return success.
+ 	    t))))))
  
  (defun gnus-backlog-request-article (group number buffer)
    (when (numberp number)
*** pub/sgnus/lisp/message.el	Thu May 16 08:21:10 1996
--- sgnus/lisp/message.el	Fri May 17 14:54:03 1996
***************
*** 765,770 ****
--- 765,774 ----
    (when (string-match "XEmacs\\|Lucid" emacs-version)
      (message-setup-toolbar))
    (easy-menu-add message-mode-menu message-mode-map)
+   ;; Allow mail alias things.
+   (if (fboundp 'mail-abbrevs-setup)
+       (mail-abbrevs-setup)
+     (funcall (intern "mail-aliases-setup")))
    (run-hooks 'text-mode-hook 'message-mode-hook))
  
  
***************
*** 2033,2042 ****
    (save-restriction
      (message-narrow-to-headers)
      (run-hooks 'message-header-setup-hook))
-   ;; Allow mail alias things.
-   (if (fboundp 'mail-abbrevs-setup)
-       (mail-abbrevs-setup)
-     (funcall (intern "mail-aliases-setup")))
    (set-buffer-modified-p nil)
    (run-hooks 'message-setup-hook)
    (message-position-point)
--- 2037,2042 ----
*** pub/sgnus/lisp/nnmail.el	Thu May 16 08:21:11 1996
--- sgnus/lisp/nnmail.el	Fri May 17 07:02:14 1996
***************
*** 94,100 ****
        (lambda (newsgroup)
          (cond ((string-match \"private\" newsgroup) 31)
                ((string-match \"junk\" newsgroup) 1)
! 	      ((string-match \"important\" 'never))
  	      (t 7))))")
  
  (defvar nnmail-spool-file 
--- 94,100 ----
        (lambda (newsgroup)
          (cond ((string-match \"private\" newsgroup) 31)
                ((string-match \"junk\" newsgroup) 1)
! 	      ((string-match \"important\" newsgroup) 'never)
  	      (t 7))))")
  
  (defvar nnmail-spool-file 
*** pub/sgnus/lisp/nntp.el	Thu May 16 08:21:11 1996
--- sgnus/lisp/nntp.el	Fri May 17 14:54:03 1996
***************
*** 660,665 ****
--- 660,666 ----
      (when (and server
  	       nntp-warn-about-losing-connection)
        (message "nntp: Connection closed to server %s" server)
+       (setq nntp-current-group "")
        (ding))))
  
  (defun nntp-kill-connection (server)
***************
*** 1261,1274 ****
  
  (defun nntp-possibly-change-server (newsgroup server &optional connectionless)
    "Check whether the virtual server needs changing."
!   (if (and server
!  	   (not (nntp-server-opened server)))
!       ;; This virtual server isn't open, so we (re)open it here.
!       (nntp-open-server server nil t))
!   (if (and newsgroup 
!  	   (not (equal newsgroup nntp-current-group)))
!       ;; Set the proper current group.
!       (nntp-request-group newsgroup server)))
   
  (defun nntp-try-list-active (group)
    (nntp-list-active-group group)
--- 1262,1275 ----
  
  (defun nntp-possibly-change-server (newsgroup server &optional connectionless)
    "Check whether the virtual server needs changing."
!   (when (and server
! 	     (not (nntp-server-opened server)))
!     ;; This virtual server isn't open, so we (re)open it here.
!     (nntp-open-server server nil t))
!   (when (and newsgroup 
! 	     (not (equal newsgroup nntp-current-group)))
!     ;; Set the proper current group.
!     (nntp-request-group newsgroup server)))
   
  (defun nntp-try-list-active (group)
    (nntp-list-active-group group)
*** pub/sgnus/lisp/ChangeLog	Thu May 16 08:21:17 1996
--- sgnus/lisp/ChangeLog	Fri May 17 16:32:54 1996
***************
*** 1,4 ****
--- 1,41 ----
+ Fri May 17 16:27:42 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+ 
+ 	* gnus.el (gnus-article-hide-headers): Would make headers
+ 	iinvisible under XEmacs.
+ 
+ Fri May 17 11:38:52 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+ 
+ 	* gnus.el (gnus-summary-edit-article-done): Remove article from
+ 	backlog. 
+ 	(gnus-group-update-group-line): Would indent oddly.
+ 
+ 	* gnus-uu.el (gnus-uu-post-encoded): Use message.
+ 	(gnus-uu-post-encoded): Don't double-prompt.
+ 
+ 	* message.el (message-mode): Do mailabbrev things here.
+ 
+ 	* nntp.el (nntp-default-sentinel): Reset nntp-current-group when
+ 	losing connection.
+ 
+ 	* gnus-score.el (gnus-score-load-file): Dumb downcasing.
+ 
+ Fri May 17 06:16:00 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus.el (gnus-summary-delete-article): Better prompt.
+ 
+ 	* gnus-score.el (gnus-score-load-file): Downcase all header
+ 	names. 
+ 
+ Thu May 16 14:04:30 1996  Lars Magne Ingebrigtsen  <lars@eyesore.no>
+ 
+ 	* gnus.el (gnus-make-date-line): Separated into own function
+ 	and don't reply "Now" to bogus dates.
+ 	(gnus-summary-search-article): Bind `gnus-article-display-hook' to
+ 	nil.
+ 
  Thu May 16 07:40:24 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+ 
+ 	* gnus.el: September Gnus v0.86 is released.
  
  	* gnus-xmas.el (gnus-xmas-topic-remove-excess-properties): Remove
  	more excess props.
*** pub/sgnus/texi/gnus.texi	Thu May 16 08:21:20 1996
--- sgnus/texi/gnus.texi	Fri May 17 07:02:16 1996
***************
*** 2227,2234 ****
  @item T n
  @kindex T n (Group)
  @findex gnus-topic-create-topic
! Create a new topic (@code{gnus-topic-create-topic}).  You will be
! prompted for a topic name and the name of the parent topic.
  
  @item T m
  @kindex T m (Group)
--- 2227,2234 ----
  @item T n
  @kindex T n (Group)
  @findex gnus-topic-create-topic
! Prompt for a new topic name and create it 
! (@code{gnus-topic-create-topic}). 
  
  @item T m
  @kindex T m (Group)
***************
*** 7204,7210 ****
  * Mail and Post::        Mailing and posting at the same time.
  * Archived Messages::    Where Gnus stores the messages you've sent.
  * Posting Styles::       An easier way to configure some key elements.
! * Drafts::               Postponing messages and rejected messages.
  * Rejected Articles::    What happens if the server doesn't like your article?
  @end menu
  
--- 7204,7210 ----
  * Mail and Post::        Mailing and posting at the same time.
  * Archived Messages::    Where Gnus stores the messages you've sent.
  * Posting Styles::       An easier way to configure some key elements.
! @c * Drafts::               Postponing messages and rejected messages.
  * Rejected Articles::    What happens if the server doesn't like your article?
  @end menu
  
***************
*** 7342,7348 ****
  (setq gnus-message-archive-method
        '(nnfolder "archive" 
                   (nnfolder-inhibit-expiry t)
!                  (nnfolder-active-file "~/Mail/sent-mail/active")
                   (nnfolder-directory "~/News/sent-mail/")))
  @end lisp
  
--- 7342,7348 ----
  (setq gnus-message-archive-method
        '(nnfolder "archive" 
                   (nnfolder-inhibit-expiry t)
!                  (nnfolder-active-file "~/News/sent-mail/active")
                   (nnfolder-directory "~/News/sent-mail/")))
  @end lisp
  
***************
*** 7539,7628 ****
  @end lisp
  
  
! @node Drafts
! @section Drafts
! @cindex drafts
! 
! If you are writing a message (mail or news) and suddenly remember that
! you have a steak in the oven (or some pesto in the food processor, you
! craazy vegetarians), you'll probably wish there was a method to save the
! message you are writing so that you can continue editing it some other
! day, and send it when you feel its finished.
! 
! Well, don't worry about it.  Whenever you start composing a message of
! some sort using the Gnus mail and post commands, the buffer you get will
! automatically associate to an article in a special @dfn{draft} group.
! If you save the buffer the normal way (@kbd{C-x C-s}, for instance), the
! article will be saved there.  (Auto-save files also go to the draft
! group.) 
! 
! @cindex nndraft
! @vindex gnus-draft-group-directory
! The draft group is a special group (which is implemented as an
! @code{nndraft} group, if you absolutely have to know) called
! @samp{nndraft:drafts}.  The variable @code{gnus-draft-group-directory}
! controls both the name of the group and the location---the leaf element
! in the path will be used as the name of the group.  What makes this
! group special is that you can't tick any articles in it or mark any
! articles as read---all articles in the group are permanently unread.
! 
! If the group doesn't exist, it will be created and you'll be subscribed
! to it.
! 
! @findex gnus-dissociate-buffer-from-draft
! @kindex C-c M-d (Mail)
! @kindex C-c M-d (Post)
! @findex gnus-associate-buffer-with-draft
! @kindex C-c C-d (Mail)
! @kindex C-c C-d (Post)
! If you're writing some super-secret message that you later want to
! encode with PGP before sending, you may wish to turn the auto-saving
! (and association with the draft group) off.  You never know who might be
! interested in reading all your extremely valuable and terribly horrible
! and interesting secrets.  The @kbd{C-c M-d}
! (@code{gnus-dissociate-buffer-from-draft}) command does that for you.
! If you change your mind and want to turn the auto-saving back on again,
! @kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
! 
! @vindex gnus-use-draft
! To leave association with the draft group off by default, set
! @code{gnus-use-draft} to @code{nil}.  It is @code{t} by default. 
! 
! @findex gnus-summary-send-draft
! @kindex S D c (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.
! 
! Rejected articles will also be put in this draft group (@pxref{Rejected
! Articles}).
! 
! @findex gnus-summary-send-all-drafts
! If you have lots of rejected messages you want to post (or mail) without
! doing further editing, you can use the @kbd{S D a} command
! (@code{gnus-summary-send-all-drafts}).  This command understands the
! process/prefix convention (@pxref{Process/Prefix}).  
! 
! 
! @node Rejected Articles
! @section Rejected Articles
! @cindex rejected articles
! 
! Sometimes a news server will reject an article.  Perhaps the server
! doesn't like your face.  Perhaps it just feels miserable.  Perhaps
! @emph{there be demons}.  Perhaps you have included too much cited text.
! Perhaps the disk is full.  Perhaps the server is down.
! 
! These situations are, of course, totally beyond the control of Gnus.
! (Gnus, of course, loves the way you look, always feels great, has angels
! fluttering around inside of it, doesn't care about how much cited text
! you include, never runs full and never goes down.)  So Gnus saves these
! articles until some later time when the server feels better.
! 
! The rejected articles will automatically be put in a special draft group
! (@pxref{Drafts}).  When the server comes back up again, you'd then
! typically enter that group and send all the articles off.
! 
  
  @node Select Methods
  @chapter Select Methods
--- 7539,7628 ----
  @end lisp
  
  
! @c @node Drafts
! @c @section Drafts
! @c @cindex drafts
! @c 
! @c If you are writing a message (mail or news) and suddenly remember that
! @c you have a steak in the oven (or some pesto in the food processor, you
! @c craazy vegetarians), you'll probably wish there was a method to save the
! @c message you are writing so that you can continue editing it some other
! @c day, and send it when you feel its finished.
! @c 
! @c Well, don't worry about it.  Whenever you start composing a message of
! @c some sort using the Gnus mail and post commands, the buffer you get will
! @c automatically associate to an article in a special @dfn{draft} group.
! @c If you save the buffer the normal way (@kbd{C-x C-s}, for instance), the
! @c article will be saved there.  (Auto-save files also go to the draft
! @c group.) 
! @c 
! @c @cindex nndraft
! @c @vindex gnus-draft-group-directory
! @c The draft group is a special group (which is implemented as an
! @c @code{nndraft} group, if you absolutely have to know) called
! @c @samp{nndraft:drafts}.  The variable @code{gnus-draft-group-directory}
! @c controls both the name of the group and the location---the leaf element
! @c in the path will be used as the name of the group.  What makes this
! @c group special is that you can't tick any articles in it or mark any
! @c articles as read---all articles in the group are permanently unread.
! @c 
! @c If the group doesn't exist, it will be created and you'll be subscribed
! @c to it.
! @c 
! @c @findex gnus-dissociate-buffer-from-draft
! @c @kindex C-c M-d (Mail)
! @c @kindex C-c M-d (Post)
! @c @findex gnus-associate-buffer-with-draft
! @c @kindex C-c C-d (Mail)
! @c @kindex C-c C-d (Post)
! @c If you're writing some super-secret message that you later want to
! @c encode with PGP before sending, you may wish to turn the auto-saving
! @c (and association with the draft group) off.  You never know who might be
! @c interested in reading all your extremely valuable and terribly horrible
! @c and interesting secrets.  The @kbd{C-c M-d}
! @c (@code{gnus-dissociate-buffer-from-draft}) command does that for you.
! @c If you change your mind and want to turn the auto-saving back on again,
! @c @kbd{C-c C-d} (@code{gnus-associate-buffer-with-draft} does that.
! @c 
! @c @vindex gnus-use-draft
! @c To leave association with the draft group off by default, set
! @c @code{gnus-use-draft} to @code{nil}.  It is @code{t} by default. 
! @c 
! @c @findex gnus-summary-send-draft
! @c @kindex S D c (Summary)
! @c When you want to continue editing the article, you simply enter the
! @c draft group and push @kbd{S D c} (@code{gnus-summary-send-draft}) to do
! @c that.  You will be placed in a buffer where you left off.
! @c 
! @c Rejected articles will also be put in this draft group (@pxref{Rejected
! @c Articles}).
! @c 
! @c @findex gnus-summary-send-all-drafts
! @c If you have lots of rejected messages you want to post (or mail) without
! @c doing further editing, you can use the @kbd{S D a} command
! @c (@code{gnus-summary-send-all-drafts}).  This command understands the
! @c process/prefix convention (@pxref{Process/Prefix}).  
! @c 
! @c 
! @c @node Rejected Articles
! @c @section Rejected Articles
! @c @cindex rejected articles
! @c 
! @c Sometimes a news server will reject an article.  Perhaps the server
! @c doesn't like your face.  Perhaps it just feels miserable.  Perhaps
! @c @emph{there be demons}.  Perhaps you have included too much cited text.
! @c Perhaps the disk is full.  Perhaps the server is down.
! @c 
! @c These situations are, of course, totally beyond the control of Gnus.
! @c (Gnus, of course, loves the way you look, always feels great, has angels
! @c fluttering around inside of it, doesn't care about how much cited text
! @c you include, never runs full and never goes down.)  So Gnus saves these
! @c articles until some later time when the server feels better.
! @c 
! @c The rejected articles will automatically be put in a special draft group
! @c (@pxref{Drafts}).  When the server comes back up again, you'd then
! @c typically enter that group and send all the articles off.
! @c 
  
  @node Select Methods
  @chapter Select Methods
