* gnus-spec.el (gnus-compile): Don't compile gnus-version.
[gnus] / lisp / gnus-group.el
index a2feac9..d4857a0 100644 (file)
@@ -427,7 +427,7 @@ in which case `gnus-group-jump-to-group' offers \"Group: nnml:\"
 in the minibuffer prompt."
   :group 'gnus-group-various
   :type '(choice (string :tag "Prompt string")
-                 (const :tag "Empty" nil)))
+                (const :tag "Empty" nil)))
 
 (defvar gnus-group-listing-limit 1000
   "*A limit of the number of groups when listing.
@@ -849,7 +849,7 @@ simple manner.")
 
     (easy-menu-define
      gnus-group-misc-menu gnus-group-mode-map ""
-     `("Misc"
+     `("Gnus"
        ("SOUP"
        ["Pack replies" nnsoup-pack-replies (fboundp 'nnsoup-request-group)]
        ["Send replies" gnus-soup-send-replies
@@ -957,6 +957,7 @@ The following commands are available:
 (defun gnus-update-group-mark-positions ()
   (save-excursion
     (let ((gnus-process-mark ?\200)
+         (gnus-group-update-hook nil)
          (gnus-group-marked '("dummy.group"))
          (gnus-active-hashtb (make-vector 10 0))
          (topic ""))
@@ -1365,17 +1366,17 @@ if it is a string, only list groups matching REGEXP."
         (method (gnus-server-get-method group (gnus-info-method info)))
         (marked (gnus-info-marks info))
         (mailp (apply 'append
-                       (mapcar
-                        (lambda (x)
-                          (memq x (assoc (symbol-name
-                                          (car (or method gnus-select-method)))
-                                         gnus-valid-select-methods)))
-                        '(mail post-mail))))
-         (level (or (gnus-info-level info) gnus-level-killed))
-         (score (or (gnus-info-score info) 0))
-         (ticked (gnus-range-length (cdr (assq 'tick marked))))
-         (group-age (gnus-group-timestamp-delta group))
-         (inhibit-read-only t))
+                      (mapcar
+                       (lambda (x)
+                         (memq x (assoc (symbol-name
+                                         (car (or method gnus-select-method)))
+                                        gnus-valid-select-methods)))
+                       '(mail post-mail))))
+        (level (or (gnus-info-level info) gnus-level-killed))
+        (score (or (gnus-info-score info) 0))
+        (ticked (gnus-range-length (cdr (assq 'tick marked))))
+        (group-age (gnus-group-timestamp-delta group))
+        (inhibit-read-only t))
     ;; Eval the cars of the lists until we find a match.
     (while (and list
                (not (eval (caar list))))
@@ -2242,7 +2243,17 @@ and NEW-NAME will be prompted for."
        (t "group info"))
       (gnus-group-decoded-name group))
      `(lambda (form)
-       (gnus-group-edit-group-done ',part ,group form)))))
+       (gnus-group-edit-group-done ',part ,group form)))
+    (local-set-key
+     "\C-c\C-i" 
+     (gnus-create-info-command
+      (cond
+       ((eq part 'method)
+       "(gnus)Select Methods")
+       ((eq part 'params)
+       "(gnus)Group Parameters")
+       (t
+       "(gnus)Group Info"))))))
 
 (defun gnus-group-edit-group-method (group)
   "Edit the select method of GROUP."
@@ -2827,13 +2838,22 @@ sort in reverse order."
 
 (defun gnus-info-clear-data (info)
   "Clear all marks and read ranges from INFO."
-  (let ((group (gnus-info-group info)))
+  (let ((group (gnus-info-group info))
+       action)
+    (dolist (el (gnus-info-marks info))
+      (push `(,(cdr el) add (,(car el))) action))
+    (push `(,(gnus-info-read info) add (read)) action)
     (gnus-undo-register
       `(progn
+        (gnus-request-set-mark ,group ',action)
         (gnus-info-set-marks ',info ',(gnus-info-marks info) t)
         (gnus-info-set-read ',info ',(gnus-info-read info))
         (when (gnus-group-goto-group ,group)
+          (gnus-get-unread-articles-in-group ',info ',(gnus-active group) t)
           (gnus-group-update-group-line))))
+    (setq action (mapcar (lambda (el) (list (nth 0 el) 'del (nth 2 el)))
+                        action))
+    (gnus-request-set-mark group action)
     (gnus-info-set-read info nil)
     (when (gnus-info-marks info)
       (gnus-info-set-marks info nil))))
@@ -3839,7 +3859,7 @@ or `gnus-group-catchup-group-hook'."
   "Return the offset in seconds from the timestamp for GROUP to the current time, as a floating point number."
   (let* ((time (or (gnus-group-timestamp group)
                   (list 0 0)))
-         (delta (subtract-time (current-time) time)))
+        (delta (subtract-time (current-time) time)))
     (+ (* (nth 0 delta) 65536.0)
        (nth 1 delta))))
 
@@ -3947,7 +3967,7 @@ This command may read the active file."
     (gnus-group-list-plus args)))
 
 (defun gnus-group-mark-article-read (group article)
-  "Mark ARTICLE read." 
+  "Mark ARTICLE read."
   (gnus-activate-group group)
   (let ((buffer (gnus-summary-buffer-name group))
        (mark gnus-read-mark))