+Sat Sep 16 06:44:33 1995 Lars Magne Ingebrigtsen <larsi@surt.ifi.uio.no>
+
+ * gnus.el (gnus-group-make-group): Be able to create native
+ groups.
+ (gnus-group-set-info): Create native groups.
+
+ * gnus-msg.el (gnus-post-news): Just use Cc to do the
+ `gnus-auto-mail-to-author'.
+
+ * gnus-uu.el (gnus-uu-grab-articles): Widen the article buffer.
+
+ * gnus.el (gnus-group-get-new-news): Check more groups.
+ (gnus-score-find-bnews): "nntp+" score files were not recognized.
+ (gnus-summary-search-subject): Unhide thread.
+
+ * nneething.el (nneething-retrieve-headers): Didn't work over
+ ange-ftp.
+
+ * gnus.el (gnus-group-read-only-p): New function.
+ (gnus-summary-edit-article): Take a prefix argument to force.
+ (gnus-summary-edit-article-done): Warn when editing in a read-only
+ group.
+
+Fri Sep 15 15:42:28 1995 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * nntp.el (nntp-request-post-buffer): Did the opposite of what the
+ user wanted w.r.t. (eq respect-poster 'ask).
+
+Sat Sep 16 06:28:35 1995 Lars Magne Ingebrigtsen <larsi@surt.ifi.uio.no>
+
+ * gnus-msg.el (gnus-inews-article): Bind the newsgroup name by
+ looking at the Newsgroups line.
+
+ * gnus-cache.el (gnus-cache-possibly-enter-article): Don't bug out
+ so much on malformed lines.
+
+ * gnus-uu.el (gnus-uu-save-article): Didn't make buffer
+ non-read-only.
+
Fri Sep 15 11:09:52 1995 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+ * gnus.el: 5.0.3 is released.
+
* gnus.el (gnus-summary-catchup): Would make all dormants read.
* gnus-msg.el (gnus-article-mail-with-original): Removed function.
(defvar gnus-organization-file "/usr/lib/news/organization"
"*Local news organization file.")
+(defvar gnus-prepare-article-hook (list 'gnus-inews-insert-signature)
+ "*A hook called after preparing body, but before preparing header headers.
+The default hook (`gnus-inews-insert-signature') inserts a signature
+file specified by the variable `gnus-signature-file'.")
+
(defvar gnus-post-prepare-function nil
"*Function that is run after a post buffer has been prepared.
It is called with the name of the newsgroup that is posted to. It
(gnus-fetch-field "reply-to"))
from)))))
(if to
- (progn
- (if (mail-fetch-field "To")
- (progn
- (beginning-of-line)
- (insert "Cc: " to "\n"))
- (mail-position-on-field "To")
- (insert to)))))
+ (if (mail-fetch-field "To")
+ (progn
+ (beginning-of-line)
+ (insert "Cc: " to "\n"))
+ (mail-position-on-field "To")
+ (insert to))))
;; Handle author copy using BCC field.
(if (and gnus-mail-self-blind
(not (mail-fetch-field "bcc")))
(concat "^" (regexp-quote mail-header-separator) "$"))
(replace-match "" t t)
;; This hook may insert a signature.
- (run-hooks 'gnus-prepare-article-hook)
+ (save-excursion
+ (goto-char (point-min))
+ (let ((gnus-newsgroup-name (or (mail-fetch-field "newsgroups")
+ gnus-newsgroup-name)))
+ (run-hooks 'gnus-prepare-article-hook)))
;; Run final inews hooks. This hook may do FCC.
;; The article must be saved before being posted because
;; `gnus-request-post' modifies the buffer.
In either case, if the string is a file name, this file is
inserted. If the string is not a file name, the string itself is
inserted.
-If you never want any signature inserted, set both those variables to
+
+If you never want any signature inserted, set both of these variables to
nil."
(save-excursion
(let ((signature
It is meant to be used for highlighting the article in some way. It
is not run if `gnus-visual' is nil.")
-(defvar gnus-prepare-article-hook (list 'gnus-inews-insert-signature)
- "*A hook called after preparing body, but before preparing header headers.
-The default hook (`gnus-inews-insert-signature') inserts a signature
-file specified by the variable `gnus-signature-file'.")
-
(defvar gnus-exit-group-hook nil
"*A hook called when exiting (not quitting) summary mode.")
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version "Gnus v5.0.3"
+(defconst gnus-version "Gnus v5.0.4"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
(and (= (car fdate) (car date))
(> (nth 1 fdate) (nth 1 date))))))
+(defun gnus-group-read-only-p (&optional group)
+ "Check whether GROUP supports editing or not.
+If GROUP is nil, `gnus-newsgroup-name' will be checked instead. Note
+that that variable is buffer-local to the summary buffers."
+ (let ((group (or group gnus-newsgroup-name)))
+ (not (gnus-check-backend-function 'request-replace-article group))))
+
;; Two silly functions to ensure that all `y-or-n-p' questions clear
;; the echo area.
(defun gnus-y-or-n-p (prompt)
(prin1-to-string (car (nth 4 info)))
(nth 1 (nth 4 info)))
;; It's a native group.
- (gnus-group-make-group
- (car info)
- (prin1-to-string (car gnus-select-method))
- (nth 1 gnus-select-method)))
+ (gnus-group-make-group (car info)))
(gnus-message 6 "Note: New group created")
(setq entry
(gnus-gethash (gnus-group-prefixed-name
(gnus-configure-windows 'server)
(gnus-server-prepare))
-(defun gnus-group-make-group (name method &optional address)
+(defun gnus-group-make-group (name &optional method address)
"Add a new newsgroup.
The user will be prompted for a NAME, for a select METHOD, and an
ADDRESS."
""))
(list method nil)))))
- (let* ((meth (if address (list (intern method) address) method))
- (nname (gnus-group-prefixed-name name meth))
+ (let* ((meth (and method (if address (list (intern method) address) method)))
+ (nname (if method (gnus-group-prefixed-name name meth) name))
info)
(and (gnus-gethash nname gnus-newsrc-hashtb)
(error "Group %s already exists" nname))
(progn
(gnus-read-active-file)
(gnus-get-unread-articles (or arg (1+ gnus-level-subscribed))))
- (let ((gnus-read-active-file (not arg))
- (gnus-have-read-active-file
- (and (not arg) gnus-have-read-active-file)))
+ (let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
(gnus-get-unread-articles (or arg (1+ gnus-level-subscribed)))))
(gnus-group-list-groups))
(progn (goto-char beg) nil)
(prog1
(get-text-property (point) 'gnus-number)
+ (gnus-summary-show-thread)
(gnus-summary-position-cursor)))))
(defun gnus-summary-pseudo-article ()
(gnus-summary-position-cursor)
not-deleted))
-(defun gnus-summary-edit-article ()
+(defun gnus-summary-edit-article (&optional force)
"Enter into a buffer and edit the current article.
-This will have permanent effect only in mail groups."
- (interactive)
- (or (gnus-check-backend-function
- 'request-replace-article gnus-newsgroup-name)
+This will have permanent effect only in mail groups.
+If FORCE is non-nil, allow editing of articles even in read-only
+groups."
+ (interactive "P")
+ (or force
+ (not (gnus-group-read-only-p))
(error "The current newsgroup does not support article editing."))
(gnus-summary-select-article t)
(gnus-configure-windows 'article)
(defun gnus-summary-edit-article-done ()
"Make edits to the current article permanent."
(interactive)
- (let ((buf (buffer-substring-no-properties (point-min) (point-max))))
- (erase-buffer)
- (insert buf)
- (if (not (gnus-request-replace-article
- (cdr gnus-article-current) (car gnus-article-current)
- (current-buffer)))
- (error "Couldn't replace article.")
- (gnus-article-mode)
- (use-local-map gnus-article-mode-map)
- (setq buffer-read-only t)
- (buffer-disable-undo (current-buffer))
- (gnus-configure-windows 'summary))
- (and gnus-visual (run-hooks 'gnus-visual-mark-article-hook))))
+ (if (gnus-group-read-only-p)
+ (progn
+ (gnus-summary-edit-article-postpone)
+ (message "The current newsgroup does not support article editing.")
+ (ding))
+ (let ((buf (buffer-substring-no-properties (point-min) (point-max))))
+ (erase-buffer)
+ (insert buf)
+ (if (not (gnus-request-replace-article
+ (cdr gnus-article-current) (car gnus-article-current)
+ (current-buffer)))
+ (error "Couldn't replace article.")
+ (gnus-article-mode)
+ (use-local-map gnus-article-mode-map)
+ (setq buffer-read-only t)
+ (buffer-disable-undo (current-buffer))
+ (gnus-configure-windows 'summary))
+ (and gnus-visual (run-hooks 'gnus-visual-mark-article-hook)))))
(defun gnus-summary-edit-article-postpone ()
"Postpone changes to the current article."
(goto-char (point-min))
(while (re-search-forward "[/:]" nil t)
(replace-match "." t t))
+ ;; Cludge to get rid of "nntp+" problems.
+ (goto-char (point-min))
+ (and (looking-at "nn[a-z]+\\+")
+ (progn
+ (search-forward "+")
+ (forward-char -1)
+ (insert "\\")))
;; Translate "all" to ".*".
(while (search-forward "all" nil t)
(replace-match ".*" t t))