aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJuanma Barranquero2003-01-27 22:19:26 +0000
committerJuanma Barranquero2003-01-27 22:19:26 +0000
commitc922a224f818a8311b078e632e2b8ea686fa0520 (patch)
treedfa386da35e7b4345e9bfd191f119f5dd79bf52c /src
parenta6098104453ac6d447c1191ed29d02c9055d7281 (diff)
downloademacs-c922a224f818a8311b078e632e2b8ea686fa0520.tar.gz
emacs-c922a224f818a8311b078e632e2b8ea686fa0520.zip
(init_external_image_libraries): Try alternate names for the jpeg dll.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/w32fns.c71
2 files changed, 41 insertions, 35 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 90e21f34142..d9cddaa611d 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12003-01-27 Juanma Barranquero <lektu@terra.es>
2
3 * w32fns.c (init_external_image_libraries): Try alternate names for the
4 jpeg dll.
5
12003-01-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> 62003-01-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
2 7
3 * gtkutil.c (create_dialog, xg_separator_p) 8 * gtkutil.c (create_dialog, xg_separator_p)
diff --git a/src/w32fns.c b/src/w32fns.c
index 0747e4b9e52..67104188e5d 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -2361,7 +2361,7 @@ x_set_cursor_type (f, arg, oldval)
2361 set_frame_cursor_types (f, arg); 2361 set_frame_cursor_types (f, arg);
2362 2362
2363 /* Make sure the cursor gets redrawn. */ 2363 /* Make sure the cursor gets redrawn. */
2364 cursor_type_changed = 1; 2364 cursor_type_changed = 1;
2365} 2365}
2366 2366
2367void 2367void
@@ -5090,7 +5090,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
5090 return 0; 5090 return 0;
5091 5091
5092 goto dflt; 5092 goto dflt;
5093 5093
5094 case WM_EMACS_SETCURSOR: 5094 case WM_EMACS_SETCURSOR:
5095 { 5095 {
5096 Cursor cursor = (Cursor) wParam; 5096 Cursor cursor = (Cursor) wParam;
@@ -5098,7 +5098,7 @@ w32_wnd_proc (hwnd, msg, wParam, lParam)
5098 SetCursor (cursor); 5098 SetCursor (cursor);
5099 return 0; 5099 return 0;
5100 } 5100 }
5101 5101
5102 case WM_EMACS_CREATESCROLLBAR: 5102 case WM_EMACS_CREATESCROLLBAR:
5103 return (LRESULT) w32_createscrollbar ((struct frame *) wParam, 5103 return (LRESULT) w32_createscrollbar ((struct frame *) wParam,
5104 (struct scroll_bar *) lParam); 5104 (struct scroll_bar *) lParam);
@@ -8789,7 +8789,7 @@ image_background_transparent (img, f, mask)
8789 mask = CreateCompatibleDC (frame_dc); 8789 mask = CreateCompatibleDC (frame_dc);
8790 release_frame_dc (f, frame_dc); 8790 release_frame_dc (f, frame_dc);
8791 8791
8792 prev = SelectObject (mask, img->mask); 8792 prev = SelectObject (mask, img->mask);
8793 } 8793 }
8794 8794
8795 img->background_transparent 8795 img->background_transparent
@@ -9339,12 +9339,12 @@ forall_images_in_image_cache (f, fn)
9339 9339
9340/* Macro for defining functions that will be loaded from image DLLs. */ 9340/* Macro for defining functions that will be loaded from image DLLs. */
9341#define DEF_IMGLIB_FN(func) FARPROC fn_##func 9341#define DEF_IMGLIB_FN(func) FARPROC fn_##func
9342 9342
9343/* Macro for loading those image functions from the library. */ 9343/* Macro for loading those image functions from the library. */
9344#define LOAD_IMGLIB_FN(lib,func) { \ 9344#define LOAD_IMGLIB_FN(lib,func) { \
9345 fn_##func = (void *) GetProcAddress (lib, #func); \ 9345 fn_##func = (void *) GetProcAddress (lib, #func); \
9346 if (!fn_##func) return 0; \ 9346 if (!fn_##func) return 0; \
9347 } 9347 }
9348 9348
9349static int x_create_x_image_and_pixmap P_ ((struct frame *, int, int, int, 9349static int x_create_x_image_and_pixmap P_ ((struct frame *, int, int, int,
9350 XImage **, Pixmap *)); 9350 XImage **, Pixmap *));
@@ -10055,7 +10055,7 @@ static void convert_mono_to_color_image (f, img, foreground, background)
10055 0, 0, SRCCOPY); 10055 0, 0, SRCCOPY);
10056 10056
10057 SelectObject (old_img_dc, old_prev); 10057 SelectObject (old_img_dc, old_prev);
10058 SelectObject (new_img_dc, new_prev); 10058 SelectObject (new_img_dc, new_prev);
10059 DeleteDC (old_img_dc); 10059 DeleteDC (old_img_dc);
10060 DeleteDC (new_img_dc); 10060 DeleteDC (new_img_dc);
10061 DeleteObject (img->pixmap); 10061 DeleteObject (img->pixmap);
@@ -11643,7 +11643,7 @@ DEF_IMGLIB_FN (png_create_read_struct);
11643DEF_IMGLIB_FN (png_create_info_struct); 11643DEF_IMGLIB_FN (png_create_info_struct);
11644DEF_IMGLIB_FN (png_destroy_read_struct); 11644DEF_IMGLIB_FN (png_destroy_read_struct);
11645DEF_IMGLIB_FN (png_set_read_fn); 11645DEF_IMGLIB_FN (png_set_read_fn);
11646DEF_IMGLIB_FN (png_init_io); 11646DEF_IMGLIB_FN (png_init_io);
11647DEF_IMGLIB_FN (png_set_sig_bytes); 11647DEF_IMGLIB_FN (png_set_sig_bytes);
11648DEF_IMGLIB_FN (png_read_info); 11648DEF_IMGLIB_FN (png_read_info);
11649DEF_IMGLIB_FN (png_get_IHDR); 11649DEF_IMGLIB_FN (png_get_IHDR);
@@ -11670,7 +11670,7 @@ init_png_functions (library)
11670 LOAD_IMGLIB_FN (library, png_create_info_struct); 11670 LOAD_IMGLIB_FN (library, png_create_info_struct);
11671 LOAD_IMGLIB_FN (library, png_destroy_read_struct); 11671 LOAD_IMGLIB_FN (library, png_destroy_read_struct);
11672 LOAD_IMGLIB_FN (library, png_set_read_fn); 11672 LOAD_IMGLIB_FN (library, png_set_read_fn);
11673 LOAD_IMGLIB_FN (library, png_init_io); 11673 LOAD_IMGLIB_FN (library, png_init_io);
11674 LOAD_IMGLIB_FN (library, png_set_sig_bytes); 11674 LOAD_IMGLIB_FN (library, png_set_sig_bytes);
11675 LOAD_IMGLIB_FN (library, png_read_info); 11675 LOAD_IMGLIB_FN (library, png_read_info);
11676 LOAD_IMGLIB_FN (library, png_get_IHDR); 11676 LOAD_IMGLIB_FN (library, png_get_IHDR);
@@ -11697,7 +11697,7 @@ png_image_p (object)
11697{ 11697{
11698 struct image_keyword fmt[PNG_LAST]; 11698 struct image_keyword fmt[PNG_LAST];
11699 bcopy (png_format, fmt, sizeof fmt); 11699 bcopy (png_format, fmt, sizeof fmt);
11700 11700
11701 if (!parse_image_spec (object, fmt, PNG_LAST, Qpng)) 11701 if (!parse_image_spec (object, fmt, PNG_LAST, Qpng))
11702 return 0; 11702 return 0;
11703 11703
@@ -11754,7 +11754,7 @@ png_read_from_memory (png_ptr, data, length)
11754 11754
11755 if (length > tbr->len - tbr->index) 11755 if (length > tbr->len - tbr->index)
11756 fn_png_error (png_ptr, "Read error"); 11756 fn_png_error (png_ptr, "Read error");
11757 11757
11758 bcopy (tbr->bytes + tbr->index, data, length); 11758 bcopy (tbr->bytes + tbr->index, data, length);
11759 tbr->index = tbr->index + length; 11759 tbr->index = tbr->index + length;
11760} 11760}
@@ -11896,14 +11896,14 @@ png_load (f, img)
11896 fn_png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type, 11896 fn_png_get_IHDR (png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,
11897 &interlace_type, NULL, NULL); 11897 &interlace_type, NULL, NULL);
11898 11898
11899 /* If image contains simply transparency data, we prefer to 11899 /* If image contains simply transparency data, we prefer to
11900 construct a clipping mask. */ 11900 construct a clipping mask. */
11901 if (fn_png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) 11901 if (fn_png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS))
11902 transparent_p = 1; 11902 transparent_p = 1;
11903 else 11903 else
11904 transparent_p = 0; 11904 transparent_p = 0;
11905 11905
11906 /* This function is easier to write if we only have to handle 11906 /* This function is easier to write if we only have to handle
11907 one data format: RGB or RGBA with 8 bits per channel. Let's 11907 one data format: RGB or RGBA with 8 bits per channel. Let's
11908 transform other formats into that format. */ 11908 transform other formats into that format. */
11909 11909
@@ -11916,7 +11916,7 @@ png_load (f, img)
11916 fn_png_set_expand (png_ptr); 11916 fn_png_set_expand (png_ptr);
11917 11917
11918 /* Convert grayscale images to RGB. */ 11918 /* Convert grayscale images to RGB. */
11919 if (color_type == PNG_COLOR_TYPE_GRAY 11919 if (color_type == PNG_COLOR_TYPE_GRAY
11920 || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) 11920 || color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
11921 fn_png_set_gray_to_rgb (png_ptr); 11921 fn_png_set_gray_to_rgb (png_ptr);
11922 11922
@@ -11965,14 +11965,14 @@ png_load (f, img)
11965 } 11965 }
11966 } 11966 }
11967 else if (fn_png_get_bKGD (png_ptr, info_ptr, &image_bg)) 11967 else if (fn_png_get_bKGD (png_ptr, info_ptr, &image_bg))
11968 /* Image contains a background color with which to 11968 /* Image contains a background color with which to
11969 combine the image. */ 11969 combine the image. */
11970 fn_png_set_background (png_ptr, image_bg, 11970 fn_png_set_background (png_ptr, image_bg,
11971 PNG_BACKGROUND_GAMMA_FILE, 1, 1.0); 11971 PNG_BACKGROUND_GAMMA_FILE, 1, 1.0);
11972 else 11972 else
11973 { 11973 {
11974 /* Image does not contain a background color with which 11974 /* Image does not contain a background color with which
11975 to combine the image data via an alpha channel. Use 11975 to combine the image data via an alpha channel. Use
11976 the frame's background instead. */ 11976 the frame's background instead. */
11977 COLORREF color; 11977 COLORREF color;
11978 png_color_16 frame_background; 11978 png_color_16 frame_background;
@@ -12022,12 +12022,12 @@ png_load (f, img)
12022 fclose (fp); 12022 fclose (fp);
12023 fp = NULL; 12023 fp = NULL;
12024 } 12024 }
12025 12025
12026 /* Create the X image and pixmap. */ 12026 /* Create the X image and pixmap. */
12027 if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg, 12027 if (!x_create_x_image_and_pixmap (f, width, height, 0, &ximg,
12028 &img->pixmap)) 12028 &img->pixmap))
12029 goto error; 12029 goto error;
12030 12030
12031 /* Create an image and pixmap serving as mask if the PNG image 12031 /* Create an image and pixmap serving as mask if the PNG image
12032 contains an alpha channel. */ 12032 contains an alpha channel. */
12033 if (channels == 4 12033 if (channels == 4
@@ -12062,16 +12062,16 @@ png_load (f, img)
12062 XPutPixel (ximg, x, y, PALETTERGB (r, g, b)); 12062 XPutPixel (ximg, x, y, PALETTERGB (r, g, b));
12063#endif 12063#endif
12064 /* An alpha channel, aka mask channel, associates variable 12064 /* An alpha channel, aka mask channel, associates variable
12065 transparency with an image. Where other image formats 12065 transparency with an image. Where other image formats
12066 support binary transparency---fully transparent or fully 12066 support binary transparency---fully transparent or fully
12067 opaque---PNG allows up to 254 levels of partial transparency. 12067 opaque---PNG allows up to 254 levels of partial transparency.
12068 The PNG library implements partial transparency by combining 12068 The PNG library implements partial transparency by combining
12069 the image with a specified background color. 12069 the image with a specified background color.
12070 12070
12071 I'm not sure how to handle this here nicely: because the 12071 I'm not sure how to handle this here nicely: because the
12072 background on which the image is displayed may change, for 12072 background on which the image is displayed may change, for
12073 real alpha channel support, it would be necessary to create 12073 real alpha channel support, it would be necessary to create
12074 a new image for each possible background. 12074 a new image for each possible background.
12075 12075
12076 What I'm doing now is that a mask is created if we have 12076 What I'm doing now is that a mask is created if we have
12077 boolean transparency information. Otherwise I'm using 12077 boolean transparency information. Otherwise I'm using
@@ -12262,9 +12262,9 @@ jpeg_image_p (object)
12262 Lisp_Object object; 12262 Lisp_Object object;
12263{ 12263{
12264 struct image_keyword fmt[JPEG_LAST]; 12264 struct image_keyword fmt[JPEG_LAST];
12265 12265
12266 bcopy (jpeg_format, fmt, sizeof fmt); 12266 bcopy (jpeg_format, fmt, sizeof fmt);
12267 12267
12268 if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg)) 12268 if (!parse_image_spec (object, fmt, JPEG_LAST, Qjpeg))
12269 return 0; 12269 return 0;
12270 12270
@@ -12335,7 +12335,7 @@ our_skip_input_data (cinfo, num_bytes)
12335 { 12335 {
12336 if (num_bytes > src->bytes_in_buffer) 12336 if (num_bytes > src->bytes_in_buffer)
12337 ERREXIT (cinfo, JERR_INPUT_EOF); 12337 ERREXIT (cinfo, JERR_INPUT_EOF);
12338 12338
12339 src->bytes_in_buffer -= num_bytes; 12339 src->bytes_in_buffer -= num_bytes;
12340 src->next_input_byte += num_bytes; 12340 src->next_input_byte += num_bytes;
12341 } 12341 }
@@ -12373,7 +12373,7 @@ jpeg_memory_src (cinfo, data, len)
12373 src = (struct jpeg_source_mgr *) cinfo->src; 12373 src = (struct jpeg_source_mgr *) cinfo->src;
12374 src->next_input_byte = data; 12374 src->next_input_byte = data;
12375 } 12375 }
12376 12376
12377 src = (struct jpeg_source_mgr *) cinfo->src; 12377 src = (struct jpeg_source_mgr *) cinfo->src;
12378 src->init_source = our_init_source; 12378 src->init_source = our_init_source;
12379 src->fill_input_buffer = our_fill_input_buffer; 12379 src->fill_input_buffer = our_fill_input_buffer;
@@ -12388,7 +12388,7 @@ jpeg_memory_src (cinfo, data, len)
12388/* Load image IMG for use on frame F. Patterned after example.c 12388/* Load image IMG for use on frame F. Patterned after example.c
12389 from the JPEG lib. */ 12389 from the JPEG lib. */
12390 12390
12391static int 12391static int
12392jpeg_load (f, img) 12392jpeg_load (f, img)
12393 struct frame *f; 12393 struct frame *f;
12394 struct image *img; 12394 struct image *img;
@@ -12421,7 +12421,7 @@ jpeg_load (f, img)
12421 UNGCPRO; 12421 UNGCPRO;
12422 return 0; 12422 return 0;
12423 } 12423 }
12424 12424
12425 fp = fopen (SDATA (file), "r"); 12425 fp = fopen (SDATA (file), "r");
12426 if (fp == NULL) 12426 if (fp == NULL)
12427 { 12427 {
@@ -12435,7 +12435,7 @@ jpeg_load (f, img)
12435 error is detected. This function will perform a longjmp. */ 12435 error is detected. This function will perform a longjmp. */
12436 cinfo.err = fn_jpeg_std_error (&mgr.pub); 12436 cinfo.err = fn_jpeg_std_error (&mgr.pub);
12437 mgr.pub.error_exit = my_error_exit; 12437 mgr.pub.error_exit = my_error_exit;
12438 12438
12439 if ((rc = setjmp (mgr.setjmp_buffer)) != 0) 12439 if ((rc = setjmp (mgr.setjmp_buffer)) != 0)
12440 { 12440 {
12441 if (rc == 1) 12441 if (rc == 1)
@@ -12446,7 +12446,7 @@ jpeg_load (f, img)
12446 image_error ("Error reading JPEG image `%s': %s", img->spec, 12446 image_error ("Error reading JPEG image `%s': %s", img->spec,
12447 build_string (buffer)); 12447 build_string (buffer));
12448 } 12448 }
12449 12449
12450 /* Close the input file and destroy the JPEG object. */ 12450 /* Close the input file and destroy the JPEG object. */
12451 if (fp) 12451 if (fp)
12452 fclose ((FILE *) fp); 12452 fclose ((FILE *) fp);
@@ -12457,7 +12457,7 @@ jpeg_load (f, img)
12457 12457
12458 /* Free pixmap and colors. */ 12458 /* Free pixmap and colors. */
12459 x_clear_image (f, img); 12459 x_clear_image (f, img);
12460 12460
12461 UNGCPRO; 12461 UNGCPRO;
12462 return 0; 12462 return 0;
12463 } 12463 }
@@ -12509,7 +12509,7 @@ jpeg_load (f, img)
12509#endif 12509#endif
12510 colors = (unsigned long *) alloca (cinfo.actual_number_of_colors 12510 colors = (unsigned long *) alloca (cinfo.actual_number_of_colors
12511 * sizeof *colors); 12511 * sizeof *colors);
12512 12512
12513 for (i = 0; i < cinfo.actual_number_of_colors; ++i) 12513 for (i = 0; i < cinfo.actual_number_of_colors; ++i)
12514 { 12514 {
12515 int r = cinfo.colormap[ir][i]; 12515 int r = cinfo.colormap[ir][i];
@@ -12549,7 +12549,7 @@ jpeg_load (f, img)
12549 /* Maybe fill in the background field while we have ximg handy. */ 12549 /* Maybe fill in the background field while we have ximg handy. */
12550 if (NILP (image_spec_value (img->spec, QCbackground, NULL))) 12550 if (NILP (image_spec_value (img->spec, QCbackground, NULL)))
12551 IMAGE_BACKGROUND (img, f, ximg); 12551 IMAGE_BACKGROUND (img, f, ximg);
12552 12552
12553 /* Put the image into the pixmap. */ 12553 /* Put the image into the pixmap. */
12554 x_put_x_image (f, ximg, img->pixmap, width, height); 12554 x_put_x_image (f, ximg, img->pixmap, width, height);
12555 x_destroy_x_image (ximg); 12555 x_destroy_x_image (ximg);
@@ -15649,7 +15649,7 @@ versions of Windows) characters. */);
15649 defsubr (&Sx_file_dialog); 15649 defsubr (&Sx_file_dialog);
15650} 15650}
15651 15651
15652 15652
15653/* 15653/*
15654 globals_of_w32fns is used to initialize those global variables that 15654 globals_of_w32fns is used to initialize those global variables that
15655 must always be initialized on startup even when the global variable 15655 must always be initialized on startup even when the global variable
@@ -15680,7 +15680,8 @@ init_external_image_libraries ()
15680 15680
15681#if HAVE_JPEG 15681#if HAVE_JPEG
15682 /* Try loading jpeg library under probable names. */ 15682 /* Try loading jpeg library under probable names. */
15683 if (library = LoadLibrary ("jpeg.dll")) 15683 if ((library = LoadLibrary ("libjpeg.dll"))
15684 || (library = LoadLibrary ("jpeg.dll")))
15684 { 15685 {
15685 if (init_jpeg_functions (library)) 15686 if (init_jpeg_functions (library))
15686 define_image_type (&jpeg_type); 15687 define_image_type (&jpeg_type);