Update the Unicode database and derived files for Unicode 6.1.
[bpt/emacs.git] / lisp / image-mode.el
index 7082cfc..900cd72 100644 (file)
@@ -1,6 +1,6 @@
 ;;; image-mode.el --- support for visiting image files
 ;;
-;; Copyright (C) 2005-2011 Free Software Foundation, Inc.
+;; Copyright (C) 2005-2012 Free Software Foundation, Inc.
 ;;
 ;; Author: Richard Stallman <rms@gnu.org>
 ;; Keywords: multimedia
@@ -163,7 +163,7 @@ Stop if the left edge of the image is reached."
   (interactive "p")
   (image-forward-hscroll (- n)))
 
-(defun image-next-line (&optional n)
+(defun image-next-line (n)
   "Scroll image in current window upward by N lines.
 Stop if the bottom edge of the image is reached."
   (interactive "p")
@@ -271,7 +271,7 @@ stopping if the top or bottom edge of the image is reached."
 ;; Adjust frame and image size.
 
 (defun image-mode-fit-frame ()
-  "Fit the frame to the current image.
+  "Toggle whether to fit the frame to the current image.
 This function assumes the current frame has only one window."
   ;; FIXME: This does not take into account decorations like mode-line,
   ;; minibuffer, header-line, ...
@@ -396,11 +396,14 @@ to toggle between display as an image and display as text."
 
 ;;;###autoload
 (define-minor-mode image-minor-mode
-  "Toggle Image minor mode.
-With arg, turn Image minor mode on if arg is positive, off otherwise.
-It provides the key \\<image-mode-map>\\[image-toggle-display] \
-to switch back to `image-mode'
-to display an image file as the actual image."
+  "Toggle Image minor mode in this buffer.
+With a prefix argument ARG, enable Image minor mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil.
+
+Image minor mode provides the key \\<image-mode-map>\\[image-toggle-display],
+to switch back to `image-mode' and display an image file as the
+actual image."
   nil (:eval (if image-type (format " Image[%s]" image-type) " Image"))
   image-minor-mode-map
   :group 'image
@@ -465,7 +468,7 @@ Remove text properties that display the image."
        (buffer-undo-list t)
        (modified (buffer-modified-p)))
     (remove-list-of-text-properties (point-min) (point-max)
-                                   '(display intangible read-nonsticky
+                                   '(display read-nonsticky ;; intangible
                                              read-only front-sticky))
     (set-buffer-modified-p modified)
     (if (called-interactively-p 'any)
@@ -479,7 +482,7 @@ Remove text properties that display the image."
   "Show the image of the image file.
 Turn the image data into a real image, but only if the whole file
 was inserted."
-  (unless (derived-mode-p 'image-mode major-mode)
+  (unless (derived-mode-p 'image-mode)
     (error "The buffer is not in Image mode"))
   (let* ((filename (buffer-file-name))
         (data-p (not (and filename
@@ -506,8 +509,8 @@ was inserted."
     (setq image (append image (image-transform-properties image)))
     (setq props
          `(display ,image
-                   intangible ,image
-                   rear-nonsticky (display intangible)
+                   ;; intangible ,image
+                   rear-nonsticky (display) ;; intangible
                    read-only t front-sticky (read-only)))
 
     (let ((buffer-file-truename nil)) ; avoid changing dir mtime by lock_file
@@ -554,13 +557,15 @@ the image by calling `image-mode'."
 ;;; Animated images
 
 (defcustom image-animate-loop nil
-  "Whether to play animated images on a loop in Image mode."
+  "Non-nil means animated images loop forever, rather than playing once."
   :type 'boolean
   :version "24.1"
   :group 'image)
 
 (defun image-toggle-animation ()
-  "Start or stop animating the current image."
+  "Start or stop animating the current image.
+If `image-animate-loop' is non-nil, animation loops forever.
+Otherwise it plays once, then stops."
   (interactive)
   (let ((image (image-get-display-property))
        animation)
@@ -602,22 +607,27 @@ the image by calling `image-mode'."
       (image-toggle-display))))
 \f
 
-(defvar image-transform-minor-mode-map
-  (let ((map (make-sparse-keymap)))
-    ;; (define-key map  [(control ?+)] 'image-scale-in)
-    ;; (define-key map  [(control ?-)] 'image-scale-out)
-    ;; (define-key map  [(control ?=)] 'image-scale-none)
-    ;; (define-key map "c f h" 'image-scale-fit-height)
-    ;; (define-key map "c ]" 'image-rotate-right)
-    map)
-  "Minor mode keymap `image-transform-mode'.")
-
-(define-minor-mode image-transform-mode
-  "Minor mode for scaling and rotating images.
-This minor mode has no effect unless Emacs is compiled with
-ImageMagick support."
-  nil "image-transform" image-transform-minor-mode-map)
-
+;; Not yet implemented.
+;;; (defvar image-transform-minor-mode-map
+;;;   (let ((map (make-sparse-keymap)))
+;;;     ;; (define-key map  [(control ?+)] 'image-scale-in)
+;;;     ;; (define-key map  [(control ?-)] 'image-scale-out)
+;;;     ;; (define-key map  [(control ?=)] 'image-scale-none)
+;;;     ;; (define-key map "c f h" 'image-scale-fit-height)
+;;;     ;; (define-key map "c ]" 'image-rotate-right)
+;;;     map)
+;;;   "Minor mode keymap `image-transform-mode'.")
+;;;
+;;; (define-minor-mode image-transform-mode
+;;;   "Minor mode for scaling and rotating images.
+;;; With a prefix argument ARG, enable the mode if ARG is positive,
+;;; and disable it otherwise.  If called from Lisp, enable the mode
+;;; if ARG is omitted or nil.  This minor mode requires Emacs to have
+;;; been compiled with ImageMagick support."
+;;;   nil "image-transform" image-transform-minor-mode-map)
+
+
+;; FIXME this doesn't seem mature yet. Document in manual when it is.
 (defvar image-transform-resize nil
   "The image resize operation.
 Its value should be one of the following:
@@ -635,7 +645,7 @@ These properties are determined by the Image mode variables
 `image-transform-resize' and `image-transform-rotation'.  The
 return value is suitable for appending to an image spec.
 
-Recaling and rotation properties only take effect if Emacs is
+Rescaling and rotation properties only take effect if Emacs is
 compiled with ImageMagick support."
   (when (or image-transform-resize
            (not (equal image-transform-rotation 0.0)))
@@ -659,6 +669,7 @@ compiled with ImageMagick support."
        ,@(if (not (equal 0.0 image-transform-rotation))
              (list :rotation image-transform-rotation))))))
 
+;; FIXME 2 works, but eg 1.9 or 0.5 don't?
 (defun image-transform-set-scale (scale)
   "Prompt for a number, and resize the current image by that amount.
 This command has no effect unless Emacs is compiled with