*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 22:15:58 +0000 (22:15 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 22:15:58 +0000 (22:15 +0000)
lisp/ChangeLog
lisp/gnus-async.el
lisp/gnus-audio.el
lisp/gnus-group.el
lisp/gnus-msg.el
lisp/gnus-sound.el [new file with mode: 0644]
lisp/gnus-sum.el
lisp/gnus-win.el
lisp/gnus-xmas.el
lisp/gnus.el
texi/gnus.texi

index 7220c34..90e6895 100644 (file)
@@ -1,3 +1,32 @@
+Tue Sep  3 05:30:02 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus-async.el (gnus-async-prefetch-article): Reset async list
+       when the summary buffer is killed.
+
+       * gnus-xmas.el (gnus-xmas-modeline-glyph): Don't use glyph under
+       tty. 
+
+       * gnus-msg.el (gnus-copy-article-buffer): Deleted text in article
+       buffer. 
+
+Tue Sep  3 05:10:19 1996  Kurt Swanson  <kurt@dna.lth.se>
+
+       * gnus-sum.el (gnus-group-no-more-groups-hook): New variable.
+
+Tue Sep  3 04:44:31 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
+
+       * gnus-sum.el (gnus-summary-exit): Would bug out when using a
+       single article buffer.
+
+Mon Sep  2 05:50:07 1996  Lars Magne Ingebrigtsen  <larsi@narfi.ifi.uio.no>
+
+       * gnus-audio.el (gnus-audio-play): Give the sound-file argument as
+       ARG in addition to stdin.
+
+Mon Sep  2 05:28:26 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.el: Red Gnus v0.23 is released.
+
 Mon Sep  2 05:16:46 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus-audio.el: Renamed from "gnus-sound".
index a44ed46..cdbb4a3 100644 (file)
@@ -96,68 +96,76 @@ from that group.")
       (set-buffer gnus-summary-buffer)
       (let ((next (caadr (gnus-data-find-list article))))
        (when next
-         (if gnus-xemacs
+         (if (not (fboundp 'run-with-idle-timer))
+             ;; This is either an older Emacs or XEmacs, so we
+             ;; do this, which leads to slightly slower article
+             ;; buffer display.
              (gnus-async-prefetch-article group next summary)
            (run-with-idle-timer 
             0.1 nil 'gnus-async-prefetch-article group next summary)))))))
 
 (defun gnus-async-prefetch-article (group article summary &optional next)
   "Possibly prefetch several articles starting with ARTICLE."
-  (when (and gnus-asynchronous
-            (gnus-alive-p))
-    (when next
-      (gnus-async-get-semaphore 'gnus-async-article-semaphore)
-      (pop gnus-async-fetch-list)
-      (gnus-async-release-semaphore 'gnus-async-article-semaphore))
-    (let ((do-fetch next))
-      (when (and (gnus-group-asynchronous-p group)
-                (gnus-buffer-live-p summary)
-                (or (not next)
-                    gnus-async-fetch-list))
-       (unwind-protect
-           (progn
-             (gnus-async-get-semaphore 'gnus-async-article-semaphore)
-             (unless next
-               (setq do-fetch (not gnus-async-fetch-list))
-               ;; Nix out any outstanding requests.
-               (setq gnus-async-fetch-list nil)
-               ;; Fill in the new list.
-               (let ((n gnus-use-article-prefetch)
-                     (data (gnus-data-find-list article))
-                     d)
-                 (while (and (setq d (pop data))
-                             (if (numberp n) 
-                                 (natnump (decf n))
-                               n))
-                   (unless (or (gnus-async-prefetched-article-entry
-                                group (setq article (gnus-data-number d)))
-                               (not (natnump article)))
-                     ;; Not already fetched -- so we add it to the list.
-                     (push article gnus-async-fetch-list)))
-                 (setq gnus-async-fetch-list
-                       (nreverse gnus-async-fetch-list))))
-
-             (when do-fetch
-               (setq article (car gnus-async-fetch-list))))
+  (if (not (gnus-buffer-live-p summary))
+      (progn
+       (gnus-async-get-semaphore 'gnus-async-article-semaphore)
+       (setq gnus-async-fetch-list nil)
+       (gnus-async-release-semaphore 'gnus-async-article-semaphore))
+    (when (and gnus-asynchronous
+              (gnus-alive-p))
+      (when next
+       (gnus-async-get-semaphore 'gnus-async-article-semaphore)
+       (pop gnus-async-fetch-list)
+       (gnus-async-release-semaphore 'gnus-async-article-semaphore))
+      (let ((do-fetch next))
+       (when (and (gnus-group-asynchronous-p group)
+                  (gnus-buffer-live-p summary)
+                  (or (not next)
+                      gnus-async-fetch-list))
+         (unwind-protect
+             (progn
+               (gnus-async-get-semaphore 'gnus-async-article-semaphore)
+               (unless next
+                 (setq do-fetch (not gnus-async-fetch-list))
+                 ;; Nix out any outstanding requests.
+                 (setq gnus-async-fetch-list nil)
+                 ;; Fill in the new list.
+                 (let ((n gnus-use-article-prefetch)
+                       (data (gnus-data-find-list article))
+                       d)
+                   (while (and (setq d (pop data))
+                               (if (numberp n) 
+                                   (natnump (decf n))
+                                 n))
+                     (unless (or (gnus-async-prefetched-article-entry
+                                  group (setq article (gnus-data-number d)))
+                                 (not (natnump article)))
+                       ;; Not already fetched -- so we add it to the list.
+                       (push article gnus-async-fetch-list)))
+                   (setq gnus-async-fetch-list
+                         (nreverse gnus-async-fetch-list))))
+
+               (when do-fetch
+                 (setq article (car gnus-async-fetch-list))))
        
-         (gnus-async-release-semaphore 'gnus-async-article-semaphore))
+           (gnus-async-release-semaphore 'gnus-async-article-semaphore))
     
-       (when (and do-fetch article)
-         ;; We want to fetch some more articles.
-         (save-excursion
-           (set-buffer summary)
-           (let (mark)
-             (gnus-async-set-buffer)
-             (goto-char (point-max))
-             (setq mark (point-marker))
-             (let ((nnheader-callback-function
-                    (gnus-make-async-article-function 
-                     group article mark summary next))
-                   (nntp-server-buffer (get-buffer
-                                        gnus-async-prefetch-article-buffer)))
-               (gnus-message 7 "Prefetching article %d in group %s"
-                             article group)
-               (gnus-request-article article group)))))))))
+         (when (and do-fetch article)
+           ;; We want to fetch some more articles.
+           (save-excursion
+             (set-buffer summary)
+             (let (mark)
+               (gnus-async-set-buffer)
+               (goto-char (point-max))
+               (setq mark (point-marker))
+               (let ((nnheader-callback-function
+                      (gnus-make-async-article-function 
+                       group article mark summary next))
+                     (nntp-server-buffer (get-buffer
+                                          gnus-async-prefetch-article-buffer)))
+                 (gnus-message 7 "Prefetching article %d in group %s"
+                               article group)
+                 (gnus-request-article article group))))))))))
 
 (defun gnus-make-async-article-function (group article mark summary next)
   "Return a callback function."
index af9e00a..79d9c19 100644 (file)
                      (concat gnus-audio-directory file))))
     (when (file-exists-p sound-file)
       (if gnus-audio-inline-sound
-         (play-sound-file (concat gnus-audio-directory sound-file))
+         (play-sound-file sound-file)
        (cond ((string-match "\\.wav$" sound-file)
               (call-process gnus-audio-wav-player
-                            (concat gnus-audio-directory sound-file)
+                            sound-file
                             0
-                            nil))
+                            nil
+                            sound-file))
              ((string-match "\\.au$" sound-file)
               (call-process gnus-audio-au-player
-                            (concat gnus-audio-directory sound-file)
+                            sound-file
                             0
-                            nil)))))))
+                            nil
+                            sound-file)))))))
 
 
 ;;; The following isn't implemented yet, wait for Red Gnus
index 2778c40..e6333eb 100644 (file)
@@ -1324,7 +1324,7 @@ Return the name of the group is selection was successful."
               ,gnus-level-default-subscribed nil nil ,method
               ((quit-config .
                             ,(if quit-config quit-config
-                               (cons (current-buffer) 
+                               (cons gnus-summary-buffer
                                      gnus-current-window-configuration))))))
      gnus-newsrc-hashtb)
     (set-buffer gnus-group-buffer)
index 7961c3b..f77bbf7 100644 (file)
@@ -308,20 +308,28 @@ header line with the old Message-ID."
       (save-excursion
        (set-buffer article-buffer)
        (save-restriction
+         ;; Copy over the (displayed) article buffer, delete
+         ;; hidden text and remove text properties.
          (widen)
+         (copy-to-buffer gnus-article-copy (point-min) (point-max))
+         (set-buffer gnus-article-copy)
          (article-delete-text-of-type 'annotation)
-         (setq contents (format "%s" (buffer-string)))
+         (insert
+          (prog1
+              (format "%s" (buffer-string))
+            (erase-buffer)))
+         ;; Find the original headers.
          (set-buffer gnus-original-article-buffer)
          (goto-char (point-min))
          (while (looking-at message-unix-mail-delimiter)
            (forward-line 1))
          (setq beg (point))
          (setq end (or (search-forward "\n\n" nil t) (point)))
+         ;; Delete the headers from the displayed articles.
          (set-buffer gnus-article-copy)
-         (erase-buffer)
-         (insert contents)
          (delete-region (goto-char (point-min))
                         (or (search-forward "\n\n" nil t) (point)))
+         ;; Insert the original article headers.
          (insert-buffer-substring gnus-original-article-buffer beg end)))
       gnus-article-copy)))
 
diff --git a/lisp/gnus-sound.el b/lisp/gnus-sound.el
new file mode 100644 (file)
index 0000000..e69de29
index a4b959c..c1b3d4e 100644 (file)
@@ -419,6 +419,9 @@ variable.")
 The hook is intended to mark an article as read (or unread)
 automatically when it is selected.")
 
+(defvar gnus-group-no-more-groups-hook nil
+  "*A hook run when returning to group mode having no more (unread) groups.")
+
 ;;; Internal variables
 
 (defvar gnus-summary-display-table 
@@ -4437,6 +4440,11 @@ gnus-exit-group-hook is called with no arguments if that value is non-nil."
                 (gnus-set-global-variables))
                ((eq major-mode 'gnus-article-mode)
                 (save-excursion
+                  ;; The `gnus-summary-buffer' variable may point
+                  ;; to the old summary buffer when using a single
+                  ;; article buffer.
+                  (unless (gnus-buffer-live-p gnus-summary-buffer)
+                    (set-buffer gnus-group-buffer))
                   (set-buffer gnus-summary-buffer)
                   (gnus-set-global-variables))))
          (gnus-configure-windows (cdr quit-config) 'force)))
@@ -4631,7 +4639,8 @@ previous group instead."
            (gnus-message 5 "Returning to the group buffer")
            (setq entered t)
            (set-buffer current-buffer)
-           (gnus-summary-exit))
+           (gnus-summary-exit)
+           (run-hooks 'gnus-group-no-more-groups-hook))
        ;; We try to enter the target group.
        (gnus-group-jump-to-group target-group)
        (let ((unreads (gnus-group-group-unread)))
@@ -5586,45 +5595,46 @@ If FORCE, force a digest interpretation.  If not, try
 to guess what the document format is."
   (interactive "P")
   (gnus-set-global-variables)
-  (save-excursion
-    (gnus-summary-select-article))
-  (let* ((name (format "%s-%d"
-                      (gnus-group-prefixed-name
-                       gnus-newsgroup-name (list 'nndoc ""))
-                      (save-excursion
-                        (set-buffer gnus-summary-buffer)
-                        gnus-current-article)))
-        (ogroup gnus-newsgroup-name)
-        (params (append (gnus-info-params (gnus-get-info ogroup))
-                        (list (cons 'to-group ogroup))))
-        (case-fold-search t)
-        (buf (current-buffer))
-        dig)
+  (let ((conf gnus-current-window-configuration))
     (save-excursion
-      (setq dig (nnheader-set-temp-buffer " *gnus digest buffer*"))
-      (insert-buffer-substring gnus-original-article-buffer)
-      ;; Remove lines that may lead nndoc to misinterpret the
-      ;; document type.
-      (narrow-to-region
-       (goto-char (point-min))
-       (or (search-forward "\n\n" nil t) (point)))
-      (goto-char (point-min))
-      (delete-matching-lines "^\\(Path\\):\\|^From ")
-      (widen))
-    (unwind-protect
-       (if (gnus-group-read-ephemeral-group
-            name `(nndoc ,name (nndoc-address
-                                ,(get-buffer dig))
-                         (nndoc-article-type ,(if force 'digest 'guess))) t)
-           ;; Make all postings to this group go to the parent group.
-           (nconc (gnus-info-params (gnus-get-info name))
-                  params)
-         ;; Couldn't select this doc group.
-         (switch-to-buffer buf)
-         (gnus-set-global-variables)
-         (gnus-configure-windows 'summary)
-         (gnus-message 3 "Article couldn't be entered?"))
-      (kill-buffer dig))))
+      (gnus-summary-select-article))
+    (setq gnus-current-window-configuration conf)
+    (let* ((name (format "%s-%d"
+                        (gnus-group-prefixed-name
+                         gnus-newsgroup-name (list 'nndoc ""))
+                        (save-excursion
+                          (set-buffer gnus-summary-buffer)
+                          gnus-current-article)))
+          (ogroup gnus-newsgroup-name)
+          (params (append (gnus-info-params (gnus-get-info ogroup))
+                          (list (cons 'to-group ogroup))))
+          (case-fold-search t)
+          (buf (current-buffer))
+          dig)
+      (save-excursion
+       (setq dig (nnheader-set-temp-buffer " *gnus digest buffer*"))
+       (insert-buffer-substring gnus-original-article-buffer)
+       ;; Remove lines that may lead nndoc to misinterpret the
+       ;; document type.
+       (narrow-to-region
+        (goto-char (point-min))
+        (or (search-forward "\n\n" nil t) (point)))
+       (goto-char (point-min))
+       (delete-matching-lines "^\\(Path\\):\\|^From ")
+       (widen))
+      (unwind-protect
+         (if (gnus-group-read-ephemeral-group
+              name `(nndoc ,name (nndoc-address ,(get-buffer dig))
+                           (nndoc-article-type ,(if force 'digest 'guess))) t)
+             ;; Make all postings to this group go to the parent group.
+             (nconc (gnus-info-params (gnus-get-info name))
+                    params)
+           ;; Couldn't select this doc group.
+           (switch-to-buffer buf)
+           (gnus-set-global-variables)
+           (gnus-configure-windows 'summary)
+           (gnus-message 3 "Article couldn't be entered?"))
+       (kill-buffer dig)))))
 
 (defun gnus-summary-read-document (n)
   "Open a new group based on the current article(s).
index 101c086..7cdd165 100644 (file)
@@ -183,11 +183,11 @@ buffer configuration.")
     (draft . gnus-draft-buffer))
   "Mapping from short symbols to buffer names or buffer variables.")
 
+;;; Internal variables.
+
 (defvar gnus-current-window-configuration nil
   "The most recently set window configuration.")
 
-;;; Internal variables.
-
 (defvar gnus-created-frames nil)
 
 (defun gnus-kill-gnus-frames ()
index 18bc305..cab7c96 100644 (file)
@@ -777,7 +777,8 @@ If HIDE, hide the text instead."
     (let* ((file (concat gnus-xmas-glyph-directory "gnus-pointer."
                         (if (featurep 'xpm) "xpm" "xbm")))
           (glyph (make-glyph file)))
-      (when (file-exists-p file)
+      (when (and (featurep 'x)
+                (file-exists-p file))
        (set-glyph-face glyph 'modeline-buffer-id)
        glyph))))
 
index 2997cb3..47f7fb8 100644 (file)
@@ -28,7 +28,7 @@
 
 (eval '(run-hooks 'gnus-load-hook))
 
-(defconst gnus-version-number "0.23"
+(defconst gnus-version-number "0.24"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
index ee3e6fe..3879f90 100644 (file)
@@ -1,7 +1,7 @@
 \input texinfo                  @c -*-texinfo-*-
 
 @setfilename gnus
-@settitle Red Gnus 0.23 Manual
+@settitle Red Gnus 0.24 Manual
 @synindex fn cp
 @synindex vr cp
 @synindex pg cp
@@ -230,7 +230,7 @@ into another language, under the above conditions for modified versions.
 @tex
 
 @titlepage
-@title Red Gnus 0.23 Manual
+@title Red Gnus 0.24 Manual
 
 @author by Lars Magne Ingebrigtsen
 @page