# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1147249400 0 # Node ID de135c2adb2fb211e93b1246516312ca883d13b4 # Parent a1af34eacdb370116eab38f735ecf0fd8addb28b (Qduration) [MAC_OS]: Undo previous change. (syms_of_image) [MAC_OS]: Likewise. [MAC_OS] (gif_load): Emulate Graphic Control Extension block. diff -r a1af34eacdb3 -r de135c2adb2f src/image.c --- 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);