+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
(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)
(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))
("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)
;; 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
(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)
(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.
"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 "-- ")
(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))
(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)
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 ()
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
(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 ()
;; 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))
(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
(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)
-;; 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