*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:54:14 +0000 (03:54 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:54:14 +0000 (03:54 +0000)
lisp/ChangeLog
lisp/browse-url.el
lisp/custom.el
lisp/gnus-ems.el
lisp/gnus-msg.el
lisp/gnus-vis.el
lisp/gnus.el
lisp/nnmail.el
lisp/nntp.el
texi/gnus.texi

index 4dae008..973138e 100644 (file)
@@ -1,5 +1,38 @@
+Fri Sep 15 11:09:52 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.el (gnus-summary-catchup): Would make all dormants read. 
+
+       * gnus-msg.el (gnus-article-mail-with-original): Removed function.
+
+Wed Sep 13 17:50:12 1995  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+       * custom.el (custom-type-properties): List with uninitialized
+       fields are valid (required for `gnus-score-customize' to work).
+
+Fri Sep 15 09:31:21 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.el (gnus-summary-catchup-all): Wrong interactive spec.
+       (gnus-select-method): Would sometimes set select method with a
+       bogus service value.
+
+Thu Sep 14 06:07:37 1995  Lars Magne Ingebrigtsen  <lingebri@sunscipw.cern.ch>
+
+       * nnmail.el (nnmail-request-post-buffer): Would bug out under
+       XEmacs. 
+
+Thu Sep 14 06:04:52 1995  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus-ems.el (gnus-set-text-properties-xemacs): Wrong definition.
+
+Thu Sep 14 03:44:27 1995  Lars Magne Ingebrigtsen  <larsi@hymir.ifi.uio.no>
+
+       * gnus-msg.el (gnus-inews-user-name): Check for too-verbose
+               user-mail-address variables.
+
 Wed Sep 13 05:38:21 1995  Lars Magne Ingebrigtsen  <larsi@surt.ifi.uio.no>
 
+       * gnus.el: 5.0.2 is released.
+
        * nntp.el (nntp-async-fetch-articles): Wouldn't allow entry into
                groups. 
 
index 6b97644..79232c3 100644 (file)
@@ -5,7 +5,7 @@
 ;; Author: Denis Howe <dbh@doc.ic.ac.uk>
 ;; Maintainer: Denis Howe <dbh@doc.ic.ac.uk>
 ;; Created: 03 Apr 1995
-;; Version: 0.16 17 May 1995
+;; Version: 0.22 13 Sep 1995
 ;; Keywords: hypertext
 ;; X-Home page: http://wombat.doc.ic.ac.uk/
 
 ;; each supported browser.  If the chosen browser is not running, it
 ;; is started.  Currently there is support for:
 
-;; Function             Browser     Earliest version
-;; browse-url-netscape  Netscape    1.1b1         
-;; browse-url-mosaic    XMosaic     <= 2.4
-;; browse-url-w3        w3          0
-;; browse-url-iximosaic IXI Mosaic  ?
+;; Function              Browser     Earliest version
+;; browse-url-netscape   Netscape    1.1b1        
+;; browse-url-mosaic     XMosaic     <= 2.4
+;; browse-url-cci        XMosaic     2.5
+;; browse-url-w3         w3          0
+;; browse-url-iximosaic  IXI Mosaic  ?
 
-;; Note that earlier versions of Netscape did not have remote control.
-;; <URL:http://home.netscape.com/newsref/std/x-remote.html> and
-;; <URL:http://home.netscape.com/info/APIs/>.
+;; Note that versions of Netscape before 1.1b1 did not have remote
+;; control.  <URL:http://home.netscape.com/newsref/std/x-remote.html>
+;; and <URL:http://home.netscape.com/info/APIs/>.
 
-;; If using Mosaic, check the definition of browse-url-usr1-signal
-;; below.
+;; Netscape can cache Web pages so it may be necessary to tell it to
+;; reload the current page if it has changed (eg. if you have edited
+;; it).  There is currently no perfect automatic solution to this.
+
+;; Netscape allows you to specify the id of the window you want to
+;; control but which window DO you want to control and how do you
+;; discover its id?
+
+;; If using XMosaic before version 2.5, check the definition of
+;; browse-url-usr1-signal below.
 ;; <URL:http://www.ncsa.uiuc.edu/SDG/Software/XMosaic/remote-control.html>
 
+;; XMosaic version 2.5 introduced Common Client Interface allowing you
+;; to control mosaic through Unix sockets.
+;; <URL:http://www.ncsa.uiuc.edu/SDG/Software/XMosaic/CCI/cci-spec.html>
+
+
 ;; William M. Perry's excellent "w3" WWW browser for
 ;; Emacs <URL:ftp://cs.indiana.edu/pub/elisp/w3/>
 ;; has a function w3-follow-url-at-point, but that
 ;; Can you write and test some code for the Macintrash and Windoze
 ;; Netscape remote control APIs?  (See the URL above).
 
-;; Did earlier versions of Mosaic have remote control?
-
 ;; Do any other browsers have remote control?
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Installation
 
-;; In your ~/.emacs, put:
-;;
-;;     (setq browse-url-browser-function
-;;           (if (eq window-system 'x)
-;;               'browse-url-netscape ; or browse-url-mosaic
-;;             'browse-url-w3))
-;;     (autoload browse-url-browser-function "browse-url.el"
-;;       "Ask a WWW browser to show a URL." t)
-;; Bind this to control-X w (normally undefined):
-;;     (global-set-key "\C-xw" browse-url-browser-function)
-;;     ;; Note: no quote       ^
-
-;; For viewing current buffer:
+;; Put the following in your ~/.emacs file:
 ;;
-;;     (autoload 'browse-url-of-file "browse-url.el"
-;;       "Ask a WWW browser to display the current file." t)
-;;     (setq browse-url-save-file t)   ; Always save
+;; (autoload 'browse-url-at-point "browse-url"
+;;   "Ask a WWW browser to load the URL at or before point." t)
+;; (autoload 'browse-url-at-mouse "browse-url"
+;;   "Ask a WWW browser to load a URL clicked with the mouse." t)
+;; (autoload 'browse-url-of-buffer "browse-url"
+;;   "Ask a WWW browser to display BUFFER." t)
+;; (autoload 'browse-url-of-file "browse-url"
+;;   "Ask a WWW browser to display FILE." t)
+;; (autoload 'browse-url-of-dired-file "browse-url"
+;;   "In Dired, ask a WWW browser to display the file named on this line." t)
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Usage
+
+;; To display the URL at or before point:
+;; M-x browse-url-at-point RET
+
+;; To display a URL by shift-clicking on it, put this in your ~/.emacs
+;; file:
+;;     (global-set-key [S-mouse-1] 'browse-url-at-mouse)
+
+;; To display the current buffer in a web browser:
+;; M-x browse-url-of-buffer RET
+
+;; In Dired, to display the file named on the current line:
+;; M-x browse-url-of-dired-file RET
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;; Customisation (~/.emacs)
+
+;; To see what variables are available for customization, type `M-x
+;; set-variable browse-url TAB'.
+
+;; To bind the browse-url commands to keys with the `C-c u' prefix:
+;;     (global-set-key "\C-cu." 'browse-url-at-point)
+;;     (global-set-key "\C-cub" 'browse-url-of-buffer)
+;;     (global-set-key "\C-cuf" 'browse-url-of-file)
+;;     (add-hook 'dired-mode-hook
+;;               (function (lambda ()
+;;                           (local-set-key "\C-cuf" 'browse-url-of-dired-file))))
+;;     (if (boundp 'browse-url-browser-function)
+;;         (global-set-key "\C-cuu" browse-url-browser-function)
+;;       (eval-after-load
+;;        "browse-url"
+;;        '(global-set-key "\C-cuu" browse-url-browser-function)))
+
+;; To use the Emacs w3 browser when not running under X11:
+;;     (if (not (eq window-system 'x))
+;;         (setq browse-url-browser-function 'browse-url-w3))
+
+;; To always save modified buffers before displaying the file in a browser:
+;;     (setq browse-url-save-file t)
 
 ;; To get round the Netscape caching problem, you could try either of
 ;; the following (but not both).  EITHER write-file in
 ;; html-helper-mode makes Netscape reload document:
 ;;
-;;     (autoload 'browse-url-netscape-reload "browse-url.el"
+;;     (autoload 'browse-url-netscape-reload "browse-url"
 ;;       "Ask a WWW browser to redisplay the current file." t)
 ;;     (add-hook 'html-helper-mode-hook
 ;;               (function (lambda ()
 ;;                            t))))                    ; append to l-w-f-hooks
 ;;
 ;; [Does this work for html-mode too?]
-
+;;
 ;; OR browse-url-of-file ask Netscape to load and then reload the
 ;; file:
 ;;
 ;;     Added browse-url-at-point.
 ;;     Thanks Jonathan Cano <cano@patch.tandem.com>.
 
-;; Netscape can cache Web pages so it may be necessary to tell it to
-;; reload the current page if it has changed (eg. if you have edited
-;; it).  There is currently no perfect automatic solution to this.
+;; 0.18 16 Aug 1995
+;;     Fixed call to browse-url-url-at-point in browse-url-at-point.
+;;     Thanks Eric Ding <ericding@San-Jose.ate.slb.com>.
 
-;; Netscape allows you to specify the id of the window you want to
-;; control but which window DO you want to control and how do you
-;; discover its id?
+;; 0.19 24 Aug 1995
+;;     Improved documentation.
+;;     Thanks Kevin Rodgers <kevin.rodgers@ihs.com>.
+
+;; 0.20 31 Aug 1995
+;;     browse-url-of-buffer to handle file-less buffers.
+;;     browse-url-of-dired-file browses current file in dired.
+;;     Thanks Kevin Rodgers <kevin.rodgers@ihs.com>.
+
+;; 0.21 09 Sep 1995
+;;     XMosaic CCI functions.
+;;     Thanks Marc Furrer <Marc.Furrer@di.epfl.ch>.
+
+;; 0.22 13 Sep 1995
+;;     Fixed new-window documentation and added to browse-url-cci.
+;;     Thanks Dilip Sequeira <djs@dcs.ed.ac.uk>.
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Code:
 (defvar browse-url-browser-function
   'browse-url-netscape
   "*Function to display the current buffer in a WWW browser.
-Used by function `browse-url-of-file'.")
+Used by the `browse-url-at-point', `browse-url-at-mouse', and
+`browse-url-of-file' commands.")
 
 (defvar browse-url-netscape-arguments nil
   "*A list of strings to pass to Netscape as arguments.")
 
-(defvar browse-url-netscape-new-window-p nil
-  "*If non-nil, Netscape always opens a new window.
-Passing an interactive argument to \\[browse-url-netscape] reverses
-the effect of this variable.  Requires Netscape version 1.1N or
-later.")
+(defvar browse-url-new-window-p nil
+  "*If non-nil, always open a new browser window.
+Passing an interactive argument to \\[browse-url-netscape] or
+\\[browse-url-cci] reverses the effect of this variable.  Requires
+Netscape version 1.1N or later or XMosaic version 2.5 or later.")
 
 (defvar browse-url-mosaic-arguments nil
   "*A list of strings to pass to Mosaic as arguments.")
@@ -236,11 +299,11 @@ later.")
   "An alist of (REGEXP . STRING) pairs.
 Any substring of a filename matching one of the REGEXPs is replaced by
 the corresponding STRING.  All pairs are applied in the order given.
-Used by function `browse-url-of-file'.")
+Used by the `browse-url-of-file' command.")
 
 (defvar browse-url-save-file nil
   "If non-nil, save the buffer before displaying its file.
-Used by function `browse-url-of-file'.")
+Used by the `browse-url-of-file' command.")
 
 (defvar browse-url-of-file-hook nil
   "A hook to be run with run-hook after `browse-url-of-file' has asked
@@ -258,6 +321,11 @@ file rather than displaying a cached copy.")
 Emacs 19.29 accepts 'sigusr1, earlier versions require an integer
 which is 30 on SunOS and 16 on HP-UX and Solaris.")
 
+(defvar browse-url-CCI-port 3003
+  "Port to access XMosaic via CCI.
+This can be any number between 1024 and 65535 but must correspond to
+the value set in the browser.")
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; URL input
 
@@ -291,14 +359,15 @@ use in `interactive'."
   (list (read-string (or prompt "URL: ") (browse-url-url-at-point))))
 
 (defun browse-url-at-point ()
-  "Pass the URL at or before point to a WWW browser."
+  "Ask a WWW browser to load the URL at or before point.
+The URL is loaded according to the value of `browse-url-browser-function'."
   (interactive)
-  (funcall browse-url-browser-function (browse-url-at-point)))
+  (funcall browse-url-browser-function (browse-url-url-at-point)))
 
 (defun browse-url-at-mouse (event)
-  "Ask a browser to load a URL clicked with the mouse.
+  "Ask a WWW browser to load a URL clicked with the mouse.
 The URL is the one around or before the position of the mouse click
-but point is not changed.  The URL is loaded using variable
+but point is not changed.  The URL is loaded according to the value of
 `browse-url-browser-function'."
   (interactive "e")
   (save-excursion
@@ -321,18 +390,18 @@ replacements given in variable `browse-url-filename-alist'.  Pass the
 URL to a browser using variable `browse-url-browser-function' then run
 `browse-url-of-file-hook'."
   (interactive)
-  (setq file (or file
-                (buffer-file-name)
-                (and (boundp 'dired-directory) dired-directory)))
+  (setq file
+       (or file
+           (buffer-file-name)
+           (error "Current buffer has no file")))
   (let ((buf (get-file-buffer file)))
-    (if buf (save-excursion
-             (set-buffer buf)
-             (cond
-              ((not (buffer-modified-p)))
-              (browse-url-save-file (save-buffer))
-              (t (message "%s modified since last save" file))))))
-  (funcall browse-url-browser-function
-          (browse-url-file-url file))
+    (if buf
+       (save-excursion
+         (set-buffer buf)
+         (cond ((not (buffer-modified-p)))
+               (browse-url-save-file (save-buffer))
+               (t (message "%s modified since last save" file))))))
+  (funcall browse-url-browser-function (browse-url-file-url file))
   (run-hooks 'browse-url-of-file-hook))
 
 (defun browse-url-file-url (file)
@@ -350,6 +419,64 @@ Uses variable `browse-url-filename-alist' to map filenames to URLs."
                               (substring file (match-end 0))))))))
   file)
 
+(defvar browse-url-temp-file-name nil)
+(make-variable-buffer-local 'browse-url-temp-file-name)
+
+(defvar browse-url-temp-file-list '())
+
+(defun browse-url-of-buffer (&optional buffer)
+  "Ask a WWW browser to display BUFFER.
+Display the current buffer if BUFFER is nil."
+  (interactive)
+  (save-excursion
+    (set-buffer (or buffer (current-buffer)))
+    (let ((file-name
+          (or buffer-file-name
+              (and (boundp 'dired-directory) dired-directory))))
+      (if (null file-name)
+         (progn
+           (if (null browse-url-temp-file-name)
+               (progn
+                 (setq browse-url-temp-file-name
+                       (make-temp-name
+                        (expand-file-name (buffer-name)
+                                          (or (getenv "TMPDIR") "/tmp"))))
+                 (setq browse-url-temp-file-list
+                       (cons browse-url-temp-file-name
+                             browse-url-temp-file-list))))
+           (write-region (point-min) (point-max) browse-url-temp-file-name
+                         nil 'no-message)))
+      (browse-url-of-file (or file-name browse-url-temp-file-name)))))
+
+(defun browse-url-delete-temp-file (&optional temp-file-name)
+  ;; Delete browse-url-temp-file-name from the file system and from
+  ;; browse-url-temp-file-list.  If optional arg TEMP-FILE-NAME is
+  ;; non-nil, delete it instead, but only from the file system --
+  ;; browse-url-temp-file-list is not affected.
+  (let ((file-name (or temp-file-name browse-url-temp-file-name)))
+    (if (and file-name (file-exists-p file-name))
+       (progn
+         (delete-file file-name)
+         (if (null temp-file-name)
+             (setq browse-url-temp-file-list
+                   (delete browse-url-temp-file-name
+                           browse-url-temp-file-list)))))))
+
+(defun browse-url-delete-temp-file-list ()
+  ;; Delete all elements of browse-url-temp-file-list.
+  (while browse-url-temp-file-list
+    (browse-url-delete-temp-file (car browse-url-temp-file-list))
+    (setq browse-url-temp-file-list
+         (cdr browse-url-temp-file-list))))
+
+(add-hook 'kill-buffer-hook 'browse-url-delete-temp-file)
+(add-hook 'kill-emacs-hook 'browse-url-delete-temp-file-list)
+
+(defun browse-url-of-dired-file ()
+  "In Dired, ask a WWW browser to display the file named on this line."
+  (interactive)
+  (browse-url-of-file (dired-get-filename)))
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Browser-specific functions
 
@@ -359,13 +486,16 @@ Uses variable `browse-url-filename-alist' to map filenames to URLs."
 Default to the URL around or before point.  The strings in variable
 `browse-url-netscape-arguments' are also passed to Netscape.
 
-If variable `browse-url-netscape-new-window-p' is non-nil, load the
-document in a new Netscape window, otherwise use a random existing
-one.  If optional argument NEW-WINDOW (prefix argument if interactive)
-is non-nil, the effect of browse-url-netscape-new-window-p is
-reversed."
+When called interactively, if variable `browse-url-new-window-p' is
+non-nil, load the document in a new Netscape window, otherwise use a
+random existing one.  A non-nil interactive prefix argument reverses
+the effect of browse-url-new-window-p.
+
+When called non-interactively, optional second argument NEW-WINDOW is
+used instead of browse-url-new-window-p."
+
   (interactive (append (browse-url-interactive-arg "Netscape URL: ")
-                      (list (not (eq (null browse-url-netscape-new-window-p)
+                      (list (not (eq (null browse-url-new-window-p)
                                      (null current-prefix-arg))))))
   (or (zerop
        (apply 'call-process "netscape" nil nil nil
@@ -391,6 +521,7 @@ reversed."
         (append browse-url-netscape-arguments
                 (list "-remote" command))))
 
+
 (defun browse-url-mosaic (url)
   "Ask the XMosaic WWW browser to load URL.
 Default to the URL around or before point."
@@ -421,6 +552,35 @@ Default to the URL around or before point."
       (apply 'start-process "xmosaic" nil "xmosaic"
             (append browse-url-mosaic-arguments (list url))))))
 
+
+(defun browse-url-cci (url &optional new-window)
+  "Ask the XMosaic WWW browser to load URL.
+Default to the URL around or before point.
+
+This function only works for XMosaic version 2.5 or later.  You must
+select `CCI' from XMosaic's File menu, set the CCI Port Address to the
+value of variable `browse-url-CCI-port', and enable `Accept requests'.
+
+When called interactively, if variable `browse-url-new-window-p' is
+non-nil, load the document in a new browser window, otherwise use a
+random existing one.  A non-nil interactive prefix argument reverses
+the effect of browse-url-new-window-p.
+
+When called non-interactively, optional second argument NEW-WINDOW is
+used instead of browse-url-new-window-p."
+  (interactive (append (browse-url-interactive-arg "Mosaic URL: ")
+                      (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 "
+                              (if new-window "new" "current") "\r\n"))
+  (process-send-string "browse-url" "disconnect\r\n")
+  (delete-process "browse-url"))
+
+
 (defun browse-url-iximosaic (url)
   "Ask the IXIMosaic WWW browser to load URL.
 Default to the URL around or before point."
@@ -428,12 +588,14 @@ Default to the URL around or before point."
   (start-process "tellw3b" nil "tellw3b"
                 "-service WWW_BROWSER ixi_showurl " url))
 
+
 (defun browse-url-w3 (url)
   "Ask the w3 WWW browser to load URL.
 Default to the URL around or before point."
   (interactive (browse-url-interactive-arg "W3 URL: "))
   (w3-fetch url))
 
+
 (provide 'browse-url)
 
 ;;; browse-url.el ends here
index 5baa977..08d912c 100644 (file)
@@ -470,7 +470,7 @@ hierarchy the new entry should be added.  CUSTOM is the entry to add."
          ;; A lisp list.
          (quote . custom-list-quote)
          (valid . (lambda (c d)
-                    (and (listp d) (not (eq custom-nil(car d))))))
+                    (listp d)))
          (extract . custom-list-extract))
     (group (type . default)
           ;; See `custom-match'.
index 8ec2599..a0b429b 100644 (file)
 ;; We do not byte-compile this file, because error messages are such a
 ;; bore.  
 
+(defun gnus-set-text-properties-xemacs (start end props &optional buffer)
+  "You should NEVER use this function.  It is ideologically blasphemous.
+It is provided only to ease porting of broken FSF Emacs programs."
+  (if (and (stringp buffer) (not (setq buffer (get-buffer buffer))))
+      nil
+    (map-extents (lambda (extent ignored)
+                  (remove-text-properties 
+                   start end
+                   (list (extent-property extent 'text-prop) nil)
+                   buffer))
+                buffer start end nil nil 'text-prop)
+    (add-text-properties start end props buffer)))
+
 (eval
  '(progn
     (if (string-match "XEmacs\\|Lucid" emacs-version)
@@ -132,24 +145,13 @@ pounce directly on the real variables themselves."))
       (or (face-differs-from-default-p 'underline)
          (funcall 'set-face-underline-p 'underline t))
 
-      (defun set-text-properties (start end props &optional buffer)
-       "You should NEVER use this function.  It is ideologically blasphemous.
-It is provided only to ease porting of broken FSF Emacs programs."
-       (if (and (stringp buffer) (not (setq buffer (get-buffer buffer))))
-           nil
-         (map-extents (symbol-function
-                       (lambda (extent ignored)
-                         (remove-text-properties 
-                          start end
-                          (list (extent-property extent 'text-prop) nil)
-                          buffer)))
-                      buffer start end nil nil 'text-prop)
-         (add-text-properties start end props buffer)))
-
       (defalias 'gnus-make-overlay 'make-extent)
       (defalias 'gnus-overlay-put 'set-extent-property)
       (defun gnus-move-overlay (extent start end &optional buffer)
        (set-extent-endpoints extent start end))
+      
+      (require 'text-props)
+      (fset 'set-text-properties 'gnus-set-text-properties-xemacs)
 
       (or (boundp 'standard-display-table) (setq standard-display-table nil))
       (or (boundp 'read-event) (fset 'read-event 'next-command-event))
@@ -536,6 +538,7 @@ call it with the value of the `gnus-data' text property."
     (fset 'gnus-rebuild-thread 'gnus-rebuild-thread-xemacs)
     (fset 'gnus-article-add-button 'gnus-article-add-button-xemacs)
     (fset 'gnus-window-top-edge 'gnus-window-top-edge-xemacs)
+    (fset 'set-text-properties 'gnus-set-text-properties-xemacs)
 
     (or (fboundp 'appt-select-lowest-window)
        (fset 'appt-select-lowest-window 
index d3b018b..1616e9d 100644 (file)
@@ -1249,17 +1249,19 @@ a program specified by the rest of the value."
 
 (defun gnus-inews-user-name ()
   "Return user's network address as \"NAME@DOMAIN (FULL-NAME)\"."
-  (let ((full-name (gnus-inews-full-name)))
+  (let ((full-name (gnus-inews-full-name))
+       (address (if (or gnus-user-login-name gnus-use-generic-from
+                        gnus-local-domain (getenv "DOMAINNAME"))
+                    (concat (gnus-inews-login-name) "@"
+                            (gnus-inews-domain-name gnus-use-generic-from))
+                  user-mail-address))) 
     (or gnus-user-from-line
-       (concat (if (or gnus-user-login-name gnus-use-generic-from
-                       gnus-local-domain (getenv "DOMAINNAME"))
-                   (concat (gnus-inews-login-name) "@"
-                           (gnus-inews-domain-name gnus-use-generic-from))
-                 user-mail-address)
+       (concat address
                ;; User's full name.
-               (cond ((string-equal full-name "") "")
-                     ((string-equal full-name "&") ;Unix hack.
+               (cond ((string-equal full-name "&") ;Unix hack.
                       (concat " (" (user-login-name) ")"))
+                     ((string-match "[^ ]+@[^ ]+ +(.*)" address)
+                      "")
                      (t
                       (concat " (" full-name ")")))))))
 
@@ -1682,11 +1684,6 @@ If YANK is non-nil, include the original article."
           (switch-to-buffer gnus-summary-buffer)
           (funcall gnus-mail-reply-method yank address)))))
 
-(defun gnus-article-mail-with-original ()
-  "Send a reply to the address near point and include the original article."
-  (interactive)
-  (gnus-article-mail 'yank))
-
 (defun gnus-bug ()
   "Send a bug report to the Gnus maintainers."
   (interactive)
index 85479a4..610dd27 100644 (file)
@@ -880,8 +880,6 @@ If nil, the user will be asked for a duration.")
        ["Show summary" gnus-article-show-summary t]
        ["Fetch Message-ID at point" gnus-article-refer-article t]
        ["Mail to address at point" gnus-article-mail t]
-       ["Mail to address at point and include original"
-        gnus-article-mail-with-original t]
        ))
 
      (easy-menu-define
index 863c564..8d36616 100644 (file)
@@ -100,7 +100,10 @@ used to 899, you would say something along these lines:
                            (not (string= gnus-default-nntp-server "")))
                       gnus-default-nntp-server)
                   (system-name)))
-   (if (equal gnus-nntp-service "nntp") nil (list gnus-nntp-service)))
+   (if (or (null gnus-nntp-service)
+          (equal gnus-nntp-service "nntp"))
+       nil 
+     (list gnus-nntp-service)))
   "*Default method for selecting a newsgroup.
 This variable should be a list, where the first element is how the
 news is to be fetched, the second is the address. 
@@ -1351,7 +1354,7 @@ variable (string, integer, character, etc).")
   "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)"
   "The mail address of the Gnus maintainers.")
 
-(defconst gnus-version "Gnus v5.0.2"
+(defconst gnus-version "Gnus v5.0.3"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -1727,7 +1730,6 @@ Thank you for your help in stamping out bugs.
   (autoload 'gnus-mail-send-and-exit "gnus-msg")
   (autoload 'gnus-mail-forward-using-mail "gnus-msg")
   (autoload 'gnus-mail-other-window-using-mail "gnus-msg")
-  (autoload 'gnus-article-mail-with-original "gnus-msg")
   (autoload 'gnus-article-mail "gnus-msg")
   (autoload 'gnus-bug "gnus-msg" nil t)
 
@@ -9928,16 +9930,16 @@ The number of articles marked as read is returned."
                      (append gnus-newsgroup-marked gnus-newsgroup-dormant)))
            ;; We actually mark all articles as canceled, which we
            ;; have to do when using auto-expiry or adaptive scoring. 
-           (let ((unreads (length gnus-newsgroup-unreads)))
-             (gnus-summary-show-all-threads)
-             (if (gnus-summary-first-subject (not all))
-                 (while (and 
-                         (if to-here (< (point) to-here) t)
-                         (gnus-summary-mark-article-as-read gnus-catchup-mark)
-                         (gnus-summary-search-subject nil (not all)))))
-             (- unreads (length gnus-newsgroup-unreads))
-             (or to-here
-                 (setq gnus-newsgroup-unreads gnus-newsgroup-marked)))))
+           (gnus-summary-show-all-threads)
+           (if (gnus-summary-first-subject (not all))
+               (while (and 
+                       (if to-here (< (point) to-here) t)
+                       (gnus-summary-mark-article-as-read gnus-catchup-mark)
+                       (gnus-summary-search-subject nil (not all)))))
+           (or to-here
+               (setq gnus-newsgroup-unreads
+                     (append gnus-newsgroup-marked
+                             gnus-newsgroup-dormant)))))
     (let ((method (gnus-find-method-for-group gnus-newsgroup-name)))
       (if (and (not to-here) (eq 'nnvirtual (car method)))
          (nnvirtual-catchup-group
@@ -9947,7 +9949,7 @@ The number of articles marked as read is returned."
 (defun gnus-summary-catchup-to-here (&optional all)
   "Mark all unticked articles before the current one as read.
 If ALL is non-nil, also mark ticked and dormant articles as read."
-  (interactive)
+  (interactive "P")
   (gnus-set-global-variables)
   (save-excursion
     (and (zerop (forward-line -1))
@@ -9959,7 +9961,7 @@ If ALL is non-nil, also mark ticked and dormant articles as read."
 
 (defun gnus-summary-catchup-all (&optional quietly)
   "Mark all articles in this newsgroup as read."
-  (interactive)
+  (interactive "P")
   (gnus-set-global-variables)
   (gnus-summary-catchup t quietly))
 
@@ -9976,7 +9978,7 @@ If prefix argument ALL is non-nil, all articles are marked as read."
 
 (defun gnus-summary-catchup-all-and-exit (&optional quietly)
   "Mark all articles in this newsgroup as read, and then exit."
-  (interactive)
+  (interactive "P")
   (gnus-set-global-variables)
   (gnus-summary-catchup-and-exit t quietly))
 
@@ -10665,8 +10667,6 @@ is initialized from the SAVEDIR environment variable."
   (define-key gnus-article-mode-map "h" 'gnus-article-show-summary)
   (define-key gnus-article-mode-map "s" 'gnus-article-show-summary)
   (define-key gnus-article-mode-map "\C-c\C-m" 'gnus-article-mail)
-  (define-key gnus-article-mode-map 
-    "\C-c\C-M" 'gnus-article-mail-with-original)
   (define-key gnus-article-mode-map "?" 'gnus-article-describe-briefly)
   (define-key gnus-article-mode-map gnus-mouse-2 'gnus-article-push-button)
   (define-key gnus-article-mode-map "\r" 'gnus-article-press-button)
@@ -10727,7 +10727,6 @@ The following commands are available:
 \\[gnus-article-refer-article]\t Go to the article referred to by an article id near point
 \\[gnus-article-show-summary]\t Display the summary buffer
 \\[gnus-article-mail]\t Send a reply to the address near point
-\\[gnus-article-mail-with-original]\t Send a reply to the address near point; include the original article
 \\[gnus-article-describe-briefly]\t Describe the current mode briefly
 \\[gnus-info-find-node]\t Go to the Gnus info node"
   (interactive)
index 71462ef..2de0bca 100644 (file)
@@ -257,14 +257,14 @@ perfomed.")
                   (setq message-of
                         (concat (if stop-pos (substring from 0 stop-pos) from)
                                 "'s message of " date))))
-           (setq cc (mail-strip-quoted-names (mail-fetch-field "cc")))
-           (setq to (mail-strip-quoted-names (mail-fetch-field "to")))
+           (setq cc (mail-strip-quoted-names (or (mail-fetch-field "cc") "")))
+           (setq to (mail-strip-quoted-names (or (mail-fetch-field "to") "")))
            (setq new-cc (rmail-dont-reply-to 
                          (concat (or to "")
                                  (if cc (concat (if to ", " "") cc) ""))))
            (let ((rmail-dont-reply-to-names 
                   (regexp-quote (mail-strip-quoted-names
-                                 (or method-address reply-to from)))))
+                                 (or method-address reply-to from "")))))
              (setq new-cc (rmail-dont-reply-to new-cc)))
            (setq subject (mail-header-subject header))
            (or (string-match "^[Rr][Ee]:" subject)
index 7fde67a..dbf1866 100644 (file)
@@ -689,7 +689,23 @@ reading."
 This function is supposed to be called from `nntp-server-opened-hook'.
 It will prompt for a password."
   (nntp-send-command "^.*\r?\n" "AUTHINFO USER" (user-login-name))
-  (nntp-send-command "^.*\r?\n" "AUTHINFO PASS" (read-string "NNTP password: ")))
+  (nntp-send-command "^.*\r?\n" "AUTHINFO PASS" 
+                    (read-string "NNTP password: ")))
+
+(defun nntp-send-authinfo-from-file ()
+  "Send the AUTHINFO to the nntp server.
+This function is supposed to be called from `nntp-server-opened-hook'.
+It will prompt for a password."
+  (and (file-exists-p "~/.nntp-authinfo")
+       (save-excursion
+        (set-buffer (get-buffer-create " *tull*"))
+        (insert-file-contents "~/.nntp-authinfo")
+        (goto-char (point-min))
+        (nntp-send-command "^.*\r?\n" "AUTHINFO USER" (user-login-name))
+        (nntp-send-command "^.*\r?\n" "AUTHINFO PASS" 
+                           (buffer-substring (point)
+                                             (progn (end-of-line) (point))))
+        (kill-buffer (current-buffer)))))
 
 (defun nntp-default-sentinel (proc status)
   "Default sentinel function for NNTP server process."
index 87784ba..38ffe21 100644 (file)
@@ -3528,8 +3528,12 @@ This required header will be prompted for if not present already.
 This required header says which newsgroups the article is to be posted
 to.  If it isn't present already, it will be prompted for.
 @item Organization
+@cindex organization
+@vindex gnus-local-organization
+@vindex gnus-organization-file
 This optional header will be filled out depending on the
-@code{gnus-local-organization} variable.
+@code{gnus-local-organization} variable.  @code{gnus-organization-file}
+will be used if that variable is nil.
 @item Lines
 This optional header will be computed by Gnus.
 @item Message-ID
@@ -4250,9 +4254,10 @@ more old headers - headers to articles that are marked as read.  If you
 would like to display as few summary lines as possible, but still
 connect as many loose threads as possible, you should set this variable
 to @code{some}.  In either case, fetching old headers only works if the
-select method you are using supports @sc{xover}.  Also remember that if
-the root of the thread has been expired by the server, there's not much
-Gnus can do about that.
+backend you are using carries overview files -- this would normally be
+@code{nntp}, @code{nnspool} and  @code{nnml}.  Also remember that if the
+root of the thread has been expired by the server, there's not much Gnus
+can do about that.
 
 @item gnus-summary-gather-subject-limit
 Loose threads are gathered by comparing subjects of articles.  If this
@@ -6387,12 +6392,8 @@ If point is in the neighborhood of a @code{Message-Id} and you press
 @item C-c C-m
 @kindex C-c C-m (Article)
 @findex gnus-article-mail
-Send a reply to the address near point (@code{gnus-article-mail}). 
-@item C-c C-M
-@kindex C-c C-M (Article)
-@findex gnus-article-mail-with-original
-Send a reply to the address near point and include the original article
-(@code{gnus-article-mail-with-original}). 
+Send a reply to the address near point (@code{gnus-article-mail}).  If
+given a prefix, include the mail.
 @item s
 @kindex s (Article)
 @findex gnus-article-show-summary