+Sat Aug 26 03:18:39 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus-uu.el (gnus-uu-grab-articles): Didn't update mode line.
+
+ * gnus.el (gnus-replace-chars-in-string): Translate pairs.
+
+Sat Aug 26 02:54:16 1995 Lars Magne Ingebrigtsen <lingebri@sunscipw.cern.ch>
+
+ * gnus.el (gnus-summary-next-article): `n' `SPC' etc in XEmacs
+ didn't work.
+
+Sat Aug 26 00:07:59 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * nntp.el (nntp-open-server): Would try to reconnect to the same
+ dead server.
+
+ * gnus.el (gnus-group-insert-group-line): Didn't insert process
+ marks.
+ (gnus-read-active-file): Would screw up the group info if a
+ secondary server was down.
+
+ * gnus-vm.el (gnus-vm-make-folder): Don't use toolbar.
+
+ * nnfolder.el (nnfolder-save-mail): Would delete one \n too much.
+
+ * gnus.el (gnus-start-news-server): Give better error message.
+
+ * nntp.el (nntp-open-server-semi-internal): Save the error message
+ on unsuccessful connects.
+
+ * nnfolder.el (nnfolder-request-move-article): Deleted wrong
+ article marker.
+ (nnfolder-request-accept-article): Ditto.
+
+ * gnus.el (gnus-summary-refer-article): Would bug out if the
+ article buffer didn't exist.
+
+ * gnus-cache.el (gnus-cache-braid-nov): Would skip every other
+ line.
+
+Fri Aug 25 23:22:07 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus-msg.el (gnus-inews-news): Would kill connection after
+ posting to a foreign server.
+
+ * gnus.el (gnus): Read init file before doing splash.
+
+Fri Aug 25 18:08:35 1995 Ulrik Dickow <dickow@nbi.dk>
+
+ * gnus-msg.el (gnus-post-news): Treat `gnus-auto-mail-to-author' right.
+
+Fri Aug 25 15:04:37 1995 Per Abrahamsen <abraham@dina.kvl.dk>
+
+ * gnus-cus.el (gnus-custom-import-cite-face-list): Support old
+ light and dark settings of `gnus-cite-face-list'.
+
Fri Aug 25 06:03:51 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
* gnus.el (gnus-modtime-botch): New variable.
(substring string (match-beginning num) (match-end num))
(buffer-substring (match-beginning num) (match-end num))))))
-
(or (fboundp 'facep)
;; Introduced in Emacs 19.29.
(defun facep (x)
(if (search-forward (concat "\n" (int-to-string (car cached)) "\t")
nil t)
(setq beg (progn (beginning-of-line) (point))
- end (progn (forward-line 1) (point)))
+ end (progn (end-of-line) (point)))
(setq beg nil)))
- (and beg (insert-buffer-substring cache-buf beg end))
+ (if beg (progn (insert-buffer-substring cache-buf beg end)
+ (insert "\n")))
(setq cached (cdr cached)))
(kill-buffer cache-buf)))
Gnus will try to give each citation from each article its own face.
This should make it easier to see who wrote what.")
(name . gnus-cite-face-list)
+ (import . gnus-custom-import-cite-face-list)
(type . list)
(calculate . (cond ((not (eq gnus-display-type 'color))
'(italic))
;; beginners.
)))))
+(defun gnus-custom-import-cite-face-list (custom alist)
+ ;; Backward compatible groking of light and dark.
+ (cond ((eq alist 'light)
+ (setq alist (mapcar 'gnus-make-face gnus-face-light-name-list)))
+ ((eq alist 'dark)
+ (setq alist (mapcar 'gnus-make-face gnus-face-dark-name-list))))
+ (funcall (custom-super custom 'import) custom alist))
+
;(defun gnus-custom-import-swap-alist (custom alist)
; ;; Swap key and value in CUSTOM ALIST.
; (let ((swap (mapcar (lambda (e) (cons (cdr e) (car e))) alist)))
;; Suggested by Daniel Quinlan <quinlan@best.com>.
;; Revised to respect Reply-To by Ulrik Dickow <dickow@nbi.dk>.
(let ((to (and (not post)
- (if (or (and (eq gnus-auto-mail-to-author 'ask)
- (y-or-n-p "Also send mail to author? "))
- gnus-auto-mail-to-author)
+ (if (if (eq gnus-auto-mail-to-author 'ask)
+ (y-or-n-p "Also send mail to author? ")
+ gnus-auto-mail-to-author)
(or (save-excursion
(set-buffer gnus-article-copy)
(gnus-fetch-field "reply-to"))
will attempt to use the foreign server to post the article."
(interactive "P")
(let* ((case-fold-search nil)
- (server-running (gnus-server-opened gnus-select-method))
+ (server-running (gnus-server-opened gnus-current-select-method))
(reply gnus-article-reply)
error post-result)
(save-excursion
(re-search-forward "\n\n")
(setq body (buffer-substring (1- (point)) (point-max)))
(narrow-to-region 1 (point))
- (setq headers gnus-uu-digest-headers)
- (while headers
- (setq headline (car headers))
- (setq headers (cdr headers))
- (goto-char (point-min))
- (if (re-search-forward headline nil t)
- (setq sorthead
- (concat sorthead
- (buffer-substring
- (match-beginning 0)
- (or (and (re-search-forward "^[^ \t]" nil t)
- (1- (point)))
- (progn (forward-line 1) (point))))))))
+ (if (not (setq headers gnus-uu-digest-headers))
+ (setq sorthead (buffer-substring (point-min) (point-max)))
+ (while headers
+ (setq headline (car headers))
+ (setq headers (cdr headers))
+ (goto-char (point-min))
+ (if (re-search-forward headline nil t)
+ (setq sorthead
+ (concat sorthead
+ (buffer-substring
+ (match-beginning 0)
+ (or (and (re-search-forward "^[^ \t]" nil t)
+ (1- (point)))
+ (progn (forward-line 1) (point)))))))))
(widen)))
(insert sorthead)(goto-char (point-max))
(insert body)(goto-char (point-max))
(widen)
(erase-buffer)
(insert-buffer-substring article-buffer)
+ (gnus-set-mode-line 'article)
(goto-char (point-min)))))
+ (gnus-set-mode-line 'summary)
+
(if result-files
()
(if (not has-been-begin)
;; insert a newline, otherwise the last line gets lost
(goto-char (point-max))
(insert "\n")
- (vm-mode)
+ (let (vm-use-toolbar vm-use-menus)
+ (vm-mode))
tmp-folder))
(defun gnus-summary-save-article-vm (&optional arg)
"gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
"The mail address of the Gnus maintainers.")
-(defconst gnus-version "(ding) Gnus v0.99.22"
+(defconst gnus-version "(ding) Gnus v0.99.23"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
(load (car (cdr (cdr defs))) nil 'nomessage))
(fset (car defs) (car (cdr defs))))))
-(defun gnus-replace-chars-in-string (string from to)
+(defun gnus-replace-chars-in-string (string &rest pairs)
"Replace characters in STRING from FROM to TO."
(let ((string (substring string 0)) ;Copy string.
(len (length string))
- (idx 0))
+ (idx 0)
+ sym to)
+ (or (zerop (% (length pairs) 2))
+ (error "Odd number of translation pairs"))
+ (setplist 'sym pairs)
;; Replace all occurrences of FROM with TO.
(while (< idx len)
- (if (= (aref string idx) from)
+ (if (setq to (get 'sym (aref string idx)))
(aset string idx to))
(setq idx (1+ idx)))
string))
(gnus-clear-system)
+ (nnheader-init-server-buffer)
+ (gnus-read-init-file)
+
(gnus-group-setup-buffer)
(let ((buffer-read-only nil))
(erase-buffer)
(gnus-group-startup-message)
(sit-for 0))))
- (nnheader-init-server-buffer)
- (gnus-read-init-file)
-
(let ((level (and arg (numberp arg) (> arg 0) arg))
did-connect)
(unwind-protect
?* ? ))
(number (if (eq number t) "*" (+ number number-of-dormant
number-of-ticked)))
- (process-marked (if (member qualified-group gnus-group-marked)
+ (process-marked (if (member group gnus-group-marked)
gnus-process-mark ? ))
(buffer-read-only nil)
header ; passed as parameter to user-funcs.
gnus-newsgroup-name)))
(gnus-summary-exit)
(gnus-summary-next-group nil group backward))
- (setq unread-command-events (list key)))))))))))
+ (execute-kbd-macro (char-to-string key)))))))))))
(defun gnus-summary-next-unread-article ()
"Select unread article after current one."
(gnus-check-server gnus-refer-article-method))
;; Save the old article buffer.
(save-excursion
- (set-buffer gnus-article-buffer)
+ (set-buffer (gnus-article-setup-buffer))
(gnus-kill-buffer " *temp Article*")
(setq tmp-buf (rename-buffer " *temp Article*")))
(prog1
(defun gnus-article-setup-buffer ()
"Initialize article mode buffer."
+ ;; Returns the article buffer.
(if (get-buffer gnus-article-buffer)
(save-excursion
(set-buffer gnus-article-buffer)
(setq buffer-read-only t)
(gnus-add-current-to-buffer-list)
(or (eq major-mode 'gnus-article-mode)
- (gnus-article-mode)))
+ (gnus-article-mode))
+ (current-buffer))
(save-excursion
(set-buffer (get-buffer-create gnus-article-buffer))
(gnus-add-current-to-buffer-list)
- (gnus-article-mode))))
+ (gnus-article-mode)
+ (current-buffer))))
;; Set article window start at LINE, where LINE is the number of lines
;; from the head of the article.
(gnus-open-server gnus-select-method)
(gnus-y-or-n-p
(format
- "%s server on %s can't be opened. Continue? "
- (car gnus-select-method) (nth 1 gnus-select-method)))
+ "%s open error: '%s'. Continue? "
+ (nth 1 gnus-select-method)
+ (gnus-status-message gnus-select-method)))
(progn
(gnus-message 1 "Couldn't open server on %s"
(nth 1 gnus-select-method))
(concat " from " where) "")
(car method))))
(gnus-message 5 mesg)
- (gnus-check-server method)
- (cond
- ((and (eq gnus-read-active-file 'some)
- (gnus-check-backend-function 'retrieve-groups (car method)))
- (let ((newsrc (cdr gnus-newsrc-alist))
- (gmethod (gnus-server-get-method nil method))
- groups)
- (while newsrc
- (and (gnus-server-equal
- (gnus-find-method-for-group
- (car (car newsrc)) (car newsrc))
- gmethod)
- (setq groups (cons (gnus-group-real-name
- (car (car newsrc))) groups)))
- (setq newsrc (cdr newsrc)))
- (gnus-check-server method)
- (setq list-type (gnus-retrieve-groups groups method))
- (cond ((not list-type)
- (gnus-message
- 1 "Cannot read partial active file from %s server."
- (car method))
- (ding)
- (sit-for 2))
- ((eq list-type 'active)
- (gnus-active-to-gnus-format method gnus-active-hashtb))
- (t
- (gnus-groups-to-gnus-format method gnus-active-hashtb)))))
- (t
- (if (not (gnus-request-list method))
- (progn
- (gnus-message 1 "Cannot read active file from %s server."
- (car method))
- (ding))
- (gnus-active-to-gnus-format method)
- ;; We mark this active file as read.
- (setq gnus-have-read-active-file
- (cons method gnus-have-read-active-file))
- (gnus-message 5 "%sdone" mesg)))))
+ (if (not (gnus-check-server method))
+ ()
+ (cond
+ ((and (eq gnus-read-active-file 'some)
+ (gnus-check-backend-function 'retrieve-groups (car method)))
+ (let ((newsrc (cdr gnus-newsrc-alist))
+ (gmethod (gnus-server-get-method nil method))
+ groups)
+ (while newsrc
+ (and (gnus-server-equal
+ (gnus-find-method-for-group
+ (car (car newsrc)) (car newsrc))
+ gmethod)
+ (setq groups (cons (gnus-group-real-name
+ (car (car newsrc))) groups)))
+ (setq newsrc (cdr newsrc)))
+ (gnus-check-server method)
+ (setq list-type (gnus-retrieve-groups groups method))
+ (cond ((not list-type)
+ (gnus-message
+ 1 "Cannot read partial active file from %s server."
+ (car method))
+ (ding)
+ (sit-for 2))
+ ((eq list-type 'active)
+ (gnus-active-to-gnus-format method gnus-active-hashtb))
+ (t
+ (gnus-groups-to-gnus-format method gnus-active-hashtb)))))
+ (t
+ (if (not (gnus-request-list method))
+ (progn
+ (gnus-message 1 "Cannot read active file from %s server."
+ (car method))
+ (ding))
+ (gnus-active-to-gnus-format method)
+ ;; We mark this active file as read.
+ (setq gnus-have-read-active-file
+ (cons method gnus-have-read-active-file))
+ (gnus-message 5 "%sdone" mesg))))))
(setq methods (cdr methods))))))
;; Read an active file and place the results in `gnus-active-hashtb'.
(and winconf (set-window-configuration winconf))
(set-buffer gnus-server-buffer)
(gnus-server-update-server (gnus-server-server-name))
+ (gnus-server-list-servers)
(gnus-server-position-cursor)))
(defun gnus-server-read-server (server)
(concat gnus-kill-files-directory group "."
gnus-score-file-suffix)
(concat gnus-kill-files-directory
- (gnus-replace-chars-in-string group ?. ?/)
+ (gnus-replace-chars-in-string group ?. ?/ ?: ?/)
"/" gnus-score-file-suffix)))))
(and (member localscore ofiles)
(delete localscore ofiles))
(insert-buffer-substring nntp-server-buffer)
(goto-char (point-min))
(while (re-search-forward
- "^X-Gnus-Newsgroup:"
+ (concat "^" nnfolder-article-marker)
(save-excursion (search-forward "\n\n" nil t) (point)) t)
(delete-region (progn (beginning-of-line) (point))
(progn (forward-line 1) (point))))
(let ((buf (current-buffer))
result)
(goto-char (point-min))
- (if (looking-at "X-From-Line: ")
- (replace-match "From ")
- (insert "From nobody " (current-time-string) "\n"))
+ (cond ((looking-at "X-From-Line: ")
+ (replace-match "From "))
+ ((not (looking-at "From "))
+ (insert "From nobody " (current-time-string) "\n")))
(and
(nnfolder-request-list)
(save-excursion
(goto-char (point-min))
(search-forward "\n\n" nil t)
(forward-line -1)
- (while (re-search-backward "^X-Gnus-Newsgroup: " nil t)
+ (while (re-search-backward (concat "^" nnfolder-article-marker) nil t)
(delete-region (point) (progn (forward-line 1) (point))))
(setq result (car (nnfolder-save-mail (and (stringp group) group)))))
(save-excursion
(search-forward "\n\n" nil t)
(forward-line -1)
(while (search-backward (concat "\n" nnfolder-article-marker) nil t)
- (delete-region (point) (progn (forward-line 1) (point))))
+ (delete-region (1+ (point)) (progn (forward-line 2) (point))))
;; Insert the new newsgroup marker.
(nnfolder-possibly-change-group (car group-art))
(setq nntp-current-server server)
(or (nntp-server-opened server)
(progn
- (if (member server nntp-timeout-servers)
+ (if (member nntp-address nntp-timeout-servers)
nil
(run-hooks 'nntp-prepare-server-hook)
(nntp-open-server-semi-internal nntp-address nntp-port-number))))))
(kill-buffer proc))
(setq nntp-server-alist (cdr nntp-server-alist)))
(setq nntp-current-server nil
+ nntp-timeout-servers nil
nntp-async-group-alist nil)))
(defun nntp-server-opened (&optional server)
(lambda ()
(nntp-kill-connection server))
nntp-connection-timeout nil)))))))
- (setq nntp-status-string "")
- (message "nntp: Connecting to server on %s..." server)
- (cond ((and server (nntp-open-server-internal server service))
- (setq nntp-address server)
- (setq status
- (condition-case nil
- (nntp-wait-for-response "^[23].*\r?\n" 'slow)
- (error nil)
- (quit nil)))
- (or status (nntp-close-server-internal server))
- (and nntp-server-process
- (progn
- (set-process-sentinel
- nntp-server-process 'nntp-default-sentinel)
- ;; You can send commands at startup like AUTHINFO here.
- ;; Added by Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
- (run-hooks 'nntp-server-opened-hook))))
- ((null server)
- (setq nntp-status-string "NNTP server is not specified."))
- (t ; We couldn't open the server.
- (setq nntp-timeout-servers (cons server nntp-timeout-servers))))
- (and timer (cancel-timer timer))
- (message "")
- (or status
- (setq nntp-current-server nil
- nntp-async-number nil))
- status))
+ (save-excursion
+ (set-buffer nntp-server-buffer)
+ (setq nntp-status-string "")
+ (message "nntp: Connecting to server on %s..." server)
+ (cond ((and server (nntp-open-server-internal server service))
+ (setq nntp-address server)
+ (setq status
+ (condition-case nil
+ (nntp-wait-for-response "^[23].*\r?\n" 'slow)
+ (error nil)
+ (quit nil)))
+ (or status (nntp-close-server-internal server))
+ (and nntp-server-process
+ (progn
+ (set-process-sentinel
+ nntp-server-process 'nntp-default-sentinel)
+ ;; You can send commands at startup like AUTHINFO here.
+ ;; Added by Hallvard B Furuseth <h.b.furuseth@usit.uio.no>
+ (run-hooks 'nntp-server-opened-hook))))
+ ((null server)
+ (setq nntp-status-string "NNTP server is not specified."))
+ (t ; We couldn't open the server.
+ (setq nntp-status-string
+ (buffer-substring (point-min) (point-max)))
+ (setq nntp-timeout-servers (cons server nntp-timeout-servers))))
+ (and timer (cancel-timer timer))
+ (message "")
+ (or status
+ (setq nntp-current-server nil
+ nntp-async-number nil))
+ status)))
(defun nntp-open-server-internal (server &optional service)
"Open connection to news server on SERVER by SERVICE (default is nntp)."