+2004-12-23 Jason Rumney <jasonr@gnu.org>
+
+ * image.c (__WIN32__) [HAVE_NTGUI]: Define for correct behaviour
+ of JPEG library.
+
+2004-12-22 Richard M. Stallman <rms@gnu.org>
+
+ * emacs.c (main): If batch mode, set Vundo_outer_limit to nil.
+
+ * lisp.h (Vundo_outer_limit): Fix decl.
+
+ * undo.c (Vundo_outer_limit): Replaces undo_outer_limit.
+ Uses changed.
+ (syms_of_undo): Initialize appropriately.
+ (truncate_undo_list): If it's nil, there's no limit.
+
+2004-12-22 Kenichi Handa <handa@m17n.org>
+
+ * xselect.c (Fx_get_cut_buffer_internal): Return a unibyte string.
+
+2004-12-21 Richard M. Stallman <rms@gnu.org>
+
+ * eval.c (unwind_to_catch): Clear immediate_quit.
+
+ * xdisp.c (get_next_display_element): Display codes 8a0 and 8ad
+ specially as `\ ' and `\-'.
+
+ * keyboard.c (kbd_buffer_store_event_hold):
+ In the code for while-no-input, handle immediate_quit.
+
+ * alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
+ Call that at the very start.
+ (undo_limit, undo_strong_limit, undo_outer_limit): Moved to undo.c.
+ (syms_of_alloc): Don't define undo-limit,
+ undo-strong-limit and undo-outer-limit here.
+
+ * undo.c (truncate_undo_list): Return void.
+ Take just one argument, the buffer.
+ Make it current, and inhibit recursive GC.
+ Access and update the undo list directly; return void.
+ Refer to the undo...limit variables directly.
+ Test undo_outer_limit only after counting the whole current command.
+ When it's exceeded, call the function in undo-outer-limit-function.
+ (undo_limit, undo_strong_limit, undo_outer_limit): From alloc.c.
+ (Vundo_outer_limit_function): New variable.
+ (syms_of_undo): Define undo-limit, undo-strong-limit
+ and undo-outer-limit here, and undo-outer-limit-function.
+ Doc fixes.
+
+ * lisp.h (truncate_undo_list): Update decl.
+
+2004-12-21 Piet van Oostrum <piet@cs.uu.nl>
+
+ * fileio.c (Fread_file_name): Delete duplicates in
+ file-name-history when history_delete_duplicates is true.
+
+2004-12-20 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c (mac_do_list_fonts): Fix memory leak
+
+2004-12-20 Richard M. Stallman <rms@gnu.org>
+
+ * regex.c (re_match_2_internal) <symend, wordend>:
+ Fix calls to UPDATE_SYNTAX_TABLE_FORWARD.
+
+2004-12-18 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.c (endif, x_font_name_to_mac_font_name): Use
+ maccentraleurroman instead of maccentraleuropean
+ (mac_c_string_match, mac_do_list_fonts): Speed up font search by
+ quickly finding a specific font without needing regexps.
+
+2004-12-15 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * syssignal.h: Declare main_thread.
+ (SIGNAL_THREAD_CHECK): New macro.
+
+ * keyboard.c (input_available_signal): Move thread checking code
+ to macro SIGNAL_THREAD_CHECK and call that macro.
+ (interrupt_signal): Call SIGNAL_THREAD_CHECK.
+
+ * alloc.c (uninterrupt_malloc): Move main_thread to emacs.c.
+
+ * emacs.c: Define main_thread.
+ (main): Initialize main_thread.
+ (handle_USR1_signal, handle_USR2_signal, fatal_error_signal)
+ (memory_warning_signal): Call SIGNAL_THREAD_CHECK.
+
+ * floatfns.c (float_error): Call SIGNAL_THREAD_CHECK.
+
+ * dispnew.c (window_change_signal): Call SIGNAL_THREAD_CHECK.
+
+ * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
+
+ * process.c (send_process_trap, sigchld_handler): Call
+ SIGNAL_THREAD_CHECK.
+
+ * data.c (arith_error): Call SIGNAL_THREAD_CHECK.
+
+ * atimer.c (alarm_signal_handler): Call SIGNAL_THREAD_CHECK.
+
+ * xterm.c (xg_scroll_callback): Update XG_LAST_SB_DATA before
+ returning when xg_ignore_gtk_scrollbar is true.
+
+2004-12-14 Kim F. Storm <storm@cua.dk>
+
+ * keyboard.c (read_char): Save and restore echo_string when
+ handling input method.
+
+2004-12-13 Richard M. Stallman <rms@gnu.org>
+
+ * eval.c (syms_of_eval) <quit-flag>: Doc fix.
+
+ * keyboard.c (Vthrow_on_input): New variable.
+ (syms_of_keyboard): Defvar and initialize it.
+ (kbd_buffer_store_event_hold): Handle Vthrow_on_input.
+
+ * lisp.h (QUIT): Check for Vthrow_on_input.
+ (Vthrow_on_input): Declare it.
+
+2004-12-13 Kim F. Storm <storm@cua.dk>
+
+ * xdisp.c (set_iterator_to_next): Reset stop_charpos after display
+ vector.
+
+2004-12-12 Richard M. Stallman <rms@gnu.org>
+
+ * indent.c (Fvertical_motion): Call move_it_by_lines even if LINES = 0.
+
+ * minibuf.c (Fall_completions): Add var `zero' and use it in loop.
+ (Ftry_completion): Really use outer `zero'; eliminate inner one.
+
+2004-12-12 Kenichi Handa <handa@m17n.org>
+
+ * term.c (encode_terminal_code): Fix previous change.
+
+2004-12-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (handle_async_input): Remove pthread mutex handling.
+ (input_available_signal): Move pthread thingy to !SYNC_INPUT branch.
+
+ * syntax.c (Fforward_word): Avoid non-idempotent side-effects
+ in macro arguments.
+
+ * minibuf.c (Ftry_completion, Fall_completions): Don't use
+ XFASTINT blindly.
+
+ * emacs.c (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
+
+2004-12-11 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * w32term.c (x_calc_absolute_position): Remove calculation of
+ difference between inner and outer window. Don't subtract difference
+ for left and top calculations.
+
+ * xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff
+ for left and top calculations. Remove call to x_real_positions.
+ [Bug report by Drew Adams in November]
+ (x_check_expected_move): Do not set change_gravity to 1 when calling
+ x_set_offset.
+
+2004-12-08 Richard M. Stallman <rms@gnu.org>
+
+ * xdisp.c (get_next_display_element): Use `escape-glyph' for
+ control chars and escaped octal codes.
+ (Qescape_glyph): New variable.
+ (syms_of_xdisp): Initialize it.
+ (escape_glyph_face): New variable.
+ (redisplay_window): Initialize it.
+
+2004-12-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * image.c (our_fill_input_buffer, jpeg_load, CHECK_LIB_AVAILABLE)
+ (init_image): Use 1 rather than TRUE. TRUE's not always defined.
+
+2004-12-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * emacs.c (Fdump_emacs): Add ! defined (SYSTEM_MALLOC) around
+ reset_malloc_hooks.
+
+ * keyboard.c (handle_async_input, input_available_signal):
+ Add ! defined (SYSTEM_MALLOC) around thread code.
+
+ * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
+
+2004-12-07 Stefan <monnier@iro.umontreal.ca>
+
+ * eval.c (init_eval_once): Increase max_specpdl_size to 1000.
+
+ * config.in: Regenerate.
+
+2004-12-07 Jan Dj\e,Ad\e(Brv <jan.h.d@swipnet.se>
+
+ * xmenu.c (Fx_popup_menu): Correct documentation about position.
+ (xmenu_show): Do not call XTranslateCoordinates. Adjust position
+ if not given by a mouse click to correspond with x-popup-menu
+ documentation.
+
+ * config.in: Regenerate.
+
+ * gtkutil.c: Include signal.h and syssignal.h.
+ (xg_get_file_name): Block and unblock __SIGRTMIN if defined.
+
+ * alloc.c: If HAVE_GTK_AND_PTHREAD, include pthread.h,
+ new variables main_thread and alloc_mutex,
+ define (UN)BLOCK_INPUT_ALLOC to use alloc_mutex to protect
+ emacs_blocked_* calls and only do (UN)BLOCK_INPUT in the main thread.
+ If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same as
+ (UN)BLOCK_INPUT.
+ (emacs_blocked_free, emacs_blocked_malloc)
+ (emacs_blocked_realloc): Use (UN)BLOCK_INPUT_ALLOC.
+ (uninterrupt_malloc): Initialize main_thread and alloc_mutex.
+ (reset_malloc_hooks): New function.
+
+ * lisp.h: Declare reset_malloc_hooks.
+
+ * emacs.c (Fdump_emacs): Call reset_malloc_hooks.
+
+ * keyboard.c: Conditionally include pthread.h
+ (handle_async_input, input_available_signalt): If not in the main
+ thread, block signal, send signal to main thread and return.
+
+ * gtkutil.c (xg_get_file_with_chooser): Handle local files only.
+ Set current folder in file chooser if default_filename is a directory.
+
+2004-12-05 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * regex.c (GET_UNSIGNED_NUMBER): Signal an error when reaching the end.
+ Remove redundant correctness checks.
+ (regex_compile): Fix up error codes for \{..\} expressions.
+
+2004-12-05 Richard M. Stallman <rms@gnu.org>
+
+ * regex.c (regex_compile): Fix end-of-pattern case for space.
+
+2004-12-03 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macterm.h (cfstring_create_with_utf8_cstring): Add prototype.
+ * mac.c (cfstring_create_with_utf8_cstring): Add to prevent
+ crashes with invalid characters.
+ * macmenu.c (add_menu_item): Use it.
+ * image.c (image_load_quartz2d): Likewise.
+ * macfns.c (x_set_name, x_set_title): Likewise.
+ (Fx_file_dialog): Likewise. Use constant CFRefs instead of
+ creating them each time for labels.
+
+2004-12-02 Richard M. Stallman <rms@gnu.org>
+
+ * config.in (RE_TRANSLATE_P): If make_number is not a macro,
+ don't use it here.
+
+ * eval.c (Fcalled_interactively_p): Don't check INTERACTIVE.
+ (interactive_p): Skip Scalled_interactively_p frames
+ like Sinteractive_p frames.
+ (unwind_to_catch): Clear handling_signal.
+
+ * data.c (Fmake_variable_buffer_local): Doc fix.
+ (Fmake_local_variable): Doc fix.
+
+ * insdel.c (insert_from_string_before_markers)
+ (insert_from_string): Don't modify buffer on empty insertion.
+
+ * window.c (Fget_lru_window, Fget_largest_window): Doc fixes.
+
+2004-12-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * macmenu.c (add_menu_item): Fallback on MacRoman if encoding
+ menu text as UTF8 fails.
+
+2004-12-01 Kim F. Storm <storm@cua.dk>
+
+ * alloc.c: Add commentary for last change.
+ (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): New macros to handle
+ sizeof(size_t) != 4.
+ (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
+ Use them. Also clear header and trailer of freed memory.
+ (GC_STRING_OVERRUN_COOKIE_SIZE): Rename from GC_STRING_EXTRA.
+ (string_overrun_cookie): Rename from string_overrun_pattern.
+ (GC_STRING_EXTRA): Define from GC_STRING_OVERRUN_COOKIE_SIZE.
+
+2004-12-01 Andreas Schwab <schwab@suse.de>
+
+ * lisp.h: Declare string_to_multibyte.
+
+2004-12-01 Kenichi Handa <handa@m17n.org>
+
+ * w32console.c (w32con_write_glyphs): Decide coding here.
+ Adjusted for the change of encode_terminal_code.
+
+ * term.c (encode_terminal_code): Don't make it "static".
+
+2004-11-30 Kenichi Handa <handa@m17n.org>
+
+ * term.c (encode_terminal_buf, encode_terminal_bufsize): New variables.
+ (encode_terminal_code): Argument changed. Encode all
+ characters at once, and return a pointer to the result of encoding.
+ (write_glyphs): Decide coding here. Adjusted for the above change.
+ (insert_glyphs): Likewise.
+ (term_init): Initialize encode_terminal_bufsize to 0.
+
+ * coding.c (Vcode_conversion_workbuf_name): New variable.
+ (syms_of_coding): Initialize and staticpro it.
+ (set_conversion_work_buffer): New function.
+ (run_pre_post_conversion_on_str): Use it.
+ (run_pre_write_conversin_on_c_str): New function.
+
+ * coding.h (run_pre_write_conversin_on_c_str): Extern it.
+
+2004-11-30 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
+
+ * keyboard.c: Don't undef SIGIO
+ * s/darwin.h (NO_SOCK_SIGIO): Define NO_SOCK_SIGIO on carbon
+ * Makefile.in (mac.o): Depend on blockinput.h and atimer.h.
+ (macfns.o): Don't depend on ccl.h.
+ * macfns.c (mac_frame_parm_handlers): Set handlers for
+ Qleft_fringe and Qright_fringe.
+ * macterm.c (mac_fill_rectangle_to_pixmap)
+ (mac_draw_rectangle_to_pixmap, mac_copy_area_to_pixmap)
+ (mac_copy_area_with_mask_to_pixmap, x_draw_image_foreground_1):
+ Put in #if 0.
+ (mac_scroll_area) [TARGET_API_MAC_CARBON]: Use ScrollWindowRect.
+ (x_flush) [TARGET_API_MAC_CARBON]: Don't traverse frames.
+ (XFlush) [TARGET_API_MAC_CARBON]: Define to an empty replacement.
+ (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
+ [!MAC_OS8]: Added ifdef'd out code for os8. Don't use
+ XDrawImageString. Always draw background and foreground separately.
+ (x_draw_image_foreground): Use clipping instead of computing the
+ intersection rectangle.
+ (x_draw_image_glyph_string): Don't draw an image with mask to a
+ pixmap.
+ (x_redisplay_interface): Set flush_display_optional member to 0.
+ (XTread_socket): Correctly reset the TEConverter
+ object.
+
+2004-11-30 Kim F. Storm <storm@cua.dk>
+
+ * lisp.h: New defines to enable buffer overrun checking.
+ (GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST)
+ (XMALLOC_OVERRUN_CHECK, GC_CHECK_CONS_LIST): Add.
+
+ * alloc.c: Add more checks for buffer overruns.
+ (XMALLOC_OVERRUN_CHECK_SIZE, xmalloc_overrun_check_header)
+ xmalloc_overrun_check_trailer, overrun_check_malloc)
+ overrun_check_realloc, overrun_check_free): Add.
+ (GC_STRING_EXTRA, string_overrun_pattern): Add.
+ (check_sblock, allocate_string_data, compact_small_strings):
+ Set and check string_overrun_pattern if GC_CHECK_STRING_OVERRUN.
+ (check_cons_list): Condition on GC_CHECK_CONS_LIST.
+ (check_string_free_list): Add.
+ (allocate_string, sweep_strings): Call check_string_free_list.
+
+ * emacs.c (malloc_initialize_hook): Don't free malloc_state_ptr if
+ XMALLOC_OVERRUN_CHECK to avoid crash during load.
+
+2004-11-29 Kim F. Storm <storm@cua.dk>
+
+ * fns.c (concat): Use SAFE_ALLOCA.
+
+2004-11-29 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * sysdep.c (emacs_write): Don't use QUIT.
+
+2004-11-29 Kenichi Handa <handa@m17n.org>
+
+ * buffer.c (init_buffer): Set current_buffer->directory to a
+ multibyte string made by string_to_multibyte.
+
+ * emacs.c (init_cmdargs): Set unibyte strings in Vcommand_line_args.
+
+2004-11-27 Andreas Schwab <schwab@suse.de>
+
+ * alloc.c (mark_stack): Call GC_MARK_SECONDARY_STACK if defined.
+
+ * s/gnu-linux.h: Enable no-op gcpros on ia64.
+ (GC_MARK_SECONDARY_STACK) [__ia64__]: Define.
+
+ * filelock.c (lock_file_1): Call get_boot_time early.
+ Increase buffer size.
+
+2004-11-27 Eli Zaretskii <eliz@gnu.org>
+
+ * lisp.h (DECL_ALIGN): Define non-trivially only if NO_DECL_ALIGN
+ is not defined.
+
+2004-11-27 Kim F. Storm <storm@cua.dk>
+
+ * search.c (syms_of_search) <search-spaces-regexp>: Move 'doc:'
+ marker out of doc string.
+
+2004-11-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * s/darwin.h (POSIX_SIGNALS): Undo the removal of 2002-08-25,
+ which was not mentioned in the log.
+
+2004-11-26 Kim F. Storm <storm@cua.dk>
+
+ * fringe.c (update_window_fringes): Prefer truncation bitmaps over
+ angle bitmaps at top/bottom line.
+
+ * xdisp.c: Undo recent changes for restoring saved_face_id. Instead,
+ set it when it->method is set to next_element_from_display_vector.
+ (setup_for_ellipsis): Add LEN argument. Callers changed.
+ Set it->saved_face_id.
+ (get_next_display_element): Use loop instead of recursion.
+ Set it->saved_face_id. Combine duplicate code for ctr chars.
+ (next_element_from_display_vector): Do not set it->saved_face_id.
+ (next_element_from_ellipsis): Use setup_for_ellipsis.
+
+2004-11-26 Eli Zaretskii <eliz@gnu.org>
+
+ * eval.c (Fdefvar): Declare pdl from last change as `volatile' to
+ prevent compiler warnings.
+
2004-11-25 Stefan Monnier <monnier@iro.umontreal.ca>
+ * keyboard.c (command_loop_1): Print a message describing the key
+ the user just pressed when this key has no binding.
+
* sysdep.c (sys_signal): Don't use SA_RESTART if SYNC_INPUT is set.
(emacs_open, emacs_read, emacs_write): Check QUIT when interrupted.