*** empty log message ***
[gnus] / lisp / gnus-start.el
index 6110061..3b5ffd0 100644 (file)
@@ -445,7 +445,8 @@ Can be used to turn version control on or off."
              (push prefix prefixes)
              (message "Descend hierarchy %s? ([y]nsq): "
                       (substring prefix 1 (1- (length prefix))))
-             (while (not (memq (setq ans (read-char)) '(?y ?\n ?\r ?n ?s ?q)))
+             (while (not (memq (setq ans (read-char-exclusive))
+                               '(?y ?\n ?\r ?n ?s ?q)))
                (ding)
                (message "Descend hierarchy %s? ([y]nsq): "
                         (substring prefix 1 (1- (length prefix)))))
@@ -473,7 +474,8 @@ Can be used to turn version control on or off."
                       (setq groups (cdr groups))))
                    (t nil)))
          (message "Subscribe %s? ([n]yq)" (car groups))
-         (while (not (memq (setq ans (read-char)) '(?y ?\n ?\r ?q ?n)))
+         (while (not (memq (setq ans (read-char-exclusive))
+                           '(?y ?\n ?\r ?q ?n)))
            (ding)
            (message "Subscribe %s? ([n]yq)" (car groups)))
          (setq group (car groups))
@@ -706,8 +708,8 @@ prompt the user for the name of an NNTP server to use."
 
 (defun gnus-start-draft-setup ()
   "Make sure the draft group exists."
+  (gnus-request-create-group "drafts" '(nndraft ""))
   (unless (gnus-gethash "nndraft:drafts" gnus-newsrc-hashtb)
-    (gnus-request-create-group "drafts" '(nndraft ""))
     (let ((gnus-level-default-subscribed 1))
       (gnus-subscribe-group "nndraft:drafts" nil '(nndraft "")))
     (gnus-group-set-parameter
@@ -850,8 +852,10 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
       ;; Read the newsrc file and create `gnus-newsrc-hashtb'.
       (gnus-read-newsrc-file rawfile))
 
-    (when (and (not (assoc "archive" gnus-server-alist))
-              (gnus-archive-server-wanted-p))
+    ;; Make sure the archive server is available to all and sundry.
+    (when gnus-message-archive-method
+      (setq gnus-server-alist (delq (assoc "archive" gnus-server-alist)
+                                   gnus-server-alist))
       (push (cons "archive" gnus-message-archive-method)
            gnus-server-alist))
 
@@ -1063,7 +1067,6 @@ for new groups."
         hashtb))
       (when new-newsgroups
        (gnus-subscribe-hierarchical-interactive new-newsgroups)))
-    ;; Suggested by Per Abrahamsen <amanda@iesd.auc.dk>.
     (when (> groups 0)
       (gnus-message 6 "%d new newsgroup%s arrived."
                    groups (if (> groups 1) "s have" " has")))
@@ -2194,11 +2197,12 @@ If FORCE is non-nil, the .newsrc file is read."
              (push (cons (concat
                           "^" (buffer-substring
                                (1+ (match-beginning 0))
-                               (match-end 0)))
+                               (match-end 0))
+                          "\\($\\|\\.\\)")
                          'ignore)
                    out)
            ;; There was no bang, so this is a "yes" spec.
-           (push (cons (concat "^" (match-string 0))
+           (push (cons (concat "^" (match-string 0) "\\($\\|\\.\\)")
                        'subscribe)
                  out))))
 
@@ -2253,9 +2257,9 @@ If FORCE is non-nil, the .newsrc file is read."
        (print-escape-newlines t))
     (insert ";; -*- emacs-lisp -*-\n")
     (insert ";; Gnus startup file.\n")
-    (insert
-     ";; Never delete this file - touch .newsrc instead to force Gnus\n")
-    (insert ";; to read .newsrc.\n")
+    (insert "\
+;; Never delete this file -- if you want to force Gnus to read the
+;; .newsrc file (if you have one), touch .newsrc instead.\n")
     (insert "(setq gnus-newsrc-file-version "
            (prin1-to-string gnus-version) ")\n")
     (let* ((gnus-killed-list
@@ -2476,8 +2480,15 @@ If FORCE is non-nil, the .newsrc file is read."
            (skip-chars-forward " \t")
            ;; ...  which leads to this line being effectively ignored.
            (when (symbolp group)
-             (set group (buffer-substring
-                         (point) (progn (end-of-line) (point)))))
+             (let ((str (buffer-substring
+                         (point) (progn (end-of-line) (point))))
+                   (coding
+                    (and (boundp 'enable-multibyte-characters)
+                         enable-multibyte-characters
+                         (gnus-mule-get-coding-system (symbol-name group)))))
+               (if coding
+                   (setq str (decode-coding-string str (car coding))))
+               (set group str)))
            (forward-line 1))))
       (gnus-message 5 "Reading descriptions file...done")
       t))))