*** empty log message ***
authorLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 09:36:43 +0000 (09:36 +0000)
committerLars Magne Ingebrigtsen <larsi@gnus.org>
Tue, 4 Mar 1997 09:36:43 +0000 (09:36 +0000)
lisp/ChangeLog
lisp/gnus-ems.el
lisp/gnus-topic.el
lisp/gnus-xmas.el
lisp/gnus.el
texi/gnus.texi

index 967a10c..f73e5ce 100644 (file)
@@ -1,8 +1,23 @@
+Sat May 18 08:42:34 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+       * gnus.el (gnus-group-set-mode-line): Say whether the dribble
+       buffer has been modified.
+
+       * gnus-xmas.el (gnus-xmas-add-text-properties): New function.
+       (gnus-xmas-group-remove-excess-properties): Removed.
+
+       * gnus-ems.el (gnus-add-text-properties): New alias.
+
+       * gnus-xmas.el (gnus-xmas-group-remove-excess-properties): Open
+       text props.
+
 Fri May 17 16:27:42 1996  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
 
        * gnus.el (gnus-article-hide-headers): Would make headers
        iinvisible under XEmacs.
 
+       * gnus.el: 0.87 is released.
+
 Fri May 17 11:38:52 1996  Lars Magne Ingebrigtsen  <larsi@ylfing.ifi.uio.no>
 
        * gnus.el (gnus-summary-edit-article-done): Remove article from
index 8f234a3..7d404e7 100644 (file)
 (defalias 'gnus-move-overlay 'move-overlay)
 (defalias 'gnus-overlay-end 'overlay-end)
 (defalias 'gnus-extent-detached-p 'ignore)
-(defalias 'gnus-group-remove-excess-properties 'ignore)
-(defalias 'gnus-topic-remove-excess-properties 'ignore)
 (defalias 'gnus-extent-start-open 'ignore)
 (defalias 'gnus-set-text-properties 'set-text-properties)
 (defalias 'gnus-appt-select-lowest-window 'appt-select-lowest-window)
 (defalias 'gnus-mail-strip-quoted-names 'mail-strip-quoted-names)
 (defalias 'gnus-make-local-hook 'make-local-hook)
 (defalias 'gnus-character-to-event 'identity)
