diff options
| author | Juanma Barranquero | 2003-01-27 22:19:26 +0000 |
|---|---|---|
| committer | Juanma Barranquero | 2003-01-27 22:19:26 +0000 |
| commit | c922a224f818a8311b078e632e2b8ea686fa0520 (patch) | |
| tree | dfa386da35e7b4345e9bfd191f119f5dd79bf52c /src | |
| parent | a6098104453ac6d447c1191ed29d02c9055d7281 (diff) | |
| download | emacs-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/ChangeLog | 5 | ||||
| -rw-r--r-- | src/w32fns.c | 71 |
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 @@ | |||
| 1 | 2003-01-27 Juanma Barranquero <lektu@terra.es> | ||
| 2 | |||
| 3 | * w32fns.c (init_external_image_libraries): Try alternate names for the | ||
| 4 | jpeg dll. | ||
| 5 | |||
| 1 | 2003-01-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | 6 | 2003-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 | ||
| 2367 | void | 2367 | void |
| @@ -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 | ||
| 9349 | static int x_create_x_image_and_pixmap P_ ((struct frame *, int, int, int, | 9349 | static 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); | |||
| 11643 | DEF_IMGLIB_FN (png_create_info_struct); | 11643 | DEF_IMGLIB_FN (png_create_info_struct); |
| 11644 | DEF_IMGLIB_FN (png_destroy_read_struct); | 11644 | DEF_IMGLIB_FN (png_destroy_read_struct); |
| 11645 | DEF_IMGLIB_FN (png_set_read_fn); | 11645 | DEF_IMGLIB_FN (png_set_read_fn); |
| 11646 | DEF_IMGLIB_FN (png_init_io); | 11646 | DEF_IMGLIB_FN (png_init_io); |
| 11647 | DEF_IMGLIB_FN (png_set_sig_bytes); | 11647 | DEF_IMGLIB_FN (png_set_sig_bytes); |
| 11648 | DEF_IMGLIB_FN (png_read_info); | 11648 | DEF_IMGLIB_FN (png_read_info); |
| 11649 | DEF_IMGLIB_FN (png_get_IHDR); | 11649 | DEF_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 | ||
| 12391 | static int | 12391 | static int |
| 12392 | jpeg_load (f, img) | 12392 | jpeg_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); |