+2004-03-11 Kim F. Storm <storm@cua.dk>
+
+ The following changes consolidates the identical/similar image
+ support code previously found in xfns.c, w32fns.c, and macfns.c
+ into a new file image.c.
+
+ * makefile.w32-in (OBJ1): Add image.o.
+ ($(BLD)/image.$(O)): Add dependencies.
+
+ * Makefile.in (XOBJ, MAC_OBJ): Add image.o.
+ (image.o): Add dependencies.
+
+ * image.c: New file with consolidated image support code.
+ (COLOR_TABLE_SUPPORT): New define to control whether
+ color table support is available (X only).
+ (Bitmap_Record): Common name for x_bitmap_record,
+ w32_bitmap_record, and mac_bitmap_record.
+ (XImagePtr): Common name for pointer to XImage or equivalent.
+ (XImagePtr_or_DC): New type to simplify code sharing; equivalent
+ to XImagePtr on X+MAC, and to HDC on W32.
+ (GET_PIXEL): Wrapper for XGetPixel or equivalent.
+ (NO_PIXMAP): Common name for "None" or equivalent.
+ (PNG_BG_COLOR_SHIFT): Bits to shift PNG background colors.
+ (RGB_PIXEL_COLOR): Common type for an integer "pixel color" value.
+ (PIX_MASK_RETAIN, PIX_MASK_DRAW): Portability macros (from macfns.c).
+ (FRAME_X_VISUAL, x_defined_color, DefaultDepthOfScreen): Define
+ with suitable equivalents on W32 and MAC for code sharing.
+ (XDrawLine): Define on MAC for code sharing.
+ (Destroy_Image, Free_Pixmap): Wrappers for code sharing.
+ (IF_LIB_AVAILABLE): Macro to simplify code sharing.
+ (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
+ (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_destroy_all_bitmaps, x_create_bitmap_mask)
+ (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
+ (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
+ (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+ (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
+ (define_image_type, lookup_image_type, valid_image_p)
+ (image_error, enum image_value_type, struct image_keyword)
+ (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
+ (make_image, free_image, prepare_image_for_display, image_ascent)
+ (four_corners_best, image_background, image_background_transparent)
+ (x_clear_image_1, x_clear_image, x_alloc_image_color)
+ (make_image_cache, free_image_cache, clear_image_cache)
+ (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
+ (forall_images_in_image_cache, x_create_x_image_and_pixmap)
+ (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
+ (find_image_fsspec, image_load_qt_1, image_load_quicktime)
+ (init_image_func_pointer, image_load_quartz2d)
+ (struct ct_color, init_color_table, free_color_table)
+ (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
+ (cross_disabled_images, x_to_xcolors, x_from_xcolors)
+ (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
+ (x_disable_image, x_build_heuristic_mask)
+ (XBM support, XPM support, PBM support, PNG support, JPEG support)
+ (TIFF support, GIF support, Ghostscript support): Consolidate image
+ code from xfns.c, w32fns.c, and macfns.c.
+ (syms_of_image): Consolidate image related symbol setup here.
+ (init_image): Consolidate image related initializations here.
+
+ * emacs.c (main) [HAVE_WINDOW_SYSTEM]: Add calls to syms_of_image
+ and init_image. Remove call to init_xfns.
+
+ * macterm.h (struct mac_bitmap_record): Add file member. Not
+ currently used, but simplifies code sharing.
+
+ * macfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
+ (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_destroy_all_bitmaps, x_create_bitmap_mask)
+ (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
+ (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
+ (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+ (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
+ (define_image_type, lookup_image_type, valid_image_p)
+ (image_error, enum image_value_type, struct image_keyword)
+ (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
+ (make_image, free_image, prepare_image_for_display, image_ascent)
+ (four_corners_best, image_background, image_background_transparent)
+ (x_clear_image_1, x_clear_image, x_alloc_image_color)
+ (make_image_cache, free_image_cache, clear_image_cache)
+ (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
+ (forall_images_in_image_cache, x_create_x_image_and_pixmap)
+ (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
+ (find_image_fsspec, image_load_qt_1, image_load_quicktime)
+ (init_image_func_pointer, image_load_quartz2d)
+ (struct ct_color, init_color_table, free_color_table)
+ (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
+ (cross_disabled_images, x_to_xcolors, x_from_xcolors)
+ (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
+ (x_disable_image, x_build_heuristic_mask)
+ (XBM support, XPM support, PBM support, PNG support, JPEG support)
+ (TIFF support, GIF support, Ghostscript support): Merge with image
+ code from xfns.c and macfns.c into image.c.
+ (syms_of_xfns): Move image related symbols to image.c.
+ (init_external_image_libraries, init_xfns): Remove; initialization
+ moved to init_image in image.c.
+
+ * w32fns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
+ (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_destroy_all_bitmaps, x_create_bitmap_mask)
+ (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
+ (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+ (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
+ (define_image_type, lookup_image_type, valid_image_p)
+ (image_error, enum image_value_type, struct image_keyword)
+ (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
+ (make_image, free_image, prepare_image_for_display, image_ascent)
+ (four_corners_best, image_background, image_background_transparent)
+ (x_clear_image_1, x_clear_image, x_alloc_image_color)
+ (make_image_cache, free_image_cache, clear_image_cache)
+ (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
+ (forall_images_in_image_cache, x_create_x_image_and_pixmap)
+ (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
+ (struct ct_color, init_color_table, free_color_table)
+ (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
+ (cross_disabled_images, x_to_xcolors, x_from_xcolors)
+ (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
+ (x_disable_image, x_build_heuristic_mask)
+ (XBM support, XPM support, PBM support, PNG support, JPEG support)
+ (TIFF support, GIF support, Ghostscript support): Merge with image
+ code from xfns.c and macfns.c into image.c.
+ (syms_of_xfns): Move image related symbols to image.c.
+ (init_external_image_libraries, init_xfns): Remove; initialization
+ moved to init_image in image.c.
+
+ * xfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
+ (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_destroy_all_bitmaps, x_create_bitmap_mask)
+ (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
+ (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
+ (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
+ (define_image_type, lookup_image_type, valid_image_p)
+ (image_error, enum image_value_type, struct image_keyword)
+ (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
+ (make_image, free_image, prepare_image_for_display, image_ascent)
+ (four_corners_best, image_background, image_background_transparent)
+ (x_clear_image_1, x_clear_image, x_alloc_image_color)
+ (make_image_cache, free_image_cache, clear_image_cache)
+ (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
+ (forall_images_in_image_cache, x_create_x_image_and_pixmap)
+ (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
+ (struct ct_color, init_color_table, free_color_table)
+ (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
+ (cross_disabled_images, x_to_xcolors, x_from_xcolors)
+ (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
+ (x_disable_image, x_build_heuristic_mask)
+ (XBM support, XPM support, PBM support, PNG support, JPEG support)
+ (TIFF support, GIF support, Ghostscript support): Merge with
+ w32fns.c and macfns.c image code into image.c.
+ (syms_of_xfns): Move image related symbols to image.c.
+ (init_xfns): Remove; initialization moved to init_image in image.c.
+
+ * lisp.h (syms_of_image, init_image): Add protoypes.
+ (init_xfns): Remove prototype.
+
+ * dispextern.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_create_bitmap_mask): Move prototypes from dispextern.h.
+ (gamma_correct) [MAC_OS]: Add prototype.
+
+ * xterm.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
+ (x_reference_bitmap, x_create_bitmap_from_data)
+ (x_create_bitmap_from_file, x_destroy_bitmap)
+ (x_create_bitmap_mask): Move prototypes to dispextern.h.
+
2004-03-09 Kenichi Handa <handa@etlken2>
* coding.c (decode_coding_emacs_mule): Handle insufficent source