annotate lisp/iimage.el @ 110410:f2e111723c3a

Merge changes made in Gnus trunk. Reimplement nnimap, and do tweaks to the rest of the code to support that. * gnus-int.el (gnus-finish-retrieve-group-infos) (gnus-retrieve-group-data-early): New functions. * gnus-range.el (gnus-range-nconcat): New function. * gnus-start.el (gnus-get-unread-articles): Support early retrieval of data. (gnus-read-active-for-groups): Support finishing the early retrieval of data. * gnus-sum.el (gnus-summary-move-article): Pass the move-to group name if the move is internal, so that nnimap can do fast internal moves. * gnus.el (gnus-article-special-mark-lists): Add uid/active tuples, for nnimap usage. * nnimap.el: Rewritten. * nnmail.el (nnmail-inhibit-default-split-group): New internal variable to allow the mail splitting to not return a default group. This is useful for nnimap, which will leave unmatched mail in the inbox. * utf7.el (utf7-encode): Autoload. Implement shell connection. * nnimap.el (nnimap-open-shell-stream): New function. (nnimap-open-connection): Use it. Get the number of lines by using BODYSTRUCTURE. (nnimap-transform-headers): Get the number of lines in each message. (nnimap-retrieve-headers): Query for BODYSTRUCTURE so that we get the number of lines. Not all servers return UIDNEXT. Work past this problem. Remove junk from end of file. Fix typo in "bogus" section. Make capabilties be case-insensitive. Require cl when compiling. Don't bug out if the LIST command doesn't have any parameters. 2010-09-17 Knut Anders Hatlen <kahatlen@gmail.com> (tiny change) * nnimap.el (nnimap-get-groups): Don't bug out if the LIST command doesn't have any parameters. (mm-text-html-renderer): Document gnus-article-html. 2010-09-17 Julien Danjou <julien@danjou.info> (tiny fix) * mm-decode.el (mm-text-html-renderer): Document gnus-article-html. * dgnushack.el: Define netrc-credentials. If the user doesn't have a /etc/services, supply some sensible port defaults. Have `unseen-or-unread' select an unread unseen article first. (nntp-open-server): Return whether the open was successful or not. Throughout all files, replace (save-excursion (set-buffer ...)) with (with-current-buffer ... ). Save result so that it doesn't say "failed" all the time. Add ~/.authinfo to the default, since that's probably most useful for users. Don't use the "finish" method when we're reading from the agent. Add some more nnimap-relevant agent stuff to nnagent.el. * nnimap.el (nnimap-with-process-buffer): Removed. Revert one line that was changed by mistake in the last checkin. (nnimap-open-connection): Don't error out when we can't make a connection nnimap-related changes to avoid bugging out if we can't contact a server. * gnus-start.el (gnus-get-unread-articles): Don't try to scan groups from methods that are denied. * nnimap.el (nnimap-possibly-change-group): Return nil if we can't log in. (nnimap-finish-retrieve-group-infos): Make sure we're not waiting for nothing. * gnus-sum.el (gnus-select-newsgroup): Indent.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Sat, 18 Sep 2010 10:02:19 +0000
parents bbdc76e1b06c
children 4901ee6d9e5a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
1 ;;; iimage.el --- Inline image minor mode.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
2
106815
1d1d5d9bd884 Add 2010 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 100908
diff changeset
3 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
4
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
5 ;; Author: KOSEKI Yoshinori <kose@meadowy.org>
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
6 ;; Maintainer: KOSEKI Yoshinori <kose@meadowy.org>
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
7 ;; Keywords: multimedia
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
8
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
10
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
14 ;; (at your option) any later version.
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
15
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
19 ;; GNU General Public License for more details.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
20
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94678
ee5932bf781d Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 93975
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
23
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
24 ;;; Commentary:
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
25
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
26 ;; Iimage is a minor mode that displays images, when image-filename
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
27 ;; exists in the buffer.
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
28 ;; http://www.netlaputa.ne.jp/~kose/Emacs/iimage.html
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
29 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
30 ;; Add to your `~/.emacs':
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
31 ;; (autoload 'iimage-mode "iimage" "Support Inline image minor mode." t)
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
32 ;; (autoload 'turn-on-iimage-mode "iimage" "Turn on Inline image minor mode." t)
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
33 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
34 ;; ** Display images in *Info* buffer.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
35 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
36 ;; (add-hook 'info-mode-hook 'turn-on-iimage-mode)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
37 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
38 ;; .texinfo: @file{file://foo.png}
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
39 ;; .info: `file://foo.png'
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
40 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
41 ;; ** Display images in Wiki buffer.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
42 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
43 ;; (add-hook 'wiki-mode-hook 'turn-on-iimage-mode)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
44 ;;
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
45 ;; wiki-file: [[foo.png]]
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
46
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
47 ;;; Code:
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
48
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
49 (eval-when-compile
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
50 (require 'image-file))
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
51
61272
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
52 (defgroup iimage nil
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
53 "Support for inline images."
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
54 :version "22.1"
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
55 :group 'image)
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
56
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
57 (defconst iimage-version "1.1")
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
58
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
59 (defvar iimage-mode-map
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
60 (let ((map (make-sparse-keymap)))
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
61 (define-key map "\C-l" 'iimage-recenter)
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
62 map))
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
63
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
64 (defun iimage-recenter (&optional arg)
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
65 "Re-draw images and recenter."
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
66 (interactive "P")
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
67 (iimage-mode-buffer nil)
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
68 (iimage-mode-buffer t)
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
69 (recenter arg))
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
70
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
71 (defvar iimage-mode-image-filename-regex
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
72 (concat "[-+./_0-9a-zA-Z]+\\."
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
73 (regexp-opt (nconc (mapcar #'upcase
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
74 image-file-name-extensions)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
75 image-file-name-extensions)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
76 t)))
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
77
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
78 (defvar iimage-mode-image-regex-alist
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
79 `((,(concat "\\(`?file://\\|\\[\\[\\|<\\|`\\)?"
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
80 "\\(" iimage-mode-image-filename-regex "\\)"
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
81 "\\(\\]\\]\\|>\\|'\\)?") . 2))
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
82 "*Alist of filename REGEXP vs NUM.
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
83 Each element looks like (REGEXP . NUM).
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
84 NUM specifies which parenthesized expression in the regexp.
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
85
74256
9b80e932389f (iimage-mode-image-regex-alist): Doc fix.
Juanma Barranquero <lekktu@gmail.com>
parents: 68651
diff changeset
86 Examples of image filename regexps:
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
87 file://foo.png
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
88 `file://foo.png'
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
89 \\[\\[foo.gif]]
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
90 <foo.png>
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
91 foo.JPG")
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
92
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
93 (defvar iimage-mode-image-search-path nil
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
94 "*List of directories to search for image files for `iimage-mode'.")
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
95
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
96 ;;;###autoload
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
97 (define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
98
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
99 (defun turn-off-iimage-mode ()
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
100 "Unconditionally turn off iimage mode."
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
101 (interactive)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
102 (iimage-mode 0))
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
103
108903
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
104 (defun iimage-modification-hook (beg end)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
105 "Remove display property if a display region is modified."
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
106 ;;(debug-print "ii1 begin %d, end %d\n" beg end)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
107 (let ((inhibit-modification-hooks t)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
108 (beg (previous-single-property-change end 'display
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
109 nil (line-beginning-position)))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
110 (end (next-single-property-change beg 'display
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
111 nil (line-end-position))))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
112 (when (and beg end (plist-get (text-properties-at beg) 'display))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
113 ;;(debug-print "ii2 begin %d, end %d\n" beg end)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
114 (remove-text-properties beg end
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
115 '(display nil modification-hooks nil)))))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
116
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
117 (defun iimage-mode-buffer (arg)
108488
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
118 "Display images if ARG is non-nil, undisplay them otherwise."
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
119 (let ((image-path (cons default-directory iimage-mode-image-search-path))
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
120 file)
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
121 (with-silent-modifications
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
122 (save-excursion
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
123 (goto-char (point-min))
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
124 (dolist (pair iimage-mode-image-regex-alist)
925f002ec4ab * iimage.el: Misc cleanup.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 106815
diff changeset
125 (while (re-search-forward (car pair) nil t)
108903
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
126 (when (and (setq file (match-string (cdr pair)))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
127 (setq file (locate-file file image-path)))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
128 ;; FIXME: we don't mark our images, so we can't reliably
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
129 ;; remove them either (we may leave some of ours, and we
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
130 ;; may remove other packages's display properties).
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
131 (if arg
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
132 (add-text-properties (match-beginning 0) (match-end 0)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
133 `(display ,(create-image file)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
134 modification-hooks
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
135 (iimage-modification-hook)))
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
136 (remove-text-properties (match-beginning 0) (match-end 0)
bbdc76e1b06c * lisp/iimage.el: Remove images as soon as the underlying text is modified.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 108488
diff changeset
137 '(display modification-hooks))))))))))
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
138
56331
401149ed59c0 (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
Eli Zaretskii <eliz@gnu.org>
parents: 55532
diff changeset
139 ;;;###autoload
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
140 (define-minor-mode iimage-mode
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
141 "Toggle inline image minor mode."
61272
3933597e185e (iimage): New customization group.
Lute Kamstra <lute@gnu.org>
parents: 56331
diff changeset
142 :group 'iimage :lighter " iImg" :keymap iimage-mode-map
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
143 (iimage-mode-buffer iimage-mode))
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
144
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
145 (provide 'iimage)
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
146
93975
1e3a407766b9 Fix up comment convention on the arch-tag lines.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 87649
diff changeset
147 ;; arch-tag: f6f8e29a-08f6-4a12-9496-51e67441ce65
55525
fd93f77c8cc4 New file.
Eli Zaretskii <eliz@gnu.org>
parents:
diff changeset
148 ;;; iimage.el ends here