*** pub/sgnus/lisp/browse-url.el Sat Apr 20 02:42:34 1996 --- sgnus/lisp/browse-url.el Sun Apr 21 18:31:48 1996 *************** *** 5,11 **** ;; Author: Denis Howe ;; Maintainer: Denis Howe ;; Created: 03 Apr 1995 ! ;; Version: 0.26 13 Jan 1996 ;; Keywords: hypertext ;; X-Home page: http://wombat.doc.ic.ac.uk/ --- 5,11 ---- ;; Author: Denis Howe ;; Maintainer: Denis Howe ;; Created: 03 Apr 1995 ! ;; Version: 0.30 23 Mar 1996 ;; Keywords: hypertext ;; X-Home page: http://wombat.doc.ic.ac.uk/ *************** *** 138,147 **** ;; (add-hook 'dired-mode-hook ;; (function (lambda () ;; (local-set-key "\C-c\C-zf" 'browse-url-of-dired-file)))) ! ;; (if (boundp 'browse-url-browser-function) ! ;; (global-set-key "\C-c\C-zu" browse-url-browser-function) ! ;; (eval-after-load "browse-url" ! ;; '(global-set-key "\C-c\C-zu" browse-url-browser-function))) ;; To use the Emacs w3 browser when not running under X11: ;; (or (eq window-system 'x) --- 138,147 ---- ;; (add-hook 'dired-mode-hook ;; (function (lambda () ;; (local-set-key "\C-c\C-zf" 'browse-url-of-dired-file)))) ! ! ;; To browse URLs in mail messages by clicking mouse-2: ! ;; (add-hook 'rmail-mode-hook (function (lambda () ; rmail-mode startup ! ;; (define-key rmail-mode-map [mouse-2] 'browse-url-at-mouse)))) ;; To use the Emacs w3 browser when not running under X11: ;; (or (eq window-system 'x) *************** *** 173,180 **** ;; ;; (add-hook 'browse-url-of-file-hook 'browse-url-netscape-reload) ! ;; You may also want to customise browse-url-netscape-arguments, eg. ! ;; ;; (setq browse-url-netscape-arguments '("-install")) ;; ;; or similarly for the other browsers. --- 173,179 ---- ;; ;; (add-hook 'browse-url-of-file-hook 'browse-url-netscape-reload) ! ;; You may also want to customise browse-url-netscape-arguments, e.g. ;; (setq browse-url-netscape-arguments '("-install")) ;; ;; or similarly for the other browsers. *************** *** 285,293 **** --- 284,308 ---- ;; run Lynx in an Emacs buffer under terminal-emulator. ;; Thanks Jari Aalto + ;; 0.27 27 Feb 1996 + ;; Changed event-buffer and event-point from macros to functions. + ;; Other fixes for byte-compilation. + + ;; 0.28 07 Mar 1996 + ;; browse-url-lynx-emacs uses term.el instead of terminal.el. + + ;; 0.29 13 Mar 1996 + ;; Added browse-url-CCI-host. Thanks Greg Marr . + + ;; 0.30 23 Mar 1996 + ;; Contact/start Netscape in the background. + ;; Thanks Per Abrahamsen + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; Code: + (eval-when-compile (require 'dired)) + (defvar browse-url-regexp "\\(https?://\\|ftp://\\|gopher://\\|telnet://\\|wais://\\|file:/\\|s?news:\\|mailto:\\)[^]\t\n \"'()<>[^`{}]*[^]\t\n \"'()<>[^`{}.,;]+" "A regular expression probably matching a URL.") *************** *** 345,350 **** --- 360,370 ---- This can be any number between 1024 and 65535 but must correspond to the value set in the browser.") + (defvar browse-url-CCI-host "localhost" + "*Host to access XMosaic via CCI. + This should be the host name of the machine running XMosaic with CCI + enabled. The port number should be set in `browse-url-CCI-port'.") + ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; URL input *************** *** 385,397 **** ;; Define these if not already defined (XEmacs compatibility) ! (or (fboundp 'event-buffer) ! (defmacro event-buffer (event) ! `(window-buffer (posn-window (event-start ,event))))) ! ! (or (fboundp 'event-point) ! (defmacro event-point (event) ! `(posn-point (event-start ,event)))) (defun browse-url-at-mouse (event) "Ask a WWW browser to load a URL clicked with the mouse. --- 405,419 ---- ;; Define these if not already defined (XEmacs compatibility) ! (eval-and-compile ! (or (fboundp 'event-buffer) ! (defun event-buffer (event) ! (window-buffer (posn-window (event-start event)))))) ! ! (eval-and-compile ! (or (fboundp 'event-point) ! (defun event-point (event) ! (posn-point (event-start event))))) (defun browse-url-at-mouse (event) "Ask a WWW browser to load a URL clicked with the mouse. *************** *** 526,549 **** (list (not (eq (null browse-url-new-window-p) (null current-prefix-arg)))))) (let ((process (apply 'start-process ! (concat "netscape " url) nil ! browse-url-netscape-command ! (append browse-url-netscape-arguments ! (if new-window '("-noraise")) ! (list "-remote" ! (concat "openURL(" url ! (if new-window ",new-window") ! ")")))))) ! (set-process-sentinel ! process ! `(lambda (process change) ! (or (eq (process-exit-status process) 0) ! (progn ! ;; Netscape not running - start it ! (message "Starting Netscape...") ! (apply 'start-process (concat "netscape" ,url) nil ! browse-url-netscape-command ! (append browse-url-netscape-arguments (list ,url))))))))) (defun browse-url-netscape-reload () "Ask Netscape to reload its current document." --- 548,574 ---- (list (not (eq (null browse-url-new-window-p) (null current-prefix-arg)))))) (let ((process (apply 'start-process ! (concat "netscape " url) nil ! browse-url-netscape-command ! (append browse-url-netscape-arguments ! (if new-window '("-noraise")) ! (list "-remote" ! (concat "openURL(" url ! (if new-window ",new-window") ! ")")))))) ! (set-process-sentinel process ! (list 'lambda '(process change) ! (list 'browse-url-netscape-sentinel 'process url))))) ! ! (defun browse-url-netscape-sentinel (process url) ! "Handle a change to the process communicating with Netscape." ! (or (eq (process-exit-status process) 0) ! (progn ! ;; Netscape not running - start it ! (message "Starting Netscape...") ! (apply 'start-process (concat "netscape" url) nil ! browse-url-netscape-command ! (append browse-url-netscape-arguments (list url)))))) (defun browse-url-netscape-reload () "Ask Netscape to reload its current document." *************** *** 610,616 **** (list (not (eq (null browse-url-new-window-p) (null current-prefix-arg)))))) (open-network-stream "browse-url" " *browse-url*" ! "localhost" browse-url-CCI-port) ;; Todo: start browser if fails (process-send-string "browse-url" (concat "get url (" url ") output " --- 635,641 ---- (list (not (eq (null browse-url-new-window-p) (null current-prefix-arg)))))) (open-network-stream "browse-url" " *browse-url*" ! browse-url-CCI-host browse-url-CCI-port) ;; Todo: start browser if fails (process-send-string "browse-url" (concat "get url (" url ") output " *************** *** 640,651 **** (interactive (browse-url-interactive-arg "Lynx URL: ")) (start-process (concat "lynx" url) nil "xterm" "-e" "lynx" url)) (defun browse-url-lynx-emacs (url) "Ask the Lynx WWW browser to load URL. ! Default to the URL around or before point. A new Lynx process is run ! in an Emacs buffer using terminal-emulator." (interactive (browse-url-interactive-arg "Lynx URL: ")) (let ((system-uses-terminfo t)) ; Lynx uses terminfo (terminal-emulator "*browse-url*" "lynx" (list url)))) (provide 'browse-url) --- 665,684 ---- (interactive (browse-url-interactive-arg "Lynx URL: ")) (start-process (concat "lynx" url) nil "xterm" "-e" "lynx" url)) + (eval-when-compile (require 'term)) + (defun browse-url-lynx-emacs (url) "Ask the Lynx WWW browser to load URL. ! Default to the URL around or before point. Run a new Lynx process in ! an Emacs buffer." (interactive (browse-url-interactive-arg "Lynx URL: ")) (let ((system-uses-terminfo t)) ; Lynx uses terminfo + (if (fboundp 'make-term) + (let ((term-term-name "vt100")) + (set-buffer (make-term "browse-url" "lynx" nil url)) + (term-mode) + (term-char-mode) + (switch-to-buffer "*browse-url*"))) (terminal-emulator "*browse-url*" "lynx" (list url)))) (provide 'browse-url) *** pub/sgnus/lisp/gnus-msg.el Sat Apr 20 02:42:38 1996 --- sgnus/lisp/gnus-msg.el Sun Apr 21 20:20:15 1996 *************** *** 235,240 **** --- 235,243 ---- (interactive "P") (gnus-set-global-variables) (let ((articles (gnus-summary-work-articles n)) + (message-post-method + `(lambda (arg) + (gnus-post-method nil ,gnus-newsgroup-name))) article) (while (setq article (pop articles)) (when (gnus-summary-select-article t nil nil article) *************** *** 267,280 **** (or (memq gnus-article-copy gnus-buffer-list) (setq gnus-buffer-list (cons gnus-article-copy gnus-buffer-list))) (let ((article-buffer (or article-buffer gnus-article-buffer))) ! (if (and (get-buffer article-buffer) ! (buffer-name (get-buffer article-buffer))) ! (save-excursion ! (set-buffer article-buffer) (widen) (copy-to-buffer gnus-article-copy (point-min) (point-max)) (gnus-set-text-properties (point-min) (point-max) ! nil gnus-article-copy))) gnus-article-copy)) (defun gnus-post-news (post &optional group header article-buffer yank subject --- 270,284 ---- (or (memq gnus-article-copy gnus-buffer-list) (setq gnus-buffer-list (cons gnus-article-copy gnus-buffer-list))) (let ((article-buffer (or article-buffer gnus-article-buffer))) ! (when (and (get-buffer article-buffer) ! (buffer-name (get-buffer article-buffer))) ! (save-excursion ! (set-buffer article-buffer) ! (save-restriction (widen) (copy-to-buffer gnus-article-copy (point-min) (point-max)) (gnus-set-text-properties (point-min) (point-max) ! nil gnus-article-copy)))) gnus-article-copy)) (defun gnus-post-news (post &optional group header article-buffer yank subject *************** *** 508,515 **** (gnus-inews-yank-articles yank))))) (defun gnus-summary-reply-with-original (n) ! "Reply mail to news author with original article. ! Customize the variable gnus-mail-reply-method to use another mailer." (interactive "P") (gnus-summary-reply (gnus-summary-work-articles n))) --- 512,518 ---- (gnus-inews-yank-articles yank))))) (defun gnus-summary-reply-with-original (n) ! "Reply mail to news author with original article." (interactive "P") (gnus-summary-reply (gnus-summary-work-articles n))) *************** *** 645,654 **** (buffer-substring (save-excursion (re-search-backward "[ \t\n]" nil t) (1+ (point))) (save-excursion (re-search-forward "[ \t\n]" nil t) (1- (point)))))) ! (and address ! (progn ! (switch-to-buffer gnus-summary-buffer) ! (gnus-mail-reply yank address))))) (defun gnus-bug () "Send a bug report to the Gnus maintainers." --- 648,658 ---- (buffer-substring (save-excursion (re-search-backward "[ \t\n]" nil t) (1+ (point))) (save-excursion (re-search-forward "[ \t\n]" nil t) (1- (point)))))) ! (when address ! (switch-to-buffer gnus-summary-buffer) ! (message-reply address) ! (when yank ! (gnus-inews-yank-articles yank))))) (defun gnus-bug () "Send a bug report to the Gnus maintainers." *** pub/sgnus/lisp/gnus-score.el Sat Apr 20 02:42:40 1996 --- sgnus/lisp/gnus-score.el Sun Apr 21 18:31:52 1996 *************** *** 726,732 **** (defun gnus-score-change-score-file (file) "Change current score alist." (interactive ! (list (read-file-name "Edit score file: " gnus-kill-files-directory))) (gnus-score-load-file file) (gnus-set-mode-line 'summary)) --- 726,732 ---- (defun gnus-score-change-score-file (file) "Change current score alist." (interactive ! (list (read-file-name "Change to score file: " gnus-kill-files-directory))) (gnus-score-load-file file) (gnus-set-mode-line 'summary)) *** pub/sgnus/lisp/gnus-vis.el Sat Apr 20 02:42:43 1996 --- sgnus/lisp/gnus-vis.el Sun Apr 21 19:03:16 1996 *************** *** 31,36 **** --- 31,37 ---- (require 'easymenu) (require 'custom) (require 'browse-url) + (require 'gnus-score) (eval-when-compile (require 'cl)) (defvar gnus-group-menu-hook nil *************** *** 321,327 **** '("Group" ["Read" gnus-group-read-group (gnus-group-group-name)] ["Select" gnus-group-select-group (gnus-group-group-name)] ! ["See old articles" (gnus-group-select-group 'all) :keys "C-u SPC"] ["Catch up" gnus-group-catchup-current (gnus-group-group-name)] ["Catch up all articles" gnus-group-catchup-current-all (gnus-group-group-name)] --- 322,329 ---- '("Group" ["Read" gnus-group-read-group (gnus-group-group-name)] ["Select" gnus-group-select-group (gnus-group-group-name)] ! ["See old articles" (gnus-group-select-group 'all) ! :keys "C-u SPC" :active (gnus-group-group-name)] ["Catch up" gnus-group-catchup-current (gnus-group-group-name)] ["Catch up all articles" gnus-group-catchup-current-all (gnus-group-group-name)] *************** *** 335,342 **** ["Fetch FAQ" gnus-group-fetch-faq (gnus-group-group-name)] ["Edit kill file" gnus-group-edit-local-kill (gnus-group-group-name)] ["Expire articles" gnus-group-expire-articles ! (gnus-group-group-name)] ["Set group level" gnus-group-set-current-level (gnus-group-group-name)] ["Select quick" gnus-group-quick-select-group (gnus-group-group-name)] --- 337,349 ---- ["Fetch FAQ" gnus-group-fetch-faq (gnus-group-group-name)] ["Edit kill file" gnus-group-edit-local-kill (gnus-group-group-name)] + ;; Actually one should check, if any of the marked groups gives t for + ;; (gnus-check-backend-function 'request-expire-articles ...) ["Expire articles" gnus-group-expire-articles ! (or (and (gnus-group-group-name) ! (gnus-check-backend-function ! 'request-expire-articles ! (gnus-group-group-name))) gnus-group-marked)] ["Set group level" gnus-group-set-current-level (gnus-group-group-name)] ["Select quick" gnus-group-quick-select-group (gnus-group-group-name)] *************** *** 350,381 **** ["List all groups" gnus-group-list-all-groups t] ["List killed groups" gnus-group-list-killed gnus-killed-list] ["List zombie groups" gnus-group-list-zombies gnus-zombie-list] ! ["List level" gnus-group-list-level t] ["Describe all groups" gnus-group-describe-all-groups t] ! ["Group apropos" gnus-group-apropos t] ! ["Group and description apropos" gnus-group-description-apropos t] ["List groups matching..." gnus-group-list-matching t] ["List all groups matching..." gnus-group-list-all-matching t] ["List active file" gnus-group-list-active t]) ("Sort" ! ["Default sort" gnus-group-sort-groups t] ! ["Sort by method" gnus-group-sort-groups-by-method t] ! ["Sort by rank" gnus-group-sort-groups-by-rank t] ! ["Sort by score" gnus-group-sort-groups-by-score t] ! ["Sort by level" gnus-group-sort-groups-by-level t] ! ["Sort by unread" gnus-group-sort-groups-by-unread t] ! ["Sort by name" gnus-group-sort-groups-by-alphabet t]) ("Mark" ! ["Mark group" gnus-group-mark-group (gnus-group-group-name)] ! ["Unmark group" gnus-group-unmark-group (gnus-group-group-name)] ! ["Unmark all" gnus-group-unmark-all-groups t] ! ["Mark regexp" gnus-group-mark-regexp t] ! ["Mark region" gnus-group-mark-region t] ["Mark buffer" gnus-group-mark-buffer t] ! ["Execute command" gnus-group-universal-argument t]) ("Subscribe" ["Subscribe to random group" gnus-group-unsubscribe-group t] ! ["Kill all newsgroups in region" gnus-group-kill-region t] ["Kill all zombie groups" gnus-group-kill-all-zombies gnus-zombie-list] ["Kill all groups on level..." gnus-group-kill-level t]) --- 357,401 ---- ["List all groups" gnus-group-list-all-groups t] ["List killed groups" gnus-group-list-killed gnus-killed-list] ["List zombie groups" gnus-group-list-zombies gnus-zombie-list] ! ["List level..." gnus-group-list-level t] ["Describe all groups" gnus-group-describe-all-groups t] ! ["Group apropos..." gnus-group-apropos t] ! ["Group and description apropos..." gnus-group-description-apropos t] ["List groups matching..." gnus-group-list-matching t] ["List all groups matching..." gnus-group-list-all-matching t] ["List active file" gnus-group-list-active t]) ("Sort" ! ["Default sort" gnus-group-sort-groups ! (not gnus-topic-mode)] ! ["Sort by method" gnus-group-sort-groups-by-method ! (not gnus-topic-mode)] ! ["Sort by rank" gnus-group-sort-groups-by-rank ! (not gnus-topic-mode)] ! ["Sort by score" gnus-group-sort-groups-by-score ! (not gnus-topic-mode)] ! ["Sort by level" gnus-group-sort-groups-by-level ! (not gnus-topic-mode)] ! ["Sort by unread" gnus-group-sort-groups-by-unread ! (not gnus-topic-mode)] ! ["Sort by name" gnus-group-sort-groups-by-alphabet ! (not gnus-topic-mode)]) ("Mark" ! ["Mark group" gnus-group-mark-group ! (and (gnus-group-group-name) ! (not (memq (gnus-group-group-name) gnus-group-marked)))] ! ["Unmark group" gnus-group-unmark-group ! (and (gnus-group-group-name) ! (memq (gnus-group-group-name) gnus-group-marked))] ! ["Unmark all" gnus-group-unmark-all-groups gnus-group-marked] ! ["Mark regexp..." gnus-group-mark-regexp t] ! ["Mark region" gnus-group-mark-region (region-exists-p)] ["Mark buffer" gnus-group-mark-buffer t] ! ["Execute command" gnus-group-universal-argument ! (or gnus-group-marked (gnus-group-group-name))]) ("Subscribe" ["Subscribe to random group" gnus-group-unsubscribe-group t] ! ["Kill all newsgroups in region" gnus-group-kill-region ! (region-exists-p)] ["Kill all zombie groups" gnus-group-kill-all-zombies gnus-zombie-list] ["Kill all groups on level..." gnus-group-kill-level t]) *************** *** 388,395 **** ["Make a kiboze group" gnus-group-make-kiboze-group t] ["Make a virtual group" gnus-group-make-empty-virtual t] ["Add a group to a virtual" gnus-group-add-to-virtual t] ! ["Rename group" gnus-group-rename-group t] ! ["Delete group" gnus-group-delete-group t]) ("Editing groups" ["Parameters" gnus-group-edit-group-parameters (gnus-group-group-name)] --- 408,419 ---- ["Make a kiboze group" gnus-group-make-kiboze-group t] ["Make a virtual group" gnus-group-make-empty-virtual t] ["Add a group to a virtual" gnus-group-add-to-virtual t] ! ["Rename group" gnus-group-rename-group ! (gnus-check-backend-function ! 'request-rename-group (gnus-group-group-name))] ! ["Delete group" gnus-group-delete-group ! (gnus-check-backend-function ! 'request-delete-group (gnus-group-group-name))]) ("Editing groups" ["Parameters" gnus-group-edit-group-parameters (gnus-group-group-name)] *************** *** 397,403 **** (gnus-group-group-name)] ["Info" gnus-group-edit-group (gnus-group-group-name)]) ("Score file" ! ["Flush cache" gnus-score-flush-cache t]) ("Move" ["Next" gnus-group-next-group t] ["Previous" gnus-group-prev-group t] --- 421,428 ---- (gnus-group-group-name)] ["Info" gnus-group-edit-group (gnus-group-group-name)]) ("Score file" ! ["Flush cache" gnus-score-flush-cache ! (or gnus-score-cache gnus-short-name-score-file-cache)]) ("Move" ["Next" gnus-group-next-group t] ["Previous" gnus-group-prev-group t] *************** *** 411,417 **** ["Best unread group" gnus-group-best-unread-group t]) ["Transpose" gnus-group-transpose-groups (gnus-group-group-name)] ! ["Read a directory as a group" gnus-group-enter-directory t] )) (easy-menu-define --- 436,442 ---- ["Best unread group" gnus-group-best-unread-group t]) ["Transpose" gnus-group-transpose-groups (gnus-group-group-name)] ! ["Read a directory as a group..." gnus-group-enter-directory t] )) (easy-menu-define *************** *** 419,427 **** '("Misc" ["Send a bug report" gnus-bug t] ["Send a mail" gnus-group-mail t] ! ["Post an article" gnus-group-post-news t] ["Customize score file" gnus-score-customize ! (not (string-match "XEmacs" emacs-version)) ] ["Check for new news" gnus-group-get-new-news t] ["Activate all groups" gnus-activate-all-groups t] ["Delete bogus groups" gnus-group-check-bogus-groups t] --- 444,452 ---- '("Misc" ["Send a bug report" gnus-bug t] ["Send a mail" gnus-group-mail t] ! ["Post an article..." gnus-group-post-news t] ["Customize score file" gnus-score-customize ! (not (string-match "XEmacs" emacs-version))] ["Check for new news" gnus-group-get-new-news t] ["Activate all groups" gnus-activate-all-groups t] ["Delete bogus groups" gnus-group-check-bogus-groups t] *************** *** 430,436 **** ["Read init file" gnus-group-read-init-file t] ["Browse foreign server" gnus-group-browse-foreign-server t] ["Enter server buffer" gnus-group-enter-server-mode t] ! ["Expire expirable articles" gnus-group-expire-all-groups t] ["Generate any kiboze groups" nnkiboze-generate-groups t] ["Gnus version" gnus-version t] ["Save .newsrc files" gnus-group-save-newsrc t] --- 455,461 ---- ["Read init file" gnus-group-read-init-file t] ["Browse foreign server" gnus-group-browse-foreign-server t] ["Enter server buffer" gnus-group-enter-server-mode t] ! ["Expire all expirable articles" gnus-group-expire-all-groups t] ["Generate any kiboze groups" nnkiboze-generate-groups t] ["Gnus version" gnus-version t] ["Save .newsrc files" gnus-group-save-newsrc t] *************** *** 464,476 **** ("Mark" ("Read" ["Mark as read" gnus-summary-mark-as-read-forward t] ! ["Mark same subject and select" gnus-summary-kill-same-subject-and-select t] ["Mark same subject" gnus-summary-kill-same-subject t] ["Catchup" gnus-summary-catchup t] ["Catchup all" gnus-summary-catchup-all t] ["Catchup to here" gnus-summary-catchup-to-here t] ! ["Catchup region" gnus-summary-mark-region-as-read t] ! ["Mark excluded" gnus-summary-limit-mark-exlcuded-as-read t]) ("Various" ["Tick" gnus-summary-tick-article-forward t] ["Mark as dormant" gnus-summary-mark-as-dormant t] --- 489,503 ---- ("Mark" ("Read" ["Mark as read" gnus-summary-mark-as-read-forward t] ! ["Mark same subject and select" ! gnus-summary-kill-same-subject-and-select t] ["Mark same subject" gnus-summary-kill-same-subject t] ["Catchup" gnus-summary-catchup t] ["Catchup all" gnus-summary-catchup-all t] ["Catchup to here" gnus-summary-catchup-to-here t] ! ["Catchup region" gnus-summary-mark-region-as-read ! (region-exists-p)] ! ["Mark excluded" gnus-summary-limit-mark-excluded-as-read t]) ("Various" ["Tick" gnus-summary-tick-article-forward t] ["Mark as dormant" gnus-summary-mark-as-dormant t] *************** *** 479,496 **** ["Set bookmark" gnus-summary-set-bookmark t] ["Remove bookmark" gnus-summary-remove-bookmark t]) ("Limit" ! ["Unread" gnus-summary-limit-to-unread t] ! ["Marks" gnus-summary-limit-to-marks t] ["Score" gnus-summary-limit-to-score t] ! ["Subject" gnus-summary-limit-to-subject t] ! ["Author" gnus-summary-limit-to-author t] ["Non-dormant" gnus-summary-limit-exclude-dormant t] ["Articles" gnus-summary-limit-to-articles t] ["Pop limit" gnus-summary-pop-limit t] ["Show dormant" gnus-summary-limit-include-dormant t] ["Hide childless dormant" gnus-summary-limit-exclude-childless-dormant t] ! ["Hide thread" gnus-summary-limit-exclude-thread t] ["Show expunged" gnus-summary-show-all-expunged t]) ("Process mark" ["Set mark" gnus-summary-mark-as-processable t] --- 506,523 ---- ["Set bookmark" gnus-summary-set-bookmark t] ["Remove bookmark" gnus-summary-remove-bookmark t]) ("Limit" ! ["Marks..." gnus-summary-limit-to-marks t] ! ["Subject..." gnus-summary-limit-to-subject t] ! ["Author..." gnus-summary-limit-to-author t] ["Score" gnus-summary-limit-to-score t] ! ["Unread" gnus-summary-limit-to-unread t] ["Non-dormant" gnus-summary-limit-exclude-dormant t] ["Articles" gnus-summary-limit-to-articles t] ["Pop limit" gnus-summary-pop-limit t] ["Show dormant" gnus-summary-limit-include-dormant t] ["Hide childless dormant" gnus-summary-limit-exclude-childless-dormant t] ! ;;["Hide thread" gnus-summary-limit-exclude-thread t] ["Show expunged" gnus-summary-show-all-expunged t]) ("Process mark" ["Set mark" gnus-summary-mark-as-processable t] *************** *** 498,505 **** ["Remove all marks" gnus-summary-unmark-all-processable t] ["Mark above" gnus-uu-mark-over t] ["Mark series" gnus-uu-mark-series t] ! ["Mark region" gnus-uu-mark-region t] ! ["Mark by regexp" gnus-uu-mark-by-regexp t] ["Mark all" gnus-uu-mark-all t] ["Mark buffer" gnus-uu-mark-buffer t] ["Mark sparse" gnus-uu-mark-sparse t] --- 525,532 ---- ["Remove all marks" gnus-summary-unmark-all-processable t] ["Mark above" gnus-uu-mark-over t] ["Mark series" gnus-uu-mark-series t] ! ["Mark region" gnus-uu-mark-region (region-exists-p)] ! ["Mark by regexp..." gnus-uu-mark-by-regexp t] ["Mark all" gnus-uu-mark-all t] ["Mark buffer" gnus-uu-mark-buffer t] ["Mark sparse" gnus-uu-mark-sparse t] *************** *** 550,560 **** ("Modes" ["Pick and read" gnus-pick-mode t] ["Binary" gnus-binary-mode t]) ! ["Filter articles" gnus-summary-execute-command t] ! ["Run command on subjects" gnus-summary-universal-argument t] ["Toggle line truncation" gnus-summary-toggle-truncation t] ["Expand window" gnus-summary-expand-window t] ! ["Expire expirable articles" gnus-summary-expire-articles t] ["Edit local kill file" gnus-summary-edit-local-kill t] ["Edit main kill file" gnus-summary-edit-global-kill t] )) --- 577,589 ---- ("Modes" ["Pick and read" gnus-pick-mode t] ["Binary" gnus-binary-mode t]) ! ["Filter articles..." gnus-summary-execute-command t] ! ["Run command on subjects..." gnus-summary-universal-argument t] ["Toggle line truncation" gnus-summary-toggle-truncation t] ["Expand window" gnus-summary-expand-window t] ! ["Expire expirable articles" gnus-summary-expire-articles ! (gnus-check-backend-function ! 'request-expire-articles gnus-newsgroup-name)] ["Edit local kill file" gnus-summary-edit-local-kill t] ["Edit main kill file" gnus-summary-edit-global-kill t] )) *************** *** 565,571 **** "Score" (nconc (list ! ["Enter score" gnus-summary-score-entry t]) (gnus-visual-score-map 'increase) (gnus-visual-score-map 'lower) '(("Mark" --- 594,600 ---- "Score" (nconc (list ! ["Enter score..." gnus-summary-score-entry t]) (gnus-visual-score-map 'increase) (gnus-visual-score-map 'lower) '(("Mark" *************** *** 576,590 **** ["Current score" gnus-summary-current-score t] ["Set score" gnus-summary-set-score t] ["Customize score file" gnus-score-customize t] ! ["Switch current score file" gnus-score-change-score-file t] ! ["Set mark below" gnus-score-set-mark-below t] ! ["Set expunge below" gnus-score-set-expunge-below t] ["Edit current score file" gnus-score-edit-current-scores t] ["Edit score file" gnus-score-edit-file t] ["Trace score" gnus-score-find-trace t] ["Rescore buffer" gnus-summary-rescore t] ! ["Increase score" gnus-summary-increase-score t] ! ["Lower score" gnus-summary-lower-score t])))) '(("Default header" ["Ask" (gnus-score-set-default 'gnus-score-default-header nil) --- 605,619 ---- ["Current score" gnus-summary-current-score t] ["Set score" gnus-summary-set-score t] ["Customize score file" gnus-score-customize t] ! ["Switch current score file..." gnus-score-change-score-file t] ! ["Set mark below..." gnus-score-set-mark-below t] ! ["Set expunge below..." gnus-score-set-expunge-below t] ["Edit current score file" gnus-score-edit-current-scores t] ["Edit score file" gnus-score-edit-file t] ["Trace score" gnus-score-find-trace t] ["Rescore buffer" gnus-summary-rescore t] ! ["Increase score..." gnus-summary-increase-score t] ! ["Lower score..." gnus-summary-lower-score t])))) '(("Default header" ["Ask" (gnus-score-set-default 'gnus-score-default-header nil) *************** *** 739,753 **** ["Pipe through a filter" gnus-summary-pipe-output t] ["Add to SOUP packet" gnus-soup-add-article t]) ("Backend" ! ["Respool article" gnus-summary-respool-article t] ! ["Move article" gnus-summary-move-article t] ! ["Copy article" gnus-summary-copy-article t] ! ["Crosspost article" gnus-summary-crosspost-article t] ! ["Import file" gnus-summary-import-article t] ! ["Edit article" gnus-summary-edit-article t] ! ["Delete article" gnus-summary-delete-article t] ["Query respool" gnus-summary-respool-query t] ! ["Delete expirable articles" gnus-summary-expire-articles-now t]) ("Extract" ["Uudecode" gnus-uu-decode-uu t] ["Uudecode and save" gnus-uu-decode-uu-and-save t] --- 768,791 ---- ["Pipe through a filter" gnus-summary-pipe-output t] ["Add to SOUP packet" gnus-soup-add-article t]) ("Backend" ! ["Respool article..." gnus-summary-respool-article t] ! ["Move article..." gnus-summary-move-article ! (gnus-check-backend-function ! 'request-move-article gnus-newsgroup-name)] ! ["Copy article..." gnus-summary-copy-article t] ! ["Crosspost article..." gnus-summary-crosspost-article ! (gnus-check-backend-function ! 'request-replace-article gnus-newsgroup-name)] ! ["Import file..." gnus-summary-import-article t] ! ["Edit article" gnus-summary-edit-article ! (not (gnus-group-read-only-p))] ! ["Delete article" gnus-summary-delete-article ! (gnus-check-backend-function ! 'request-expire-articles gnus-newsgroup-name)] ["Query respool" gnus-summary-respool-query t] ! ["Delete expirable articles" gnus-summary-expire-articles-now ! (gnus-check-backend-function ! 'request-expire-articles gnus-newsgroup-name)]) ("Extract" ["Uudecode" gnus-uu-decode-uu t] ["Uudecode and save" gnus-uu-decode-uu-and-save t] *************** *** 757,765 **** ["Binhex" gnus-uu-decode-binhex t] ["Postscript" gnus-uu-decode-postscript t]) ["Enter digest buffer" gnus-summary-enter-digest-group t] ! ["Isearch article" gnus-summary-isearch-article t] ! ["Search articles forward" gnus-summary-search-article-forward t] ! ["Search articles backward" gnus-summary-search-article-backward t] ["Beginning of the article" gnus-summary-beginning-of-article t] ["End of the article" gnus-summary-end-of-article t] ["Fetch parent of article" gnus-summary-refer-parent-article t] --- 795,803 ---- ["Binhex" gnus-uu-decode-binhex t] ["Postscript" gnus-uu-decode-postscript t]) ["Enter digest buffer" gnus-summary-enter-digest-group t] ! ["Isearch article..." gnus-summary-isearch-article t] ! ["Search articles forward..." gnus-summary-search-article-forward t] ! ["Search articles backward..." gnus-summary-search-article-backward t] ["Beginning of the article" gnus-summary-beginning-of-article t] ["End of the article" gnus-summary-end-of-article t] ["Fetch parent of article" gnus-summary-refer-parent-article t] *************** *** 806,814 **** ["Send bounced mail" gnus-summary-resend-bounced-mail t] ["Send a mail" gnus-summary-mail-other-window t] ["Uuencode and post" gnus-uu-post-news t] ! ("Draft" ! ["Send" gnus-summary-send-draft t] ! ["Send bounced" gnus-resend-bounced-mail t]) )) (run-hooks 'gnus-summary-menu-hook) )) --- 844,852 ---- ["Send bounced mail" gnus-summary-resend-bounced-mail t] ["Send a mail" gnus-summary-mail-other-window t] ["Uuencode and post" gnus-uu-post-news t] ! ;;("Draft" ! ;;["Send" gnus-summary-send-draft t] ! ;;["Send bounced" gnus-resend-bounced-mail t]) )) (run-hooks 'gnus-summary-menu-hook) )) *************** *** 1492,1498 **** (defun gnus-button-reply (address) ;; Reply to ADDRESS. ! (gnus-mail-reply t address)) (defun gnus-button-url (address) "Browse ADDRESS." --- 1530,1536 ---- (defun gnus-button-reply (address) ;; Reply to ADDRESS. ! (message-reply t address)) (defun gnus-button-url (address) "Browse ADDRESS." *** pub/sgnus/lisp/gnus.el Sat Apr 20 02:42:45 1996 --- sgnus/lisp/gnus.el Sun Apr 21 19:52:58 1996 *************** *** 1702,1714 **** "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.76" "Version number for this version of Gnus.") (defvar gnus-info-nodes ! '((gnus-group-mode "(gnus)The Group Buffer") ! (gnus-summary-mode "(gnus)The Summary Buffer") ! (gnus-article-mode "(gnus)The Article Buffer")) "Assoc list of major modes and related Info nodes.") (defvar gnus-group-buffer "*Group*") --- 1702,1714 ---- "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "September Gnus v0.77" "Version number for this version of Gnus.") (defvar gnus-info-nodes ! '((gnus-group-mode "(gnus)The Group Buffer") ! (gnus-summary-mode "(gnus)The Summary Buffer") ! (gnus-article-mode "(gnus)The Article Buffer")) "Assoc list of major modes and related Info nodes.") (defvar gnus-group-buffer "*Group*") *************** *** 9377,9388 **** (defun gnus-summary-find-next (&optional unread article backward) (if backward (gnus-summary-find-prev) ! (let* ((article (or article (gnus-summary-article-number))) (arts (gnus-data-find-list article)) result) ! (when (or (not gnus-summary-check-current) ! (not unread) ! (not (gnus-data-unread-p (car arts)))) (setq arts (cdr arts))) (when (setq result (if unread --- 9377,9390 ---- (defun gnus-summary-find-next (&optional unread article backward) (if backward (gnus-summary-find-prev) ! (let* ((dummy (gnus-summary-article-intangible-p)) ! (article (or article (gnus-summary-article-number))) (arts (gnus-data-find-list article)) result) ! (when (and (not dummy) ! (or (not gnus-summary-check-current) ! (not unread) ! (not (gnus-data-unread-p (car arts))))) (setq arts (cdr arts))) (when (setq result (if unread *************** *** 12325,12350 **** (gnus-simplify-subject-fuzzy (mail-header-subject (gnus-data-header (car data))))) (t nil))) articles) ! (if (not data) ! () ; This article doesn't exist. ! (while data ! (and (or (not top-subject) ! (string= top-subject ! (if (eq gnus-thread-operation-ignore-subject 'fuzzy) ! (gnus-simplify-subject-fuzzy ! (mail-header-subject ! (gnus-data-header (car data)))) ! (gnus-simplify-subject-re (mail-header-subject ! (gnus-data-header (car data))))))) ! (setq articles (cons (gnus-data-number (car data)) articles))) ! (if (and (setq data (cdr data)) ! (> (gnus-data-level (car data)) top-level)) ! () ! (setq data nil))) ! ;; Return the list of articles. ! (nreverse articles)))) (defun gnus-summary-rethread-current () "Rethread the thread the current article is part of." --- 12327,12352 ---- (gnus-simplify-subject-fuzzy (mail-header-subject (gnus-data-header (car data))))) (t nil))) + (end-point (save-excursion + (gnus-summary-go-to-next-thread) (point))) articles) ! (while (and data ! (< (gnus-data-pos (car data)) end-point)) ! (and (or (not top-subject) ! (string= top-subject ! (if (eq gnus-thread-operation-ignore-subject 'fuzzy) ! (gnus-simplify-subject-fuzzy (mail-header-subject ! (gnus-data-header (car data)))) ! (gnus-simplify-subject-re ! (mail-header-subject ! (gnus-data-header (car data))))))) ! (setq articles (cons (gnus-data-number (car data)) articles))) ! (unless (and (setq data (cdr data)) ! (> (gnus-data-level (car data)) top-level)) ! (setq data nil))) ! ;; Return the list of articles. ! (nreverse articles))) (defun gnus-summary-rethread-current () "Rethread the thread the current article is part of." *************** *** 13610,13615 **** --- 13612,13628 ---- gnus-inhibit-hiding (gnus-article-hide-headers))) + (defsubst gnus-article-header-rank () + "Give the rank of the string HEADER as given by `gnus-sorted-header-list'." + (let ((list gnus-sorted-header-list) + (i 0)) + (while list + (when (looking-at (car list)) + (setq list nil)) + (setq list (cdr list)) + (incf i)) + i)) + (defun gnus-article-hide-headers (&optional arg delete) "Toggle whether to hide unwanted headers and possibly sort them as well. If given a negative prefix, always show; if given a positive prefix, *************** *** 13676,13692 **** ;; Suggested by Sudish Joseph . (gnus-hide-text-type beg (point-max) 'headers))))))))) - (defsubst gnus-article-header-rank () - "Give the rank of the string HEADER as given by `gnus-sorted-header-list'." - (let ((list gnus-sorted-header-list) - (i 0)) - (while list - (when (looking-at (car list)) - (setq list nil)) - (setq list (cdr list)) - (incf i)) - i)) - (defun gnus-article-hide-boring-headers (&optional arg) "Toggle hiding of headers that aren't very interesting. If given a negative prefix, always show; if given a positive prefix, --- 13689,13694 ---- *************** *** 15021,15029 **** (gnus-server-extend-method group method)) (t method))) ! (if (equal (cadr method) "") ! method ! (gnus-server-add-address method)))))) (defun gnus-check-backend-function (func group) "Check whether GROUP supports function FUNC." --- 15023,15034 ---- (gnus-server-extend-method group method)) (t method))) ! (cond ((equal (cadr method) "") ! method) ! ((null (cadr method)) ! (list (car method) "")) ! (t ! (gnus-server-add-address method))))))) (defun gnus-check-backend-function (func group) "Check whether GROUP supports function FUNC." *************** *** 15829,15835 **** (unless (equal method gnus-message-archive-method) (gnus-error 1 "Cannot read active file from %s server." (car method))) ! (gnus-active-to-gnus-format method) ;; We mark this active file as read. (push method gnus-have-read-active-file) (gnus-message 5 "%sdone" mesg)))))) --- 15834,15840 ---- (unless (equal method gnus-message-archive-method) (gnus-error 1 "Cannot read active file from %s server." (car method))) ! (gnus-active-to-gnus-format method gnus-active-hashtb) ;; We mark this active file as read. (push method gnus-have-read-active-file) (gnus-message 5 "%sdone" mesg)))))) *** pub/sgnus/lisp/message.el Sat Apr 20 02:42:47 1996 --- sgnus/lisp/message.el Sun Apr 21 20:20:14 1996 *************** *** 1144,1151 **** ;; We must not do that for a resend ;; because we would find the original addresses. ;; For a resend, include the specific addresses. ! (or resend-to-addresses ! '("-t"))))) (when message-interactive (save-excursion (set-buffer errbuf) --- 1144,1152 ---- ;; We must not do that for a resend ;; because we would find the original addresses. ;; For a resend, include the specific addresses. ! (if resend-to-addresses ! (list resend-to-addresses) ! '("-t"))))) (when message-interactive (save-excursion (set-buffer errbuf) *************** *** 2082,2089 **** (message-setup `((Subject . ,subject) ,@follow-to ! (References . ,(concat (or references "") (and references " ") ! (or message-id "")))) cur))) ;;;###autoload --- 2083,2092 ---- (message-setup `((Subject . ,subject) ,@follow-to ! ,@(if (or references message-id) ! `((References . ,(concat (or references "") (and references " ") ! (or message-id "")))) ! nil)) cur))) ;;;###autoload *************** *** 2341,2353 **** This only makes sense if the current message is a bounce message than contains some mail you have written which has been bounced back to you." ! (interactive "P") ! (let ((cur (current-buffer))) (message-pop-to-buffer "*mail message*") (insert-buffer-substring cur) (undo-boundary) (goto-char (point-min)) ! (or (and (re-search-forward mail-unsent-separator nil t) (forward-line 1)) (and (search-forward "\n\n" nil t) (re-search-forward "^Return-Path:.*\n" nil t))) --- 2344,2369 ---- This only makes sense if the current message is a bounce message than contains some mail you have written which has been bounced back to you." ! (interactive) ! (let ((cur (current-buffer)) ! boundary) (message-pop-to-buffer "*mail message*") (insert-buffer-substring cur) (undo-boundary) + (message-narrow-to-head) + (if (and (mail-fetch-field "Mime-Version") + (setq boundary (mail-fetch-field "Content-Type"))) + (if (string-match "boundary=\"\\([^\"]+\\)\"" boundary) + (setq boundary (concat (match-string 1 boundary) " *\n" + "Content-Type: message/rfc822")) + (setq boundary nil))) + (widen) (goto-char (point-min)) ! (search-forward "\n\n" nil t) ! (or (and boundary ! (re-search-forward boundary nil t) ! (forward-line 2)) ! (and (re-search-forward mail-unsent-separator nil t) (forward-line 1)) (and (search-forward "\n\n" nil t) (re-search-forward "^Return-Path:.*\n" nil t))) *** pub/sgnus/lisp/nndir.el Sat Apr 20 02:42:47 1996 --- sgnus/lisp/nndir.el Sun Apr 21 19:39:38 1996 *************** *** 90,101 **** (nnml-retrieve-headers 0 nndir-current-group 0 0) (nnmh-request-article 0 nndir-current-group 0 0) (nnmh-request-group nndir-current-group 0 0) ! (nnmh-close-group nndir-current-group 0)) ! ! (nnoo-import nndir ! (nnmh ! nnmh-request-list ! nnmh-request-newgroups)) (provide 'nndir) --- 90,98 ---- (nnml-retrieve-headers 0 nndir-current-group 0 0) (nnmh-request-article 0 nndir-current-group 0 0) (nnmh-request-group nndir-current-group 0 0) ! (nnmh-close-group nndir-current-group 0) ! (nnmh-request-list (nnoo-current-server 'nndir) nndir-directory) ! (nnmh-request-newsgroups (nnoo-current-server 'nndir) nndir-directory)) (provide 'nndir) *** pub/sgnus/lisp/nnmh.el Sat Apr 20 02:42:48 1996 --- sgnus/lisp/nnmh.el Sun Apr 21 19:39:38 1996 *************** *** 179,187 **** (nnmail-get-new-mail 'nnmh nil nnmh-directory group)) (deffoo nnmh-request-list (&optional server dir) ! (unless dir ! (nnheader-insert "") ! (setq dir (file-truename (file-name-as-directory nnmh-directory)))) (setq dir (expand-file-name dir)) ;; Recurse down all directories. (let ((dirs (and (file-readable-p dir) --- 179,193 ---- (nnmail-get-new-mail 'nnmh nil nnmh-directory group)) (deffoo nnmh-request-list (&optional server dir) ! (nnheader-insert "") ! (let ((nnmh-toplev ! (or dir (file-truename (file-name-as-directory nnmh-directory))))) ! (nnmh-request-list-1 nnmh-toplev)) ! (setq nnmh-group-alist (nnmail-get-active)) ! t) ! ! (defvar nnmh-toplev) ! (defun nnmh-request-list-1 (dir) (setq dir (expand-file-name dir)) ;; Recurse down all directories. (let ((dirs (and (file-readable-p dir) *************** *** 193,201 **** (when (and (not (string-match "/\\.\\.?$" dir)) (file-directory-p dir) (file-readable-p dir)) ! (nnmh-request-list nil dir)))) ;; For each directory, generate an active file line. ! (unless (string= (expand-file-name nnmh-directory) dir) (let ((files (mapcar (lambda (name) (string-to-int name)) (directory-files dir nil "^[0-9]+$" t)))) --- 199,207 ---- (when (and (not (string-match "/\\.\\.?$" dir)) (file-directory-p dir) (file-readable-p dir)) ! (nnmh-request-list-1 dir)))) ;; For each directory, generate an active file line. ! (unless (string= (expand-file-name nnmh-toplev) dir) (let ((files (mapcar (lambda (name) (string-to-int name)) (directory-files dir nil "^[0-9]+$" t)))) *************** *** 209,220 **** (progn (string-match (file-truename (file-name-as-directory ! (expand-file-name nnmh-directory))) dir) (nnheader-replace-chars-in-string (substring dir (match-end 0)) ?/ ?.)) (apply (function max) files) (apply (function min) files))))))) - (setq nnmh-group-alist (nnmail-get-active)) t) (deffoo nnmh-request-newgroups (date &optional server) --- 215,225 ---- (progn (string-match (file-truename (file-name-as-directory ! (expand-file-name nnmh-toplev))) dir) (nnheader-replace-chars-in-string (substring dir (match-end 0)) ?/ ?.)) (apply (function max) files) (apply (function min) files))))))) t) (deffoo nnmh-request-newgroups (date &optional server) *** pub/sgnus/lisp/nnspool.el Sat Apr 20 02:42:50 1996 --- sgnus/lisp/nnspool.el Sun Apr 21 20:20:15 1996 *************** *** 38,44 **** "Program to post news. This is most commonly `inews' or `injnews'.") ! (defvoo nnspool-inews-switches '("-h") "Switches for nnspool-request-post to pass to `inews' for posting news. If you are using Cnews, you probably should set this variable to nil.") --- 38,44 ---- "Program to post news. This is most commonly `inews' or `injnews'.") ! (defvoo nnspool-inews-switches '("-h" "-S") "Switches for nnspool-request-post to pass to `inews' for posting news. If you are using Cnews, you probably should set this variable to nil.") *** pub/sgnus/lisp/ChangeLog Sat Apr 20 02:43:08 1996 --- sgnus/lisp/ChangeLog Sun Apr 21 20:20:14 1996 *************** *** 1,4 **** --- 1,61 ---- + Sun Apr 21 19:59:58 1996 Lars Magne Ingebrigtsen + + * message.el (message-bounce): Wrong interactive spec. + (message-bounce): Handle mimeish bounces. + + * nnspool.el (nnspool-inews-switches): Suppress signature. + + Sun Apr 21 19:50:59 1996 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-summary-cancel-article): Cancel using the + proper select method. + + * gnus.el (gnus-find-method-for-group): Allow methods without names. + + Sun Apr 21 16:34:35 1996 Lars Magne Ingebrigtsen + + * nnmh.el (nnmh-request-list-1): New function. + + * gnus.el (gnus-summary-articles-in-thread): Would respond badly + to dummy roots. + + * gnus-msg.el (gnus-article-mail): Use message. + + * gnus-vis.el (gnus-button-reply): Use message. + + Sat Apr 20 04:31:02 1996 Jens Lautenbacher + + * gnus-vis.el: Greyed out much more entries in group-mode's + menubar and started the same for summary-mode. + + Sun Apr 21 15:50:09 1996 Lars Magne Ingebrigtsen + + * gnus-msg.el (gnus-copy-article-buffer): Don't widen + permanently. + + * gnus.el (gnus-read-active-file): Don't nix out active stuff from + foreign servers. + (gnus-summary-find-next): Wouldn't respond properly to dummy + articles. + + Sun Apr 21 15:26:47 1996 Denis Howe + + * browse-url.el: New version installed. + + Sun Apr 21 15:16:07 1996 Lars Magne Ingebrigtsen + + * message.el (message-reply): Respond properly even when answering + to messages with no Message-ID. + + Sat Apr 20 18:16:21 1996 Lars Magne Ingebrigtsen + + * gnus.el (gnus-article-header-rank): Moved. + + * message.el (message-send-mail): Wouldn't resend. + Sat Apr 20 00:20:09 1996 Lars Magne Ingebrigtsen + + * gnus.el: September Gnus v0.76 is released. * nntp.el (nntp-server-opened-hook): Use the default.