*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:25:54 +0000 (03:25 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 03:25:54 +0000 (03:25 +0000)
lisp/ChangeLog
lisp/custom.el
lisp/gnus-cache.el
lisp/gnus-cus.el
lisp/gnus-msg.el
lisp/gnus-uu.el
lisp/gnus-vm.el
lisp/gnus.el
lisp/nnfolder.el
lisp/nntp.el

index a264a2b..da623bc 100644 (file)
@@ -1,3 +1,59 @@
+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.
index 85c7b98..55bb87c 100644 (file)
@@ -116,7 +116,6 @@ STRING should be given if the last search was by `string-match' on STRING."
          (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)
index 4917f86..b3d1afc 100644 (file)
        (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)))
 
index 7ed13b8..6516e05 100644 (file)
@@ -388,6 +388,7 @@ When there are citations from multiple articles in the same message,
 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))
@@ -521,6 +522,14 @@ mark:    The article's mark.")
                 ;; 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)))
index bff16bb..7fa5a20 100644 (file)
@@ -462,9 +462,9 @@ Type \\[describe-mode] in the buffer to get a list of commands."
          ;; 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"))
@@ -544,7 +544,7 @@ If given a prefix, and the group is a foreign group, this function
 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
index 3604467..076e1af 100644 (file)
@@ -681,19 +681,20 @@ The headers will be included in the sequence they are matched.")
             (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))
@@ -1130,8 +1131,11 @@ The headers will be included in the sequence they are matched.")
            (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)
index aab5a6e..ee32d74 100644 (file)
@@ -70,7 +70,8 @@ Has to be set before gnus-vm is loaded.")
     ;; 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)
index 7253f8d..78b5dec 100644 (file)
@@ -1343,7 +1343,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 "(ding) Gnus v0.99.22"
+(defconst gnus-version "(ding) Gnus v0.99.23"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -2684,14 +2684,18 @@ If nothing is specified, use the variable gnus-overload-functions."
           (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))
@@ -3231,6 +3235,9 @@ prompt the user for the name of an NNTP server to use."
 
     (gnus-clear-system)
 
+    (nnheader-init-server-buffer)
+    (gnus-read-init-file)
+
     (gnus-group-setup-buffer)
     (let ((buffer-read-only nil))
       (erase-buffer)
@@ -3239,9 +3246,6 @@ prompt the user for the name of an NNTP server to use."
            (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
@@ -3652,7 +3656,7 @@ moves the point to the colon."
                     ?* ? ))
         (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.
@@ -8158,7 +8162,7 @@ If BACKWARD, the previous article is selected instead of the next."
                                            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."
@@ -8421,7 +8425,7 @@ NOTE: This command only works with newsgroups that use real or simulated NNTP."
               (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
@@ -10681,6 +10685,7 @@ The following commands are available:
 
 (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)
@@ -10688,11 +10693,13 @@ The following commands are available:
        (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.
@@ -11777,8 +11784,9 @@ If CONFIRM is non-nil, the user will be asked for an NNTP server."
        (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))
@@ -12777,44 +12785,45 @@ Returns whether the updating was successful."
                                 (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'.
@@ -13858,6 +13867,7 @@ The following commands are available:
     (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)
@@ -14007,7 +14017,7 @@ GROUP using BNews sys file syntax."
                  (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))
index 2be0884..3cdd034 100644 (file)
@@ -356,7 +356,7 @@ such things as moving mail.  All buffers always get killed upon server close.")
        (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))))
@@ -379,9 +379,10 @@ such things as moving mail.  All buffers always get killed upon server close.")
   (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
@@ -389,7 +390,7 @@ such things as moving mail.  All buffers always get killed upon server close.")
        (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
@@ -509,7 +510,7 @@ such things as moving mail.  All buffers always get killed upon server close.")
       (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))
index 2f5e539..4e1b806 100644 (file)
@@ -353,7 +353,7 @@ instead call function `nntp-status-message' to get status message.")
     (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))))))
@@ -401,6 +401,7 @@ instead call function `nntp-status-message' to get status message.")
           (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)
@@ -1038,33 +1039,37 @@ If SERVICE, this this as the port number."
                                     (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)."