(enum mem_type): Compile unconditionally.
[bpt/emacs.git] / src / ChangeLog
index 93ba776..ff9c666 100644 (file)
@@ -1,3 +1,689 @@
+2000-02-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * alloc.c (enum mem_type): Compile unconditionally.
+
+2000-02-17  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * xfaces.c (tty_defined_color): Don't return faulire indication
+       for unspecified-fg and unspecified-bg pseudo-colors.
+
+2000-02-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * alloc.c (mark_object): Don't mark symbol names in pure space.
+       (gc_sweep): Don't unmark symbol names in pure space.
+
+       * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
+       (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
+       [GC_MARK_STACK]: New defines.
+       (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO) 
+       [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
+
+       * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
+
+       * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
+       allocate_buffer instead of xmalloc.
+
+       * alloc.c (toplevel): Include setjmp.h.
+       (PURE_POINTER_P): New define.
+       (enum mem_type) [GC_MARK_STACK]: New enumeration.
+       (Vdead) [GC_MARK_STACK]: New variable.
+       (lisp_malloc): Add parameter TYPE, call mem_insert if
+       GC_MARK_STACK is defined.
+       (allocate_buffer): New function.
+       (lisp_free) [GC_MARK_STACK]: Call mem_delete. 
+       (free_float) [GC_MARK_STACK]: Set type to Vdead.
+       (free_cons) [GC_MARK_STACK]: Set car to Vdead.
+       (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
+       (MEM_NIL) [GC_MARK_STACK]: New define.
+       (struct mem_node) [GC_MARK_STACK]: New structure.
+       (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
+       (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
+       (live_string_p, live_cons_p, live_symbol_p, live_float_p)
+       (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
+       (mark_stack) [GC_MARK_STACK]: New functions.
+       (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
+       (clear_marks): Removed.
+       (gc_sweep): Set free conses' car, free floats' type, free
+       symbols' function to Vdead.  Use lisp_free to free buffers.
+       (init_alloc_once): Initialize Vdead.
+       (survives_gc_p): Return non-zero for pure objects.
+
+       * alloc.c: Add comments throughout the file.
+
+       * atimer.c (stop_other_atimers): Don't call cancel_atimer because
+       that unblocks alarms.
+
+       * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
+       emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
+       Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
+
+       * frame.c (make_frame): Set frame initiallly to `garbaged'.
+       
+2000-02-17  Kenichi Handa  <handa@etl.go.jp>
+
+       * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
+       avoid infinite error signaling.  Allocate sufficient memory for
+       eol_str in the case that eoltype is Lisp_Int.
+
+2000-02-17  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
+       depends on the previous behavior.
+
+2000-02-16  Gerd Moellmann  <gerd@gnu.org>
+
+       * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
+
+2000-02-15  Gerd Moellmann  <gerd@gnu.org>
+
+       * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
+
+       * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
+       Workaround for FreeBSD bug.  Clear output queue after EAGAIN in
+       write(2).
+
+2000-02-15  Richard M. Stallman  <rms@gnu.org>
+
+       * data.c (set_internal): Don't make variable buffer-local
+       if within a let-binding for the same buffer.
+       (let_shadows_buffer_binding_p): New function.
+
+       * eval.c (specbind): For buffer-local value,
+       record the current buffer also.
+       (unbind_to): Cope with that change.
+
+2000-02-15  Gerd Moellmann  <gerd@gnu.org>
+
+       * window.c (Fsave_window_excursion): Doc fix.
+
+2000-02-15  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * syntax.c (back_comment): Make sure we only consider comment-starters
+       of the relevant style and return -1 in case of a failure to find the
+       beginning of the comment.
+       (Fforward_comment): If back_comment fails, go back to the position just
+       after the comment-end.
+       (scan_lists): Add comment describing a very minor bug.
+
+2000-02-14  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
+       `completion-regexp-list' in the docstring.
+
+2000-02-14  Dave Love  <fx@gnu.org>
+
+       * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
+
+2000-02-14  Stefan Monnier  <monnier@cs.yale.edu>
+
+       * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
+       to Emacs' syntax.  Also fix the comment about set/not-set meanings
+       since Emacs syntax is not the value 0 any more.
+       * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
+       since it's now part of RE_SYNTAX_EMACS.
+
+2000-02-12  Dave Love  <fx@gnu.org>
+
+       * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
+       Alpha.
+
+2000-02-12  Gerd Moellmann  <gerd@gnu.org>
+
+       * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
+
+2000-02-12  Dave Love  <fx@gnu.org>
+
+       * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
+
+       * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
+       * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
+       * s/hpux.h: Don't define HAVE_VFORK.
+
+       * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
+
+       * s/nextstep.h: Don't define HAVE_ALLOCA.
+
+       * config.in: Add vfork bits.
+
+2000-02-12  Gerd Moellmann  <gerd@gnu.org>
+
+       * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
+       unwind function to undo the effect of stopping atimers.
+
+       * keyboard.c (bind_polling_period): Stop all timers except
+       poll_timer.
+
+       * atimer.c (stopped_atimers): New variable.
+       (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
+       New functions.
+
+       * atimer.h (stop_other_atimers, run_all_atimers)
+       (unwind_stop_other_atimers): Add function prototypes.
+       
+       * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
+
+2000-02-11  Ken Raeburn  <raeburn@gnu.org>
+
+       * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
+       library may depend on jpeg.
+       (atimer.o): Depends on atimer.c.
+
+2000-02-11  Kenichi Handa  <handa@etl.go.jp>
+
+       * insdel.c (del_range_1): Call update_compositions.
+       (del_range_both): Call update_compositions just once..
+
+2000-02-10  Dave Love  <fx@gnu.org>
+
+       * xfns.c (create_frame_xic): Fix initialization of automatic
+       aggregates for pcc.
+
+2000-02-09  Kenichi Handa  <handa@etl.go.jp>
+
+       * ccl.c (CCL_MAKE_CHAR): New macro.
+       (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
+       registers by CCL_MAKE_CHAR before calling translate_char.
+       <CCL_TranslateCharacterConstTbl> Likewise.
+
+2000-02-08  Dave Love  <fx@gnu.org>
+
+       * lread.c (__EXTENSIONS__): Define.
+
+2000-02-08  Gerd Moellmann  <gerd@gnu.org>
+
+       * puresize.h (BASE_PURESIZE): Increase to 650000.
+
+2000-02-07  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * msdos.c (XMenuActivate): Turn off the cursor after displaying
+       the help message.
+
+2000-02-07  Eli Zaretskii <eliz@is.elta.co.il>
+
+       * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
+       md, mh, mb, mr, and me to the fake termcap entry.
+
+2000-02-06  Ken Raeburn  <raeburn@gnu.org>
+
+       * sound.c (sound_cleanup): Don't call device close routine if the
+       function pointer is null.
+
+2000-02-06  Andrew Innes  <andrewi@gnu.org>
+
+       * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
+       around image definitions and prototypes.
+       (gamma_correct) [WINDOWSNT]: New prototype.
+
+       * w32term.c (x_make_frame_visible): Replace call to
+       input_poll_signal with poll_for_input.
+
+       * window.c [WINDOWSNT]: Include w32term.h.
+
+       * xdisp.c [WINDOWSNT]: Include w32term.h.
+
+       * makefile.nt: Add dependencies on w32gui.h.
+       (OBJ1): Include atimer.obj.
+       ($(BLD)\atimer.obj): New dependency rule.
+
+       * w32.c (sigmask): New function (does nothing).
+       (sigunblock): Ditto.
+
+       * frame.c [WINDOWSNT]: Include w32term.h.
+
+       * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
+
+       * lread.c (syms_of_lread): Fix literal newlines.
+
+       * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
+       the string constant limit (2048 bytes) in MSVC.
+       (main): Ditto.
+
+2000-02-05  INOUE Seiichiro <inoue@ainet.or.jp>
+
+       * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
+       area.
+       (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
+       (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
+       dispatch the event.
+
+2000-02-04  Dave Love  <fx@gnu.org>
+
+       * fileio.c: Remove some unused vars.
+       (_GNU_SOURCE): Define (for euidaccess).
+
+       * lread.c (_XOPEN_SOURCE): Declare (for ftello).
+
+       * minibuf.c (read_minibuf_noninteractive): Remove undeclared
+       gcpro1, gcpro2.
+       (read_minibuf): Deal with allow_props correctly.
+
+2000-02-03  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
+
+2000-02-03  Ken Raeburn  <raeburn@gnu.org>
+
+       * search.c (compile_pattern): If a cache entry has a nil regexp,
+       fill in that entry instead of clobbering a previously cached
+       string regexp.
+
+2000-02-02  Ken Raeburn  <raeburn@gnu.org>
+
+       * puresize.h (BASE_PURESIZE): Increase to 610000.
+
+2000-02-02  Gerd Moellmann  <gerd@gnu.org>
+
+       * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
+       can GC.
+
+2000-02-02  Kenichi Handa  <handa@etl.go.jp>
+
+       * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
+       instead of incrementing ic directly.
+       <CCL_WriteExprConst> Likewise.
+       <ccl_set_expr>: Set ic to jump_address.
+
+       * fileio.c (e_write): Fix the handling of
+       CODING_FINISH_INSUFFICIENT_SRC.
+
+2000-02-01  Dave Love  <fx@gnu.org>
+
+       * editfns.c (Fpropertize): Doc fix.
+
+       * process.c (Fstart_process): Doc fix.
+
+       * eval.c: Fix various doc strings not to duplicate information
+       from help-manyarg-func-alist.
+
+       * window.c (Fset_window_margins): Don't make interactive.  Doc
+       fix.
+
+       * doc.c (Vhelp_manyarg_func_alist): New variable.
+       (Fdocumentation): Use it.
+       (syms_of_doc): Define it.
+
+2000-01-31  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (xim_open_dpy): Remove unused local variable.
+
+       * emacs.c (USAGE): Use term `display options' instead of `X
+       options'.
+
+       * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
+       (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
+
+       * fns.c (sweep_weak_table): New function.
+       (sweep_weak_hash_tables): Use it.  Keep on marking until there
+       is no more change.
+
+2000-01-30  Gerd Moellmann  <gerd@gnu.org>
+
+       * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
+       that XTread_socket does not crash by trying to call XNoOp on a
+       closed display.
+       
+2000-01-30  Jason Rumney  <jasonr@gnu.org>
+
+       * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
+       Change selected_frame to SELECTED_FRAME ().
+       (w32_console_mouse_position): Remove #ifndef MULE from around
+       `insist' parameter.
+
+       * makefile.nt: Remove dosfns.obj.
+
+       * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
+
+       * w32fns.c (w32_defined_color): Check for valid frame before
+       applying gamma correction. Eliminate dependency on frame elsewhere.
+       (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
+       (w32_to_x_font): Use resx and resy not height_in and width_in.
+       (x_to_w32_font): Doc fix.
+       (xlfd_strip_height): New function to strip and return font height.
+       (w32_font_match): Compare height separately from rest of xlfd
+       spec, using xlfd_strip_height.
+
+       * w32term.c (w32_term_init): Swap resx and height_in, resy and
+       width_in. Use w32_defined_color in place of defined_color.
+
+       * w32faces.c: Merge more of DOS and X specifics in preparation for
+       merge with xfaces.c.
+       (defined_color): Remove FIXME comment.
+       (tty_color_name): Provide w32-specific function.
+       (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
+
+       * w32console.c (turn_on_face, turn_off_face): Removed.
+       (w32_face_attributes): New function.
+       (Global_variables): Reduce scope where possible.
+       (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
+       fill attribute.
+       (hl_mode): Don't modify text attributes.
+       (write_glyphs): Don't do anything if len <= 0. Use
+       w32_face_attributes to get attributes for drawing. Write
+       terminating codes using char_attr_normal.
+       (reset_terminal_modes, set_terminal_modes): Turn off highlight.
+       (update_begin, update_end): Likewise.
+       (vga_stdcolor_name): New function.
+       (initialize_w32_display): Remove char_attr_reverse and char_attr.
+       (Fset_screen_color): Remove char_attr_reverse.
+
+2000-01-29  Gerd Moellmann  <gerd@gnu.org>
+
+       * xfns.c (xic_set_preeditarea): Take window parameter and
+       window-relative pixel-positions.
+
+       * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
+       is its frame's selected window.
+       (xim_instantiate_callback): Likewise.
+
+       * xfns.c (x_create_im): Removed.
+       (DEFAULT_STYLE, DEFAULT_FONT): Removed.
+       (supported_xim_styles): Renamed from supported_styles.
+       (best_xim_style): Renamed from best_style.
+       (create_frame_xic): Renamed from xic_create_frame.
+       (free_frame_xic): Renamed from xic_destroy_frame.
+       
+2000-01-29  INOUE Seiichiro <inoue@ainet.or.jp>
+
+       * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
+       our frames, call XFilterEvent with 2nd parameter `None'.
+       (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
+       returning XBufferOverflow.
+       (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
+       area.
+       (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
+       (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
+       (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
+       (xim_initialize, xim_close)
+       [HAVE_X_I18N && HAVE_X11R6]: New functions.
+       (x_destroy_window) [HAVE_X_I18N]:  Call xic_destroy_frame.
+       (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
+       (x_delete_display) [HAVE_X_I18N]: Call xim_close.
+
+       * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
+       and `xim_styles'.
+       (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
+       `xic_style' and `xic_xfs'.
+       (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
+       (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
+       (FRAME_XIM): Removed.
+
+       * xfns.c (supported_styles): New variable.
+       (DEFAULT_STYLE, DEFAULT_FONT): New macros
+       (xic_create_xfontset, best_style, xic_create_frame)
+       (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
+       (xic_set_xfontset): New functions.
+
+2000-01-28  Dave Love  <fx@gnu.org>
+
+       * s/irix6-5.h: Revert last change after change to irix5-0.h.
+
+       * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
+
+2000-01-28  Gerd Moellmann  <gerd@gnu.org>
+
+       * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
+       for *scratch* if it already existed.
+
+       * emacs.c (USAGE): New macro.
+       (main): Use it to display usage information.
+
+2000-01-27  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       Support for the menu-help feature:
+
+       * msdos.h: Change prototypes of XMenuAddSelection and
+       XMenuActivate.
+
+       * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
+       part of the line to the termscript file.
+       (IT_clear_to_end): Clear the entire line, not just its beginning.
+       (menu_help_message, prev_menu_help_message): New variables.
+       (IT_menu_make_room): Make room for the help_text member.
+       (IT_menu_display): New argument disp_help; all callers changed.
+       If disp_help is non-zero, store the help text of the active menu
+       item in menu_help_message.
+       (XMenuAddPane): Initialize the help_text member to NULL.
+       (XMenuAddSelection): New argument help_text.  Store it in the
+       XMenu structure.
+       (XMenuActivate): New argument help_callback.  If the value of
+       menu_help_message has changed since the last time, display the
+       menu help message text while waiting for the mouse to move.  Clear
+       the echo area before exiting.
+       (XMenuDestroy): Free the help_text member.
+
+2000-01-27  Gerd Moellmann  <gerd@gnu.org>
+
+       * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
+       XMenuAddSelection.  Pass help callback to XMenuActivate.
+       (menu_help_callback) [!USE_X_TOOLKIT]: New function.
+
+2000-01-27  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
+       and EMACS_SET_USECS.
+
+2000-01-26  Dave Love  <fx@gnu.org>
+
+       * editfns.c (Fchar_after, Fchar_before): Doc fix.
+
+       * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
+       an error may be signalled.
+
+2000-01-26  Gerd Moellmann  <gerd@gnu.org>
+
+       * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
+       LD_SWITCH_SYSTEM inherited from irix5-0.h.
+
+       * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
+
+2000-01-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * charset.c (Fstring): If there is a multibyte char among
+       the args, always return a multibyte string.
+
+2000-01-25  Gerd Moellmann  <gerd@gnu.org>
+
+       * sysdep.c (sys_select): Turn atimers off and on instead of
+       recording and restoring old alarm handler
+
+       * process.c (toplevel): Include atimer.h.
+       (create_process_1): Rewritten.
+       (create_process): Use atimers instead of alarm.
+       (wait_reading_process_input) [hpux]: Turn atimers off instead
+       of turning off SIGALRM.
+       (wait_reading_process_input): Turn off atimers instead off
+       calling stop_polling.
+
+       * emacs.c (main): Call init_atimer.
+
+       * keyboard.c (toplevel): Include systime.h and atimer.h.
+       (polling_for_input): Removed because unused.
+       (input_poll_signal) [POLL_FOR_INPUT]: Removed.
+       (poll_timer): New variable.
+       (poll_for_input, poll_for_input_1): New functions.
+       (start_polling, stop_polling): Rewritten.
+
+       * keyboard.h (polling_for_input): Removed.
+       
+       * atimer.h, atimer.c: New files.
+
+       * Makefile.in (obj): Add atimer.o.
+       (atimer.o): New target.
+
+       * blockinput.h (pending_atimers): Add extern declaration.
+       (UNBLOCK_INPUT): Rewritten.  Handle pending atimers.
+
+       * lisp.h (popup_activated_flag): Add extern declaration.
+
+       * xmenu.c (popup_activated_flag): Make externally visible.
+       (popup_activate_callback) [USE_MOTIF]: Increment
+       popup_activated_flag.
+       (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
+
+       * xterm.c (toplevel): Include atimer.h.
+       (toolkit_scroll_bar_interaction): New variable.
+       (Fxt_process_timeouts): Removed.
+       (x_process_timeouts): New function.
+       (xt_action_hook): Clear toolkit_scroll_bar_interaction.
+       (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
+       (x_make_frame_visible): Call poll_for_input_1 instead of
+       input_poll_signal.  Don't call alarm.
+       (x_initialize): Install timer calling x_process_timeouts.
+       
+2000-01-24  Dave Love  <fx@gnu.org>
+
+       * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
+       Don't use -cckr -- apparently not now necessary.
+
+2000-01-24  Eli Zaretskii  <eliz@is.elta.co.il>
+
+       * msdos.c (IT_menu_display): Truncate long menu lines at the right
+       screen boundary.
+
+2000-01-23  Jason Rumney  <jasonr@gnu.org>
+
+       * w32fns.c (w32_defined_color): Apply gamma correction before
+       trying to map to the palette.
+       (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
+       to w32_clear_rect.
+
+       * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
+       here. Callers changed to always pass real device context.
+       (w32_draw_bitmap): Likewise.
+       (w32_get_glyph_overhangs): Likewise.
+       (w32_draw_box_rect): Make use of s->hdc rather than getting a new
+       one.
+       (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
+       pfnSetScrollInfo and SetScrollRange.
+       (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
+       back into MULE characters after decoding them.
+       (x_get_glyph_face_and_encoding): Likewise.
+       (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
+       GetCharABCWidthsW fails, since this is defined on Windows 9x.
+       (x_produce_glyphs): Calculate per char metrics for a character
+       that we know exists in default font when font_not_found_p is true.
+
+2000-01-22  Jason Rumney <jasonr@gnu.org>
+
+       * makefile.nt (intervals.obj, composite.obj): New modules.
+       (composite.h): Added as dependency where appropriate.
+
+       * w32gui.h (XGCValue): New struct for emulating X GCs.
+
+       * w32term.h (XCharStruct): New struct for emulating X.
+
+       * w32console.c (turn_on_face, turn_off_face): New functions.
+       (change_line_highlight): New prototype for new redisplay.
+       (write_glyphs): Support multibyte text. Support faces.
+
+       * w32faces.c: Complete rewrite for new redisplay based on new
+       xfaces.c.
+
+       * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
+       throughout. struct frame * in place of FRAME_PTR.
+       Skeleton support for images, toolbars, tooltips from xfns.c.
+       (Fx_create_frame): Use system default for default scroll bar
+       width.
+       (w32_get_arg): Renamed from x_get_arg.
+       (Fx_file_dialog): New function.
+       (w32_list_fonts): Check cache before asking system.
+       (Vw32_enable_synthesized_fonts): New variable.
+       (Vw32_enable_italics): Obsolete, removed.
+
+       * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
+       Use SELECTED_FRAME macro.
+
+       * w32menu.c: Add skeleton support for help strings on menus.
+       (add_menu_item): Native checkbox and radio support added, but not
+       yet enabled due to bugs.
+       (push_menu_item): Add parameters type, selection and help.
+       Callers updated.
+       Formatting changes to reduce unnecessary diffs with xmenu.c.
+
+       * w32select.c (Fw32_set_clipboard_data): Update call to
+       find_charset_in_str.
+
+       * w32term.c: Complete rewrite for new redisplay based on new
+       xterm.c with necessary sections merged back in from old w32term.c.
+
+2000-01-21  Richard M. Stallman  <rms@gnu.org>
+
+       * data.c (set_internal): Further fix in same criterion.
+
+2000-01-20  Richard M. Stallman  <rms@gnu.org>
+
+       * data.c (set_internal): Fix the criteria for whether
+       to swap out the old cached binding.
+
+2000-01-19  Dave Love  <fx@gnu.org>
+
+       * lread.c: (syms_of_lread) [user-init-file]: Doc change.
+
+2000-01-18  Kenichi Handa  <handa@etl.go.jp>
+
+       * regex.c (re_compile_fastmap): While checking a range table for
+       `charset', skip flag bits for a character class correctly.
+
+2000-01-17  Gerd Moellmann  <gerd@gnu.org>
+
+       * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
+
+       * xfns.c (x_window): Call lw_create_widget with new parameter
+       list.
+
+       * widget.c (EmacsFrameSetCharSize): Change size of children first
+       because of problems with main window geometry management under
+       Lesstif.
+
+       * xmenu.c (enum menu_item_idx): New enumeration replacing defines
+       MENU_ITEMS_ITEM_.*.
+       (MENU_ITEMS_ITEM_HELP): New enumerator.
+       (push_menu_item): Add parameter HELP.  Record help in menu_items.
+       (single_menu_item, single_submenu, list_of_items): Call
+       push_menu_item with new parameter.
+       (single_submenu): Set help string in widget value.
+       (menu_highlight_callback): New function.
+       (set_frame_menubar): Call lw_create_widget with new
+       parameter list.
+       (xmenu_show, xdialog_show): Ditto.
+
+2000-01-13  Gerd Moellmann  <gerd@gnu.org>
+
+       * sound.c (Fplay_sound): Improve doc string.
+
+2000-01-11  Richard M. Stallman  <rms@gnu.org>
+
+       * lisp.h (set_internal): Enter the new arg.
+
+       * eval.c (specbind): Record buffer-local variables specially,
+       indicating which buffer's binding was saved.
+       (unbind_to): Restore buffer-local variables specially
+       in the proper buffer.
+
+       * data.c (set_internal): New arg BUF.
+       
+       * eval.c (specbind, unbind_to): Pass new arg to set_internal.
+       * data.c (Fset): Pass new arg to set_internal.
+       * bytecode.c (Fbyte_code): Pass new arg to set_internal.
+       
+2000-01-11  Gerd Moellmann  <gerd@gnu.org>
+
+       * .gdbinit: Adapt to new strings.  Add xbacktrace, xreload,
+       xprintsym.
+
+2000-01-11  Richard M. Stallman  <rms@gnu.org>
+
+       * minibuf.c (Ftry_completion): Doc fix.
+
+2000-01-11  Gerd Moellmann  <gerd@gnu.org>
+
+       * keyboard.c (Fclear_this_command_keys): Clear recent_keys
+       vector, too.
+
+2000-01-11  Andreas Schwab  <schwab@suse.de>
+
+       * coding.c (code_convert_region): Initialize total_skip.
+
 2000-01-08  Dave Love  <fx@gnu.org>
 
        * eval.c (Fuser_variable_p): Check customizability too.
        back-ground colors.
 
        * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
-       (syms_of_xfaces): Remove theit staticpro's.
+       (syms_of_xfaces): Remove their staticpro's.
        (tty_color_name): Return Lisp strings for unspecified fore- and
        back-ground colors.
        (Finternal_set_lisp_face_attribute): Remove the special treatment
        * process.c (read_process_output): Fix the arg FROM to
        update_compositions.
 
-1999-12-22  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-12-22  Richard M. Stallman  <rms@gnu.org>
 
        * search.c (Freplace_match): For nonliteral replacement in buffer,
        construct all the new text first, then insert all at once.
        * xterm.c (show_mouse_face): Don't use updated_area, use
        TEXT_AREA.
 
-1999-12-12  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-12-12  Richard M. Stallman  <rms@gnu.org>
 
        * minibuf.c (Fall_completions): Doc fix.
 
-1999-12-12  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-12-12  Richard M. Stallman  <rms@gnu.org>
 
        * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
        has been changed by the Lisp code.
        * emacs.c (synchronize_locale): Avoid compiler warnings about
        pointer type mismatch.
 
-1999-11-26  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-11-26  Richard M. Stallman  <rms@gnu.org>
 
        * editfns.c (Fdelete_field): Make it noninteractive.  Return nil.
 
 
        * keyboard.c (command_loop_1): Remove no_redisplay.
 
-1999-11-16  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-11-16  Richard M. Stallman  <rms@gnu.org>
 
        * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
        in noninteractive.
        (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
        parse_image_spec accordingly.
 
-1999-11-09  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-11-09  Richard M. Stallman  <rms@gnu.org>
 
        * cmds.c (Fbeginning_of_line): Doc fix.
        (Fend_of_line): Doc fix.
        * syntax.c (Fforward_word): Handle fields even if would have hit
        an edge of the buffer.  Return nil if affected by fields.
 
-1999-11-09  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-11-09  Richard M. Stallman  <rms@gnu.org>
 
        * editfns.c (preceding_pos): Function deleted.
        (text_property_stickiness): Decrement POS directly.
        compilation on USE_TEXT_PROPERTIES.
 
        * Fbyte_code: Use block statements in cases and declare v1 and v2
-       locally there.  Rearrange case statements so that thos most
+       locally there.  Rearrange case statements so that those most
        frequently executed come first.  Avoid goto's in frequently
        executed cases.
 
        * syntax.c: Remove whitespace after open or in front of closing
        parentheses.
 
-1999-11-01  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-11-01  Richard M. Stallman  <rms@gnu.org>
 
        * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
 
        (display_line): Set charpos of first glyph to -1 only if that
        glyph is the space added by append_glyph.
 
-1999-10-30  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-30  Richard M. Stallman  <rms@gnu.org>
 
        * print.c (strout): Consider `noninteractive' and use stdout
        only when PRINTCHARFUN is t.
        Redefine PTY_TTY_NAME_SPRINTF.
        * config.in: Add undef for HAVE_DEV_PTMX.
 
-1999-10-26  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-26  Richard M. Stallman  <rms@gnu.org>
 
        * regex.c (POP_FAILURE_POINT): Use failure_id.integer
        as arg to DEBUG_POP and DEBUG_PRINT.
 
-1999-10-27  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-27  Richard M. Stallman  <rms@gnu.org>
 
        * data.c (Qad_activate_internal): Renamed from Qad_activate.
        (Ffset): Call Qad_activate_internal.
        (Ftype_of): Return it for hash tables.
        (syms_of_data): Initialize Qhash_table.
 
-1999-10-25  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-25  Richard M. Stallman  <rms@gnu.org>
 
        * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
 
-1999-10-24  Ken Raeburn  <raeburn@raeburn.org>
+1999-10-24  Ken Raeburn  <raeburn@gnu.org>
 
        * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
        lisp.h.
 
        * keyboard.c (auto-save-interval): Fix documentation.
        
-1999-10-09  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-09  Richard M. Stallman  <rms@gnu.org>
 
        * print.c (print): When removing objects from Vprint_number_table,
        only scan the newly added objects.
 
        * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
 
-1999-10-07  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-10-07  Richard M. Stallman  <rms@gnu.org>
 
        * process.c (wait_reading_process_input): When trying to suck
        input from one process, for accept-process-output,
        * xdisp.c (resize_mini_window): Do nothing if frame is an X
        frame that hasn't been initialized yet.
 
-1999-09-28  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-09-28  Richard M. Stallman  <rms@gnu.org>
 
        * keymap.c (Fsingle_key_description): Make tem big enough.
        (describe_buffer_bindings): Make buf big enough.
 
-1999-09-27  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-09-27  Richard M. Stallman  <rms@gnu.org>
 
        * intervals.c (get_local_map): Use indirect_function,
        not Findirect_function.
        * xdisp.c (echo_area_display): Turn off code that returned
        without doing anything when using a terminal frame.
 
-1999-09-17  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-09-17  Richard M. Stallman  <rms@gnu.org>
 
        * unexelf.c (unexec): Don't get confused by a short section
        just before the bss section.
 
        * fns.c (internal_equal): Correct overlay comparison.
 
-1999-07-31  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-07-31  Richard M. Stallman  <rms@gnu.org>
 
        * xfns.c (x_set_internal_border_width): 
        Call do_pending_window_change.  Don't block input, don't call XFlush.
 
        * dispextern.h (struct glyph_matrix): Add member window_vscroll.
 
-       * lwlib-Xm.c: Add function prototypes.
-
        * xdisp.c (debug_method_add): New.
        (debug_redisplay_method): Removed.
        (try_window_reusing_current_matrix): Handle case where old
        * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
        an array instead of a pointer.
 
-       * lwlib-Xm.c (xm_update_label): Use val->name to look up
-       a label string from resources.
-       (xm_update_label): Add some comments.
-
        * xfns.c (Fx_show_tip): Undo previous change.
 
        * xterm.c (x_append_glyph): Clear glyph->u.val.
        (load_face_font_or_fontset): Store full font name in face.
        (realize_default_face): Use full font name.
 
-       * xlwmenu.c (make_shadow_gcs) ]emacs]: Use x_alloc_nearest_color.
-
        * xterm.c (x_produce_glyphs): Set member char_to_display.
        (x_append_glyph): Store char_to_display in glyphs.
 
@@ -5291,23 +5969,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        (x_set_scroll_bar_foreground): New.
        (x_set_scroll_bar_background): New.
 
-       * xlwmenu.c (all_dashes_p): Removed.
-       (size_menu_item): Call lw_separator_p.
-       (display_menu_item): Ditto.
-       (display_menu): Ditto.
-       (draw_separator): New.
-       (display_menu_item): Call it.
-       (separator_height): New.
-       (size_menu_item): Call it.
-
-       * lwlib-Xm.c (all_dashes_p): Removed.
-       (make_menu_in_widget): Use lw_separator_p.  Set Motif separator
-       type.
-
-       * lwlib.c (lw_separator_p): New.
-
-       * lwlib.h (enum menu_separator): New.
-
 1999-01-12  Gerd Moellmann  <gerd@gnu.org>
 
        * xdisp.c (handle_single_display_prop): New.
@@ -5490,10 +6151,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        (xt_action_hook): Reset last_scroll_bar_part.
        (XTredeem_scroll_bar): Reset bar->dragging to nil.
 
-       * xlwmenu.c (abort_gracefully): New.
-       (display_menu): Use it instead of abort.
-       (size_menu): Ditto.
-
        * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
        window on newly created frames that don't have one.
 
@@ -5594,13 +6251,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        * xterm.c (note_mouse_highlight): Don't highlight when popup
        is active.
 
-       * xlwmenu.c (xlwMenuResources): Change previously unused 
-       XtNmargin to 4.
-       (size_menu): Take margin into account.
-       (display_menu_item): Ditto.
-       (remap_menubar): Ditto.
-       (draw_arrow): Draw it 3D.
-
        * keyboard.c (timer_check): Inhibit busy cursor around calls to
        timer-event-handler.  This busy cursor tends to be anoying if
        fontifying stealthily.
@@ -5628,9 +6278,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        XmScrollBarSetValues.
        (SET_SAVED_MENU_EVENT): Give it statement form.
 
-       * lwlib-Xm.c (make_menu_in_widget): Set alignment of menu
-       title after all widgets have been created.
-
        * xfaces.c (display_message): If waiting_for_input, don't display
        the message.
 
@@ -5689,29 +6336,13 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        Lesstif not calling XmNpopdownCallback because it doesn't
        handle the case where users don't select any menu item.
 
-       * xlwmenu.c (toggle_button_width): Renamed from
-       toggle_or_radio_button_width.
-       (radio_button_width): New.
-       (size_menu_item): Use new functions.
-       (draw_shadow_rhombus): New.
-       (draw_radio): Use radio_button_width and draw_shadow_rhombus.
-       (draw_toggle): Use toggle_button_width.
-
        * insdel.c (modify_region): Set windows_or_buffers_changed.
 
        * buffer.c (set_buffer_internal): Don't set
        windows_or_buffers_changed.
 
-       * lwlib-Xm.c (xm_update_toggle): Add callback xm_generic_callback
-       instead of xm_internal_update_other_instances.
-
        * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
 
-       * lwlib-Xm.c (make_menu_in_widget): Do help button before managing
-       children to get it to the right place.
-       (make_menu_in_widget): Create toggle buttons.
-       (update_one_menu_entry): Update toggle buttons.
-
        * xmenu.c (menubar_selection_callback): Add workaround for
        Lesstif not calling XmNpopdownCallback.
 
@@ -5724,15 +6355,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
 
        * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
 
-       * xlwmenu.c (size_menu_item): Add parameter button_width.
-       (size_menu): Compute button_width.
-       (toggle_or_radio_button_width): New.
-       (draw_toggle): New.
-       (draw_radio): New.
-       (draw_shadow_rectangle): Add parameter `down_p'.
-
-       * xlwmenuP.h (_window_state): Add button_width.
-
 1998-11-06  Gerd Moellmann  <gerd@gnu.org>
 
        * xmenu.c (single_submenu): Set button_type of menu to 
@@ -5743,12 +6365,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        (single_submenu): Set widget values selected slot.
        (xmenu_show): Likewise.
 
-       * lwlib.c (merge_widget_value): Handle button_type.
-       (copy_widget_value_tree): Copy button_type.
-
-       * lwlib.h (enum button_type): New.
-       (_widget_value): New member button_type.
-
        * xmenu.c (push_menu_item): Add parameters `type' and
        `selected'. Store it in menu_items.
        (MENU_ITEMS_ITEM_TYPE): New.
@@ -5786,9 +6402,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
 
 1998-11-04  Gerd Moellmann  <gerd@gnu.org>
 
-       * lwlib-Xm.c (make_menu_in_widget): Test for menubar widgets
-       using XmNrowColumnType.
-
        * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
        (x_build_heuritic_mask): New.
        (lookup_image): Call it.
@@ -9518,10 +10131,6 @@ Sun Jan  3 08:41:10 1999  Masatake Yamato  <masata-y@is.aist-nara.ac.jp>
        * xfaces.c (Fset_face_attribute_internal): Allow nil relief
        to mean a zero relief.
 
-       * .gdbinit (xprintsym): Print a symbol.
-       (xbacktrace): Print a backtrace of Lisp function calls from
-       backtrace_list.
-
 1997-11-19  Gerd Moellmann  <gerd@acm.org>
 
        * dispnew.c (new_glyph_matrix): Increment glyph_matrix_count
@@ -11829,7 +12438,7 @@ Wed Jun 25 15:22:58 1997  Gerd Moellmann  <gerd@acm.org>
 
        * msdos.c (unibyte_display_via_language_environment): Add extern.
 
-1999-05-02  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-05-02  Richard M. Stallman  <rms@gnu.org>
 
        * xdisp.c (display_text_line): Convert unibyte char to multibyte
        if unibyte_display_via_language_environment is set.
@@ -12045,7 +12654,7 @@ Wed Jun 25 15:22:58 1997  Gerd Moellmann  <gerd@acm.org>
        (display_text_line): Stop the loop for processing overlay strings
        when we reach the right edge of the window.
 
-1999-03-31  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-03-31  Richard M. Stallman  <rms@gnu.org>
 
        * doc.c (get_doc_string): When UNIBYTE and DEFINITION are 0,
        let the data control whether string is unibyte.
@@ -12165,7 +12774,7 @@ Wed Jun 25 15:22:58 1997  Gerd Moellmann  <gerd@acm.org>
 
        * fileio.c (Ffile_directory_p): Doc fix.
 
-1999-03-05  Richard M. Stallman  <rms@caffeine.ai.mit.edu>
+1999-03-05  Richard M. Stallman  <rms@gnu.org>
 
        * coding.c (setup_coding_system): Check for CODING_SYSTEM = nil.