From 1546c55901a99229848a1381aac2e618f5d6c04a Mon Sep 17 00:00:00 2001 From: Juri Linkov Date: Wed, 31 Mar 2010 17:55:01 +0300 Subject: [PATCH] Rename `image-extension-data' to `image-metadata'. http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01456.html * image.c: Add `Qextension_data'. (syms_of_image): Initialize and staticpro `Qextension_data'. (Fimage_metadata): Rename from `Fimage_extension_data'. (gif_load): Put GIF extension data to the property `Qextension_data'. * image.el (image-animated-p): Use `image-metadata' instead of `image-extension-data'. Get GIF extenstion data from metadata property `extension-data'. --- etc/NEWS | 4 +++- lisp/ChangeLog | 6 ++++++ lisp/image.el | 5 +++-- src/ChangeLog | 8 ++++++++ src/image.c | 20 ++++++++++++-------- 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index febdcfdc5f..5f0dd4b688 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -132,12 +132,14 @@ Secret Service API requires D-Bus for communication. ** Image API *** When the image type is one of listed in `image-animated-types' -and the number of sub-images in the image is more then one, then the +and the number of sub-images in the image is more than one, then the new function `create-animated-image' creates an animated image where sub-images are displayed successively with the duration defined by `image-animate-max-time' and the delay between sub-images defined by the Graphic Control Extension of the image. +*** `image-extension-data' is renamed to `image-metadata'. + ** Progress reporters can now "spin". The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can now be nil, or omitted. This makes a "non-numeric" reporter. Each diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 09879e7913..bdc40f44a2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2010-03-31 Juri Linkov + + * image.el (image-animated-p): Use `image-metadata' instead of + `image-extension-data'. Get GIF extenstion data from metadata + property `extension-data'. + 2010-03-31 Stefan Monnier * simple.el (append-to-buffer): Simplify. diff --git a/lisp/image.el b/lisp/image.el index 83ab6288e9..67c1ad946b 100644 --- a/lisp/image.el +++ b/lisp/image.el @@ -681,8 +681,9 @@ is the delay in 100ths of a second until the next sub-image shall be displayed." (cond ((eq (plist-get (cdr image) :type) 'gif) - (let* ((extdata (image-extension-data image)) - (images (plist-get extdata 'count)) + (let* ((metadata (image-metadata image)) + (images (plist-get metadata 'count)) + (extdata (plist-get metadata 'extension-data)) (anim (plist-get extdata #xF9))) (and (integerp images) (> images 1) (stringp anim) (>= (length anim) 4) diff --git a/src/ChangeLog b/src/ChangeLog index 3c43c80764..e223ae0f69 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2010-03-31 Juri Linkov + + * image.c: Add `Qextension_data'. + (syms_of_image): Initialize and staticpro `Qextension_data'. + (Fimage_metadata): Rename from `Fimage_extension_data'. + (gif_load): Put GIF extension data to the property + `Qextension_data'. + 2010-03-31 Eli Zaretskii * xdisp.c (highlight_trailing_whitespace): Support highlight of diff --git a/src/image.c b/src/image.c index 1265b900c6..030e06ad77 100644 --- a/src/image.c +++ b/src/image.c @@ -604,7 +604,7 @@ Lisp_Object Qxbm; extern Lisp_Object QCwidth, QCheight, QCforeground, QCbackground, QCfile; extern Lisp_Object QCdata, QCtype; extern Lisp_Object Qcenter; -Lisp_Object QCascent, QCmargin, QCrelief, Qcount; +Lisp_Object QCascent, QCmargin, QCrelief, Qcount, Qextension_data; Lisp_Object QCconversion, QCcolor_symbols, QCheuristic_mask; Lisp_Object QCindex, QCmatrix, QCcolor_adjustment, QCmask; @@ -1011,8 +1011,8 @@ or omitted means use the selected frame. */) return mask; } -DEFUN ("image-extension-data", Fimage_extension_data, Simage_extension_data, 1, 2, 0, - doc: /* Return extension data for image SPEC. +DEFUN ("image-metadata", Fimage_metadata, Simage_metadata, 1, 2, 0, + doc: /* Return metadata for image SPEC. FRAME is the frame on which the image will be displayed. FRAME nil or omitted means use the selected frame. */) (spec, frame) @@ -7169,7 +7169,7 @@ gif_clear_image (f, img) struct frame *f; struct image *img; { - /* IMG->data.ptr_val may contain extension data. */ + /* IMG->data.ptr_val may contain metadata with extension data. */ img->data.lisp_val = Qnil; x_clear_image (f, img); } @@ -7488,8 +7488,8 @@ gif_load (f, img) } } - /* Save GIF image extension data for `image-extension-data'. - Format is (count IMAGES FUNCTION "BYTES" ...). */ + /* Save GIF image extension data for `image-metadata'. + Format is (count IMAGES extension-data (FUNCTION "BYTES" ...)). */ img->data.lisp_val = Qnil; if (gif->SavedImages[ino].ExtensionBlockCount > 0) { @@ -7499,7 +7499,9 @@ gif_load (f, img) img->data.lisp_val = Fcons (make_unibyte_string (ext->Bytes, ext->ByteCount), Fcons (make_number (ext->Function), img->data.lisp_val)); - img->data.lisp_val = Fnreverse (img->data.lisp_val); + img->data.lisp_val = Fcons (Qextension_data, + Fcons (Fnreverse (img->data.lisp_val), + Qnil)); } if (gif->ImageCount > 1) img->data.lisp_val = Fcons (Qcount, @@ -8403,6 +8405,8 @@ non-numeric, there is no explicit limit on the size of images. */); Qcount = intern_c_string ("count"); staticpro (&Qcount); + Qextension_data = intern_c_string ("extension-data"); + staticpro (&Qextension_data); QCascent = intern_c_string (":ascent"); staticpro (&QCascent); @@ -8498,7 +8502,7 @@ non-numeric, there is no explicit limit on the size of images. */); defsubr (&Simage_refresh); defsubr (&Simage_size); defsubr (&Simage_mask_p); - defsubr (&Simage_extension_data); + defsubr (&Simage_metadata); #if GLYPH_DEBUG defsubr (&Simagep); -- 2.20.1