Function: newsticker--buffer-set-invisibility
newsticker--buffer-set-invisibility is a byte-compiled function
defined in newst-plainview.el.gz.
Signature
(newsticker--buffer-set-invisibility START END)
Documentation
Add invisibility properties according to nt-type property.
Scans the buffer between START and END. Sets the invisible
property to (<nt-type>-<nt-age> <nt-type> <nt-age>).
Source Code
;; Defined in /usr/src/emacs/lisp/net/newst-plainview.el.gz
(defun newsticker--buffer-set-invisibility (start end)
"Add invisibility properties according to nt-type property.
Scans the buffer between START and END. Sets the `invisible'
property to (<nt-type>-<nt-age> <nt-type> <nt-age>)."
(save-excursion
;; reset invisibility settings
(put-text-property start end 'invisible nil)
;; let's go
(goto-char start)
(let ((pos1 start)
(pos2 1)
(nt-type (get-text-property start 'nt-type))
(nt-age (get-text-property start 'nt-age)))
(when nt-type
(setq pos2 (next-single-property-change (point) 'nt-type))
(put-text-property (max (point-min) pos1) (1- pos2)
'invisible
(list (intern
(concat
(symbol-name
(if (eq nt-type 'extra) 'desc nt-type))
"-"
(symbol-name nt-age)))
nt-type
nt-age))
(setq nt-type (get-text-property pos2 'nt-type))
(setq pos1 pos2))
(while (and (setq pos2 (next-single-property-change pos1 'nt-type))
(<= pos2 end)
(> pos2 pos1))
;; must shift one char to the left in order to handle invisible
;; newlines, motion in invisible text areas and all that
;; correctly. And even two chars in the case of a `feed' to
;; account for the empty line above it.
(put-text-property (if (eq nt-type 'feed) (- pos1 2) (1- pos1))
(1- pos2)
'invisible
(list (intern
(concat
(symbol-name
(if (eq nt-type 'extra) 'desc nt-type))
"-"
(symbol-name nt-age)))
nt-type
nt-age))
(setq nt-type (get-text-property pos2 'nt-type))
(setq nt-age (get-text-property pos2 'nt-age))
(setq pos1 pos2))
;; Deals with the two potential empty lines at the beginning of
;; the buffer after hiding the first old feed(s).
(goto-char start)
(when (and (newsticker--old-feed-p (get-text-property (point) 'feed))
(newsticker--buffer-goto '(feed) 'feed))
(put-text-property
(- (point) 2) (point) 'invisible '(feed-old feed old))))))