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
(put-text-property (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)))))