*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
index 65491e0..95a1d8f 100644 (file)
@@ -1,3 +1,847 @@
+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
+       `:algorthm 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.
+
+2000-09-14  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in: Revert to Unix line endings.
+
+2000-09-14  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in: Standardize indentation somewhat.
+       (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
+       cater for differences between shells.
+
+       * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
+
+2000-09-14  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.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.
+
+2000-09-14  Dave Love  <fx@gnu.org>
+
+       * buffer.c (alloc_buffer_text): Fix xmalloc call.
+
+2000-09-14  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (handle_fontified_prop): While running fontification
+       functions, bind `fontification-functions' and
+       `after-change-functions' to nil.
+
+       * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
+       (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
+
+       * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
+
+       * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
+       USE_MMAP_FOR_BUFFERS.
+
+       * insdel.c (make_gap): Use enlarge_buffer_text.
+
+       * buffer.c: Move allocation with mmap here, from ralloc.c.  Change
+       conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
+       (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
+       from former r_alloc_* functions in ralloc.c.
+       (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
+       variables.
+       (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
+       (mmap_init) [REL_ALLOC_MMAP]: New function.
+       (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
+       functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
+       BUFFER_FREE.
+
+       * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
+       (enlarge_buffer_text): Add prototype.
+
+       * ralloc.c: Remove everything having to do with the use of mmap.
+
+2000-09-13  Gerd Moellmann  <gerd@gnu.org>
+
+       * sound.c (Fplay_sound): Doc fix.
+
+       * keyboard.c: Avoid some more compiler warnings.
+       (parse_tool_bar_item): Ignore cached key bindings.
+
+       * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
+       and allocation of Lisp data.
+
+2000-09-12  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
+       (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
+       defaults first.
+
+       * lread.c (Fload): Put code checking for recursive loads in #if 0.
+
+2000-09-12  Miyashita Hisashi  <himi@meadowy.org>
+
+       * ccl.c: Comment fixed.
+       (MAX_MAP_SET_LEVEL): Increased to 30.
+       (PUSH_MAPPING_STACK): Enclose with do-while block.
+       (POP_MAPPING_STACK): Likewise.
+       (stack_idx_of_map_multiple): New variable.
+       (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
+       (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
+       call the corresponding CCL program by
+       CCL_CALL_FOR_MAP_INSTRUCTION.
+       (ccl_driver) <CCL_MapSingle>: Likewise.
+       (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
+       with the case where looking up process reaches to the end of
+       map-set, and call CCL programs as the above change.
+
+2000-09-11  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (png_load, jpeg_load): Declare some variables volatile
+       that might be clobbered by longjmp.
+       (check_x_display_info, x_decode_color, create_frame_xic)
+       (Fx_display_backing_store, Fx_display_visual_class)
+       (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
+       warnings.
+
+       * lread.c (init_lread): Set Vloads_in_progress to nil.
+       (Fload): Show list of recursively loaded files, when signaling an
+       error.
+
+       * lread.c (Vloads_in_progress): New variable.
+       (record_load_unwind): New function.
+       (Fload): Check for recursive loads.
+       (syms_of_lread): Initialize Vloads_in_progress.
+       (read_integer, read1): Avoid some compiler warnings.
+
+       * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
+       compiler warnings.
+
+2000-09-11  Miles Bader  <miles@gnu.org>
+
+       * editfns.c (Fbuffer_string): Doc fix.
+
+2000-09-10  Gerd Moellmann  <gerd@gnu.org>
+
+       * ralloc.c (mmap_enlarge): Don't return 0 if successful.
+
+2000-09-09  Ken Raeburn  <raeburn@gnu.org>
+
+       * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
+       whether to include other header files.
+
+2000-09-09  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned 
+       by Fmemq as a boolean.
+
+2000-09-08  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
+
+2000-09-08  Gerd Moellmann  <gerd@gnu.org>
+
+       * ralloc.c (mmap_fd): Remove initializer which can make it
+       read-only in a dumped Emacs.
+       (mmap_fd_1): New variable.
+       (mmap_set_vars): Remove local `fd'.  Save mmap_fd in mmap_fd_1,
+       restore it from there.
+       (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
+       unconditionally so that mmap_fd can be initialized there.
+       (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
+       (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
+       (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
+
+       * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
+
+       * xdisp.c (dump_glyph_row): Fix printf format string.
+       (display_line, move_it_in_display_line_to): Avoid compiler
+       warnings.
+
+       * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
+
+       * keymap.c (Fset_keymap_parent): Check for cycles in keymap
+       inheritance.
+
+       * xdisp.c (try_window_id): When trying to locate cursor in
+       unchanged rows at the top, handle the case that we can't find it.
+
+       * xterm.c (x_draw_glyphs): Handle case START and END are out
+       of bounds more carefully.
+
+2000-09-08  Dave Love  <fx@gnu.org>
+
+       * s/sol2.h (REL_ALLOC_MMAP): Define.
+       * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
+
+       * ralloc.c: Don't include string.h (redundant).
+       (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
+       [!MAP_ANON]: Include fcntl.h.
+       (mmap_fd) [REL_ALLOC_MMAP]: New variable.
+       (r_alloc, r_re_alloc, r_alloc_free)
+       (mmap_enlarge, mmap_set_vars): Use it.
+       (r_alloc_init_fd): New function.
+       (__morecore) [SYSTEM_MALLOC]: Don't declare.
+       (r_alloc_init): Call r_alloc_init_fd.  Conditionalize stuff on
+       malloc type.
+
+       * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
+       Remove vm-limit.o.
+
+       * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
+       change to __NetBSD__.
+
+2000-09-08  Kenichi Handa  <handa@etl.go.jp>
+
+       * search.c (compile_pattern): Check the multibyteness of cached
+       string and PATTERN.
+
+2000-09-08  Miles Bader  <miles@gnu.org>
+
+       * xfaces.c (default_face_vector): Function removed.
+       (Finternal_merge_in_global_face): Restore old global/local
+       attribute override order.  Use inline loop instead of calling
+       default_face_vector.
+
+2000-09-07  Gerd Moellmann  <gerd@gnu.org>
+
+       * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
+       (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
+       (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
+       where necessary, in case POINTER_TYPE is `void'.
+
+2000-09-07  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * frame.c (make_terminal_frame): Initialize frame foreground and
+       background colors to unspecified, for the initial instance of an
+       MSDOS frame.
+
+2000-09-07  Gerd Moellmann  <gerd@gnu.org>
+
+       * ralloc.c (mmap_find): Fix overlap computation.
+       (mmap_enlarge): Compute nbytes before trying to find an
+       overlapping region.
+
+       * xfaces.c (smaller_face): Compare font heights with `<' and `>'
+       instead of `!='.
+
+       * lread.c (syms_of_lread): Change value of regexp
+       Vbytecomp_version_regexp to not match some XEmacs-compiled files.
+
+       * xmenu.c (xdialog_show): When looking up the selection in
+       menu_items, take `quote' boundaries into account; this corresponds
+       to a nil ITEM in x-popup-dialog.
+
+2000-09-07  Kenichi Handa  <handa@etl.go.jp>
+
+       * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
+       not 0x81.
+       (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
+
+       * coding.c (encode_coding_sjis_big5): Use translation table for
+       encoding, not decoding.  Fix the handling of latin-jisx0201.
+       Check for the charset katakana-jisx0201 too.
+       (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
+       (detect_coding_sjis): Check the byte sequence more rigidly.
+
+2000-09-07  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (Vparam_value_alist): New variable.
+       (syms_of_xfaces): Initialize it.
+       (Finternal_set_lisp_face_attribute): Avoid more consing.
+
+       * frame.c (Fframe_parameter): Handle `name' and `background-mode'
+       specially.
+       (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
+       (Qbackground_mode): New variable.
+       (syms_of_frame_1): Initialize Qbackground_mode.
+
+       * lisp.h (Qdisplay): Declare extern.
+
+       * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
+       change face on all frames, and change the default for new frames.
+
+2000-09-07  Dave Love  <fx@gnu.org>
+
+       * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
+
+2000-09-07  Kenichi Handa  <handa@etl.go.jp>
+
+       * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
+
+       * charset.c: Include composite.h
+       (lisp_string_width): New function.
+       (Fstring_width): Call lisp_string_width instead of strwidth.
+
+       * Makefile.in (charset.o): Depends on composite.h.
+
+       * process.c (read_process_output): Before inserting the decoded
+       text in the buffer, adjust the multibyteness.
+
+2000-09-06  Gerd Moellmann  <gerd@gnu.org>
+
+       * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If 
+       buffer's text buffer is null, map new memory.
+
+       * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
+       POINTER_TYPE and size_t.
+       (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
+       (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
+       (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
+       [REL_ALLOC_MMAP]: New macros.
+       (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
+       (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
+       [REL_ALLOC_MMAP]: New functions.
+
+       * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
+       before and after unexec.
+
+       * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
+       text buffers if necessary.
+
+       * buffer.h (R_ALLOC_DECLARE): Removed because unused.
+       (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
+       in prototypes.
+
+       * config.in (HAVE_MMAP): Add #undef.
+
+2000-09-05  Gerd Moellmann  <gerd@gnu.org>
+
+       * frame.c (Qdisplay_type): New variable.
+       (syms_of_frame_1): Initialize it.
+       (Fframe_parameter): New function that avoids consing.
+       (syms_of_frame): Defsubr it.
+
+       * buffer.c (Fother_buffer): Consider buffers as invisible when
+       they are displayed in a window on an invisible frame.
+
+       * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
+       get-largest-window always return nil.
+
+2000-09-04  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
+       variable; recognize Emacs 19 elc files.
+
+2000-09-04  Miles Bader  <miles@gnu.org>
+
+       * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
+       before initially popping up the menu, so the menu doesn't flash
+       when the face settings are significantly different from the
+       defaults.
+
+2000-09-04  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c (WIDE_CHAR_SUPPORT): New macro.
+       (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
+       (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
+       (BIT_UNIBYTE): Remove.
+       (re_match_2_internal): Delete corresponding code and streamline the
+       BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
+       (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
+       (re_wctype_t): New type.
+       (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
+       (regex_compile): Use them and fix handling of overly long char classes.
+
+2000-09-03  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in: Change to DOS line endings.
+
+       * s/ms-w32.h (ORDINARY_LINK): New define.
+
+       * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
+       (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
+
+       * makefile.w32-in (clean): Don't delete config.h and epaths.h.
+       (distclean): Delete them here instead.
+
+       * w32proc.c (compare_env): Convert to uppercase for comparison,
+       not lowercase, to match how the native Windows shell works.
+
+2000-09-03  Jason Rumney  <jasonr@gnu.org>
+
+       * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
+       CVS changes the line-ends when checking in/out on DOS/Windows.
+
+       * makefile.nt (emacs): Do not change directory to run temacs, as
+       the load-path is set relative to current directory.
+
+2000-09-03  Miles Bader  <miles@gnu.org>
+
+       * xterm.c (x_alloc_lighter_color_for_widget): New function.
+
+2000-09-02  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (redisplay_mode_lines): New function.
+       (display_mode_lines): Return number of mode lines displayed.
+       (echo_area_display): Use redisplay_mode_lines to draw garbaged
+       mode lines.  Don't temporarily bind redisplay-dont-pause to t.
+
+       * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
+       string.h and strings.h.
+       (index) [HAVE_INDEX]: Add prototype.
+
+       * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
+       (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
+
+       * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
+       (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
+
+2000-09-01  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (read1): Accept `?' as symbol constituent, for
+       compatiblity with XEmacs.
+
+2000-08-31  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
+       (struct re_pattern_buffer): Remove newline_anchor.
+       * regex.c: Keep namespace clean for GNU libc by renaming <fun>
+       to __<fun> and using `weak_alias (__<fun>, <fun>)'.
+       (re_max_failures, fail_stack): Use size_t rather than unsigned.
+       (regex_compile): For ^ and $, choose between buffer and line (beg|end)
+       depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
+       (print_compiled_pattern, re_search_2, mutually_exclusive_p)
+       (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
+       Get rid of references to newline_anchor.
+       (regcomp): Allocate and precompute a fastmap.
+
+2000-08-31  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (openp): GCPRO local variable `filename'.
+
+2000-08-30  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
+
+       * regex.c: Merge some changes from GNU libc.  Add prototypes.
+       (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
+       Use memcmp and memcpy instead of bcopy and bcmp.
+       (init_syntax_once): Use ISALNUM.
+       (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
+       (REG_UNSET_VALUE): Remove.  Use NULL instead.
+       (REG_UNSET, re_match_2_internal): Use NULL.
+       (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
+       New macros.
+       (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
+       (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
+       (regex_compile): In handle_interval, return an error rather than try to
+       unfetch the interval if we can't find the closing brace.
+       Obey the RE_NO_GNU_OPS syntax bit.
+       (TOLOWER): New macro.
+       (regcomp): Use it.
+       (regexec): Allocate regs.start and regs.end as one block.
+
+2000-08-30  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (echo_area_display): Check display_completed instead
+       of calling detect_input_pending.
+
+       * dispnew.c (update_frame): Only set display_completed here; move
+       the update_begin and update_end calls here from update_frame_1.
+       (update_frame_1): Don't set display_completed here, don't call
+       update_begin/update_end.
+
+       * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
+       instead of store_frame_param.
+
+2000-08-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
+       desired window matrix hasn't been displayed, use the current row
+       instead.  Make sure that only those frame rows are updated for
+       which there exists a corresponding enabled desired row.
+       
+2000-08-29  Miles Bader  <miles@gnu.org>
+
+       * xfaces.c (default_face_vector): New function.
+       (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
+
+2000-08-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * lread.c (openp): Prevent temporary string passed to
+       Ffile_readable_p from being garbage collected.
+
+2000-08-28  Dave Love  <fx@gnu.org>
+
+       * keymap.c (store_in_keymap): Add `static' to declaration.
+
+2000-08-28  Gerd Moellmann  <gerd@gnu.org>
+
+       * emacs.c, callint.c, doc.c, editfns.c
+       (toplevel) [HAVE_STRING_H]: Include string.h.
+       (toplevel) [HAVE_STRINGS_H]: Include strings.h.
+       (index): Remove prototypes which might conflict with non-standard
+       definitions of index/strchr.
+
+       * s/usg5-3.h (index): Define only if not HAVE_INDEX.
+       (rindex): Define only if !HAVE_RINDEX.
+
+       * s/sco5.h (bcopy, bzero, bcmp): Don't define.
+
+       * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
+
+2000-08-28  Miles Bader  <miles@gnu.org>
+
+       * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
+       made inconsistent by a font-related attribute in FROM.
+       (merge_face_inheritance): Add function comment.
+
+2000-08-28  Kenichi Handa  <handa@etl.go.jp>
+
+       * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
+       the 4th arg (PREV_EVENT) Qt to suppress input method.
+
+2000-08-27  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c: Indent cpp directives and remove parens after `defined'.
+       (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
+       (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
+       (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
+       (re_compile_pattern): Use size_t for length.
+       (init_syntax_once): Move to a better place.
+       * regex.h: Merge changes from GNU libc.  Indent cpp directives.
+       (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
+
+       * syntax.c (back_comment): Detect cases where a comment-starter is
+       actually inside another comment as in:   /* a // b */ c // d \n.
+       Make it clear that `comstart_pos' is unused for nested comments.
+
+       * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
+       (KEYMAPP): New macro.
+       (Fkeymap_parent, Fset_keymap_parent): Use it.
+       (fix_submap_inheritance): Mark it static.
+       (define_as_prefix, describe_buffer_bindings, describe_command)
+       (describe_translation, describe_map): Complete prototypes.
+
+       * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
+
+       * keyboard.c (menu_bar_item): Detect duplicate entries for all items
+       to better match the key-lookup behavior.
+
+2000-08-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfaces.c (lface_fully_specified_p): Handle :inherit.
+       (Finternal_set_lisp_face_attribute): Fix typo in error message.
+
+2000-08-27  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
+       (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
+       (xterm.o): Depend on coding.h
+
+2000-08-26  Kenichi Handa  <handa@etl.go.jp>
+
+       * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
+       the corresponding '#endif'.
+
+2000-08-26  Miles Bader  <miles@gnu.org>
+
+       * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
+       * xfaces.c (QCinherit): New variable.
+       (syms_of_xfaces): Initialize it.
+       (LFACE_INHERIT): New macro.
+       (Finternal_get_lisp_face_attribute)
+       (merge_face_vector_with_property) 
+       (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
+       (check_lface_attrs): Allow new types of face height.  Check
+       inherit attribute.
+       (CYCLE_CHECK): New macro.
+       (merge_face_inheritance): New function.
+       (merge_face_vectors): Merge inherited faces too.  Add F and
+       CYCLE_CHECK arguments.
+       (merge_face_vector_with_property, Finternal_merge_in_global_face)
+       (lookup_named_face, lookup_derived_face, realize_named_face)
+       (face_at_string_position, face_at_buffer_position):  Supply
+       new F and CYCLE_CHECK arguments to merge_face_vectors.
+       (merge_face_heights): New function.
+       (merge_face_vectors, merge_face_vector_with_property) 
+       (Finternal_set_lisp_face_attribute): Call merge_face_heights to
+       handle relative face heights.
+       (lface_same_font_attributes_p): Compare heights using EQ.
+
+2000-08-26  Kenichi Handa  <handa@etl.go.jp>
+
+       * charset.c (char_to_string): Check the character validity.
+       (char_valid_p): If C is not less than MAX_CHAR, be sure to return
+       0.
+
+2000-08-25  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.c (PUSH_FAILURE_COUNT): New macro.
+       (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
+       Handle popping of a register's or a counter's data.
+       (POP_FAILURE_POINT): Use the new name.
+       (re_match_2_internal): Push counter data on the stack for succeed_n,
+       jump_n and set_number_at and remove misleading dead code in succeed_n.
+
+2000-08-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (redisplay_internal): If considering all windows on all
+       frames, update the display for each frame as soon as possible,
+       instead of first building all desired matrices for all frames, and
+       then updating them all.
+       (try_cursor_movement): Handle case that last_cursor.vpos is -1.
+
+2000-08-24  Gerd Moellmann  <gerd@gnu.org>
+
+       * bytecode.c (mark_byte_stack): Add a comment.
+
+       * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH) 
+       (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is 
+       a graphical frame.
+
+2000-08-24  Kenichi Handa  <handa@etl.go.jp>
+
+       * minibuf.c (do_completion): Always use compare-string, not
+       string-equal because the latter doesn't pay attention to
+       multibyteness of strings.
+
+       * process.c (create_process): Don't setup raw-text coding here.
+       (Fopen_network_stream): Don't set coding->src_multibyte and
+       coding->dst_multibyte here.
+       (read_process_output): For process filter, return unibyte string
+       if default-enable-multibyte-characters is nil.
+       (send_process): If OBJECT is multibyte text, be sure to encoded it
+       by the specified coding system for the process.  Otherwise, setup
+       raw-text coding.
+       (init_process): Don't initialize default-process-coding-system
+       here.
+
+2000-08-23  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
+       <scroll-down-aggressively>: Likewise.
+
+2000-08-23  Kenichi Handa  <handa@etl.go.jp>
+
+       * coding.c (encode_eol): Fix bug for the case of dst_bytes being
+       zero.  Set coding->produced_char correctly.
+
+2000-08-22  Andrew Innes  <andrewi@gnu.org>
+
+       * makefile.w32-in: New file.
+
+       * unexw32.c (unexec): Ignore old_name, and use the actual location
+       of the current executable instead.  Base new_name on this.
+
+       * w32proc.c (create_child): Remove reference to security
+       descriptor, which isn't needed and doesn't compile with mingw32.
+
+       * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+       (x_update_window_end): Update prototype.
+
+       * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
+       extern, which screws up dllimport attributes.
+
+       * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+
+       * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
+       screws up dllimport attributes.
+
+       * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+       (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
+       screws up dllimport attributes.
+
+       * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+
+       * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
+       screws up dllimport attributes.
+
+       * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
+       screws up dllimport attributes.
+
+       * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+
+       * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
+       unnecessary extern, which screws up dllimport attributes.
+       (main): Ditto.
+
+       * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+
+       * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
+       unnecessary extern, which screws up dllimport attributes.
+
+       * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
+       screws up dllimport attributes.
+
+       * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
+       up dllimport attributes.
+
+       * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
+
+       * w32bdf.c (search_file_line): 
+       (set_bdf_font_info): 
+       (seek_char): 
+       (w32_get_bdf_glyph): 
+       (w32_BDF_to_x_font): Fix compile warnings.
+
+       * w32menu.c: Include keyboard.h before frame.h.  Fix compile
+       warnings.
+
+       * w32select.c: Include keyboard.h before frame.h.
+
+       * w32fns.c (max): Define macro.
+       (JOHAB_CHARSET): Define if not known.
+       (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
+       (Fx_show_tip): Synch with X version.
+
+       * w32xfns.c: Include keyboard.h before frame.h.
+
+       * w32fns.c: Include keyboard.h before frame.h.
+
+       * w32term.c: Include keyboard.h before frame.h.
+
+       * fontset.c: Include keyboard.h before frame.h.
+
+       * w32inevt.c: Include keyboard.h before frame.h.
+       (MOUSE_MOVED): Define if not known.
+
+       * minibuf.c: Include keyboard.h before frame.h.
+
+       * keyboard.c: Include keyboard.h before frame.h.
+
+       * indent.c: Include keyboard.h before frame.h.
+
+       * dispnew.c: Include keyboard.h before frame.h.
+
+       * buffer.c: Include keyboard.h before frame.h.
+
+       * alloc.c: Include keyboard.h before frame.h.
+
+       * print.c: Include keyboard.h before frame.h.
+
+       * process.c: Include keyboard.h before frame.h.
+
+       * scroll.c: Include keyboard.h before frame.h.
+
+       * sysdep.c: Include keyboard.h before frame.h.
+
+       * term.c: Include keyboard.h before frame.h.
+
+       * window.c: Include keyboard.h before frame.h.
+
+       * xdisp.c: Include keyboard.h before frame.h.
+       Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
+
+       * frame.c: Include keyboard.h before frame.h.
+
+       * w32heap.h: Undefine min, max.
+
+       * w32gui.h: Undefine min, max.
+
+       * unexw32.c: Change PUCHAR to PCHAR.
+       (PTR_TO_OFFSET): Cast ptr to unsigned char *.
+       (relocate_offset): 
+       (get_section_info): 
+       (copy_executable_and_dump_data): Remove unnecessary static defs.
+       (copy_executable_and_dump_data): Fix compile warnings.
+
+       * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
+
+       * w32console.c (min): Define macro.
+       (clear_frame, write_glyphs): Fix compile warning.
+
+       * w32proc.c (compare_env): 
+       (find_child_console): Fix compile warning.
+
+       * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr.  Use
+       sys_errlist instead of _sys_errlist.
+       (get_emacs_configuration_options): New function.
+
+       * s/ms-w32.h (sys_nerr): Provide default definition.
+       (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
+       name with _ prepended.
+       (NSIG): Define if not known.
+       (get_emacs_configuration): Provide extern declaration.
+       (get_emacs_configuration_options): Provide extern declaration.
+       (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
+
+       * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
+       (map_w32_filename): 
+       (read_unc_volume): Fix compile warning.
+
+       * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
+       definitions from being used.
+
+       * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
+
+       * w32.c (unc_volume_file_attributes): 
+       (open_unc_volume): Make arg const.
+
+       * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
+       (read_input_waiting): Remove excess parameter.
+
+       * w32.c (init_environment): Call _access.
+       (check_windows_init_file): Call _close.
+       (init_user_info): Call _putenv.
+       (init_environment): Call _putenv and _strdup.
+       (init_ntproc): Reset volume info cache on startup.
+
+       * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
+       USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
+       cannot override the CRT malloc.
+
+       * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
+       (LINK_FLAGS): Append to original value of LINK_FLAGS.
+
+       * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
+       unless we are linking with a static CRT.
+       (RVA_TO_PTR): Cast result to unsigned char*.
+
+       * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
+       (add_volume_info): Use xstrdup.
+
+2000-08-22  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
+       (do_completion, Fminibuffer_complete_word): Use it.
+       (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
+       var so it can take non-boolean values.
+
 2000-08-21  Gerd Moellmann  <gerd@gnu.org>
 
        * editfns.c (find_field): Formatting changes.
 See ChangeLog.8 for earlier changes.
 
 ;; Local Variables:
-;; coding: iso-2022-7bit-unix
+;; coding: iso-2022-7bit
 ;; End: