*** pub/dgnus/lisp/gnus.el	Sun Jul 23 20:27:47 1995
--- dgnus/lisp/gnus.el	Tue Jul 25 18:03:19 1995
***************
*** 170,176 ****
  fetched by ange-ftp.")
  
  (defvar gnus-group-archive-directory
!   "/ftp@sina.tcamc.uh.edu:/pub/emacs/ding-list/" 
    "*The address of the (ding) archives.")
  
  (defvar gnus-default-subscribed-newsgroups nil
--- 170,176 ----
  fetched by ange-ftp.")
  
  (defvar gnus-group-archive-directory
!   "/ftp@ftp.hpc.uh.edu:/pub/emacs/ding-list/" 
    "*The address of the (ding) archives.")
  
  (defvar gnus-default-subscribed-newsgroups nil
***************
*** 1303,1309 ****
  (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "(ding) Gnus v0.98.2"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
--- 1303,1309 ----
  (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
    "The mail address of the Gnus maintainers.")
  
! (defconst gnus-version "(ding) Gnus v0.98.3"
    "Version number for this version of Gnus.")
  
  (defvar gnus-info-nodes
***************
*** 1835,1866 ****
  	 (1- (point))
         (point-max)))))
  
  (defun gnus-update-format-specifications ()
    (gnus-make-thread-indent-array)
!   (setq gnus-summary-line-format-spec 
! 	(gnus-parse-format
! 	 gnus-summary-line-format gnus-summary-line-format-alist))
    (gnus-update-summary-mark-positions)
!   (setq gnus-summary-dummy-line-format-spec 
! 	(gnus-parse-format gnus-summary-dummy-line-format 
! 			   gnus-summary-dummy-line-format-alist))
!   (setq gnus-group-line-format-spec
! 	(gnus-parse-format 
! 	 gnus-group-line-format 
! 	 gnus-group-line-format-alist))
    (if (and (string-match "%D" gnus-group-line-format)
  	   (not gnus-description-hashtb)
  	   gnus-read-active-file)
!       (gnus-read-all-descriptions-files))
!   (setq gnus-summary-mode-line-format-spec 
! 	(gnus-parse-format gnus-summary-mode-line-format 
! 			   gnus-summary-mode-line-format-alist))
!   (setq gnus-article-mode-line-format-spec 
! 	(gnus-parse-format gnus-article-mode-line-format 
! 			   gnus-summary-mode-line-format-alist))
!   (setq gnus-group-mode-line-format-spec 
! 	(gnus-parse-format gnus-group-mode-line-format 
! 			   gnus-group-mode-line-format-alist)))
  
  (defun gnus-update-summary-mark-positions ()
    (save-excursion
--- 1835,1870 ----
  	 (1- (point))
         (point-max)))))
  
