+2000-10-02 Gerd Moellmann <gerd@gnu.org>
+
+ * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
+ return with a string converted to an integer or vice versa when
+ Vmocklisp_arguments is t.
+ (Fsignal): Likewise. The function can return for `quit'.
+ (struct gcpro): Declare member `var' to point to a volatile
+ Lisp_Object.
+
+ * eval.c (error): Prevent compiler warning.
+
+2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
+
+ * keymap.c (keymap_memberp): New function.
+ (Fset_keymap_parent): Use it.
+ (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
+ Use keymap_memberp to avoid creating cycles.
+ (access_keymap): Use KEYMAPP.
+
+2000-09-30 Gerd Moellmann <gerd@gnu.org>
+
+ * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
+ gai_strerror. Make sure xerrno is set if connect fails. Improve
+ error recovery.
+
+2000-09-29 Jason Rumney <jasonr@gnu.org>
+
+ * w32term.c (w32_char_font_type, w32_encode_char)
+ (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
+ (w32_bdf_per_char_metric): New function.
+ (w32_per_char_metric): Use it.
+ (x_draw_glyph_string_background): Always draw background for BDF
+ glyphs.
+
+ * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
+ GDI object which is a scarce resource.
+
+ * w32bdf.c (search_file_line): Fix skipping of whitespace.
+ (get_quoted_string): Fix limit on memchr search.
+ (set_bdf_font_info): Use unsigned chars. Negate yoffset.
+ (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
+ (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
+ (get_cached_font_char, cache_char_offset): Use macro
+ BDF_CODEPOINT_RANGE_COVER_P.
+ (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
+ (clear_cached_bitmap_slots): New function.
+ (GET_HEX_VALUE): G-Z, g-z are not hex.
+ (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
+ (get_bitmap_with_cache): Use new cache implementation.
+ (create_offscreen_bitmap): New function.
+ (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
+
+ * w32term.c (x_produce_glyphs): If the distance from the current
+ position to the next tab stop is less than a canonical character
+ width, use the tab stop after that.
+ (x_draw_glyphs): Handle case START and END are out of bounds more
+ carefully.
+ (x_clear_mouse_face): Block/unblock input.
+ (x_display_and_set_cursor): Don't show a hollow box cursor for
+ buffers whose cursor_type is nil.
+
+2000-09-29 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
+ disappears.
+
+ * dispextern.h (updating_frame): Declare extern.
+
+2000-09-29 Andreas Schwab <schwab@suse.de>
+
+ * m/ia64.h: Remove hack of not prototyping bcopy, etc.
+
+2000-09-29 Gerd Moellmann <gerd@gnu.org>
+
+ * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
+ use its function definition.
+ (tool_bar_items): Likewise.
+
+ * lisp.h (fatal): Declare NO_RETURN.
+
+2000-09-29 Kenichi Handa <handa@etl.go.jp>
+
+ * keymap.c: Remove the line "#undef NULL".
+
+2000-09-28 Gerd Moellmann <gerd@gnu.org>
+
+ * xterm.c (x_make_frame_visible): Try harder to make the frame
+ visible.
+
+2000-09-28 Dave Love <fx@gnu.org>
+
+ * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
+
+ * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
+
+ * .gdbinit (xreload): Note its need on GNU/Linux.
+
+ * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
+ r_alloc, r_alloc_free.
+
+2000-09-28 Kenichi Handa <handa@etl.go.jp>
+
+ * syntax.c (skip_chars): Handle negation correctly.
+
+2000-09-27 Gerd Moellmann <gerd@gnu.org>
+
+ * xfaces.c (realize_default_face): Call set_lface_from_font_name
+ with non-zero FORCE_P argument.
+
+ * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
+ Add assertions.
+
+ * xdisp.c (window_box_height): Add an assertion.
+
+ * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
+ tool-bar than is available.
+ (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
+
+2000-09-27 Dave Love <fx@gnu.org>
+
+ * s/irix6-5.h: Now works 64-bit. Tidied.
+
+2000-09-26 Gerd Moellmann <gerd@gnu.org>
+
+ * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
+ instead of BITS_PER_INT.
+ (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
+ EMACS_UINT, respectively.
+ (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
+
+ * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
+
+ * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
+
+ * window.c (freeze_window_starts): Construct last argument for
+ foreach_window differently.
+
+ * xfns.c (x_decode_color): Don't return a Lisp_Object.
+
+ * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
+ EMACS_UINT instead of `int' and `unsigned int'.
+ (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
+
+ * frame.h (struct frame): Make the `nothing' member of union
+ output_data an EMACS_INT.
+
+ * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
+ hunting.
+ (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
+ size in the sdata structure.
+ (SDATA_NBYTES, SDATA_DATA): New macros.
+ (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
+ differently for the different layout of the sdata structure.
+ (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
+ in sdata.
+ (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
+ Check that size recorded in the string size and size recorded in
+ the sdata structure agree.
+
+2000-09-25 Dave Love <fx@gnu.org>
+
+ * buffer.c: Include stdio.h.
+
+ Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
+
+ * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
+
+ * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
+ (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
+ size_t.
+ (__malloc_extra_blocks): Declare as __malloc_size_t.
+
+2000-09-25 Gerd Moellmann <gerd@gnu.org>
+
+ * alloc.c (mark_image): Use GC_NILP instead of NILP.
+
+ * keyboard.c (show_help_echo): Set help_echo_showing_p.
+ (read_char): If help-echo is showing, preserve the echo area
+ when redisplaying.
+
+ * xdisp.c (help_echo_showing_p): New variable.
+ (set_message): Reset it to 0.
+ (init_xdisp): Initialize help_echo_showing_p.
+
+ * dispextern.h (help_echo_showing_p): Declare extern.
+
+ * config.in: Fix typo in __GNUC_MINOR__.
+
+ * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
+
+ * s/freebsd.h (POSIX_SIGNALS): Define.
+
+ * xterm.c (x_clear_mouse_face): Block/unblock input.
+
+2000-09-24 Dave Love <fx@gnu.org>
+
+ * fns.c (base64_encode_1): Fix last change.
+
+2000-09-22 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
+
+ * xdisp.c (try_window_reusing_current_matrix): More fixes
+ for the case window has a header-line.
+
+2000-09-22 Dave Love <fx@gnu.org>
+
+ * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
+ a doc string.
+
+ * xterm.c [SOLARIS2]: Remove redundant include of string.h.
+
+ * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
+
+2000-09-21 Gerd Moellmann <gerd@gnu.org>
+
+ * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
+ for GCC >= 2.5.
+
+ * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
+ NO_RETURN.
+
+ * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
+ * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
+ * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
+ warnings.
+
+ * marker.c (byte_char_debug_check): Return void.
+
+ * xfns.c (Fx_create_frame): Set default frame parameter value
+ for tool-bar-lines to 1.
+
+ * dispnew.c (scrolling_window): Compare y-positions of rows
+ equal at the start. Some simplification.
+
+ * xdisp.c (try_window_reusing_current_matrix): Fix computation of
+ reused rows' y-position in the case window has a header-line, and
+ new window start is greater than old window start.
+
+ * process.c (process_sent_to): New variable.
+ (send_process): Workaround for a crash on sparc-sun-solaris-2.6
+ with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
+ Declare more parameters volatile.
+
+ * lread.c (Vrecursive_load_depth_limit): New variable.
+ (Fload): Check recursive loads whose recursion depth exceeds
+ Vrecursive_load_depth_limit.
+ (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
+
+2000-09-20 Gerd Moellmann <gerd@gnu.org>
+
+ * fileio.c (Fread_file_name): Doc fix.
+
+ * editfns.c (Fmessage_or_box): Doc fix.
+
+ * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
+
+ * xfns.c (xbm_scan): Allow C-style comments.
+
+ * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
+ symbols are specified, add color translations to the cache.
+ (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
+ functions.
+ (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
+ xpm_cache_color.
+ (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
+ structures to xpm_init_color_cache.
+
+2000-09-19 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (update_window_line): Make sure to always draw
+ mode-lines.
+
+2000-09-19 Andrew Innes <andrewi@gnu.org>
+
+ * makefile.nt (bootstrap-emacs): Don't change directory.
+
+2000-09-19 Kenichi Handa <handa@etl.go.jp>
+
+ * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
+
+ * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
+ If output buffer is too small, signal an appropriated error.
+
+2000-09-18 Dave Love <fx@gnu.org>
+
+ * keyboard.c (menu_bar_items, tool_bar_items)
+ (current_active_maps): Remove redundant get_local_map call.
+
+2000-09-18 Gerd Moellmann <gerd@gnu.org>
+
+ * xterm.c (x_display_and_set_cursor): Don't show a hollow box
+ cursor for buffers whose cursor_type is nil.
+
+ * xterm.c (x_draw_image_glyph_string): Remove a comment describing
+ a feature to implement that is already implemented.
+ (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
+ warnings.
+
+ * xfns.c (x_clear_image_1): New function.
+ (x_clear_image): Use it.
+ (x_from_xcolors): Use x_clear_image_1; don't free the image's
+ mask.
+
+ * dispnew.c (update_window): Move test for invisible lines
+ at the top to update_window_line.
+ (update_window_line): Handle invisible lines here.
+
+ * xfns.c (clear_image_cache): Clear current matrices of all
+ frames sharing an image cache. Block input while freeing
+ images. Fix timestamp comparison.
+ (x_clear_image): Also free the mask.
+
+ * xfns.c (lookup_image): Block input while loading the image so
+ that we won't get interrupted in a state where the image isn't yet
+ set up completely.
+ (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
+ (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
+ (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
+ (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
+ input.
+
+2000-09-16 Gerd Moellmann <gerd@gnu.org>
+
+ * dispnew.c (update_window): Make sure to make desired rows
+ current even if they are completely invisible at the top
+ of a window.
+
+2000-09-15 Gerd Moellmann <gerd@gnu.org>
+
+ * xfns.c (lookup_image): Build mask before applying an algorithm.
+ Recognize algorithm `disabled'.
+ (cross_disabled_images): New variable.
+ (COLOR_INTENSITY): New macro.
+ (x_detect_edges): Use COLOR_INTENSITY.
+ (x_disable_image): New function.
+ (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
+
+ * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
+ disabled state, don't apply an image transformation algorithm if
+ the user specified an image for the disabled state. Use
+ `:algorithm disabled' for creating a disabled item's image if the
+ user hasn't specified an image.
+
+ * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
+ allocation functions with the XPM lib.
+ (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
+ (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
+ (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
+ (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
+ (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
+ functions.
+ (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
+ functions, if possible, because these handle color allocation
+ failure more gracefully.
+ (Fimage_mask_p): New function.
+
+ * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
+ (Qedge_detection, Qheuristic): New symbols.
+ (syms_of_xfns): Initialize new symbols.
+ (lookup_image): Handle `:mask X', `:algorithm emboss', and
+ `algorithm (edge-detection ...)'.
+ (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
+ (tiff_format, gif_format, gs_format): Add `:mask'.
+ (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
+ (GIF_MASK, GS_MASK): New enumerators.
+ (x_laplace_read_row, x_laplace_write_row): Functions removed.
+ (emboss_matrix, laplace_matrix): New variables.
+ (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
+ (x_edge_detection): New functions.
+ (x_laplace): Rewritten in terms of x_detect_edges.
+ (x_build_heuristic_mask): If image has a mask, free it.
+