*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 22:38:05 +0000 (22:38 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 22:38:05 +0000 (22:38 +0000)
lisp/ChangeLog
lisp/gnus-art.el
lisp/gnus-load.el
lisp/gnus-srvr.el
lisp/gnus-sum.el
lisp/gnus.el
lisp/nndoc.el
lisp/nntp.el

index a5385a0..4913181 100644 (file)
@@ -1,3 +1,28 @@
+Sun Sep  8 13:26:36 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
+
+       * nndoc.el (nndoc-article-begin-function): Defvarred.
+
+       * gnus-srvr.el (gnus-browse-unsubscribe-group): Would sometimes be
+       somewhat tricky.
+
+       * gnus.el (gnus-kill-ephemeral-group): New function.
+
+       * gnus-art.el (gnus-button-alist): Recognize group-news urls.
+
+       * nndoc.el (nndoc-dissect-buffer): Wouldn't dissect an mbox
+       properly. 
+       (nndoc-article-begin): New function.
+       (nndoc-mbox-body-end): Use it.
+       (nndoc-mbox-article-begin): Would bug out.
+
+Sun Sep  8 13:10:28 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
+
+       * gnus.el (gnus-other-frame): Always pop up a frame.
+
+Sun Sep  8 12:57:03 1996  Lars Magne Ingebrigtsen  <larsi@gymir.ifi.uio.no>
+
+       * gnus.el: Red Gnus v0.29 is released.
+
 Sun Sep  8 12:24:11 1996  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
 
        * nntp.el (nntp-accept-process-output): Don't message so
index 366bc76..82b72b9 100644 (file)
@@ -1325,6 +1325,8 @@ groups."
 (defvar gnus-button-alist 
   `(("\\bin\\( +article\\)? +\\(<\\([^\n @<>]+@[^\n @<>]+\\)>\\)" 2 
      t gnus-button-message-id 3)
+    ("\\(<?\\(url: ?\\)?news://\\([^>\n\t ]*\\)>?\\)" 1 t
+     gnus-button-fetch-group 3)
     ("\\(<?\\(url: ?\\)?news:\\([^>\n\t ]*\\)>?\\)" 1 t
      gnus-button-message-id 3)
     ("\\(<URL: *\\)?mailto: *\\([^> \n\t]+\\)>?" 0 t gnus-button-reply 2)
@@ -1657,6 +1659,17 @@ specified by `gnus-button-alist'."
     (set-buffer gnus-summary-buffer)
     (gnus-summary-refer-article message-id)))
 