+ (defvar gnus-old-specs nil)
+ 
  (defun gnus-update-format-specifications ()
    (gnus-make-thread-indent-array)
! 
!   (let ((formats '(summary summary-dummy group 
! 			   summary-mode group-mode article-mode))
! 	old-format new-format)
!     (while formats
!       (setq new-format (symbol-value
! 			(intern (format "gnus-%s-line-format" (car formats)))))
!       (or (and (setq old-format (cdr (assq (car formats) gnus-old-specs)))
! 	       (equal old-format new-format))
! 	  (set (intern (format "gnus-%s-line-format-spec" (car formats)))
! 	       (gnus-parse-format
! 		new-format
! 		(symbol-value 
! 		 (intern (format "gnus-%s-line-format-alist"
! 				 (if (eq (car formats) 'article-mode)
! 				     'summary-mode (car formats))))))))
!       (setq gnus-old-specs (cons (cons (car formats) new-format)
! 				 (delq (car formats) gnus-old-specs)))
!       (setq formats (cdr formats))))
!       
    (gnus-update-summary-mark-positions)
! 
    (if (and (string-match "%D" gnus-group-line-format)
  	   (not gnus-description-hashtb)
  	   gnus-read-active-file)
!       (gnus-read-all-descriptions-files)))
  
  (defun gnus-update-summary-mark-positions ()
    (save-excursion
***************
*** 3732,3739 ****
  
  (defun gnus-group-read-group (all &optional no-article group)
    "Read news in this newsgroup.
! If argument ALL is non-nil, already read articles become readable.
! If optional argument NO-ARTICLE is non-nil, no article body is displayed."
    (interactive "P")
    (let ((group (or group (gnus-group-group-name)))
  	number active marked entry)
--- 3736,3744 ----
  
  (defun gnus-group-read-group (all &optional no-article group)
    "Read news in this newsgroup.
! If the prefix argument ALL is non-nil, already read articles become
! readable. If the optional argument NO-ARTICLE is non-nil, no article
! will be auto-selected upon group entry."
    (interactive "P")
    (let ((group (or group (gnus-group-group-name)))
  	number active marked entry)
***************
*** 4813,4820 ****
  (defun gnus-group-describe-briefly ()
    "Give a one line description of the group mode commands."
    (interactive)
!   (gnus-message 6
!    (substitute-command-keys "\\<gnus-group-mode-map>\\[gnus-group-read-group]:Select  \\[gnus-group-next-unread-group]:Forward  \\[gnus-group-prev-unread-group]:Backward  \\[gnus-group-exit]:Exit  \\[gnus-info-find-node]:Run Info  \\[gnus-group-describe-briefly]:This help")))
  
  (defun gnus-group-browse-foreign-server (method)
    "Browse a foreign news server.
--- 4818,4824 ----
  (defun gnus-group-describe-briefly ()
    "Give a one line description of the group mode commands."
    (interactive)
!   (gnus-message 7 (substitute-command-keys "\\<gnus-group-mode-map>\\[gnus-group-read-group]:Select  \\[gnus-group-next-unread-group]:Forward  \\[gnus-group-prev-unread-group]:Backward  \\[gnus-group-exit]:Exit  \\[gnus-info-find-node]:Run Info  \\[gnus-group-describe-briefly]:This help")))
  
  (defun gnus-group-browse-foreign-server (method)
    "Browse a foreign news server.
***************
*** 5752,5757 ****
--- 5756,5762 ----
        (run-hooks 'gnus-select-group-hook)
        ;; Do score processing.
        (and gnus-use-scoring (gnus-possibly-score-headers))
+       (gnus-update-format-specifications)
        ;; Generate the summary buffer.
        (gnus-summary-prepare)
        (if (zerop (buffer-size))
***************
*** 8773,8779 ****
        (use-local-map gnus-article-mode-map)
        (setq buffer-read-only t)
        (buffer-disable-undo (current-buffer))
!       (pop-to-buffer gnus-summary-buffer)))      )
  
  (defun gnus-summary-fancy-query ()
    "Query where the fancy respool algorithm would put this article."
--- 8778,8784 ----
        (use-local-map gnus-article-mode-map)
        (setq buffer-read-only t)
        (buffer-disable-undo (current-buffer))
!       (gnus-configure-windows 'summary))))
  
  (defun gnus-summary-fancy-query ()
    "Query where the fancy respool algorithm would put this article."
***************
*** 9154,9166 ****
      t))
  
  (defun gnus-summary-mark-article (&optional article mark no-expire)
!   "Mark ARTICLE with MARK.
! MARK can be any character.
! Five MARK strings are reserved: ?  (unread), 
! ?! (ticked), ?? (dormant), ?D (read), ?E (expirable).
! If MARK is nil, then the default character ?D is used.
  If ARTICLE is nil, then the article on the current line will be
  marked." 
    ;; If no mark is given, then we check auto-expiring.
    (and (not no-expire)
         gnus-newsgroup-auto-expire 
--- 9159,9172 ----
      t))
  
  (defun gnus-summary-mark-article (&optional article mark no-expire)
!   "Mark ARTICLE with MARK.  MARK can be any character.
! Four MARK strings are reserved: `? ' (unread), `?!' (ticked), `??'
! (dormant) and `?E' (expirable).
! If MARK is nil, then the default character `?D' is used.
  If ARTICLE is nil, then the article on the current line will be
  marked." 
+   (and (stringp mark)
+        (setq mark (aref mark 0)))
    ;; If no mark is given, then we check auto-expiring.
    (and (not no-expire)
         gnus-newsgroup-auto-expire 
***************
*** 9541,9549 ****
  	    ;; We actually mark all articles as canceled, which we
  	    ;; have to do when using auto-expiry or adaptive scoring. 
  	    (let ((unreads (length gnus-newsgroup-unreads)))
  	      (if (gnus-summary-first-subject (not all))
  		  (while (and (if to-here (< (point) to-here) t)
! 			      (gnus-summary-mark-article-as-read gnus-catchup-mark)
  			      (gnus-summary-search-subject nil (not all)))))
  	      (- unreads (length gnus-newsgroup-unreads))
  	      (or to-here
--- 9547,9557 ----
  	    ;; We actually mark all articles as canceled, which we
  	    ;; have to do when using auto-expiry or adaptive scoring. 
  	    (let ((unreads (length gnus-newsgroup-unreads)))
+ 	      (gnus-summary-show-all-threads)
  	      (if (gnus-summary-first-subject (not all))
  		  (while (and (if to-here (< (point) to-here) t)
! 			      (gnus-summary-mark-article-as-read
! 			       gnus-catchup-mark)
  			      (gnus-summary-search-subject nil (not all)))))
  	      (- unreads (length gnus-newsgroup-unreads))
  	      (or to-here
***************
*** 9899,9905 ****
        (let ((header (gnus-get-header-by-num (car articles))))
  	(if (vectorp header)
  	    (progn
! 	      (gnus-summary-select-article t nil nil (car articles))
  	      (or gnus-save-all-headers
  		  (gnus-article-hide-headers t))
  	      ;; Remove any X-Gnus lines.
--- 9907,9914 ----
        (let ((header (gnus-get-header-by-num (car articles))))
  	(if (vectorp header)
  	    (progn
! 	      (save-window-excursion
! 		(gnus-summary-select-article t nil nil (car articles)))
  	      (or gnus-save-all-headers
  		  (gnus-article-hide-headers t))
  	      ;; Remove any X-Gnus lines.
***************
*** 9915,9921 ****
  		      (delete-region (point)
  				     (progn (forward-line 1) (point))))
  		    (widen))))
! 	      (save-excursion
  		(if gnus-default-article-saver
  		    (funcall gnus-default-article-saver)
  		  (error "No default saver is defined."))))
--- 9924,9930 ----
  		      (delete-region (point)
  				     (progn (forward-line 1) (point))))
  		    (widen))))
! 	      (save-window-excursion
  		(if gnus-default-article-saver
  		    (funcall gnus-default-article-saver)
  		  (error "No default saver is defined."))))
*** pub/dgnus/lisp/nnmail.el	Sun Jul 23 20:27:47 1995
--- dgnus/lisp/nnmail.el	Tue Jul 25 13:58:05 1995
***************
*** 464,470 ****
  	  nnmail-use-procmail)
        (cond (group group)
  	    ((string-match (concat "^" (expand-file-name
! 					nnmail-procmail-directory)
  				   "\\(.*\\)" nnmail-procmail-suffix "$")
  			   (expand-file-name file))
  	     (substring (expand-file-name file)
--- 464,471 ----
  	  nnmail-use-procmail)
        (cond (group group)
  	    ((string-match (concat "^" (expand-file-name
! 					(file-name-as-directory
! 					 nnmail-procmail-directory))
  				   "\\(.*\\)" nnmail-procmail-suffix "$")
  			   (expand-file-name file))
  	     (substring (expand-file-name file)
*** pub/dgnus/lisp/nnml.el	Sun Jul 23 20:27:47 1995
--- dgnus/lisp/nnml.el	Tue Jul 25 18:03:18 1995
***************
*** 386,392 ****
  	  (beginning-of-line)
  	  (insert (int-to-string article) nov-line)
  	  (nnml-save-nov)
- 	  (kill-buffer (current-buffer))
  	  t)))))
  
  
--- 386,391 ----
*** pub/dgnus/lisp/ChangeLog	Sun Jul 23 20:27:50 1995
--- dgnus/lisp/ChangeLog	Tue Jul 25 18:03:18 1995
***************
*** 1,4 ****
--- 1,27 ----
+ Tue Jul 25 13:35:01 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+ 
+ 	* nnml.el (nnml-request-replace-article): Would kill a random
+ 	buffer. 
+ 
+ 	* gnus.el (gnus-group-read-group): Doc fix.
+ 	(gnus-update-format-specifications): New implementation.
+ 	(gnus-summary-read-group): Update format specs.
+ 	(gnus-summary-catchup): Expose threads before catching up. Would
+ 	infloop. 
+ 	(gnus-summary-save-article): Would change window config.
+ 	(gnus-group-archive-directory): Changed address.
+ 
+ 	* nnmail.el (nnmail-get-split-group): Make sure that
+ 	nnmail-procmail-directory is a directory.
+ 
+ Sun Jul 23 22:27:25 1995  Lars Magne Ingebrigtsen  <lingebri@sunsci4.cern.ch>
+ 
+ 	* gnus.el (gnus-summary-mark-article): Would bug out on string
+ 	marks. 
+ 
  Sun Jul 23 16:49:38 1995  Lars INGEBRIGTSEN UiO  <lingebri@sunsci4.cern.ch>
+ 
+ 	* gnus.el: 0.98.2 is released.
  
  	* nnmail.el (nnmail-split-incoming): Ignore duplicate messages,
  	but create new message-ids for messages that do not have one. 
*** pub/dgnus/texi/gnus.texi	Sun Jul 23 20:27:51 1995
--- dgnus/texi/gnus.texi	Tue Jul 25 13:40:54 1995
***************
*** 393,398 ****
--- 393,403 ----
  The news server has to keep track of what articles it carries, and what
  groups exist.  All this information in stored in the active file, which
  is rather large, as you might surmise.
+ @item bogus groups
+ @cindex bogus groups
+ A group that exists in the @file{.newsrc} file, but isn't known to the
+ server (i. e.,  it isn't in the active file), is a @emph{bogus group}.
+ This means that the group probably doesn't exist (any more).
  @end table
  
  @node Starting Up
