+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
(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")
(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."
(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)
(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
(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)))
(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)
(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)
(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)
"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
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)
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)))))
(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)
'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"))
(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.
(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.
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))))
(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))))
(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)))
": " (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
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
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