+(defalias 'gnus-add-text-properties 'add-text-properties)
 
 (eval-and-compile 
   (autoload 'gnus-xmas-define "gnus-xmas")
index be512e1..25a7db8 100644 (file)
@@ -78,8 +78,8 @@ with some simple extensions.
 
 (defun gnus-group-topic-name ()
   "The name of the topic on the current line."
-  (let ((group (get-text-property (gnus-point-at-bol) 'gnus-topic)))
-    (and group (symbol-name group))))
+  (let ((topic (get-text-property (gnus-point-at-bol) 'gnus-topic)))
+    (and topic (symbol-name topic))))
 
 (defun gnus-group-topic-level ()
   "The level of the topic on the current line."
@@ -146,25 +146,26 @@ If LOWEST is non-nil, list all newsgroups of level LOWEST or higher."
   (setq gnus-group-list-mode (cons level all))
   (run-hooks 'gnus-group-prepare-hook))
 
-(defun gnus-topic-prepare-topic (topic level &optional list-level all silent)
+(defun gnus-topic-prepare-topic (topicl level &optional list-level all silent)
   "Insert TOPIC into the group buffer.
 If SILENT, don't insert anything.  Return the number of unread
 articles in the topic and its subtopics."
-  (let* ((type (pop topic))
+  (let* ((type (pop topicl))
         (entries (gnus-topic-find-groups (car type) list-level all))
         (visiblep (and (eq (nth 1 type) 'visible) (not silent)))
         (gnus-group-indentation 
          (make-string (* gnus-topic-indent-level level) ? ))
         (beg (progn (beginning-of-line) (point)))
-        (topic (reverse topic))
+        (topicl (reverse topicl))
         (all-entries entries)
         (unread 0)
+        (topic (car type))
         info entry end active)
     ;; Insert any sub-topics.
-    (while topic
+    (while topicl
       (incf unread
            (gnus-topic-prepare-topic 
-            (pop topic) (1+ level) list-level all
+            (pop topicl) (1+ level) list-level all
             (not visiblep))))
     (setq end (point))
     (goto-char beg)
@@ -293,11 +294,10 @@ articles in the topic and its subtopics."
         (active-topic (eq gnus-topic-alist gnus-topic-active-alist)))
     (beginning-of-line)
     ;; Insert the text.
-    (add-text-properties 
+    (gnus-add-text-properties 
      (point)
      (prog1 (1+ (point)) 
-       (eval gnus-topic-line-format-spec)
-       (gnus-topic-remove-excess-properties))
+       (eval gnus-topic-line-format-spec))
      (list 'gnus-topic (intern name)
           'gnus-topic-level level
           'gnus-topic-unread unread
@@ -307,7 +307,7 @@ articles in the topic and its subtopics."
 (defun gnus-topic-previous-topic (topic)
   "Return the previous topic on the same level as TOPIC."
   (let ((top (cddr (gnus-topic-find-topology
-                       (gnus-topic-parent-topic topic)))))
+                   (gnus-topic-parent-topic topic)))))
     (unless (equal topic (caaar top))
       (while (and top (not (equal (caaadr top) topic)))
        (setq top (cdr top)))
index 845de9e..c5903c9 100644 (file)
@@ -144,25 +144,9 @@ displayed, no centering will be performed."
          (gnus-horizontal-recenter)
          (select-window selected))))))
 
-(defun gnus-xmas-group-remove-excess-properties ()
-  (let ((end (point))
-       (beg (progn (forward-line -1) (point))))
-    (remove-text-properties (1+ beg) end '(gnus-group nil))
-    (remove-text-properties 
-     beg end 
-     '(gnus-topic nil gnus-topic-level nil gnus-topic-visible nil))
-    (goto-char end)
-    (map-extents 
-     (lambda (e ma)
-       (set-extent-property e 'start-closed t))
-     (current-buffer) beg end)))
-                 
-(defun gnus-xmas-topic-remove-excess-properties ()
-  (let ((end (point))
-       (beg (progn (forward-line -1) (point))))
-    (remove-text-properties beg end '(gnus-group nil gnus-unread nil))
-    (remove-text-properties (1+ beg) end '(gnus-topic nil))
-    (goto-char end)))
+(defun gnus-xmas-add-text-properties (start end props &optional object)
+  (add-text-properties start end props object)
+  (put-text-property start end 'start-closed nil object))
 
 (defun gnus-xmas-extent-start-open (point)
   (map-extents (lambda (extent arg)
@@ -345,6 +329,7 @@ call it with the value of the `gnus-data' text property."
   (fset 'gnus-move-overlay 'gnus-xmas-move-overlay)
   (fset 'gnus-overlay-end 'extent-end-position)
   (fset 'gnus-extent-detached-p 'extent-detached-p)
+  (fset 'gnus-add-text-properties 'gnus-xmas-add-text-properties)
       
   (require 'text-props)
   (if (< emacs-minor-version 14)
@@ -432,10 +417,6 @@ pounce directly on the real variables themselves.")
   (fset 'gnus-highlight-selected-summary
        'gnus-xmas-highlight-selected-summary)
   (fset 'gnus-summary-recenter 'gnus-xmas-summary-recenter)
-  (fset 'gnus-group-remove-excess-properties
-       'gnus-xmas-group-remove-excess-properties)
-  (fset 'gnus-topic-remove-excess-properties
-       'gnus-xmas-topic-remove-excess-properties)
   (fset 'gnus-extent-start-open 'gnus-xmas-extent-start-open)
   (fset 'gnus-copy-article-buffer 'gnus-xmas-copy-article-buffer)
   (fset 'gnus-article-push-button 'gnus-xmas-article-push-button)
index b064964..eccc8ca 100644 (file)
@@ -1718,7 +1718,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 "September Gnus v0.87"
+(defconst gnus-version "September Gnus v0.88"
   "Version number for this version of Gnus.")
 
 (defvar gnus-info-nodes
@@ -2782,7 +2782,7 @@ Thank you for your help in stamping out bugs.
 If PROPS, insert the result."
   (let ((form (gnus-parse-format format alist props)))
     (if props
-       (add-text-properties (point) (progn (eval form) (point)) props)
+       (gnus-add-text-properties (point) (progn (eval form) (point)) props)
       (eval form))))
 
 (defun gnus-remove-text-with-property (prop)
@@ -3744,8 +3744,8 @@ simple-first is t, first argument is already simplified."
     name))
 
 (defsubst gnus-hide-text (b e props)
-  "Set text PROPS on the B to E region, extending `intangble' 1 past B."
-  (add-text-properties b e props)
+  "Set text PROPS on the B to E region, extending `intangible' 1 past B."
+  (gnus-add-text-properties b e props)
   (when (memq 'intangible props)
     (put-text-property (max (1- b) (point-min))
                       b 'intangible (cddr (memq 'intangible props)))))
@@ -4571,7 +4571,7 @@ If REGEXP, only list groups matching REGEXP."
        (while groups
          (setq group (pop groups))
          (when (string-match regexp group)
-           (add-text-properties
+           (gnus-add-text-properties
             (point) (prog1 (1+ (point))
                       (insert " " mark "     *: " group "\n"))
             (list 'gnus-group (gnus-intern-safe group gnus-active-hashtb)
@@ -4579,7 +4579,7 @@ If REGEXP, only list groups matching REGEXP."
                   'gnus-level level))))
       ;; This loop is used when listing all groups.
       (while groups
-       (add-text-properties
+       (gnus-add-text-properties
         (point) (prog1 (1+ (point))
                   (insert " " mark "     *: "
                           (setq group (pop groups)) "\n"))
@@ -4928,7 +4928,7 @@ increase the score of each group you read."
         (buffer-read-only nil)
         header gnus-tmp-header)        ; passed as parameter to user-funcs.
     (beginning-of-line)
-    (add-text-properties
+    (gnus-add-text-properties
      (point)
      (prog1 (1+ (point))
        ;; Insert the text.
@@ -4943,9 +4943,7 @@ increase the score of each group you read."
     (when (inline (gnus-visual-p 'group-highlight 'highlight))
       (forward-line -1)
       (run-hooks 'gnus-group-update-hook)
-      (forward-line))
-    ;; Allow XEmacs to remove front-sticky text properties.
-    (gnus-group-remove-excess-properties)))
+      (forward-line))))
 
 (defun gnus-group-update-group (group &optional visible-only)
   "Update all lines where GROUP appear.
@@ -5008,6 +5006,12 @@ already."
           gnus-tmp-header                      ;Dummy binding for user-defined formats
           ;; Get the resulting string.
           (mode-string (eval gformat)))
+      ;; Say whether the dribble buffer has been modified.
+      (setq mode-line-modified
+           (if (and gnus-dribble-buffer
+                    (buffer-name gnus-dribble-buffer)
+                    (buffer-modified-p gnus-dribble-buffer))
+               "-* " "-- "))
       ;; If the line is too long, we chop it off.
       (when (> (length mode-string) max-len)
        (setq mode-string (substring mode-string 0 (- max-len 4))))
@@ -6464,7 +6468,7 @@ If N is negative, this group and the N-1 previous groups will be checked."
        (setq b (point))
        (insert (format "      *: %-20s %s\n" (symbol-name group)
                       (symbol-value group)))
-       (add-text-properties
+       (gnus-add-text-properties
        b (1+ b) (list 'gnus-group group
                       'gnus-unread t 'gnus-marked nil
                       'gnus-level (1+ gnus-level-subscribed))))
@@ -7406,7 +7410,7 @@ This is all marks except unread, ticked, dormant, and expirable."
 (defun gnus-summary-insert-dummy-line (gnus-tmp-subject gnus-tmp-number)
   "Insert a dummy root in the summary buffer."
   (beginning-of-line)
-  (add-text-properties
+  (gnus-add-text-properties
    (point) (progn (eval gnus-summary-dummy-line-format-spec) (point))
    (list 'gnus-number gnus-tmp-number 'gnus-intangible gnus-tmp-number)))
 
@@ -13183,7 +13187,7 @@ is initialized from the SAVEDIR environment variable."
                  ": " (or (cdr (assq 'execute (car pslist))) "") "\n")
          (setq e (point))
          (forward-line -1)             ; back to `b'
-         (add-text-properties
+         (gnus-add-text-properties
           b e (list 'gnus-number gnus-reffed-article-number
                     gnus-mouse-face-prop gnus-mouse-face))
          (gnus-data-enter
index 2bce3f8..2dfd56d 100644 (file)
@@ -1039,6 +1039,9 @@ The level of the group.
 The score of the group.
 @item ticked 
 The number of ticked articles in the group.
+@item topic
+When using the topic minor mode, this variable is bound to the current
+topic being inserted.
 @end table
 
 When the forms are @code{eval}ed, point is at the beginning of the line
@@ -2411,6 +2414,11 @@ created.
 generated.  It may be used to modify the buffer in some strange,
 unnatural way.
 
+@item gnus-permanently-visible-groups
+@vindex gnus-permanently-visible-groups
+Groups matching this regexp will always be listed in the group buffer,
+whether they are empty or not.
+
 @end table