Mercurial > emacs
changeset 70560:de135c2adb2f
(Qduration) [MAC_OS]: Undo previous change.
(syms_of_image) [MAC_OS]: Likewise.
[MAC_OS] (gif_load): Emulate Graphic Control Extension block.
author | YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> |
---|---|
date | Wed, 10 May 2006 08:23:20 +0000 |
parents | a1af34eacdb3 |
children | 083b25be83bd |
files | src/image.c |
diffstat | 1 files changed, 15 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/image.c Wed May 10 08:22:39 2006 +0000 +++ b/src/image.c Wed May 10 08:23:20 2006 +0000 @@ -7899,8 +7899,6 @@ #else /* !HAVE_GIF */ #ifdef MAC_OS -static Lisp_Object Qduration; - static int gif_load (f, img) struct frame *f; @@ -8067,9 +8065,21 @@ DisposeHandle (dh); /* Save GIF image extension data for `image-extension-data'. - Format is (count IMAGES duration DURATION). */ - img->data.lisp_val = list4 (Qcount, make_number (nsamples), Qduration, - make_float ((double)duration / time_scale)); + Format is (count IMAGES 0xf9 GRAPHIC_CONTROL_EXTENSION_BLOCK). */ + { + unsigned char gce[4]; + int centisec = ((float)duration / time_scale) * 100.0f + 0.5f; + + /* Fill the delay time field. */ + gce[1] = centisec & 0xff; + gce[2] = (centisec >> 8) & 0xff; + /* We don't know about other fields. */ + gce[0] = gce[3] = 0; + + img->data.lisp_val = list4 (Qcount, make_number (nsamples), + make_number (0xf9), + make_unibyte_string (gce, 4)); + } /* Maybe fill in the background field while we have ximg handy. */ if (NILP (image_spec_value (img->spec, QCbackground, NULL))) @@ -8626,11 +8636,6 @@ ADD_IMAGE_TYPE(Qgif); #endif -#ifdef MAC_OS - Qduration = intern ("duration"); - staticpro (&Qduration); -#endif - #if defined (HAVE_PNG) || defined (MAC_OS) Qpng = intern ("png"); staticpro (&Qpng);