+(defun gnus-button-fetch-group (address)
+  "Fetch GROUP specified by ADDRESS."
+  (if (not (string-match "^\\([^:/]+\\)\\(:\\([^/]+\\)\\)?/\\(.*\\)$" address))
+      (error "Can't parse %s" address)
+    (gnus-group-read-ephemeral-group
+     (match-string 4 address)
+     `(nntp ,(match-string 1 address) (nntp-address ,(match-string 1 address))
+           (nntp-port-number ,(if (match-end 3)
+                                  (match-string 3 address)
+                                "nntp"))))))
+
 (defun gnus-button-mailto (address)
   ;; Mail to ADDRESS.
   (set-buffer (gnus-copy-article-buffer))
index ced2bdc..1def09c 100644 (file)
@@ -349,7 +349,7 @@ slower.")
     ("nnmbox" mail respool address)
     ("nnml" mail respool address)
     ("nnmh" mail respool address)
-    ("nndir" post-mail prompt-address address)
+    ("nndir" post-mail prompt-address)
     ("nneething" none address prompt-address)
     ("nndoc" none address prompt-address)
     ("nnbabyl" mail address respool)
index b7f534d..6f9f9c0 100644 (file)
@@ -673,6 +673,9 @@ buffer.
       ;; If this group it killed, then we want to subscribe it.
       (if (= (following-char) ?K) (setq sub t))
       (setq group (gnus-browse-group-name))
+      ;; Make sure the group has been properly removed before we
+      ;; subscribe to it.
+      (gnus-kill-ephemeral-group group)
       (delete-char 1)
       (if sub
          (progn
index e398de8..6e9020f 100644 (file)
@@ -5627,17 +5627,22 @@ to guess what the document format is."
        (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?"))
+         (let ((gnus-current-window-configuration
+                (if (and (boundp 'gnus-pick-mode)
+                         (symbol-value "gnus-pick-mode"))
+                    'pick 'summary)))
+           (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)
index 6f8aabc..3e1ca02 100644 (file)
@@ -28,7 +28,7 @@
 
 (eval '(run-hooks 'gnus-load-hook))
 
-(defconst gnus-version-number "0.29"
+(defconst gnus-version-number "0.30"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
   (set-buffer-modified-p t))
 
 (eval-when (load)
-  (when (string-match "gnus" (format "%s" this-command))
-    (gnus-splash)))
+  (let ((command (format "%s" this-command)))
+    (when (and (string-match "gnus" command)
+              (not (string-match "gnus-other-frame" command)))
+      (gnus-splash))))
 
 ;;; Do the rest.
 
@@ -411,6 +413,10 @@ that that variable is buffer-local to the summary buffers."
   "Return the quit-config of GROUP."
   (gnus-group-get-parameter group 'quit-config))
 
+(defun gnus-kill-ephemeral-group (group)
+  "Remove ephemeral GROUP from relevant structures."
+  (gnus-sethash group nil gnus-newsrc-hashtb))
+
 (defun gnus-simplify-mode-line ()
   "Make mode lines a bit simpler."
   (setq mode-line-modified "-- ")
@@ -854,7 +860,7 @@ As opposed to `gnus', this command will not connect to the local server."
 (defun gnus-other-frame (&optional arg)
   "Pop up a frame to read news."
   (interactive "P")
-  (if (get-buffer gnus-group-buffer)
+  (if (gnus-alive-p)
       (let ((pop-up-frames t))
        (gnus arg))
     (select-frame (make-frame))
index bf58850..71a3866 100644 (file)
@@ -132,6 +132,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
 (defvoo nndoc-prepare-body-function nil)
 (defvoo nndoc-generate-head-function nil)
 (defvoo nndoc-article-transform-function nil)
+(defvoo nndoc-article-begin-function nil)
 
 (defvoo nndoc-status-string "")
 (defvoo nndoc-group-alist nil)
@@ -335,7 +336,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
     t))
 
 (defun nndoc-mbox-article-begin ()
-  (when (re-search-forward (concat "^" message-unix-mail-delimiter))
+  (when (re-search-forward (concat "^" message-unix-mail-delimiter) nil t)
     (goto-char (match-beginning 0))))
 
 (defun nndoc-mbox-body-end ()
@@ -343,7 +344,8 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
        len end)
     (when
        (save-excursion
-         (and (re-search-backward nndoc-article-begin nil t)
+         (and (re-search-backward 
+               (concat "^" message-unix-mail-delimiter) nil t)
               (setq end (point))
               (search-forward "\n\n" beg t)
               (re-search-backward
@@ -353,7 +355,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
               (or (= (setq len (+ (point) len)) (point-max))
                   (and (< len (point-max))
                        (goto-char len)
-                       (looking-at nndoc-article-begin)))))
+                       (looking-at message-unix-mail-delimiter)))))
       (goto-char len))))
 
 (defun nndoc-mmdf-type-p ()
@@ -527,9 +529,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
       ;; Go through the file.
       (while (if (and first nndoc-first-article)
                 (nndoc-search nndoc-first-article)
-              (condition-case ()
-                  (nndoc-search nndoc-article-begin)
-                (error nil)))
+              (nndoc-article-begin))
        (setq first nil)
        (cond (nndoc-head-begin-function
               (funcall nndoc-head-begin-function))
@@ -550,9 +550,7 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
                   (funcall nndoc-body-end-function))
              (and nndoc-body-end
                   (nndoc-search nndoc-body-end))
-             (condition-case ()
-                 (nndoc-search nndoc-article-begin)
-               (error nil))
+             (nndoc-article-begin)
              (progn
                (goto-char (point-max))
                (when nndoc-file-end
@@ -563,6 +561,13 @@ One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
                      (count-lines body-begin body-end))
                nndoc-dissection-alist))))))
 
+(defun nndoc-article-begin ()
+  (if nndoc-article-begin-function
+      (funcall nndoc-article-begin-function)
+    (condition-case ()
+       (nndoc-search nndoc-article-begin)
+      (error nil))))
+
 (defun nndoc-unquote-dashes ()
   "Unquote quoted non-separators in digests."
   (while (re-search-forward "^- -"nil t)
index 20dbc4d..55ea3ae 100644 (file)
@@ -1,4 +1,4 @@
-;; Copyright (C) 1987,88,89,90,92,93,94,95,96 Free Software Foundation, Inc.
+;;; Copyright (C) 1987,88,89,90,92,93,94,95,96 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
 ;; Keywords: news