*** pub/dgnus/lisp/gnus-cache.el Fri Sep 15 11:54:14 1995 --- dgnus/lisp/gnus-cache.el Sat Sep 16 06:40:18 1995 *************** *** 141,148 **** (set-buffer (cdr gnus-cache-buffer)) (goto-char (point-max)) (forward-line -1) ! (while (and (not (bobp)) ! (> (read (current-buffer)) number)) (forward-line -1)) (if (bobp) (if (not (eobp)) --- 141,153 ---- (set-buffer (cdr gnus-cache-buffer)) (goto-char (point-max)) (forward-line -1) ! (while (condition-case () ! (and (not (bobp)) ! (> (read (current-buffer)) number)) ! (error ! ;; The line was malformed, so we just remove it!! ! (gnus-delete-line) ! t)) (forward-line -1)) (if (bobp) (if (not (eobp)) *** pub/dgnus/lisp/gnus-msg.el Fri Sep 15 11:54:14 1995 --- dgnus/lisp/gnus-msg.el Sat Sep 16 08:47:27 1995 *************** *** 33,38 **** --- 33,43 ---- (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 *************** *** 478,490 **** (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))))) ;; Handle author copy using BCC field. (if (and gnus-mail-self-blind (not (mail-fetch-field "bcc"))) --- 483,494 ---- (gnus-fetch-field "reply-to")) from))))) (if 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"))) *************** *** 995,1001 **** (concat "^" (regexp-quote mail-header-separator) "$")) (replace-match "" t t) ;; This hook may insert a signature. ! (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. --- 999,1009 ---- (concat "^" (regexp-quote mail-header-separator) "$")) (replace-match "" t t) ;; This hook may insert a signature. ! (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. *************** *** 1142,1148 **** 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 nil." (save-excursion (let ((signature --- 1150,1157 ---- 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 of these variables to nil." (save-excursion (let ((signature *** pub/dgnus/lisp/gnus-uu.el Fri Sep 15 11:54:15 1995 --- dgnus/lisp/gnus-uu.el Sat Sep 16 08:47:31 1995 *************** *** 677,686 **** (save-excursion (save-restriction (set-buffer buffer) ! (set-text-properties (point-min) (point-max) nil) ! ;; These two are necessary for XEmacs 19.12 fascism. ! (put-text-property (point-min) (point-max) 'invisible nil) ! (put-text-property (point-min) (point-max) 'intangible nil) (goto-char (point-min)) (re-search-forward "\n\n") (setq body (buffer-substring (1- (point)) (point-max))) --- 677,687 ---- (save-excursion (save-restriction (set-buffer buffer) ! (let (buffer-read-only) ! (set-text-properties (point-min) (point-max) nil) ! ;; These two are necessary for XEmacs 19.12 fascism. ! (put-text-property (point-min) (point-max) 'invisible nil) ! (put-text-property (point-min) (point-max) 'intangible nil)) (goto-char (point-min)) (re-search-forward "\n\n") (setq body (buffer-substring (1- (point)) (point-max))) *************** *** 1074,1079 **** --- 1075,1081 ---- (if (stringp nntp-server-buffer) (setq article-buffer nntp-server-buffer) (setq article-buffer (buffer-name nntp-server-buffer)))) + (gnus-summary-stop-page-breaking) (setq article-buffer gnus-article-buffer)) (buffer-disable-undo article-buffer) *** pub/dgnus/lisp/gnus.el Fri Sep 15 11:54:25 1995 --- dgnus/lisp/gnus.el Sat Sep 16 09:47:05 1995 *************** *** 1194,1204 **** 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.") --- 1194,1199 ---- *************** *** 1354,1360 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "Gnus v5.0.3" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1349,1355 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "Gnus v5.0.4" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 2758,2763 **** --- 2753,2765 ---- (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) *************** *** 3582,3591 **** (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-message 6 "Note: New group created") (setq entry (gnus-gethash (gnus-group-prefixed-name --- 3584,3590 ---- (prin1-to-string (car (nth 4 info))) (nth 1 (nth 4 info))) ;; It's a native group. ! (gnus-group-make-group (car info))) (gnus-message 6 "Note: New group created") (setq entry (gnus-gethash (gnus-group-prefixed-name *************** *** 4094,4100 **** (gnus-configure-windows 'server) (gnus-server-prepare)) ! (defun gnus-group-make-group (name method &optional address) "Add a new newsgroup. The user will be prompted for a NAME, for a select METHOD, and an ADDRESS." --- 4093,4099 ---- (gnus-configure-windows 'server) (gnus-server-prepare)) ! (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." *************** *** 4113,4120 **** "")) (list method nil))))) ! (let* ((meth (if address (list (intern method) address) method)) ! (nname (gnus-group-prefixed-name name meth)) info) (and (gnus-gethash nname gnus-newsrc-hashtb) (error "Group %s already exists" nname)) --- 4112,4119 ---- "")) (list method nil))))) ! (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)) *************** *** 4692,4700 **** (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))) (gnus-get-unread-articles (or arg (1+ gnus-level-subscribed))))) (gnus-group-list-groups)) --- 4691,4697 ---- (progn (gnus-read-active-file) (gnus-get-unread-articles (or arg (1+ gnus-level-subscribed)))) ! (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)) *************** *** 7543,7548 **** --- 7540,7546 ---- (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 () *************** *** 9099,9110 **** (gnus-summary-position-cursor) not-deleted)) ! (defun gnus-summary-edit-article () "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) (error "The current newsgroup does not support article editing.")) (gnus-summary-select-article t) (gnus-configure-windows 'article) --- 9097,9110 ---- (gnus-summary-position-cursor) not-deleted)) ! (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. ! 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) *************** *** 9122,9140 **** (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)))) (defun gnus-summary-edit-article-postpone () "Postpone changes to the current article." --- 9122,9145 ---- (defun gnus-summary-edit-article-done () "Make edits to the current article permanent." (interactive) ! (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." *************** *** 13943,13948 **** --- 13948,13960 ---- (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)) *** pub/dgnus/lisp/nneething.el Fri Sep 15 11:54:26 1995 --- dgnus/lisp/nneething.el Sat Sep 16 06:59:25 1995 *************** *** 90,96 **** (setq file (nneething-file-name article)) (if (and (file-exists-p file) ! (> (nth 7 (file-attributes file)) 0)) (progn (insert (format "221 %d Article retrieved.\n" article)) (nneething-insert-head file) --- 90,96 ---- (setq file (nneething-file-name article)) (if (and (file-exists-p file) ! (not (zerop (nth 7 (file-attributes file))))) (progn (insert (format "221 %d Article retrieved.\n" article)) (nneething-insert-head file) *** pub/dgnus/lisp/nntp.el Fri Sep 15 11:54:26 1995 --- dgnus/lisp/nntp.el Sat Sep 16 09:42:56 1995 *************** *** 643,650 **** (string-equal "poster" followup-to);Poster (and (eq respect-poster 'ask) followup-to ! (y-or-n-p (concat "Followup to " ! followup-to "? ")))) (setq followup-to nil)) (setq newsgroups (or follow-to followup-to (mail-fetch-field "newsgroups"))) --- 643,650 ---- (string-equal "poster" followup-to);Poster (and (eq respect-poster 'ask) followup-to ! (not (y-or-n-p (concat "Followup to " ! followup-to "? "))))) (setq followup-to nil)) (setq newsgroups (or follow-to followup-to (mail-fetch-field "newsgroups"))) *** pub/dgnus/lisp/ChangeLog Fri Sep 15 11:54:35 1995 --- dgnus/lisp/ChangeLog Sat Sep 16 09:42:54 1995 *************** *** 1,5 **** --- 1,46 ---- + Sat Sep 16 06:44:33 1995 Lars Magne Ingebrigtsen + + * 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 + + * 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 + + * 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 + * 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.