mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
* lisp/iimage.el: Remove images as soon as the underlying text is modified.
(iimage-modification-hook): New function. (iimage-mode-buffer): Use it.
This commit is contained in:
parent
83156c183f
commit
277e674181
3 changed files with 34 additions and 13 deletions
|
|
@ -1,3 +1,9 @@
|
|||
2010-06-07 Martin Pohlack <mp26@os.inf.tu-dresden.de>
|
||||
|
||||
* iimage.el: Remove images as soon as the underlying text is modified.
|
||||
(iimage-modification-hook): New function.
|
||||
(iimage-mode-buffer): Use it.
|
||||
|
||||
2010-06-07 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/smie.el (smie-indent-offset-rule): Rename from
|
||||
|
|
@ -4691,8 +4697,8 @@
|
|||
|
||||
2009-12-10 Vinicius Jose Latorre <viniciusjl@ig.com.br>
|
||||
|
||||
* whitespace.el (whitespace-display-char-on): Ensure
|
||||
`buffer-display-table' is unique when two or more windows are
|
||||
* whitespace.el (whitespace-display-char-on):
|
||||
Ensure `buffer-display-table' is unique when two or more windows are
|
||||
visible. Reported by Martin Pohlack <mp26@os.inf.tu-dresden.de>.
|
||||
New version 12.1.
|
||||
|
||||
|
|
|
|||
|
|
@ -7161,7 +7161,7 @@
|
|||
* doc-view.el (doc-view-search-backward, doc-view-search):
|
||||
Fix assignment to free variable bug.
|
||||
|
||||
2007-11-16 Martin Pohlack <mp26@os.inf.tu-dresden.de> (tiny change)
|
||||
2007-11-16 Martin Pohlack <mp26@os.inf.tu-dresden.de>
|
||||
|
||||
* emulation/pc-select.el (pc-select-shifted-mark): New var.
|
||||
(ensure-mark): Set it.
|
||||
|
|
|
|||
|
|
@ -101,6 +101,19 @@ Examples of image filename regexps:
|
|||
(interactive)
|
||||
(iimage-mode 0))
|
||||
|
||||
(defun iimage-modification-hook (beg end)
|
||||
"Remove display property if a display region is modified."
|
||||
;;(debug-print "ii1 begin %d, end %d\n" beg end)
|
||||
(let ((inhibit-modification-hooks t)
|
||||
(beg (previous-single-property-change end 'display
|
||||
nil (line-beginning-position)))
|
||||
(end (next-single-property-change beg 'display
|
||||
nil (line-end-position))))
|
||||
(when (and beg end (plist-get (text-properties-at beg) 'display))
|
||||
;;(debug-print "ii2 begin %d, end %d\n" beg end)
|
||||
(remove-text-properties beg end
|
||||
'(display nil modification-hooks nil)))))
|
||||
|
||||
(defun iimage-mode-buffer (arg)
|
||||
"Display images if ARG is non-nil, undisplay them otherwise."
|
||||
(let ((image-path (cons default-directory iimage-mode-image-search-path))
|
||||
|
|
@ -110,16 +123,18 @@ Examples of image filename regexps:
|
|||
(goto-char (point-min))
|
||||
(dolist (pair iimage-mode-image-regex-alist)
|
||||
(while (re-search-forward (car pair) nil t)
|
||||
(if (and (setq file (match-string (cdr pair)))
|
||||
(setq file (locate-file file image-path)))
|
||||
;; FIXME: we don't mark our images, so we can't reliably
|
||||
;; remove them either (we may leave some of ours, and we
|
||||
;; may remove other packages's display properties).
|
||||
(if arg
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
(list 'display (create-image file)))
|
||||
(remove-text-properties (match-beginning 0) (match-end 0)
|
||||
'(display))))))))))
|
||||
(when (and (setq file (match-string (cdr pair)))
|
||||
(setq file (locate-file file image-path)))
|
||||
;; FIXME: we don't mark our images, so we can't reliably
|
||||
;; remove them either (we may leave some of ours, and we
|
||||
;; may remove other packages's display properties).
|
||||
(if arg
|
||||
(add-text-properties (match-beginning 0) (match-end 0)
|
||||
`(display ,(create-image file)
|
||||
modification-hooks
|
||||
(iimage-modification-hook)))
|
||||
(remove-text-properties (match-beginning 0) (match-end 0)
|
||||
'(display modification-hooks))))))))))
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode iimage-mode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue