"Fossies" - the Fresh Open Source Software Archive

Member "emacs-26.1/src/ChangeLog.12" (23 Apr 2018, 918607 Bytes) of package /linux/misc/emacs-26.1.tar.xz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "ChangeLog.12": 25.3_vs_26.1.

    1 2013-03-11  Glenn Morris  <rgm@gnu.org>
    2 
    3 	* Merge in all changes up to version 24.3 release.
    4 
    5 2013-03-11  Paul Eggert  <eggert@cs.ucla.edu>
    6 
    7 	* insdel.c (adjust_after_replace): Use bool for boolean.
    8 
    9 2013-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
   10 
   11 	* keyboard.c: Move keyboard decoding to read_key_sequence.
   12 	(decode_keyboard_code): Remove.
   13 	(tty_read_avail_input): Don't try to decode input.
   14 	(read_decoded_char): New function.
   15 	(read_key_sequence): Use it.
   16 
   17 2013-03-10  Daniel Colascione  <dancol@dancol.org>
   18 
   19 	* w32term.h (GUISTR, GUI_ENCODE_FILE, GUI_ENCODE_SYSTEM, GUI_FN)
   20 	(GUI_SDATA, guichar_t): Macros to abstract out differences between
   21 	NTGUI_UNICODE and !NTGUI_UNICODE builds, some moved out of
   22 	w32fns.c.
   23 
   24 	* w32term.c (construct_drag_n_drop): Use the above macros to make
   25 	drag-and-drop work for non-ASCII filenames in cygw32 builds.
   26 
   27 	* w32fns.c (x_set_name, x_set_title): Use the above macros to
   28 	properly display non-ASCII frame titles in cygw32 builds.
   29 
   30 	* w32fns.c (Fw32_shell_execute): Use the above macros to properly
   31 	call ShellExecute in cygw32 builds.
   32 
   33 	* w32fn.c (Fx_file_dialog): Use the above macros to simplify the
   34 	common file dialog code.
   35 
   36 	* w32fns.c (Ffile_system_info): Remove from cygw32 builds, which
   37 	can just use du like other systems.
   38 
   39 	* coding.c (from_unicode_buffer): Declare.
   40 	* coding.c (from_unicode_buffer): Implement.
   41 
   42 2013-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
   43 
   44 	* lread.c: Minor cleanup.
   45 	(FROM_FILE_P): New macro.
   46 	(skip_dyn_bytes, unreadchar, read1): Use it.
   47 	(read_list): Consolidate duplicated code.
   48 
   49 	* bytecode.c (struct byte_stack): Remove `constants' when unused.
   50 
   51 2013-03-10  Eli Zaretskii  <eliz@gnu.org>
   52 
   53 	* xdisp.c (display_tool_bar_line, redisplay_tool_bar)
   54 	(redisplay_internal, set_cursor_from_row, try_window)
   55 	(try_window_id, dump_glyph_row, extend_face_to_end_of_line)
   56 	(display_line, notice_overwritten_cursor)
   57 	(mouse_face_from_buffer_pos, note_mouse_highlight):
   58 	Use MATRIX_ROW_DISPLAYS_TEXT_P.
   59 	(note_mouse_highlight): Use MATRIX_ROW_GLYPH_START.
   60 	(mouse_face_from_string_pos, fast_find_string_pos):
   61 	Use MATRIX_ROW_VPOS.
   62 
   63 	* xfns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
   64 
   65 	* w32fns.c (Fx_show_tip): Use MATRIX_ROW_DISPLAYS_TEXT_P.
   66 
   67 	* xdisp.c (try_cursor_movement): Use MATRIX_ROW and
   68 	MATRIX_MODE_LINE_ROW.
   69 
   70 	* dispnew.c (update_window): Use MATRIX_ROW and MATRIX_MODE_LINE_ROW.
   71 
   72 2013-03-10  Kenichi Handa  <handa@gnu.org>
   73 
   74 	* lisp.h (adjust_after_replace): Extern it.
   75 
   76 	* coding.c (detect_coding): Cound the heading ASCII bytes in the
   77 	case of detection for coding_category_utf_8_auto.
   78 	(decode_coding_gap) [not CODING_DISABLE_ASCII_OPTIMIZATION]:
   79 	Skip decoding if all bytes are ASCII.
   80 
   81 	* insdel.c (adjust_after_replace): Make it public.  New arg
   82 	text_at_gap_tail.
   83 	(adjust_after_insert): Call adjust_after_replace with the new arg
   84 	value 0.
   85 
   86 2013-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
   87 
   88 	* keyboard.h (EVENT_START, EVENT_END, POSN_WINDOW, POSN_POSN)
   89 	(POSN_WINDOW_POSN, POSN_TIMESTAMP): Be careful since events may come
   90 	from Elisp via unread-command-events.
   91 
   92 	* keyboard.c (access_keymap_keyremap): Accept nil return value from
   93 	functions to mean "no change".
   94 
   95 2013-03-08  Paul Eggert  <eggert@cs.ucla.edu>
   96 
   97 	region-cache.c, scroll.c, search.c: Use bool for booleans.
   98 	* lisp.h (compile_pattern):
   99 	* scroll.c (do_scrolling, do_direct_scrolling):
  100 	* search.c (struct regexp_cache, compile_pattern_1)
  101 	(compile_pattern, string_match_1, search_command)
  102 	(trivial_regexp_p, search_buffer, Freplace_match, match_limit)
  103 	(search_regs_saved, Fregexp_quote):
  104 	Use bool for boolean.
  105 	* region-cache.c (region_cache_forward, region_cache_backward):
  106 	Fix comments to match code: these functions return int, not boolean.
  107 
  108 2013-03-08  Dmitry Antipov  <dmantipov@yandex.ru>
  109 
  110 	* search.c (find_newline): Accept start and end byte positions
  111 	as arguments and allow -1 if not known.
  112 	(find_newline_no_quit): Likewise for start position.
  113 	* lisp.h (find_newline, find_newline_no_quit): Adjust prototype.
  114 	* bidi.c (bidi_find_paragraph_start): Pass byte position to
  115 	find_newline_no_quit, thus eliminating CHAR_TO_BYTE.
  116 	* editfns.c (Fconstrain_to_field): Break long line.
  117 	Adjust call to find_newline.
  118 	* indent.c (vmotion): Adjust calls to find_newline_no_quit.
  119 	Use DEC_BOTH to start next search from the previous buffer
  120 	position, where appropriate.
  121 	* xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
  122 	(get_visually_first_element, move_it_vertically_backward): Likewise.
  123 	Obtain byte position from the display iterator, where appropriate.
  124 
  125 2013-03-08  Paul Eggert  <eggert@cs.ucla.edu>
  126 
  127 	print.c, process.c: Use bool for booleans.
  128 	* lisp.h (wait_reading_process_output):
  129 	* print.c (print_output_debug_flag, PRINTDECLARE, printchar)
  130 	(strout, debug_output_compilation_hack, float_to_string, print)
  131 	(print_object):
  132 	* process.c (kbd_is_on_hold, inhibit_sentinels, process_output_skip)
  133 	(decode_status, status_message, create_process, create_pty)
  134 	(Fmake_network_process, Fnetwork_interface_info)
  135 	(wait_reading_process_output, read_process_output)
  136 	(write_queue_push, write_queue_pop, process_send_signal)
  137 	(handle_child_signal, keyboard_bit_set, kbd_on_hold_p):
  138 	* process.h (struct Lisp_Process, inhibit_sentinels, kbd_on_hold_p):
  139 	Use bool for booleans.
  140 	* process.c (Fnetwork_interface_list): Remove unused local.
  141 	(connect_counter): Now EMACS_INT, not int.
  142 
  143 2013-03-08  Dmitry Antipov  <dmantipov@yandex.ru>
  144 
  145 	* bidi.c (bidi_fetch_char): Swap first and second arguments
  146 	to match other functions accepting character and byte positions.
  147 	Adjust comment.
  148 	(bidi_resolve_explicit_1, bidi_level_of_next_char): Adjust users.
  149 	(bidi_paragraph_init): Likewise.  Use DEC_BOTH which is faster
  150 	when you need just to move to the previous buffer position.
  151 	* xdisp.c (Fcurrent_bidi_paragraph_direction): Use DEC_BOTH.
  152 
  153 2013-03-07  Eli Zaretskii  <eliz@gnu.org>
  154 
  155 	* .gdbinit (prowlims): Display the enabled_p flag of the row.
  156 
  157 2013-03-07  Dmitry Antipov  <dmantipov@yandex.ru>
  158 
  159 	Avoid character to byte conversions in motion subroutines.
  160 	* indent.h (compute_motion, vmotion): Add byte position argument.
  161 	* indent.c (compute_motion): Use it and avoid CHAR_TO_BYTE.
  162 	Add eassert.
  163 	(Fcompute_motion): Break long line.  Adjust call to compute_motion.
  164 	Use list5 for return value.
  165 	(vmotion): Use byte position argument and avoid call to CHAR_TO_BYTE.
  166 	Adjust comments, style and calls to compute_motion.
  167 	(Fvertical_motion): Adjust call to vmotion.
  168 	* window.c (Fdelete_other_windows_internal): Record window start
  169 	byte position and adjust call to vmotion.
  170 	(window_scroll_line_based): Likewise with call to compute_motion.
  171 	Use SET_PT_BOTH.
  172 	(Frecenter): Adjust calls to vmotion.
  173 
  174 2013-03-07  Dmitry Antipov  <dmantipov@yandex.ru>
  175 
  176 	* lisp.h (list2i, list3i): New functions.
  177 	(list4i): Move from window.c and make LISP_INLINE.
  178 	* editfns.c (make_lisp_time):
  179 	* fns.c (Flocale_info):
  180 	* keyboard.c (parse_modifiers):
  181 	* xterm.c (x_ewmh_activate_frame): Use list2i.
  182 	* instel.c (signal_after_change):
  183 	* nsfns.m (Fx_server_version, Fxw_color_values):
  184 	* w32fns.c (Fxw_color_values, Fx_server_version):
  185 	* xfns.c (Fxw_color_values, Fx_server_version): Use list3i.
  186 	* fileio.c (Fvisited_file_modtime):
  187 	* nsfns.m (Fns_display_usable_bounds):
  188 	* w32.c (ltime): Use list4i.
  189 
  190 2013-03-06  Eli Zaretskii  <eliz@gnu.org>
  191 
  192 	* search.c (find_newline_no_quit): Rename from find_next_newline.
  193 	Add commentary.
  194 
  195 	* lisp.h (find_newline_no_quit): Rename prototype.
  196 
  197 	* xdisp.c (back_to_previous_line_start)
  198 	(forward_to_next_line_start, get_visually_first_element)
  199 	(move_it_vertically_backward): Callers of find_newline_no_quit changed.
  200 	* indent.c (vmotion): Callers of find_newline_no_quit changed.
  201 	* bidi.c (bidi_find_paragraph_start): Callers of
  202 	find_newline_no_quit changed.
  203 
  204 	* msdos.c: Change encoding to cp850.  (Bug#13879)
  205 	(fr_keyboard, it_keyboard, dk_keyboard): Update keyboard layouts.
  206 
  207 2013-03-06  Dmitry Antipov  <dmantipov@yandex.ru>
  208 
  209 	Coding system support cleanup and minor refactoring.
  210 	* coding.h (enum coding_result_code): Remove
  211 	CODING_RESULT_INCONSISTENT_EOL and CODING_RESULT_INSUFFICIENT_MEM.
  212 	(toplevel): Remove unused CODING_MODE_INHIBIT_INCONSISTENT_EOL.
  213 	(CODING_MODE_LAST_BLOCK, CODING_MODE_SELECTIVE_DISPLAY)
  214 	(CODING_MODE_DIRECTION, CODING_MODE_FIXED_DESTINATION)
  215 	(CODING_MODE_SAFE_ENCODING): Rearrange bit values.
  216 	(decode_coding_region, encode_coding_region, decode_coding_string):
  217 	Remove unused compatibility macros.
  218 	* coding.c (Qinconsistent_eol, Qinsufficient_memory): Remove.
  219 	(record_conversion_result): Adjust user.
  220 	(syms_of_coding): Likewise.
  221 	(ALLOC_CONVERSION_WORK_AREA): Use SAFE_ALLOCA.
  222 	(decode_coding, encode_coding): Add USE_SAFE_ALLOCA and SAFE_FREE.
  223 	(decode_coding_object): Simplify since xrealloc never returns NULL.
  224 	Add eassert.
  225 
  226 2013-03-06  Paul Eggert  <eggert@cs.ucla.edu>
  227 
  228 	Fix a build failure on OpenBSD 4.x and MirBSD (Bug#13881).
  229 	* sysdep.c (list_system_processes)
  230 	[BSD_SYSTEM && !DARWIN_OS && !__FreeBSD__]:
  231 	Make it a stub in this case; otherwise the build might fail,
  232 	and this code hasn't been tested on such hosts anyway.
  233 	Problem reported by Nelson H. F. Beebe in
  234 	<https://lists.gnu.org/r/emacs-devel/2013-03/msg00021.html>
  235 	and analyzed by Jérémie Courrèges-Anglas in
  236 	<https://lists.gnu.org/r/emacs-devel/2013-03/msg00062.html>.
  237 
  238 2013-03-06  Dmitry Antipov  <dmantipov@yandex.ru>
  239 
  240 	* lisp.h (find_next_newline_no_quit): Rename to find_next_newline.
  241 	* xdisp.c (back_to_previous_line_start, forward_to_next_line_start)
  242 	(get_visually_first_element, move_it_vertically_backward): Ajust users.
  243 	* bidi.c (bidi_find_paragraph_start): Likewise.
  244 	* indent.c (vmotion): Likewise.
  245 
  246 2013-03-05  Paul Eggert  <eggert@cs.ucla.edu>
  247 
  248 	FILE's lock is now always .#FILE and may be a regular file (Bug#13807).
  249 	* filelock.c: Include <c-ctype.h>.
  250 	(MAX_LFINFO): New top-level constant.
  251 	(lock_info_type): Remove members pid, boot_time.  Add members at,
  252 	dot, colon.  Change user member to be the entire buffer, not a
  253 	pointer.  This allows us to handle the case where a foreign
  254 	pid or boot time exceeds the local range.  All uses changed.
  255 	(LINKS_MIGHT_NOT_WORK): New constant.
  256 	(FREE_LOCK_INFO): Remove, as the pieces no longer need freeing.
  257 	(defined_WINDOWSNT): Remove.
  258 	(MAKE_LOCK_NAME, file_in_lock_file_name):
  259 	Always use .#FILE (not .#-FILE) for the file lock,
  260 	even if it is a regular file.
  261 	(rename_lock_file): New function.
  262 	(create_lock_file): Use it.
  263 	(create_lock_file, read_lock_data):
  264 	Prefer a symbolic link for the lock file, falling back on a
  265 	regular file if symlinks don't work.  Do not try to create
  266 	symlinks on MS-Windows, due to security hassles.  Stick with
  267 	POSIXish functions (open, read, write, close, fchmod, readlink, symlink,
  268 	link, rename, unlink, mkstemp) when creating locks, as a GNUish
  269 	host may be using a Windowsish file system, and cannot use
  270 	MS-Windows-only system calls.  Fall back on mktemp if mkstemp
  271 	doesn't work.  Don't fail merely because of a symlink-contents
  272 	length limit in the current file system; fall back on regular
  273 	files.  Increase the symlink contents length limit to 8 KiB, this
  274 	should be big enough for any real use and doesn't crunch the
  275 	stack.
  276 	(create_lock_file, lock_file_1, read_lock_data):
  277 	Simplify allocation of lock file buffers now that they fit in 8 KiB.
  278 	(lock_file_1): Return error number, not bool.  All callers changed.
  279 	(ELOOP): New macro, if not already defined.
  280 	(read_lock_data): Return size of lock file contents, not Lisp object.
  281 	All callers changed.  Handle a race condition if some other process
  282 	replaces a regular-file lock with a symlink lock or vice versa,
  283 	while we're trying to read the lock.
  284 	(current_lock_owner): Parse contents more carefully, to help avoid
  285 	confusing a regular-file lock with some other application's use
  286 	of the file.  Check for lock file contents being too long, or
  287 	not parsing correctly.
  288 	(current_lock_owner, lock_file):
  289 	Allow foreign pid and boot times that exceed the local range.
  290 	(current_lock_owner, lock_if_free, lock_file):
  291 	Simplify allocation of lock file contents.
  292 	* w32.c (sys_rename_replace): New function, containing most of
  293 	the contents of the old sys_rename.
  294 	(sys_rename): Use it.
  295 	(fchmod): New dummy function.
  296 	* w32.h (sys_rename_replace, fchmod): New decls.
  297 
  298 2013-03-05  Eli Zaretskii  <eliz@gnu.org>
  299 
  300 	* bidi.c (bidi_resolve_explicit_1): Don't call CHAR_TO_BYTE or
  301 	bidi_count_bytes, as the callers now arrange for bidi_it->charpos
  302 	to be in sync with bidi_it->bytepos.  Suggested by Dmitry Antipov
  303 	<dmantipov@yandex.ru>.
  304 
  305 2013-03-05  Dmitry Antipov  <dmantipov@yandex.ru>
  306 
  307 	* composite.c (get_composition_id, fill_gstring_header):
  308 	Use make_uninit_vector where appropriate.
  309 	* font.c (Ffont_get_glyphs, build_style_table): Likewise.
  310 	* xselect.c (clean_local_selection_data): Likewise.
  311 
  312 2013-03-04  Paul Eggert  <eggert@cs.ucla.edu>
  313 
  314 	Fix misuse of ImageMagick that caused core dump (Bug#13846).
  315 	* image.c (imagemagick_load_image): Calculate height and width
  316 	after flattening the image, not before.
  317 
  318 2013-03-04  Dmitry Antipov  <dmantipov@yandex.ru>
  319 
  320 	* font.c (Ffont_get_glyphs): Use convenient LGLYPH_NEW.
  321 	* ftfont.c (ftfont_shape_by_flt): Likewise.
  322 	* w32uniscribe.c (uniscribe_shape): Likewise.
  323 
  324 2013-03-02  Paul Eggert  <eggert@cs.ucla.edu>
  325 
  326 	The lock for FILE is now .#FILE or .#-FILE (Bug#13807).
  327 	The old approach, which fell back on DIR/.#FILE.0 through
  328 	DIR/.#FILE.9, had race conditions that could not be easily fixed.
  329 	If DIR/.#FILE is a non-symlink file, Emacs now does not create a
  330 	lock file for DIR/FILE; that is, DIR/FILE is no longer partly
  331 	protected by a lock if DIR/.#FILE is a non-symlink file ("partly"
  332 	because the locking mechanism was never reliable in that case).
  333 	This patch fixes this and other bugs discovered by a code
  334 	inspection that was prompted by
  335 	<https://lists.gnu.org/r/emacs-devel/2013-02/msg00531.html>.
  336 	Also, this patch switches to .#-FILE (not .#FILE) on MS-Windows,
  337 	to avoid interoperability problems between the MS-Windows and
  338 	non-MS-Windows implementations.  MS-Windows and non-MS-Windows
  339 	instances of Emacs now ignore each others' locks.
  340 	* filelock.c (defined_WINDOWSNT): New constant.
  341 	(MAKE_LOCK_NAME, fill_in_lock_file_name):
  342 	Don't create DIR/.#FILE.0 through DIR/.#FILE.9.  Instead, create
  343 	DIR/.#FILE symlinks on non-MS-Windows hosts, and DIR/.#-FILE
  344 	regular files on MS-Windows hosts.
  345 	(MAKE_LOCK_NAME, unlock_file, Ffile_locked_p):
  346 	Use SAFE_ALLOCA to avoid problems with long file names.
  347 	(MAX_LFINFO): Now a local constant, not a global macro.
  348 	(IS_LOCK_FILE): Remove.
  349 	(lock_file_1): Don't inspect errno if symlink call succeeds;
  350 	that's not portable.
  351 	(lock_file): Document that this function can return if lock
  352 	creation fails.
  353 	(lock_file): Don't access freed storage.
  354 
  355 2013-03-02  Andreas Schwab  <schwab@linux-m68k.org>
  356 
  357 	* lisp.h (XPNTR) [!USE_LSB_TAG]: Remove extra paren.  (Bug#13734)
  358 
  359 2013-03-02  Paul Eggert  <eggert@cs.ucla.edu>
  360 
  361 	* textprop.c: Use bool for booleans.
  362 	(validate_interval_range, Fadd_text_properties)
  363 	(Fremove_text_properties): Prefer bool to int when either works.
  364 
  365 2013-03-02  Eli Zaretskii  <eliz@gnu.org>
  366 
  367 	* textprop.c (Fadd_text_properties, Fremove_text_properties):
  368 	If the interval tree changes as a side effect of calling
  369 	modify_region, re-do processing starting from the call to
  370 	validate_interval_range.  (Bug#13743)
  371 
  372 2013-02-28  Eli Zaretskii  <eliz@gnu.org>
  373 
  374 	* w32.c (sys_open): Don't reset the flags for FD in fd_info[].
  375 	(Bug#13546).
  376 
  377 2013-02-27  Eli Zaretskii  <eliz@gnu.org>
  378 
  379 	* filelock.c (create_lock_file) [WINDOWSNT]: Use _sopen with
  380 	_SH_DENYRW flag, instead of emacs_open, to deny any other process
  381 	access to the lock file until it is written and closed.
  382 	(Bug#13807)
  383 
  384 2013-02-27  Paul Eggert  <eggert@cs.ucla.edu>
  385 
  386 	* callint.c (Qcall_interactively):
  387 	* macros.c (Qexecute_kbd_macro):
  388 	Now static.
  389 
  390 2013-02-26  Bastien Guerry  <bzg@gnu.org>
  391 
  392 	* window.c (Frecenter): Tiny docstring enhancement.
  393 
  394 2013-02-26  Paul Eggert  <eggert@cs.ucla.edu>
  395 
  396 	Minor textprop integer cleanup.
  397 	* intervals.h, textprop.c (add_text_properties_from_list):
  398 	Return void, not int, since nobody uses the return value.
  399 	* textprop.c (validate_plist, add_properties, remove_properties)
  400 	(Fadd_text_properties):
  401 	Don't assume list length fits in int.
  402 	(interval_has_all_properties, interval_has_some_properties)
  403 	(interval_has_some_properties_list, add_properties, remove_properties)
  404 	(Fadd_text_properties, Fremove_text_properties)
  405 	(Fremove_list_of_text_properties, text_property_stickiness):
  406 	Use bool for booleans.
  407 	(Fadd_text_properties, Fremove_text_properties):
  408 	(Fremove_list_of_text_properties):
  409 	Reindent do-while as per GNU style.
  410 
  411 2013-02-25  Eli Zaretskii  <eliz@gnu.org>
  412 
  413 	Implement CLASH_DETECTION for MS-Windows.
  414 
  415 	* filelock.c [WINDOWSNT]: Include w32.h.
  416 	(MAKE_LOCK_NAME): Don't use 'lock', it clashes with MS runtime
  417 	function of that name.  Up-case the macro arguments.
  418 	(IS_LOCK_FILE): New macro.
  419 	(fill_in_lock_file_name): Use IS_LOCK_FILE instead of S_ISLNK.
  420 	(create_lock_file): New function, with body extracted from
  421 	lock_file_1.
  422 	[WINDOWSNT]: Implement lock files by writing a regular file with
  423 	the lock information as its contents.
  424 	(read_lock_data): New function, on Posix platforms just calls
  425 	emacs_readlinkat.
  426 	[WINDOWSNT]: Read the lock info from the file.
  427 	(current_lock_owner): Call read_lock_data instead of calling
  428 	emacs_readlinkat directly.
  429 	(lock_file) [WINDOWSNT]: Run the file name through
  430 	dostounix_filename.
  431 
  432 	* w32proc.c (sys_kill): Support the case of SIG = 0, in which case
  433 	just check if the process by that PID exists.
  434 
  435 	* w32.c (sys_open): Don't reset the _O_CREAT flag if _O_EXCL is
  436 	also present, as doing so will fail to error out if the file
  437 	already exists.
  438 
  439 	* makefile.w32-in ($(BLD)/filelock.$(O)): Depend on src/w32.h.
  440 
  441 	* textprop.c (Fadd_text_properties, Fremove_text_properties)
  442 	(Fremove_list_of_text_properties): Skip all of the intervals in
  443 	the region between START and END that already have resp. don't
  444 	have the requested properties, not just the first one.
  445 	Add assertions that the loop afterwards always modifies the
  446 	properties.  (Bug#13743)
  447 
  448 2013-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  449 
  450 	* callint.c (Fcall_interactively): Use the right lexical environment
  451 	for `interactive' specs (bug#13811).
  452 	* eval.c (Feval): Accept a lexical environment.
  453 
  454 2013-02-25  Paul Eggert  <eggert@cs.ucla.edu>
  455 
  456 	Simplify data_start configuration (Bug#13783).
  457 	This is a followon simplification to the fix for Bug#13650.
  458 	* Makefile.in (LD_FIRSTFLAG, LIB_GCC, CRT_DIR, LIB_STANDARD)
  459 	(START_FILES): Remove.  All uses removed.
  460 	(otherobj): Remove $(VMLIMIT_OBJ), as it's now first.
  461 	(ALLOBJS): Move here from autodeps.mk, and with VMLIMITS_OBJ first.
  462 	(buildobj.h): Use it.
  463 	($(ALLOBJS)): Depend on globals.h.
  464 	(temacs$(EXEEXT)): Use $(ALLOBJS).
  465 	* autodeps.mk (ALLOBJS): Move to Makefile.in.
  466 	* deps.mk (vm-limit.o):
  467 	* makefile.w32-in ($(BLD)/vm-limit.$(O)):
  468 	Do not depend on mem-limits.h.
  469 	* emacs.c (__do_global_ctors, __do_global_ctors_aux)
  470 	(__do_global_dtors, __CTOR_LIST__, __DTOR_LIST__)
  471 	[__GNUC__ && !ORDINARY_LINK]: Remove.
  472 	* mem-limits.h, pre-crt0.c: Remove.
  473 	* unexaix.c, unexcoff.c: Don't include mem-limits.h.
  474 	* unexcoff.c (etext): New decl.
  475 	(make_hdr): Use DATA_START instead of start_of_data.
  476 	* vm-limit.c: Move most of mem-limits.h's contents here.
  477 	(data_start): New decl.  It's OK if this is approximate,
  478 	so simplify-away some unnecessary exactness.
  479 	(POINTER): Remove; all uses removed.
  480 	(data_space_start): Now char *, to avoid casts.
  481 	(exceeds_lisp_ptr): New function, replacing the old
  482 	EXCEEDS_LISP_PTR macro.  All uses changed.
  483 	(check_memory_limits): Simplify and remove casts.
  484 	(start_of_data) [!CANNOT_DUMP || !SYSTEM_MALLOC]: Remove.
  485 	(memory_warnings): Use data_start instead of start_of_data.
  486 
  487 2013-02-24  Andreas Schwab  <schwab@linux-m68k.org>
  488 
  489 	* xdisp.c (set_message): Only check for debug-on-message if STRING
  490 	is a string.  (Bug#13797)
  491 
  492 2013-02-24  Paul Eggert  <eggert@cs.ucla.edu>
  493 
  494 	Fix regression introduced by July 10 filelock.c patch.
  495 	* filelock.c (fill_in_lock_file_name): Fix crash caused by the
  496 	2012-07-10 patch to this file.  Reported by Eli Zaretskii in
  497 	<https://lists.gnu.org/r/emacs-devel/2013-02/msg00533.html>
  498 	and diagnosed by Andreas Schwab in
  499 	<https://lists.gnu.org/r/emacs-devel/2013-02/msg00534.html>.
  500 
  501 2013-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  502 
  503 	Assume C89 or better.
  504 	* ralloc.c (SIZE, POINTER, NIL):
  505 	* vm-limit.c (POINTER):
  506 	Remove, replacing all uses with C89 equivalents.  These old
  507 	symbols were present only for porting to pre-C89 platforms.
  508 
  509 2013-02-22  Claudio Bley  <claudio.bley@gmail.com>
  510 
  511 	* w32.c (emacs_gnutls_pull): Don't call 'select', and don't loop.
  512 	This avoids warning messages reported as part of Bug#13546.
  513 
  514 2013-02-21  Ken Brown  <kbrown@cornell.edu>
  515 
  516 	* sheap.c (report_sheap_usage): Fix arguments of message1_no_log.
  517 
  518 2013-02-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  519 
  520 	* sheap.c (report_sheap_usage): Prefer message1_nolog.
  521 
  522 	* keyboard.c (Qcommand_execute): New var.
  523 	(command_loop_1, read_char): Use it.
  524 	(Fcommand_execute): Remove, replace by an Elisp implementation.
  525 	(syms_of_keyboard): Adjust accordingly.
  526 
  527 2013-02-19  Daniel Colascione  <dancol@dancol.org>
  528 
  529 	* sheap.c (report_sheap_usage): Use message, not message1, so
  530 	that we don't try to create a buffer while we're in the middle
  531 	of dumping Emacs.  Explain why.
  532 
  533 2013-02-20  Dmitry Antipov  <dmantipov@yandex.ru>
  534 
  535 	* search.c (find_newline): Return byte position in bytepos.
  536 	Adjust comment.
  537 	(find_next_newline_no_quit, find_before_next_newline):
  538 	Add bytepos argument.
  539 	* lisp.h (find_newline, find_next_newline_no_quit)
  540 	(find_before_next_newline): Adjust prototypes.
  541 	* bidi.c (bidi_find_paragraph_start):
  542 	* editfns.c (Fconstrain_to_field, Fline_end_position):
  543 	* indent.c (compute_motion, vmotion):
  544 	* xdisp.c (back_to_previous_line_start, forward_to_next_line_start):
  545 	(get_visually_first_element, move_it_vertically_backward):
  546 	Adjust users and avoid calls to CHAR_TO_BYTE where appropriate.
  547 
  548 2013-02-19  Eli Zaretskii  <eliz@gnu.org>
  549 
  550 	* w32proc.c (new_child): Avoid leaking handles if the subprocess
  551 	resources were not orderly released.
  552 
  553 2013-02-17  Eli Zaretskii  <eliz@gnu.org>
  554 
  555 	* xdisp.c (x_draw_vertical_border): For a window that is neither
  556 	the leftmost nor the rightmost, redraw both the left and the right
  557 	vertical borders.  (Bug#13723)
  558 
  559 2013-02-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  560 
  561 	* xml.c (init_libxml2_functions):
  562 	* sound.c (sound_warning):
  563 	* sheap.c (report_sheap_usage):
  564 	* process.c (wait_reading_process_output):
  565 	* msdos.c (XMenuActivate):
  566 	* macros.c (Fstart_kbd_macro, Fend_kbd_macro):
  567 	* keyboard.c (top_level_1):
  568 	* editfns.c (Fmessage, Fmessage_box):
  569 	* callint.c (Fcall_interactively):
  570 	* fns.c (Fyes_or_no_p): Prefer `message1' over `message'.
  571 
  572 2013-02-17  Jan Djärv  <jan.h.d@swipnet.se>
  573 
  574 	* xterm.c (syms_of_xterm): Move scroll-bar-adjust-thumb-portion ...
  575 	* frame.c (syms_of_frame): ... to here.
  576 
  577 2013-02-16  Eli Zaretskii  <eliz@gnu.org>
  578 
  579 	* w32.c (sys_chown): Remove unused function.
  580 
  581 	* w32term.c <input_signal_count>: Declare 'volatile'
  582 	unconditionally.  (Bug#9066)
  583 
  584 	* w32.c (set_errno): Reset h_errno and don't set it to any other
  585 	value.  Set errno instead.
  586 	(check_errno): Reset h_errno.
  587 	(sys_socket, socket_to_fd, sys_bind, sys_connect)
  588 	(sys_gethostname, sys_getservbyname, sys_getpeername)
  589 	(sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
  590 	(sys_accept, sys_recvfrom, sys_sendto, fcntl, sys_read): Don't set
  591 	h_errno.
  592 	(sys_gethostbyname): Set h_errno only errors detected.
  593 
  594 2013-02-15  Paul Eggert  <eggert@cs.ucla.edu>
  595 
  596 	* process.c (h_errno) [!HAVE_H_ERRNO]: Remove unused decl.
  597 
  598 2013-02-15  Eli Zaretskii  <eliz@gnu.org>
  599 
  600 	* keyboard.c (read_char): Fix calculation of auto-save time out
  601 	when auto-save-timeout is less than 4.  (Bug#13720)
  602 
  603 	* w32proc.c (new_child): Free up to 2 slots of dead processes at a
  604 	time.  Improve diagnostics in DebPrint.  (Bug#13546)
  605 
  606 	* w32.c (sys_socket, sys_bind, sys_connect, sys_gethostname)
  607 	(sys_gethostbyname, sys_getservbyname, sys_getpeername)
  608 	(sys_shutdown, sys_setsockopt, sys_listen, sys_getsockname)
  609 	(sys_accept, sys_recvfrom, sys_sendto, fcntl): In case of failure,
  610 	make sure errno is set to an appropriate value.  (Bug#13546)
  611 	(socket_to_fd): Add assertion against indexing fd_info[] with a
  612 	value that is out of bounds.
  613 	(sys_accept): If fd is negative, do not set up the child_process
  614 	structure for reading.
  615 
  616 2013-02-15  Dmitry Antipov  <dmantipov@yandex.ru>
  617 
  618 	* composite.c (fill_gstring_header): Remove useless prototype.
  619 	Break long line.
  620 	* lisp.h (message_dolog, compile_pattern): Adjust prototype.
  621 	* print.c (PRINTDECLARE, print_object):
  622 	* search.c (compile_pattern, fast_looking_at, search_buffer):
  623 	(simple_search, boyer_moore, Freplace_match):
  624 	* xdisp.c (c_string_pos, number_of_chars, message_dolog):
  625 	(get_overlay_arrow_glyph_row, display_mode_element):
  626 	(decode_mode_spec_coding, message3):
  627 	* xfaces.c (face_at_string_position): Use bool for booleans.
  628 	Adjust comments.
  629 
  630 2013-02-15  Paul Eggert  <eggert@cs.ucla.edu>
  631 
  632 	Fix AIX port (Bug#13650).
  633 	* lisp.h (XPNTR) [!USE_LSB_TAG && DATA_SEG_BITS]:
  634 	Fix bug introduced in 2012-07-27 change.  DATA_SEG_BITS, if set,
  635 	was #undeffed earlier, so it cannot be used as a macro here.
  636 	Use the constant and not the macro.
  637 
  638 2013-02-15  Eli Zaretskii  <eliz@gnu.org>
  639 
  640 	* w32proc.c (new_child): If no vacant slots are found in
  641 	child_procs[], make another pass looking for slots whose process
  642 	has exited or died.  (Bug#13546)
  643 
  644 	* w32.c (sys_pipe): When failing due to file descriptors above
  645 	MAXDESC, set errno to EMFILE.
  646 	(_sys_read_ahead): Update cp->status when failing to read serial
  647 	communications input, so that the status doesn't stay at
  648 	STATUS_READ_IN_PROGRESS.  (Bug#13546)
  649 
  650 2013-02-14  Jan Djärv  <jan.h.d@swipnet.se>
  651 
  652 	* gtkutil.c (tb_size_cb): New function.
  653 	(xg_create_tool_bar): Connect size-allocate to tb_size_cb (Bug#13512).
  654 
  655 2013-02-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  656 
  657 	* keyboard.c (active_maps): Fcurrent_active_maps expects a position, not
  658 	an event.
  659 
  660 2013-02-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  661 
  662 	* keyboard.c (syms_of_keyboard): Further tweaks of docstring.
  663 
  664 2013-02-13  Dmitry Antipov  <dmantipov@yandex.ru>
  665 
  666 	* font.c (font_range): Add pos_byte argument.  Adjust comment
  667 	and break long line.
  668 	* font.h (font_range): Adjust prototype.
  669 	* composite.c (autocmp_chars): Pass byte position to font_range.
  670 	Break long line.  Remove useless prototype and format comment.
  671 
  672 2013-02-13  Glenn Morris  <rgm@gnu.org>
  673 
  674 	* keyboard.c (input-decode-map, key-translation-map): Doc fixes.
  675 
  676 2013-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  677 
  678 	Improve AIX port some more (Bug#13650).
  679 	With this, it should be as good as it was in 23.3, though it's
  680 	still pretty bad: the dumped emacs does not run.  See Mark Fleishman in
  681 	https://lists.gnu.org/r/help-gnu-emacs/2011-04/msg00287.html
  682 	* unexaix.c (start_of_text): Remove.
  683 	(_data, _text): Declare as char[], not int, as AIX manual suggests.
  684 	(bias, lnnoptr, text_scnptr, data_scnptr, load_scnptr)
  685 	(orig_load_scnptr, orig_data_scnptr):
  686 	Now off_t, not long, since they are file offsets.
  687 	(make_hdr): Use _data, not start_of_data ().
  688 	This is the key part of the fix.
  689 	(make_hdr, unrelocate_symbols): Use off_t for file offsets.
  690 	(unrelocate_symbols): Cast pointers to intptr_t, not to ulong.
  691 
  692 	* pre-crt0.c (data_start): Initialize to 1.
  693 	This ports to compilers that optimize the external declaration
  694 	'int x = 0;' as if it were 'int x;' to shrink the executable.
  695 
  696 	Improve AIX port (Bug#13650).
  697 	This doesn't fix the bug, but it makes progress: Emacs builds now.
  698 	* unexaix.c: Include inttypes.h, stdarg.h.
  699 	(report_error, report_error_1): Mark as _Noreturn.
  700 	(report_error): Don't report the wrong errno.
  701 	(report_error_1): Now varargs.  All callers changed.
  702 	(make_hdr): Use uintptr_t, not unsigned, when converting pointers
  703 	to unsigned.  Don't use ADDR_CORRECT, as it no longer exists.
  704 	(write_ptr): Use %p to print address rather than %lx and a cast
  705 	to unsigned long.  Grow buffer a bit, to be safer.
  706 
  707 2013-02-13  Eli Zaretskii  <eliz@gnu.org>
  708 
  709 	* bidi.c (bidi_resolve_neutral): After finding the next
  710 	non-neutral character, accept NEUTRAL_ON type as well, because
  711 	directional control characters, such as LRE and RLE, have their
  712 	type converted to that by bidi_resolve_weak.  This avoids aborts
  713 	when LRE/RLE follows a run of neutrals.
  714 	(bidi_move_to_visually_next): Assert that return value of
  715 	bidi_peek_at_next_level is non-negative.  Negative values will
  716 	cause an infloop.
  717 
  718 2013-02-13  Paul Eggert  <eggert@cs.ucla.edu>
  719 
  720 	Minor getenv-related fixes.
  721 	* callproc.c (Fcall_process_region) [!DOS_NT]:
  722 	Avoid unnecessary duplicate call to getenv.
  723 	* callproc.c (init_callproc):
  724 	* dispnew.c (init_display):
  725 	* sysdep.c (sys_subshell):
  726 	Omit unnecessary cast of getenv or egetenv.
  727 
  728 2013-02-13  Juanma Barranquero  <lekktu@gmail.com>
  729 
  730 	* makefile.w32-in ($(BLD)/filelock.$(O), $(BLD)/sysdep.$(O)):
  731 	Update dependencies.
  732 
  733 2013-02-12  Eli Zaretskii  <eliz@gnu.org>
  734 
  735 	* xdisp.c (redisplay_internal): Don't set w->region_showing to the
  736 	marker's position.
  737 	(display_line): Set w->region_showing to the value of
  738 	it->region_beg_charpos, not to -1.  This fixes redisplay
  739 	optimization when cursor is moved up after M->.  (Bug#13623)
  740 	(Bug#13626)
  741 	(try_scrolling): Scroll text up more if point is too close to ZV
  742 	and inside the scroll margin.  This makes sure point is moved
  743 	outside the scroll margin in these cases.
  744 
  745 	* window.h (struct window): region_showing can no longer be
  746 	negative.
  747 
  748 2013-02-11  Paul Eggert  <eggert@cs.ucla.edu>
  749 
  750 	Tune by using memchr and memrchr.
  751 	* doc.c (Fsnarf_documentation):
  752 	* fileio.c (Fsubstitute_in_file_name):
  753 	* search.c (find_newline, scan_newline):
  754 	* xdisp.c (pos_visible_p, display_count_lines):
  755 	Use memchr and memrchr rather than scanning byte-by-byte.
  756 	* search.c (find_newline): Rename from scan_buffer.
  757 	Omit first arg TARGET, as it's always '\n'.  All callers changed.
  758 
  759 	Clean up read_key_sequence a tiny bit more.
  760 	* keyboard.c (read_char_x_menu_prompt) [HAVE_MENUS]:
  761 	(read_key_sequence): Remove unused locals.
  762 
  763 2013-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  764 
  765 	Clean up read_key_sequence a bit; reread active keymaps after first event.
  766 	* keyboard.c (read_char, read_char_x_menu_prompt)
  767 	(read_char_minibuf_menu_prompt):
  768 	Replace nmaps+maps with a single `map' arg.
  769 	(follow_key): Operate on a single map.
  770 	(active_maps): New function.
  771 	(test_undefined): Also return true for nil bindings.
  772 	(read_key_sequence): Use active_maps to replace the arrays of keymaps with
  773 	a single (composed) keymap.  Remember `first_event' to choose the right
  774 	set of active keymaps.  Recompute the set of keymaps after receiving
  775 	the first event.  Remove GOBBLE_FIRST_EVENT.
  776 	(syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
  777 	* keyboard.h (read_char): Update declaration.
  778 	* lread.c (read_filtered_event): Adjust call to read_char.
  779 
  780 2013-02-11  Eli Zaretskii  <eliz@gnu.org>
  781 
  782 	* xdisp.c (move_it_vertically_backward, move_it_by_lines):
  783 	Don't use the limitation on backwards movement when lines are truncated
  784 	in the window.  (Bug#13675)
  785 
  786 2013-02-11  Dmitry Antipov  <dmantipov@yandex.ru>
  787 
  788 	* marker.c (set_marker_internal): If desired position is passed
  789 	as a marker, avoid call to buf_charpos_to_bytepos.
  790 	* window.c (Fset_window_point): Omit redundant type checking.
  791 	(Fset_window_start): Likewise.  Format comment.
  792 	(window_scroll_pixel_based): Use set_marker_restricted_both
  793 	with character and byte positions obtained from an iterator.
  794 	(Fset_window_configuration): Use set_marker_restricted_both.
  795 	* xdisp.c (message_dolog): Likewise.
  796 
  797 2013-02-10  Eli Zaretskii  <eliz@gnu.org>
  798 
  799 	* xdisp.c (move_it_vertically_backward, move_it_by_lines):
  800 	When text lines are longer than window's screen lines, don't move back
  801 	too far.  This speeds up some redisplay operations.  (Bug#13675)
  802 
  803 2013-02-10  Dmitry Antipov  <dmantipov@yandex.ru>
  804 
  805 	* syntax.c (scan_sexps_forward): Fix byte position calculation
  806 	Bug#13664 (a.k.a Bug#13667) introduced with 2013-02-08 change.
  807 
  808 2013-02-10  Paul Eggert  <eggert@cs.ucla.edu>
  809 
  810 	* fileio.c (Fexpand_file_name): Omit confusing pointer comparison
  811 	that was not needed.
  812 
  813 2013-02-09  Paul Eggert  <eggert@cs.ucla.edu>
  814 
  815 	Minor hashing refactoring.
  816 	* fns.c (SXHASH_REDUCE): Move to lisp.h.
  817 	(sxhash_float): Return EMACS_UINT, for consistency with the other
  818 	hash functions.
  819 	* lisp.h (INTMASK): Now a macro, since SXHASH_REDUCE is now a
  820 	non-static inline function and therefore can't use static vars.
  821 	(SXHASH_REDUCE): Move here from fns.c, and make it inline.
  822 	* profiler.c (hashfn_profiler): Use SXHASH_REDUCE, to be consistent
  823 	with the other hash functions.
  824 
  825 2013-02-09  Eli Zaretskii  <eliz@gnu.org>
  826 
  827 	* callproc.c (Fcall_process_region) [WINDOWSNT]: Make sure the
  828 	XXXXXX part of the temporary file pattern is not downcased even
  829 	when w32-downcase-file-names is non-nil.  (Bug#13661)
  830 
  831 	* xdisp.c (decode_mode_spec): Remove handling of %t.
  832 
  833 	* msdos.c (careadlinkatcwd): Remove.
  834 
  835 2013-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  836 
  837 	* lread.c (skip_dyn_bytes): New function (bug#12598).
  838 	(read1): Use it.  Use getc instead of READCHAR to read bytes.
  839 	(load_each_byte): Remove.  Update users.
  840 
  841 2013-02-08  Dmitry Antipov  <dmantipov@yandex.ru>
  842 
  843 	* search.c (scan_buffer): Calculate end byte position just once.
  844 	(scan_newline): Do not recalculate start_byte.
  845 	(search_command): Use eassert.
  846 	* syntax.c (struct lisp_parse_state): New member location_byte.
  847 	(scan_sexps_forward): Record from_byte and avoid redundant
  848 	character to byte position calculation ...
  849 	(Fparse_partial_sexp): ... here.  Break too long line.
  850 
  851 2013-02-08  Dmitry Antipov  <dmantipov@yandex.ru>
  852 
  853 	* lisp.h (make_uninit_vector): New function.
  854 	* alloc.c (Fvector, Fmake_byte_code):
  855 	* ccl.c (Fregister_ccl_program):
  856 	* charset.c (Fdefine_charset_internal, define_charset_internal):
  857 	* coding.c (make_subsidiaries, Fdefine_coding_system_internal):
  858 	* composite.c (syms_of_composite):
  859 	* font.c (Fquery_font, Ffont_info, syms_of_font):
  860 	* fontset.c (FONT_DEF_NEW, Fset_fontset_font):
  861 	* ftfont.c (ftfont_shape_by_flt):
  862 	* indent.c (recompute_width_table):
  863 	* nsselect.m (clean_local_selection_data):
  864 	* syntax.c (init_syntax_once):
  865 	* w32unsubscribe.c (uniscribe_shape):
  866 	* window.c (Fcurrent_window_configuration):
  867 	* xfaces.c (Fx_family_fonts):
  868 	* xselect.c (selection_data_to_lisp_data): Use it.
  869 
  870 2013-02-07  Dmitry Antipov  <dmantipov@yandex.ru>
  871 
  872 	* coding.c (Fdefine_coding_system_internal): Use AREF where
  873 	argument is known to be a vector.
  874 	* fns.c (Flocale_info): Likewise for ASET.
  875 	* xselect.c (selection_data_to_lisp_data): Likewise for ASET.
  876 	* w32fns.c (w32_parse_hot_key): Likewise for ASIZE and AREF.
  877 
  878 2013-02-05  Jan Djärv  <jan.h.d@swipnet.se>
  879 
  880 	* nsmenu.m (update_frame_tool_bar): Check for negative tool bar
  881 	height.
  882 
  883 	* nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
  884 	(EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
  885 	updateCollectionBehaviour.
  886 
  887 	* nsterm.m (NEW_STYLE_FS): Remove.
  888 	(ns_last_use_native_fullscreen): New variable.
  889 	(x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
  890 	(x_set_window_size): Do not take title bar and tool bar into account
  891 	if isFullscreen returns YES.
  892 	(ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
  893 	(check_native_fs): New function.
  894 	(ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
  895 	(ns_term_init): Remove NEW_STYLE_FS.
  896 	(updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
  897 	and tool bar if isFullscreen returns NO.
  898 	(windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
  899 	(initFrameFromEmacs:): Initialize fs_is_native.  Replace NEW_STYLE_FS
  900 	with HAVE_NATIVE_FS.
  901 	(window:willUseFullScreenPresentationOptions:): New method.
  902 	(windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
  903 	Hide toolbar if not enabled (Bug#13444).
  904 	(windowDidExitFullScreen:): Call updateCollectionBehaviour.
  905 	Restore tool bar if enabled, hide it otherwise (Bug#13444).
  906 	(fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
  907 	(toggleFullScreen:): If fs_is_native, call toggleFullScreen on
  908 	window.  Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
  909 	Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
  910 	FRAME_TOOLBAR_HEIGHT (f).  Call updateFrameSize when going non-fs.
  911 	(syms_of_nsterm): Add ns-use-native-fullscreen.
  912 
  913 2013-02-04  Paul Eggert  <eggert@cs.ucla.edu>
  914 
  915 	* fileio.c (Qchoose_write_coding_system): Now static.
  916 
  917 2013-02-04  Eli Zaretskii  <eliz@gnu.org>
  918 
  919 	* xdisp.c (window_buffer_changed): region_showing can be negative,
  920 	which still means region is being displayed.
  921 	(redisplay_internal): Resurrect code that forced redisplay of the
  922 	whole window when showing region and the mark has changed.
  923 	Record the new mark position to allow redisplay optimizations.
  924 	(display_line): If it->region_beg_charpos is non-zero, set the
  925 	window's region_showing member to -1.  (Bug#13623)  (Bug#13626)
  926 
  927 	* window.h (struct window) <region_showing>: Declare ptrdiff_t,
  928 	not bitfield of 1 bit.
  929 
  930 2013-02-03  Daniel Colascione  <dancol@dancol.org>
  931 
  932 	* emacs.c: Use execvp, not execv, when DAEMON_MUST_EXEC, so that
  933 	daemon mode works on cygw32 when Emacs is installed and not just
  934 	during development.
  935 
  936 2013-02-02  Paul Eggert  <eggert@cs.ucla.edu>
  937 
  938 	Avoid file time stamp bug on MS-Windows (Bug#13149).
  939 	* fileio.c (Fwrite_region): Don't use the heuristic on empty files,
  940 	as FAT32 doesn't update time stamps when truncating them.
  941 	Also, check that a file time stamp is not a multiple of 100 ns;
  942 	this should catch all instances of the problem on MS-Windows,
  943 	as its native file system resolution is 100 ns or worse, and
  944 	checking for a non-multiple of 100 ns should impose only a small
  945 	overhead on systems with ns resolution.
  946 
  947 2013-02-02  Eli Zaretskii  <eliz@gnu.org>
  948 
  949 	Avoid encoding file names on MS-Windows when they need to be run
  950 	through dostounix_filename.
  951 	* w32.c (normalize_filename): Accept an additional argument
  952 	MULTIBYTE; if non-zero, traverse the file name by bytes and don't
  953 	downcase it even if w32-downcase-file-names is non-nil.
  954 	(dostounix_filename): Accept an additional argument MULTIBYTE and
  955 	pass it to normalize_filename.
  956 	(emacs_root_dir): Adjust.
  957 
  958 	* msdos.h (dostounix_filename): Adjust prototype.
  959 
  960 	* w32.h (dostounix_filename): Adjust prototype.
  961 
  962 	* msdos.c (dostounix_filename): Accept an additional argument and
  963 	ignore it.
  964 	(init_environment): Adjust callers of dostounix_filename.
  965 
  966 	* fileio.c (Ffile_name_directory, file_name_as_directory)
  967 	(directory_file_name, Fexpand_file_name)
  968 	(Fsubstitute_in_file_name): [DOS_NT] Adjust call to
  969 	dostounix_filename.
  970 	[WINDOWSNT]: Downcase file names if w32-downcase-file-names is
  971 	non-nil.
  972 	(Fsubstitute_in_file_name): [DOS_NT] Don't downcase environment
  973 	variables, as egetenv is case-insensitive for DOS_NT.
  974 
  975 	* dired.c (file_name_completion): Don't call Fdirectory_file_name
  976 	with an encoded file name.
  977 
  978 	* w32proc.c (Fw32_short_file_name, Fw32_long_file_name):
  979 	Adjust calls to dostounix_filename.
  980 
  981 	* w32fns.c (Fx_file_dialog): Adjust call to dostounix_filename.
  982 
  983 	* unexw32.c (unexec): Adjust call to dostounix_filename.
  984 
  985 	* termcap.c (tgetent) [MSDOS]: Adjust call to dostounix_filename.
  986 
  987 	* emacs.c (decode_env_path) [DOS_NT]: Adjust call to
  988 	dostounix_filename.
  989 
  990 	* callproc.c (Fcall_process) [MSDOS]: Adjust call to
  991 	dostounix_filename.
  992 
  993 	* callproc.c (Fcall_process): Make sure program name in PATH and
  994 	new_argv[0] is encoded, if needed.  Otherwise, un-encoded string
  995 	is passed to exec/spawnve, which fails unless the file-name
  996 	encoding is UTF-8.
  997 
  998 	* w32proc.c (sys_spawnve): Make sure escape_char is initialized,
  999 	even if w32-quote-process-args is nil.
 1000 
 1001 2013-02-01  Paul Eggert  <eggert@cs.ucla.edu>
 1002 
 1003 	Fix timestamp bug when write-region appends nothing (Bug#13149).
 1004 	* fileio.c (Fwrite_region): When neither O_EXCL nor O_TRUNC is used,
 1005 	the file's time stamp doesn't change if Emacs happens to write nothing
 1006 	to the file, and on a buggy file system this could cause Emacs to
 1007 	incorrectly infer that the file system doesn't have the bug.
 1008 	Avoid this problem by inhibiting the inference in this case.
 1009 
 1010 2013-02-01  Dmitry Antipov  <dmantipov@yandex.ru>
 1011 
 1012 	* window.h (struct window): Convert base_line_number, base_line_pos
 1013 	and column_number_displayed members from Lisp_Object to ptrdiff_t.
 1014 	Convert region_showing member from Lisp_Object to bitfield.
 1015 	Remove sequence_number member.  Adjust comments.
 1016 	* window.c (sequence_number): Remove.
 1017 	(make_window): Initialize column_number_displayed.
 1018 	* print.c (print_object): Follow the printed representation of
 1019 	frames and print window pointer to distinguish between windows.
 1020 	(adjust_window_count): Invalidate base_line_pos.  Adjust comment.
 1021 	* xdisp.c (wset_base_line_number, wset_base_line_pos)
 1022 	(wset_column_number_displayed, wset_region_showing): Remove.
 1023 	(window_buffer_changed, mode_line_update_needed, redisplay_internal)
 1024 	(try_scrolling, try_cursor_movement, redisplay_window)
 1025 	(try_window_reusing_current_matrix, try_window_id, display_line)
 1026 	(display_mode_lines, decode_mode_spec): Adjust users.
 1027 	* .gdbinit (pwinx): Do not print sequence_number.
 1028 
 1029 2013-02-01  Paul Eggert  <eggert@cs.ucla.edu>
 1030 
 1031 	Use fdopendir, fstatat and readlinkat, for efficiency (Bug#13539).
 1032 	* conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): Remove.
 1033 	* dired.c: Include <fcntl.h>.
 1034 	(open_directory): New function, which uses open and fdopendir
 1035 	rather than opendir.  DOS_NT platforms still use opendir, though.
 1036 	(directory_files_internal, file_name_completion): Use it.
 1037 	(file_attributes): New function, with most of the old Ffile_attributes.
 1038 	(directory_files_internal, Ffile_attributes): Use it.
 1039 	(file_attributes, file_name_completion_stat): First arg is now fd,
 1040 	not dir name.  All uses changed.  Use fstatat rather than lstat +
 1041 	stat.
 1042 	(file_attributes): Use emacs_readlinkat rather than Ffile_symlink_p.
 1043 	* fileio.c: Include <allocator.h>, <careadlinkat.h>.
 1044 	(emacs_readlinkat): New function, with much of the old
 1045 	Ffile_symlink_p, but with an fd argument for speed.
 1046 	It uses readlinkat rather than careadlinkatcwd, so that it
 1047 	need not assume the working directory.
 1048 	(Ffile_symlink_p): Use it.
 1049 	* filelock.c (current_lock_owner): Use emacs_readlinkat
 1050 	rather than emacs_readlink.
 1051 	* lisp.h (emacs_readlinkat): New decl.
 1052 	(READLINK_BUFSIZE, emacs_readlink): Remove.
 1053 	* sysdep.c: Do not include <allocator.h>, <careadlinkat.h>.
 1054 	(emacs_norealloc_allocator, emacs_readlink): Remove.
 1055 	This stuff is moved to fileio.c.
 1056 	* w32.c (fstatat, readlinkat): New functions.
 1057 	(careadlinkat): Don't check that fd == AT_FDCWD.
 1058 	(careadlinkatcwd): Remove; no longer needed.
 1059 
 1060 2013-01-31  Glenn Morris  <rgm@gnu.org>
 1061 
 1062 	* fileio.c (choose_write_coding_system): Make it callable from Lisp.
 1063 	(Fwrite_region): Update for new choose_write_coding_system args.
 1064 	Move the last piece of choose_write_coding_system here.  (Bug#13522)
 1065 	(syms_of_fileio): Add choose-write-coding-system.
 1066 
 1067 2013-01-30  Eli Zaretskii  <eliz@gnu.org>
 1068 
 1069 	* w32.c (sys_open): Zero out the flags for the new file descriptor.
 1070 	(sys_close): Zero out the flags for the file descriptor before
 1071 	closing it.  (Bug#13546)
 1072 
 1073 	* w32.c (parse_root, get_volume_info, readdir, read_unc_volume)
 1074 	(logon_network_drive, stat_worker, symlink, chase_symlinks):
 1075 	Use CharNextExA and CharPrevExA to iterate over file names encoded in
 1076 	DBCS.  (Bug#13553)
 1077 
 1078 	* w32.c (w32_get_long_filename, init_environment, readlink):
 1079 	Support file names encoded in DBCS codepages.
 1080 	(readlink): Use the current file-name-coding-system, not the ANSI
 1081 	codepage, to decode and handle targets of symlinks.
 1082 
 1083 2013-01-28  Eli Zaretskii  <eliz@gnu.org>
 1084 
 1085 	* w32.c (opendir): Now accepts a 'const char *'.
 1086 
 1087 2013-01-28  Dmitry Antipov  <dmantipov@yandex.ru>
 1088 
 1089 	Remove obsolete redisplay code.  See the discussion at
 1090 	https://lists.gnu.org/r/emacs-devel/2013-01/msg00576.html.
 1091 	* dispnew.c (preemption_period, preemption_next_check): Remove.
 1092 	(Vredisplay_preemption_period): Likewise.
 1093 	(update_frame, update_single_window, update_window, update_frame_1):
 1094 	Adjust users.  Always assume that PERIODIC_PREEMPTION_CHECKING is not
 1095 	used, following the 2012-06-22 change.
 1096 
 1097 2013-01-25  Eli Zaretskii  <eliz@gnu.org>
 1098 
 1099 	* w32notify.c (Fw32notify_add_watch): Doc fix.  (Bug#13540)
 1100 
 1101 2013-01-25  Dmitry Antipov  <dmantipov@yandex.ru>
 1102 
 1103 	* font.c (num_fonts): Remove the leftover from old
 1104 	debugging code.  Adjust comment style here and there.
 1105 	* insdel.c (insert_1): Remove.
 1106 	* lisp.h (insert_1): Remove prototype.
 1107 	* xdisp.c (message_dolog): Adjust users to call insert_1_both.
 1108 
 1109 2013-01-25  Eli Zaretskii  <eliz@gnu.org>
 1110 
 1111 	* w32.c (max_filename_mbslen): New function.
 1112 	(normalize_filename, readdir): Use it to detect locales where ANSI
 1113 	encoding of file names uses a double-byte character set (DBCS).
 1114 	If a DBCS encoding is used, advance by characters using
 1115 	CharNextExA, instead of incrementing a 'char *' pointer.
 1116 	Use _mbslwr instead of _strlwr.  (Bug#13515)
 1117 
 1118 	* w32heap.c (allocate_heap) [!_WIN64]: Decrease the initial
 1119 	request of memory reservation to 1.7GB.  (Bug#13065)
 1120 
 1121 2013-01-25  Andreas Schwab  <schwab@linux-m68k.org>
 1122 
 1123 	* coding.c (detect_coding_iso_2022): Move back mis-reordered code
 1124 	at check_extra_latin label.  (Bug#13505)
 1125 
 1126 2013-01-24  Dmitry Antipov  <dmantipov@yandex.ru>
 1127 
 1128 	* nsfont.m (ns_escape_name, ns_unescape_name, ns_registry_to_script):
 1129 	Avoid redundant calls to strlen.
 1130 
 1131 2013-01-24  Dmitry Antipov  <dmantipov@yandex.ru>
 1132 
 1133 	Drop async_visible and async_iconified fields of struct frame.
 1134 	This is possible because async input is gone; for details, see
 1135 	https://lists.gnu.org/r/emacs-devel/2012-12/msg00734.html.
 1136 	* frame.h (struct frame): Remove async_visible and async_iconified
 1137 	members, convert garbaged to unsigned bitfield.  Adjust comments.
 1138 	(FRAME_SAMPLE_VISIBILITY): Remove.  Adjust all users.
 1139 	(SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED): New macros.
 1140 	* frame.c, gtkutil.c, term.c, w32fns.c, window.c, xdisp.c:
 1141 	Consistently use SET_FRAME_VISIBLE, SET_FRAME_ICONIFIED,
 1142 	FRAME_VISIBLE_P and FRAME_ICONIFIED_P macros where appropriate.
 1143 	* w32term.c: Ditto.
 1144 	(w32_read_socket): Save iconified state to generate DEICONIFY_EVENT
 1145 	properly.  Likewise for obscured.
 1146 	* xterm.c: Ditto.
 1147 	(handle_one_xevent): Save visible state to generate ICONIFY_EVENT
 1148 	properly.
 1149 	* nsterm.m: Ditto.
 1150 	(windowDidDeminiaturize): Generate DEICONIFY_EVENT.
 1151 
 1152 2013-01-24  Dmitry Antipov  <dmantipov@yandex.ru>
 1153 
 1154 	* insdel.c (prepare_to_modify_buffer): Revert last change as suggested
 1155 	in https://lists.gnu.org/r/emacs-devel/2013-01/msg00555.html.
 1156 
 1157 2013-01-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 1158 
 1159 	* xdisp.c (message2, message2_nolog): Remove functions.
 1160 	(message3, message3_nolog): Extract nbytes and multibyteness directly
 1161 	from the string.  Change all callers.
 1162 	(message3_nolog): Don't set message_enable_multibyte since set_message
 1163 	will reset it anyway.
 1164 	(message1, message1_nolog): Use message3.
 1165 	(vmessage): Use a stack allocated buffer rather than f->message_buf.
 1166 	(with_echo_area_buffer): Remove last two arguments.  Update all callers.
 1167 	(set_message): Drop all but the second arg, which has to be a string.
 1168 	(set_message_1): Simplify now that we know that a1 is NULL and the
 1169 	second arg is a string.
 1170 	* frame.h (struct frame): Remove `message_buf' field.
 1171 	Use glyphs_initialized_p instead.
 1172 	(FRAME_MESSAGE_BUF): Remove macro.
 1173 	* w16select.c (Fw16_set_clipboard_data): Prefer message3 to message2.
 1174 	* lisp.h (message2, message2_nolog): Remove declarations.
 1175 	(message3, message3_nolog): Update declarations.
 1176 	* keyboard.c (read_char_minibuf_menu_text)
 1177 	(read_char_minibuf_menu_width): Remove vars.
 1178 	(read_char_minibuf_menu_prompt): Rewrite the menu's construction so as
 1179 	to correctly handle multibyte strings.
 1180 	* frame.c (delete_frame): Don't free message_buf any more.
 1181 	* editfns.c (message_text, message_length): Remove vars.
 1182 	(Fmessage_box): Don't copy the Lisp string's bytes any longer.
 1183 	* fileio.c (auto_save_error): Use message3 instead of message2.
 1184 	* dispnew.c (adjust_frame_message_buffer): Remove function.
 1185 
 1186 2013-01-23  Eli Zaretskii  <eliz@gnu.org>
 1187 
 1188 	* w32term.c (w32fullscreen_hook): Account correctly for the screen
 1189 	real estate used for the tool bar and the menu bar.
 1190 
 1191 2013-01-23  Dmitry Antipov  <dmantipov@yandex.ru>
 1192 
 1193 	* insdel.c (prepare_to_modify_buffer): Force redisplay if
 1194 	hidden buffer is prepared to modification (Bug#13164).
 1195 
 1196 2013-01-22  Dmitry Antipov  <dmantipov@yandex.ru>
 1197 
 1198 	* window.h (struct window): Change window_end_valid member from
 1199 	Lisp_Object to a bitfield.  Adjust comments.
 1200 	(wset_window_end_valid): Remove.
 1201 	* window.c (adjust_window_count): Clear window_end_valid.
 1202 	(Fwindow_end): Adjust user.  Remove ancient #if 0 code.
 1203 	(Fwindow_line_height, set_window_buffer, Frecenter)
 1204 	(Fsplit_window_internal, Fdelete_other_windows_internal)
 1205 	(Fset_window_fringes, Fset_window_scroll_bars): Adjust users.
 1206 	* dispnew.c (adjust_glyph_matrix, clear_window_matrices): Likewise.
 1207 	* xdisp.c (check_window_end, reconsider_clip_changes)
 1208 	(redisplay_internal, mark_window_display_accurate_1, redisplay_window)
 1209 	(try_window, try_window_reusing_current_matrix, note_mouse_highlight)
 1210 	(find_first_unchanged_at_end_row, try_window_id): Likewise.
 1211 
 1212 2013-01-22  Dmitry Antipov  <dmantipov@yandex.ru>
 1213 
 1214 	* xdisp.c (mark_window_display_accurate): Simplify the loop
 1215 	assuming that the only one of vchild, hchild or buffer window
 1216 	slots is non-nil.  Call mark_window_display_accurate_1 for
 1217 	the leaf windows only.
 1218 	(mark_window_display_accurate_1): Always assume leaf window.
 1219 	Adjust comment.
 1220 
 1221 2013-01-22  Paul Eggert  <eggert@cs.ucla.edu>
 1222 
 1223 	* emacs.c (Qkill_emacs_hook): Now static.
 1224 
 1225 	* fileio.c (Finsert_file_contents): Simplify.
 1226 	Remove unnecessary assignments and tests.
 1227 
 1228 2013-01-21  Eli Zaretskii  <eliz@gnu.org>
 1229 
 1230 	* w32.c (acl_set_file): Don't test for errors unless
 1231 	set_file_security returns FALSE.  Avoids spurious errors when
 1232 	saving files.
 1233 
 1234 2013-01-21  Dmitry Antipov  <dmantipov@yandex.ru>
 1235 
 1236 	* fileio.c (Finsert_file_contents): Revert code introduced at
 1237 	2013-01-18 in favor of the simpler and generally better fix.
 1238 	Save stack space by removing 'buffer' and reusing 'read_buf'
 1239 	where appropriate.
 1240 
 1241 2013-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 1242 
 1243 	* lisp.h (eabs): Define unconditionally (Bug#13419).
 1244 	The old "#if !defined (eabs)" was an unnecessary revenant of back
 1245 	when this macro was called "abs".  Document 'eabs' better.
 1246 
 1247 2013-01-19  Glenn Morris  <rgm@gnu.org>
 1248 
 1249 	* fns.c (Frandom): Doc fix.
 1250 
 1251 2013-01-19  Eli Zaretskii  <eliz@gnu.org>
 1252 
 1253 	* editfns.c (get_pos_property): Use SAFE_ALLOCA_LISP, to avoid
 1254 	segfault when there are lots of overlays.
 1255 
 1256 	* buffer.c (sort_overlays): Use SAFE_NALLOCA, to avoid segfault
 1257 	when there are lots of overlays.
 1258 	See https://lists.gnu.org/r/emacs-devel/2013-01/msg00421.html
 1259 	for the details and a way to reproduce.
 1260 
 1261 2013-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 1262 
 1263 	* fileio.c: Use O_APPEND to append.
 1264 	This corresponds better to the natural interpretation of "append",
 1265 	and avoids the need to open the output file twice, or to invoke
 1266 	lseek when APPEND is neither nil nor a number.
 1267 	This relies on POSIX 1003.1-1988 or later, which is OK nowadays.
 1268 	(Fwrite_region): Simplify.  Use O_APPEND instead of opening the
 1269 	file possibly twice, and lseeking to its end; this avoids the
 1270 	need to lseek on non-regular files.  Do not use O_EXCL and O_TRUNC
 1271 	at the same time: the combination is never needed and apparently
 1272 	it doesn't work with DOS_NT.
 1273 
 1274 	Fix size bug on DOS_NT introduced by CIFS workaround (Bug#13149).
 1275 	* fileio.c (Fwrite_region): Use O_BINARY in checking code, too.
 1276 
 1277 	Allow floating-point file offsets.
 1278 	Problem reported by Vitalie Spinu in
 1279 	<https://lists.gnu.org/r/emacs-devel/2013-01/msg00411.html>.
 1280 	* fileio.c (emacs_lseek): Remove.
 1281 	(file_offset): New function.
 1282 	(Finsert_file_contents, Fwrite_region): Use it.
 1283 
 1284 2013-01-19  Chong Yidong  <cyd@gnu.org>
 1285 
 1286 	* emacs.c (Fkill_emacs): Set waiting_for_input to 0 to avoid
 1287 	aborting on Fsignal (Bug#13289).
 1288 
 1289 2013-01-19  Eli Zaretskii  <eliz@gnu.org>
 1290 
 1291 	* w32.c (acl_set_file): Treat ERROR_ACCESS_DENIED from
 1292 	set_file_security as failure due to insufficient privileges.
 1293 	Reported by Fabrice Popineau <fabrice.popineau@supelec.fr>.
 1294 	(fstat): Return owner and group like 'stat' and 'lstat' do.
 1295 
 1296 2013-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 1297 
 1298 	Work around bug in CIFS and vboxsf file systems (Bug#13149).
 1299 	The bug was observed on Ubuntu operating inside a virtual machine,
 1300 	editing files mounted via CIFS or vboxsf from the MS Windows 7 host.
 1301 	The workaround introduces a race condition on non-buggy hosts,
 1302 	but it's an unlikely race and anyway there's a nearly identical
 1303 	nearby race that can't be fixed.
 1304 	* fileio.c (valid_timestamp_file_system, timestamp_file_system):
 1305 	New static vars.
 1306 	(Fwrite_region): Test for file system time stamp bug.
 1307 	(init_fileio): New function.
 1308 	* lisp.h (init_fileio): Declare it.
 1309 	* emacs.c (main): Call it.
 1310 
 1311 	* fileio.c (Finsert_file_contents): Simplify new diagnostic
 1312 	and make it more consistent with other stat-failure diagnostics.
 1313 
 1314 2013-01-18  Dmitry Antipov  <dmantipov@yandex.ru>
 1315 
 1316 	Fix crash when inserting data from non-regular files.
 1317 	See https://lists.gnu.org/r/emacs-devel/2013-01/msg00406.html
 1318 	for the error description produced by valgrind.
 1319 	* fileio.c (read_non_regular): Rename to read_contents.
 1320 	Free Lisp_Save_Value object used to pass parameters.
 1321 	(read_non_regular_quit): Rename to read_contents_quit.
 1322 	(Finsert_file_contents): Redesign internal file reading loop to adjust
 1323 	gap and end positions after each read and so help make_gap to work
 1324 	properly.  Do not signal an I/O error too early and so do not leave
 1325 	not yet decoded characters in a buffer, which was the reason of
 1326 	redisplay crash.  Use list2 to build return value.  Adjust comments.
 1327 
 1328 2013-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 1329 
 1330 	Close a race when statting and reading files (Bug#13149).
 1331 	* fileio.c (Finsert_file_contents): Use open+fstat, not stat+open.
 1332 	This avoids a race if the file is renamed between stat and open.
 1333 	This race is not the problem originally noted in Bug#13149;
 1334 	see <https://bugs.gnu.org/13149#73> and later messages in the thread.
 1335 
 1336 2013-01-17  Dmitry Antipov  <dmantipov@yandex.ru>
 1337 
 1338 	* lisp.h (toplevel): Add comment about using Lisp_Save_Value
 1339 	objects, related functions and macros.
 1340 	(make_save_value): Adjust prototype.
 1341 	(make_save_pointer): New prototype.
 1342 	(SAFE_NALLOCA): Fix indentation.  Use make_save_pointer.
 1343 	(SAFE_ALLOCA_LISP): Adjust make_save_value usage.
 1344 	* alloc.c (format_save_value): Rename to make_save_value.
 1345 	(make_save_pointer): New function.
 1346 	(record_xmalloc): Use make_save_pointer.
 1347 	* dired.c, editfns.c, fileio.c, font.c, gtkutil.c, lread.c:
 1348 	* nsmenu.m, nsterm.m, xfns.c, xmenu.c, xselect.c, keymap.c:
 1349 	Change users of make_save_value to make_save_pointer.
 1350 	Likewise for format_save_value and make_save_value.
 1351 
 1352 2013-01-17  Dmitry Antipov  <dmantipov@yandex.ru>
 1353 
 1354 	* buffer.h (NARROWED, BUF_NARROWED): Drop unused macros.
 1355 	(DECODE_POSITION, BUFFER_CHECK_INDIRECTION): Fix indentation.
 1356 	* buffer.c (toplevel, syms_of_buffer): Drop old commented-out
 1357 	debugging stubs.
 1358 
 1359 2013-01-15  Paul Eggert  <eggert@cs.ucla.edu>
 1360 
 1361 	* alloc.c (free_save_value): Now static.
 1362 
 1363 2013-01-15  Dmitry Antipov  <dmantipov@yandex.ru>
 1364 
 1365 	* keymap.c (map_keymap_internal): Use format_save_value.
 1366 	(map_keymap_char_table_item): Adjust accordingly.
 1367 	* fileio.c (non_regular_fd, non_regular_inserted)
 1368 	(non_regular_nbytes): Remove.
 1369 	(Finsert_file_contents): Convert trytry to ptrdiff_t.
 1370 	Use format_save_value to pass parameters to read_non_regular.
 1371 	(read_non_regular): Use XSAVE_ macros to extract parameters.
 1372 	Adjust comment.
 1373 	* xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Use
 1374 	format_save_value.
 1375 	(pop_down_menu) [!USE_X_TOOLKIT && !USE_GTK]: Adjust user.
 1376 
 1377 2013-01-15  Dmitry Antipov  <dmantipov@yandex.ru>
 1378 
 1379 	* lisp.h (XSAVE_POINTER, XSAVE_INTEGER): Change to allow
 1380 	extraction from any Lisp_Save_Value slot.  Add type checking.
 1381 	* alloc.c, dired.c, editfns.c, fileio.c, ftfont.c, gtkutil.c:
 1382 	* keymap.c, lread.c, nsterm.h, nsmenu.c, xfns.c, xmenu.c:
 1383 	* xselect.c: All users changed.
 1384 
 1385 2013-01-15  Dmitry Antipov  <dmantipov@yandex.ru>
 1386 
 1387 	Some convenient bits to deal with Lisp_Save_Values.
 1388 	* lisp.h (XSAVE_OBJECT): New macro to extract saved objects.
 1389 	(allocate_misc): Remove prototype.
 1390 	(format_save_value): New prototype.
 1391 	* alloc.c (allocate_misc): Revert back to static.
 1392 	(format_save_value): New function to build Lisp_Save_Value
 1393 	object with the specified internal structure.
 1394 	(make_save_value): Reimplement using format_save_value.
 1395 	* editfns.c (save_excursion_save): Use format_save_value.
 1396 	(save_excursion_restore): Use XSAVE_OBJECT.
 1397 
 1398 2013-01-14  Paul Eggert  <eggert@cs.ucla.edu>
 1399 
 1400 	Avoid needless casts with XSAVE_POINTER.
 1401 	* alloc.c (mark_object) [GC_MARK_STACK]:
 1402 	* dired.c (directory_files_internal_unwind):
 1403 	* fileio.c (do_auto_save_unwind):
 1404 	* gtkutil.c (pop_down_dialog):
 1405 	* keymap.c (map_keymap_char_table_item):
 1406 	* lread.c (load_unwind):
 1407 	* nsmenu.m (pop_down_menu):
 1408 	* print.c (print_object) [GC_MARK_STACK]:
 1409 	* xfns.c (clean_up_file_dialog):
 1410 	* xmenu.c (cleanup_widget_value_tree):
 1411 	Omit casts between XSAVE_POINTER and a pointer type.
 1412 
 1413 2013-01-14  Dmitry Antipov  <dmantipov@yandex.ru>
 1414 
 1415 	Fix compilation with GC_MARK_STACK == GC_USE_GCPROS_AS_BEFORE.
 1416 	* eval.c (eval_sub): Protect `form' from being GCed before its
 1417 	car and cdr becomes protected with the backtrace entry.
 1418 
 1419 2013-01-14  Dmitry Antipov  <dmantipov@yandex.ru>
 1420 
 1421 	Make Lisp_Save_Value more versatile storage for up to four objects.
 1422 	* lisp.h (toplevel): Enumeration to describe types of saved objects.
 1423 	(struct Lisp_Save_Value): New layout.  Adjust comments.
 1424 	(XSAVE_POINTER): New macro.
 1425 	(XSAVE_INTEGER): Likewise.
 1426 	(allocate_misc): Add prototype.
 1427 	(free_misc): Likewise.
 1428 	* alloc.c (allocate_misc): Now global.
 1429 	(free_misc): Likewise.  Adjust comment.
 1430 	(make_save_value): Use new Lisp_Save_Value layout.  Adjust comment.
 1431 	(free_save_value): Likewise.
 1432 	(mark_object): Likewise.
 1433 	* editfns.c (save_excursion_save): Pack everything within
 1434 	Lisp_Save_Value and so avoid xmalloc.
 1435 	(save_excursion_restore): Adjust to match new layout.  Use free_misc
 1436 	because we do not allocate extra memory any more.  Add eassert.
 1437 	* print.c (print_object): New code to print Lisp_Save_Value.  Do not
 1438 	rely on valid_lisp_object_p if !GC_MARK_STACK.  Adjust comments.
 1439 	* dired.c, fileio.c, font.c, ftfont.c, gtkutil.c, keymap.c,
 1440 	* lread.c, nsmenu.m, nsterm.h, xfns.c, xmenu.c, xselect.c:
 1441 	Use XSAVE_POINTER and XSAVE_INTEGER where appropriate.
 1442 
 1443 2013-01-13  Jan Djärv  <jan.h.d@swipnet.se>
 1444 
 1445 	* nsfont.m (LCD_SMOOTHING_MARGIN): New define.
 1446 	(nsfont_draw): Remove disabling of LCD smoothing.
 1447 	(ns_glyph_metrics): Add LCD_SMOOTHING_MARGIN to bearings to fix
 1448 	Bug#11484 with LCD smoothing on.
 1449 
 1450 2013-01-13  Paul Eggert  <eggert@cs.ucla.edu>
 1451 
 1452 	Fix SIGDANGER handlers, for AIX (Bug#13408).
 1453 	* sysdep.c.c (handle_danger_signal, deliver_danger_signal) [SIGDANGER]:
 1454 	Move handlers here from emacs.c; they were out of place.
 1455 
 1456 2013-01-11  Jan Djärv  <jan.h.d@swipnet.se>
 1457 
 1458 	* xterm.c (syms_of_xterm): Adjust documentation for
 1459 	scroll-bar-adjust-thumb-portion.
 1460 
 1461 2012-12-31  Adam Sjøgren  <asjo@koldfront.dk>  (tiny change)
 1462 
 1463 	* xterm.c (scroll-bar-adjust-thumb-portion): New variable to
 1464 	determine whether scroll bar thumb size should be adjusted or not.
 1465 	Use variable for MOTIF.
 1466 
 1467 	* gtkutil.c (scroll-bar-adjust-thumb-portion): Use variable for GTK.
 1468 
 1469 2013-01-13  Jan Djärv  <jan.h.d@swipnet.se>
 1470 
 1471 	* nsterm.m (keyDown:): Set processingCompose to NO if an emacs key
 1472 	event is generated.
 1473 	(doCommandBySelector:): Set processingCompose to NO.
 1474 
 1475 	* nsfont.m (ns_findfonts): Add block/unblock_input calls.
 1476 	Remove check for fkeys count > zero, block/unblock fixes the real bug.
 1477 	(nsfont_list_family): Add block/unblock_input calls.
 1478 	(nsfont_open): Move block_input earlier.  Add unblock_input before early
 1479 	return.
 1480 	(nsfont_draw): Add block/unblock_input calls.
 1481 
 1482 2013-01-12  Dmitry Antipov  <dmantipov@yandex.ru>
 1483 
 1484 	* indent.c (Fvertical_motion): Remove now-incorrect GCPROs
 1485 	for old_charpos and old_bytepos.
 1486 
 1487 2013-01-12  Paul Eggert  <eggert@cs.ucla.edu>
 1488 
 1489 	Fix bug with set-time-zone-rule and LOCALTIME_CACHE (Bug#13415).
 1490 	* editfns.c (set_time_zone_rule) [LOCALTIME_CACHE]:
 1491 	Clear tzvalbuf_in_environ if this workaround is in effect.
 1492 	Problem and fix reported by Kazuhiro Ito.
 1493 
 1494 2013-01-11  Aaron S. Hawley  <Aaron.Hawley@vtinfo.com>
 1495 
 1496 	* insdel.c (Fcombine_after_change_execute, syms_of_insdel):
 1497 	Fix ambiguous doc string cross-reference(s).
 1498 
 1499 	* keyboard.c (Fcommand_execute, syms_of_keyboard): Fix ambiguous
 1500 	 doc string cross-reference(s).
 1501 
 1502 	* window.c (Fwindow_point, syms_of_window): Fix ambiguous doc
 1503 	 string cross-reference(s).
 1504 
 1505 2013-01-11  Dmitry Antipov  <dmantipov@yandex.ru>
 1506 
 1507 	Avoid unnecessary byte position calculation for the gap movement.
 1508 	Since all users of move_gap do CHAR_TO_BYTE for other purposes
 1509 	anyway, all of them should use move_gap_both instead.
 1510 	* lisp.h (move_gap): Remove prototype.
 1511 	* insdel.c (move_gap): Remove.
 1512 	(move_gap_both): Add eassert.
 1513 	* editfns.c (Ftranspose_regions): Tweak to use move_gap_both.
 1514 	* xml.c (parse_region): Likewise.
 1515 
 1516 2013-01-11  Paul Eggert  <eggert@cs.ucla.edu>
 1517 
 1518 	emacsclient -t should not suspend Emacs server (Bug#13387)
 1519 	* lisp.h, sysdep.c (block_tty_out_signal, unblock_tty_out_signal):
 1520 	New functions.
 1521 	* term.c (init_tty): Use them instead of rolling our own code.
 1522 	* sysdep.c (tcsetpgrp_without_stopping): Likewise.  Here, this
 1523 	switches from 'signal' to 'pthread_sigmask', which is safer in
 1524 	multithreaded applications.
 1525 	* term.c (Fresume_tty): Don't bother dissociating if O_IGNORE_CTTY,
 1526 	which has already arranged for that.
 1527 	(dissociate_if_controlling_tty): If setsid fails, fall back on TIOCNOTTY.
 1528 	This is the main part of the bug fix.
 1529 
 1530 2013-01-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>  (tiny change)
 1531 
 1532 	* gtkutil.c (xg_initialize): Add ifdef HAVE_FREETYPE around
 1533 	x_last_font_name (Bug#13403).
 1534 
 1535 2013-01-10  Dmitry Antipov  <dmantipov@yandex.ru>
 1536 
 1537 	Omit buffer_slot_type_mismatch and use generic predicates to enforce
 1538 	the type of per-buffer values where appropriate.
 1539 	* lisp.h (struct Lisp_Buffer_Objfwd): Rename slottype member to
 1540 	predicate, which is how it's really used now.  Adjust comment.
 1541 	* buffer.h (buffer_slot_type_mismatch): Remove prototype.
 1542 	* buffer.c (buffer_slot_type_mismatch): Remove.
 1543 	(DEFVAR_PER_BUFFER, defvar_per_buffer): Rename type argument to
 1544 	predicate.  Adjust comment.
 1545 	(syms_of_buffer): Use Qsymbolp for major-mode.  Use Qintegerp for
 1546 	fill-column, left-margin, tab-width, buffer-saved-size,
 1547 	left-margin-width, right-margin-width, left-fringe-width,
 1548 	right-fringe-width, scroll-bar-width and buffer-display-count.
 1549 	Use Qstringp for default-directory, buffer-file-name,
 1550 	buffer-file-truename and buffer-auto-save-file-name.  Use Qfloatp for
 1551 	scroll-up-aggressively and scroll-down-aggressively.  Use Qnumberp for
 1552 	line-spacing.
 1553 	* data.c (store_symval_forwarding): Adjust to call the predicate.
 1554 
 1555 2013-01-09  Juanma Barranquero  <lekktu@gmail.com>
 1556 
 1557 	* w32.c (get_name_and_id, acl_set_file):
 1558 	* w32term.c (w32fullscreen_hook): Remove unused local variables.
 1559 
 1560 2013-01-09  Dmitry Antipov  <dmantipov@yandex.ru>
 1561 
 1562 	* lisp.h (make_gap_1): New prototype.
 1563 	* buffer.h (GAP_BYTES_DFL, GAP_BYTES_MIN): New macros for the special
 1564 	gap size values.
 1565 	* editfns.c (Fbuffer_size): Rename from Fbufsize to fit the common
 1566 	naming convention.
 1567 	(syms_of_editfns): Adjust defsubr.  Drop commented-out obsolete code.
 1568 	* insdel.c (make_gap_larger): Use GAP_BYTES_DFL.  Adjust comment.
 1569 	(make_gap_smaller): Use GAP_BYTES_MIN.  Adjust comment.
 1570 	(make_gap_1): New function to adjust the gap of any buffer.
 1571 	* coding.c (coding_alloc_by_making_gap): Use it.
 1572 	* buffer.c (compact_buffer): Likewise.  Use BUF_Z_BYTE, BUF_GAP_SIZE,
 1573 	GAP_BYTES_DFL and GAP_BYTES_MIN.  Adjust comment.
 1574 
 1575 2013-01-08  Juri Linkov  <juri@jurta.org>
 1576 
 1577 	* xfaces.c (tty_supports_face_attributes_p): Return 0 for the case
 1578 	of (supports :underline (:style wave)).  (Bug#13000)
 1579 
 1580 2013-01-08  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 1581 
 1582 	* undo.c (Fprimitive_undo): Move to simple.el.
 1583 	(syms_of_undo): Remove declarations for Sprimitive_undo.
 1584 
 1585 2013-01-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 1586 
 1587 	* keyboard.c (echo_add_key): Rename from echo_add_char.
 1588 
 1589 2013-01-06  Chong Yidong  <cyd@gnu.org>
 1590 
 1591 	* keyboard.c (echo_add_char): New function, factored out from
 1592 	echo_char.  Don't add a space if the previous echo string was
 1593 	empty (Bug#13255).
 1594 	(echo_char): Use it.
 1595 	(read_key_sequence): When echoing mock input, ensure that the
 1596 	trailing dash is properly added.
 1597 
 1598 2013-01-05  Eli Zaretskii  <eliz@gnu.org>
 1599 
 1600 	* xdisp.c (dump_glyph): Align glyph data better.  Use "pD" instead
 1601 	of a non-portable "t" to print ptrdiff_t values.  Allow up to 9
 1602 	digits for buffer positions, before misalignment starts.
 1603 	Display "0" for integer "object" field.
 1604 	(dump_glyph_row): Adapt the header line to changes in dump_glyph.
 1605 	Display the newline glyph more unambiguously.
 1606 
 1607 2013-01-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 1608 
 1609 	* nsterm.m (ns_draw_underwave):
 1610 	* w32term.c (w32_draw_underwave):
 1611 	* xterm.c (x_draw_underwave): Make underwave look more triangular
 1612 	and also degrade gracefully for small fonts.  (Bug#13000)
 1613 
 1614 	* nsterm.m (ns_draw_text_decoration):
 1615 	* w32term.c (x_draw_glyph_string):
 1616 	* xterm.c (x_draw_glyph_string): Don't use previous underline
 1617 	thickness and position if previous underline type is underwave.
 1618 
 1619 2013-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 1620 
 1621 	* fileio.c (Ffile_acl): Undocument return format.
 1622 
 1623 2013-01-02  Glenn Morris  <rgm@gnu.org>
 1624 
 1625 	* keymap.c (Fkey_description): Doc fix.  (Bug#13323)
 1626 
 1627 2013-01-02  Paul Eggert  <eggert@cs.ucla.edu>
 1628 
 1629 	Simplify via eabs.
 1630 	* dired.c (file_name_completion):
 1631 	* doc.c (get_doc_string):
 1632 	* floatfns.c (round2):
 1633 	* font.c (font_score, font_delete_unmatched):
 1634 	* fringe.c (compute_fringe_widths):
 1635 	* lread.c (read_list):
 1636 	* minibuf.c (Ftry_completion):
 1637 	* term.c (tty_ins_del_lines):
 1638 	* xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
 1639 	Use eabs (x) rather than open-coding it as (x < 0 ? -x : x).
 1640 
 1641 2012-12-31  Eli Zaretskii  <eliz@gnu.org>
 1642 
 1643 	* w32.c (unsetenv): Set up the string passed to _putenv
 1644 	correctly.
 1645 	See https://lists.gnu.org/r/emacs-devel/2012-12/msg00863.html
 1646 	for the bug this caused.
 1647 
 1648 2012-12-30  Paul Eggert  <eggert@cs.ucla.edu>
 1649 
 1650 	* coding.c (Qmac): Now static.
 1651 
 1652 2012-12-30  Jan Djärv  <jan.h.d@swipnet.se>
 1653 
 1654 	* gtkutil.c (TOOLBAR_TOP_WIDGET): New macro.
 1655 	(xg_pack_tool_bar): Use TOOLBAR_TOP_WIDGET, condition out use of
 1656 	handlebox_widget.  Set toolbar_in_hbox to false/true, set
 1657 	toolbar_is_packed to true.
 1658 	(xg_update_tool_bar_sizes): Use widget returned by TOOLBAR_TOP_WIDGET.
 1659 	(update_frame_tool_bar): Check toolbar_is_packed for packing.
 1660 	Show all on TOOLBAR_TOP_WIDGET.
 1661 	(free_frame_tool_bar): Check toolbar_is_packed.  Use widget returned
 1662 	by TOOLBAR_TOP_WIDGET.
 1663 	(xg_change_toolbar_position): Use widget returned by TOOLBAR_TOP_WIDGET.
 1664 	Check toolbar_is_packed.
 1665 	(xg_have_tear_offs, tearoff_remove, tearoff_activate): Condition on
 1666 	HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
 1667 	(xg_have_tear_offs): When ! HAVE_GTK_TEAROFF_MENU_ITEM_NEW, return
 1668 	false.
 1669 	(create_menus): Create tearoff only if HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
 1670 	(xg_update_menubar): Update title only if
 1671 	HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
 1672 	(xg_update_submenu): Skip tearoff only if
 1673 	HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
 1674 	(xg_initialize): Initialize xg_detached_menus only if
 1675 	HAVE_GTK_TEAROFF_MENU_ITEM_NEW.
 1676 
 1677 	* xterm.h (struct x_output): Surround handlebox_widget with
 1678 	#ifdef HAVE_GTK_HANDLE_BOX_NEW.  toolbar_is_packed is new,
 1679 	toolbar_in_hbox is bool.
 1680 
 1681 2012-12-30  Andreas Schwab  <schwab@linux-m68k.org>
 1682 
 1683 	* Makefile.in (TEMACS_LDFLAGS2): Remove.
 1684 	(LIBS_GNUSTEP): Define.
 1685 	(LIBES): Add $(LIBS_GNUSTEP).
 1686 	(temacs$(EXEEXT)): Use $(LDFLAGS) instead of $(TEMACS_LDFLAGS2).
 1687 
 1688 2012-12-30  Eli Zaretskii  <eliz@gnu.org>
 1689 
 1690 	* xdisp.c (set_cursor_from_row): Don't confuse a truncation or
 1691 	continuation glyph on a TTY with an indication of an empty line.
 1692 	(Bug#13277)
 1693 
 1694 2012-12-29  Eli Zaretskii  <eliz@gnu.org>
 1695 
 1696 	* fileio.c (Fset_file_selinux_context, Fset_file_acl): Return t if
 1697 	file's SELinux context or ACLs successfully set, nil otherwise.
 1698 	(Bug#13298)
 1699 	(Fcopy_file) [WINDOWSNT]: Improve diagnostics when CopyFile fails.
 1700 
 1701 	* w32proc.c (reader_thread): Avoid passing NULL handles to
 1702 	SetEvent and WaitForSingleObject.
 1703 
 1704 2012-12-28  Paul Eggert  <eggert@cs.ucla.edu>
 1705 
 1706 	Port EXTERNALLY_VISIBLE to Clang 3.2.
 1707 	* conf_post.h (__has_attribute): New macro.
 1708 	(EXTERNALLY_VISIBLE): Use it.  This ports to Clang 3.2.
 1709 
 1710 2012-12-27  Glenn Morris  <rgm@gnu.org>
 1711 
 1712 	* cygw32.c (Fcygwin_convert_file_name_to_windows)
 1713 	(Fcygwin_convert_file_name_from_windows): Doc fixes.
 1714 
 1715 2012-12-27  Eli Zaretskii  <eliz@gnu.org>
 1716 
 1717 	* fileio.c (file_name_as_directory, directory_file_name):
 1718 	Accept an additional argument MULTIBYTE to indicate whether the input C
 1719 	came from a multibyte or a unibyte Lisp string; all callers
 1720 	adjusted.  Don't assume the input string is always multibyte.
 1721 	(Bug#13262)
 1722 	(Ffile_name_directory) [DOS_NT]: Handle unibyte strings correctly:
 1723 	don't ENCODE_FILE them, and return a unibyte string if the input
 1724 	was unibyte.
 1725 	(Fexpand_file_name): Don't mix unibyte with multibyte strings, and
 1726 	don't assume the input strings will always be multibyte.  If the
 1727 	input strings are multibyte, decode strings obtained from C
 1728 	library functions.
 1729 
 1730 2012-12-26  Dmitry Antipov  <dmantipov@yandex.ru>
 1731 
 1732 	* lisp.h (toplevel): Add two notices to the comment about
 1733 	defining a new Lisp data type.
 1734 	* print.c (print_object): If Lisp_Save_Value object's pointer
 1735 	is the address of a memory area containing Lisp_Objects, try
 1736 	to print them.
 1737 	* alloc.c (valid_lisp_object_p): Adjust comment.
 1738 
 1739 2012-12-26  Dmitry Antipov  <dmantipov@yandex.ru>
 1740 
 1741 	* keyboard.c (record_asynch_buffer_change): Initialize an event
 1742 	only if it's really needed.
 1743 	* frame.h (enum output_method): Remove output_mac member since
 1744 	it's a leftover from the deleted code.
 1745 	* frame.c (Fframep): Adjust user here ...
 1746 	* terminal.c (Fterminal_live_p): ... and here.
 1747 	* coding.c (Qmac): Now here because it's only used to denote
 1748 	end-of-line encoding type.
 1749 	(syms_of_coding): DEFSYM it.
 1750 	* frame.h (Qmac): Remove duplicated declaration.
 1751 
 1752 2012-12-26  Paul Eggert  <eggert@cs.ucla.edu>
 1753 
 1754 	* window.c (select_window_1): Now static, since it's used only here.
 1755 
 1756 2012-12-25  Eli Zaretskii  <eliz@gnu.org>
 1757 
 1758 	* window.c (window_body_cols): Subtract display margins from the
 1759 	window body width on TTYs as well.  See
 1760 	https://lists.gnu.org/r/help-gnu-emacs/2012-12/msg00317.html
 1761 	for the original report.
 1762 
 1763 2012-12-25  Dmitry Antipov  <dmantipov@yandex.ru>
 1764 
 1765 	* xdisp.c (redisplay_window): Remove inner local variable
 1766 	because the outer shadowed one has the same meaning.
 1767 	* xterm.h (struct x_output): Remove toolbar_detached member since it's
 1768 	set but never used.
 1769 	* gtkutil.c (xg_tool_bar_detach_callback, xg_tool_bar_attach_callback)
 1770 	(xg_create_tool_bar): Adjust users.
 1771 
 1772 2012-12-24  Dmitry Antipov  <dmantipov@yandex.ru>
 1773 
 1774 	* buffer.h (BUF_COMPACT): New macro to follow the common style.
 1775 	* buffer.c (Fget_buffer_create): Use it to set compact field of
 1776 	struct buffer_text to avoid accessing an uninitialized value
 1777 	when compact_buffer is called for the first time.
 1778 	(compact_buffer): Use convenient BUF_COMPACT and BUF_MODIFF.
 1779 	(Fset_buffer_modified_p): Use buffer_window_count to check
 1780 	whether the buffer is displayed in some window.
 1781 	* xdisp.c (message_dolog): Likewise.
 1782 
 1783 2012-12-23  Eli Zaretskii  <eliz@gnu.org>
 1784 
 1785 	* w32.c (acl_set_file): If setting the file security descriptor
 1786 	fails, and the new DACL is identical to the existing one, silently
 1787 	return success.  This fixes problems for users backing up their
 1788 	own files without having the necessary privileges for setting
 1789 	security descriptors.
 1790 
 1791 	* w32proc.c (reader_thread): Do not index fd_info[] with negative
 1792 	values.
 1793 	(reader_thread): Exit when cp->status becomes STATUS_READ_ERROR
 1794 	after WaitForSingleObject returns normally.  This expedites reader
 1795 	thread shutdown when delete_child triggers it.
 1796 	(reap_subprocess): More accurate commentary for why we call
 1797 	delete_child only when cp->fd is negative.
 1798 
 1799 	* w32.c (sys_close): Do not call delete_child on a subprocess
 1800 	whose handle is not yet closed.  Instead, set its file descriptor
 1801 	to a negative value, so that reap_subprocess will call
 1802 	delete_child on that subprocess when its SIGCHLD arrives.
 1803 	This avoids closing handles used for communications between sys_select
 1804 	and reader_thread, which doesn't give sys_select a chance to
 1805 	notice that the process exited and invoke the SIGCHLD handler for
 1806 	it.
 1807 
 1808 2012-12-23  Jan Djärv  <jan.h.d@swipnet.se>
 1809 
 1810 	* nsfns.m (Fns_do_applescript): Run event loop until script has
 1811 	been executed (Bug#12969).
 1812 	(ns_run_ascript): Chech as_script for nil, set to nil after
 1813 	executing script.
 1814 
 1815 2012-12-22  Martin Rudalics  <rudalics@gmx.at>
 1816 
 1817 	* window.c (Fselect_window): Reword doc-string (Bug#13248).
 1818 
 1819 2012-12-22  Eli Zaretskii  <eliz@gnu.org>
 1820 
 1821 	* w32term.c (w32fullscreen_hook): New function.
 1822 	(w32_create_terminal): Plug it into the terminal's fullscreen_hook.
 1823 
 1824 2012-12-21  Eli Zaretskii  <eliz@gnu.org>
 1825 
 1826 	* fileio.c (Finsert_file_contents): Doc fix.
 1827 
 1828 	* w32proc.c (new_child, delete_child, find_child_pid): For a
 1829 	subprocess, consider its slot being in use as long as its process
 1830 	handle (procinfo.hProcess) is not NULL.  This avoids reusing the
 1831 	slot when a new process is started immediately after killing
 1832 	another one, without waiting enough time for the first process to
 1833 	be reaped and resources allocated for it be orderly freed.
 1834 	(Bug#13086)
 1835 	Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
 1836 
 1837 2012-12-21  Chong Yidong  <cyd@gnu.org>
 1838 
 1839 	* buffer.c (Fset_buffer_major_mode): Doc fix (Bug#13231).
 1840 
 1841 	* fns.c (Fcompare_strings): Doc fix (Bug#13081).
 1842 
 1843 2012-12-21  Eli Zaretskii  <eliz@gnu.org>
 1844 
 1845 	* w32.c (get_name_and_id): Always pass NULL as the first argument
 1846 	of lookup_account_sid.  Avoids crashes with UNC file names that
 1847 	refer to DFS domains, not to specific machine names.  (Bug#12621)
 1848 	Remove now unused argument FNAME; all callers changed.
 1849 	(get_file_owner_and_group): Remove now unused argument FNAME; all
 1850 	callers changed.
 1851 
 1852 2012-12-21  Chong Yidong  <cyd@gnu.org>
 1853 
 1854 	* editfns.c (Finsert_char): Since read-char-by-name now signals an
 1855 	error for invalid chars, don't check for a nil return value.
 1856 
 1857 2012-12-20  Dmitry Antipov  <dmantipov@yandex.ru>
 1858 
 1859 	Avoid calls to CHAR_TO_BYTE if byte position is known.
 1860 	* editfns.c (make_buffer_string_both): Use move_gap_both.
 1861 	(Fbuffer_string): Use make_buffer_string_both.
 1862 	* marker.c (buf_charpos_to_bytepos): Convert to eassert.
 1863 	Adjust comment.
 1864 	(buf_bytepos_to_charpos): Likewise.
 1865 	(charpos_to_bytepos): Remove.
 1866 	* fileio.c (Finsert_file_contents): Use move_gap_both.
 1867 	* search.c (Freplace_match): Likewise.
 1868 	* process.c (process_send_region): Likewise.  Use convenient
 1869 	names for byte positions.
 1870 	* lisp.h (charpos_to_bytepos): Remove prototype.
 1871 	* indent.c (scan_for_column): Use CHAR_TO_BYTE.
 1872 	* insdel.c (move_gap): Likewise.
 1873 
 1874 2012-12-20  Paul Eggert  <eggert@cs.ucla.edu>
 1875 
 1876 	* xdisp.c (redisplay_internal): Remove now-unused local.
 1877 
 1878 2012-12-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 1879 
 1880 	* xdisp.c (select_frame_for_redisplay, ensure_selected_frame): Remove.
 1881 	(redisplay_internal): Don't bother selecting the frame to get the
 1882 	proper value of frame-local variables (bug#13225).
 1883 
 1884 2012-12-20  Dmitry Antipov  <dmantipov@yandex.ru>
 1885 
 1886 	* textprop.c (set_text_properties_1): Do not allow NULL interval.
 1887 	Rename 4th argument since it may be buffer or string.  Adjust comment.
 1888 	* intervals.c (graft_intervals_info_buffer): Find an interval here.
 1889 
 1890 2012-12-19  Dmitry Antipov  <dmantipov@yandex.ru>
 1891 
 1892 	* coding.c (Fdetect_coding_region): Do not check start and end with
 1893 	CHECK_NUMBER_COERCE_MARKER since validate_region does that itself.
 1894 	(code_convert_region): Likewise.
 1895 
 1896 2012-12-18  Eli Zaretskii  <eliz@gnu.org>
 1897 
 1898 	* w32.c (acl_get_file, acl_set_file): Run the file name through
 1899 	map_w32_filename, and resolve any symlinks in the file name, like
 1900 	Posix platforms do.
 1901 	(acl_set_file): Call revert_to_self, if any privileges were
 1902 	enabled.
 1903 
 1904 2012-12-17  Juanma Barranquero  <lekktu@gmail.com>
 1905 
 1906 	* makefile.w32-in ($(BLD)/editfns.$(O), $(BLD)/fileio.$(O))
 1907 	($(BLD)/w32.$(O)): Update dependencies.
 1908 
 1909 2012-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 1910 
 1911 	* xdisp.c (select_frame_for_redisplay): Use select_window_1 to
 1912 	propagate redisplay's scrolling (if any) to the right window.
 1913 	(redisplay_internal): Use ensure_selected_frame.
 1914 	(display_mode_lines): Complete last fix.
 1915 	* window.c (select_window_1): New func, extracted from select_window.
 1916 	(select_window): Use it.
 1917 	* window.h (select_window_1): Declare.
 1918 
 1919 2012-12-17  Eli Zaretskii  <eliz@gnu.org>
 1920 
 1921 	Emulate Posix ACL APIs on MS-Windows.
 1922 	* w32.c: Include sddl.h and sys/acl.h.
 1923 	(SDDL_REVISION_1): Define if not already defined.
 1924 	(g_b_init_get_security_descriptor_dacl)
 1925 	(g_b_init_convert_sd_to_sddl, g_b_init_convert_sddl_to_sd)
 1926 	(g_b_init_is_valid_security_descriptor)
 1927 	(g_b_init_set_file_security): New static flags.
 1928 	(globals_of_w32): Initialize them to zero.
 1929 	(SetFileSecurity_Name): New string constant.
 1930 	(SetFileSecurity_Proc, GetSecurityDescriptorDacl_Proc)
 1931 	(ConvertStringSecurityDescriptorToSecurityDescriptor_Proc)
 1932 	(ConvertSecurityDescriptorToStringSecurityDescriptor_Proc)
 1933 	(IsValidSecurityDescriptor_Proc): New typedefs.
 1934 	(get_file_security, get_security_descriptor_owner)
 1935 	(get_security_descriptor_group): Set errno to ENOTSUP.
 1936 	(set_file_security, get_security_descriptor_dacl)
 1937 	(is_valid_security_descriptor, convert_sd_to_sddl)
 1938 	(convert_sddl_to_sd, acl_valid, acl_to_text, acl_from_text)
 1939 	(acl_free, acl_get_file, acl_set_file): New functions.
 1940 
 1941 	* fileio.c (Fcopy_file) [WINDOWSNT]: Support copying ACLs.
 1942 
 1943 2012-12-17  Paul Eggert  <eggert@cs.ucla.edu>
 1944 
 1945 	Don't reraise SIGCHLD, as that can now lose (Bug#13192).
 1946 	With the 2012-12-03 fix for Bug#12980 in place, an old workaround
 1947 	for some of that bug's symptoms can now cause Emacs to abort.
 1948 	Remove the workaround.
 1949 	* process.c (wait_reading_process_output): Don't reraise SIGCHLD.
 1950 	The bug that caused SIGCHLD to get lost has been fixed, and the
 1951 	workaround for it can now cause Emacs to abort.
 1952 
 1953 2012-12-16  Paul Eggert  <eggert@cs.ucla.edu>
 1954 
 1955 	* sysdep.c (emacs_abort): Bump backtrace size to 40.
 1956 	Companion to the 2012-09-30 patch.  Suggested by Eli Zaretskii in
 1957 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00796.html>.
 1958 
 1959 2012-12-16  Romain Francoise  <romain@orebokech.com>
 1960 
 1961 	* fileio.c (Ffile_acl, Fset_file_acl): New functions.
 1962 	(Fcopy_file): Change last arg to `preserve_extended_attributes'
 1963 	and copy ACL entries of file in addition to SELinux context if set.
 1964 	(syms_of_fileio): Add `file-acl' and `set-file-acl'.
 1965 
 1966 	* Makefile.in (LIBACL_LIBS): New macro.
 1967 	(LIBES): Use it.
 1968 
 1969 2012-12-15  Paul Eggert  <eggert@cs.ucla.edu>
 1970 
 1971 	* fileio.c (internal_delete_file): Use bool for boolean.
 1972 
 1973 2012-12-15  Eli Zaretskii  <eliz@gnu.org>
 1974 
 1975 	Fix bug #13079 on MS-Windows with temp files not being deleted.
 1976 	* w32.h (_child_process): New members input_file and
 1977 	pending_deletion.
 1978 	(register_child): First argument is now pid_t.
 1979 	(record_infile, record_pending_deletion): New prototypes.
 1980 
 1981 	* w32proc.c (new_child): Initialize input_file and
 1982 	pending_deletion members of the child.
 1983 	(delete_child): Delete the child's temporary input file, if any,
 1984 	that is pending deletion.
 1985 	(register_child): First argument is now pid_t.
 1986 	(record_infile, record_pending_deletion): New functions.
 1987 	(reap_subprocess): Fix a typo in DebPrint string.
 1988 	(sys_spawnve, sys_kill): Use pid_t for PID arguments.
 1989 
 1990 	* fileio.c (internal_delete_file): Return an int again: non-zero
 1991 	if delete-file succeeds, zero otherwise.
 1992 
 1993 	* lisp.h (internal_delete_file): Adjust prototype.
 1994 
 1995 	* callproc.c (Fcall_process): Don't overwrite infile with result
 1996 	of DECODE_FILE.
 1997 	[WINDOWSNT] If BUFFER is an integer, i.e. we are launching an
 1998 	asynchronous subprocess, record the name of the input file name,
 1999 	if any.
 2000 	(delete_temp_file) [WINDOWSNT]: If internal_delete_file fails to
 2001 	delete the file, record it as pending deletion when the subprocess
 2002 	exits.
 2003 
 2004 2012-12-14  Eli Zaretskii  <eliz@gnu.org>
 2005 
 2006 	* editfns.c [HAVE_PWD_H]: Include grp.h.
 2007 
 2008 	* makefile.w32-in ($(BLD)/editfns.$(O)): Add $(NT_INC)/grp.h.
 2009 
 2010 2012-12-14  Paul Eggert  <eggert@cs.ucla.edu>
 2011 
 2012 	Fix permissions bugs with setgid directories etc.  (Bug#13125)
 2013 	* dired.c (Ffile_attributes): Return t as the 9th attribute,
 2014 	to mark it as a placeholder.  The old value was often wrong.
 2015 	The only user of this attribute has been changed to use
 2016 	file-ownership-preserved-p instead, with its new group arg.
 2017 	* editfns.c (Fgroup_gid, Fgroup_real_gid): New functions.
 2018 
 2019 2012-12-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 2020 
 2021 	* xdisp.c (select_frame_for_redisplay, display_mode_lines):
 2022 	Keep selected_window and selected_frame in sync.
 2023 
 2024 2012-12-14  Eli Zaretskii  <eliz@gnu.org>
 2025 
 2026 	* w32.c (stat_worker): If w32_stat_get_owner_group is zero, do not
 2027 	try to get accurate owner and group information from NT file
 2028 	security APIs.  This is to make most callers of 'stat' and
 2029 	'lstat', which don't need that information, much faster.
 2030 
 2031 	* dired.c (Ffile_attributes) [WINDOWSNT]:
 2032 	Set w32_stat_get_owner_group to a non-zero value, to request accurate
 2033 	owner and group information from 'lstat'.
 2034 
 2035 2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 2036 
 2037 	* fileio.c (Finsert_file_contents): Don't put tail into head area,
 2038 	as that confuses set-auto-coding, so insist on the head-read
 2039 	returning the full 1024 bytes.  Let lseek compute the tail offset;
 2040 	less work for us.  Do not ignore I/O errors when reading the tail.
 2041 
 2042 	* xdisp.c: Minor style fixes.
 2043 	(init_iterator): Hoist assignment out of if-expression.
 2044 	(markpos_of_region): Callers now test for sign, not for -1.
 2045 
 2046 2012-12-13  Dmitry Antipov  <dmantipov@yandex.ru>
 2047 
 2048 	Minor redisplay optimization when the region length is zero.
 2049 	* xdisp.c (markpos_of_region): New function.
 2050 	(init_iterator): Do not highlight the region of zero length.
 2051 	(redisplay_window): Check whether the region is of non-zero length.
 2052 	(try_cursor_movement): Allow if the region length is zero.
 2053 	(try_window_reusing_current_matrix, try_window_id): Likewise.
 2054 
 2055 2012-12-13  Eli Zaretskii  <eliz@gnu.org>
 2056 
 2057 	* search.c (search_buffer): Check the inverse translations of each
 2058 	character in pattern when the buffer being searched is unibyte.
 2059 	(Bug#13084)
 2060 
 2061 2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 2062 
 2063 	* fileio.c (Fvisited_file_modtime): Return (-1 ...) for nonexistent
 2064 	files, fixing a regression from 24.2.
 2065 	(Fverify_visited_file_modtime): Don't read uninitialized st.st_size.
 2066 
 2067 2012-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 2068 
 2069 	* fileio.c (Fcopy_file): Make fstat failure as serious as open failure.
 2070 	fstat shouldn't fail, and if it does fail copy-file should not proceed.
 2071 	Remove unnecessary S_ISLNK test, as (contra the comments) this
 2072 	function can't copy symlinks.  Improve quality of error message
 2073 	when attempting to copy files that are neither regular files nor
 2074 	directories.
 2075 
 2076 2012-12-12  Dmitry Antipov  <dmantipov@yandex.ru>
 2077 
 2078 	* dispnew.c (set_window_cursor_after_update): Use clip_to_bounds.
 2079 	* gtkutil.c (xg_set_toolkit_scroll_bar_thumb):
 2080 	* window.c (Frecenter):
 2081 	* xdisp.c (resize_mini_window, hscroll_window_tree, draw_glyphs):
 2082 	* xterm.c (x_set_toolkit_scroll_bar_thumb): Likewise.
 2083 
 2084 2012-12-12  Daniel Colascione  <dancol@dancol.org>
 2085 
 2086 	* unexcw.c (fixup_executable): Use posix_fallocate to ensure that
 2087 	the dumped Emacs is not a sparse file, greatly improving Cygwin
 2088 	"make bootstrap" performance.
 2089 
 2090 2012-12-11  Michael Albinus  <michael.albinus@gmx.de>
 2091 
 2092 	* inotify.c (inotify_callback): Generate an Emacs event for every
 2093 	incoming inotify event.
 2094 
 2095 2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 2096 
 2097 	* xdisp.c (handle_face_prop): Fix logic of computing
 2098 	it->start_of_box_run_p.
 2099 	(append_space_for_newline): If the glyph row is R2L, reset the
 2100 	iterator's end_of_box_run_p flag before prepending the space glyph.
 2101 	(extend_face_to_end_of_line): If the glyph row is R2L, reset the
 2102 	iterator's start_of_box_run_p flag before prepending the stretch.
 2103 	(append_glyph, produce_image_glyph, append_composite_glyph)
 2104 	(append_stretch_glyph, append_glyphless_glyph): Reverse the
 2105 	left_box_line_p and right_box_line_p flags of the glyph for R2L
 2106 	glyph rows.  (Bug#13011)
 2107 
 2108 2012-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 2109 
 2110 	* buffer.c (Fset_buffer_multibyte): Do not force redisplay
 2111 	if changed buffer is not shown in a window.
 2112 	* insdel.c (prepare_to_modify_buffer): Likewise.
 2113 	* window.c (replace_buffer_in_windows_safely): Do nothing
 2114 	if buffer is not shown in a window.
 2115 	(Fforce_window_update): Likewise if string or buffer argument
 2116 	is passed.
 2117 
 2118 2012-12-11  Eli Zaretskii  <eliz@gnu.org>
 2119 
 2120 	* inotify.c (Finotify_add_watch): Rename decoded_file_name to
 2121 	encoded_file_name, which is what it is.
 2122 
 2123 2012-12-11  Dmitry Antipov  <dmantipov@yandex.ru>
 2124 
 2125 	Consistently use marker_position and marker_byte_position.
 2126 	* fringe.c (Ffringe_bitmaps_at_pos):
 2127 	* indent.c (Fvertical_motion):
 2128 	* insdel.c (prepare_to_modify_buffer):
 2129 	* keyboard.c (make_lispy_position):
 2130 	* window.c (Fwindow_end, Fpos_visible_in_window_p, unshow_buffer)
 2131 	(window_scroll_pixel_based, displayed_window_lines)
 2132 	(Fset_window_configuration):
 2133 	* xdisp.c (message_dolog, with_echo_area_buffer_unwind_data)
 2134 	(mark_window_display_accurate_1, redisplay_window, decode_mode_spec):
 2135 	Replace direct access to marker fields with calls
 2136 	to marker_position and/or marker_byte_position.
 2137 
 2138 2012-12-11  Juanma Barranquero  <lekktu@gmail.com>
 2139 
 2140 	* makefile.w32-in (SIG2STR_H): New macro.
 2141 	(SYSWAIT_H, $(BLD)/emacs.$(O), $(BLD)/process.$(O))
 2142 	($(BLD)/w32notify.$(O)): Update dependencies.
 2143 
 2144 2012-12-10  Daniel Colascione  <dancol@dancol.org>
 2145 
 2146 	* w32term.c, keyboard.c: Fix build break in cygw32 by omitting
 2147 	Windows file notification functionality unless WINDOWSNT.
 2148 
 2149 	* w32gui.h (hprevinst, lpCmdLine, nCmdShow): Remove unused
 2150 	declarations.
 2151 
 2152 	* w32fns.c (cache_system_info): Initialize the global hinst
 2153 	variable here so various initialization calls DTRT.
 2154 
 2155 	* unexw32.c (hprevinst, lpCmdLine, nCmdShow): Remove unused variables.
 2156 	(hinst): Remove unneeded extern declaration.
 2157 	(_start): Remove initialization of above variables; remove
 2158 	initialization of hinst, as cache_system_info now does that.
 2159 
 2160 	* emacs.c (main): Call cache_system_info early in startup; we
 2161 	previously weren't calling it in Cygwin builds.
 2162 
 2163 	* Makefile.in (ntsource, WINDRES, W32_RES, W#@_RES_LINK):
 2164 	Teach the autoconf build system how to compile a Windows resource file
 2165 	and link it to Emacs.
 2166 
 2167 2012-12-10  Dmitry Antipov  <dmantipov@yandex.ru>
 2168 
 2169 	Per-buffer window counters.
 2170 	* buffer.h (struct buffer): New member window_count.
 2171 	(buffer_window_count): New function.
 2172 	* buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 2173 	Initialize window_count.
 2174 	(Fkill_buffer): Verify window_count for the buffer being killed.
 2175 	(modify_overlay): Do not force redisplay if buffer is not shown
 2176 	in any window.
 2177 	(init_buffer_once): Initialize window_count for buffer_defaults
 2178 	and buffer_local_symbols.
 2179 	* window.h (buffer_shared): Remove declaration.
 2180 	(wset_buffer): Convert from inline ...
 2181 	* window.c (wset_buffer): ... to an ordinary function.
 2182 	(adjust_window_count): New function.
 2183 	(make_parent_window): Use it.
 2184 	* xdisp.c (buffer_shared): Remove.
 2185 	(redisplay_internal, redisplay_window): Adjust users.
 2186 	(buffer_shared_and_changed): Use per-buffer window counter.
 2187 
 2188 2012-12-10  Eli Zaretskii  <eliz@gnu.org>
 2189 
 2190 	Support for filesystem notifications on MS-Windows.
 2191 	* w32proc.c (sys_select): If drain_message_queue returns non-zero,
 2192 	and this is a TTY frame, signal the caller that keyboard input is
 2193 	available.
 2194 
 2195 	* w32xfns.c (drain_message_queue): Now returns an int: an
 2196 	indication whether any WM_EMACS_FILENOTIFY messages were found in
 2197 	the queue.
 2198 
 2199 	* w32inevt.c (handle_file_notifications): New function.
 2200 	(w32_console_read_socket): Call it to process file notifications.
 2201 
 2202 	* w32console.c (initialize_w32_display): Record the main thread ID
 2203 	in dwMainThreadId.
 2204 
 2205 	* deps.mk (inotify.o): New dependency list.
 2206 
 2207 	* Makefile.in (SOME_MACHINE_OBJECTS): Add w32notify.o.
 2208 
 2209 	* w32term.h (WM_EMACS_FILENOTIFY): New custom message.
 2210 	(WM_EMACS_END): Bump value by 1.
 2211 	(notification_buffer_in_use, file_notifications)
 2212 	(notifications_size, notifications_desc): Declare.
 2213 	(w32_get_watch_object, lispy_file_action, globals_of_w32notify):
 2214 	Add prototypes.
 2215 
 2216 	* w32term.c (lispy_file_action, queue_notifications): New functions.
 2217 	(syms_of_w32term) <Qadded, Qremoved, Qmodified, Qrenamed_from>
 2218 	<Qrenamed_to>: New symbols.
 2219 	(w32_read_socket): Handle the WM_EMACS_FILENOTIFY message.
 2220 
 2221 	* w32notify.c: New file, implements file event notifications for
 2222 	MS-Windows.
 2223 
 2224 	* w32fns.c (w32_wnd_proc): Handle the WM_EMACS_FILENOTIFY message
 2225 	by posting it to the w32_read_socket queue.
 2226 
 2227 	* termhooks.h (enum event_kind) [HAVE_NTGUI]: Support FILE_NOTIFY_EVENT.
 2228 
 2229 	* makefile.w32-in (OBJ2): Add $(BLD)/w32notify.$(O).
 2230 	(GLOBAL_SOURCES): Add w32notify.c
 2231 	($(BLD)/w32notify.$(O)): New set of dependencies.
 2232 
 2233 	* lisp.h (syms_of_w32notify) [WINDOWSNT]: Add prototype.
 2234 
 2235 	* keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
 2236 	Handle FILE_NOTIFY_EVENT.
 2237 	(syms_of_keyboard) [HAVE_NTGUI] <Qfile_notify>: New symbol.
 2238 	(keys_of_keyboard) [WINDOWSNT]: Bind file-notify to
 2239 	w32notify-handle-event by default.
 2240 
 2241 	* emacs.c (main) [WINDOWSNT]: Call globals_of_w32notify and
 2242 	syms_of_w32notify.
 2243 
 2244 2012-12-10  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
 2245 
 2246 	Support for filesystem notifications on GNU/Linux via inotify.
 2247 	* termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add FILE_NOTIFY_EVENT.
 2248 
 2249 	* lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
 2250 
 2251 	* keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
 2252 	(syms_of_keyboard): DEFSYM it.
 2253 	(kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
 2254 	(make_lispy_event): Support FILE_NOTIFY_EVENT by generating
 2255 	Qfile_inotify events.
 2256 	(keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
 2257 	special-event-map to inotify-handle-event.
 2258 
 2259 	* emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
 2260 
 2261 	* Makefile.in (base_obj): Add inotify.o.
 2262 
 2263 	* inotify.c: New file.
 2264 
 2265 2012-12-10  Jan Djärv  <jan.h.d@swipnet.se>
 2266 
 2267 	* nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
 2268 
 2269 2012-12-10  Fabrice Popineau  <fabrice.popineau@gmail.com>
 2270 
 2271 	* w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
 2272 	DWORD_PTR, for compatibility with 64-bit builds.
 2273 
 2274 	* w32.c (_PROCESS_MEMORY_COUNTERS_EX):
 2275 	(GetProcessWorkingSetSize_Proc, get_process_working_set_size)
 2276 	(system_process_attributes): Use SIZE_T rather than DWORD, for
 2277 	compatibility with 64-bit builds.
 2278 
 2279 2012-12-10  Christopher Schmidt  <christopher@ch.ristopher.com>
 2280 
 2281 	* lread.c (Vload_source_file_function): Doc fix (Bug#11647).
 2282 
 2283 2012-12-10  Eli Zaretskii  <eliz@gnu.org>
 2284 
 2285 	* indent.c (Fvertical_motion): If a display string will be
 2286 	displayed on the left or the right margin, don't consider it as a
 2287 	factor in cursor positioning.  (Bug#13108)
 2288 
 2289 2012-12-10  Martin Rudalics  <rudalics@gmx.at>
 2290 
 2291 	* editfns.c (Fcompare_buffer_substrings): Reword doc-string.
 2292 
 2293 2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
 2294 
 2295 	* fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
 2296 	for string length.
 2297 
 2298 2012-12-08  Eli Zaretskii  <eliz@gnu.org>
 2299 
 2300 	* w32.c (unsetenv): Return 0 if the input string is too long.
 2301 
 2302 2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 2303 
 2304 	Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
 2305 	* alloc.c (xputenv): New function.
 2306 	* dbusbind.c (Fdbus_init_bus):
 2307 	* emacs.c (main):
 2308 	* xterm.c (x_term_init):
 2309 	Use xputenv instead of setenv or putenv, to detect memory exhaustion.
 2310 	* editfns.c (initial_tz): Move static var decl up.
 2311 	(tzvalbuf_in_environ): New static var.
 2312 	(init_editfns): Initialize these two static vars.
 2313 	(Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
 2314 	Save old TZ value on stack, if it's small.
 2315 	(Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
 2316 	instead, use xputenv+unsetenv to set and restore TZ.
 2317 	(environbuf): Remove static var.  All uses removed.
 2318 	(Fset_time_zone_rule): Do not save TZ and environ;
 2319 	no longer needed here.
 2320 	(set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
 2321 	Move to inside set_time_zone_rule; they don't need file scope any more.
 2322 	(set_time_zone_rule): Maintain the TZ=value string separately.
 2323 	(syms_of_editfns): Don't initialize initial_tz;
 2324 	init_editfns now does it.
 2325 	* emacs.c (dump_tz) [HAVE_TZSET]: Now const.
 2326 	* lisp.h (xputenv): New decl.
 2327 
 2328 2012-12-08  Fabrice Popineau  <fabrice.popineau@gmail.com>
 2329 
 2330 	* w32fns.c (emacs_abort): Don't do arithmetic on void pointers.
 2331 
 2332 2012-12-08  Eli Zaretskii  <eliz@gnu.org>
 2333 
 2334 	* w32.c (unsetenv, sys_putenv): New functions.
 2335 
 2336 2012-12-08  Chong Yidong  <cyd@gnu.org>
 2337 
 2338 	* editfns.c (Finsert_char): Make the error message more
 2339 	informative (Bug#12992).
 2340 
 2341 2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
 2342 
 2343 	Simplify get_lim_data.
 2344 	* vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
 2345 	Remove USG and vlimit methods; no longer used these days.
 2346 	Add #error catchall just in case.
 2347 
 2348 	Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
 2349 	Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
 2350 	SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
 2351 	* process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
 2352 	(deleted_pid_list, Fdelete_process, create_process)
 2353 	(record_child_status_change, handle_child_signal, deliver_child_signal)
 2354 	(init_process_emacs, syms_of_process):
 2355 	Assume SIGCHLD is defined.
 2356 	(parse_signal): Remove.  All uses removed.
 2357 	(abbr_to_signal): New static function.
 2358 	(Fsignal_process): Use it to convert signal names to ints.
 2359 	* sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
 2360 	kill (getpgrp (), ...).
 2361 	(emacs_sigaction_init): Assume SIGCHLD is defined.
 2362 	(init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
 2363 	SIGPIPE, and SIGQUIT are defined.  Do not worry about SIGCLD any more.
 2364 	* syssignal.h (EMACS_KILLPG): Remove.
 2365 	All uses replaced by 'kill' with a negative pid.
 2366 	(SIGCHLD): Remove definition, as we now assume SIGCHLD.
 2367 	* w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
 2368 
 2369 2012-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 2370 
 2371 	* sysdep.c (get_child_status): Abort on internal error (Bug#13086).
 2372 	This will cause a production Emacs to dump core instead of
 2373 	infinite-looping.
 2374 
 2375 2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
 2376 
 2377 	* frame.c (make_frame): Do not set window's buffer to t.
 2378 	* window.c (Fsplit_window_internal): Likewise.  Previously it was
 2379 	used to indicate that the window is being set up.  Now we use
 2380 	set_window_buffer for all new windows, so the condition in ...
 2381 	(Fset_window_buffer): ... is always true and can be removed.
 2382 
 2383 2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
 2384 
 2385 	Convenient macro to check whether the buffer is hidden.
 2386 	* buffer.h (BUFFER_HIDDEN_P): New macro.
 2387 	* frame.c (make_frame): Use it.  Adjust comment.
 2388 	* buffer.c (candidate_buffer): New function.
 2389 	(Fother_buffer, other_buffer_safely): Use it.
 2390 
 2391 2012-12-06  Eli Zaretskii  <eliz@gnu.org>
 2392 
 2393 	* w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
 2394 	if the child process is still running.  Instead, exit the wait
 2395 	loop and return zero.  (Bug#13086)
 2396 
 2397 2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
 2398 
 2399 	* frame.h (x_char_width, x_char_height): Remove prototypes.
 2400 	* w32term.h (x_char_width, x_char_height): Likewise.
 2401 	* xfns.c (x_char_width, x_char_height): Remove.
 2402 	* w32fns.c (x_char_width, x_char_height): Likewise.
 2403 	* nsfns.m (x_char_width, x_char_height): Likewise.
 2404 	* frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
 2405 	all window frames.
 2406 	(Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
 2407 	* keyboard.c (command_loop_1): Remove prototype.
 2408 	(command_loop_2, top_level_1): Add static to match prototype.
 2409 
 2410 2012-12-06  Paul Eggert  <eggert@cs.ucla.edu>
 2411 
 2412 	Fix a recently-introduced delete-process race condition.
 2413 	* callproc.c, process.h (record_kill_process):
 2414 	New function, containing part of the old call_process_kill.
 2415 	(call_process_kill): Use it.
 2416 	This does not change call_process_kill's behavior.
 2417 	* process.c (Fdelete_process): Use record_kill_process to fix a
 2418 	race condition that could cause Emacs to lose track of a child.
 2419 
 2420 2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
 2421 
 2422 	Avoid code duplication between prev_frame and next_frame.
 2423 	* frame.c (candidate_frame): New function.  Add comment.
 2424 	(prev_frame, next_frame): Use it.  Adjust comment.
 2425 
 2426 2012-12-06  Eli Zaretskii  <eliz@gnu.org>
 2427 
 2428 	* callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
 2429 	fails, signal an error instead of continuing with an empty
 2430 	string.  (Bug#13079)
 2431 	Encode expanded temp file pattern before passing it to mkstemp or
 2432 	mktemp.
 2433 
 2434 	* fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
 2435 	Encode the file name before passing it to dostounix_filename, in
 2436 	case it will downcase it (under w32-downcase-file-names).
 2437 	(Bug#12933)
 2438 
 2439 2012-12-05  Paul Eggert  <eggert@cs.ucla.edu>
 2440 
 2441 	Minor call-process cleanups.
 2442 	* callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
 2443 	at the same time as other platforms, to simplify analysis.
 2444 	No need for fd0_volatile since we have synch_process_fd.
 2445 	Avoid needless emacs_close; arg is always negative.
 2446 
 2447 2012-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 2448 
 2449 	* callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
 2450 	processes.
 2451 
 2452 2012-12-04  Dmitry Antipov  <dmantipov@yandex.ru>
 2453 
 2454 	* lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
 2455 	member.  Adjust users.  Convert mouse_face_past_end, mouse_face_defer
 2456 	and mouse_face_hidden members to a bitfields.
 2457 	* frame.h (struct frame): Remove set-but-not-used space_width member.
 2458 	(FRAME_SPACE_WIDTH): Remove.
 2459 	* nsterm.m, w32term.c, xterm.c: Adjust users.
 2460 	* termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
 2461 	member.  Adjust users.  Convert term_initted, delete_in_insert_mode,
 2462 	costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
 2463 	members to a bitfields.
 2464 
 2465 2012-12-03  Paul Eggert  <eggert@cs.ucla.edu>
 2466 
 2467 	Don't let call-process be a zombie factory (Bug#12980).
 2468 	Fixing this bug required some cleanup of the signal-handling code.
 2469 	As a side effect, this change also fixes a longstanding rare race
 2470 	condition whereby Emacs could mistakenly kill unrelated processes,
 2471 	and it fixes a bug where a second C-g does not kill a recalcitrant
 2472 	synchronous process in GNU/Linux and similar platforms.
 2473 	The patch should also fix the last vestiges of Bug#9488,
 2474 	a bug which has mostly been fixed on the trunk by other changes.
 2475 	* callproc.c, process.h (synch_process_alive, synch_process_death)
 2476 	(synch_process_termsig, sync_process_retcode):
 2477 	Remove.  All uses removed, to simplify analysis and so that
 2478 	less consing is done inside critical sections.
 2479 	* callproc.c (call_process_exited): Remove.  All uses replaced
 2480 	with !synch_process_pid.
 2481 	* callproc.c (synch_process_pid, synch_process_fd): New static vars.
 2482 	These take the role of what used to be in unwind-protect arg.
 2483 	All uses changed.
 2484 	(block_child_signal, unblock_child_signal):
 2485 	New functions, to avoid races that could kill innocent-victim processes.
 2486 	(call_process_kill, call_process_cleanup, Fcall_process): Use them.
 2487 	(call_process_kill): Record killed processes as deleted, so that
 2488 	zombies do not clutter up the system.  Do this inside a critical
 2489 	section, to avoid a race that would allow the clutter.
 2490 	(call_process_cleanup): Fix code so that the second C-g works again
 2491 	on common platforms such as GNU/Linux.
 2492 	(Fcall_process): Create the child process in a critical section,
 2493 	to fix a race condition.  If creating an asynchronous process,
 2494 	record it as deleted so that zombies do not clutter up the system.
 2495 	Do unwind-protect for WINDOWSNT too, as that's simpler in the
 2496 	light of these changes.  Omit unnecessary call to emacs_close
 2497 	before failure, as the unwind-protect code does that.
 2498 	* callproc.c (call_process_cleanup):
 2499 	* w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
 2500 	* process.c (record_deleted_pid): New function, containing
 2501 	code refactored out of Fdelete_process.
 2502 	(Fdelete_process): Use it.
 2503 	(process_status_retrieved): Remove.  All callers changed to use
 2504 	child_status_change.
 2505 	(record_child_status_change): Remove, folding its contents into ...
 2506 	(handle_child_signal): ... this signal handler.  Now, this
 2507 	function is purely a handler for SIGCHLD, and is not called after
 2508 	a synchronous waitpid returns; the synchronous code is moved to
 2509 	wait_for_termination.  There is no need to worry about reaping
 2510 	more than one child now.
 2511 	* sysdep.c (get_child_status, child_status_changed): New functions.
 2512 	(wait_for_termination): Now takes int * status and bool
 2513 	interruptible arguments, too.  Do not record child status change;
 2514 	that's now the caller's responsibility.  All callers changed.
 2515 	Reimplement in terms of get_child_status.
 2516 	(wait_for_termination_1, interruptible_wait_for_termination):
 2517 	Remove.  All callers changed to use wait_for_termination.
 2518 	* syswait.h: Include <stdbool.h>, for bool.
 2519 	(record_child_status_change, interruptible_wait_for_termination):
 2520 	Remove decls.
 2521 	(record_deleted_pid, child_status_changed): New decls.
 2522 	(wait_for_termination): Adjust to API changes noted above.
 2523 
 2524 	* bytecode.c, lisp.h (Qbytecode): Remove.
 2525 	No longer needed after 2012-11-20 interactive-p changes.
 2526 
 2527 2012-12-03  Eli Zaretskii  <eliz@gnu.org>
 2528 
 2529 	* xdisp.c (redisplay_window): If the cursor is visible, but inside
 2530 	the scroll margin, move point outside the margin.  (Bug#13055)
 2531 
 2532 2012-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 2533 
 2534 	* gtkutil.c (my_log_handler): New function.
 2535 	(xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
 2536 
 2537 2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
 2538 
 2539 	* lisp.h (modify_region): Rename to...
 2540 	(modify_region_1): ...new prototype.
 2541 	* textprop.c (modify_region): Now static.  Adjust users.
 2542 	* insdel.c (modify_region): Rename to...
 2543 	(modify_region_1): ...new function to work with current buffer.
 2544 	Adjust comment and users.  Use true and false for booleans.
 2545 
 2546 2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
 2547 
 2548 	* alloc.c (free_save_value): New function.
 2549 	(safe_alloca_unwind): Use it.
 2550 	* lisp.h (free_save_value): New prototype.
 2551 	* editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
 2552 	Add comment.
 2553 	(save_excursion_restore): Adjust to match saved data structure.
 2554 	Use free_save_value to offload some work from GC.  Drop obsolete
 2555 	#if 0 code.
 2556 
 2557 2012-12-03  Chong Yidong  <cyd@gnu.org>
 2558 
 2559 	* fileio.c (Vauto_save_list_file_name): Doc fix.
 2560 
 2561 2012-12-03  Fabrice Popineau  <fabrice.popineau@gmail.com>
 2562 
 2563 	* w32fns.c: Remove prototype of atof.
 2564 	(syspage_mask): Make it DWORD_PTR, for compatibility with 64-bit
 2565 	builds.
 2566 	(file_dialog_callback): Make it UINT_PTR.
 2567 
 2568 	* w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
 2569 	with 64-bit builds.
 2570 
 2571 	* w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
 2572 	(FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
 2573 	defined.
 2574 
 2575 2012-12-03  Glenn Morris  <rgm@gnu.org>
 2576 
 2577 	* data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
 2578 
 2579 2012-12-02  Paul Eggert  <eggert@cs.ucla.edu>
 2580 
 2581 	Fix xpalloc confusion after memory is exhausted.
 2582 	* alloc.c (xpalloc): Comment fix.
 2583 	* charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
 2584 	and signals an error, do not clear charset_table_size, as
 2585 	charset_table is still valid.
 2586 	* doprnt.c (evxprintf): Clear *BUF after freeing it.
 2587 
 2588 	Use execve to avoid need to munge environ (Bug#13054).
 2589 	* callproc.c (Fcall_process):
 2590 	* process.c (create_process):
 2591 	Don't save and restore environ; no longer needed.
 2592 	* callproc.c (child_setup):
 2593 	Use execve, not execvp, to preserve environ.
 2594 
 2595 2012-12-01  Paul Eggert  <eggert@cs.ucla.edu>
 2596 
 2597 	* xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
 2598 
 2599 2012-12-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 2600 
 2601 	* xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
 2602 	display for sliced images (Bug#10500).
 2603 
 2604 	* w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
 2605 
 2606 2012-11-30  Juanma Barranquero  <lekktu@gmail.com>
 2607 
 2608 	* doc.c (Fdocumentation): Re-add handling of function-documentation,
 2609 	accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
 2610 
 2611 2012-11-29  Dmitry Antipov  <dmantipov@yandex.ru>
 2612 
 2613 	* xdisp.c (window_outdated): Remove eassert since it hits
 2614 	some suspicious corner cases (see Bug#13007 and Bug#13012).
 2615 	(mode_line_update_needed): New function.
 2616 	(redisplay_internal, redisplay_window): Use it.
 2617 	(ensure_selected_frame): New function.
 2618 	(redisplay_internal, unwind_redisplay): Use it.
 2619 	(redisplay_internal): Move comment about buffer_shared...
 2620 	(buffer_shared_and_changed): ...near to its real use.
 2621 
 2622 2012-11-29  Paul Eggert  <eggert@cs.ucla.edu>
 2623 
 2624 	* callproc.c (Fcall_process): Don't misreport vfork failure.
 2625 
 2626 2012-11-28  Paul Eggert  <eggert@cs.ucla.edu>
 2627 
 2628 	* callproc.c (Fcall_process): Fix vfork portability problems.
 2629 	Do not assume that fd[0], count, filefd, and save_environ survive
 2630 	vfork.  Fix bug whereby wrong errno value could be reported for
 2631 	pipe failure.  Some minor cleanups, too, as follows.  Move buf and
 2632 	bufsize to the context where they're needed.  Change new_argv to
 2633 	be of type char **, as this is more convenient and avoids casts.
 2634 	(CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
 2635 	Now local constants, not macros.
 2636 
 2637 2012-11-18  Kenichi Handa  <handa@gnu.org>
 2638 
 2639 	* font.c (font_unparse_xlfd): Fix previous change.  Keep "const"
 2640 	for the variable "f".
 2641 
 2642 2012-11-13  Kenichi Handa  <handa@gnu.org>
 2643 
 2644 	* font.c (font_unparse_xlfd): Exclude special characters from the
 2645 	generating XLFD name.
 2646 
 2647 2012-11-27  Paul Eggert  <eggert@cs.ucla.edu>
 2648 
 2649 	Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
 2650 	* dired.c (stat_uname, stat_gname):
 2651 	* fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
 2652 
 2653 	Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
 2654 	* dired.c (directory_files_internal, file_name_completion):
 2655 	Assume EAGAIN and EINTR are defined.
 2656 
 2657 	* fileio.c (Fcopy_file): Assume EISDIR is defined.
 2658 	* gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
 2659 	* gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
 2660 	* lread.c (readbyte_from_file): Assume EINTR is defined.
 2661 	* process.c (wait_reading_process_output, send_process) [subprocesses]:
 2662 	Assume EIO and EAGAIN are defined.
 2663 	* unexcoff.c (write_segment): Assume EFAULT is defined.
 2664 
 2665 2012-11-27  Eli Zaretskii  <eliz@gnu.org>
 2666 
 2667 	* fontset.c (Finternal_char_font): Return nil on non-GUI frames.
 2668 	(Bug#11964)
 2669 
 2670 	* xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
 2671 	highlighting on the frame was cleared.  Prevents assertion
 2672 	violations when repeatedly clicking on the "Top" link of the
 2673 	"bread-crumbs" in Info buffers.
 2674 
 2675 2012-11-25  Paul Eggert  <eggert@cs.ucla.edu>
 2676 
 2677 	* sysdep.c (sys_subshell): Don't assume pid_t fits in int.
 2678 
 2679 2012-11-24  Ken Brown  <kbrown@cornell.edu>
 2680 
 2681 	* keyboard.c (HAVE_MOUSE):
 2682 	* frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
 2683 	were always defined.
 2684 
 2685 2012-11-24  Eli Zaretskii  <eliz@gnu.org>
 2686 
 2687 	* xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
 2688 	between bpos_covered and bpos_max.  This fixes cursor display when
 2689 	several display strings follow each other.
 2690 
 2691 	* .gdbinit (pgx): If the glyph's object is a string, display the
 2692 	pointer to string data, rather than the value of the string object
 2693 	itself (which barfs under CHECK_LISP_OBJECT_TYPE).
 2694 
 2695 	* indent.c (Fvertical_motion): If the starting position is covered
 2696 	by a display string, return to one position before that, to avoid
 2697 	overshooting it inside move_it_to.  (Bug#12930)
 2698 
 2699 2012-11-23  Dmitry Antipov  <dmantipov@yandex.ru>
 2700 
 2701 	* frame.h (struct frame): Remove display_preempted member
 2702 	since all users are dead long ago.
 2703 	* nsterm.h (struct x_output): Use the only dummy member.
 2704 	* w32menu.c (pending_menu_activation): Remove since not
 2705 	really used.
 2706 	(set_frame_menubar): Adjust user.
 2707 	* w32term.h (struct x_output): Drop outdated #if 0 code.
 2708 	(struct w32_output): Use bitfields for explicit_parent,
 2709 	asked_for_visible and menubar_active members.
 2710 	Drop unused pending_menu_activation member.
 2711 	* xterm.h (struct x_output): Drop outdated #if 0 code.
 2712 	Use bitfields for explicit_parent, asked_for_visible,
 2713 	has_been_visible and net_wm_state_hidden_seen members.
 2714 
 2715 2012-11-23  Eli Zaretskii  <eliz@gnu.org>
 2716 
 2717 	* makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
 2718 	of a literal "/".  (Bug#12955)
 2719 	(gl-stamp): Invoke fc.exe directly, not through cmd.
 2720 
 2721 2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 2722 
 2723 	Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
 2724 	* dired.c: Assume HAVE_DIRENT_H.
 2725 	(NAMLEN): Remove, replacing with ...
 2726 	(dirent_namelen): New function.  All uses changed.  Use the GNU macro
 2727 	_D_EXACT_NAMELEN if available, as it's faster than strlen.
 2728 	(DIRENTRY): Remove, replacing all uses with 'struct dirent'.
 2729 	(DIRENTRY_NONEMPTY): Remove.  All callers now assume it's nonzero.
 2730 	* makefile.w32-in (DIR_H): Remove.  All uses replaced with
 2731 	$(NT_INC)/dirent.h.
 2732 	($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
 2733 	* ndir.h: Rename to ../nt/inc/dirent.h.
 2734 	* sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
 2735 	Do not include <dirent.h>; no longer needed.
 2736 	* w32.c: Include <dirent.h> rather than "ndir.h".
 2737 
 2738 2012-11-23  Chong Yidong  <cyd@gnu.org>
 2739 
 2740 	* xftfont.c (xftfont_open): Remove duplicate assignment.
 2741 
 2742 2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
 2743 
 2744 	* alloc.c (Fgarbage_collect): Unblock input after clearing
 2745 	gc_in_progress to avoid note_mouse_highlight glitch with GC.
 2746 	* frame.h (FRAME_MOUSE_UPDATE): New macro.
 2747 	* msdos.c (IT_frame_up_to_date): Use it here...
 2748 	* w32term.c (w32_frame_up_to_date): ...here...
 2749 	* xterm.c (XTframe_up_to_date): ...and here...
 2750 	* nsterm.m (ns_frame_up_to_date): ...but not here.
 2751 	* lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
 2752 	Adjust users.
 2753 	* xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
 2754 	Do not check whether GC is in progress.
 2755 
 2756 2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
 2757 
 2758 	* xdisp.c (window_buffer_changed): New function.
 2759 	(update_menu_bar, update_tool_bar): Use it to
 2760 	simplify large 'if' statements.
 2761 	(redisplay_internal): Generalize commonly used
 2762 	'tail' and 'frame' local variables.
 2763 
 2764 2012-11-22  Eli Zaretskii  <eliz@gnu.org>
 2765 
 2766 	* w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
 2767 	with Windows system header.
 2768 
 2769 2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
 2770 
 2771 	Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
 2772 	* alloc.c: Assume unistd.h exists.
 2773 	* fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
 2774 	* sysdep.c (get_current_dir_name): Assume getcwd exists.
 2775 	(getwd) [USG]: Remove; no longer needed.
 2776 	(sys_subshell) [DOS_NT]: Use getcwd, not getwd.
 2777 	* w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
 2778 	* w32.h (getcwd): Remove decl.
 2779 
 2780 2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 2781 
 2782 	* xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
 2783 	Make it set selected_window as well.
 2784 	(update_tool_bar): Use it.
 2785 
 2786 2012-11-21  Ken Brown  <kbrown@cornell.edu>
 2787 
 2788 	* emacs.c (main): Set the G_SLICE environment variable for all
 2789 	Cygwin builds, not just GTK builds.  See
 2790 	https://lists.gnu.org/r/emacs-devel/2012-11/msg00368.html.
 2791 
 2792 2012-11-21  Eli Zaretskii  <eliz@gnu.org>
 2793 
 2794 	* w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
 2795 	(FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
 2796 	Define for the MSVC compiler.
 2797 
 2798 	* w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
 2799 
 2800 	* fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
 2801 	(Fexpand_file_name) [DOS_NT]: Pass encoded file name to
 2802 	dostounix_filename.  Prevents crashes down the road, because
 2803 	dostounix_filename assumes it gets a unibyte string.
 2804 	Reported by Michel de Ruiter <michel@sentient.nl>, see
 2805 	https://lists.gnu.org/r/help-emacs-windows/2012-11/msg00017.html
 2806 
 2807 2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 2808 
 2809 	Conflate Qnil and Qunbound for `symbol-function'.
 2810 	* alloc.c (Fmake_symbol): Initialize `function' to Qnil.
 2811 	* lread.c (init_obarray): Set `function' fields to Qnil.
 2812 	* eval.c (Fcommandp): Ignore Qunbound.
 2813 	(Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
 2814 	* data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
 2815 	Test NILP rather than Qunbound.
 2816 	(Ffmakunbound): Set to Qnil.
 2817 	(Fsymbol_function): Never signal an error.
 2818 	(Finteractive_form): Ignore Qunbound.
 2819 
 2820 2012-11-20  Paul Eggert  <eggert@cs.ucla.edu>
 2821 
 2822 	* eval.c (interactive_p): Remove no-longer-used decl.
 2823 
 2824 2012-11-20  Dmitry Antipov  <dmantipov@yandex.ru>
 2825 
 2826 	* xdisp.c (buffer_shared): Adjust comment.
 2827 	(buffer_shared_and_changed): New function.
 2828 	(prepare_menu_bars, redisplay_internal): Use it to
 2829 	decide whether all windows or frames should be updated.
 2830 	(window_outdated): New function.
 2831 	(text_outside_line_unchanged_p, redisplay_window): Use it.
 2832 	(redisplay_internal): Likewise.  Fix indentation.
 2833 
 2834 2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 2835 
 2836 	* eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
 2837 	(syms_of_eval): Remove corresponding defsubr.
 2838 	* bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
 2839 
 2840 2012-11-19  Daniel Colascione  <dancol@dancol.org>
 2841 
 2842 	* w32fns.c (Fx_file_dialog):
 2843 	(Fx_file_dialog): Accommodate rename of cygwin_convert_path* to
 2844 	cygwin_convert_file_name*.
 2845 
 2846 	* cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
 2847 	Rename cygwin_convert_path* to cygwin_convert_file_name*.
 2848 
 2849 2012-11-18  Paul Eggert  <eggert@cs.ucla.edu>
 2850 
 2851 	* nsterm.m (ns_select): Send SIGIO only to self, not to process group.
 2852 
 2853 2012-11-18  Eli Zaretskii  <eliz@gnu.org>
 2854 
 2855 	* w32select.c: Include w32common.h before w32term.h, so that
 2856 	windows.h gets included before w32term.h uses some of its
 2857 	features, see below.
 2858 
 2859 	* w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
 2860 	New typedefs.
 2861 	(EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
 2862 	New prototypes.
 2863 	(EnumSystemLocales) [_MSC_VER]: Define if undefined.  (Bug#12878)
 2864 
 2865 2012-11-18  Jan Djärv  <jan.h.d@swipnet.se>
 2866 
 2867 	* nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
 2868 	(ns_select): Return at once if events are held (Bug#12834).
 2869 
 2870 2012-11-18  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 2871 
 2872 	* unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
 2873 	Needed following 2012-10-20 change.  (Bug#12902)
 2874 
 2875 2012-11-18  Juanma Barranquero  <lekktu@gmail.com>
 2876 
 2877 	* w32proc.c (waitpid): Remove unused label get_result.
 2878 
 2879 2012-11-17  Juanma Barranquero  <lekktu@gmail.com>
 2880 
 2881 	* makefile.w32-in (SYSWAIT_H): New macro.
 2882 	($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
 2883 	($(BLD)/sysdep.$(O)): Update dependencies.
 2884 
 2885 2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 2886 
 2887 	Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
 2888 	* callproc.c (relocate_fd): Assume F_DUPFD.
 2889 	* emacs.c, term.c (O_RDWR): Remove.
 2890 	* keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
 2891 	O_NDELAY, since O_NONBLOCK is the standard name for this flag.
 2892 	* nsterm.m: Assume <fcntl.h> exists.
 2893 	* process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
 2894 	(create_pty, Fmake_network_process, server_accept_connection)
 2895 	(wait_reading_process_output, init_process_emacs):
 2896 	Assume O_NONBLOCK.
 2897 	(wait_reading_process_output): Put in a special case for WINDOWSNT
 2898 	to mimic the older behavior where it had O_NDELAY but not O_NONBLOCK.
 2899 	It's not clear this is needed, but it's a more-conservative change.
 2900 	(create_process): Assume FD_CLOEXEC.
 2901 	(create_process, create_pty): Assume O_NOCTTY.
 2902 	* sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
 2903 	(reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
 2904 	Omit if not DOS_NT, since F_GETFL is not defined there.
 2905 	(serial_open): Assume O_NONBLOCK and O_NOCTTY.
 2906 	* term.c: Include <fcntl.h>, for flags like O_NOCTTY.
 2907 	(O_NOCTTY): Remove.
 2908 	(init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
 2909 	lack it, since gnulib guarantees this.
 2910 	* w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
 2911 
 2912 2012-11-17  Eli Zaretskii  <eliz@gnu.org>
 2913 
 2914 	* w32.c (faccessat): Pretend that directories have the execute bit
 2915 	set.  Emacs expects that, e.g., in files.el:cd-absolute.
 2916 
 2917 	* w32proc.c (create_child): Don't clip the PID of the child
 2918 	process to fit into an Emacs integer, as this is no longer a
 2919 	restriction.
 2920 	(waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
 2921 	reaping only the process specified by PID argument, if that is
 2922 	positive.  Use PID instead of dead_child to know which process to
 2923 	reap.  Wait for the child to die only if WNOHANG is not in
 2924 	OPTIONS.
 2925 	(sys_select): Don't set dead_child.
 2926 
 2927 	* sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
 2928 	as it is no longer needed.
 2929 
 2930 	* process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
 2931 	no longer needed.
 2932 	(record_child_status_change): Remove the setting of
 2933 	record_at_most_one_child for the !WNOHANG case.
 2934 
 2935 2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
 2936 
 2937 	Fix problems in ns port found by static checking.
 2938 	* nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
 2939 	(hold_event, setPosition:portion:whole:): Send SIGIO only to self,
 2940 	not to process group.
 2941 	(ns_select): Use emacs_write, not write, as that's more robust
 2942 	in the presence of signals.
 2943 	(fd_handler:): Check for read errors.
 2944 
 2945 2012-11-16  Glenn Morris  <rgm@gnu.org>
 2946 
 2947 	* editfns.c (Fmessage): Mention message-log-max.  (Bug#12849)
 2948 
 2949 2012-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 2950 
 2951 	* eval.c (Finteractive_p): Revert lexbind-merge mishap.
 2952 
 2953 2012-11-16  Eli Zaretskii  <eliz@gnu.org>
 2954 
 2955 	* w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
 2956 	use the same value of thread handle.
 2957 	(start_timer_thread): If the timer thread exited (due to error),
 2958 	clean up by closing the two handles it used.  Duplicate the caller
 2959 	thread's handle here, so it gets duplicated only once, when
 2960 	launching the timer thread.  Set priority of the timer thread, not
 2961 	the caller thread.
 2962 	(getitimer): Don't duplicate the caller thread's handle here.
 2963 	(Bug#12832)
 2964 
 2965 2012-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 2966 
 2967 	* nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
 2968 	called (Bug#12834).
 2969 
 2970 2012-11-16  Paul Eggert  <eggert@cs.ucla.edu>
 2971 
 2972 	Remove no-longer-used pty_max_bytes variable.
 2973 	* process.c (pty_max_bytes): Remove; unused.
 2974 	(send_process): Do not set it.
 2975 
 2976 2012-11-15  Juanma Barranquero  <lekktu@gmail.com>
 2977 
 2978 	* makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
 2979 	Update dependencies.
 2980 
 2981 2012-11-15  Paul Eggert  <eggert@cs.ucla.edu>
 2982 
 2983 	* eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
 2984 	This follows up on the 2012-09-29 patch that removed indirection
 2985 	for the 'function' field.  Reported by Sergey Vinokurov in
 2986 	<https://lists.gnu.org/r/emacs-devel/2012-11/msg00263.html>.
 2987 
 2988 2012-11-14  Eli Zaretskii  <eliz@gnu.org>
 2989 
 2990 	* w32.c (faccessat): Rename from sys_faccessat.  (No need to use a
 2991 	different name, as the MS runtime does not have such a function,
 2992 	and probably never will.)  All callers changed.  Ignore DIRFD
 2993 	value if PATH is an absolute file name, to match Posix spec
 2994 	better.  If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
 2995 	symlinks.
 2996 
 2997 2012-11-14  Dmitry Antipov  <dmantipov@yandex.ru>
 2998 
 2999 	* xdisp.c (echo_area_display, redisplay_internal):
 3000 	Omit redundant check whether frame_garbaged is set.
 3001 
 3002 2012-11-14  Paul Eggert  <eggert@cs.ucla.edu>
 3003 
 3004 	Use faccessat, not access, when checking file permissions (Bug#12632).
 3005 	This fixes a bug that has been present in Emacs since its creation.
 3006 	It was reported by Chris Torek in 1983 even before GNU Emacs existed,
 3007 	which must set some sort of record.  (Torek's bug report was against
 3008 	a predecessor of GNU Emacs, but GNU Emacs happened to have the
 3009 	same common flaw.)  See Torek's Usenet posting
 3010 	"setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
 3011 	Posted: Fri Apr  8 14:18:56 1983.
 3012 	* Makefile.in (LIB_EACCESS): New macro.
 3013 	(LIBES): Use it.
 3014 	* callproc.c (init_callproc):
 3015 	* charset.c (init_charset):
 3016 	* fileio.c (check_existing, check_executable, check_writable)
 3017 	(Ffile_readable_p):
 3018 	* lread.c (openp, load_path_check):
 3019 	* process.c (allocate_pty):
 3020 	* xrdb.c (file_p):
 3021 	Use effective UID when checking permissions, not real UID.
 3022 	* callproc.c (init_callproc):
 3023 	* charset.c (init_charset):
 3024 	* lread.c (load_path_check, init_lread):
 3025 	Test whether directories are accessible, not merely whether they exist.
 3026 	* conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
 3027 	* fileio.c (check_existing, check_executable, check_writable)
 3028 	(Ffile_readable_p):
 3029 	Use symbolic names instead of integers for the flags, as they're
 3030 	portable now.
 3031 	(check_writable): New arg AMODE.  All uses changed.
 3032 	Set errno on failure.
 3033 	(Ffile_readable_p): Use faccessat, not stat + open + close.
 3034 	(Ffile_writable_p): No need to call check_existing + check_writable.
 3035 	Just call check_writable and then look at errno.  This saves a syscall.
 3036 	dir should never be nil; replace an unnecessary runtime check
 3037 	with an eassert.  When checking the parent directory of a nonexistent
 3038 	file, check that the directory is searchable as well as writable, as
 3039 	we can't create files in unsearchable directories.
 3040 	(file_directory_p): New function, which uses 'stat' on most platforms
 3041 	but faccessat with D_OK (for efficiency) if WINDOWSNT.
 3042 	(Ffile_directory_p, Fset_file_times): Use it.
 3043 	(file_accessible_directory_p): New function, which uses a single
 3044 	syscall for efficiency.
 3045 	(Ffile_accessible_directory_p): Use it.
 3046 	* xrdb.c (file_p): Use file_directory_p.
 3047 	* lisp.h (file_directory_p, file_accessible_directory_p): New decls.
 3048 	* lread.c (openp): When opening a file, use fstat rather than
 3049 	stat, as that avoids a permissions race.  When not opening a file,
 3050 	use file_directory_p rather than stat.
 3051 	(dir_warning): First arg is now a usage string, not a format.
 3052 	Use errno.  All uses changed.
 3053 	* nsterm.m (ns_term_init): Remove unnecessary call to file-readable
 3054 	that merely introduced a race.
 3055 	* process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
 3056 	changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
 3057 	and similarly for the other O_* flags.
 3058 	* w32.c (sys_faccessat): Rename from sys_access and switch to
 3059 	faccessat's API.  All uses changed.
 3060 	* xrdb.c: Do not include <sys/stat.h>; no longer needed.
 3061 	(magic_db): Rename from magic_file_p.
 3062 	(magic_db, search_magic_path): Return an XrmDatabase rather than a
 3063 	char *, so that we don't have to test for file existence
 3064 	separately from opening the file for reading.  This removes a race
 3065 	fixes a permission-checking problem, and simplifies the code.
 3066 	All uses changed.
 3067 	(file_p): Remove; no longer needed.
 3068 
 3069 2012-11-13  Dmitry Antipov  <dmantipov@yandex.ru>
 3070 
 3071 	Omit glyphs initialization at startup.
 3072 	* dispnew.c (glyphs_initialized_initially_p): Remove.
 3073 	(adjust_frame_glyphs_initially): Likewise.  Adjust users.
 3074 	(Fredraw_frame): Move actual code from here...
 3075 	(redraw_frame): ...to here.  Add eassert.  Adjust comment.
 3076 	(Fredraw_display): Use redraw_frame.
 3077 	* xdisp.c (clear_garbaged_frames): Likewise.
 3078 
 3079 2012-11-13  Eli Zaretskii  <eliz@gnu.org>
 3080 
 3081 	* xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
 3082 	passed to pint2str and pint2hrstr to be at most the size of the
 3083 	frame's decode_mode_spec_buffer.  This avoids crashes with very
 3084 	large values of FIELD_WIDTH argument to decode_mode_spec.
 3085 	(Bug#12867)
 3086 
 3087 2012-11-13  Paul Eggert  <eggert@cs.ucla.edu>
 3088 
 3089 	Fix a race with verify-visited-file-modtime (Bug#12863).
 3090 	Since at least 1991 Emacs has ignored an mtime difference of no
 3091 	more than one second, but my guess is that this was to work around
 3092 	file system bugs that were fixed long ago.  Since the race is
 3093 	causing problems now, let's remove that code.
 3094 	* fileio.c (Fverify_visited_file_modtime): Do not accept a file
 3095 	whose time stamp is off by no more than a second.  Insist that the
 3096 	file time stamps match exactly.
 3097 
 3098 2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
 3099 
 3100 	* frame.h (struct frame): Convert external_tool_bar member to
 3101 	1-bit unsigned bitfield.
 3102 	* termhooks.h (struct terminal): Remove mouse_moved member since
 3103 	all users are long dead.  Adjust comment on mouse_position_hook.
 3104 
 3105 2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
 3106 
 3107 	Simplify by using FOR_EACH_FRAME here and there.
 3108 	* frame.c (next_frame, prev_frame, other_visible_frames)
 3109 	(delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
 3110 	* w32term.c (x_window_to_scroll_bar): Likewise.
 3111 	* window.c (window_list): Likewise.
 3112 	* xdisp.c (x_consider_frame_title): Likewise.
 3113 	* xfaces.c (Fdisplay_supports_face_attributes_p): Likewise.
 3114 	* xfns.c (x_window_to_frame, x_any_window_to_frame)
 3115 	(x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
 3116 	* xmenu.c (menubar_id_to_frame): Likewise.
 3117 	* xselect.c (frame_for_x_selection): Likewise.
 3118 	* xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
 3119 	(x_window_to_menu_bar): Likewise.
 3120 	* w32fns.c (x_window_to_frame): Likewise.  Adjust comment.
 3121 
 3122 2012-11-12  Paul Eggert  <eggert@cs.ucla.edu>
 3123 
 3124 	* data.c (Qdefalias_fset_function): Now static.
 3125 
 3126 	Another tweak to vectorlike_header change.
 3127 	* alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
 3128 	Remove, and replace all uses with ...
 3129 	(next_in_free_list, set_next_in_free_list):
 3130 	New functions, which respect C's aliasing rules better.
 3131 
 3132 2012-11-11  Paul Eggert  <eggert@cs.ucla.edu>
 3133 
 3134 	* window.c (list4i): Rename from 'quad'.  All uses changed.
 3135 	Needed because <sys/types.h> defines 'quad' on Solaris 10.
 3136 
 3137 2012-11-11  Juanma Barranquero  <lekktu@gmail.com>
 3138 
 3139 	* xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
 3140 	warning about mixing declarations and code in ISO C90.
 3141 
 3142 2012-11-10  Martin Rudalics  <rudalics@gmx.at>
 3143 
 3144 	* window.c (Fsplit_window_internal): Set combination limit of
 3145 	new parent window to t iff Vwindow_combination_limit is t;
 3146 	fixing a regression introduced with the change from 2012-09-22.
 3147 	(Fset_window_combination_limit): Fix doc-string.
 3148 
 3149 2012-11-10  Eli Zaretskii  <eliz@gnu.org>
 3150 
 3151 	* xdisp.c (try_scrolling): Fix correction of aggressive-scroll
 3152 	amount when the scroll margins are too large.  When scrolling
 3153 	backwards in the buffer, give up if cannot reach point or the
 3154 	scroll margin within a reasonable number of screen lines.
 3155 	Fixes point position in window under scroll-up/down-aggressively when
 3156 	point is positioned many lines beyond the window top/bottom.
 3157 	(Bug#12811)
 3158 
 3159 	* ralloc.c (relinquish): If real_morecore fails to return memory
 3160 	to the system, don't crash; instead, leave the last heap
 3161 	unchanged and return.  (Bug#12774)
 3162 
 3163 2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 3164 
 3165 	* lisp.h (AUTOLOADP): New macro.
 3166 	* eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
 3167 	* data.c (Ffset): Remove special ad-advice-info handling.
 3168 	(Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
 3169 	(Fsubr_arity): CSE.
 3170 	(Finteractive_form): Simplify.
 3171 	(Fquo): Don't insist on having at least 2 arguments.
 3172 	(Qdefalias_fset_function): New var.
 3173 
 3174 2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 3175 
 3176 	* image.c (xpm_make_color_table_h): Change to hashtest_equal.
 3177 
 3178 	* nsfont.m (Qcondensed, Qexpanded): New variables.
 3179 	(ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
 3180 	(syms_of_nsfont): Defsym Qcondensed, Qexpanded.
 3181 
 3182 2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
 3183 
 3184 	Fix recently introduced crash on MS-Windows (Bug#12839).
 3185 	* w32term.h (struct scroll_bar): Use convenient header.
 3186 	(SCROLL_BAR_VEC_SIZE): Remove.
 3187 	* w32term.c (x_scroll_bar_create): Use VECSIZE.
 3188 
 3189 2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
 3190 
 3191 	Tweak last vectorlike_header change.
 3192 	* alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
 3193 	vectorlike object on the free list.  This is introduced to avoid
 3194 	some (but not all) pointer casting and aliasing problems, see
 3195 	https://lists.gnu.org/r/emacs-devel/2012-11/msg00105.html.
 3196 	* .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
 3197 	objects.
 3198 	(xvectype, xvecsize): Use them to examine Lisp_Object values.
 3199 
 3200 2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
 3201 
 3202 	* nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
 3203 	been removed, so remove them here also.
 3204 
 3205 2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 3206 
 3207 	* doc.c (Fdocumentation): Handle new property
 3208 	dynamic-docstring-function to replace the old ad-advice-info.
 3209 
 3210 2012-11-09  Paul Eggert  <eggert@cs.ucla.edu>
 3211 
 3212 	* fns.c (Qeql, hashtest_eq): Now static.
 3213 
 3214 2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 3215 
 3216 	* lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
 3217 	* fns.c (hashfn_eq, hashfn_eql, sxhash):
 3218 	* profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
 3219 	* buffer.c (compare_overlays): Use XLI rather than XHASH.
 3220 
 3221 2012-11-08  Paul Eggert  <eggert@cs.ucla.edu>
 3222 
 3223 	Use same hash function for hashfn_profiler as for hash_string etc.
 3224 	* fns.c (SXHASH_COMBINE): Remove.  All uses replaced by sxhash_combine.
 3225 	* lisp.h (sxhash_combine): New inline function, with the contents
 3226 	of the old SXHASH_COMBINE.
 3227 	* profiler.c (hashfn_profiler): Use it, instead of having a
 3228 	special hash function containing a comparison that always yields 1.
 3229 
 3230 2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 3231 
 3232 	* xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
 3233 	(Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
 3234 	(Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
 3235 	Remove unused vars.
 3236 
 3237 2012-11-08  Jan Djärv  <jan.h.d@swipnet.se>
 3238 
 3239 	* image.c (xpm_make_color_table_h): Fix compiler error because
 3240 	make_hash_table changed.
 3241 
 3242 2012-11-08  Thomas Kappler  <tkappler@gmail.com>  (tiny change)
 3243 
 3244 	* nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
 3245 
 3246 2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 3247 
 3248 	Use ad-hoc comparison function for the profiler's hash-tables.
 3249 	* profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
 3250 	(make_log): Use them.
 3251 	(handle_profiler_signal): Don't inhibit quit any longer since we don't
 3252 	call Fequal any more.
 3253 	(Ffunction_equal): New function.
 3254 	(cmpfn_profiler, hashfn_profiler): New functions.
 3255 	(syms_of_profiler): Initialize them.
 3256 	* lisp.h (struct hash_table_test): New struct.
 3257 	(struct Lisp_Hash_Table): Use it.
 3258 	* alloc.c (mark_object): Mark hash_table_test fields of hash tables.
 3259 	* fns.c (make_hash_table): Take a struct to describe the test.
 3260 	(cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
 3261 	(hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
 3262 	(hash_lookup, hash_remove_from_table): Move assertion checking of
 3263 	hashfn result here.  Check hash-equality before calling cmpfn.
 3264 	(Fmake_hash_table): Adjust call to make_hash_table.
 3265 	(hashtest_eq, hashtest_eql, hashtest_equal): New structs.
 3266 	(syms_of_fns): Initialize them.
 3267 	* emacs.c (main): Move syms_of_fns earlier.
 3268 	* xterm.c (syms_of_xterm):
 3269 	* category.c (hash_get_category_set): Adjust call to make_hash_table.
 3270 	* print.c (print_object): Adjust to new hash-table struct.
 3271 	* composite.c (composition_gstring_put_cache): Adjust to new hashfn.
 3272 
 3273 2012-11-08  Eli Zaretskii  <eliz@gnu.org>
 3274 
 3275 	* w32fns.c (modifier_set): Fix handling of Scroll Lock when the
 3276 	value of w32-scroll-lock-modifier is neither nil nor one of the
 3277 	known key modifiers.  (Bug#12806)
 3278 
 3279 2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
 3280 
 3281 	Shrink struct vectorlike_header to the only size field.
 3282 	* lisp.h (enum pvec_type): Avoid explicit enum member values.
 3283 	Adjust comment.
 3284 	(enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
 3285 	PVEC_TYPE_MASK to arrange new bitfield in the vector header.
 3286 	(PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
 3287 	(PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
 3288 	information from the vector header.  Adjust comment.
 3289 	(XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
 3290 	(PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
 3291 	layout.
 3292 	(XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
 3293 	(struct vectorlike_header): Remove next member.  Adjust comment.
 3294 	(struct Lisp_Subr): Add convenient header.  Adjust comment.
 3295 	(allocate_pseudovector): Adjust prototype.
 3296 	* alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
 3297 	(sweep_string, lisp_malloc): Remove useless prototypes.
 3298 	(enum mem_type): Adjust comment.
 3299 	(NEXT_IN_FREE_LIST): New macro.
 3300 	(SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
 3301 	(Fmake_bool_vector): Likewise.
 3302 	(struct large_vector): New type to represent allocation unit for
 3303 	the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
 3304 	(large_vectors): Change type to struct large_vector.
 3305 	(allocate_vector_from_block): Simplify.
 3306 	(PSEUDOVECTOR_NBYTES): Replace with...
 3307 	(vector_nbytes): ...new function.  Adjust users.
 3308 	(sweep_vectors): Adjust processing of large vectors.
 3309 	(allocate_vectorlike): Likewise.
 3310 	(allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
 3311 	Add easserts.  Adjust XSETPVECTYPESIZE usage.
 3312 	(allocate_buffer): Use BUFFER_PVEC_INIT.
 3313 	(live_vector_p): Adjust to match large vector.
 3314 	* buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
 3315 	* buffer.h (struct buffer): Add next member.
 3316 	(BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
 3317 	New macros.
 3318 	(FOR_EACH_BUFFER): Adjust to match struct buffer change.
 3319 	* fns.c (internal_equal): Adjust to match enum pvec_type change.
 3320 	(copy_hash_table): Adjust to match vector header change.
 3321 	* lread.c (defsubr): Use XSETPVECTYPE.
 3322 	* .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
 3323 	(xvectype): Likewise.  Print PVEC_NORMAL_VECTOR for regular vectors.
 3324 	(xvecsize): New command.
 3325 
 3326 2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
 3327 
 3328 	* keyboard.c (event_to_kboard): Do not dereference
 3329 	frame_or_window field of SELECTION_REQUEST_EVENT
 3330 	and SELECTION_CLEAR_EVENT events (Bug#12814).
 3331 	* xterm.h (struct selection_input_event): Adjust comment.
 3332 
 3333 2012-11-07  Eli Zaretskii  <eliz@gnu.org>
 3334 
 3335 	* w32fns.c (modifier_set): Don't report modifiers from toggle key,
 3336 	such as Scroll Lock, if the respective keys are treated as
 3337 	function keys, not as modifiers.  This avoids destroying non-ASCII
 3338 	keyboard input when Scroll Lock is toggled ON.  (Bug#12806)
 3339 
 3340 2012-11-07  Dmitry Antipov  <dmantipov@yandex.ru>
 3341 
 3342 	* xfns.c (Fx_wm_set_size_hint): Use check_x_frame.  Adjust docstring.
 3343 
 3344 2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
 3345 
 3346 	Restore some duplicate definitions (Bug#12814).
 3347 	This undoes part of the 2012-11-03 changes.  Some people build
 3348 	with plain -g rather than with -g3, and they need the duplicate
 3349 	definitions for .gdbinit to work; see <https://bugs.gnu.org/12814#26>.
 3350 	* lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
 3351 	Define as macros, as well as enums or constants.
 3352 
 3353 2012-11-06  Jan Djärv  <jan.h.d@swipnet.se>
 3354 
 3355 	* nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
 3356 	to keypad keys (Bug#12816).
 3357 
 3358 2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
 3359 
 3360 	Minor adjustments of recently-changed frame functions.
 3361 	* buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
 3362 	known to be a frame (we're in the FRAMEP branch).
 3363 	* lisp.h (Qframep): Remove decl.  frame.h declares this.
 3364 	* window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
 3365 	since they're meant for Lisp fixnum values.
 3366 
 3367 2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 3368 
 3369 	* window.c (Fwindow_combination_limit): Revert to the only
 3370 	required argument and adjust docstring as suggested in
 3371 	https://lists.gnu.org/r/emacs-diffs/2012-11/msg01082.html
 3372 	by Martin Rudalics <rudalics@gmx.at>.
 3373 
 3374 2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 3375 
 3376 	Widely used frame validity and checking functions.
 3377 	* frame.h (decode_live_frame, decode_any_frame): Add prototypes.
 3378 	* frame.c (decode_live_frame, decode_any_frame): New functions.
 3379 	(delete_frame, Fredirect_frame_focus, Fframe_parameters)
 3380 	(Fframe_parameter, Fframe_char_height, Fframe_char_width)
 3381 	(Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
 3382 	(Fframe_pointer_visible_p): Use decode_any_frame.
 3383 	(Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
 3384 	(Fraise_frame, Flower_frame, Fmodify_frame_parameters)
 3385 	(Fset_frame_height, Fset_frame_width): Use decode_live_frame.
 3386 	(Fframe_focus): Likewise.  Allow zero number of arguments.
 3387 	Adjust docstring.
 3388 	(frame_buffer_list, frame_buffer_predicate): Remove.
 3389 	* lisp.h (frame_buffer_predicate): Remove prototype.
 3390 	* buffer.c (Fother_buffer): Use decode_any_frame.
 3391 	* xdisp.c (Ftool_bar_lines_needed): Likewise.
 3392 	* xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
 3393 	* font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
 3394 	(Fclose_font, Ffont_info): Use decode_live_frame.
 3395 	* fontset.c (check_fontset_name): Likewise.
 3396 	* terminal.c (Fframe_terminal): Likewise.
 3397 	* w32fns.c (check_x_frame): Likewise.
 3398 	* window.c (Fminibuffer_window, Fwindow_at)
 3399 	(Fcurrent_window_configuration): Likewise.
 3400 	(Frun_window_configuration_change_hook, Fwindow_resize_apply):
 3401 	Likewise.  Allow zero number of arguments.  Adjust docstring.
 3402 	* dispnew.c (Fredraw_frame): Likewise.
 3403 	* xfaces.c (frame_or_selected_frame): Remove.
 3404 	(Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
 3405 	(Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
 3406 	(Fframe_face_alist): Use decode_live_frame.
 3407 	* xfns.c (check_x_frame): Likewise.
 3408 
 3409 2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
 3410 
 3411 	* window.c (quad): New function.
 3412 	(Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
 3413 	(Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
 3414 	(Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
 3415 	(Fwindow_line_height): Use it.
 3416 	(Fwindow_fringes): Use list3.
 3417 	(Fwindow_scroll_bars): Use list4.
 3418 	(Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
 3419 	(Fwindow_combination_limit): Allow zero number of arguments.
 3420 
 3421 2012-11-05  Eli Zaretskii  <eliz@gnu.org>
 3422 
 3423 	* makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
 3424 
 3425 	* w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
 3426 	(emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
 3427 	file descriptor 2 for standard error.  (Bug#12805)
 3428 
 3429 2012-11-05  Chong Yidong  <cyd@gnu.org>
 3430 
 3431 	* process.c (wait_reading_process_output): Revert previous change.
 3432 
 3433 2012-11-05  Paul Eggert  <eggert@cs.ucla.edu>
 3434 
 3435 	Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
 3436 	This removes code that has been obsolete since around 1990.
 3437 	* callproc.c (Fcall_process):
 3438 	* emacs.c (main):
 3439 	* process.c (create_process):
 3440 	* term.c (dissociate_if_controlling_tty):
 3441 	Assume setsid exists.
 3442 	* callproc.c (child_setup): Assume setpgid exists and behaves as
 3443 	per POSIX.1-1988 or later.
 3444 	* conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
 3445 	* emacs.c (shut_down_emacs):
 3446 	* sysdep.c (sys_suspend, init_foreground_group):
 3447 	Assume getpgrp behaves as per POSIX.1-1998 or later.
 3448 	* msdos.c (setpgrp): Remove.
 3449 	(tcgetpgrp, setpgid, setsid): New functions.
 3450 	* systty.h (EMACS_GETPGRP): Remove.  All callers now use getpgrp.
 3451 	* term.c (no_controlling_tty): Remove; unused.
 3452 	* w32proc.c (setpgrp): Remove.
 3453 	(setsid, tcgetpgrp): New functions.
 3454 
 3455 	Simplify by assuming __fpending.
 3456 	* dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
 3457 	(update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
 3458 	Do not assume that __fpending's result fits in int.
 3459 
 3460 2012-11-04  Paul Eggert  <eggert@cs.ucla.edu>
 3461 
 3462 	Remove EMACS_OUTQSIZE+sleep hack.
 3463 	* dispnew.c (update_frame_1): Remove hack for terminals slower
 3464 	than 2400 bps, which throttled Emacs by having it sleep.
 3465 	This code hasn't worked since at least 2007, when the multi-tty stuff
 3466 	was added, and anyway those old terminals are long dead.
 3467 	* systty.h (EMACS_OUTQSIZE): Remove; unused.  The macro isn't used even
 3468 	without the dispnew.c change, as dispnew.c doesn't include systty.h.
 3469 
 3470 	Fix data-loss with --version (Bug#9574).
 3471 	* emacs.c (close_output_streams): Use strerror, not emacs_strerror,
 3472 	as we can't assume that emacs_strerror is initialized, and strerror
 3473 	is good enough here.
 3474 	(main): Invoke atexit earlier, to catch earlier instances of
 3475 	sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
 3476 
 3477 2012-11-04  Michael Marchionna  <tralfaz@pacbell.net>
 3478 
 3479 	* nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
 3480 	(keyDown): Remap keypad keys to X11 virtual key codes.
 3481 
 3482 2012-11-03  Paul Eggert  <eggert@cs.ucla.edu>
 3483 
 3484 	Fix data-loss with --batch (Bug#9574).
 3485 	* emacs.c: Include <close-stream.h>.
 3486 	(close_output_streams): New function.
 3487 	(main): Pass it to atexit, so that Emacs closes stdout and stderr
 3488 	and handles errors appropriately.
 3489 	(Fkill_emacs): Don't worry about flushing, as close_output_stream
 3490 	does that now.
 3491 
 3492 	Fix a race condition that causes Emacs to mess up glib (Bug#8855).
 3493 	The symptom is a diagnostic "GLib-WARNING **: In call to
 3494 	g_spawn_sync(), exit status of a child process was requested but
 3495 	SIGCHLD action was set to SIG_IGN and ECHILD was received by
 3496 	waitpid(), so exit status can't be returned."  The diagnostic
 3497 	is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
 3498 	The real bug is a race condition between Emacs and glib: Emacs
 3499 	does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
 3500 	so that glib can't find it.  Work around the bug by invoking
 3501 	waitpid only on subprocesses that Emacs itself creates.
 3502 	* process.c (create_process, record_child_status_change):
 3503 	Don't use special value -1 in pid field, as the caller now must
 3504 	know the pid rather than having the callee infer it.
 3505 	The inference was sometimes incorrect anyway, due to another race.
 3506 	(create_process): Set new 'alive' member if child is created.
 3507 	(process_status_retrieved): New function.
 3508 	(record_child_status_change): Use it.
 3509 	Accept negative 1st argument, which means to wait for the
 3510 	processes that Emacs already knows about.  Move special-case code
 3511 	for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
 3512 	processes that have already been waited for, by testing and
 3513 	clearing new 'alive' member.
 3514 	(CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
 3515 	now does this internally.
 3516 	(handle_child_signal): Let record_child_status_change do all
 3517 	the work, since we do not want to reap all exited child processes,
 3518 	only the child processes that Emacs itself created.
 3519 	* process.h (Lisp_Process): New boolean member 'alive'.
 3520 
 3521 	Omit duplicate definitions no longer needed with gcc -g3.
 3522 	* lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
 3523 	(VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
 3524 	Define only as macros.  There's no longer any need to also define
 3525 	these symbols as enums or as constants, since we now assume
 3526 	gcc -g3 when debugging.
 3527 
 3528 2012-11-03  Eli Zaretskii  <eliz@gnu.org>
 3529 
 3530 	* lisp.mk: Adjust comments to the fact that term/internal is now
 3531 	loaded from loadup.el.
 3532 
 3533 	* msdos.c (msdos_abort): Rename from emacs_abort, and make static.
 3534 	(msdos_fatal_signal): New function.
 3535 	(XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
 3536 	its argument list.
 3537 
 3538 	* conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
 3539 	for GCC versions before 4.
 3540 	(emacs_raise): Define to call msdos_fatal_signal.
 3541 
 3542 	* xdisp.c (init_from_display_pos): Fix initialization of the bidi
 3543 	iterator when starting in the middle of a display or overlay
 3544 	string.  (Bug#12745)
 3545 
 3546 2012-11-03  Chong Yidong  <cyd@gnu.org>
 3547 
 3548 	* process.c (wait_reading_process_output): Clean up the last
 3549 	change.
 3550 
 3551 2012-11-03  Jim Paris  <jim@jtan.com>  (tiny change)
 3552 
 3553 	* process.c (wait_reading_process_output): Avoid a race condition
 3554 	with SIGIO delivery (Bug#11536).
 3555 
 3556 2012-11-03  Chong Yidong  <cyd@gnu.org>
 3557 
 3558 	* buffer.c (cursor_type): Untabify docstring.
 3559 
 3560 2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
 3561 
 3562 	* frame.h (struct frame): Drop can_have_scroll_bars member
 3563 	which is meaningless for a long time.  Adjust comments.
 3564 	(FRAME_CAN_HAVE_SCROLL_BARS): Remove.
 3565 	* frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
 3566 
 3567 2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
 3568 
 3569 	* window.c (decode_next_window_args): Update window arg after
 3570 	calling decode_live_window and so fix crash reported at
 3571 	https://lists.gnu.org/r/emacs-devel/2012-11/msg00035.html
 3572 	by Juanma Barranquero <lekktu@gmail.com>.
 3573 	(Fwindow_body_width, Fwindow_body_height): Simplify a bit.
 3574 	* font.c (Ffont_at): Likewise.
 3575 
 3576 2012-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 3577 
 3578 	* widget.c (resize_cb): New function.
 3579 	(EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
 3580 	(EmacsFrameResize): Check if all is up to date before changing frame
 3581 	size.
 3582 
 3583 2012-11-02  Eli Zaretskii  <eliz@gnu.org>
 3584 
 3585 	Implement backtrace output for fatal errors on MS-Windows.
 3586 	* w32fns.c (CaptureStackBackTrace_proc): New typedef.
 3587 	(BACKTRACE_LIMIT_MAX): New macro.
 3588 	(w32_backtrace): New function.
 3589 	(emacs_abort): Use w32_backtrace when the user chooses not to
 3590 	attach a debugger.  Update the text of the abort dialog.
 3591 
 3592 2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
 3593 
 3594 	Window-related stuff cleanup here and there.
 3595 	* dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
 3596 	Use decode_any_window.
 3597 	* fringe.c (Ffringe_bitmaps_at_pos): Likewise.
 3598 	* xdisp.c (Fformat_mode_line): Likewise.
 3599 	* font.c (Ffont_at): Use decode_live_window.
 3600 	* indent.c (Fcompute_motion, Fvertical_motion): Likewise.
 3601 	* window.c (decode_next_window_args): Likewise.
 3602 	(decode_any_window): Remove static.
 3603 	* window.h (decode_any_window): Add prototype.
 3604 	* lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
 3605 	* window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
 3606 	respectively.
 3607 
 3608 2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
 3609 
 3610 	Remove pad from struct input_event.
 3611 	* termhooks.h (struct input_event): Remove padding field.
 3612 	Adjust comment.
 3613 	* keyboard.c (event_to_kboard): Simplify because frame_or_window
 3614 	member is never cons for a long time.  Adjust comment.
 3615 	(mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
 3616 	SELECTION_CLEAR_EVENT has no Lisp_Objects to mark.  Add comment.
 3617 	* xterm.c (handle_one_xevent): Do not initialize frame_or_window
 3618 	field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
 3619 
 3620 2012-11-01  Eli Zaretskii  <eliz@gnu.org>
 3621 
 3622 	* w32proc.c (getpgrp, setpgid): New functions.  (Bug#12776)
 3623 
 3624 2012-10-31  Paul Eggert  <eggert@cs.ucla.edu>
 3625 
 3626 	Fix crash when using Emacs as commit editor for git (Bug#12697).
 3627 	* callproc.c (setpgrp): Remove macro, as we now use setpgid
 3628 	and it is configured in conf_post.h.
 3629 	(Fcall_process): Don't invoke both setsid and setpgid; the former
 3630 	is enough, if it exists.
 3631 	* callproc.c (Fcall_process, child_setup):
 3632 	* process.c (create_process): Use setpgid.
 3633 	* conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
 3634 	for the real thing.
 3635 	* dispnew.c (init_display): Initialize the foreground group
 3636 	if we are running a tty display.
 3637 	* emacs.c (main): Do not worry about setpgrp; init_display does it now.
 3638 	* lisp.h (init_foreground_group): New decl.
 3639 	* sysdep.c (inherited_pgroup): New static var.
 3640 	(init_foreground_group, tcsetpgrp_without_stopping)
 3641 	(narrow_foreground_group, widen_foreground_group): New functions.
 3642 	(init_sys_modes): Narrow foreground group.
 3643 	(reset_sys_modes): Widen foreground group.
 3644 
 3645 2012-10-31  Michael Albinus  <michael.albinus@gmx.de>
 3646 
 3647 	* dbusbind.c: Fix cut'n'waste error.  Use HAVE_DBUS_VALIDATE_INTERFACE.
 3648 
 3649 2012-10-31  Martin Rudalics  <rudalics@gmx.at>
 3650 
 3651 	* minibuf.c (read_minibuf): Restore current buffer since
 3652 	choose_minibuf_frame calling Fset_frame_selected_window may
 3653 	change it (Bug#12766).
 3654 
 3655 2012-10-30  Jan Djärv  <jan.h.d@swipnet.se>
 3656 
 3657 	* frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
 3658 
 3659 2012-10-30  Kenichi Handa  <handa@gnu.org>
 3660 
 3661 	* font.c (Ffont_at): If WINDOW is specified and it is not
 3662 	displaying the current buffer, signal an error.
 3663 
 3664 2012-10-29  Daniel Colascione  <dancol@dancol.org>
 3665 
 3666 	* cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
 3667 	In preparation for fixing bug#12739, move these functions from
 3668 	here...
 3669 
 3670 	* coding.h, coding.c: ... to here, and compile them only when
 3671 	WINDOWSNT or CYGWIN.  Moving these functions out of cygw32 proper
 3672 	lets us write cygw32-agnostic code for the HAVE_NTGUI case.
 3673 
 3674 2012-10-28  Eli Zaretskii  <eliz@gnu.org>
 3675 
 3676 	* w32proc.c (TIMER_TICKS_PER_SEC): New macro.
 3677 	(timer_loop, getitimer, setitimer): Use it instead of
 3678 	CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
 3679 	'clock'.
 3680 	(w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
 3681 	literal 10000.
 3682 
 3683 2012-10-28  Jan Djärv  <jan.h.d@swipnet.se>
 3684 
 3685 	* nsterm.m (NO_APPDEFINED_DATA): New define.
 3686 	(last_appdefined_event_data): New variable
 3687 	(last_appdefined_event): Remove.
 3688 	(ns_select): Initialize t from last_appdefined_event_data instead
 3689 	of [last_appdefined_event data1].
 3690 	(sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
 3691 	remove last_appdefined_event (Bug#12698).
 3692 
 3693 2012-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 3694 
 3695 	* frame.c (x_set_font): Catch internal error.
 3696 
 3697 2012-10-27  Eli Zaretskii  <eliz@gnu.org>
 3698 
 3699 	Avoid overflow in w32 implementation of interval timers.
 3700 	When possible, for ITIMER_PROF count only times the main thread
 3701 	actually executes.
 3702 	* w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
 3703 	'volatile ULONGLONG' types.  All the other data which was
 3704 	previously clock_t is now ULONGLONG.  'terminate' is 'volatile int'.
 3705 	(GetThreadTimes_Proc): New typedef.
 3706 	(w32_get_timer_time): New function, returns a suitable time value
 3707 	for the timer.
 3708 	(timer_loop): Enter critical section when accessing ULONGLONG
 3709 	values of the itimer_data struct, as these accesses are no longer
 3710 	atomic.  Call 'w32_get_timer_time' instead of 'clock'.
 3711 	Remove unused variable.
 3712 	(init_timers): Initialize s_pfn_Get_Thread_Times.
 3713 	(start_timer_thread): Don't assign itimer->caller_thread here.
 3714 	(getitimer): Assign itimer->caller_thread here.
 3715 	(setitimer): Always call getitimer to get the value of ticks_now.
 3716 	(sys_spawnve): Avoid compiler warning about format mismatch.
 3717 
 3718 2012-10-26  Eli Zaretskii  <eliz@gnu.org>
 3719 
 3720 	* w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Don't enable tracking of
 3721 	mouse movement events if the menu bar is active.  This avoids
 3722 	producing a busy "hour-glass" cursor by Windows if the mouse
 3723 	pointer is positioned over a tooltip shown for some menu item.
 3724 
 3725 2012-10-25  Paul Eggert  <eggert@cs.ucla.edu>
 3726 
 3727 	Don't assume process IDs fit in int.
 3728 	* emacs.c (shut_down_emacs) [!DOS_NT]:
 3729 	* sysdep.c (sys_suspend) [SIGTSTP && !MSDOS]:
 3730 	* term.c (dissociate_if_controlling_tty) [!DOS_NT]:
 3731 	Use pid_t, not int, to store process IDs, as 'int'
 3732 	is not wide enough on a few platforms (e.g., AIX and IRIX).
 3733 
 3734 2012-10-23  Kenichi Handa  <handa@gnu.org>
 3735 
 3736 	The following change is to make face-font-rescale-alist work
 3737 	correctly for non-ASCII fonts.
 3738 
 3739 	* font.c (font_open_entity): Don't handle Vface_font_rescale_alist.
 3740 	(font_open_for_lface): Handle Vface_font_rescale_alist.
 3741 
 3742 2012-10-23  Chong Yidong  <cyd@gnu.org>
 3743 
 3744 	* xfaces.c (Vfont_list_limit): Move unused variable to faces.el.
 3745 
 3746 2012-10-21  Jan Djärv  <jan.h.d@swipnet.se>
 3747 
 3748 	* nsfont.m (nsfont_open, ns_glyph_metrics): Force integer advancement
 3749 	for screen font.
 3750 	(nsfont_draw): Turn off LCD-smoothing (Bug#11484).
 3751 
 3752 	* xterm.c (x_focus_changed): Check if daemonp when sending focus in
 3753 	event (Bug#12681).
 3754 
 3755 2012-10-21  Glenn Morris  <rgm@gnu.org>
 3756 
 3757 	* lisp.mk (lisp): Add cp51932.el and eucjp-ms.el.
 3758 
 3759 2012-10-20  Paul Eggert  <eggert@cs.ucla.edu>
 3760 
 3761 	Port to OpenBSD 5.1.
 3762 	* frame.c (Fmouse_position, Fmouse_pixel_position):
 3763 	* xdisp.c (produce_stretch_glyph):
 3764 	Declare local vars only when they're needed.
 3765 	This is clearer and avoids a warning on OpenBSD about unused vars.
 3766 	* frame.h (FRAME_WINDOW_P): Always evaluate its argument.
 3767 	This is safer, and avoids OpenBSD warnings about unused vars.
 3768 	* keyboard.c (record_menu_key): Remove unnecessary decl.
 3769 	(poll_timer): Define only if POLL_FOR_INPUT is defined.
 3770 	* unexelf.c (ELFSIZE) [!ElfW]: Do not define if already defined,
 3771 	as our definition clashes with OpenBSD's.
 3772 	* xfaces.c (load_face_colors, check_lface_attrs)
 3773 	(get_lface_attributes_no_remap, get_lface_attributes)
 3774 	(lface_fully_specified_p, x_supports_face_attributes_p)
 3775 	(tty_supports_face_attributes_p, face_fontset, realize_face)
 3776 	(realize_x_face, realize_tty_face):
 3777 	Declare parameters to be Lisp_Object[LFACE_VECTOR_SIZE], not
 3778 	merely Lisp_Object *.  This is more informative and avoids
 3779 	a warning on OpenBSD about accessing beyond an object's size.
 3780 
 3781 2012-10-20  Chong Yidong  <cyd@gnu.org>
 3782 
 3783 	* lread.c (Fload): Doc fix (Bug#12592).
 3784 
 3785 2012-10-19  Kazuhiro Ito  <kzhr@d1.dion.ne.jp>  (tiny change)
 3786 
 3787 	* font.c (Ffont_at): Fix previous change.
 3788 
 3789 2012-10-19  Eli Zaretskii  <eliz@gnu.org>
 3790 
 3791 	* puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
 3792 	See https://lists.gnu.org/r/emacs-devel/2012-10/msg00593.html
 3793 	for the reasons.
 3794 
 3795 	* alloc.c (NSTATICS): Decrease to 0x800.
 3796 
 3797 2012-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 3798 
 3799 	* fns.c (Fnreverse): Include the problem element when signaling an
 3800 	error (bug#12677).
 3801 
 3802 2012-10-18  Jan Djärv  <jan.h.d@swipnet.se>
 3803 
 3804 	* nsterm.m (ns_select): Check writefds before call to
 3805 	FD_ISSET (Bug#12668).
 3806 
 3807 2012-10-18  Daniel Colascione  <dancol@dancol.org>
 3808 
 3809 	* alloc.c (NSTATICS): Increase from 0x650 to 0x1000
 3810 	(staticpro): If we run out of staticpro slots, die with an
 3811 	informative error instead of just calling emacs_abort.
 3812 
 3813 2012-10-18  Martin Rudalics  <rudalics@gmx.at>
 3814 
 3815 	Fix two flaws reported by Dmitry Antipov.
 3816 	* window.c (Ftemp_output_buffer_show): Remove.
 3817 	(Fwindow_vscroll, Fset_window_vscroll): Use decode_live_window.
 3818 	(syms_of_window): Remove defsubr for Stemp_output_buffer_show.
 3819 
 3820 2012-10-17  Eli Zaretskii  <eliz@gnu.org>
 3821 
 3822 	* makefile.w32-in ($(BLD)/w32.$(O)):
 3823 	($(BLD)/vm-limit.$(O)):
 3824 	($(BLD)/term.$(O)):
 3825 	($(BLD)/unexw32.$(O)):
 3826 	($(BLD)/fileio.$(O)):
 3827 	($(BLD)/dispnew.$(O)): Update dependencies.
 3828 
 3829 	* w32term.h (w32_initialize_display_info, initialize_w32_display):
 3830 	Add prototypes.
 3831 
 3832 	* w32proc.c: Include ctype.h.
 3833 
 3834 	* w32.h (init_environment, check_windows_init_file)
 3835 	(syms_of_ntproc, syms_of_ntterm, dostounix_filename)
 3836 	(unixtodos_filename, init_winsock, srandom, random, sys_pipe)
 3837 	(set_process_dir, sys_spawnve, register_child, sys_sleep, getwd)
 3838 	(sys_link): Add prototypes.
 3839 
 3840 	* w32.c: Include w32select.h.
 3841 	(sys_access, e_malloc, sys_select): Add prototypes.
 3842 	(emacs_gnutls_pull): 'timeout' is now EMACS_TIME, not struct timeval.
 3843 
 3844 	* vm-limit.c [WINDOWSNT]: Include w32heap.h.
 3845 
 3846 	* unexw32.c: Include lisp.h and w32.h.
 3847 
 3848 	* term.c [WINDOWSNT]: Include w32term.h.
 3849 
 3850 	* process.c [WINDOWSNT]: Add prototype of sys_select.
 3851 
 3852 	* fileio.c [WINDOWSNT]: Include w32.h.
 3853 
 3854 	* dispnew.c [WINDOWSNT]: Include w32.h.
 3855 
 3856 	* cygw32.c (Fcygwin_convert_path_to_windows)
 3857 	(Fcygwin_convert_path_from_windows): Use EQ to compare 2
 3858 	Lisp_Object values.  (Bug#12661)
 3859 
 3860 	* w32fns.c (w32_msg_pump): Use XIL instead of casting an integer
 3861 	to Lisp_Object.  (Bug#12661)
 3862 
 3863 2012-10-17  Kenichi Handa  <handa@gnu.org>
 3864 
 3865 	* xdisp.c (reseat_1): Make the information stored in it->cmp_it
 3866 	invalidate.
 3867 
 3868 2012-10-17  Dmitry Antipov  <dmantipov@yandex.ru>
 3869 
 3870 	* buffer.c (Fkill_buffer): When unchaining the marker,
 3871 	reset its buffer pointer to NULL (Bug#12652).
 3872 
 3873 2012-10-17  Dmitry Antipov  <dmantipov@yandex.ru>
 3874 
 3875 	Do not verify indirection counters of killed buffers (Bug#12579).
 3876 	* buffer.h (BUFFER_CHECK_INDIRECTION): New macro.
 3877 	* buffer.c (compact_buffer, set_buffer_internal_1): Use it.
 3878 
 3879 2012-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
 3880 
 3881 	* alloc.c (Fmake_byte_code): Fix typo in comment.
 3882 	* print.c (print_interval): Define as static to match prototype.
 3883 	* indent.c (disptab_matches_widthtab, recompute_width_table):
 3884 	Convert to eassert.
 3885 
 3886 2012-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
 3887 
 3888 	* editfns.c (get_system_name): Remove.
 3889 	* lisp.h (get_system_name): Remove prototype.
 3890 	* xrdb.c (getenv, getpwuid, getpwnam): Remove prototypes.
 3891 	(get_environ_db): Use Vsystem_name.  Avoid call to strlen.
 3892 
 3893 2012-10-15  Daniel Colascione  <dancol@dancol.org>
 3894 
 3895 	* dbusbind.c: Add comment explaining reason for previous change.
 3896 
 3897 2012-10-15  Martin Rudalics  <rudalics@gmx.at>
 3898 
 3899 	* window.c (Fwindow_end): Rewrite check whether cached position
 3900 	can be used (Bug#12600).
 3901 	(resize_frame_windows, grow_mini_window, shrink_mini_window):
 3902 	Set windows_or_buffers_changed.
 3903 
 3904 2012-10-15  Daniel Colascione  <dancol@dancol.org>
 3905 
 3906 	* dbusbind.c: Fix cygw32 build break when compiling with dbus
 3907 	enabled by undefining the symbol "interface", which the platform
 3908 	headers define to something incompatible.
 3909 
 3910 2012-10-14  Daniel Colascione  <dancol@dancol.org>
 3911 
 3912 	* image.c (init_tiff_functions, init_imagemagick_functions)
 3913 	(init_svg_functions): Fix cygw32 build break by using these
 3914 	functions only when WINDOWSNT _and_ HAVE_NTGUI.
 3915 
 3916 2012-10-14  Jan Djärv  <jan.h.d@swipnet.se>
 3917 
 3918 	* nsterm.m (ns_select): Count fd:s in writefs also (Bug#12422).
 3919 
 3920 2012-10-13  Jan Djärv  <jan.h.d@swipnet.se>
 3921 
 3922 	* gtkutil.c (xg_set_widget_bg): Divide by 65535 (Bug#12612).
 3923 
 3924 2012-10-13  HANATAKA, Shinya  <bogytech@gmail.com>  (tiny change)
 3925 
 3926 	* coding.c (detect_coding): Set coding->id before calling
 3927 	this->detector.
 3928 
 3929 2012-10-13  Andreas Schwab  <schwab@linux-m68k.org>
 3930 
 3931 	* fileio.c: Formatting fixes.
 3932 
 3933 2012-10-13  Paul Eggert  <eggert@cs.ucla.edu>
 3934 
 3935 	Fix some stat-related races.
 3936 	* fileio.c (Fwrite_region): Avoid race condition if a file is
 3937 	removed or renamed by some other process immediately after Emacs
 3938 	writes it but before Emacs stats it.  Do not assume that stat (or
 3939 	fstat) succeeds.
 3940 	* image.c (slurp_file): Resolve the file name with fopen + fstat
 3941 	rather than stat + fopen.
 3942 	(pbm_read_file) [0]: Remove unused code with stat race.
 3943 	* process.c (allocate_pty) [HAVE_PTYS && !PTY_ITERATION && !PTY_OPEN]:
 3944 	Remove ineffective code with stat race.
 3945 
 3946 2012-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 3947 
 3948 	* doc.c (get_doc_string): Don't signal an error if the file is missing.
 3949 
 3950 2012-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 3951 
 3952 	* nsterm.m (hold_event_q): New static variable.
 3953 	(EV_TRAILER, sendScrollEventAtLoc:fromEvent:): Call hold_event if
 3954 	! q_event_ptr.
 3955 	(hold_event): New function.
 3956 	(ns_read_socket): If hold_event_q have events, store them and
 3957 	return (Bug#12384).
 3958 	(setPosition:portion:whole:): Send SIGIO to ourselves if apploopnr
 3959 	is zero (Bug#12384).
 3960 
 3961 2012-10-12  Juanma Barranquero  <lekktu@gmail.com>
 3962 
 3963 	* makefile.w32-in ($(BLD)/w32select.$(O)): Update dependencies.
 3964 
 3965 2012-10-12  Eli Zaretskii  <eliz@gnu.org>
 3966 
 3967 	* makefile.w32-in ($(BLD)/fileio.$(O)): Add sys/file.h.
 3968 
 3969 	* fileio.c (check_existing): New function.
 3970 	(make_temp_name, Ffile_exists_p, Ffile_writable_p): Call it
 3971 	instead of calling 'stat', when what's needed is to check whether
 3972 	a file exists.  This avoids expensive system calls on MS-Windows.
 3973 	(Bug#12587)
 3974 
 3975 	* w32.c (init_environment): Call 'check_existing' instead of 'stat'.
 3976 
 3977 	* lread.c (openp) [WINDOWSNT]: Call 'access' instead of 'stat' to
 3978 	determine whether a file exists and is not a directory.
 3979 
 3980 	* lisp.h (check_existing): Add prototype.
 3981 
 3982 2012-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 3983 
 3984 	* nsfont.m (nsfont_open): Remove font cache, it is not GC correct.
 3985 
 3986 2012-10-12  Glenn Morris  <rgm@gnu.org>
 3987 
 3988 	* buffer.c (Fset_buffer): Doc fix.  (Bug#12624)
 3989 
 3990 2012-10-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 3991 
 3992 	* buffer.c (Fkill_buffer): Null out the overlay list(s) as well.
 3993 
 3994 	* eval.c (Fautoload): Remember previous autoload status in load-history.
 3995 
 3996 2012-10-11  Paul Eggert  <eggert@cs.ucla.edu>
 3997 
 3998 	lread.c, macros.c, marker.c, menu.c, minibuf.c: Use bool for booleans.
 3999 	* lread.c (load_each_byte, new_backquote_flag, readchar)
 4000 	(read_filtered_event, lisp_file_lexically_bound_p)
 4001 	(safe_to_load_version, Fload, complete_filename_p, openp)
 4002 	(build_load_history, readevalloop, read_escape, read1)
 4003 	(string_to_number, read_vector, read_list):
 4004 	* macros.c (Fstart_kbd_macro):
 4005 	* marker.c (CONSIDER):
 4006 	* menu.c (parse_single_submenu, digest_single_submenu)
 4007 	(find_and_return_menu_selection, Fx_popup_menu):
 4008 	* minibuf.c (read_minibuf_noninteractive, read_minibuf)
 4009 	(Ftry_completion):
 4010 	* nsmenu.m (ns_update_menubar, runMenuAt:forFrame:keymaps:):
 4011 	(ns_menu_show):
 4012 	* xmenu.c (set_frame_menubar, create_and_show_popup_menu)
 4013 	(xmenu_show, xdialog_show):
 4014 	Use bool for booleans.
 4015 	* lread.c (safe_to_load_version): Rename from safe_to_load_p,
 4016 	as it's not a predicate.  All uses changed.  Omit unnecessary
 4017 	buffer termination.
 4018 
 4019 2012-10-11  Dmitry Antipov  <dmantipov@yandex.ru>
 4020 
 4021 	* editfns.c (save_excursion_save): Use nil if mark points to nowhere.
 4022 	(save_excursion_restore): Do not restore mark if it was not saved.
 4023 
 4024 2012-10-11  Paul Eggert  <eggert@cs.ucla.edu>
 4025 
 4026 	* marker.c (cached_modiff): EMACS_INT, not int.
 4027 
 4028 	* w32select.c (waiting_for_input): Declare by including "keyboard.h"
 4029 	instead of having a wrong decl.
 4030 	* nsmenu.m (waiting_for_input): Remove wrong decl.
 4031 
 4032 2012-10-10  Paul Eggert  <eggert@cs.ucla.edu>
 4033 
 4034 	keyboard.c, keymap.c: Use bool for booleans.
 4035 	* dispnew.c (sit_for): Distinguish between 3-way display_option
 4036 	and boolean do_display.
 4037 	* keyboard.c (single_kboard, this_command_key_count_reset)
 4038 	(waiting_for_input, echoing, immediate_quit, input_pending)
 4039 	(interrupt_input, interrupts_deferred, pop_kboard)
 4040 	(temporarily_switch_to_single_kboard, ignore_mouse_drag_p)
 4041 	(command_loop_1, adjust_point_for_property)
 4042 	(safe_run_hooks_error, input_polling_used, read_char):
 4043 	(help_char_p, readable_events, kbd_buffer_events_waiting)
 4044 	(kbd_buffer_get_event, timer_check_2, make_lispy_event)
 4045 	(lucid_event_type_list_p, get_input_pending):
 4046 	(gobble_input, menu_separator_name_p, menu_bar_item)
 4047 	(parse_menu_item, parse_tool_bar_item, read_char_x_menu_prompt)
 4048 	(read_char_minibuf_menu_prompt, access_keymap_keyremap)
 4049 	(keyremap_step, test_undefined, read_key_sequence)
 4050 	(detect_input_pending, detect_input_pending_ignore_squeezables)
 4051 	(detect_input_pending_run_timers, requeued_events_pending_p)
 4052 	(quit_throw_to_read_char, Fset_input_interrupt_mode):
 4053 	* keymap.c (get_keymap, keymap_parent, keymap_memberp)
 4054 	(access_keymap_1, access_keymap, map_keymap, get_keyelt)
 4055 	(Fdefine_key, Flookup_key, struct accessible_keymaps_data)
 4056 	(accessible_keymaps_1, Fkey_description, push_key_description):
 4057 	(shadow_lookup, struct where_is_internal_data)
 4058 	(where_is_internal, Fwhere_is_internal, where_is_internal_1)
 4059 	(Fdescribe_buffer_bindings, describe_map_tree, struct describe_map_elt)
 4060 	(describe_map, describe_vector):
 4061 	* menu.c (single_menu_item):
 4062 	* nsmenu.m (ns_update_menubar):
 4063 	* process.c (wait_reading_process_output):
 4064 	* search.c (scan_buffer, scan_newline):
 4065 	Use bool for boolean.
 4066 	* keyboard.c (timers_run, swallow_events)
 4067 	(detect_input_pending_run_timers):
 4068 	* process.c (wait_reading_process_output):
 4069 	Use unsigned for counter where wraparound-on-overflow is desired,
 4070 	since unsigned is guaranteed to have that behavior and signed is not.
 4071 	(read_char): Use ptrdiff_t for string length.
 4072 	(get_input_pending): Remove first argument, since it was always
 4073 	the same pointer-to-int (now pointer-to-boolean) &input_pending,
 4074 	and behave as if it had that value.  Return new value of
 4075 	input_pending.  All callers changed.
 4076 	* keyboard.h (struct kboard): Use unsigned : 1 for boolean member
 4077 	immediate_echo.  Use ptrdiff_t for echo_after_prompt, since it's
 4078 	a string length.
 4079 	* keymap.c (push_key_description): Omit last arg, which was always 1.
 4080 	All callers changed.
 4081 
 4082 	* regex.c (immediate_quit) [emacs]: Remove duplicate decl.
 4083 
 4084 2012-10-10  Juanma Barranquero  <lekktu@gmail.com>
 4085 
 4086 	* makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/indent.$(O))
 4087 	($(BLD)/term.$(O)): Update dependencies.
 4088 
 4089 2012-10-10  Dmitry Antipov  <dmantipov@yandex.ru>
 4090 
 4091 	* alloc.c (mark_object): Use meaningful PVEC_NORMAL_VECTOR.
 4092 	* lisp.h (enum pvec_type): Adjust comments and omit explicit
 4093 	initializer for PVEC_NORMAL_VECTOR.
 4094 
 4095 2012-10-10  Paul Eggert  <eggert@cs.ucla.edu>
 4096 
 4097 	Clean out old termopts cruft.
 4098 	* termopts.h (flow_control, meta_key): Remove unused decls.
 4099 	* dispnew.c, indent.c, nsterm.m, term.c, xsettings.c, xsmfns.c:
 4100 	Don't include termopts.h.
 4101 
 4102 2012-10-10  Dmitry Antipov  <dmantipov@yandex.ru>
 4103 
 4104 	* alloc.c (gc_sweep): Use pointer-to-a-pointer loop for buffers.
 4105 
 4106 2012-10-10  Paul Eggert  <eggert@cs.ucla.edu>
 4107 
 4108 	* commands.h (immediate_quit): Remove duplicate decl.
 4109 
 4110 2012-10-09  Jan Djärv  <jan.h.d@swipnet.se>
 4111 
 4112 	* nsfont.m (Vfonts_in_cache): Remove, not needed as font.c handles
 4113 	caching.
 4114 	(nsfont_open): Remove setting of Vfonts_in_cache.
 4115 	(syms_of_nsfont): Remove initialization of Vfonts_in_cache.
 4116 
 4117 2012-10-09  Eli Zaretskii  <eliz@gnu.org>
 4118 
 4119 	* w32fns.c (w32_last_error): Change the return value to DWORD, to
 4120 	match what GetLastError returns.  Explain why the function is
 4121 	needed.
 4122 
 4123 	* frame.c (delete_frame): Rename local variable 'tooltip_frame' to
 4124 	'is_tooltip_frame', to avoid confusion with its global namesake.
 4125 
 4126 2012-10-08  Daniel Colascione  <dancol@dancol.org>
 4127 
 4128 	* xdisp.c (start_hourglass): Call w32_note_current_window when
 4129 	HAVE_NTGUI, not just WINDOWSNT, resolving a problem in the cygw32
 4130 	build that caused Emacs to display the hourglass cursor forever.
 4131 
 4132 	* w32fns.c (Fx_display_color_cells): Instead of using NCOLORS,
 4133 	which is broken under remote desktop, calculate the number of
 4134 	colors available for a display based on the display's number of
 4135 	planes and number of bits per pixel per plane.  (bug#10397).
 4136 
 4137 2012-10-08  Jan Djärv  <jan.h.d@swipnet.se>
 4138 
 4139 	* nsfont.m (Vfonts_in_cache): New variable.
 4140 	(nsfont_open): Use unsignedLongLongValue for cache in case wide ints
 4141 	are used.  Add cached fonts to Vfonts_in_cache.
 4142 	(syms_of_nsfont): Initialize and staticpro Vfonts_in_cache.
 4143 
 4144 2012-10-08  Juanma Barranquero  <lekktu@gmail.com>
 4145 
 4146 	* makefile.w32-in (LOCAL_FLAGS): Don't define HAVE_NTGUI, it's now
 4147 	in nt/config.nt.
 4148 	(FONT_H): Define after FRAME_H.
 4149 	($(BLD)/emacs.$(O), $(BLD)/process.$(O), $(BLD)/w32heap.$(O)):
 4150 	Update dependencies.
 4151 
 4152 	* w32term.c: Remove leftover declaration of keyboard_codepage.
 4153 
 4154 2012-10-08  Eli Zaretskii  <eliz@gnu.org>
 4155 
 4156 	* makefile.w32-in (FONT_H): Add $(FRAME_H).
 4157 	(W32TERM_H): Add $(ATIMER_H) and $(FRAME_H).
 4158 	($(BLD)/emacs.$(O), $(BLD)/w32console.$(O)): Update dependencies.
 4159 	(GLOBAL_SOURCES): Add cygw32.c.
 4160 	($(BLD)/unexw32.$(O)):
 4161 	($(BLD)/w32.$(O)):
 4162 	($(BLD)/w32console.$(O)):
 4163 	($(BLD)/w32fns.$(O)):
 4164 	($(BLD)/w32heap.$(O)):
 4165 	($(BLD)/w32menu.$(O)):
 4166 	($(BLD)/w32proc.$(O)): Add w32common.h.
 4167 
 4168 	* w32fns.c (w32_color_map_lookup, x_to_w32_color): Argument is now
 4169 	'const char *'.
 4170 	(x_to_w32_color): Don't modify the argument, modify a copy instead.
 4171 
 4172 2012-10-08  Daniel Colascione  <dancol@dancol.org>
 4173 
 4174 	* w32term.h (WM_EMACS_BRINGTOTOP, WM_EMACS_INPUT_READY)
 4175 	(WM_EMACS_END): Change WM_EMACS_BRINGTOTOP from 22 to 21 to close
 4176 	accidental message numbering hole.  Change other messages to
 4177 	match.
 4178 
 4179 	* w32select.h (HAVE_W32SELECT): Remove.
 4180 
 4181 	* w32select.c, w32proc.c, w32menu.c, w32console.c, w32.c: Include
 4182 	w32common.h instead of w32heap.h.
 4183 
 4184 	* w32heap.h (ROUND_UP, ROUND_DOWN, get_page_size)
 4185 	(get_allocation_unit, get_processor_type, get_w32_major_version)
 4186 	(get_w32_minor_version, sysinfo_cache, osinfo_cache)
 4187 	(w32_major_version, w32_minor_version, w32_build_number, OS_9X)
 4188 	(OS_NT, os_subtype, cache_system_info): Move declarations to
 4189 	w32common.
 4190 
 4191 	* w32heap.c: Include w32common.h.
 4192 	(sysinfo_cache, syspage_mask, osinfo_cache, w32_major_version)
 4193 	(w32_minor_version, w32_build_number, w32_subtype):
 4194 	Remove duplicate definitions.
 4195 
 4196 	* w32fns.c: Include w32common.h; include w32heap.h only in
 4197 	WINDOWSNT.
 4198 
 4199 	(Fx_file_dialog): Clarify comment on GetOpenFileName structure.
 4200 	Use `report_file_error' instead of `error' in order to better
 4201 	inform users of what went wrong.  Increase NTGUI_UNICODE file
 4202 	dialog box file name length to 32k, the maximum allowed by the NT
 4203 	kernel.
 4204 
 4205 	* w32common.h: New file.
 4206 	(ROUND_UP, ROUND_DOWN, get_page_size)
 4207 	(get_allocation_unit, get_processor_type, get_w32_major_version)
 4208 	(get_w32_minor_version, sysinfo_cache, osinfo_cache)
 4209 	(w32_major_version, w32_minor_version, w32_build_number, OS_9X)
 4210 	(OS_NT, os_subtype, cache_system_info): Move here.
 4211 
 4212 	* unexw32.c, unexcw.c: Include w32common.h.
 4213 
 4214 	* emacs.c (main): Use (defined (WINDOWSNT) || defined
 4215 	HAVE_NTGUI) instead of removed HAVE_W32SELECT to decide whether
 4216 	to call syms_of_w32select.
 4217 
 4218 	* cygw32.h: Remove obsolete EXFUN declarations.
 4219 
 4220 	* cygw32.c (Qutf_16_le): Rename to Qutf_16le.
 4221 
 4222 	* Makefile.in (SOME_MACHINE_OBJECTS): Reverse accidental removal
 4223 	of w32inevt.o from SOME_MACHINE_OBJECTS.
 4224 
 4225 2012-10-08  Daniel Colascione  <dancol@dancol.org>
 4226 
 4227 	* image.c: Permanent fix for JPEG compilation issue --- limit
 4228 	jpeglib `boolean' redefinition to Cygwin builds.
 4229 
 4230 2012-10-08  Eli Zaretskii  <eliz@gnu.org>
 4231 
 4232 	* image.c (CHECK_LIB_AVAILABLE): Remove, no longer used.
 4233 
 4234 	* emacs.c (DAEMON_MUST_EXEC) [HAVE_NTGUI]: Define this only on
 4235 	Cygwin.
 4236 
 4237 2012-10-08  Daniel Colascione  <dancol@dancol.org>
 4238 
 4239 	* xfaces.c, xdisp.c, window.c, w32xfns.c, w32term.h, w32term.c,
 4240 	w32select.h w32select.c, w32proc.c, w32menu.c, w32inevt.c,
 4241 	w32help.c, w32font.c, w32font.c, w32fns.c, w32console.c, w32.h,
 4242 	w32.c, unexw32.c, termhooks.h, process.c, menu.c, keyboard.h,
 4243 	keyboard.c, image.c, frame.h, frame.c, fontset.c, font.h, font.c,
 4244 	emacs.c, dispextern.h, cygw32.h, cygw32.c, conf_post.h,
 4245 	Makefile.in: use HAVE_NTGUI for W32 GUI and WINDOWSNT for the
 4246 	operating system.  defined(HAVE_NTGUI) && !defined(WINDOWSNT) is
 4247 	now a supported configuration.
 4248 
 4249 	* Makefile.in: consolidate image variables into LIBIMAGE; add
 4250 	W32_OBJ and W32_LIBS.  Compile new files.
 4251 
 4252 	* conf_post.h:
 4253 	(_DebPrint) declare tracing facility for W32 debugging.  We need
 4254 	to unify tracing later.
 4255 
 4256 	(NTGUI_UNICODE) Define when compiling for Cygwin to allow the
 4257 	unconditional use of W32 Unicode functions.  Cygwin runs only on
 4258 	100% Unicode operating systems.
 4259 
 4260 	* cygw32.c: New file.  Define Cygwin-specific facilities.
 4261 	(Fcygwin_convert_path_to_windows)
 4262 	(Fcygwin_convert_path_from_windows): New user functions for
 4263 	accessing Cygwin path-munging routines.
 4264 
 4265 	* cygw32.h: New file.
 4266 	(WCSDATA, to_unicode, from_unicode): Define facilities for storing
 4267 	UTF-16LE strings temporarily inside non-Lisp-visible string
 4268 	objects.
 4269 
 4270 	(w32_strerror): Just what it says on the tin.
 4271 
 4272 	* emacs.c: Make the NS fork-then-exec code for daemon-launching
 4273 	also run for Cygwin; both systems have the same problem with using
 4274 	GUI facilities in a forked child.  Also call syms_of_cygw32,
 4275 	syms_of_w32select in correct places.
 4276 
 4277 	(DAEMON_MUST_EXEC): new macro defined to signal that a platform
 4278 	needs fork-then-exec for daemon launching.
 4279 
 4280 	* font.h: Include frame.h.
 4281 
 4282 	* image.c: Use the image library cache machinery only when we're
 4283 	compiling for native WINDOWSNT; Cygwin can use shared libraries
 4284 	like any other Unixlike system.
 4285 
 4286 	* keyboard.c: Clarify a comment regarding the input loop.
 4287 
 4288 	* menu.c: When NTGUI_UNICODE is defined, use Unicode menu
 4289 	functions directly instead of trying to detect at runtime that our
 4290 	host operating system supports them.  We make this change for two
 4291 	reasons: Cygwin lacks support for the multibyte character
 4292 	conversion functions used by the legacy menu code, and Cygwin
 4293 	never needs to rely on non-Unicode APIs.
 4294 
 4295 	* unexw32.c (hinst): Declare extern.
 4296 
 4297 	* w32.c: Change header order;
 4298 	(w32_strerror): Move to w32fns.c because we need it for
 4299 	non-WINDOWSNT builds.
 4300 
 4301 	* w32.h: Add #error macro to make sure we don't include w32.h for
 4302 	Cygwin builds.  Remove w32select declarations.
 4303 
 4304 	* w32console.c (w32_sys_ring_bell, Fset_message_beep): Move to
 4305 	w32fns.c.  w32console.c is WINDOWSNT-only.
 4306 
 4307 	* w32fns.c: Include cygw32.h or w32.h depending on CYGWIN; more
 4308 	NTGUI_UNICODE tweaks.  (See above.) Change _snprintf to the more
 4309 	POSIXy alternative.
 4310 	(faked_key, sysinfo_cache, osinfo_cahce, syspage_mask)
 4311 	(w32_major_version, w32_minor_version, w32_build_number)
 4312 	(os_subtype, sound_type): Define here
 4313 	(w32_defined_color): Make color parameter const for consistency
 4314 	with other _defined_color functions.
 4315 	(w32_createwindow): Unconditionally call w32_init_class instead of
 4316 	doing so only when hprevinst is non-NULL.  Plumbing hprevinst
 4317 	through the code is complex and unnecessary because class
 4318 	registration is practically free.
 4319 	(w32_name_of_message): New EMACSDEBUG-only function.
 4320 	(Fset_message_beep): Move here
 4321 	(Fx_open_connection): Require that the display name for Windows be
 4322 	"w32" for consistency, emacsclient disambiguation, and maybe, one
 4323 	day, multi-window-system support.
 4324 	(file_dialog_callback): NTGUI_UNICODE changes; encode and decode
 4325 	Cygwin files for W32 GUI facilities, since these clearly don't
 4326 	expect Cygwin names.
 4327 	(_DebPrint): Define.
 4328 	(w32_strerror, w32_console_toggle_lock_key, w32_kbd_mods_to_emacs)
 4329 	(w32_kbd_patch_key, w32_sys_ring_bell): Move here.
 4330 	(Ssystem_move_file_to_trash): Define only for native WINDOWSNT.
 4331 	(w32_last_error): Remove.
 4332 
 4333 	* w32font.c: Define _strlwr to strlwr for non-WINDOWSNT builds.
 4334 
 4335 	* w32heap.c (syspage_mask): Declare here.
 4336 	(cache_system_info): Remove.
 4337 
 4338 	* w32inevt.c (faked_key): Define globally, not statically.
 4339 	(w32_kbd_mods_to_emacs, w32_kbd_patch_key, faked_key)
 4340 	(w32_console_toggle_lock_key): Move to w32fns.c.
 4341 
 4342 	* w32menu.c: Include setjmp.h.  NTGUI_UNICODE changes throughout.
 4343 
 4344 	* w32proc.c (_DebPrint): Move to w32fns.c.
 4345 	* w32select.c: Include string.h, stdio.h for Cygwin.
 4346 	* w32select.h: New File.
 4347 
 4348 	* w32term.c: Include io.h for non-CYGWIN builds; needed for
 4349 	get_osfhandle.
 4350 	(w32_message_fd): New variable.  Under Cygwin, holds the file
 4351 	descriptor the system used to tell us about pending thread
 4352 	messages.
 4353 
 4354 	(w32_init_term): Remove incorrect calls to fcntl and init_sigio
 4355 	that prevented compilation under non-WINDOWSNT systems.
 4356 
 4357 	(w32_initialize): Open /dev/windows and assign it to
 4358 	w32_message_fd.  Provide w32 feature.
 4359 
 4360 	* w32term.h: Include frame.h, atimer.h.  Declare various frame functions.
 4361 	(WM_EMACS_INPUT_READY): add.
 4362 	(prepend_msg, w32_message_fd): Declare globally.
 4363 
 4364 	* w32xfns.c:
 4365 	(keyboard_handle): Use only when WINDOWSNT.
 4366 	(notify_msg_ready): New function.  Posts a message to the main
 4367 	thread's message queue under CYGWIN, which wakes up the main
 4368 	thread from select(2) by making the /dev/windows file descriptor
 4369 	ready.  Under WINDOWSNT, it sets an event the same way the old
 4370 	code did.
 4371 
 4372 	(post, prepend_msg): Actually call notify_msg_ready instead of
 4373 	setting the input event directly.
 4374 
 4375 2012-10-07  Eli Zaretskii  <eliz@gnu.org>
 4376 
 4377 	* ralloc.c (relinquish): If a heap is ready to be relinquished,
 4378 	but it still has blocs in it, don't return it to the system,
 4379 	instead of aborting.  (Bug#12402)
 4380 
 4381 2012-10-07  Jan Djärv  <jan.h.d@swipnet.se>
 4382 
 4383 	* nsterm.m (ns_dumpglyphs_image): Only draw slice of image (Bug#12506).
 4384 
 4385 	* nsterm.m (ns_update_auto_hide_menu_bar): Remove definition of
 4386 	MAC_OS_X_VERSION_10_6.
 4387 	(syms_of_nsterm): Remove comment about Panther and above for
 4388 	ns-antialias-text.
 4389 	* nsterm.h (MAC_OS_X_VERSION_10_3, onTiger): Remove.
 4390 	(EmacsApp): Remove check for >= MAC_OS_X_VERSION_10_4.
 4391 	(struct nsfont_info): Remove check for >= MAC_OS_X_VERSION_10_3.
 4392 
 4393 	* nsselect.m (ns_string_from_pasteboard): Remove check for >=
 4394 	MAC_OS_X_VERSION_10_4.
 4395 
 4396 	* nsmenu.m (fillWithWidgetValue:): Remove code for <
 4397 	MAC_OS_X_VERSION_10_2.
 4398 
 4399 	* nsimage.m (setPixmapData, getPixelAtX, setAlphaAtX): Remove onTiger.
 4400 
 4401 	* nsfns.m (Fns_list_services): Remove comment and check for OSX < 10.4.
 4402 	(ns_do_applescript): Remove check for >= MAC_OS_X_VERSION_10_4.
 4403 
 4404 	* nsterm.m (ns_in_resize): Remove (Bug#12479).
 4405 	(ns_resize_handle_rect, mouseDown, mouseUp, mouseDragged): Remove.
 4406 	(ns_clear_frame, sendEvent, windowDidResize, drawRect:):
 4407 	Remove ns_in_resize check.
 4408 	(ns_clear_frame_area): Remove resize handle code.
 4409 
 4410 	* nsfns.m (ns_in_resize): Remove.
 4411 	(x_set_icon_name, ns_set_name, ns_set_name_as_filename):
 4412 	Remove ns_in_resize check.
 4413 
 4414 2012-10-07  Paul Eggert  <eggert@cs.ucla.edu>
 4415 
 4416 	Improve sys_siglist detection.
 4417 	* sysdep.c (sys_siglist, init_signals): Use _sys_siglist if it's
 4418 	defined as a macro, as is done in Solaris.
 4419 	(sys_siglist_entries): New macro.
 4420 	(save_strsignal): Use it.
 4421 	* syssignal.h (safe_strsignal): Now ATTRIBUTE_CONST, to pacify
 4422 	GCC 4.7.2 on Fedora 17 with the fixed sys_siglist detection.
 4423 
 4424 2012-10-06  Jan Djärv  <jan.h.d@swipnet.se>
 4425 
 4426 	* nsfns.m (Fx_create_frame): Call x_default_parameter with
 4427 	fullscreen/Fullscreen.
 4428 
 4429 	* nsterm.h (EmacsView): Rename tbar_height to tibar_height.
 4430 	tobar_height is new.
 4431 
 4432 	* nsterm.m (x_make_frame_visible): Check for fullscreen.
 4433 	(ns_fullscreen_hook): Activate old style fullscreen with a timer.
 4434 	(ns_term_init): Set activateIgnoringOtherApps if old style fullscreen.
 4435 	(windowDidResize:): Check for correct window if old style fullscreen.
 4436 	Capitalize word in comment.  Remove incorrect comment.
 4437 	(initFrameFromEmacs:): tbar_height renamed tibar_height.
 4438 	(windowDidEnterFullScreen:): Toggle toolbar for fullscreen to fix
 4439 	error in drawing background.
 4440 	(toggleFullScreen:): Remove comment.  Rearrange calls.
 4441 	Set toolbar values to zero, save old height in tobar_height.
 4442 	Restore tool bar height when leaving fullscreen.
 4443 	(canBecomeMainWindow): New function.
 4444 
 4445 2012-10-06  Paul Eggert  <eggert@cs.ucla.edu>
 4446 
 4447 	* keyboard.c (read_char): Remove unnecessary 'volatile's and label.
 4448 
 4449 2012-10-05  Eli Zaretskii  <eliz@gnu.org>
 4450 
 4451 	* w32proc.c (stop_timer_thread): Fix declaration of 'err'.
 4452 
 4453 	* w32.c (utime): Open the file with FILE_FLAG_BACKUP_SEMANTICS, so
 4454 	that time stamps of directories could also be changed.
 4455 	Don't request the too broad GENERIC_WRITE, only the more restrictive
 4456 	FILE_WRITE_ATTRIBUTES access rights.
 4457 
 4458 	* fileio.c (Fset_file_times): Special-case ignoring errors for
 4459 	directories only on MSDOS, not on MS-Windows.
 4460 
 4461 2012-10-05  Ikumi Keita  <ikumi@ikumi.que.jp>  (tiny change)
 4462 
 4463 	* minibuf.c (Fcompleting_read): Doc fix.  (Bug#12555)
 4464 
 4465 2012-10-04  Eli Zaretskii  <eliz@gnu.org>
 4466 
 4467 	* w32.c (utime): Test for INVALID_HANDLE_VALUE, not for NULL, to
 4468 	see whether CreateFile failed.
 4469 
 4470 2012-10-04  Paul Eggert  <eggert@cs.ucla.edu>
 4471 
 4472 	* profiler.c (handle_profiler_signal): Inhibit pending signals too,
 4473 	to avoid similar races.
 4474 	* keyboard.c (pending_signals): Now bool, not int.
 4475 
 4476 	Port timers to OpenBSD, plus check for timer failures.
 4477 	OpenBSD problem reported by Han Boetes.
 4478 	* profiler.c (setup_cpu_timer): Check for failure of timer_settime
 4479 	and/or setitimer.
 4480 	(Fprofiler_cpu_stop): Don't assume HAVE_SETITIMER.
 4481 	* syssignal.h (HAVE_ITIMERSPEC): New macro.  This is for platforms
 4482 	like OpenBSD, which has timer_settime but does not declare it.
 4483 	OpenBSD does not define SIGEV_SIGNAL, so use that when deciding
 4484 	whether to use itimerspec-related primitives.  All uses of
 4485 	HAVE_TIMER_SETTIME replaced with HAVE_ITIMERSPEC.
 4486 
 4487 2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>
 4488 
 4489 	* profiler.c (handle_profiler_signal): Fix a malloc race
 4490 	that caused Emacs to hang on Fedora 17 when profiling Lisp.
 4491 
 4492 2012-10-02  Jan Djärv  <jan.h.d@swipnet.se>
 4493 
 4494 	* nsterm.m (windowDidEnterFullScreen): Remove fprintf.
 4495 
 4496 2012-10-02  Eli Zaretskii  <eliz@gnu.org>
 4497 
 4498 	* w32proc.c (sys_wait): Declare 'signame' 'const char *', to be
 4499 	consistent with the change in return value of 'safe_strsignal'.
 4500 
 4501 2012-10-02  Paul Eggert  <eggert@cs.ucla.edu>
 4502 
 4503 	Prefer plain 'static' to 'static inline' (Bug#12541).
 4504 	* bidi.c (bidi_get_type, bidi_check_type, bidi_get_category)
 4505 	(bidi_set_sor_type, bidi_push_embedding_level)
 4506 	(bidi_pop_embedding_level, bidi_remember_char, bidi_copy_it)
 4507 	(bidi_cache_reset, bidi_cache_shrink, bidi_cache_fetch_state)
 4508 	(bidi_cache_search, bidi_cache_ensure_space)
 4509 	(bidi_cache_iterator_state, bidi_cache_find)
 4510 	(bidi_peek_at_next_level, bidi_set_paragraph_end)
 4511 	(bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
 4512 	(bidi_explicit_dir_char, bidi_resolve_neutral_1):
 4513 	Now 'static', not 'static inline'.
 4514 
 4515 	Count overruns when profiling; change units to ns.
 4516 	* profiler.c (handle_profiler_signal): Count sampling intervals, not ms.
 4517 	Give extra weight to samples after overruns, to attempt to count
 4518 	the time more accurately.
 4519 	(setup_cpu_timer): Change sampling interval units from ms to ns, since
 4520 	the underlying primitives nominally do ns.
 4521 	(Fprofiler_cpu_start): Document the change.  Mention that
 4522 	the sampling intervals are only approximate.
 4523 
 4524 2012-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 4525 
 4526 	* frame.c (Fmake_terminal_frame): Prefer safer CONSP over !NILP.
 4527 
 4528 	* coding.h (ENCODE_FILE, DECODE_FILE, DECODE_SYSTEM): Remove special
 4529 	case for the special 0 coding-system.
 4530 
 4531 	* buffer.c (Fset_buffer_multibyte): Signal an error instead of widening.
 4532 	(Fmake_overlay): Remove redundant tests.
 4533 	(fix_start_end_in_overlays): Remove redundant recentering.
 4534 
 4535 2012-10-02  Juanma Barranquero  <lekktu@gmail.com>
 4536 
 4537 	* makefile.w32-in ($(BLD)/alloc.$(O), $(BLD)/gmalloc.$(O)):
 4538 	Update dependencies.
 4539 
 4540 2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>
 4541 
 4542 	Fix a malloc race condition involving strsignal.
 4543 	A signal can arrive in the middle of a malloc, and Emacs's signal
 4544 	handler can invoke strsignal, which can invoke malloc, which is
 4545 	not portable.  This race condition bug makes Emacs hang on GNU/Linux.
 4546 	Fix it by altering the signal handler so that it does not invoke
 4547 	strsignal.
 4548 	* emacs.c (shut_down_emacs): Use safe_strsignal, not strsignal.
 4549 	* process.c (status_message): Use const pointer, in case strsignal
 4550 	is #defined to safe_strsignal.
 4551 	* sysdep.c (sys_siglist, init_signals): Always define and
 4552 	initialize a substitute sys_siglist if the system does not define
 4553 	one, even if HAVE_STRSIGNAL.
 4554 	(safe_strsignal): Rename from strsignal.  Always define,
 4555 	using sys_siglist.  Return a const pointer.
 4556 	* syssignal.h (safe_strsignal): New decl.
 4557 	(strsignal) [!HAVE_STRSIGNAL]: Define in terms of safe_strsignal.
 4558 
 4559 2012-10-01  Eli Zaretskii  <eliz@gnu.org>
 4560 
 4561 	* w32proc.c (timer_loop): Fix code that waits for timer
 4562 	expiration, to avoid high CPU usage.
 4563 
 4564 2012-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 4565 
 4566 	* fns.c (check_hash_table, get_key_arg, maybe_resize_hash_table)
 4567 	(sweep_weak_table): Remove redundant prototypes.
 4568 
 4569 2012-10-01  Fabrice Popineau  <fabrice.popineau@gmail.com>
 4570 
 4571 	* emacs.c: Move the inclusion of TERM_HEADER after including
 4572 	windows.h on WINDOWSNT.  This avoids compilation problems with
 4573 	MSVC.
 4574 
 4575 2012-10-01  Eli Zaretskii  <eliz@gnu.org>
 4576 
 4577 	* unexw32.c (OFFSET_TO_RVA, RVA_TO_OFFSET)
 4578 	(RVA_TO_SECTION_OFFSET): Encode all macro arguments in parentheses.
 4579 	(RVA_TO_PTR): Cast the result of RVA_TO_OFFSET to 'unsigned char *',
 4580 	as the previous version used 'void *'.
 4581 
 4582 	* ralloc.c (ROUNDUP): Fix last change.
 4583 	(MEM_ROUNDUP): Don't cast MEM_ALIGN, it is already of type
 4584 	'size_t'.
 4585 
 4586 	* w32proc.c <disable_itimers>: New static flag.
 4587 	(init_timers): Initialize it to zero, after creating the critical
 4588 	sections used by the timer threads.
 4589 	(term_timers): Set to 1 before deleting the critical sections.
 4590 	(getitimer, setitimer): If disable_itimers is non-zero, return an
 4591 	error indication without doing anything.  Reported by Fabrice
 4592 	Popineau <fabrice.popineau@supelec.fr> as part of bug#12544.
 4593 	(alarm) [HAVE_SETITIMER]: Be more conformant to the expected
 4594 	return results.
 4595 	[!HAVE_SETITIMER]: Behave as the previous version that didn't
 4596 	support timers.
 4597 
 4598 	* emacs.c (shut_down_emacs) [WINDOWSNT]: Move the call to
 4599 	term_ntproc after all the other bookkeeping, to get timers working
 4600 	as long as possible.
 4601 
 4602 2012-10-01  Paul Eggert  <eggert@cs.ucla.edu>
 4603 
 4604 	* xdisp.c (syms_of_xdisp): Default message-log-max to 1000, not 100.
 4605 	Suggested by Juri Linkov in
 4606 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00821.html>.
 4607 
 4608 	Prefer plain 'static' to 'static inline' (Bug#12541).
 4609 	With static functions, modern compilers inline pretty well by
 4610 	themselves; advice from programmers often hurts as much as it helps.
 4611 	On my host (x86-64, Fedora 17, GCC 4.7.2, default 'configure'),
 4612 	this change shrinks the text size of the Emacs executable by 1.1%
 4613 	without affecting CPU significantly in my benchmark.
 4614 	* alloc.c (mem_find, live_string_p, live_cons_p, live_symbol_p)
 4615 	(live_float_p, live_misc_p, live_vector_p, live_buffer_p)
 4616 	(mark_maybe_object, mark_maybe_pointer, bounded_number):
 4617 	* buffer.c (bset_abbrev_mode, bset_abbrev_table)
 4618 	(bset_auto_fill_function, bset_auto_save_file_format)
 4619 	(bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
 4620 	(bset_bidi_display_reordering, bset_buffer_file_coding_system)
 4621 	(bset_cache_long_line_scans, bset_case_fold_search)
 4622 	(bset_ctl_arrow, bset_cursor_in_non_selected_windows)
 4623 	(bset_cursor_type, bset_display_table, bset_extra_line_spacing)
 4624 	(bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
 4625 	(bset_fringe_indicator_alist, bset_fringes_outside_margins)
 4626 	(bset_header_line_format, bset_indicate_buffer_boundaries)
 4627 	(bset_indicate_empty_lines, bset_invisibility_spec)
 4628 	(bset_left_fringe_width, bset_major_mode, bset_mark)
 4629 	(bset_minor_modes, bset_mode_line_format, bset_mode_name)
 4630 	(bset_name, bset_overwrite_mode, bset_pt_marker)
 4631 	(bset_right_fringe_width, bset_save_length)
 4632 	(bset_scroll_bar_width, bset_scroll_down_aggressively)
 4633 	(bset_scroll_up_aggressively, bset_selective_display)
 4634 	(bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
 4635 	(bset_word_wrap, bset_zv_marker, set_buffer_overlays_before)
 4636 	(set_buffer_overlays_after):
 4637 	* category.c (bset_category_table):
 4638 	* charset.c (read_hex):
 4639 	* coding.c (produce_composition, produce_charset)
 4640 	(handle_composition_annotation, handle_charset_annotation)
 4641 	(char_encodable_p):
 4642 	* dispnew.c (swap_glyph_pointers, copy_row_except_pointers)
 4643 	(assign_row, set_frame_matrix_frame, make_current)
 4644 	(add_row_entry):
 4645 	* eval.c (set_specpdl_symbol, set_specpdl_old_value):
 4646 	* fns.c (maybe_resize_hash_table):
 4647 	* frame.c (fset_buffer_predicate, fset_minibuffer_window):
 4648 	* gmalloc.c (register_heapinfo):
 4649 	* image.c (lookup_image_type):
 4650 	* intervals.c (set_interval_object, set_interval_left)
 4651 	(set_interval_right, copy_interval_parent, rotate_right)
 4652 	(rotate_left, balance_possible_root_interval):
 4653 	* keyboard.c (kset_echo_string, kset_kbd_queue)
 4654 	(kset_keyboard_translate_table, kset_last_prefix_arg)
 4655 	(kset_last_repeatable_command, kset_local_function_key_map)
 4656 	(kset_overriding_terminal_local_map, kset_real_last_command)
 4657 	(kset_system_key_syms, clear_event, set_prop):
 4658 	* lread.c (digit_to_number):
 4659 	* marker.c (attach_marker, live_buffer, set_marker_internal):
 4660 	* nsterm.m (ns_compute_glyph_string_overhangs):
 4661 	* process.c (pset_buffer, pset_command)
 4662 	(pset_decode_coding_system, pset_decoding_buf)
 4663 	(pset_encode_coding_system, pset_encoding_buf, pset_filter)
 4664 	(pset_log, pset_mark, pset_name, pset_plist, pset_sentinel)
 4665 	(pset_status, pset_tty_name, pset_type, pset_write_queue):
 4666 	* syntax.c (bset_syntax_table, dec_bytepos):
 4667 	* terminal.c (tset_param_alist):
 4668 	* textprop.c (interval_has_some_properties)
 4669 	(interval_has_some_properties_list):
 4670 	* window.c (wset_combination_limit, wset_dedicated)
 4671 	(wset_display_table, wset_hchild, wset_left_fringe_width)
 4672 	(wset_left_margin_cols, wset_new_normal, wset_new_total)
 4673 	(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
 4674 	(wset_right_fringe_width, wset_right_margin_cols)
 4675 	(wset_scroll_bar_width, wset_start, wset_temslot, wset_vchild)
 4676 	(wset_vertical_scroll_bar_type, wset_window_parameters):
 4677 	* xdisp.c (wset_base_line_number, wset_base_line_pos)
 4678 	(wset_column_number_displayed, wset_region_showing)
 4679 	(window_box_edges, run_window_scroll_functions)
 4680 	(append_glyph_string_lists, prepend_glyph_string_lists)
 4681 	(append_glyph_string, set_glyph_string_background_width)
 4682 	(append_glyph, append_composite_glyph)
 4683 	(take_vertical_position_into_account):
 4684 	* xfaces.c (x_create_gc, x_free_gc, merge_face_vectors)
 4685 	(face_attr_equal_p, lface_equal_p, hash_string_case_insensitive)
 4686 	(lface_hash, lface_same_font_attributes_p, lookup_face):
 4687 	* xml.c (libxml2_loaded_p):
 4688 	* xterm.c (x_set_mode_line_face_gc, x_set_glyph_string_gc)
 4689 	(x_set_glyph_string_clipping, x_clear_glyph_string_rect):
 4690 	Now 'static', not 'static inline'.
 4691 
 4692 	* bidi.c: Tune.
 4693 	(bidi_copy_it): Do the whole copy with a single memcpy.
 4694 	(bidi_char_at_pos): Merge the two STRING_CHAR calls into one.
 4695 
 4696 	Revert the FOLLOW-SYMLINKS change for file-attributes.
 4697 	Doing it right would require several changes to Tramp, and there's
 4698 	not enough time to get that tested before the freeze today.
 4699 	* dired.c (directory_files_internal, Ffile_attributes):
 4700 	Undo last change.
 4701 
 4702 	* frame.c (x_report_frame_params): Port better to wider ints.
 4703 	Do not assume that EMACS_UINT is the same width as uprintmax_t,
 4704 	or that pointers can be printed in 15 decimal digits.
 4705 	Avoid GCC warnings if EMACS_UINT is wider than a pointer.
 4706 
 4707 2012-09-30  Fabrice Popineau  <fabrice.popineau@supelec.fr>
 4708 
 4709 	Support x64 build on MS-Windows.
 4710 	* w32term.h (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK): Define for x64.
 4711 	(SET_SCROLL_BAR_W32_WINDOW): Cast ID to intptr_t, for
 4712 	compatibility with x64.
 4713 	(x_get_focus_frame): Add prototype.
 4714 
 4715 	* w32term.c (w32_draw_underwave): Don't use GCC extensions for
 4716 	defining an XRectangle structure.
 4717 
 4718 	* w32proc.c (RVA_TO_PTR, w32_executable_type): Fix pointer
 4719 	arithmetic for compatibility with x64.
 4720 
 4721 	* w32menu.c (add_menu_item): Use UINT_PTR instead of UINT, for
 4722 	compatibility with x64.
 4723 
 4724 	* w32heap.h: Adjust prototypes and declarations.
 4725 
 4726 	* w32heap.c (RVA_TO_PTR, allocate_heap, sbrk, init_heap)
 4727 	(round_heap): Use DWORD_PTR, ptrdiff_t and size_t instead of
 4728 	DWORD, long, and unsigned long, for compatibility with x64.
 4729 	(allocate_heap) [_WIN64]: Reserve 32GB of memory.
 4730 	(sbrk): Argument is now of type ptrdiff_t.
 4731 
 4732 	* w32fns.c (HMONITOR): Condition declaration on _WIN32_WINNT being
 4733 	less than 0x0500.
 4734 	(w32_msg_pump): Use WPARAM type for 'result'.
 4735 
 4736 	* w32.c (init_environment, get_emacs_configuration): Support AMD64
 4737 	architecture.
 4738 	(init_ntproc): Cast arguments of _open_osfhandle to intptr_t, for
 4739 	compatibility with x64.
 4740 
 4741 	* vm-limit.c (lim_data): Now size_t.
 4742 	(check_memory_limits): Adjust prototypes of real_morecore and
 4743 	__morecore to receive argument of type ptrdiff_t.  Use size_t for
 4744 	five_percent and data_size.
 4745 
 4746 	* unexw32.c: Use DWORD_PTR instead of DWORD for file-scope
 4747 	variables, for compatibility with x64.
 4748 	(rva_to_section, offset_to_section, relocate_offset)
 4749 	(OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_SECTION_OFFSET)
 4750 	(PTR_TO_RVA, RVA_TO_PTR, OFFSET_TO_PTR, get_section_info)
 4751 	(copy_executable_and_dump_data): Use DWORD_PTR instead of DWORD
 4752 	for compatibility with x64.
 4753 
 4754 	* sysdep.c (STDERR_FILENO): Define if not already defined.
 4755 
 4756 	* ralloc.c (real_morecore): Argument type is now ptrdiff_t.
 4757 	(__morecore): Argument type is now ptrdiff_t.
 4758 	(ROUNDUP, MEM_ROUNDUP): Use size_t instead of 'unsigned long'.
 4759 	(relinquish): Use ptrdiff_t type for 'excess'.
 4760 	(r_alloc_sbrk): Argument type is now ptrdiff_t.
 4761 
 4762 	* makefile.w32-in (HEAPSIZE): Get value from EMACS_HEAPSIZE.
 4763 	(bootstrap-temacs-CMD, bootstrap-temacs-SH): Use $(EMACS_PURESIZE)
 4764 	instead of a literal number.
 4765 
 4766 	* gmalloc.c [WINDOWSNT]: Include w32heap.h.
 4767 	(min): Define only if not already defined.
 4768 
 4769 	* frame.c (x_report_frame_params): Use EMACS_UINT for the return
 4770 	value of FRAME_X_WINDOW, to fit a 64-bit pointer on 64-bit Windows
 4771 	hosts.
 4772 
 4773 	* image.c (x_bitmap_pixmap): Return ptrdiff_t, not int, since
 4774 	'bitmaps' is a pointer.
 4775 
 4776 	* dispextern.h (x_bitmap_pixmap): Adjust prototype.
 4777 
 4778 	* alloc.c (gdb_make_enums_visible): Now conditional on __GNUC__.
 4779 
 4780 2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 4781 
 4782 	file-attributes has a new optional arg FOLLOW-SYMLINKS.
 4783 	* dired.c (directory_files_internal, Ffile_attributes):
 4784 	New arg follow_symlinks.  All uses changed.
 4785 
 4786 2012-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 4787 
 4788 	* .gdbinit (xbacktrace): Adjust to recent "struct backtrace" change.
 4789 
 4790 2012-09-30  Eli Zaretskii  <eliz@gnu.org>
 4791 
 4792 	Support atimers and CPU profiler via profile.c on MS-Windows.
 4793 	* w32proc.c (sig_mask, crit_sig): New static variables.
 4794 	(sys_signal): Support SIGALRM and SIGPROF.
 4795 	(sigemptyset, sigaddset, sigfillset, sigprocmask)
 4796 	(pthread_sigmask, setpgrp): Move here from w32.c.  sigaddset,
 4797 	sigfillset, and sigprocmask are no longer no-ops.
 4798 	(sigismember): New function.
 4799 	(struct itimer_data): New definition.
 4800 	(ticks_now, real_itimer, prof_itimer, clocks_min, crit_real)
 4801 	(crit_prof): New static variables.
 4802 	(MAX_SINGLE_SLEEP): New definition.
 4803 	(timer_loop, stop_timer_thread, term_timers, init_timers)
 4804 	(start_timer_thread, getitimer, setitimer): New functions.
 4805 	(alarm): No longer a no-op, calls setitimer.
 4806 
 4807 	* w32.c (term_ntproc): Call term_timers.
 4808 	(init_ntproc): Make sure all signals are unblocked at startup, to
 4809 	erase any traces of dumping.  Call init_timers.
 4810 
 4811 	* w32fns.c (hourglass_timer, HOURGLASS_ID): Remove.
 4812 	Windows-specific code to display the hourglass mouse pointer is no
 4813 	longer used.
 4814 	(w32_wnd_proc): Remove code that handled the WM_TIMER message due
 4815 	to hourglass timer expiration.
 4816 	(start_hourglass, cancel_hourglass, DEFAULT_HOURGLASS_DELAY):
 4817 	Remove, no longer used.
 4818 	(w32_note_current_window, show_hourglass, hide_hourglass):
 4819 	New functions, in support of hourglass cursor display similar to other
 4820 	window systems.
 4821 	(syms_of_w32fns): Don't initialize hourglass_timer.
 4822 
 4823 	* xdisp.c (start_hourglass, cancel_hourglass): Now used on
 4824 	WINDOWSNT as well.
 4825 	(start_hourglass) [WINDOWSNT]: Call w32_note_current_window.
 4826 
 4827 	* w32.h (init_timers, term_timers): Add prototypes.
 4828 
 4829 2012-09-30  Kenichi Handa  <handa@gnu.org>
 4830 
 4831 	* coding.c (decode_coding_ccl, encode_coding_ccl): Pay attention
 4832 	to the buffer relocation which may be caused by ccl_driver.
 4833 
 4834 2012-09-30  Jan Djärv  <jan.h.d@swipnet.se>
 4835 
 4836 	* xfns.c (Fx_file_dialog): Update comment.
 4837 
 4838 	* w32fns.c (Fx_file_dialog): Update comment.
 4839 
 4840 	* nsfns.m (Fns_read_file_name): Add argument DIR_ONLY_P.
 4841 	Initialize panel name field if OSX >= 10.6.
 4842 
 4843 	* fileio.c (Fnext_read_file_uses_dialog_p): Add HAVE_NS.
 4844 
 4845 	* nsfns.m (ns_frame_parm_handlers): Add x_set_fullscreen.
 4846 
 4847 	* nsterm.m (NEW_STYLE_FS): New define.
 4848 	(ns_fullscreen_hook, windowWillEnterFullScreen)
 4849 	(windowDidEnterFullScreen, windowWillExitFullScreen)
 4850 	(windowDidExitFullScreen, toggleFullScreen, handleFS)
 4851 	(setFSValue): New functions.
 4852 	(EmacsFSWindow): New implementation.
 4853 	(canBecomeKeyWindow): New function for EmacsFSWindow.
 4854 	(ns_create_terminal): Set fullscreen_hook to ns_fullscreen_hook.
 4855 	(dealloc): Release nonfs_window if in fullscreen.
 4856 	(updateFrameSize:): Call windowDidMove to update top/left.
 4857 	(windowWillResize:toSize:): Check if frame is still maximized.
 4858 	(initFrameFromEmacs:): Initialize fs_state, fs_before_fs,
 4859 	next_maximized, maximized_width, maximized_height and nonfs_window.
 4860 	Call setCollectionBehavior if NEW_STYLE_FS.  Initialize bwidth and
 4861 	tbar_height.
 4862 	(windowWillUseStandardFrame:defaultFrame:): Update frame parameter
 4863 	fullscreen.  Set maximized_width/height.  Act on next_maximized.
 4864 
 4865 	* nsterm.h (MAC_OS_X_VERSION_10_7, MAC_OS_X_VERSION_10_8): New.
 4866 	(EmacsView): Add variables for fullscreen.
 4867 	(handleFS, setFSValue, toggleFullScreen): New in EmacsView.
 4868 	(EmacsFSWindow): New interface for fullscreen.
 4869 
 4870 2012-09-30  Juanma Barranquero  <lekktu@gmail.com>
 4871 
 4872 	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
 4873 
 4874 2012-09-30  Chong Yidong  <cyd@gnu.org>
 4875 
 4876 	* fns.c (Frandom): Doc fix.
 4877 
 4878 2012-09-30  Martin Rudalics  <rudalics@gmx.at>
 4879 
 4880 	* window.c (Vwindow_combination_limit): New default value.
 4881 	(Qwindow_size): New symbol replacing Qtemp_buffer_resize.
 4882 
 4883 2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 4884 
 4885 	* syssignal.h (PROFILER_CPU_SUPPORT): Don't define if PROFILING.
 4886 	Suggested by Eli Zaretskii in
 4887 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00811.html>.
 4888 
 4889 2012-09-30  Eli Zaretskii  <eliz@gnu.org>
 4890 
 4891 	* profiler.c (Fprofiler_cpu_stop): Use timer_settime only if
 4892 	HAVE_TIMER_SETTIME is defined.
 4893 
 4894 2012-09-30  Paul Eggert  <eggert@cs.ucla.edu>
 4895 
 4896 	Profiler improvements: more-accurate timers, overflow checks.
 4897 	* profiler.c: Don't include stdio.h, limits.h, sys/time.h,
 4898 	signal.h, setjmp.h.  Include systime.h instead.
 4899 	(saturated_add): New function.
 4900 	(record_backtrace, current_sample_interval): Use EMACS_INT, not size_t.
 4901 	(record_backtrace, handle_profiler_signal): Saturate on fixnum overflow.
 4902 	(profiler_timer, profiler_timer_ok) [HAVE_TIMER_SETTIME]:
 4903 	New static vars.
 4904 	(enum profiler_cpu_running): New enum.
 4905 	(profiler_cpu_running): Now of that enum type, not bool.
 4906 	All uses changed to store the new value.
 4907 	(handle_profiler_signal): Rename from sigprof_handler_1,
 4908 	for consistency with other handlers.  Do not check whether
 4909 	cpu_log is a hash-table if garbage collecting, since it
 4910 	doesn't matter in that case.
 4911 	(deliver_profiler_signal): Rename from sigprof_handler,
 4912 	for consistency with other handlers.
 4913 	(setup_cpu_timer): New function, with much of what used to be in
 4914 	Fprofiler_cpu_start.  Check for out-of-range argument.
 4915 	Prefer timer_settime if available, and prefer
 4916 	thread cputime clocks, then process cputime clocks, then
 4917 	monotonic clocks, to the old realtime clock.  Use make_timeval
 4918 	to round more-correctly when falling back to setitimer.
 4919 	(Fprofiler_cpu_start): Use it.
 4920 	(Fprofiler_cpu_stop): Prefer timer_settime if available.
 4921 	Don't assume that passing NULL as the 2nd argument of setitimer
 4922 	is the same as passing a pointer to all-zero storage.
 4923 	Ignore SIGPROF afterwards.
 4924 	(malloc_probe): Saturate at MOST_POSITIVE_FIXNUM.
 4925 	* sysdep.c (emacs_sigaction_init): Also mask out SIGPROF in
 4926 	non-fatal signal handlers.  Ignore SIGPROF on startup.
 4927 	* syssignal.h (PROFILER_CPU_SUPPORT): Define this macro here, not
 4928 	in profiler.c, since sysdep.c now uses it.
 4929 
 4930 	* sysdep.c (handle_fatal_signal): Bump backtrace size to 40.
 4931 	Suggested by Eli Zaretskii in
 4932 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00796.html>.
 4933 
 4934 2012-09-29  Juanma Barranquero  <lekktu@gmail.com>
 4935 
 4936 	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
 4937 
 4938 2012-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 4939 
 4940 	* lisp.h (struct backtrace): Remove indirection for `function' field.
 4941 	* xdisp.c (redisplay_internal):
 4942 	* profiler.c (record_backtrace, sigprof_handler_1):
 4943 	* alloc.c (Fgarbage_collect):
 4944 	* eval.c (interactive_p, Fsignal, eval_sub, Ffuncall, Fbacktrace)
 4945 	(Fbacktrace_frame): Adjust accordingly.
 4946 
 4947 2012-09-28  Glenn Morris  <rgm@gnu.org>
 4948 
 4949 	* eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success)
 4950 	(Frun_hook_with_args_until_failure): Doc fixes.
 4951 
 4952 2012-09-28  Eli Zaretskii  <eliz@gnu.org>
 4953 
 4954 	* xdisp.c (syms_of_xdisp) <Qredisplay_internal>: Rename from
 4955 	Qautomatic_redisplay and change the symbol name.  All users changed.
 4956 
 4957 2012-09-28  Tomohiro Matsuyama  <tomo@cx4a.org>
 4958 
 4959 	* profiler.c (sigprof_handler): Fix race condition.
 4960 
 4961 2012-09-28  Glenn Morris  <rgm@gnu.org>
 4962 
 4963 	* lread.c (lisp_file_lexically_bound_p): Handle #! lines.  (Bug#12528)
 4964 
 4965 2012-09-27  Paul Eggert  <eggert@cs.ucla.edu>
 4966 
 4967 	Check more robustly for timer_settime.
 4968 	* Makefile.in (LIB_TIMER_TIME): New macro.
 4969 	(LIBES): Add it.
 4970 	* atimer.c (alarm_timer, alarm_timer_ok, set_alarm, init_atimer):
 4971 	Use HAVE_TIMER_SETTIME, not SIGEV_SIGNAL, to decide whether to
 4972 	call timer_settime.
 4973 
 4974 2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>
 4975 
 4976 	* profiler.c (Fprofiler_cpu_start): Remove unnecessary flag SA_SIGINFO.
 4977 
 4978 2012-09-26  Juanma Barranquero  <lekktu@gmail.com>
 4979 
 4980 	* makefile.w32-in ($(BLD)/profiler.$(O)): Update dependencies.
 4981 
 4982 2012-09-26  Paul Eggert  <eggert@cs.ucla.edu>
 4983 
 4984 	* character.h (MAYBE_UNIFY_CHAR): Remove.
 4985 	* charset.c, charset.h (maybe_unify_char): Now static.
 4986 	* charset.c (decode_char): Use maybe_unify_char, not MAYBE_UNIFY_CHAR.
 4987 	Since this stuff is now private to charset.c, there's no need for
 4988 	a public macro and no need to inline by hand.
 4989 
 4990 2012-09-26  Tomohiro Matsuyama  <tomo@cx4a.org>
 4991 	    Stefan Monnier  <monnier@iro.umontreal.ca>
 4992 	    Juanma Barranquero  <lekktu@gmail.com>
 4993 
 4994 	* profiler.c: New file.
 4995 	* Makefile.in (base_obj): Add profiler.o.
 4996 	* makefile.w32-in (OBJ2, GLOBAL_SOURCES): Add profiler.c.
 4997 	($(BLD)/profiler.$(O)): New target.
 4998 	* emacs.c (main): Call syms_of_profiler.
 4999 	* alloc.c (Qautomatic_gc): New constant.
 5000 	(MALLOC_PROBE): New macro.
 5001 	(xmalloc, xzalloc, xrealloc, lisp_malloc, lisp_align_malloc): Use it.
 5002 	(total_bytes_of_live_objects): New function.
 5003 	(Fgarbage_collect): Use it.  Record itself in backtrace_list.
 5004 	Call malloc_probe for the memory profiler.
 5005 	(syms_of_alloc): Define Qautomatic_gc.
 5006 	* eval.c (eval_sub, Ffuncall): Reorder assignments to avoid
 5007 	race condition.
 5008 	(struct backtrace): Move definition...
 5009 	* lisp.h (struct backtrace): ..here.
 5010 	(Qautomatic_gc, profiler_memory_running): Declare vars.
 5011 	(malloc_probe, syms_of_profiler): Declare functions.
 5012 	* xdisp.c (Qautomatic_redisplay): New constant.
 5013 	(redisplay_internal): Record itself in backtrace_list.
 5014 	(syms_of_xdisp): Define Qautomatic_redisplay.
 5015 
 5016 2012-09-25  Eli Zaretskii  <eliz@gnu.org>
 5017 2012-09-25  Juanma Barranquero  <lekktu@gmail.com>
 5018 
 5019 	* makefile.w32-in ($(BLD)/callproc.$(O)): Update dependencies.
 5020 
 5021 2012-09-25  Paul Eggert  <eggert@cs.ucla.edu>
 5022 
 5023 	Prefer POSIX timers if available.
 5024 	They avoid a race if the timer is too close to the current time.
 5025 	* atimer.c (alarm_timer, alarm_timer_ok) [SIGEV_SIGNAL]: New static vars.
 5026 	(set_alarm) [SIGEV_SIGNAL]: Use POSIX timers if available.
 5027 	(init_atimer) [SIGEV_SIGNAL]: Initialize them.
 5028 
 5029 2012-09-25  Eli Zaretskii  <eliz@gnu.org>
 5030 
 5031 	* coding.c (CHAR_STRING_ADVANCE_NO_UNIFY): Make it an alias of
 5032 	CHAR_STRING_ADVANCE.
 5033 	(STRING_CHAR_ADVANCE_NO_UNIFY): Make it an alias of
 5034 	STRING_CHAR_ADVANCE.
 5035 
 5036 2012-09-25  Juanma Barranquero  <lekktu@gmail.com>
 5037 
 5038 	Move Vlibrary_cache to emacs.c and reset before dumping.
 5039 
 5040 	* lisp.h (reset_image_types): Declare.
 5041 	[WINDOWSNT] (Vlibrary_cache): Declare.
 5042 
 5043 	* image.c (reset_image_types): New function.
 5044 
 5045 	* emacs.c [WINDOWSNT] (Vlibrary_cache): Move from w32.c.
 5046 	(syms_of_emacs) [WINDOWSNT] <Vlibrary_cache>: Initialize and staticpro.
 5047 	(Fdump_emacs): Reset Vlibrary_cache and image_types.
 5048 
 5049 	* w32.c (Vlibrary_cache): Do not define; moved to emacs.c
 5050 	(globals_of_w32) <Vlibrary_cache>: Do not initialize.
 5051 
 5052 	* w32.h (Vlibrary_cache): Do not declare.
 5053 
 5054 2012-09-25  Eli Zaretskii  <eliz@gnu.org>
 5055 
 5056 	* w32proc.c (sys_signal): Handle all signals defined by the
 5057 	MS-Windows runtime, not just SIGCHLD.  Actually install the signal
 5058 	handlers for signals supported by Windows.  Don't override
 5059 	term_ntproc as the handler for SIGABRT.
 5060 	(sigaction): Rewrite to call sys_signal instead of duplicating its
 5061 	code.
 5062 	(sys_kill): Improve commentary.
 5063 
 5064 	* w32.c (term_ntproc): Accept (and ignore) one argument, for
 5065 	consistency with a signature of a signal handler.  All callers
 5066 	changed.
 5067 	(init_ntproc): Accept an argument DUMPING.  If dumping, don't
 5068 	install term_ntproc as a signal handler for SIGABRT, as that
 5069 	should be done by the dumped Emacs.
 5070 
 5071 	* w32.h (init_ntproc, term_ntproc): Adjust prototypes.
 5072 
 5073 	* w32select.c (term_w32select): Protect against repeated
 5074 	invocation by setting clipboard_owner to NULL after calling
 5075 	DestroyWindow.
 5076 
 5077 	* emacs.c (shut_down_emacs, main): Adapt the calls to init_ntproc
 5078 	and term_ntproc to their modified signatures.
 5079 
 5080 	* character.c (char_string, string_char): Remove calls to
 5081 	MAYBE_UNIFY_CHAR.  See the discussion starting at
 5082 	https://lists.gnu.org/r/emacs-devel/2012-09/msg00433.html
 5083 	for the details.
 5084 
 5085 2012-09-25  Chong Yidong  <cyd@gnu.org>
 5086 
 5087 	* xdisp.c (mode_line_inverse_video): Delete obsolete variable.
 5088 
 5089 2012-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 5090 
 5091 	* bytecode.c (exec_byte_code): Signal an error instead of aborting,
 5092 	when encountering an unknown bytecode.
 5093 
 5094 2012-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 5095 
 5096 	image.c, indent.c: Use bool for booleans.
 5097 	* dispextern.h (struct image_type): Members valid_p, load, init
 5098 	now return bool, not int.  All uses changed.
 5099 	* image.c: Omit unnecessary static decls.
 5100 	(x_create_bitmap_mask, x_build_heuristic_mask):
 5101 	Return void, not int, since callers don't care about the return value.
 5102 	(x_create_bitmap_mask, define_image_type, valid_image_p)
 5103 	(struct image_keyword, parse_image_spec, image_spec_value)
 5104 	(check_image_size, image_background)
 5105 	(image_background_transparent, x_clear_image_1)
 5106 	(postprocess_image, lookup_image, x_check_image_size)
 5107 	(x_create_x_image_and_pixmap, xbm_image_p)
 5108 	(Create_Pixmap_From_Bitmap_Data, xbm_read_bitmap_data)
 5109 	(xbm_load_image, xbm_file_p, xbm_load, xpm_lookup_color)
 5110 	(init_xpm_functions, xpm_valid_color_symbols_p, xpm_image_p)
 5111 	(xpm_load, xpm_load_image, lookup_rgb_color, lookup_pixel_color)
 5112 	(x_to_xcolors, x_build_heuristic_mask, pbm_image_p, pbm_load)
 5113 	(png_image_p, init_png_functions, png_load_body, png_load)
 5114 	(jpeg_image_p, init_jpeg_functions, jpeg_load_body, jpeg_load)
 5115 	(tiff_image_p, init_tiff_functions, tiff_load, gif_image_p)
 5116 	(init_gif_functions, gif_load, imagemagick_image_p)
 5117 	(imagemagick_load_image, imagemagick_load, svg_image_p)
 5118 	(init_svg_functions, svg_load, svg_load_image, gs_image_p)
 5119 	(gs_load):
 5120 	* nsimage.m (ns_load_image):
 5121 	* nsterm.m (ns_defined_color):
 5122 	* xfaces.c (tty_lookup_color, tty_defined_color, defined_color):
 5123 	* xfns.c (x_defined_color):
 5124 	* xterm.c (x_alloc_lighter_color_for_widget)
 5125 	(x_alloc_nearest_color_1, x_alloc_nearest_color)
 5126 	(x_alloc_lighter_color):
 5127 	* indent.c (disptab_matches_widthtab, current_column)
 5128 	(scan_for_column, string_display_width, indented_beyond_p)
 5129 	(compute_motion, vmotion, Fvertical_motion):
 5130 	Use bool for booleans.
 5131 
 5132 2012-09-24  Chong Yidong  <cyd@gnu.org>
 5133 
 5134 	* chartab.c (Fset_char_table_default): Obsolete function removed.
 5135 
 5136 2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 5137 
 5138 	Move pid_t related decls out of lisp.h.
 5139 	* lisp.h, syswait.h (record_child_status_change, wait_for_termination)
 5140 	(interruptible_wait_for_termination):
 5141 	Move these decls from lisp.h to syswait.h, since they use pid_t.
 5142 	Needed on FreeBSD; see Herbert J. Skuhra in
 5143 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00571.html>.
 5144 	* callproc.c: Include syswait.h.
 5145 
 5146 	gnutls.c, gtkutil.c: Use bool for boolean.
 5147 	* gnutls.c (gnutls_global_initialized, init_gnutls_functions)
 5148 	(emacs_gnutls_handle_error):
 5149 	* gtkutil.c (xg_check_special_colors, xg_prepare_tooltip)
 5150 	(xg_hide_tooltip, xg_create_frame_widgets)
 5151 	(create_dialog, xg_uses_old_file_dialog)
 5152 	(xg_get_file_with_chooser, xg_get_file_with_selection)
 5153 	(xg_get_file_name, xg_have_tear_offs, create_menus, xg_create_widget)
 5154 	(xg_item_label_same_p, xg_update_menubar)
 5155 	(xg_modify_menubar_widgets, xg_event_is_for_menubar)
 5156 	(xg_ignore_gtk_scrollbar, xg_set_toolkit_scroll_bar_thumb)
 5157 	(xg_event_is_for_scrollbar, xg_pack_tool_bar, xg_make_tool_item)
 5158 	(is_box_type, xg_tool_item_stale_p, xg_update_tool_bar_sizes)
 5159 	(update_frame_tool_bar, free_frame_tool_bar):
 5160 	* gtkutil.c, w32term.c, xterm.c (x_wm_set_size_hint):
 5161 	* nsmenu.m (ns_update_menubar):
 5162 	* nsmenu.m, w32menu.c, xmenu.c (set_frame_menubar):
 5163 	* xfns.c (Fx_show_tip) [USE_GTK]:
 5164 	Use bool for boolean.
 5165 	* gtkutil.c (xg_update_frame_menubar):
 5166 	* xmenu.c (update_frame_menubar):
 5167 	Return void, not int, since caller ignores return value.
 5168 	* gtkutil.c (xg_change_toolbar_position):
 5169 	Return void, not 1.
 5170 
 5171 2012-09-23  Juanma Barranquero  <lekktu@gmail.com>
 5172 
 5173 	* makefile.w32-in (BLOCKINPUT_H): Remove.
 5174 	(SYSSIGNAL_H): New macro.
 5175 	($(BLD)/alloc.$(O), $(BLD)/atimer.$(O), $(BLD)/buffer.$(O))
 5176 	($(BLD)/callproc.$(O), $(BLD)/data.$(O), $(BLD)/dired.$(O))
 5177 	($(BLD)/dispnew.$(O), $(BLD)/editfns.$(O), $(BLD)/emacs.$(O))
 5178 	($(BLD)/eval.$(O), $(BLD)/fileio.$(O), $(BLD)/floatfns.$(O))
 5179 	($(BLD)/fns.$(O), $(BLD)/fontset.$(O), $(BLD)/frame.$(O))
 5180 	($(BLD)/fringe.$(O), $(BLD)/image.$(O), $(BLD)/insdel.$(O))
 5181 	($(BLD)/keyboard.$(O), $(BLD)/keymap.$(O), $(BLD)/lread.$(O))
 5182 	($(BLD)/menu.$(O), $(BLD)/w32inevt.$(O), $(BLD)/w32proc.$(O))
 5183 	($(BLD)/print.$(O), $(BLD)/process.$(O), $(BLD)/ralloc.$(O))
 5184 	($(BLD)/search.$(O), $(BLD)/sound.$(O), $(BLD)/sysdep.$(O))
 5185 	($(BLD)/term.$(O), $(BLD)/window.$(O), $(BLD)/xdisp.$(O))
 5186 	($(BLD)/xfaces.$(O), $(BLD)/w32fns.$(O), $(BLD)/w32menu.$(O))
 5187 	($(BLD)/w32term.$(O), $(BLD)/w32select.$(O), $(BLD)/w32reg.$(O))
 5188 	($(BLD)/w32xfns.$(O)): Update dependencies.
 5189 
 5190 2012-09-23  Eli Zaretskii  <eliz@gnu.org>
 5191 
 5192 	* .gdbinit: Set breakpoint on terminate_due_to_signal, not on
 5193 	fatal_error_backtrace.
 5194 
 5195 	* w32proc.c (sys_kill): Undo last change: don't do anything when
 5196 	invoked to deliver SIGABRT to our own process.  This is now
 5197 	handled by emacs_raise.
 5198 
 5199 2012-09-23  Juanma Barranquero  <lekktu@gmail.com>
 5200 
 5201 	* w32term.c (w32_read_socket): Remove leftover reference to
 5202 	interrupt_input_pending.
 5203 
 5204 2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 5205 
 5206 	Do not use SA_NODEFER.
 5207 	Problem reported by Dani Moncayo in
 5208 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00557.html>.
 5209 	* alloc.c (die):
 5210 	* sysdep.c (emacs_abort): Do not reset signal handler.
 5211 	* emacs.c (terminate_due_to_signal): Reset signal handler here.
 5212 	* sysdep.c (init_signals): Do not use SA_NODEFER.  It wasn't
 5213 	wanted even on POSIXish hosts, and it doesn't work on Windows.
 5214 
 5215 2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>
 5216 
 5217 	* xterm.c (x_term_init): Call fixup_locale before and after calling
 5218 	gtk_init (Bug#12392).
 5219 
 5220 2012-09-23  Chong Yidong  <cyd@gnu.org>
 5221 
 5222 	* w32.c (w32_delayed_load): Remove LIBRARIES argument; always use
 5223 	Vdynamic_library_alist.
 5224 
 5225 	* gnutls.c (init_gnutls_functions): Caller changed; remove arg.
 5226 	(Fgnutls_available_p): Caller changed.
 5227 
 5228 	* xml.c (init_libxml2_functions, Flibxml_parse_html_region)
 5229 	(Flibxml_parse_xml_region): Likewise.
 5230 
 5231 	* dispextern.h (struct image_type): Remove arg from init function.
 5232 
 5233 	* image.c (Finit_image_library, lookup_image_type)
 5234 	(define_image_type): Remove now-unneeded second arg.
 5235 	(init_xpm_functions, init_png_functions, init_jpeg_functions)
 5236 	(init_tiff_functions, init_gif_functions, init_svg_functions):
 5237 	Arglist and w32_delayed_load calling convention changed.
 5238 	(gs_type): Remove init_gs_functions; there is no such function.
 5239 	(valid_image_p, make_image): Fix caller to lookup_image_type.
 5240 
 5241 2012-09-23  Paul Eggert  <eggert@cs.ucla.edu>
 5242 
 5243 	Simplify and avoid signal-handling races (Bug#12471).
 5244 	* alloc.c (die):
 5245 	* sysdep.c (emacs_abort) [HAVE_NTGUI]:
 5246 	Avoid recursive loop if there's a fatal error in the function itself.
 5247 	* atimer.c (pending_atimers):
 5248 	* blockinput.h: Don't include "atimer.h"; no longer needed.
 5249 	(interrupt_input_pending): Remove.  All uses removed.
 5250 	pending_signals now counts both atimers and ordinary interrupts.
 5251 	This is less racy than having three separate pending-signal flags.
 5252 	(block_input, unblock_input, totally_unblock_input, unblock_input_to)
 5253 	(input_blocked_p):
 5254 	Rename from their upper-case counterparts BLOCK_INPUT,
 5255 	UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT, UNBLOCK_INPUT_TO,
 5256 	INPUT_BLOCKED_P, and turn into functions.  All uses changed.
 5257 	This makes it easier to access volatile variables more accurately.
 5258 	(BLOCK_INPUT_RESIGNAL): Remove.  All uses replaced by unblock_input ().
 5259 	(input_blocked_p): Prefer this to 'interrupt_input_blocked', as
 5260 	that's more reliable if the code is buggy and sets
 5261 	interrupt_input_blocked to a negative value.  All uses changed.
 5262 	* atimer.c (deliver_alarm_signal):
 5263 	Remove.  No need to deliver this to the parent; any thread can
 5264 	handle this signal now.  All uses replaced by underlying handler.
 5265 	* atimer.c (turn_on_atimers):
 5266 	* dispnew.c (handle_window_change_signal):
 5267 	* emacs.c (handle_danger_signal):
 5268 	* keyboard.c (kbd_buffer_get_event):
 5269 	Don't reestablish signal handler; not needed with sigaction.
 5270 	* blockinput.h (UNBLOCK_INPUT_TO, TOTALLY_UNBLOCK_INPUT)
 5271 	(UNBLOCK_INPUT_TO):
 5272 	Rework to avoid unnecessary accesses to volatile variables.
 5273 	(UNBLOCK_INPUT_TO): Now a function.
 5274 	(totally_unblock_input, unblock_input): New decls.
 5275 	* data.c (handle_arith_signal, deliver_arith_signal): Move to sysdep.c
 5276 	(init_data): Remove.  Necessary stuff now done in init_signal.
 5277 	* emacs.c, xdisp.c: Include "atimer.h", since we invoke atimer functions.
 5278 	* emacs.c (handle_fatal_signal, deliver_fatal_signal): Move to sysdep.c.
 5279 	(fatal_error_code): Remove; no longer needed.
 5280 	(terminate_due_to_signal): Rename from fatal_error_backtrace, since
 5281 	it doesn't always backtrace.  All uses changed.  No need to reset
 5282 	signal to default, since sigaction and/or die does that for us now.
 5283 	Use emacs_raise (FOO), not kill (getpid (), FOO).
 5284 	(main): Check more-accurately whether we're dumping.
 5285 	Move fatal-error setup to sysdep.c
 5286 	* floatfns.c: Do not include "syssignal.h"; no longer needed.
 5287 	* gtkutil.c (xg_get_file_name, xg_get_font):
 5288 	Remove no-longer-needed signal-mask manipulation.
 5289 	* keyboard.c, process.c (POLL_FOR_INPUT):
 5290 	Don't depend on USE_ASYNC_EVENTS, a symbol that is never defined.
 5291 	* keyboard.c (read_avail_input): Remove.
 5292 	All uses replaced by gobble_input.
 5293 	(Ftop_level): Use TOTALLY_UNBLOCK_INPUT rather than open code.
 5294 	(kbd_buffer_store_event_hold, gobble_input):
 5295 	(record_asynch_buffer_change) [USABLE_SIGIO]:
 5296 	(store_user_signal_events):
 5297 	No need to mess with signal mask.
 5298 	(gobble_input): If blocking input and there are terminals, simply
 5299 	set pending_signals to 1 and return.  All hooks changed to not
 5300 	worry about whether input is blocked.
 5301 	(process_pending_signals): Clear pending_signals before processing
 5302 	them, in case a signal comes in while we're processing.
 5303 	By convention callers now test pending_signals before calling us.
 5304 	(UNBLOCK_INPUT_TO, unblock_input, totally_unblock_input):
 5305 	New functions, to support changes to blockinput.h.
 5306 	(handle_input_available_signal): Now extern.
 5307 	(reinvoke_input_signal): Remove.  All uses replaced by
 5308 	handle_async_input.
 5309 	(quit_count): Now volatile, since a signal handler uses it.
 5310 	(handle_interrupt): Now takes bool IN_SIGNAL_HANDLER as arg.
 5311 	All callers changed.  Block SIGINT only if not already blocked.
 5312 	Clear sigmask reliably, even if Fsignal returns, which it can.
 5313 	Omit unnecessary accesses to volatile var.
 5314 	(quit_throw_to_read_char): No need to restore sigmask.
 5315 	* keyboard.c (gobble_input, handle_user_signal):
 5316 	* process.c (wait_reading_process_output):
 5317 	Call signal-handling code rather than killing ourselves.
 5318 	* lisp.h: Include <float.h>, for...
 5319 	(IEEE_FLOATING_POINT): New macro, moved here to avoid duplication.
 5320 	(pending_signals): Now volatile.
 5321 	(syms_of_data): Now const if IEEE floating point.
 5322 	(handle_input_available_signal) [USABLE_SIGIO]:
 5323 	(terminate_due_to_signal, record_child_status_change): New decls.
 5324 	* process.c (create_process): Avoid disaster if memory is exhausted
 5325 	while we're processing a vfork, by tightening the critical section
 5326 	around the vfork.
 5327 	(send_process_frame, process_sent_to, handle_pipe_signal)
 5328 	(deliver_pipe_signal): Remove.  No longer needed, as Emacs now
 5329 	ignores SIGPIPE.
 5330 	(send_process): No need for setjmp/longjmp any more, since the
 5331 	SIGPIPE stuff is now gone.  Instead, report an error if errno
 5332 	is EPIPE.
 5333 	(record_child_status_change): Now extern.  PID and W are now args.
 5334 	Return void, not bool.  All callers changed.
 5335 	* sysdep.c (wait_debugging) [(BSD_SYSTEM || HPUX) && !defined (__GNU__)]:
 5336 	Remove.  All uses removed.  This bug should be fixed now in a
 5337 	different way.
 5338 	(wait_for_termination_1): Use waitpid rather than sigsuspend,
 5339 	and record the child status change directly.  This avoids the
 5340 	need to futz with the signal mask.
 5341 	(process_fatal_action): Move here from emacs.c.
 5342 	(emacs_sigaction_flags): New function, containing
 5343 	much of what used to be in emacs_sigaction_init.
 5344 	(emacs_sigaction_init): Use it.  Block nonfatal system signals that are
 5345 	caught by emacs, to make races less likely.
 5346 	(deliver_process_signal): Rename from handle_on_main_thread.
 5347 	All uses changed.
 5348 	(BACKTRACE_LIMIT_MAX): Now at top level.
 5349 	(thread_backtrace_buffer, threadback_backtrace_pointers):
 5350 	New static vars.
 5351 	(deliver_thread_signal, deliver_fatal_thread_signal):
 5352 	New functions, for more-accurate delivery of thread-specific signals.
 5353 	(handle_fatal_signal, deliver_fatal_signal): Move here from emacs.c.
 5354 	(deliver_arith_signal): Handle in this thread, not
 5355 	in the main thread, since it's triggered by this thread.
 5356 	(maybe_fatal_sig): New function.
 5357 	(init_signals): New arg DUMPING so that we can be more accurate
 5358 	about whether we're dumping.  Caller changed.
 5359 	Treat thread-specific signals differently from process-general signals.
 5360 	Block all signals while handling fatal error; that's safer.
 5361 	xsignal from SIGFPE only on non-IEEE hosts, treating it as fatal
 5362 	on IEEE hosts.
 5363 	When batch, ignore SIGHUP, SIGINT, SIGTERM if they were already ignored.
 5364 	Ignore SIGPIPE unless batch.
 5365 	(emacs_backtrace): Output backtrace for the appropriate thread,
 5366 	which is not necessarily the main thread.
 5367 	* syssignal.h: Include <stdbool.h>.
 5368 	(emacs_raise): New macro.
 5369 	* xterm.c (x_connection_signal): Remove; no longer needed
 5370 	now that we use sigaction.
 5371 	(x_connection_closed): No need to mess with sigmask now.
 5372 	(x_initialize): No need to reset SIGPIPE handler here, since
 5373 	init_signals does this for us now.
 5374 
 5375 2012-09-23  Jan Djärv  <jan.h.d@swipnet.se>
 5376 
 5377 	* nsterm.m (ns_dumpglyphs_image): dr is a new rect to draw image into,
 5378 	background rect may be larger (Bug#12245).
 5379 
 5380 2012-09-23  Chong Yidong  <cyd@gnu.org>
 5381 
 5382 	* keyboard.c (timer_check): Avoid quitting during Fcopy_sequence.
 5383 
 5384 2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>
 5385 
 5386 	* .gdbinit: Just stop at fatal_error_backtrace.
 5387 	See Stefan Monnier's request in
 5388 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00549.html>.
 5389 	Remove no-longer-used query of system type.
 5390 
 5391 2012-09-22  Chong Yidong  <cyd@gnu.org>
 5392 
 5393 	* search.c (Freplace_match): Doc fix (Bug#12325).
 5394 
 5395 	* minibuf.c (Finternal_complete_buffer): Doc fix (Bug#12391).
 5396 
 5397 	* editfns.c (Fline_beginning_position): Doc fix (Bug#12416).
 5398 	(Fline_end_position): Doc fix.
 5399 
 5400 	* cmds.c (Fforward_char, Fbackward_char): Doc fix (Bug#12414).
 5401 
 5402 2012-09-22  Chong Yidong  <cyd@gnu.org>
 5403 
 5404 	* dispextern.h (struct image_type): Add new slot, storing a type
 5405 	initialization function.
 5406 
 5407 	* image.c (define_image_type): Call the image initializer function
 5408 	if it is defined.  Arguments and return value changed.
 5409 	(valid_image_p, make_image): Callers changed.
 5410 	(xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
 5411 	(gif_type, imagemagick_type, svg_type, gs_type):
 5412 	Add initialization functions.
 5413 	(Finit_image_library): Call lookup_image_type.
 5414 	(CHECK_LIB_AVAILABLE): Macro deleted.
 5415 	(lookup_image_type): Call define_image_type here, rather than via
 5416 	Finit_image_library, and without using CHECK_LIB_AVAILABLE.
 5417 	(syms_of_image): Move define_image_type calls for xbm_type and
 5418 	pbm_type to lookup_image_type.
 5419 
 5420 2012-09-22  Eli Zaretskii  <eliz@gnu.org>
 5421 
 5422 	* keyboard.c (timer_check_2): Move calculation of 'timers' and
 5423 	'idle_timers' from here ...
 5424 	(timer_check): ... to here.  Use Fcopy_sequence to copy the timer
 5425 	lists, to avoid infloops when the timer does something stupid,
 5426 	like reinvoke itself with the same or smaller time-out.
 5427 	(Bug#12447)
 5428 
 5429 2012-09-22  Martin Rudalics  <rudalics@gmx.at>
 5430 
 5431 	* window.c (Fsplit_window_internal): Handle only Qt value of
 5432 	Vwindow_combination_limit separately.
 5433 	(Qtemp_buffer_resize): New symbol.
 5434 	(Vwindow_combination_limit): New default value.
 5435 	Rewrite doc-string.
 5436 
 5437 2012-09-22  Eli Zaretskii  <eliz@gnu.org>
 5438 
 5439 	* xdisp.c (next_overlay_string): Initialize it->end_charpos for
 5440 	the new overlay string.  (Bug#10159)
 5441 
 5442 2012-09-22  Paul Eggert  <eggert@cs.ucla.edu>
 5443 
 5444 	* emacs.c (shut_down_emacs): Don't assume stderr is buffered,
 5445 	or that fprintf is async-signal-safe.  POSIX doesn't require
 5446 	either assumption.
 5447 
 5448 2012-09-22  Chong Yidong  <cyd@gnu.org>
 5449 
 5450 	* buffer.c (Fset_buffer_modified_p): Handle indirect buffers
 5451 	(Bug#8207).
 5452 
 5453 2012-09-22  Kenichi Handa  <handa@gnu.org>
 5454 
 5455 	* composite.c (composition_reseat_it): Handle the case that a
 5456 	grapheme cluster is not covered by a single font (Bug#12352).
 5457 
 5458 2012-09-21  Chong Yidong  <cyd@gnu.org>
 5459 
 5460 	* image.c (define_image_type): Avoid adding duplicate types to
 5461 	image_types (Bug#12463).  Suggested by Jörg Walter.
 5462 
 5463 2012-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 5464 
 5465 	* unexmacosx.c: Define LC_DATA_IN_CODE if not defined.
 5466 	(print_load_command_name): Add case LC_DATA_IN_CODE.
 5467 	(dump_it) [LC_DATA_IN_CODE]: Call copy_linkedit_data.
 5468 
 5469 2012-09-21  Glenn Morris  <rgm@gnu.org>
 5470 
 5471 	* eval.c (Frun_hook_with_args_until_success)
 5472 	(Frun_hook_with_args_until_failure): Doc fixes.  (Bug#12393)
 5473 
 5474 2012-09-21  Andreas Schwab  <schwab@linux-m68k.org>
 5475 
 5476 	* fileio.c (Ffile_selinux_context): Only call freecon when
 5477 	lgetfilecon succeeded.
 5478 	(Fset_file_selinux_context): Likewise.  (Bug#12444)
 5479 
 5480 2012-09-21  Eli Zaretskii  <eliz@gnu.org>
 5481 
 5482 	* xdisp.c (try_window_reusing_current_matrix): Under bidi
 5483 	reordering, locate the cursor by calling set_cursor_from_row; if
 5484 	that fails, clear the desired glyph matrix before returning a
 5485 	failure indication to the caller.  Fixes leaving garbled display
 5486 	when fast scrolling with a down-key.  (Bug#12403)
 5487 	(compute_stop_pos_backwards): Fix a typo that caused crashes while
 5488 	scrolling through multibyte text.
 5489 
 5490 2012-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 5491 
 5492 	* alloc.c (mark_object) <PVEC_WINDOW>: Mark prev/next_buffers *after*
 5493 	calling mark_vectorlike since that's the one that marks the window.
 5494 	(mark_discard_killed_buffers): Mark the final cdr.
 5495 	* window.h (struct window): Move prev/next_buffers to the
 5496 	non-standard fields.
 5497 	* window.c (make_window): Initialize prev/next_buffers manually.
 5498 
 5499 2012-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 5500 
 5501 	Omit unused arg EXPECTED from socket hooks.
 5502 	* keyboard.c (gobble_input, read_avail_input, tty_read_avail_input):
 5503 	* nsterm.m (ns_term_init):
 5504 	* termhooks.h (struct terminal.read_socket_hook):
 5505 	* w32inevt.c (w32_console_read_socket):
 5506 	* w32term.c (w32_read_socket):
 5507 	* xterm.c (XTread_socket):
 5508 	Omit unused arg EXPECTED.  All callers changed.
 5509 	(store_user_signal_events): Return void, not int, since callers no
 5510 	longer care about the return value.  All uses changed.
 5511 
 5512 2012-09-20  Juanma Barranquero  <lekktu@gmail.com>
 5513 
 5514 	* w32gui.h (XParseGeometry): Do not declare.
 5515 
 5516 2012-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 5517 
 5518 	* w32inevt.c (w32_console_read_socket): Return -1 on failure, not 0.
 5519 	Ignore 'expected'.  See Eli Zaretskii in
 5520 	<https://bugs.gnu.org/12471#8> (last line).
 5521 
 5522 	* frame.c (read_integer): Remove.  All uses replaced by strtol/strtoul.
 5523 	(XParseGeometry): Now static.  Substitute extremal values for
 5524 	values that are out of range.
 5525 
 5526 2012-09-19  Jan Djärv  <jan.h.d@swipnet.se>
 5527 
 5528 	* w32xfns.c (read_integer, XParseGeometry): Move to frame.c.
 5529 
 5530 	* nsfns.m (XParseGeometry): Remove.
 5531 	(Fx_create_frame): Call x_set_offset to correctly interpret
 5532 	top_pos in geometry.
 5533 
 5534 	* frame.c (read_integer, XParseGeometry): Move from w32xfns.c.
 5535 	(Fx_parse_geometry): If there is a space in string, call
 5536 	Qns_parse_geometry, otherwise do as on other terms (Bug#12368).
 5537 
 5538 2012-09-17  Eli Zaretskii  <eliz@gnu.org>
 5539 
 5540 	* search.c (scan_buffer): Use character positions in calls to
 5541 	region_cache_forward and region_cache_backward, not byte
 5542 	positions.  (Bug#12196)
 5543 
 5544 	* w32term.c (w32_read_socket): Set pending_signals to 1, like
 5545 	xterm.c does.  Reported by Daniel Colascione <dancol@dancol.org>.
 5546 
 5547 	* ralloc.c (r_alloc_init) [!SYSTEM_MALLOC]: Initialize
 5548 	__malloc_extra_blocks to 32 instead of 64, like alloc.c did in
 5549 	emacs_blocked_malloc, now deleted.
 5550 
 5551 2012-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 5552 
 5553 	Remove no-longer-needed Solaris 2.4 vfork bug workaround.
 5554 	The workaround was for improving performance on Solaris 2.4, but
 5555 	is getting in the way now.  Emacs will still work if someone is
 5556 	still running Solaris 2.4 in a museum somewhere; Sun dropped
 5557 	support for Solaris 2.4 in 2003.
 5558 	* callproc.c (Fcall_process) [HAVE_WORKING_VFORK]:
 5559 	* process.c (create_process) [HAVE_WORKING_VFORK]:
 5560 	Omit now-unnecessary workaround for the Solaris 2.4 vfork bug,
 5561 	since Emacs no longer uses vfork on that platform.
 5562 
 5563 2012-09-17  Glenn Morris  <rgm@gnu.org>
 5564 
 5565 	* emacs.c: Use COPYRIGHT.
 5566 
 5567 2012-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 5568 
 5569 	Remove configure's --without-sync-input option (Bug#12450).
 5570 	When auditing signal-handling in preparation for cleaning it up,
 5571 	I found that SYNC_INPUT has race conditions and would be a real
 5572 	pain to fix.  Since it's an undocumented and deprecated
 5573 	configure-time option, now seems like a good time to remove it.
 5574 	Also see <https://bugs.gnu.org/11080#16>.
 5575 	* alloc.c (_bytes_used, __malloc_extra_blocks, _malloc_internal)
 5576 	(_free_internal) [!DOUG_LEA_MALLOC]: Remove decls.
 5577 	(alloc_mutex) [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
 5578 	(malloc_hysteresis):
 5579 	(check_depth) [XMALLOC_OVERRUN_CHECK]:
 5580 	(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT):
 5581 	(__malloc_hook, __realloc_hook, __free_hook, BYTES_USED)
 5582 	(dont_register_blocks, bytes_used_when_reconsidered)
 5583 	(bytes_used_when_full, emacs_blocked_free, emacs_blocked_malloc)
 5584 	(emacs_blocked_realloc, reset_malloc_hooks, uninterrupt_malloc):
 5585 	[!SYSTEM_MALLOC && !SYNC_INPUT]:
 5586 	Remove.  All uses removed.
 5587 	(MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): Use a different
 5588 	implementation, one that depends on whether the new macro
 5589 	XMALLOC_BLOCK_INPUT_CHECK is defined, not on whether SYNC_INPUT
 5590 	is defined.
 5591 	* atimer.c (run_timers, handle_alarm_signal):
 5592 	* keyboard.c (pending_signal, poll_for_input_1, poll_for_input)
 5593 	(handle_async_input, process_pending_signals)
 5594 	(handle_input_available_signal, init_keyboard):
 5595 	* nsterm.m (ns_read_socket):
 5596 	* process.c (wait_reading_process_output):
 5597 	* regex.c (immediate_quit, IMMEDIATE_QUIT_CHECK):
 5598 	* sysdep.c (emacs_sigaction_init) [SA_RESTART]:
 5599 	(emacs_write):
 5600 	* xterm.c (XTread_socket):
 5601 	Assume SYNC_INPUT.
 5602 	* conf_post.h (SA_RESTART) [IRIX6_5]: Do not #undef.
 5603 	* eval.c (handling_signal): Remove.  All uses removed.
 5604 	* lisp.h (ELSE_PENDING_SIGNALS): Remove.
 5605 	All uses replaced with the SYNC_INPUT version.
 5606 	(reset_malloc_hooks, uninterrupt_malloc, handling_signal):
 5607 	Remove decls.
 5608 	* sysdep.c, syssignal.h (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
 5609 	Now static.
 5610 
 5611 	* font.c (Ffont_shape_gstring): Remove unused local.
 5612 
 5613 2012-09-16  Glenn Morris  <rgm@gnu.org>
 5614 
 5615 	* Makefile.in (clean): No longer run nextstep's clean.
 5616 
 5617 	* Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables.
 5618 	(ns_frag): Remove.
 5619 	(ns-app): Move here from ns.mk, and simplify.
 5620 	(clean): Simplify nextstep entry.
 5621 	* ns.mk: Remove file.
 5622 
 5623 2012-09-17  Kenichi Handa  <handa@gnu.org>
 5624 
 5625 	* font.c (Ffont_shape_gstring): Fix previous change; GLYPHs may
 5626 	not convert the last few characters.
 5627 
 5628 2012-09-16  Kenichi Handa  <handa@gnu.org>
 5629 
 5630 	* font.c (Ffont_shape_gstring): Don't adjust grapheme cluster
 5631 	here, but just check the validity of glyphs in the glyph-string.
 5632 
 5633 2012-09-16  Martin Rudalics  <rudalics@gmx.at>
 5634 
 5635 	* window.c (Fwindow_parameter, Fset_window_parameter):
 5636 	Accept any window as argument (Bug#12452).
 5637 
 5638 2012-09-16  Jan Djärv  <jan.h.d@swipnet.se>
 5639 
 5640 	* nsfns.m (Fx_open_connection): Move initialization of ns_*_types
 5641 	to ns_term_init to avoid memory leak.
 5642 
 5643 	* nsterm.m (ns_update_begin): Initialize bp after lcokFocus, use
 5644 	explicit retain/release.
 5645 	(ns_term_init): Only allow one display.  Initialize outerpool and
 5646 	ns_*_types.
 5647 
 5648 2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
 5649 
 5650 	Port _setjmp fix to POSIXish hosts as well as Microsoft.
 5651 	* image.c (_setjmp) [!HAVE__SETJMP]: Restore definition, as
 5652 	it's needed on POSIXish hosts that lack _setjmp.  Attempt to solve
 5653 	the Microsoft problem in a different way, by altering ../nt/config.nt.
 5654 
 5655 2012-09-15  Eli Zaretskii  <eliz@gnu.org>
 5656 
 5657 	* w32xfns.c:
 5658 	* w32uniscribe.c:
 5659 	* w32term.c:
 5660 	* w32select.c:
 5661 	* w32reg.c:
 5662 	* w32proc.c:
 5663 	* w32menu.c:
 5664 	* w32inevt.c:
 5665 	* w32heap.c:
 5666 	* w32font.c:
 5667 	* w32fns.c:
 5668 	* w32console.c:
 5669 	* w32.c:
 5670 	* w16select.c: Remove inclusion of setjmp.h, as it is now included
 5671 	by lisp.h.  This completes removal of setjmp.h inclusion
 5672 	erroneously announced in the previous commit.  (Bug#12446)
 5673 
 5674 	* lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
 5675 	more accurate.
 5676 
 5677 	* image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
 5678 	not defined as a macro.  The latter happens on MS-Windows.
 5679 	(Bug#12446)
 5680 
 5681 2012-09-15  Paul Eggert  <eggert@cs.ucla.edu>
 5682 
 5683 	Port better to POSIX hosts lacking _setjmp (Bug#12446).
 5684 	* lisp.h: Include <setjmp.h> here, since we use its symbols here.
 5685 	Some instances of '#include <setjmp.h>' removed, if the
 5686 	only reason for the instance was because "lisp.h" was included.
 5687 	(sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
 5688 	Unless otherwise specified, replace all uses of jmp_buf, _setjmp,
 5689 	and _longjmp with the new symbols.  Emacs already uses _setjmp if
 5690 	available, so this change affects only POSIXish hosts that have
 5691 	sigsetjmp but not _setjmp, such as some versions of Solaris and
 5692 	Unixware.  (Also, POSIX-2008 marks _setjmp as obsolescent.)
 5693 	* image.c (_setjmp, _longjmp) [HAVE_PNG && !HAVE__SETJMP]: New macros.
 5694 	(png_load_body) [HAVE_PNG]:
 5695 	(PNG_LONGJMP) [HAVE_PNG && PNG_LIBPNG_VER < 10500]:
 5696 	(PNG_JMPBUF) [HAVE_PNG && PNG_LIBPNG_VER >= 10500]:
 5697 	Use _setjmp and _longjmp rather than sys_setjmp and sys_longjmp,
 5698 	since PNG requires jmp_buf.  This is the only exception to the
 5699 	general rule that we now use sys_setjmp and sys_longjmp.
 5700 	This exception is OK since this code does not change the signal
 5701 	mask or longjmp out of a signal handler.
 5702 
 5703 2012-09-14  Paul Eggert  <eggert@cs.ucla.edu>
 5704 
 5705 	* alloc.c [!SYSTEM_MALLOC && !SYNC_INPUT && HAVE_PTHREAD]:
 5706 	Include "syssignal.h", for 'main_thread'.
 5707 
 5708 2012-09-14  Dmitry Antipov  <dmantipov@yandex.ru>
 5709 
 5710 	Avoid out-of-range marker position (Bug#12426).
 5711 	* insdel.c (replace_range, replace_range_2):
 5712 	Adjust markers before overlays, as suggested by comments.
 5713 	(insert_1_both, insert_from_buffer_1, adjust_after_replace):
 5714 	Remove redundant check before calling offset_intervals.
 5715 
 5716 2012-09-14  Martin Rudalics  <rudalics@gmx.at>
 5717 
 5718 	* xdisp.c (Fformat_mode_line): Unconditionally save/restore
 5719 	current buffer (Bug#12387).
 5720 
 5721 2012-09-14  Juanma Barranquero  <lekktu@gmail.com>
 5722 
 5723 	* makefile.w32-in ($(BLD)/alloc.$(O)): Update dependencies.
 5724 
 5725 2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
 5726 
 5727 	Use a more backwards-compatible timer format (Bug#12430).
 5728 	* keyboard.c (decode_timer): Get PSECS from the 8th (origin-0)
 5729 	vector element, not from the 4th, since PSECS is now at the end.
 5730 	(Fcurrent_idle_time): Doc fix.
 5731 
 5732 2012-09-13  Dmitry Antipov  <dmantipov@yandex.ru>
 5733 
 5734 	Function to mark objects and remove killed buffers at once.
 5735 	* alloc.c (discard_killed_buffers): Rename to ...
 5736 	(mark_discard_killed buffers) ... new name.  Add marking
 5737 	of remaining objects.  Fix comment.  Adjust users.
 5738 	(mark_object): Do not touch frame buffer lists here.
 5739 	* frame.c (delete_frame): Reset frame buffer lists here.
 5740 
 5741 2012-09-13  Paul Eggert  <eggert@cs.ucla.edu>
 5742 
 5743 	Better workaround for GNOME bug when --enable-gcc-warnings.
 5744 	* emacsgtkfixed.c (G_STATIC_ASSERT): Remove, undoing last change.
 5745 	Instead, disable -Wunused-local-typedefs.  See Dmitry Antipov in
 5746 	<https://lists.gnu.org/r/emacs-devel/2012-09/msg00335.html>.
 5747 
 5748 	Simplify SIGIO usage (Bug#12408).
 5749 	The code that dealt with SIGIO was crufty and confusing, e.g., it
 5750 	played tricks like "#undef SIGIO" but these tricks were not used
 5751 	consistently.  Simplify mostly by not #undeffing standard symbols,
 5752 	e.g., use "defined USABLE_SIGIO" (our symbol, which we can define
 5753 	or not as we please) rather than "defined SIGIO" (standard symbol
 5754 	that we probably shouldn't #undef).
 5755 	* conf_post.h [USG5_4]: Do not include <sys/wait.h> here.
 5756 	Modules that need it can include it.
 5757 	[USG5_4 && emacs]: Likewise, do not include the streams stuff here.
 5758 	* dispextern.h (ignore_sigio): New decl.
 5759 	* emacs.c (shut_down_emacs): Invoke unrequest_sigio
 5760 	unconditionally, since it's now a no-op if !USABLE_SIGIO.
 5761 	* emacs.c (shut_down_emacs):
 5762 	* keyboard.c (kbd_buffer_store_event_hold):
 5763 	Use ignore_sigio rather than invoking 'signal' directly.
 5764 	* keyboard.c (USABLE_FIONREAD && USG5_4): Include <sys/filio.h>,
 5765 	for FIONREAD.
 5766 	(FIONREAD, SIGIO): Do not #undef.
 5767 	(tty_read_avail_input): Use #error rather than a syntax error.
 5768 	* process.c [USG5_4]: Include <sys/stream.h> and <sys/stropts.h>,
 5769 	for I_PIPE, used by SETUP_SLAVE_PTY.
 5770 	(DATAGRAM_SOCKETS): Simplify defn, based on USABLE_FIONREAD.
 5771 	* sysdep.c (croak): Remove; no longer needed.  This bit of
 5772 	temporary code, with Fred N. Fish's comment that it's temporary,
 5773 	has been in Emacs since at least 1992!
 5774 	(init_sigio, reset_sigio, request_sigio, unrequest_sigio):
 5775 	Arrange for them to be no-ops in all cases when ! USABLE_SIGIO.
 5776 	* syssignal.h (croak): Remove decl.
 5777 	(SIGIO, SIGPOO, SIGAIO, SIGPTY): Do not #undef; that's too fragile.
 5778 	* systty.h [!NO_TERMIO]: Do not include <termio.h>; no longer needed
 5779 	now that we're termios-only.
 5780 	(FIONREAD, ASYNC) [BROKEN_FIONREAD]: Do not #undef.
 5781 	* term.c (dissociate_if_controlling_tty): Use #error rather than
 5782 	a run-time error.
 5783 
 5784 	Work around GCC and GNOME bugs when --enable-gcc-warnings.
 5785 	* emacsgtkfixed.c (G_STATIC_ASSERT): Redefine to use 'verify',
 5786 	to work around GNOME bug 683906.
 5787 	* image.c (jpeg_load_body) [HAVE_JPEG && lint]: Pacify gcc -Wclobber.
 5788 	(struct my_jpeg_error_mgr) [HAVE_JPEG && lint]: New member fp.
 5789 	This works around GCC bug 54561.
 5790 
 5791 2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
 5792 
 5793 	More fixes for 'volatile' and setjmp/longjmp.
 5794 	* eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
 5795 	* image.c (struct png_load_context) [HAVE_PNG]: New type.
 5796 	(png_load_body) [HAVE_PNG]:
 5797 	(jpeg_load_body) [HAVE_JPEG]:
 5798 	New function, with most of the old parent function's body.
 5799 	(png_load) [HAVE_PNG]:
 5800 	(jpeg_load) [HAVE_JPEG]:
 5801 	Invoke the new function, to avoid longjmp munging our locals.
 5802 	(struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
 5803 	(my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
 5804 	longjmp is passed 2, as the C standard doesn't guarantee this.
 5805 	Instead, store the failure code into mgr->failure_code.
 5806 
 5807 2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 5808 
 5809 	* keyboard.c (read_char, requeued_events_pending_p, Finput_pending_p)
 5810 	(Fdiscard_input, quit_throw_to_read_char, init_keyboard)
 5811 	(syms_of_keyboard): Remove support for unread-command-char.
 5812 
 5813 2012-09-12  Eli Zaretskii  <eliz@gnu.org>
 5814 
 5815 	* w32proc.c (sys_kill): If PID is our process ID and the signal is
 5816 	SIGABRT, call emacs_abort.  Avoids silently exiting upon assertion
 5817 	violation.  (Bug#12426)
 5818 
 5819 2012-09-12  Paul Eggert  <eggert@cs.ucla.edu>
 5820 
 5821 	* image.c (jpeg_memory_src): Don't assume string len fits in unsigned.
 5822 
 5823 2012-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 5824 
 5825 	* eval.c: Add `inhibit-debugger'.
 5826 	(Qinhibit_debugger): New symbol.
 5827 	(call_debugger): Bind it instead of Qdebug_on_error.
 5828 	(maybe_call_debugger): Test Vinhibit_debugger.
 5829 	(syms_of_eval): Define inhibit-debugger.
 5830 	* xdisp.c (set_message): Don't bind Qinhibit_debug_on_message.
 5831 	(syms_of_xdisp): Remove inhibit-debug-on-message.
 5832 
 5833 2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
 5834 
 5835 	Avoid _setjmp/_longjmp problems with local nonvolatile variables.
 5836 	If a nonvolatile local variable is written before a _longjmp to
 5837 	the frame containing the variable, and is read after the _longjmp,
 5838 	the value read is indeterminate.  Some local variables of type
 5839 	'struct handler' and 'struct catchtag' are used in this way, so
 5840 	mark each of their slots as volatile if the slot can be set before
 5841 	_longjmp and read afterwards.
 5842 	* lisp.h (struct handler): var and chosen_clause are now volatile.
 5843 	(struct catchtag): val, next, and pdlcount are now volatile.
 5844 
 5845 	* bidi.c (bidi_push_it, bidi_pop_it):
 5846 	* fns.c (copy_hash_table):
 5847 	* image.c (define_image_type):
 5848 	* keyboard.c (kbd_buffer_store_event_hold):
 5849 	* process.c (Fprocess_send_eof):
 5850 	* xfaces.c (x_create_gc) [HAVE_NS]:
 5851 	* xgselect.c (xg_select):
 5852 	Prefer assignment to memcpy when either will do.
 5853 
 5854 	* alloc.c (discard_killed_buffers): Tune and simplify a bit.
 5855 	Use pointer-to-a-pointer to simplify and avoid a NILP check each
 5856 	time an item is removed.  No need to mark this function 'inline';
 5857 	the compiler knows better than we do.
 5858 
 5859 2012-09-11  Jan Djärv  <jan.h.d@swipnet.se>
 5860 
 5861 	* nsterm.m (ns_judge_scroll_bars): Pass NO to updateFrameSize.
 5862 	(updateFrameSize:): Add delay parameter to updateFrameSize, send it
 5863 	to change_frame_size (Bug#12388).
 5864 	(windowDidResize:): Pass YES to updateFrameSize.
 5865 
 5866 	* nsterm.h: Add delay parameter to updateFrameSize.
 5867 
 5868 2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
 5869 
 5870 	Discard killed buffers from deleted window and frame objects.
 5871 	This reduces an amount of references to killed buffers and
 5872 	helps GC to reclaim them faster.
 5873 	* alloc.c (discard_killed_buffers): New function.
 5874 	(mark_object): Use it for deleted windows and frames.
 5875 	(mark_object): If symbol's value is set up for a killed buffer
 5876 	or deleted frame, restore its global binding.
 5877 	* data.c (swap_in_global_binding): Add GC notice.
 5878 	(swap_in_symval_forwarding): Use convenient set_blv_where.
 5879 	* window.c (wset_next_buffers, wset_prev_buffers): Move ...
 5880 	* window.h: ... to here.
 5881 
 5882 2012-09-11  Dmitry Antipov  <dmantipov@yandex.ru>
 5883 
 5884 	Convenient macro to check whether the buffer is live.
 5885 	* buffer.h (BUFFER_LIVE_P): New macro.
 5886 	* alloc.c, buffer.c, editfns.c, insdel.c, lread.c, marker.c:
 5887 	* minibuf.c, print.c, process.c, window.c, xdisp.c: Use it.
 5888 
 5889 2012-09-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 5890 
 5891 	* xdisp.c (right_overwritten, right_overwriting): Also handle gstring
 5892 	composition cases (Bug#12364).
 5893 
 5894 	* xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
 5895 	overhang of succeeding glyphs overlapping box cursor.
 5896 
 5897 	* w32term.c (x_draw_glyph_string): Likewise.
 5898 
 5899 2012-09-11  Paul Eggert  <eggert@cs.ucla.edu>
 5900 
 5901 	Simplify, document, and port floating-point (Bug#12381).
 5902 	The porting part of this patch fixes bugs on non-IEEE platforms
 5903 	with frexp, ldexp, logb.
 5904 	* data.c, lisp.h (Qdomain_error, Qsingularity_error, Qunderflow_error):
 5905 	Now static.
 5906 	* floatfns.c: Simplify discussion of functions that Emacs doesn't
 5907 	support, by removing commented-out code and briefly listing the
 5908 	C89 functions excluded.  The commented-out stuff was confusing
 5909 	maintenance, e.g., we thought we needed cbrt but it was commented out.
 5910 	(logb): Remove decl; no longer needed.
 5911 	(isfinite): New macro, if not already supplied.
 5912 	(isnan): Don't replace any existing macro.
 5913 	(Ffrexp, Fldexp): Define even if !HAVE_COPYSIGN, as frexp and ldexp
 5914 	are present on all C89 platforms.
 5915 	(Ffrexp): Do not special-case zero, as frexp does the right thing
 5916 	for that case.
 5917 	(Flogb): Do not use logb, as it doesn't have the desired meaning
 5918 	on hosts that use non-base-2 floating point.  Instead, stick with
 5919 	frexp, which is C89 anyway.  Do not pass an infinity or a NaN to
 5920 	frexp, to avoid getting an unspecified result.
 5921 
 5922 	* xdisp.c (Qinhibit_debug_on_message): Now static.
 5923 
 5924 2012-09-10  Jan Djärv  <jan.h.d@swipnet.se>
 5925 
 5926 	* nsterm.m (ns_update_begin): Set clip path to whole view by using
 5927 	NSBezierPath (Bug#12131).
 5928 
 5929 2012-09-10  Chong Yidong  <cyd@gnu.org>
 5930 
 5931 	* fns.c (Fdelq, Fdelete): Doc fix.
 5932 
 5933 2012-09-10  Paul Eggert  <eggert@cs.ucla.edu>
 5934 
 5935 	* lisp.h (XSETINT, XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL)
 5936 	(XSETFLOAT, XSETMISC): Parenthesize macro bodies.
 5937 
 5938 2012-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 5939 
 5940 	* lisp.h (make_lisp_ptr): New macro to replace XSET.
 5941 	(XSETCONS, XSETVECTOR, XSETSTRING, XSETSYMBOL, XSETFLOAT, XSETMISC):
 5942 	Use it.
 5943 
 5944 2012-09-09  Eli Zaretskii  <eliz@gnu.org>
 5945 
 5946 	* fringe.c (draw_fringe_bitmap_1): Don't reduce the width of the
 5947 	left fringe if the window has a left margin.  This avoids leaving
 5948 	traces of the cursor because its leftmost pixel is not drawn over.
 5949 
 5950 	* dispnew.c (update_window_line): When the left margin area of a
 5951 	screen line is updated, set the redraw_fringe_bitmaps_p flag of
 5952 	that screen line.  (Bug#12277)
 5953 
 5954 2012-09-09  Paul Eggert  <eggert@cs.ucla.edu>
 5955 
 5956 	Assume C89 or later for math functions (Bug#12381).
 5957 	This simplifies the code, and makes it a bit smaller and faster,
 5958 	and (most important) makes it easier to clean up signal handling
 5959 	since we can stop worring about floating-point exceptions in
 5960 	library code.  That was a problem before C89, but the problem
 5961 	went away many years ago on all practical Emacs targets.
 5962 	* data.c, image.c, lread.c, print.c:
 5963 	Don't include <math.h>; no longer needed.
 5964 	* data.c, floatfns.c (IEEE_FLOATING_POINT): Don't worry that it
 5965 	might be autoconfigured, as that never happens.
 5966 	* data.c (fmod):
 5967 	* doprnt.c (DBL_MAX_10_EXP):
 5968 	* print.c (DBL_DIG):
 5969 	Remove.  C89 or later always defines these.
 5970 	* floatfns.c (HAVE_MATHERR, FLOAT_CHECK_ERRNO, FLOAT_CHECK_DOMAIN)
 5971 	(in_float, float_error_arg, float_error_arg2, float_error_fn_name)
 5972 	(arith_error, domain_error, domain_error2):
 5973 	Remove all this pre-C89 cruft.  Do not include <errno.h> as that's
 5974 	no longer needed -- we simply return what C returns.  All uses removed.
 5975 	(IN_FLOAT, IN_FLOAT2): Remove.  All uses replaced with
 5976 	the wrapped code.
 5977 	(FLOAT_TO_INT, FLOAT_TO_INT2, range_error, range_error2):
 5978 	Remove.  All uses expanded, as these macros are no longer used
 5979 	more than once and are now more trouble than they're worth.
 5980 	(Ftan): Use tan, not sin / cos.
 5981 	(Flogb): Assume C89 frexp.
 5982 	(fmod_float): Assume C89 fmod.
 5983 	(matherr) [HAVE_MATHERR]: Remove; no longer needed.
 5984 	(init_floatfns): Remove.  All uses removed.
 5985 
 5986 2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
 5987 
 5988 	* nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Take back
 5989 	compositeToPoint for OSX < 10.6 (Bug#12390).
 5990 
 5991 2012-09-08  Paul Eggert  <eggert@cs.ucla.edu>
 5992 
 5993 	* floatfns.c (Ftan): Use tan (x), not (sin (x) / cos (x)).
 5994 	This produces more-accurate results.
 5995 
 5996 2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
 5997 
 5998 	* nsterm.m (updateFrameSize): Call setFrame: on the view when size
 5999 	changes (Bug#12088).
 6000 
 6001 2012-09-08  Chong Yidong  <cyd@gnu.org>
 6002 
 6003 	* syntax.c (Fstring_to_syntax): Doc fix.
 6004 
 6005 2012-09-08  Jan Djärv  <jan.h.d@swipnet.se>
 6006 
 6007 	* nsterm.m (ns_clip_to_row): Remove code that deals with drawing fringe
 6008 	in the internal border.
 6009 	(x_set_window_size): Remove static variables and their usage.
 6010 	(ns_redraw_scroll_bars): Fix NSTRACE arg.
 6011 	(ns_after_update_window_line, ns_draw_fringe_bitmap):
 6012 	Remove fringe/internal border adjustment (Bug#11052).
 6013 	(ns_draw_fringe_bitmap): Make code more like other terms (xterm.c).
 6014 	(ns_draw_window_cursor): Remove fringe/internal border adjustment.
 6015 	(ns_fix_rect_ibw): Remove.
 6016 	(ns_get_glyph_string_clip_rect): Remove call to ns_fix_rect_ibw.
 6017 	(ns_dumpglyphs_box_or_relief): Ditto.
 6018 	(ns_maybe_dumpglyphs_background): Remove fringe/internal border
 6019 	adjustment.
 6020 	(ns_dumpglyphs_image): Ditto.
 6021 	(ns_dumpglyphs_stretch): Fix coding style.  Remove fringe/internal
 6022 	border adjustment.
 6023 	(ns_set_vertical_scroll_bar): Remove variables barOnVeryLeft/Right and
 6024 	their usage.  Add fringe_extended_p and its use as in other terms.
 6025 	(ns_judge_scroll_bars): Code style fix.  Call updateFrameSize if
 6026 	scroll bar was removed.
 6027 	(updateFrameSize): New function.
 6028 	(windowDidResize): Move code to updateFrameSize and call it.
 6029 
 6030 	* nsterm.h (EmacsView): Add updateFrameSize.
 6031 
 6032 2012-09-07  Chong Yidong  <cyd@gnu.org>
 6033 
 6034 	* textprop.c (Fget_text_property): Minor doc fix (Bug#12323).
 6035 
 6036 	* data.c (Flocal_variable_if_set_p): Doc fix (Bug#10713).
 6037 
 6038 2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 6039 
 6040 	More signal-handler cleanup (Bug#12327).
 6041 	* emacs.c (main): Convert three 'signal' calls to 'sigaction' calls.
 6042 	Problem introduced when merging patches.  Noted by Eli Zaretskii in
 6043 	<https://bugs.gnu.org/12327#67>.
 6044 	* floatfns.c: Comment fix.
 6045 	* lisp.h (force_auto_save_soon): Declare regardless of SIGDANGER.
 6046 	SIGDANGER might not be in scope so "#ifdef SIGDANGER" is not right,
 6047 	and anyway the declaration is harmless even if SIGDANGER is not defined.
 6048 	* syssignal.h (SIGIO): Also #undef if (! defined FIONREAD ||
 6049 	defined BROKEN_FIONREAD).  systty.h formerly did this, but other
 6050 	source files not surprisingly expected syssignal.h to define, or
 6051 	not define, SIGIO, and it's cleaner to do it that way, for consistency.
 6052 	Include <sys/ioctl.h>, for FIONREAD.
 6053 	* systty.h (SIGIO): Do not #undef here; it's now syssignal.h's job.
 6054 	This eliminates a problem whereby other files mysteriously had
 6055 	to include "syssignal.h" before including "systty.h" if they
 6056 	wanted to use "#ifdef SIGIO".
 6057 
 6058 2012-09-07  Eli Zaretskii  <eliz@gnu.org>
 6059 
 6060 	* w32proc.c (sigaction): New function, emulates Posix 'sigaction'.
 6061 
 6062 	* w32.c (sigemptyset): Empty the set.
 6063 	(sigsetmask, sigmask, sigblock, sigunblock): Remove unused functions.
 6064 
 6065 	* alloc.c [ENABLE_CHECKING]: Include signal.h, since we need SIGABRT.
 6066 
 6067 2012-09-07  Dmitry Antipov  <dmantipov@yandex.ru>
 6068 
 6069 	* alloc.c (mark_buffer): Revert unsafe marking optimization.
 6070 	(mark_object): Likewise for frame objects.
 6071 
 6072 2012-09-07  Paul Eggert  <eggert@cs.ucla.edu>
 6073 
 6074 	* syssignal.h (handle_on_main_thread): Always declare,
 6075 	even if FORWARD_SIGNAL_TO_MAIN_THREAD is not defined.
 6076 	This ports to platforms without HAVE_PTHREAD.
 6077 
 6078 2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 6079 
 6080 	Signal-handler cleanup (Bug#12327).
 6081 	Emacs's signal handlers were written in the old 4.2BSD style with
 6082 	sigblock and sigmask and so forth, and this led to some
 6083 	inefficiencies and confusion.  Rewrite these to use
 6084 	pthread_sigmask etc. without copying signal sets around.  Also,
 6085 	get rid of the confusing macros 'SIGNAL_THREAD_CHECK' and
 6086 	'signal', and instead use functions that do not attempt to take
 6087 	over the system name space.  This patch causes Emacs's text
 6088 	segment to shrink by 0.7% on my platform, Fedora 17 x86-64.
 6089 	* alloc.c, emacsgtkfixed.c, nsfns.m, widget.c, xmenu.c:
 6090 	Do not include <signal.h> or "syssignal.h", as these
 6091 	modules do not use signals.
 6092 	* atimer.c, callproc.c, data.c, dispnew.c, emacs.c, floatfns.c:
 6093 	* gtkutil.c, keyboard.c, process.c, sound.c, sysdep.c, term.c, xterm.c:
 6094 	Do not include <signal.h>, as "syssignal.h" does that for us now.
 6095 	* atimer.c (sigmask_atimers): New function.
 6096 	(block_atimers, unblock_atimers): New functions,
 6097 	replacing the old macros BLOCK_ATIMERS and UNBLOCK_ATIMERS.
 6098 	All uses replaced.
 6099 	* conf_post.h [SIGNAL_H_AHB]: Do not include <signal.h>;
 6100 	no longer needed here.
 6101 	* emacs.c (main): Inspect existing signal handler with sigaction,
 6102 	so that there's no need to block and unblock SIGHUP.
 6103 	* sysdep.c (struct save_signal): New member 'action', replacing
 6104 	old member 'handler'.
 6105 	(save_signal_handlers, restore_signal_handlers):
 6106 	Use sigaction instead of 'signal' to save and restore.
 6107 	(get_set_sighandler, set_sighandler) [!WINDOWSNT]:
 6108 	New function.  All users of 'signal' modified to use set_sighandler
 6109 	if they're writeonly, and to use sys_signal if they're read+write.
 6110 	(emacs_sigaction_init, forwarded_signal): New functions.
 6111 	(sys_signal): Remove.  All uses replaced by calls to sigaction
 6112 	and emacs_sigaction_init, or by direct calls to 'signal'.
 6113 	(sys_sigmask) [!__GNUC__]: Remove; no longer needed.
 6114 	(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove;
 6115 	all uses replaced by pthread_sigmask etc. calls.
 6116 	* syssignal.h: Include <signal.h>.
 6117 	(emacs_sigaction_init, forwarded_signal): New decls.
 6118 	(SIGMASKTYPE): Remove.  All uses replaced by its definiens, sigset_t.
 6119 	(SIGEMPTYMASK): Remove; all uses replaced by its definiens, empty_mask.
 6120 	(sigmask, sys_sigmask): Remove; no longer needed.
 6121 	(sigpause): Remove.  All uses replaced by its definiens, sigsuspend.
 6122 	(sigblock, sigunblock, sigfree):
 6123 	(sigsetmask) [!defined sigsetmask]:
 6124 	Remove.  All uses replaced by pthread_sigmask.
 6125 	(signal): Remove.  Its remaining uses (with SIG_DFL and SIG_IGN)
 6126 	no longer need to be replaced, and its typical old uses
 6127 	are now done via emacs_sigaction_init and sigaction.
 6128 	(sys_sigblock, sys_sigunblock, sys_sigsetmask): Remove decls.
 6129 	(sys_sigdel): Remove; unused.
 6130 	(NSIG): Remove a FIXME; the code's fine.  Remove an unnecessary ifdef.
 6131 
 6132 2012-09-06  Eli Zaretskii  <eliz@gnu.org>
 6133 
 6134 	* process.c (CAN_HANDLE_MULTIPLE_CHILDREN): Fix a typo that broke
 6135 	SIGCHLD handling on systems that don't have WNOHANG.  (Bug#12327)
 6136 
 6137 2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
 6138 
 6139 	Explicitly mark buffer_defaults and buffer_local_symbols.
 6140 	* alloc.c (Fgarbage_collect): Mark buffer_defaults and
 6141 	mark_local_symbols here.
 6142 	(mark_object): If GC_CHECK_MARKED_OBJECTS, simplify checking
 6143 	since special buffers aren't marked here any more.
 6144 	(allocate_buffer): Chain new buffer with all_buffers here...
 6145 	* buffer.c (Fget_buffer_create, Fmake_indirect_buffer): ...and
 6146 	not here.
 6147 	(Vbuffer_defaults, Vbuffer_local_symbols): Remove.
 6148 	(syms_of_buffer): Remove staticpro of the above.
 6149 	(init_buffer_once): Set names for buffer_defaults and
 6150 	buffer_local_symbols.
 6151 
 6152 2012-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 6153 
 6154 	Use bool for booleans in font-related modules.
 6155 	* font.c (font_intern_prop, font_style_to_value)
 6156 	(font_style_symbolic, font_parse_xlfd, font_parse_fcname)
 6157 	(generate_otf_features, font_check_otf_features, font_check_otf)
 6158 	(font_match_p, font_list_entities, font_at):
 6159 	* fontset.c (fontset_id_valid_p, reorder_font_vector
 6160 	(fontset_find_font, Fset_fontset_font)
 6161 	(face_suitable_for_char_p) [0]:
 6162 	* ftfont.c (fc_initialized, ftfont_get_open_type_spec)
 6163 	(ftfont_open, ftfont_text_extents, ftfont_check_otf):
 6164 	(m17n_flt_initialized, ftfont_shape_by_flt):
 6165 	* ftxfont.c (ftxfont_draw_bitmap, ftxfont_draw):
 6166 	* nsfont.m (nsfont_draw):
 6167 	* w32font.c (w32font_draw):
 6168 	* w32term.c (x_draw_glyphless_glyph_string_foreground):
 6169 	Use bool for booleans.
 6170 	* font.h: Adjust to above API changes.
 6171 	(struct font, struct font_driver, struct font_driver_list):
 6172 	Use bool for booleans.
 6173 	(struct font): Remove useless member encoding_type.
 6174 	All users removed.
 6175 	* fontset.c, xftfont.c: Omit unnecessary static decls.
 6176 
 6177 2012-09-06  Dmitry Antipov  <dmantipov@yandex.ru>
 6178 
 6179 	* alloc.c (mark_object): Revert window marking code
 6180 	since it's unsafe for the Fset_window_configuration.
 6181 
 6182 2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 6183 
 6184 	Fix race conditions with signal handlers and errno (Bug#12327).
 6185 	Be more systematic about preserving errno whenever a signal
 6186 	handler returns, even if it's not in the main thread.  Do this by
 6187 	renaming signal handlers to distinguish between signal delivery
 6188 	and signal handling.  All uses changed.
 6189 	* atimer.c (deliver_alarm_signal): Rename from alarm_signal_handler.
 6190 	* data.c (deliver_arith_signal): Rename from arith_error.
 6191 	* dispnew.c (deliver_window_change_signal): Rename from
 6192 	window_change_signal.
 6193 	* emacs.c (deliver_error_signal): Rename from fatal_error_signal.
 6194 	(deliver_danger_signal) [SIGDANGER]: Rename from memory_warning_signal.
 6195 	* keyboard.c (deliver_input_available_signal): Rename from
 6196 	input_available_signal.
 6197 	(deliver_user_signal): Rename from handle_user_signal.
 6198 	(deliver_interrupt_signal): Rename from interrupt_signal.
 6199 	* process.c (deliver_pipe_signal): Rename from send_process_trap.
 6200 	(deliver_child_signal): Rename from sigchld_handler.
 6201 	* atimer.c (handle_alarm_signal):
 6202 	* data.c (handle_arith_signal):
 6203 	* dispnew.c (handle_window_change_signal):
 6204 	* emacs.c (handle_fatal_signal, handle_danger_signal):
 6205 	* keyboard.c (handle_input_available_signal):
 6206 	* keyboard.c (handle_user_signal, handle_interrupt_signal):
 6207 	* process.c (handle_pipe_signal, handle_child_signal):
 6208 	New functions, with the actual signal-handling code taken from the
 6209 	original respective signal handlers, sans the sporadic attempts to
 6210 	preserve errno, since that's now done by handle_on_main_thread.
 6211 	* atimer.c (alarm_signal_handler): Remove unnecessary decl.
 6212 	* emacs.c, floatfns.c, lisp.h: Remove unused FLOAT_CATCH_SIGKILL cruft.
 6213 	* emacs.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
 6214 	Move to sysdep.c.
 6215 	(main) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
 6216 	Move initialization of main_thread to sysdep.c's init_signals.
 6217 	* process.c (waitpid) [!WNOHANG]: #define to wait; that's good enough for
 6218 	our usage, and simplifies the mainline code.
 6219 	(record_child_status_change): New static function, as a helper
 6220 	for handle_child_signal, and with most of the old child handler's
 6221 	contents.
 6222 	(CAN_HANDLE_MULTIPLE_CHILDREN): New constant.
 6223 	(handle_child_signal): Use the above.
 6224 	* sysdep.c (main_thread) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
 6225 	Moved here from emacs.c.
 6226 	(init_signals) [FORWARD_SIGNAL_TO_MAIN_THREAD]: Initialize it;
 6227 	code moved here from emacs.c's main function.
 6228 	* sysdep.c, syssignal.h (handle_on_main_thread): New function,
 6229 	replacing the old SIGNAL_THREAD_CHECK.  All uses changed.
 6230 	This lets callers save and restore errno properly.
 6231 
 6232 2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
 6233 
 6234 	Remove redundant or unused things here and there.
 6235 	* lisp.h (CYCLE_CHECK, CHAR_TABLE_TRANSLATE): Remove.
 6236 	* conf_post.h (RE_TRANSLATE): Use char_table_translate.
 6237 	* editfns.c (Fcompare_buffer_substrings): Likewise.
 6238 	* frame.h (struct terminal, struct font_driver_list):
 6239 	Remove redundant declarations.
 6240 	* window.h (Qleft, Qright): Likewise.
 6241 
 6242 2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
 6243 
 6244 	Do not mark objects from deleted buffers, windows and frames.
 6245 	* alloc.c (mark_buffer): Mark just the buffer if it is dead.
 6246 	(mark_object): Likewise for windows and frames.
 6247 
 6248 2012-09-05  Dmitry Antipov  <dmantipov@yandex.ru>
 6249 
 6250 	* alloc.c (valid_lisp_object_p): Treat killed buffers,
 6251 	buffer_defaults and buffer_local_symbols as valid objects.
 6252 	Return special value to denote them.
 6253 
 6254 2012-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 6255 
 6256 	* fileio.c, filelock.c, floatfns.c, fns.c: Use bool for boolean.
 6257 	* fileio.c (auto_saving, auto_save_error_occurred, make_temp_name)
 6258 	(Fexpand_file_name, barf_or_query_if_file_exists, Fcopy_file)
 6259 	(file_name_absolute_p, Fsubstitute_in_file_name):
 6260 	(check_executable, check_writable, Ffile_accessible_directory_p)
 6261 	(Fset_file_selinux_context, Fdefault_file_modes)
 6262 	(Finsert_file_contents, choose_write_coding_system)
 6263 	(Fwrite_region, build_annotations, a_write, e_write)
 6264 	(Fdo_auto_save):
 6265 	* filelock.c (boot_time_initialized, get_boot_time)
 6266 	(get_boot_time_1, lock_file_1, within_one_second):
 6267 	* floatfns.c (in_float):
 6268 	* fns.c (concat, internal_equal, Frequire, base64_encode_1)
 6269 	(base64_decode_1, cmpfn_eql, cmpfn_user_defined)
 6270 	(sweep_weak_table, sweep_weak_hash_tables, secure_hash):
 6271 	* lisp.h (struct Lisp_Hash_Table.cmpfn):
 6272 	* window.c (compare_window_configurations):
 6273 	Use bool for booleans.
 6274 	* fileio.c (auto_saving_dir_umask, auto_saving_mode_bits)
 6275 	(Fdefault_file_modes): Now mode_t, not int, for modes.
 6276 	(Fdo_auto_save): Set a boolean to 1 rather than using ++.
 6277 	(internal_delete_file): Now returns void, not a (boolean) int,
 6278 	since nobody was looking at the return value.
 6279 	* lisp.h, window.h: Adjust to above API changes.
 6280 
 6281 	* xdisp.c (set_message): Simplify and reindent last change.
 6282 
 6283 2012-09-05  Juanma Barranquero  <lekktu@gmail.com>
 6284 
 6285 	* makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
 6286 
 6287 2012-09-04  Lars Ingebrigtsen  <larsi@gnus.org>
 6288 
 6289 	* eval.c (call_debugger): Make the function non-static so that we
 6290 	can call it from set_message.
 6291 
 6292 	* xdisp.c (set_message): Implement the new variable `debug-on-message'.
 6293 	(syms_of_xdisp): Defvar it and `inhibit-debug-on-message'.
 6294 
 6295 2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 6296 
 6297 	Give more-useful info on a fatal error (Bug#12328).
 6298 	* alloc.c [ENABLE_CHECKING]: Do not include <execinfo.h>.
 6299 	(die) [ENABLE_CHECKING]: Call fatal_error_backtrace instead
 6300 	of doing the work ourselves.
 6301 	* emacs.c (fatal_error_signal): Let fatal_error_backtrace
 6302 	do most of the work.
 6303 	(fatal_error_backtrace): New function, taken from the guts
 6304 	of the old fatal_error_signal, but with a new option to output
 6305 	a backtrace.
 6306 	(shut_down_emacs) [!DOS_NT]: Use strsignal to give more-useful
 6307 	info about the signal than just its number.
 6308 	* lisp.h (fatal_error_backtrace, emacs_backtrace): New decls.
 6309 	* sysdep.c: Include <execinfo.h>
 6310 	(emacs_backtrace): New function, taken partly from the previous
 6311 	code of the 'die' function.
 6312 	(emacs_abort): Call fatal_error_backtrace rather than abort.
 6313 
 6314 2012-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 6315 
 6316 	* lread.c (readevalloop): Call internal-macroexpand-for-load to perform
 6317 	eager (load-time) macro-expansion.
 6318 	* lisp.mk (lisp): Add macroexp.
 6319 
 6320 2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 6321 
 6322 	Simplify redefinition of 'abort' (Bug#12316).
 6323 	Do not try to redefine the 'abort' function.  Instead, redo
 6324 	the code so that it calls 'emacs_abort' rather than 'abort'.
 6325 	This removes the need for the NO_ABORT configure-time macro
 6326 	and makes it easier to change the abort code to do a backtrace.
 6327 	* .gdbinit: Just stop at emacs_abort, not at w32_abort or abort.
 6328 	* emacs.c (abort) [!DOS_NT && !NO_ABORT]:
 6329 	Remove; sysdep.c's emacs_abort now takes its place.
 6330 	* lisp.h (emacs_abort): New decl.  All calls from Emacs code to
 6331 	'abort' changed to use 'emacs_abort'.
 6332 	* msdos.c (dos_abort) [defined abort]: Remove; not used.
 6333 	(abort) [!defined abort]: Rename to ...
 6334 	(emacs_abort): ... new name.
 6335 	* sysdep.c (emacs_abort) [!HAVE_NTGUI]: New function, taking
 6336 	the place of the old 'abort' in emacs.c.
 6337 	* w32.c, w32fns.c (abort): Do not #undef.
 6338 	* w32.c (emacs_abort): Rename from w32_abort.
 6339 
 6340 2012-09-04  Eli Zaretskii  <eliz@gnu.org>
 6341 
 6342 	* w32uniscribe.c (uniscribe_shape): Reverse the sign of
 6343 	offsets[j].dv, since the y axis of the screen coordinates points
 6344 	down, while the y axis of the font definition coordinates points
 6345 	up.  This fixes display of Arabic diacritics such as KASRA and
 6346 	KASRATAN.  (Bug#11860)
 6347 
 6348 2012-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 6349 
 6350 	Be more systematic about _setjmp vs setjmp.
 6351 	* alloc.c (test_setjmp, mark_stack):
 6352 	* image.c (PNG_LONGJMP) [PNG_LIBPNG_VER < 10500]:
 6353 	(PNG_JMPBUF) [! (PNG_LIBPNG_VER < 10500)]:
 6354 	(png_load, my_error_exit, jpeg_load):
 6355 	* process.c (send_process_trap, send_process):
 6356 	Uniformly prefer _setjmp and _longjmp to setjmp and longjmp.
 6357 	The underscored versions are up to 30x faster on some hosts.
 6358 	Formerly, the code used setjmp+longjmp sometimes and
 6359 	_setjmp+_longjmp at other times, with no particular reason to
 6360 	prefer setjmp+longjmp.
 6361 
 6362 2012-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 6363 
 6364 	Fix minor problem found by static checking.
 6365 	* buffer.c (Fdelete_all_overlays): Return nil.
 6366 
 6367 2012-09-03  Martin Rudalics  <rudalics@gmx.at>
 6368 
 6369 	* buffer.c (Fdelete_all_overlays): New function.
 6370 
 6371 2012-09-03  Chong Yidong  <cyd@gnu.org>
 6372 
 6373 	* gtkutil.c: Add extern decl for Qxft.
 6374 
 6375 2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 6376 
 6377 	* emacs.c, eval.c: Use bool for boolean.
 6378 	* emacs.c (initialized, inhibit_window_system, running_asynch_code):
 6379 	(malloc_using_checking) [DOUG_LEA_MALLOC]:
 6380 	(display_arg) [HAVE_X_WINDOWS || HAVE_NS]:
 6381 	(noninteractive, no_site_lisp, fatal_error_in_progress, argmatch)
 6382 	(main, decode_env_path, Fdaemon_initialized):
 6383 	* eval.c (call_debugger, Finteractive_p, interactive_p):
 6384 	(unwind_to_catch, Fsignal, wants_debugger, skip_debugger)
 6385 	(maybe_call_debugger, Fbacktrace):
 6386 	* process.c (read_process_output, exec_sentinel):
 6387 	Use bool for booleans.
 6388 	* emacs.c (shut_down_emacs): Omit unused boolean argument NO_X.
 6389 	All callers changed.
 6390 	* eval.c (interactive_p): Omit always-true boolean argument
 6391 	EXCLUDE_SUBRS_P.  All callers changed.
 6392 	* dispextern.h, lisp.h: Reflect above API changes.
 6393 	* firstfile.c (dummy): Use the address of 'main', whose signature
 6394 	won't change, instead of the address of 'initialize', whose
 6395 	signature just changed from int to bool.
 6396 	* lisp.h (fatal_error_in_progress): New decl of boolean, moved here ...
 6397 	* msdos.c (fatal_error_in_progress): ... from here.
 6398 	* xdisp.c (redisplaying_p): Now a boolean.  Set it to 1 instead
 6399 	of incrementing it.
 6400 	(redisplay_internal, unwind_redisplay): Simply clear
 6401 	REDISPLAYING_P when unwinding, instead of saving its previous,
 6402 	always-false value and then restoring it.
 6403 
 6404 	Clean up some extern decls.
 6405 	Mostly, this hoists extern decls out of .c files and into .h files.
 6406 	That way, we're more likely to catch errors if the interfaces change.
 6407 	* alloc.c [USE_GTK]: Include "gtkutil.h" so that we need not
 6408 	declare xg_mark_data.
 6409 	* dispextern.h (x_frame_parm_handlers):
 6410 	* font.h (Qxft):
 6411 	* lisp.h (Qlexical_binding, Qinternal_interpreter_environment)
 6412 	(Qextra_light, Qlight, Qsemi_light, Qsemi_bold, Qbold, Qextra_bold)
 6413 	(Qultra_bold, Qoblique, Qitalic):
 6414 	Move extern decl here from .c file.
 6415 	* alloc.c (xg_mark_data) [USE_GTK]:
 6416 	* doc.c (Qclosure):
 6417 	* eval.c (Qlexical_binding):
 6418 	* fns.c (time) [!HAVE_UNISTD_H]:
 6419 	* gtkutil.c (Qxft, Qnormal, Qextra_light, Qlight, Qsemi_light)
 6420 	(Qsemi_bold, Qbold, Qextra_bold, Qultra_bold, Qoblique, Qitalic):
 6421 	* image.c (Vlibrary_cache, QCloaded_from) [HAVE_NTGUI]:
 6422 	* lread.c (Qinternal_interpreter_environment):
 6423 	* minibuf.c (Qbuffer):
 6424 	* process.c (QCfamily, QCfilter):
 6425 	* widget.c (free_frame_faces):
 6426 	* xfaces.c (free_frame_menubar) [USE_X_TOOLKIT]:
 6427 	* xfont.c (x_clear_errors):
 6428 	* xterm.c (x_frame_parm_handlers):
 6429 	Remove now-redundant extern decls.
 6430 	* keyboard.c, keyboard.h (ignore_mouse_drag_p) [USE_GTK || HAVE_NS]:
 6431 	* xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic):
 6432 	Now static.
 6433 	* xfaces.c: Remove unnecessary static decls.
 6434 	* xterm.c (updating_frame): Remove decl of nonexistent object.
 6435 
 6436 	* Makefile.in (gl-stamp): Don't scan $(SOME_MACHINE_OBJECTS)
 6437 	when building globals.h, as the objects that are not built on
 6438 	this host are not needed to compile C files on this host.
 6439 
 6440 2012-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 6441 
 6442 	* gtkutil.h: Remove prototype for x_wm_set_size_hint.
 6443 
 6444 	* frame.h: Add missing prototype for x_wm_set_size_hint.
 6445 
 6446 2012-09-02  Paul Eggert  <eggert@cs.ucla.edu>
 6447 
 6448 	* doc.c, editfns.c, insdel.c, intervals.c: Use bool for boolean.
 6449 	* doc.c (read_bytecode_char, get_doc_string, reread_doc_file)
 6450 	(Fdocumentation, Fdocumentation_property, Fsnarf_documentation)
 6451 	(Fsubstitute_command_keys):
 6452 	* editfns.c (region_limit, find_field, Fconstrain_to_field)
 6453 	(save_excursion_save, save_excursion_restore)
 6454 	(disassemble_lisp_time, decode_time_components, emacs_nmemftime)
 6455 	(format_time_string, general_insert_function)
 6456 	(make_buffer_string, make_buffer_string_both)
 6457 	(Fsubst_char_in_region, Ftranslate_region_internal, Fformat):
 6458 	* insdel.c (check_markers, gap_left, adjust_markers_for_insert)
 6459 	(copy_text, insert_1, insert_1_both, insert_from_string)
 6460 	(insert_from_string_before_markers, insert_from_string_1)
 6461 	(insert_from_buffer, insert_from_buffer_1, replace_range)
 6462 	(replace_range_2, del_range_1, del_range_byte, del_range_both)
 6463 	(del_range_2, modify_region):
 6464 	* intervals.c (intervals_equal, balance_possible_root_interval)
 6465 	(adjust_intervals_for_insertion, merge_properties_sticky)
 6466 	(graft_intervals_into_buffer, lookup_char_property)
 6467 	(adjust_for_invis_intang, set_point_both)
 6468 	(get_property_and_range, compare_string_intervals)
 6469 	(set_intervals_multibyte_1, set_intervals_multibyte):
 6470 	* keyboard.c (decode_timer):
 6471 	Use bool for boolean.
 6472 	* intervals.h, lisp.h, systime.h: Reflect above API changes.
 6473 	* editfns.c (struct info): Use 1-bit unsigned bitfields for booleans.
 6474 
 6475 2012-09-02  Chong Yidong  <cyd@gnu.org>
 6476 
 6477 	* keymap.c (push_key_description): Print M-TAB as C-M-i
 6478 	(Bug#11758).
 6479 
 6480 2012-09-02  Juanma Barranquero  <lekktu@gmail.com>
 6481 
 6482 	* makefile.w32-in (CCL_H, W32FONT_H): New macros.
 6483 	(ATIMER_H, FONT_H, $(BLD)/alloc.$(O), $(BLD)/callproc.$(O))
 6484 	($(BLD)/editfns.$(O), $(BLD)/ccl.$(O), $(BLD)/chartab.$(O))
 6485 	($(BLD)/coding.$(O), $(BLD)/sysdep.$(O), $(BLD)/fontset.$(O))
 6486 	($(BLD)/sysdep.$(O), $(BLD)/w32fns.$(O), $(BLD)/keyboard.$(O))
 6487 	($(BLD)/w32term.$(O), $(BLD)/w32menu.$(O), $(BLD)/process.$(O))
 6488 	($(BLD)/w32font.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
 6489 
 6490 2012-09-01  Eli Zaretskii  <eliz@gnu.org>
 6491 
 6492 	* w32uniscribe.c (uniscribe_shape): Handle correctly the case of
 6493 	more than one grapheme cluster passed to the shaper: compute the
 6494 	offset adjustment values separately for each cluster.  (Bug#11860)
 6495 
 6496 	* image.c: Restore mistakenly removed inclusion of w32.h.  Without
 6497 	it, GCC doesn't see prototypes of w32_delayed_load, and complains
 6498 	about implicit conversions from integer to pointer.
 6499 
 6500 2012-09-01  Daniel Colascione  <dancol@dancol.org>
 6501 
 6502 	* w32fns.c (x_display_info_for_name): Prevent crash if w32 window
 6503 	system used too early.
 6504 
 6505 2012-09-01  Paul Eggert  <eggert@cs.ucla.edu>
 6506 
 6507 	Better seed support for (random).
 6508 	* emacs.c (main): Call init_random.
 6509 	* fns.c (Frandom): Set the seed from a string argument, if given.
 6510 	Remove long-obsolete Gentzel cruft.
 6511 	* lisp.h, sysdep.c (seed_random): Now takes address and size, not long.
 6512 	(init_random): New function.
 6513 
 6514 2012-09-01  Daniel Colascione  <dancol@dancol.org>
 6515 
 6516 	* xterm.h: Add header guards.  Declare x_menubar_window_to_frame.
 6517 	Remove x_set_frame_alpha, x_bitmap_icon, x_make_frame_visible,
 6518 	x_make_frame_invisible, x_iconify_frame, x_free_frame_resources,
 6519 	x_wm_set_size_hint, x_query_colors, x_real_positions,
 6520 	x_set_menu_bar_lines, x_char_width, x_char_height, x_sync,
 6521 	x_set_tool_bar_lines, x_activate_menubar, and free_frame_menubar,
 6522 	all of which have been moved to common code.
 6523 
 6524 	* xfaces.c: Include TERM_HEADER instead of listing all possible
 6525 	window-system headers.
 6526 
 6527 	* w32xfns.c (x_sync): Correct definition of x_sync (a no-op here)
 6528 	to match header.
 6529 
 6530 	* w32term.h (FRAME_X_WINDOW): Use FRAME_W32_WINDOW instead of
 6531 	directly accessing frame internals.
 6532 
 6533 	* w32font.h: Include font.h.  Define syms_of_w32font and
 6534 	globals_of_w32font.
 6535 
 6536 	* process.c: Include TERM_HEADER instead of listing all possible
 6537 	window-system headers.
 6538 
 6539 	* nsterm.h: Remove declarations now in frame.h.
 6540 	Define FRAME_X_SCREEN, FRAME_X_VISUAL.
 6541 
 6542 	* menu.c: Include TERM_HEADER instead of listing all possible
 6543 	window-system headers.
 6544 
 6545 	* keyboard.h: Declare ignore_mouse_drag_p whenever we have a
 6546 	window system.
 6547 
 6548 	* keyboard.c: Include TERM_HEADER instead of listing all possible
 6549 	window-system headers.
 6550 
 6551 	* image.c: Include TERM_HEADER instead of listing all possible
 6552 	window-system headers.  Declare Vlibrary_cache when compiling for
 6553 	Windows.
 6554 
 6555 	* gtkutil.h (xg_list_node_): Include xterm.h to pick up needed
 6556 	window system declarations.
 6557 
 6558 	* frame.h: Move common functions here: set_frame_menubar,
 6559 	x_set_window_size, x_sync, x_get_focus_frame,
 6560 	x_set_mouse_position, x_set_mouse_pixel_position,
 6561 	x_make_frame_visible, x_make_frame_invisible, x_iconify_frame,
 6562 	x_char_width, x_char_height, x_pixel_width, x_pixel_height,
 6563 	x_set_frame_alpha, x_set_menu_bar_lines, x_set_tool_bar_lines,
 6564 	x_activate_menubar, x_real_positions, x_bitmap_icon,
 6565 	x_set_menu_bar_lines, free_frame_menubar, x_free_frame_resources,
 6566 	and x_query_colors.
 6567 
 6568 	* frame.c: Include TERM_HEADER instead of listing all possible
 6569 	window-system headers.
 6570 
 6571 	* font.c: Include TERM_HEADER instead of listing all possible
 6572 	window-system headers.
 6573 
 6574 	* emacs.c: Include TERM_HEADER.
 6575 
 6576 	* dispnew.c: Include TERM_HEADER instead of listing all possible
 6577 	window-system headers.
 6578 
 6579 	* ccl.h: Include character.h.
 6580 
 6581 	* Makefile.in: Define WINDOW_SYSTEM_OBJ to hold objects needed for
 6582 	the current window system; include in list of objects to link into
 6583 	Emacs.
 6584 
 6585 2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
 6586 
 6587 	Remove mark_ttys function and fix tty_display_info initialization.
 6588 	* lisp.h (mark_ttys): Remove prototype.
 6589 	* alloc.c (Fgarbage_collect): Remove redundant (and the only) call
 6590 	to mark_ttys because all possible values of 'top_frame' slot are
 6591 	the frames which are reachable from Vframe_list.
 6592 	* term.c (mark_ttys): Remove.
 6593 	(init_tty): Safely initialize 'top_frame' slot with Qnil.
 6594 
 6595 2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
 6596 
 6597 	Change struct frame bitfields from unsigned char to unsigned.
 6598 	* frame.h (struct frame): Change type of 'display_preempted',
 6599 	'visible', 'iconified', 'has_minibuffer', 'wants_modeline',
 6600 	'auto_raise', 'auto_lower', 'no_split', 'explicit_name',
 6601 	'window_sizes_changed', 'mouse_moved' and 'pointer_invisible'
 6602 	bitfields from unsigned char to unsigned.
 6603 
 6604 2012-08-31  Dmitry Antipov  <dmantipov@yandex.ru>
 6605 
 6606 	Remove unused member of struct x_output and struct w32_output.
 6607 	* xterm.h (struct x_output): Remove unused field 'needs_exposure'.
 6608 	* w32term.h (struct w32_output): Likewise.
 6609 
 6610 2012-08-30  Jan Djärv  <jan.h.d@swipnet.se>
 6611 
 6612 	* gtkutil.c (x_wm_set_size_hint): Use 1 col for base_width so it
 6613 	does not become zero (Bug#12234).
 6614 
 6615 2012-08-30  Paul Eggert  <eggert@cs.ucla.edu>
 6616 
 6617 	* dispnew.c (update_frame_1): Pacify gcc -Wstrict-overflow
 6618 	for GCC 4.7.1 x86-64.
 6619 
 6620 2012-08-30  Glenn Morris  <rgm@gnu.org>
 6621 
 6622 	* lread.c (init_lread): For out-of-tree builds, only add the
 6623 	source directory's site-lisp dir to the load-path if it exists,
 6624 	consistent with in-tree builds.  (Bug#12302)
 6625 
 6626 2012-08-28  Jan Djärv  <jan.h.d@swipnet.se>
 6627 
 6628 	* nsmenu.m (initWithContentRect:styleMask:backing:defer:): Initialize
 6629 	button_values to NULL.  Call setStykeMask so dialogs get a close button.
 6630 	(windowShouldClose:): Set window_closed.
 6631 	(dealloc): New member, free button_values.
 6632 	(process_dialog:): Make member function.  Remove window argument,
 6633 	replace window with self.  Count buttons and allocate and store values
 6634 	in button_values.
 6635 	(addButton:value:row:): value is int with the name tag.  Call setTag
 6636 	with tag.  Remove return self, declare return value as void.
 6637 	(addString:row:): Remove return self, declare return value as void.
 6638 	(addSplit): Remove return self, declare return value as void.
 6639 	(clicked:): Remove return self, declare return value as void.
 6640 	Set dialog_return to button_values[seltag].  Code formatting change.
 6641 	(initFromContents:isQuestion:): Adjust call to process_dialog.
 6642 	Code formatting change.
 6643 	(timeout_handler:): Set timer_fired to YES.
 6644 	(runDialogAt:): Set timer_fired to NO.
 6645 	Handle click on close button as quit.
 6646 
 6647 	* nsterm.h (EmacsDialogPanel): Make timer_fired BOOL.
 6648 	Add window_closed and button_values.  Add void as return value for
 6649 	add(Button|String|Split).  addButton takes int instead of Lisp_Object.
 6650 	Add process_dialog as new member.
 6651 
 6652 2012-08-28  Eli Zaretskii  <eliz@gnu.org>
 6653 
 6654 	* ralloc.c (free_bloc): Don't dereference a 'heap' structure if it
 6655 	is not one of the heaps we manage.  (Bug#12242)
 6656 
 6657 2012-08-28  Glenn Morris  <rgm@gnu.org>
 6658 
 6659 	* eval.c (Fcalled_interactively_p): Doc fix.  (Bug#11747)
 6660 
 6661 2012-08-28  Martin Rudalics  <rudalics@gmx.at>
 6662 
 6663 	* window.c (Fset_window_configuration): Remove handling of
 6664 	auto-buffer-name window parameter.  Install revision of reverted
 6665 	fix.
 6666 
 6667 2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
 6668 
 6669 	Do not allow to set major mode for a dead buffer.
 6670 	* buffer.c (Fset_buffer_major_mode): Signal an error
 6671 	if the buffer is dead.
 6672 	(Fother_buffer, other_buffer_safely): Remove redundant
 6673 	nested declaration.
 6674 
 6675 2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
 6676 
 6677 	Always use set_buffer_if_live to restore original buffer at unwind.
 6678 	* buffer.h (record_unwind_current_buffer): New function.
 6679 	* bytecode.c, dispnew.c, editfns.c, fileio.c, fns.c, insdel.c:
 6680 	* keyboard.c, keymap.c, minibuf.c, print.c, process.c, textprop.c:
 6681 	* undo.c, window.c: Adjust users.
 6682 	* buffer.c (set_buffer_if_live): Fix comment.
 6683 
 6684 2012-08-28  Dmitry Antipov  <dmantipov@yandex.ru>
 6685 
 6686 	Fix usage of set_buffer_internal.
 6687 	* buffer.h (set_buffer_internal): Make it BUFFER_INLINE.
 6688 	* buffer.c (set_buffer_if_live): Use set_buffer_internal.
 6689 	* coding.c (decode_coding): Omit redundant test.
 6690 	* fileio.c (decide_coding_unwind): Likewise.
 6691 	* fns.c (secure_hash): Likewise.
 6692 	* insdel.c (modify_region): Likewise.
 6693 	* keyboard.c (command_loop_1): Likewise.
 6694 	* print.c (PRINTFINISH): Likewise.
 6695 	* xdisp.c (run_window_scroll_functions): Use set_buffer_internal.
 6696 
 6697 2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
 6698 
 6699 	* dispnew.c: Use bool for boolean.
 6700 	(frame_garbaged, display_completed, delayed_size_change)
 6701 	(fonts_changed_p, add_window_display_history)
 6702 	(add_frame_display_history, verify_row_hash)
 6703 	(adjust_glyph_matrix, clear_window_matrices, glyph_row_slice_p)
 6704 	(row_equal_p, realloc_glyph_pool)
 6705 	(allocate_matrices_for_frame_redisplay)
 6706 	(showing_window_margins_p)
 6707 	(adjust_frame_glyphs_for_frame_redisplay)
 6708 	(build_frame_matrix_from_leaf_window, make_current)
 6709 	(mirrored_line_dance, mirror_line_dance, update_frame)
 6710 	(update_window_tree, update_single_window)
 6711 	(check_current_matrix_flags, update_window, update_text_area)
 6712 	(update_window_line, set_window_update_flags, scrolling_window)
 6713 	(update_frame_1, scrolling, buffer_posn_from_coords)
 6714 	(do_pending_window_change, change_frame_size)
 6715 	(change_frame_size_1, sit_for):
 6716 	Use bool for boolean.
 6717 	(clear_glyph_matrix_rows): Rename from enable_glyph_matrix_rows,
 6718 	and remove last int (actually boolean) argument, which was always 0.
 6719 	All callers changed.
 6720 	* dispextern.h, frame.h, lisp.h: Reflect above API changes.
 6721 	* dispextern.h (struct composition_it): Use bool for boolean.
 6722 	(struct glyph_matrix): Don't assume buffer sizes can fit in 'int'.
 6723 	(struct bidi_it): Use unsigned:1, not int, for boolean prev_was_pdf.
 6724 	* dired.c (file_name_completion):
 6725 	Use bool for boolean.  (This was missed in an earlier change.)
 6726 
 6727 2012-08-27  Martin Rudalics  <rudalics@gmx.at>
 6728 
 6729 	* window.c (Fset_window_configuration): Revert first part of
 6730 	last change.
 6731 
 6732 2012-08-27  Jan Djärv  <jan.h.d@swipnet.se>
 6733 
 6734 	* nsterm.h (NSPanel): New class variable dialog_return.
 6735 
 6736 	* nsmenu.m (initWithContentRect:styleMask:backing:defer:):
 6737 	Initialize dialog_return.
 6738 	(windowShouldClose:): Use stop instead of stopModalWithCode.
 6739 	(clicked:): Ditto, and also set dialog_return (Bug#12258).
 6740 	(timeout_handler:): Use stop instead of abortModal.  Send a dummy
 6741 	event.
 6742 	(runDialogAt:): Make ret Lisp_Object.  Set it from dialog_return when
 6743 	modal loop returns.
 6744 
 6745 2012-08-27  Paul Eggert  <eggert@cs.ucla.edu>
 6746 
 6747 	* composite.c, data.c, dbusbind.c, dired.c: Use bool for booleans.
 6748 	* composite.c (find_composition, composition_gstring_p)
 6749 	(composition_reseat_it, find_automatic_composition):
 6750 	* data.c (let_shadows_buffer_binding_p)
 6751 	(let_shadows_global_binding_p, set_internal, make_blv)
 6752 	(Fmake_variable_buffer_local, Fmake_local_variable)
 6753 	(Fmake_variable_frame_local, arithcompare, cons_to_unsigned)
 6754 	(cons_to_signed, arith_driver):
 6755 	* dbusbind.c (xd_in_read_queued_messages):
 6756 	* dired.c (directory_files_internal, file_name_completion):
 6757 	Use bool for booleans.
 6758 	* dired.c (file_name_completion):
 6759 	* process.h (fd_callback):
 6760 	Omit int (actually boolean) argument.  It wasn't being used.
 6761 	All uses changed.
 6762 	* composite.h, lisp.h: Reflect above API changes.
 6763 
 6764 	* cmds.c, coding.c: Use bool for booleans.
 6765 	* cmds.c (move_point, Fself_insert_command):
 6766 	* coding.h (struct composition status, struct coding_system):
 6767 	* coding.c (detect_coding_utf_8, encode_coding_utf_8)
 6768 	(detect_coding_utf_16, encode_coding_utf_16, detect_coding_emacs_mule)
 6769 	(emacs_mule_char, decode_coding_emacs_mule)
 6770 	(encode_coding_emacs_mule, detect_coding_iso_2022)
 6771 	(decode_coding_iso_2022, encode_invocation_designation)
 6772 	(encode_designation_at_bol, encode_coding_iso_2022)
 6773 	(detect_coding_sjis, detect_coding_big5, decode_coding_sjis)
 6774 	(decode_coding_big5, encode_coding_sjis, encode_coding_big5)
 6775 	(detect_coding_ccl, encode_coding_ccl, decode_coding_raw_text)
 6776 	(encode_coding_raw_text, detect_coding_charset)
 6777 	(decode_coding_charset, encode_coding_charset, detect_eol)
 6778 	(detect_coding, get_translation_table, produce_chars)
 6779 	(consume_chars, reused_workbuf_in_use)
 6780 	(make_conversion_work_buffer, code_conversion_save)
 6781 	(decode_coding_object, encode_coding_object)
 6782 	(detect_coding_system, char_encodable_p)
 6783 	(Funencodable_char_position, code_convert_region)
 6784 	(code_convert_string, code_convert_string_norecord)
 6785 	(Fset_coding_system_priority):
 6786 	* fileio.c (Finsert_file_contents):
 6787 	Use bool for booleans.
 6788 	* coding.h, lisp.h: Reflect above API changes.
 6789 	* coding.c: Remove unnecessary static function decls.
 6790 	(detect_coding): Use unsigned, not signed, to copy an unsigned field.
 6791 	(decode_coding, encode_coding, decode_coding_gap): Return 'void',
 6792 	not a boolean 'int', since callers never look at the return value.
 6793 	(ALLOC_CONVERSION_WORK_AREA): Assume caller returns 'void', not 'int'.
 6794 	* coding.h (decoding_buffer_size, encoding_buffer_size)
 6795 	(emacs_mule_string_char): Remove unused extern decls.
 6796 	(struct iso_2022_spec, struct coding_system):
 6797 	Use 'unsigned int : 1' for boolean fields, since there's more than one.
 6798 	(struct emacs_mule_spec): Remove unused field 'full_support'.
 6799 	All initializations removed.
 6800 	* cmds.c (internal_self_insert): Don't assume EMACS_INT fits in 'int'.
 6801 
 6802 2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
 6803 
 6804 	Fix spare memory change (Bug#12286).
 6805 	* alloc.c (mark_maybe_pointer): Handle MEM_TYPE_SPARE.
 6806 	(valid_lisp_object_p): Likewise.
 6807 
 6808 2012-08-27  Martin Rudalics  <rudalics@gmx.at>
 6809 
 6810 	* window.c (Fset_window_configuration): Record any window's old
 6811 	buffer if it's replaced (see Bug#8789).  If the new current
 6812 	buffer doesn't appear in the selected window, go to its old
 6813 	point (Bug#12208).
 6814 
 6815 2012-08-27  Dmitry Antipov  <dmantipov@yandex.ru>
 6816 
 6817 	Special MEM_TYPE_SPARE to denote reserved memory.
 6818 	* alloc.c (enum mem_type): New memory type.
 6819 	(refill_memory_reserve): Use new type for spare memory.
 6820 	This prevents live_cons_p and live_string_p from incorrect
 6821 	detection of uninitialized objects from spare memory as live.
 6822 
 6823 2012-08-26  Paul Eggert  <eggert@cs.ucla.edu>
 6824 
 6825 	Spelling fixes.
 6826 	* Makefile.in (.PHONY): versioclean -> versionclean.
 6827 
 6828 	Remove unused external symbols.
 6829 	* data.c (Qcons, Qfloat, Qmisc, Qstring, Qvector):
 6830 	* window.c (Qwindow_valid_p, decode_valid_window):
 6831 	Now static, not extern.
 6832 	* data.c (Qinterval): Remove; unused.
 6833 	(syms_of_data): Do not define 'interval'.
 6834 	* lisp.h (Qinteger, Qstring, Qmisc, Qvector, Qfloat, Qcons):
 6835 	* window.h (decode_valid_window):
 6836 	Remove decls.
 6837 
 6838 	* character.c, charset.c, chartab.c: Use bool for booleans.
 6839 	* character.c (lisp_string_width, string_count_byte8)
 6840 	(string_escape_byte8):
 6841 	* charset.c (charset_map_loaded, load_charset_map, read_hex):
 6842 	(load_charset_map_from_file, map_charset_chars)
 6843 	(Fdefine_charset_internal, define_charset_internal)
 6844 	(Fdeclare_equiv_charset, find_charsets_in_text)
 6845 	(Ffind_charset_region, char_charset, Fiso_charset):
 6846 	* chartab.c (sub_char_table_ref, sub_char_table_ref_and_range)
 6847 	(sub_char_table_set, sub_char_table_set_range)
 6848 	(char_table_set_range, optimize_sub_char_table)
 6849 	(map_sub_char_table):
 6850 	Use bool for boolean.
 6851 	* character.c (str_to_unibyte): Omit last boolean argument; it was
 6852 	always 0.  All callers changed.
 6853 	* character.h, charset.h: Adjust to match previous changes.
 6854 	* character.h (char_printable_p): Remove decl of nonexistent function.
 6855 	* charset.h (struct charset): Members code_linear_p, iso_chars_96,
 6856 	ascii_compatible_p, supplementary_p, compact_codes_p, unified_p
 6857 	are all boolean, so make them single-bit bitfields.
 6858 
 6859 	* lisp.h (ASET): Remove attempt to detect side effects.
 6860 	It was meant to be temporary and it often doesn't work,
 6861 	because when IDX has side effects the behavior of IDX==IDX
 6862 	is undefined.  See Stefan Monnier in
 6863 	<https://lists.gnu.org/r/emacs-devel/2012-08/msg00762.html>.
 6864 
 6865 2012-08-26  Barry O'Reilly  <gundaetiapo@gmail.com>
 6866 
 6867 	* lisp.h (functionp): New function (extracted from Ffunctionp).
 6868 	(FUNCTIONP): Use it.
 6869 	* eval.c (Ffunctionp): Use it.
 6870 
 6871 2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 6872 
 6873 	* xgselect.c (xg_select): Use auto storage for the GPollFD buffer
 6874 	as that's faster and simpler than static storage.  Don't bother
 6875 	with the g_main_context_query overhead if g_main_context_pending
 6876 	says no events are pending.
 6877 	(gfds, gfds_size): Remove these static vars.
 6878 	(xgselect_initialize): Remove; no longer needed.
 6879 	All uses and decls removed.
 6880 
 6881 	* emacs.c (fatal_error_signal_hook): Remove.
 6882 	All uses removed.  This leftover from old code was always 0.
 6883 
 6884 	* casefiddle.c, casetab.c, category.c: Use bool for boolean.
 6885 	* casefiddle.c (casify_object, casify_region):
 6886 	* casetab.c (set_case_table):
 6887 	* category.c, category.h (word_boundary_p):
 6888 	* category.h (CHAR_HAS_CATEGORY):
 6889 	Use bool for booleans, instead of int.
 6890 
 6891 2012-08-25  Eli Zaretskii  <eliz@gnu.org>
 6892 
 6893 	* makefile.w32-in ($(BLD)/alloc.$(O)): Depend on $(GNU_LIB)/execinfo.h.
 6894 
 6895 2012-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 6896 
 6897 	On assertion failure, print backtrace if available.
 6898 	* alloc.c [ENABLE_CHECKING]: Include <execinfo.h>.
 6899 	(die) [ENABLE_CHECKING]: Print a backtrace if available.
 6900 	* Makefile.in (LIB_EXECINFO): New macro.
 6901 	(LIBES): Use it.
 6902 
 6903 	* bytecode.c, callint.c, callproc.c: Use bool for boolean.
 6904 	* bytecode.c (exec_byte_code):
 6905 	* callint.c (check_mark, Fcall_interactively):
 6906 	* callproc.c (Fcall_process, add_env, child_setup, getenv_internal_1)
 6907 	(getenv_internal, sync_process_alive, call_process_exited):
 6908 	* lisp.h (USE_SAFE_ALLOCA):
 6909 	Use bool for booleans, instead of int.
 6910 	* lisp.h, process.h: Adjust prototypes to match above changes.
 6911 	* callint.c (Fcall_interactively): Don't assume the mark's
 6912 	offset fits in 'int'.
 6913 
 6914 2012-08-24  Paul Eggert  <eggert@cs.ucla.edu>
 6915 
 6916 	* buffer.c, buffer.h: Use bool for boolean.
 6917 	* buffer.c (reset_buffer_local_variables)
 6918 	(buffer_lisp_local_variables, Fset_buffer_modified_p)
 6919 	(Frestore_buffer_modified_p, Fset_buffer_multibyte):
 6920 	(overlays_at, overlays_in, mouse_face_overlay_overlaps)
 6921 	(overlay_touches_p, overlay_strings, Foverlay_put)
 6922 	(report_overlay_modification, call_overlay_mod_hooks):
 6923 	(mmap_enlarge, mmap_set_vars):
 6924 	* buffer.h (buffer_has_overlays, uppercasep, lowercasep):
 6925 	Use bool for booleans, instead of int.
 6926 	* buffer.c (compact_buffer, mmap_free_1): Return void, not int,
 6927 	since the 1-or-0 return value is always ignored anyway.
 6928 	(mmap_initialized_p):
 6929 	* buffer.h (struct buffer_text.inhibit_shrinking): Now bool, not int.
 6930 	* buffer.h, lisp.h: Adjust prototypes to match above changes.
 6931 
 6932 2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
 6933 
 6934 	* bidi.c: Use bool for boolean.
 6935 	This is a bit more readable, and makes the text segment of bidi.o
 6936 	0.4% smaller on my platform (GCC 4.7.1 x86-64, Fedora 15).
 6937 	Presumably it's faster too.
 6938 	(bidi_initialized, bidi_ignore_explicit_marks_for_paragraph_level):
 6939 	Now bool.
 6940 	(bidi_cache_find_level_change, bidi_cache_iterator_state)
 6941 	(bidi_unshelve_cache, bidi_init_it, bidi_count_bytes)
 6942 	(bidi_char_at_pos, bidi_fetch_char, bidi_paragraph_init)
 6943 	(bidi_explicit_dir_char, bidi_level_of_next_char)
 6944 	(bidi_find_other_level_edge, bidi_move_to_visually_next):
 6945 	Use bool for booleans, instead of int.
 6946 	* dispextern.h (bidi_init_it, bidi_paragraph_init)
 6947 	(bidi_unshelve_cache): Adjust decls to match code.
 6948 
 6949 2012-08-23  Martin Rudalics  <rudalics@gmx.at>
 6950 
 6951 	* keyboard.c (Fposn_at_x_y): Do not allow internal window as
 6952 	argument.
 6953 
 6954 2012-08-23  Paul Eggert  <eggert@cs.ucla.edu>
 6955 
 6956 	* atimer.c, atimer.h (turn_on_atimers): Use bool for boolean.
 6957 	* atimer.h: Include <stdbool.h>.
 6958 
 6959 2012-08-22  Dan Nicolaescu  <dann@gnu.org>
 6960 
 6961 	* frame.h (FRAME_W32_P, FRAME_MSDOS_P, FRAME_NS_P): Change to
 6962 	compile time tests instead of run time tests on systems that do
 6963 	not use them.
 6964 	(FRAME_MAC_P): Remove leftover from deleted code.
 6965 	* frame.c (syms_of_frame): Remove leftover from deleted code.
 6966 
 6967 2012-08-22  Jan Djärv  <jan.h.d@swipnet.se>
 6968 
 6969 	* nsterm.m (insertText:): Don't clear modifiers if code is space.
 6970 
 6971 2012-08-22  Paul Eggert  <eggert@cs.ucla.edu>
 6972 
 6973 	* fontset.c (FONTSET_ADD): Return void, not Lisp_Object.
 6974 	Otherwise, the compiler complains about (A?B:C) where B is void
 6975 	and C is Lisp_Object.  This fixes an incompatibility with Sun C 5.12.
 6976 	(fontset_add): Return void, for FONTSET_ADD.
 6977 
 6978 2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
 6979 
 6980 	* alloc.c: Use bool for booleans.
 6981 	(gc_in_progress, abort_on_gc)
 6982 	(setjmp_tested_p) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
 6983 	(dont_register_blocks) [GC_MALLOC_CHECK]:
 6984 	(suppress_checking) [ENABLE_CHECKING]: Now bool, not int.
 6985 	(check_string_bytes, make_specified_string, memory_full)
 6986 	(live_string_p, live_cons_p, live_symbol_p, live_float_p)
 6987 	(live_misc_p, live_vector_p, live_buffer_p, mark_maybe_object)
 6988 	(mark_stack, valid_pointer_p, make_pure_string)
 6989 	(Fgarbage_collect, survives_gc_p, gc_sweep):
 6990 	Use bool for booleans, instead of int.
 6991 	(test_setjmp) [!GC_SAVE_REGISTERS_ON_STACK && !GC_SETJMP_WORKS]:
 6992 	Remove unused local.
 6993 	* alloc.c (PURE_POINTER_P):
 6994 	* lisp.h (STRING_MULTIBYTE): Document that it returns a boolean.
 6995 	* editfns.c (Fformat):
 6996 	* fileio.c (Fexpand_file_name, Fsubstitute_in_file_name)
 6997 	(Fdo_auto_save):
 6998 	* fns.c (sweep_weak_table):
 6999 	* lisp.h (suppress_checking, push_message, survives_gc_p)
 7000 	(make_pure_string, gc_in_progress, abort_on_gc):
 7001 	* lread.c (readchar, read1):
 7002 	* print.c (Fprin1_to_string):
 7003 	* xdisp.c (push_message):
 7004 	Use bool for booleans affected directly or indirectly by
 7005 	alloc.c's changes.
 7006 
 7007 	Make recently-introduced setters macros.
 7008 	* fontset.c (set_fontset_id, set_fontset_name, set_fontset_ascii)
 7009 	(set_fontset_base, set_fontset_frame, set_fontset_nofont_face)
 7010 	(set_fontset_default, set_fontset_fallback): Rename from their
 7011 	upper-case counterparts, and make them functions rather than macros.
 7012 	This is more consistent with the other recently-introduced setters.
 7013 	These don't need to be inline, since they're local.
 7014 
 7015 2012-08-21  Jan Djärv  <jan.h.d@swipnet.se>
 7016 
 7017 	* nsterm.m (fd_handler:): Alloc and release a NSAutoreleasePool in
 7018 	the loop (Bug#12247).
 7019 
 7020 2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
 7021 
 7022 	* lisp.h (vcopy): Use memcpy rather than our own loop.
 7023 	This fixes a performance regression introduced by the recent
 7024 	addition of vcopy.  This means 'vcopy' will need to be modified
 7025 	for a copying collector, but that's OK.  Also, tighten the
 7026 	checking in the assertion.
 7027 
 7028 2012-08-21  Eli Zaretskii  <eliz@gnu.org>
 7029 
 7030 	* w32uniscribe.c (uniscribe_shape): Fix producing gstring
 7031 	components for RTL text (Bug#11860).  Adjust X-OFFSET of each
 7032 	non-base glyph for the width of the base character, according to
 7033 	what x_draw_composite_glyph_string_foreground expects.
 7034 	Generate WADJUST value according to composition_gstring_width's
 7035 	expectations, to produce correct width of the composed character.
 7036 	Reverse the sign of the DU offset produced by ScriptPlace.
 7037 
 7038 2012-08-21  Paul Eggert  <eggert@cs.ucla.edu>
 7039 
 7040 	* dbusbind.c (xd_remove_watch): Do not assume C99 comments.
 7041 
 7042 2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>
 7043 
 7044 	Avoid direct writes to contents member of struct Lisp_Vector.
 7045 	* lisp.h (vcopy): New function to copy data into vector.
 7046 	* dispnew.c (Fframe_or_buffer_changed_p): Use AREF and ASET.
 7047 	* fns.c (Ffillarray): Use ASET.
 7048 	* keyboard.c (timer_check_2): Use AREF and ASET.
 7049 	(append_tool_bar_item, Frecent_keys): Use vcopy.
 7050 	* lread.c (read_vector): Use ASET.
 7051 	* msdos.c (Frecent_doskeys): Use vcopy.
 7052 	* xface.c (Finternal_copy_lisp_face): Use vcopy.
 7053 	(Finternal_merge_in_global_face): Use ASET and vcopy.
 7054 	* xfont.c (xfont_list_pattern): Likewise.
 7055 
 7056 2012-08-21  Martin Rudalics  <rudalics@gmx.at>
 7057 
 7058 	* window.c (Fwindow_point): For the selected window always return
 7059 	the position of its buffer's point.
 7060 	(Fset_window_point): For the selected window always go in its
 7061 	buffer to the specified position.
 7062 
 7063 2012-08-21  Dmitry Antipov  <dmantipov@yandex.ru>
 7064 
 7065 	Setter macros for fontsets.
 7066 	* fontset.c (SET_FONTSET_ID, SET_FONTSET_NAME, SET_FONTSET_ASCII)
 7067 	(SET_FONTSET_BASE, SET_FONTSET_FRAME, SET_FONTSET_NOFONT_FACE)
 7068 	(SET_FONTSET_DEFAULT, SET_FONTSET_FALLBACK): New macros.
 7069 	Adjust users.
 7070 
 7071 2012-08-20  Glenn Morris  <rgm@gnu.org>
 7072 
 7073 	* Makefile.in (emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
 7074 	Don't assume that `ln -f' works.
 7075 
 7076 2012-08-20  Eli Zaretskii  <eliz@gnu.org>
 7077 
 7078 	* .gdbinit: Use "set $dummy = ..." to avoid warnings from GDB 7.5
 7079 	and later about non-assignments with no effect.  See discussion at
 7080 	http://sourceware.org/ml/gdb-patches/2012-08/msg00518.html for
 7081 	details.
 7082 
 7083 2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
 7084 
 7085 	Inline setter functions for Lisp_Objects slots of struct specbinding.
 7086 	* eval.c (set_specpdl_symbol, set_specpdl_old_value): New functions.
 7087 	Adjust users.
 7088 
 7089 2012-08-20  Martin Rudalics  <rudalics@gmx.at>
 7090 
 7091 	* window.c (select_window): Always make selected window's buffer
 7092 	current.
 7093 
 7094 2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
 7095 
 7096 	Use AREF and ASET for docstrings of category tables.
 7097 	* category.h (CATEGORY_DOCSTRING): Use AREF.
 7098 	(SET_CATEGORY_DOCSTRING): Use ASET.
 7099 	* category.c (Fdefine_category): Use SET_CATEGORY_DOCSTRING.
 7100 
 7101 2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
 7102 
 7103 	Inline setter functions for hash table members.
 7104 	* lisp.h (set_hash_key, set_hash_value, set_hash_next)
 7105 	(set_hash_hash, set_hash_index): Rename with _slot suffix.
 7106 	(set_hash_key_and_value, set_hash_index, set_hash_next)
 7107 	(set_hash_hash): New functions.
 7108 	* charset.c, fns.c: Adjust users.
 7109 
 7110 2012-08-20  Dmitry Antipov  <dmantipov@yandex.ru>
 7111 
 7112 	Inline getter and setter functions for per-buffer values.
 7113 	* buffer.h (per_buffer_default, set_per_buffer_default)
 7114 	(per_buffer_value, set_per_buffer_value): New functions.
 7115 	(PER_BUFFER_VALUE, PER_BUFFER_DEFAULT): Remove.
 7116 	* buffer.c, data.c: Adjust users.
 7117 
 7118 2012-08-20  Juanma Barranquero  <lekktu@gmail.com>
 7119 
 7120 	* makefile.w32-in ($(BLD)/vm-limit.$(O)): Update dependencies.
 7121 
 7122 2012-08-19  Paul Eggert  <eggert@cs.ucla.edu>
 7123 
 7124 	Rely on <config.h> + <unistd.h> to declare 'environ',
 7125 	as gnulib does this if the system doesn't.
 7126 	* callproc.c, editfns.c, process.c (environ) [!USE_CRT_DLL]:
 7127 	Remove declaration.  MS-Windows declares it on stdlib.h which is
 7128 	included by conf_post.h.
 7129 	* emacs.c (environ) [DOUG_LEA_MALLOC]:
 7130 	* vm-limit.c (environ) [ORDINARY_LINK]: Remove decl.
 7131 	* vm-limit.c: Include <unistd.h>, for 'environ'.
 7132 
 7133 	* unexaix.c, unexcoff.c: Include "mem-limits.h".
 7134 	(start_of_data): Remove decl; mem-limits.h provides it.
 7135 
 7136 	* xdisp.c (handle_invisible_prop): Make it a bit faster
 7137 	and avoid a gcc -Wmaybe-uninitialized diagnostic.
 7138 
 7139 2012-08-19  Chong Yidong  <cyd@gnu.org>
 7140 
 7141 	* xdisp.c (handle_invisible_prop): Fix ellipses at overlay string
 7142 	ends (Bug#3874).
 7143 
 7144 2012-08-19  Andreas Schwab  <schwab@linux-m68k.org>
 7145 
 7146 	* .gdbinit: Use call instead of set when calling a function in the
 7147 	inferior.
 7148 
 7149 	* data.c (set_internal): Don't use set_blv_found.
 7150 	(Fkill_local_variable): Likewise.
 7151 
 7152 2012-08-18  Alp Aker  <alp.tekin.aker@gmail.com>
 7153 
 7154 	* nsfont.m (ns_ascii_average_width): Ensure the string
 7155 	ascii_printable is initialized with a null-terminated character
 7156 	array.  Otherwise, it can contain undesired extra characters.
 7157 
 7158 2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>
 7159 
 7160 	port new setting code to Sun C 5.8 2005/10/13
 7161 	* chartab.c, lisp.h (char_table_set, char_table_set_range):
 7162 	Return void, not Lisp_Object.  Otherwise, the compiler
 7163 	complains about (A?B:C) where B is void and C is Lisp_Object
 7164 	when compiling CHAR_TABLE_SET, due to the recent change to
 7165 	the API of sub_char_table_set_contents.
 7166 
 7167 2012-08-18  Chong Yidong  <cyd@gnu.org>
 7168 
 7169 	* xdisp.c (handle_invisible_prop): Obey TEXT_PROP_MEANS_INVISIBLE
 7170 	for the string case (Bug#3874).
 7171 
 7172 2012-08-18  Paul Eggert  <eggert@cs.ucla.edu>
 7173 
 7174 	* buffer.h (BSET): Remove (Bug#12215).
 7175 	Replace all uses with calls to new setter functions.
 7176 	(bset_bidi_paragraph_direction, bset_case_canon_table)
 7177 	(bset_case_eqv_table, bset_directory, bset_display_count)
 7178 	(bset_display_time, bset_downcase_table)
 7179 	(bset_enable_multibyte_characters, bset_filename, bset_keymap)
 7180 	(bset_last_selected_window, bset_local_var_alist)
 7181 	(bset_mark_active, bset_point_before_scroll, bset_read_only)
 7182 	(bset_truncate_lines, bset_undo_list, bset_upcase_table)
 7183 	(bset_width_table):
 7184 	* buffer.c (bset_abbrev_mode, bset_abbrev_table)
 7185 	(bset_auto_fill_function, bset_auto_save_file_format)
 7186 	(bset_auto_save_file_name, bset_backed_up, bset_begv_marker)
 7187 	(bset_bidi_display_reordering, bset_buffer_file_coding_system)
 7188 	(bset_cache_long_line_scans, bset_case_fold_search)
 7189 	(bset_ctl_arrow, bset_cursor_in_non_selected_windows)
 7190 	(bset_cursor_type, bset_display_table, bset_extra_line_spacing)
 7191 	(bset_file_format, bset_file_truename, bset_fringe_cursor_alist)
 7192 	(bset_fringe_indicator_alist, bset_fringes_outside_margins)
 7193 	(bset_header_line_format, bset_indicate_buffer_boundaries)
 7194 	(bset_indicate_empty_lines, bset_invisibility_spec)
 7195 	(bset_left_fringe_width, bset_major_mode, bset_mark)
 7196 	(bset_minor_modes, bset_mode_line_format, bset_mode_name)
 7197 	(bset_name, bset_overwrite_mode, bset_pt_marker)
 7198 	(bset_right_fringe_width, bset_save_length)
 7199 	(bset_scroll_bar_width, bset_scroll_down_aggressively)
 7200 	(bset_scroll_up_aggressively, bset_selective_display)
 7201 	(bset_selective_display_ellipses, bset_vertical_scroll_bar_type)
 7202 	(bset_word_wrap, bset_zv_marker):
 7203 	* category.c (bset_category_table):
 7204 	* syntax.c (bset_syntax_table):
 7205 	New setter functions.
 7206 
 7207 	* process.h (PSET): Remove (Bug#12215).
 7208 	Replace all uses with calls to new setter functions.
 7209 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 7210 	(PROCESS_INLINE): New macro.
 7211 	(pset_childp): New setter function.
 7212 	(pset_gnutls_cred_type) [HAVE_GNUTLS]: New setter function.
 7213 	* process.c (PROCESS_INLINE):
 7214 	Define to EXTERN_INLINE, so that the corresponding functions
 7215 	are compiled into code.
 7216 	(pset_buffer, pset_command, pset_decode_coding_system)
 7217 	(pset_decoding_buf, pset_encode_coding_system)
 7218 	(pset_encoding_buf, pset_filter, pset_log, pset_mark, pset_name)
 7219 	(pset_plist, pset_sentinel, pset_status, pset_tty_name)
 7220 	(pset_type, pset_write_queue): New setter functions.
 7221 
 7222 	* window.h (WSET): Remove (Bug#12215).
 7223 	Replace all uses with calls to new setter functions.
 7224 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 7225 	(WINDOW_INLINE): New macro.
 7226 	(wset_buffer, wset_frame, wset_left_col, wset_next, wset_prev)
 7227 	(wset_redisplay_end_trigger, wset_top_line, wset_total_cols)
 7228 	(wset_total_lines, wset_vertical_scroll_bar)
 7229 	(wset_window_end_pos, wset_window_end_valid)
 7230 	(wset_window_end_vpos): New setter functions.
 7231 	* window.c (WINDOW_INLINE):
 7232 	Define to EXTERN_INLINE, so that the corresponding functions
 7233 	are compiled into code.
 7234 	(wset_combination_limit, wset_dedicated, wset_display_table)
 7235 	(wset_hchild, wset_left_fringe_width, wset_left_margin_cols)
 7236 	(wset_new_normal, wset_new_total, wset_next_buffers)
 7237 	(wset_normal_cols, wset_normal_lines, wset_parent, wset_pointm)
 7238 	(wset_prev_buffers, wset_right_fringe_width)
 7239 	(wset_right_margin_cols, wset_scroll_bar_width, wset_start)
 7240 	(wset_temslot, wset_vchild, wset_vertical_scroll_bar_type)
 7241 	(wset_window_parameters):
 7242 	* xdisp.c (wset_base_line_number, wset_base_line_pos)
 7243 	(wset_column_number_displayed, wset_region_showing):
 7244 	New setter functions.
 7245 
 7246 	* termhooks.h (TSET): Remove (Bug#12215).
 7247 	Replace all uses with calls to new setter functions.
 7248 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 7249 	(TERMHOOKS_INLINE): New macro.
 7250 	(tset_charset_list, tset_selection_alist): New setter functions.
 7251 	* terminal.c (TERMHOOKS_INLINE):
 7252 	Define to EXTERN_INLINE, so that the corresponding functions
 7253 	are compiled into code.
 7254 	(tset_param_alist): New setter function.
 7255 
 7256 2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>
 7257 
 7258 	* keyboard.h (KSET): Remove (Bug#12215).
 7259 	Replace all uses with calls to new setter functions.
 7260 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 7261 	(KEYBOARD_INLINE): New macro.
 7262 	(kset_default_minibuffer_frame, kset_defining_kbd_macro)
 7263 	(kset_input_decode_map, kset_last_command, kset_last_kbd_macro)
 7264 	(kset_prefix_arg, kset_system_key_alist, kset_window_system):
 7265 	New setter functions.
 7266 	* keyboard.c (KEYBOARD_INLINE):
 7267 	Define to EXTERN_INLINE, so that the corresponding functions
 7268 	are compiled into code.
 7269 	(kset_echo_string, kset_kbd_queue)
 7270 	(kset_keyboard_translate_table, kset_last_prefix_arg)
 7271 	(kset_last_repeatable_command, kset_local_function_key_map)
 7272 	(kset_overriding_terminal_local_map, kset_real_last_command)
 7273 	(kset_system_key_syms): New setter functions.
 7274 
 7275 	* frame.h (FSET): Remove (Bug#12215).
 7276 	Replace all uses with calls to new setter functions.
 7277 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 7278 	(FRAME_INLINE): New macro.
 7279 	(fset_buffer_list, fset_buried_buffer_list, fset_condemned_scroll_bars)
 7280 	(fset_current_tool_bar_string, fset_desired_tool_bar_string)
 7281 	(fset_face_alist, fset_focus_frame, fset_icon_name, fset_menu_bar_items)
 7282 	(fset_menu_bar_vector, fset_menu_bar_window, fset_name)
 7283 	(fset_param_alist, fset_root_window, fset_scroll_bars)
 7284 	(fset_selected_window, fset_title, fset_tool_bar_items)
 7285 	(fset_tool_bar_position, fset_tool_bar_window): New functions.
 7286 	* frame.c (FRAME_INLINE):
 7287 	Define to EXTERN_INLINE, so that the corresponding functions
 7288 	are compiled into code.
 7289 	(fset_buffer_predicate, fset_minibuffer_window): New setter functions.
 7290 
 7291 	A few more naming-convention fixes for getters and setters.
 7292 	* buffer.c (set_buffer_overlays_before): Move here from buffer.h,
 7293 	and rename from buffer_overlays_set_before.
 7294 	(set_buffer_overlays_after): Move here from buffer.h, and rename
 7295 	from buffer_overlays_set_after.
 7296 	* buffer.h (buffer_intervals): Rename from buffer_get_intervals.
 7297 	All uses changed.
 7298 	(set_buffer_intervals): Rename from buffer_set_intervals.
 7299 	* intervals.c (set_interval_object): Move here from intervals.h,
 7300 	and rename from interval_set_object.
 7301 	(set_interval_left): Move here from intervals.h, and rename from
 7302 	interval_set_left.
 7303 	(set_interval_right): Move here from intervals.h, and rename from
 7304 	interval_set_right.
 7305 	(copy_interval_parent): Move here from intervals.h, and rename from
 7306 	interval_copy_parent.
 7307 	* intervals.h (set_interval_parent): Rename from interval_set_parent.
 7308 	(set_interval_plist): Rename from interval_set_plist.
 7309 	Return void, not Lisp_Object, since no caller uses the result.
 7310 	* lisp.h (string_intervals): Rename from string_get_intervals.
 7311 	(set_string_intervals): Rename from string_set_intervals.
 7312 
 7313 	* lisp.h (set_char_table_extras): Rename from char_table_set_extras.
 7314 	(set_char_table_contents): Rename from char_table_set_contents.
 7315 	(set_sub_char_table_contents): Rename from sub_char_table_set_contents.
 7316 	All uses changed.  See the end of
 7317 	<https://lists.gnu.org/r/emacs-devel/2012-08/msg00549.html>.
 7318 
 7319 	* lisp.h (CSET): Remove (Bug#12215).
 7320 	(set_char_table_ascii, set_char_table_defalt, set_char_table_parent)
 7321 	(set_char_table_purpose): New functions,
 7322 	replacing CSET.  All uses changed.  For example, replace
 7323 	"CSET (XCHAR_TABLE (char_table), parent, parent);" with
 7324 	"set_char_table_parent (char_table, parent);".
 7325 	The old version was confusing because it used the same name
 7326 	'parent' for two different things.
 7327 
 7328 2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>
 7329 
 7330 	Functions to get and set Lisp_Object fields of buffer-local variables.
 7331 	* lisp.h (blv_found, set_blv_found, blv_value, set_blv_value)
 7332 	(set_blv_where, set_blv_defcell, set_blv_valcell): New functions.
 7333 	(BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): Remove.
 7334 	* data.c, eval.c, frame.c: Adjust users.
 7335 
 7336 2012-08-17  Chong Yidong  <cyd@gnu.org>
 7337 
 7338 	* xfaces.c (merge_face_vectors): If the target font specfies a
 7339 	font spec, make the font's attributes take precedence over
 7340 	directly-specified attributes.
 7341 	(merge_face_ref): Recognize :font.
 7342 
 7343 2012-08-17  Dmitry Antipov  <dmantipov@yandex.ru>
 7344 
 7345 	Do not use memcpy for copying intervals.
 7346 	* intervals.c (reproduce_interval): New function.
 7347 	(reproduce_tree, reproduce_tree_obj): Use it.
 7348 	(reproduce_tree_obj): Remove prototype.
 7349 
 7350 2012-08-17  Paul Eggert  <eggert@cs.ucla.edu>
 7351 
 7352 	* lisp.h (duration_to_sec_usec): Remove unused decl.
 7353 
 7354 2012-08-17  Alp Aker  <alp.tekin.aker@gmail.com>
 7355 
 7356 	* nsfont.m (ns_ascii_average_width): Send initWithFormat selector
 7357 	to an allocated instance of NSString, not to the class itself.
 7358 
 7359 2012-08-17  Juanma Barranquero  <lekktu@gmail.com>
 7360 
 7361 	* makefile.w32-in (C_CTYPE_H): New macro.
 7362 	(LISP_H, $(BLD)/ccl.$(O), $(BLD)/doc.$(O), $(BLD)/w32console.$(O)):
 7363 	($(BLD)/fontset.$(O), $(BLD)/frame.$(O), $(BLD)/composite.$(O)):
 7364 	($(BLD)/sysdep.$(O), $(BLD)/w32uniscribe.$(O)): Update dependencies.
 7365 
 7366 2012-08-16  Paul Eggert  <eggert@cs.ucla.edu>
 7367 
 7368 	Use ASCII tests for character types.
 7369 	* category.c, dispnew.c, doprnt.c, editfns.c, syntax.c, term.c:
 7370 	* xfns.c, xterm.c:
 7371 	Don't include <ctype.h>; was not needed.
 7372 	* charset.c, doc.c, fileio.c, font.c, frame.c, gtkutil.c, image.c:
 7373 	* sysdep.c, xfaces.c:
 7374 	Include <c-ctype.h> instead of <ctype.h>.
 7375 	* nsterm.m: Include <c-ctype.h>.
 7376 	* charset.c (read_hex):
 7377 	* doc.c (Fsnarf_documentation):
 7378 	* fileio.c (IS_DRIVE) [WINDOWSNT]:
 7379 	(DRIVE_LETTER) [DOS_NT]:
 7380 	(Ffile_name_directory, Fexpand_file_name)
 7381 	(Fsubstitute_in_file_name):
 7382 	* font.c (font_parse_xlfd, font_parse_fcname):
 7383 	* frame.c (x_set_font_backend):
 7384 	* gtkutil.c (xg_get_font):
 7385 	* image.c (xbm_scan, xpm_scan, pbm_scan_number):
 7386 	* nsimage.m (hexchar):
 7387 	* nsterm.m (ns_xlfd_to_fontname):
 7388 	* sysdep.c (system_process_attributes):
 7389 	* xfaces.c (hash_string_case_insensitive):
 7390 	Use C-locale tests instead of locale-specific tests for character
 7391 	types, since we want the ASCII interpretation here, not the
 7392 	interpretation suitable for whatever happens to be the current locale.
 7393 
 7394 2012-08-16  Martin Rudalics  <rudalics@gmx.at>
 7395 
 7396 	Consistently check windows for validity/liveness
 7397 	(Bug#11984, Bug#12025, Bug#12026).
 7398 	* lisp.h (CHECK_VALID_WINDOW): New macro.
 7399 	* window.c (decode_window): Rename to decode_live_window.
 7400 	(decode_valid_window, Fwindow_valid_p): New functions.
 7401 	(Fwindow_frame, Fframe_root_window, Fwindow_minibuffer_p)
 7402 	(Fframe_first_window, Fframe_selected_window, Fwindow_parent)
 7403 	(Fwindow_top_child, Fwindow_left_child, Fwindow_next_sibling)
 7404 	(Fwindow_prev_sibling, Fwindow_combination_limit)
 7405 	(Fset_window_combination_limit, Fwindow_use_time)
 7406 	(Fwindow_total_height, Fwindow_total_width, Fwindow_new_total)
 7407 	(Fwindow_normal_size, Fwindow_new_normal, Fwindow_left_column)
 7408 	(Fwindow_top_line, Fwindow_body_height, Fwindow_body_width)
 7409 	(Fwindow_hscroll, Fset_window_hscroll)
 7410 	(Fwindow_redisplay_end_trigger)
 7411 	(Fset_window_redisplay_end_trigger, Fwindow_edges)
 7412 	(Fwindow_pixel_edges, Fwindow_absolute_pixel_edges)
 7413 	(Fwindow_inside_edges, Fwindow_inside_pixel_edges)
 7414 	(Fcoordinates_in_window_p, Fwindow_point, Fwindow_start)
 7415 	(Fwindow_end, Fset_window_point, Fset_window_start)
 7416 	(Fpos_visible_in_window_p, Fwindow_line_height)
 7417 	(Fwindow_dedicated_p, Fset_window_dedicated_p)
 7418 	(Fwindow_prev_buffers, Fset_window_prev_buffers)
 7419 	(Fwindow_next_buffers, Fwindow_parameters, Fwindow_parameter)
 7420 	(Fset_window_parameter, Fwindow_display_table)
 7421 	(Fset_window_display_table, Fdelete_other_windows_internal)
 7422 	(Fset_window_buffer, Fset_window_new_total)
 7423 	(Fset_window_new_normal, Fdelete_window_internal)
 7424 	(Fwindow_text_height, Fset_window_margins, Fwindow_margins)
 7425 	(Fset_window_fringes, Fwindow_fringes, Fset_window_scroll_bars)
 7426 	(Fwindow_scroll_bars): Check whether argument window is a valid or
 7427 	live window.  Update doc-strings.
 7428 	(syms_of_window): New symbol Qwindow_valid_p.
 7429 	* keyboard.c (Fposn_at_x_y): Check whether argument
 7430 	frame_or_window denotes a valid window.
 7431 
 7432 2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>
 7433 
 7434 	Fix previous char table change.
 7435 	* lisp.h (CHAR_TABLE_SET): Use sub_char_table_set_contents.
 7436 	* chartab.c (optimize_sub_char_table): Likewise.
 7437 
 7438 2012-08-16  Chong Yidong  <cyd@gnu.org>
 7439 
 7440 	* gtkutil.c (xg_get_font): Demand an Xft font (Bug#3228).
 7441 
 7442 	* xfont.c (xfont_open):
 7443 	* xftfont.c (xftfont_open): Set the font's max_width field.
 7444 
 7445 	* nsfont.m (nsfont_open): Similar to the Xft backend, set
 7446 	min_width to space_width and average_width to the average over
 7447 	printable ASCII characters.
 7448 	(ns_char_width): Code cleanup.
 7449 	(ns_ascii_average_width): New utility function.
 7450 
 7451 	* font.h (struct font): Update comments.
 7452 
 7453 2012-08-16  Dmitry Antipov  <dmantipov@yandex.ru>
 7454 
 7455 	Simple interface to set Lisp_Object fields of character tables.
 7456 	* lisp.h (CSET): New macro.
 7457 	(char_table_set_extras, char_table_set_contents)
 7458 	(sub_char_table_set_contents): New function.
 7459 	* casetab.c, category.c, chartab.c, fns.c, fontset.c, search.c:
 7460 	* syntax.c: Adjust users.
 7461 
 7462 2012-08-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 7463 
 7464 	* eval.c (eval_sub): Bind lexical-binding.
 7465 	* lread.c (Qlexical_binding): Make non-static.
 7466 
 7467 2012-08-15  Jan Djärv  <jan.h.d@swipnet.se>
 7468 
 7469 	* nsmenu.m (popupSession): Remove.
 7470 	(pop_down_menu): Remove endModalSession.
 7471 	(timeout_handler:): New method.
 7472 	(runDialogAt:): Get next timeout.  Start a NSTimer with that timeout.
 7473 	Call runModalForWindow.  Check timer_fired when it returns.
 7474 	If not set, cancel timer and break out of loop.
 7475 	Otherwise loop again, with a new timeout.
 7476 
 7477 	* nsterm.m: Include fcntl.h if present.
 7478 	(fd_entry, t_readfds, inNsSelect): Remove.
 7479 	(select_writefds, select_valid, select_timeout, selfds)
 7480 	(select_mutex, apploopnr): Add.
 7481 	(EV_TRAILER): Call kbd_buffer_store_event_hold only if q_event_ptr.
 7482 	Otherwise call kbd_buffer_store_event.
 7483 	(ns_send_appdefined): Remove release of fd_entry.
 7484 	(ns_read_socket): Always send appdefined.  Remove inNsSelect check.
 7485 	Increment and decrement apploopnr.
 7486 	(ns_select): If no file descriptors, just do a NSTimer.
 7487 	Otherwise copy read/write masks and start select thread (fd_handler).
 7488 	Start main loop and wait for application defined event.
 7489 	Inform select thread to stop selecting after main loop is exited.
 7490 	(ns_term_init): Create selfds pipe and set non-blocking.
 7491 	Initialize select_mutex.  Start the select thread (fd_handler).
 7492 	(fd_handler:): Loop forever, wait for info from the main thread
 7493 	to either start or stop selecting.  When select returns, send
 7494 	and appdefined event.
 7495 	(sendScrollEventAtLoc:fromEvent:): Check if q_event_ptr is set.
 7496 	If not call kbd_buffer_store_event.
 7497 
 7498 	* nsterm.h (EmacsApp): fd_handler takes id argument.
 7499 	(EmacsDialogPanel): Add timer_fired and timeout_handler.
 7500 
 7501 	* gtkutil.c (xg_mark_data): Use FRAME_X_P.
 7502 
 7503 2012-08-15  Eli Zaretskii  <eliz@gnu.org>
 7504 
 7505 	* region-cache.c (move_cache_gap): Update gap_len using the actual
 7506 	growth of the boundaries array.  Do not change cache_len.
 7507 	(Bug#12196)
 7508 
 7509 2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
 7510 
 7511 	Generalize and cleanup font subsystem checks.
 7512 	* font.h (FONT_DEBUG, font_assert): Remove.
 7513 	* font.c, fontset.c, w32font.c, xfont.c, xftfont.c:
 7514 	Change font_assert to eassert.  Use eassert where appropriate.
 7515 
 7516 2012-08-15  Dmitry Antipov  <dmantipov@yandex.ru>
 7517 
 7518 	* gtkutil.c (xg_get_font): Use pango_units_to_double.
 7519 
 7520 2012-08-15  Chong Yidong  <cyd@gnu.org>
 7521 
 7522 	* gtkutil.c (xg_get_font): Rename from xg_get_font_name.
 7523 	When using the new font chooser, use gtk_font_chooser_get_font_desc to
 7524 	extract the font descriptor instead of just the font name.
 7525 	In that case, return a font spec instead of a string.
 7526 	(x_last_font_name): Move to this file from xfns.c.
 7527 
 7528 	* xfns.c (Fx_select_font): The return value can also be a font
 7529 	spec.  Move x_last_font_name management to gtkutil.c.
 7530 
 7531 	* xfaces.c: Make font weight and style symbols non-static.
 7532 
 7533 2012-08-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 7534 
 7535 	* minibuf.c (read_minibuf): Ignore caller's inhibit-read-only
 7536 	(bug#12117).
 7537 
 7538 2012-08-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 7539 
 7540 	* alloc.c (Fgarbage_collect): Use plural form consistently.
 7541 
 7542 2012-08-14  Eli Zaretskii  <eliz@gnu.org>
 7543 
 7544 	* keyboard.c (command_loop_1): Reset ignore_mouse_drag_p flag each
 7545 	iteration through the command loop.  Fixes a problem whereby mouse
 7546 	movements are ignored until the first mouse click.
 7547 
 7548 2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
 7549 
 7550 	Use bool, not int, for Lisp booleans.
 7551 	This is more natural, and on my platform (GCC 4.7.1 x86-64) it
 7552 	makes Emacs a bit smaller and presumably a bit faster.
 7553 	* lisp.h: Include <stdbool.h>.
 7554 	(struct Lisp_Boolfwd, defvar_bool):
 7555 	* lread.c (defvar_bool): Use bool, not int, for Lisp booleans.
 7556 	* regex.c [!emacs]: Include <stdbool.h>.
 7557 	(false, true): Remove; <stdbool.h> does this for us now.
 7558 
 7559 2012-08-14  Chong Yidong  <cyd@gnu.org>
 7560 
 7561 	* character.c (Fcharacterp): Doc fix (Bug#12076).
 7562 
 7563 	* data.c (Findirect_variable): Doc fix (Bug#11040).
 7564 
 7565 	* chartab.c (Fmap_char_table): Doc fix (Bug#12061).
 7566 
 7567 	* editfns.c (Fformat): Doc fix (Bug#12059).
 7568 	(Fsave_current_buffer): Doc fix (Bug#11542).
 7569 
 7570 2012-08-14  Barry O'Reilly  <gundaetiapo@gmail.com>
 7571 
 7572 	* keyboard.c (access_keymap_keyremap): Accept anonymous functions
 7573 	(bug#12022).
 7574 
 7575 2012-08-14  Martin Rudalics  <rudalics@gmx.at>
 7576 
 7577 	* frame.c (make_frame_without_minibuffer, make_minibuffer_frame)
 7578 	(delete_frame, Fmake_frame_invisible, Ficonify_frame):
 7579 	* minibuf.c (choose_minibuf_frame, read_minibuf):
 7580 	* w32fns.c (x_create_tip_frame):
 7581 	* xfns.c (x_create_tip_frame): Call set_window_buffer instead of
 7582 	Fset_window_buffer (Bug#11984, Bug#12025, Bug#12026).
 7583 
 7584 2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
 7585 
 7586 	* intervals.c (offset_intervals): Remove obsolete comment.
 7587 
 7588 2012-08-14  Andreas Schwab  <schwab@linux-m68k.org>
 7589 
 7590 	* gtkutil.c (find_rtl_image, update_frame_tool_bar): Use NILP.
 7591 
 7592 2012-08-14  Gergely Risko  <gergely@risko.hu>
 7593 
 7594 	* coding.c (decode_coding): Record buffer modification before
 7595 	disabling undo_list (Bug#11773).
 7596 
 7597 2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
 7598 
 7599 	Revert and cleanup some recent overlay changes.
 7600 	* buffer.h (enum overlay_type): Remove.
 7601 	(buffer_get_overlays, buffer_set_overlays): Likewise.
 7602 	(buffer_set_overlays_before, buffer_set_overlays_after):
 7603 	New function.  Adjust users.
 7604 	(unchain_both): Add eassert.
 7605 
 7606 2012-08-14  Dmitry Antipov  <dmantipov@yandex.ru>
 7607 
 7608 	* gtkutil.c (update_frame_tool_bar): Use EQ where appropriate.
 7609 
 7610 2012-08-14  Paul Eggert  <eggert@cs.ucla.edu>
 7611 
 7612 	* gtkutil.c (xg_mark_data): Don't assume C99.
 7613 
 7614 2012-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 7615 
 7616 	* gtkutil.c (xg_frame_tb_info): New struct.
 7617 	(TB_INFO_KEY): New define.
 7618 	(xg_free_frame_widgets): Free xg_frame_tb_info for frame if present.
 7619 	(xg_mark_data): Mark Lisp_Objects in xg_frame_tb_info.
 7620 	(xg_create_tool_bar): Allocate and initialize a xg_frame_tb_info
 7621 	if not present.
 7622 	(update_frame_tool_bar): Return early if data in xg_frame_tb_info
 7623 	is up to date.  Otherwise store new data.
 7624 	(free_frame_tool_bar): Free xg_frame_tb_info if present.
 7625 
 7626 2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
 7627 
 7628 	Use KSET for write access to Lisp_Object members of struct kboard.
 7629 	* keyboard.h (KSET): New macro.
 7630 	* callint.c, category.c, frame.c, keyboard.c, keyboard.h, macros.c:
 7631 	* msdos.c, nsfns.m, nsterm.m, term.c, w32fns.c, w32term.c, xfns.c:
 7632 	* xterm.c: Adjust users.
 7633 
 7634 2012-08-13  Dmitry Antipov  <dmantipov@yandex.ru>
 7635 
 7636 	Use BSET for write access to Lisp_Object members of struct buffer.
 7637 	* buffer.h (BSET): New macro.
 7638 	* buffer.c, casetab.c, cmds.c, coding.c, data.c, editfns.c:
 7639 	* fileio.c, frame.c, indent.c, insdel.c, intervals.c, keymap.c:
 7640 	* minibuf.c, print.c, process.c, syntax.c, undo.c, w32fns.c:
 7641 	* window.c, xdisp.c, xfns.c: Adjust users.
 7642 
 7643 2012-08-11  BT Templeton  <bpt@hcoop.net>  (tiny change)
 7644 
 7645 	* lread.c (syms_of_lread): Initialize Vlexical_binding.
 7646 
 7647 2012-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 7648 
 7649 	* nsterm.m (not_in_argv): New function.
 7650 	(application:openFile, application:openTempFile:):
 7651 	(application:openFileWithoutUI:, application:openFiles:): Open file
 7652 	if not_in_argv returns non-zero (bug#12171).
 7653 
 7654 	* gtkutil.c (gtk_font_chooser_dialog_new, GTK_FONT_CHOOSER)
 7655 	(gtk_font_chooser_set_font, gtk_font_chooser_get_font):
 7656 	Define for Gtk+ versions less than 3.2.
 7657 	(xg_get_font_name): Use those functions/macros here.
 7658 	Reported by Frans Oilinki <moilinki@gmail.com>.
 7659 
 7660 2012-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 7661 
 7662 	* unexmacosx.c (copy_data_segment): Copy initialized data in
 7663 	statically linked libraries from input file rather than memory.
 7664 
 7665 	* unexmacosx.c (print_load_command_name): Add cases LC_MAIN,
 7666 	LC_SOURCE_VERSION, and LC_DYLIB_CODE_SIGN_DRS.
 7667 	(dump_it) [LC_DYLIB_CODE_SIGN_DRS]: Call copy_linkedit_data.
 7668 
 7669 2012-08-10  Glenn Morris  <rgm@gnu.org>
 7670 
 7671 	* conf_post.h (IF_LINT, lint_assume): Move here from lisp.h.
 7672 	* lisp.h (IF_LINT, lint_assume): Move to conf_post.h.
 7673 
 7674 2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
 7675 
 7676 	Fix last change to allow compilation with low optimization levels.
 7677 	* intervals.c (INTERVALS_INLINE): Define to EXTERN_INLINE.
 7678 	Reported by Jan Djärv <jan.h.d@swipnet.se>.
 7679 
 7680 2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
 7681 
 7682 	Use common inline syntax in intervals.h.
 7683 	* intervals.h (INTERVALS_INLINE): New macro.
 7684 	Change all users from LISP_INLINE.
 7685 
 7686 2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
 7687 
 7688 	Define Qnone once for all platforms.
 7689 	* frame.c (Qnone): Define here.
 7690 	(syms_of_frame): DEFSYM it.
 7691 	* lisp.h (Qnone): New declaration.
 7692 	* nsfns.m, nsterm.h, nsterm.m, w32fns.c, w32font.c:
 7693 	* xfns.c: Remove duplication.  Adjust users.
 7694 
 7695 2012-08-10  Dmitry Antipov  <dmantipov@yandex.ru>
 7696 
 7697 	Remove unused macros from intervals.h.
 7698 	* intervals.h (MERGE_INSERTIONS, DISPLAY_INVISIBLE_GLYPH): Remove.
 7699 	* intervals.c: Adjust comment.
 7700 
 7701 2012-08-10  Eli Zaretskii  <eliz@gnu.org>
 7702 
 7703 	* w32fns.c <w32_unicode_gui>: New static variable.
 7704 	(globals_of_w32fns): Initialize it according to os_subtype.
 7705 	(w32_init_class, w32_msg_pump, w32_wnd_proc): Use it instead of
 7706 	testing os_subtype.
 7707 
 7708 2012-08-10  Joakim Hårsman  <joakim.harsman@gmail.com>  (tiny change)
 7709 	    Eli Zaretskii  <eliz@gnu.org>
 7710 
 7711 	Fix bug #10299 with Unicode characters sent by customized
 7712 	keyboards created by MSKLC.
 7713 	* w32fns.c (INIT_WINDOW_CLASS): New macro.
 7714 	(w32_init_class): Use it to initialize the Emacs class with either
 7715 	ANSI or Unicode API calls.
 7716 	(w32_msg_pump): Call GetMessageW and DispatchMessageW on NT and
 7717 	later.
 7718 	(w32_wnd_proc): If the character code sent by WM_CHAR or
 7719 	WM_SYSCHAR is above 255, post a WM_UNICHAR message, not the
 7720 	original message.  Call DefWindowProcW on NT and later.
 7721 
 7722 2012-08-10  Glenn Morris  <rgm@gnu.org>
 7723 
 7724 	* Makefile.in (config_h): Fix conf_post.h out-of-tree build location.
 7725 
 7726 	* lisp.h (DIRECTORY_SEP): Let configure set it.
 7727 
 7728 2012-08-09  Dmitry Antipov  <dmantipov@yandex.ru>
 7729 
 7730 	Use TSET for write access to Lisp_Object slots of struct terminal.
 7731 	* termhooks.h (TSET): New macro.
 7732 	* coding.c, terminal.c, xselect.c: Adjust users.
 7733 
 7734 2012-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 7735 
 7736 	* xdisp.c (safe_eval_handler): Remove prototype.  Receive args describing
 7737 	the failing expression, include them in the error message.
 7738 	* eval.c (internal_condition_case_n): Pass nargs and args to hfun.
 7739 	* lisp.h (internal_condition_case_n): Update declaration.
 7740 
 7741 2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
 7742 
 7743 	Inline functions to examine and change buffer overlays.
 7744 	* buffer.c (unchain_both): New function.
 7745 	* buffer.h (buffer_get_overlays, buffer_set_overlays):
 7746 	(buffer_has_overlays): New function.
 7747 	(enum overlay_type): New enum.
 7748 	* alloc.c, buffer.c, editfns.c, fileio.c, indent.c:
 7749 	* insdel.c, intervals.c, print.c, xdisp.c: Adjust users.
 7750 
 7751 2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
 7752 
 7753 	Inline functions to examine and change buffer intervals.
 7754 	* alloc.c (mark_interval_tree): Remove.
 7755 	(MARK_INTERVAL_TREE): Simplify.
 7756 	(UNMARK_BALANCE_INTERVALS): Remove.  Adjust users.
 7757 	* intervals.c (buffer_balance_intervals): New function.
 7758 	(graft_intervals_into_buffer): Adjust indentation.
 7759 	(set_intervals_multibyte): Simplify.
 7760 	* buffer.h (BUF_INTERVALS): Remove.
 7761 	(buffer_get_intervals, buffer_set_intervals): New function.
 7762 	* alloc.c, buffer.c, editfns.c, fileio.c, indent.c, insdel.c:
 7763 	* intervals.c, textprop.c: Adjust users.
 7764 
 7765 2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
 7766 
 7767 	Inline functions to examine and change string intervals.
 7768 	* lisp.h (STRING_INTERVALS, STRING_SET_INTERVALS): Remove.
 7769 	(string_get_intervals, string_set_intervals): New function.
 7770 	* alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
 7771 	* lread.c, print.c, textprop.c: Adjust users.
 7772 
 7773 2012-08-08  Glenn Morris  <rgm@gnu.org>
 7774 
 7775 	* lisp.mk (lisp): Remove language/persian.elc.
 7776 
 7777 2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
 7778 
 7779 	Cleanup intervals.
 7780 	* intervals.h (NULL_INTERVAL, DEFAULT_INTERVAL): Remove.
 7781 	(NULL_INTERVAL_P): Likewise.  Adjust users.
 7782 	(FRONT_STICKY_P, END_NONSTICKY_P, FRONT_NONSTICKY_P):
 7783 	Adjust comment.  Move under #if 0.
 7784 	* alloc.c, buffer.c, editfns.c, fns.c, insdel.c, intervals.c:
 7785 	* print.c, syntax.c, textprop.c, xdisp.c: Adjust users.
 7786 
 7787 2012-08-08  Dmitry Antipov  <dmantipov@yandex.ru>
 7788 
 7789 	Check total length of intervals with eassert.
 7790 	* intervals.h (CHECK_TOTAL_LENGTH): Remove.
 7791 	* intervals.c: Change all users to eassert.
 7792 
 7793 2012-08-07  Eli Zaretskii  <eliz@gnu.org>
 7794 
 7795 	* .gdbinit (xframe, xwindow, nextcons, xcar, xcdr, xlist):
 7796 	Rename fields to match removal of FGET and WGET and disuse of
 7797 	INTERNAL_FIELD in Lisp_Cons.
 7798 
 7799 2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
 7800 
 7801 	Revert and cleanup Lisp_Cons, Lisp_Misc and Lisp_Symbol things.
 7802 	* lisp.h (struct Lisp_Symbol): Change xname to meaningful
 7803 	name since all xname users are fixed long time ago.  Do not
 7804 	use INTERNAL_FIELD.
 7805 	(set_symbol_name, set_symbol_function, set_symbol_plist):
 7806 	(set_symbol_next, set_overlay_plist): New function.
 7807 	(struct Lisp_Cons): Do not use INTERNAL_FIELD.
 7808 	(struct Lisp_Overlay): Likewise.
 7809 	(CVAR, MVAR, SVAR): Remove.
 7810 	* alloc.c, buffer.c, buffer.h, bytecode.c, cmds.c, data.c:
 7811 	* doc.c, eval.c, fns.c, keyboard.c, lread.c, nsselect.m:
 7812 	* xterm.c: Adjust users.
 7813 	* .gdbinit: Change to use name field of struct Lisp_Symbol
 7814 	where appropriate.
 7815 
 7816 2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
 7817 
 7818 	Basic functions to set Lisp_Object and pointer slots of intervals.
 7819 	* intervals.h (interval_set_parent, interval_set_object):
 7820 	(interval_set_left, interval_set_right, interval_set_plist):
 7821 	(interval_copy_parent): New function.
 7822 	(SET_INTERVAL_OBJECT, SET_INTERVAL_PARENT, INTERVAL_PTR_SIZE): Remove.
 7823 	(RESET_INTERVAL, COPY_INTERVAL_CACHE, MERGE_INTERVAL_CACHE):
 7824 	Adjust indentation.
 7825 	(INTERVAL_SIZE): Remove.  Adjust users.
 7826 	* alloc.c, intervals.c, lread.c, textprop.c: Use new functions.
 7827 
 7828 2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
 7829 
 7830 	Drop PGET and revert read access to Lisp_Objects slots of Lisp_Process.
 7831 	* process.h (PGET): Remove.
 7832 	(struct Lisp_Process): Do not use INTERNAL_FIELD.
 7833 	* gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
 7834 
 7835 2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
 7836 
 7837 	Drop WGET and revert read access to Lisp_Objects slots of struct window.
 7838 	* window.h (WGET): Remove.
 7839 	(struct window): Do not use INTERNAL_FIELD.
 7840 	* alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
 7841 	* fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
 7842 	* insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
 7843 	* nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
 7844 	* w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
 7845 	Adjust users.
 7846 
 7847 2012-08-07  Chong Yidong  <cyd@gnu.org>
 7848 
 7849 	* window.c (Fwindow_edges, Fwindow_pixel_edges)
 7850 	(Fwindow_absolute_pixel_edges, Fdelete_other_windows_internal)
 7851 	(Fdelete_window_internal): Signal an error if the window is not on
 7852 	a live frame (Bug#12025).
 7853 
 7854 2012-08-07  Dmitry Antipov  <dmantipov@yandex.ru>
 7855 
 7856 	Drop FGET and revert read access to Lisp_Objects slots of struct frame.
 7857 	* frame.h (FGET): Remove.
 7858 	(struct frame): Do not use INTERNAL_FIELD.
 7859 	* buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
 7860 	* fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
 7861 	* print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
 7862 	* xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
 7863 
 7864 2012-08-06  Juanma Barranquero  <lekktu@gmail.com>
 7865 
 7866 	* w32.c: Silence compiler warnings.
 7867 	(map_w32_filename): Remove unused variable `is_fat'.
 7868 	(chase_symlinks): Add parentheses around expression.
 7869 
 7870 2012-08-06  Glenn Morris  <rgm@gnu.org>
 7871 
 7872 	* sysdep.c: Respect BROKEN_GETWD.
 7873 
 7874 	* dispnew.c (GNU_LIBRARY_PENDING_OUTPUT_COUNT, PENDING_OUTPUT_COUNT):
 7875 	Let configure handle it.
 7876 	(stdio_ext.h) [DISPNEW_NEEDS_STDIO_EXT]: Include it.
 7877 
 7878 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7879 
 7880 	Use GCALIGNMENT where appropriate.
 7881 	* alloc.c (XMALLOC_HEADER_ALIGNMENT, roundup_size):
 7882 	(union aligned_Lisp_Symbol, union aligned_Lisp_Misc):
 7883 	(mark_maybe_pointer, pure_alloc): Change to use GCALIGNMENT.
 7884 
 7885 2012-08-06  Eli Zaretskii  <eliz@gnu.org>
 7886 
 7887 	* w32menu.c (set_frame_menubar, initialize_frame_menubar):
 7888 	Don't use FRAME_MENU_BAR_ITEMS as an lvalue.
 7889 
 7890 2012-08-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 7891 
 7892 	* buffer.h (struct buffer): Revert `indirections' to a simple int;
 7893 	that should be sufficient for everyone.
 7894 
 7895 2012-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 7896 
 7897 	* keyboard.c (timer_check_2): Add break so timer_check returns next
 7898 	timeout.
 7899 
 7900 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7901 
 7902 	Fix Windows build errors introduced after converting to WGET and WSET.
 7903 	* w32term.c (w32_set_vertical_scroll_bar): Change to use WSET.
 7904 	Reported by Andy Moreton <andrewjmoreton@gmail.com>.
 7905 
 7906 2012-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 7907 
 7908 	* nsterm.m (ns_frame_rehighlight): Use FSET.
 7909 
 7910 	* nsmenu.m (ns_update_menubar): Use FSET.
 7911 
 7912 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7913 
 7914 	Separate read and write access to Lisp_Object slots of Lisp_Process.
 7915 	* process.h (PGET, PSET): New macros similar to AREF and ASET.
 7916 	* gnutls.c, print.c, process.c, sysdep.c, w32.c, xdisp.c: Adjust users.
 7917 
 7918 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7919 
 7920 	Separate read and write access to Lisp_Object slots of struct window.
 7921 	* window.h (WGET, WSET): New macros similar to AREF and ASET.
 7922 	* alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
 7923 	* fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
 7924 	* insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, msdos.c, nsfns.m:
 7925 	* nsmenu.m, nsterm.m, print.c, textprop.c, w32fns.c, w32menu.c:
 7926 	* w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
 7927 	Adjust users.
 7928 
 7929 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7930 
 7931 	Fix Windows build errors introduced after converting to FGET and FSET.
 7932 	* w32term.c (x_frame_rehighlight, x_scroll_bar_create):
 7933 	(w32_condemn_scroll_bars, w32_redeem_scroll_bar):
 7934 	(w32_judge_scroll_bars): Change to use FSET.
 7935 	Reported by Andy Moreton <andrewjmoreton@gmail.com>.
 7936 
 7937 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7938 
 7939 	Fix replacement typo.
 7940 	* window.c (replace_window): Set root_window instead of
 7941 	selected_window.  This fixes a total window subsystem
 7942 	malfunction reported by Bastien Guerry <bzg@gnu.org>.
 7943 
 7944 2012-08-06  Glenn Morris  <rgm@gnu.org>
 7945 
 7946 	* lisp.mk (lisp): Add language/persian.elc.
 7947 
 7948 2012-08-06  Dmitry Antipov  <dmantipov@yandex.ru>
 7949 
 7950 	Separate read and write access to Lisp_Object slots of struct frame.
 7951 	* frame.h (FGET, FSET): New macros similar to AREF and ASET.
 7952 	* buffer.c, data.c, dispnew.c, dosfns.c, eval.c, fontset.c, frame.c:
 7953 	* fringe.c, gtkutil.c, minibuf.c, msdos.c, nsfns.m, nsmenu.m, nsterm.m:
 7954 	* print.c, term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
 7955 	* xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Adjust users.
 7956 
 7957 2012-08-05  Andreas Schwab  <schwab@linux-m68k.org>
 7958 
 7959 	* emacs.c (decode_env_path): Only use defaulted if WINDOWSNT.
 7960 
 7961 2012-08-05  Dmitry Antipov  <dmantipov@yandex.ru>
 7962 
 7963 	Generalize common compile-time constants.
 7964 	* lisp.h (header_size, bool_header_size, word_size): Now here.
 7965 	(struct Lisp_Vector): Add comment.
 7966 	(struct Lisp_Bool_Vector): Move up to define handy constants.
 7967 	(VECSIZE, PSEUDOVECSIZE): Simplify.
 7968 	(SAFE_ALLOCA_LISP): Use new constant.  Adjust indentation.
 7969 	* buffer.c, buffer.h, bytecode.c, callint.c, eval.c, fns.c:
 7970 	* font.c, fontset.c, keyboard.c, keymap.c, macros.c, menu.c:
 7971 	* msdos.c, w32menu.c, w32term.h, window.c, xdisp.c, xfaces.c:
 7972 	* xfont.c, xmenu.c: Use word_size where appropriate.
 7973 
 7974 2012-08-05  Lawrence Mitchell  <wence@gmx.li>
 7975 
 7976 	* search.c (Freplace_match): Treat \? in the replacement text
 7977 	literally (Bug#8161).
 7978 
 7979 2012-08-05  Chong Yidong  <cyd@gnu.org>
 7980 
 7981 	* term.c (Vsuspend_tty_functions, Vresume_tty_functions):
 7982 	* frame.c (Vdelete_frame_functions):
 7983 	* emacs.c (Vkill_emacs_hook): Doc fix.
 7984 
 7985 2012-08-04  Eli Zaretskii  <eliz@gnu.org>
 7986 
 7987 	* xfns.c (x_set_menu_bar_lines): Fix compilation error in
 7988 	--with-x-toolkit=no builds.
 7989 	Reported by Carsten Mattner <carstenmattner@gmail.com>.
 7990 
 7991 2012-08-04  Chong Yidong  <cyd@gnu.org>
 7992 
 7993 	* syntax.c (Fmodify_syntax_entry): Doc fix.
 7994 
 7995 2012-08-04  Eli Zaretskii  <eliz@gnu.org>
 7996 
 7997 	Fix startup warnings about ../site-lisp on MS-Windows.  (Bug#11959)
 7998 	* w32.c (init_environment): Change the default values of many
 7999 	environment variables in dflt_envvars[] to NULL, to avoid pushing
 8000 	them into environment when they were not already defined.
 8001 	Remove the code that deletes site-lisp subdirectories from the default
 8002 	value of EMACSLOADPATH, as it is no longer needed.
 8003 	(check_windows_init_file): Now external, not static.
 8004 	Use Vload_path as is, without adding anything, as this function is now
 8005 	called when Vload_path is already set up.
 8006 
 8007 	* w32.h (check_windows_init_file): Add prototype.
 8008 
 8009 	* emacs.c (init_cmdargs) [WINDOWSNT]: When running from the build
 8010 	directory, ignore the /*/i386/ tail in Vinvocation_directory, for
 8011 	compatibility with Posix platforms.
 8012 	(main): Move the call to check_windows_init_file to here from
 8013 	w32.c.
 8014 	(decode_env_path) [WINDOWSNT]: Expand the %emacs_dir%/ prefix, if
 8015 	any, in the DEFALT argument into the root of the Emacs build or
 8016 	installation tree, as appropriate.
 8017 
 8018 	* callproc.c (init_callproc_1): Call decode_env_path instead of
 8019 	doing its equivalent by hand.
 8020 	(init_callproc): Replace DOS_NT condition with MSDOS, thus letting
 8021 	the code that sets Vexec_path run on MS-Windows.
 8022 
 8023 	* lread.c (init_lread): Add comments to #ifdef's.
 8024 
 8025 	* msdos.c (dos_set_window_size, IT_update_begin)
 8026 	(IT_frame_up_to_date, IT_set_frame_parameters): Use FVAR and WVAR
 8027 	instead of direct references.
 8028 
 8029 2012-08-04  Paul Eggert  <eggert@cs.ucla.edu>
 8030 
 8031 	Export DEFAULT_REHASH_* to GDB.
 8032 	* lisp.h (DEFAULT_REHASH_THRESHOLD, DEFAULT_REHASH_SIZE):
 8033 	Now constants, not macros.
 8034 
 8035 2012-08-03  Paul Eggert  <eggert@cs.ucla.edu>
 8036 
 8037 	Remove unnecessary casts involving pointers.
 8038 	These casts are no longer needed now that we assume C89 or later,
 8039 	since they involve casting to or from void *.
 8040 	* alloc.c (make_pure_string, make_pure_c_string, pure_cons)
 8041 	(make_pure_float, make_pure_vector):
 8042 	* lisp.h (SAFE_ALLOCA, SAFE_ALLOCA_LISP):
 8043 	* macros.c (Fstart_kbd_macro):
 8044 	* menu.c (find_and_return_menu_selection):
 8045 	* minibuf.c (read_minibuf_noninteractive):
 8046 	* sysdep.c (closedir):
 8047 	* xdisp.c (x_produce_glyphs):
 8048 	* xfaces.c (compare_fonts_by_sort_order):
 8049 	* xfns.c (x_real_positions, select_visual):
 8050 	* xselect.c (x_stop_queuing_selection_requests)
 8051 	(x_get_window_property, x_get_window_property_as_lisp_data):
 8052 	* xterm.c (x_set_frame_alpha, x_find_modifier_meanings):
 8053 	Remove unnecessary pointer casts.
 8054 	* alloc.c (record_xmalloc): New function.
 8055 	* lisp.h (record_xmalloc): New decl.
 8056 	(SAFE_ALLOCA): Now takes just one arg -- the size -- and acts
 8057 	more like a function.  This is because the pointer cast is not
 8058 	needed.  All uses changed.
 8059 	* print.c (print_string, print_error_message): Avoid length recalc.
 8060 
 8061 	Improve fix for macroexp crash with debugging (Bug#12118).
 8062 	* lisp.h (ASET) [ENABLE_CHECKING]: Pay attention to
 8063 	ARRAY_MARK_FLAG when checking subscripts, because ASET is
 8064 	not supposed to be invoked from the garbage collector.
 8065 	See Andreas Schwab in <https://bugs.gnu.org/12118#25>.
 8066 	(gc_aset): New function, which is like ASET but can be
 8067 	used in the garbage collector.
 8068 	(set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
 8069 	(set_hash_index): Use it instead of ASET.
 8070 
 8071 2012-08-03  Eli Zaretskii  <eliz@gnu.org>
 8072 
 8073 	Support symlinks on latest versions of MS-Windows.
 8074 	* w32.c: Include winioctl.h and aclapi.h.
 8075 	(is_symlink, chase_symlinks, enable_privilege, restore_privilege)
 8076 	(revert_to_self): Forward declarations of static functions.
 8077 	<static BOOL g_b_init_get_security_info>:
 8078 	<g_b_init_create_symbolic_link>: New static flags.
 8079 	(globals_of_w32): Initialize them to zero.
 8080 	(GetSecurityInfo_Proc, CreateSymbolicLink_Proc): New typedefs.
 8081 	(map_w32_filename): Improve commentary.  Simplify switch.
 8082 	(SYMBOLIC_LINK_FLAG_DIRECTORY): Define if not defined in system
 8083 	headers (most versions of MinGW w32api don't).
 8084 	(get_security_info, create_symbolic_link)
 8085 	(get_file_security_desc_by_handle, is_symlink, chase_symlinks):
 8086 	New functions.
 8087 	(sys_access, sys_chmod): Call 'chase_symlinks' to resolve symlinks
 8088 	in the argument file name.
 8089 	(sys_access): Call unc_volume_file_attributes only if
 8090 	GetFileAttributes fails with network-related error codes.
 8091 	(sys_rename): Diagnose renaming of a symlink when the user doesn't
 8092 	have the required privileges.
 8093 	(get_file_security_desc_by_name): Rename from
 8094 	get_file_security_desc.
 8095 	(stat_worker): New function, with most of the guts of 'stat', and
 8096 	with addition of handling of symlinks and support for 'lstat'.
 8097 	If possible, get file's attributes and security information by
 8098 	handle, not by name.  Produce S_IFLNK bit for symlinks, when
 8099 	called from 'lstat'.
 8100 	(stat, lstat): New functions, call 'stat_worker'.
 8101 	(symlink, readlink, careadlinkat): Rewritten to create and resolve
 8102 	symlinks when the underlying filesystem supports them.
 8103 
 8104 2012-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 8105 
 8106 	Fix macroexp crash on Windows with debugging (Bug#12118).
 8107 	* lisp.h (ASET) [ENABLE_CHECKING]: Ignore ARRAY_MARK_FLAG when
 8108 	checking subscripts; problem introduced with the recent
 8109 	"ASET (a, i, v)" rather than "AREF (a, i) = v" patch.
 8110 	(ARRAY_MARK_FLAG): Now a macro as well as a constant,
 8111 	since it's used in non-static inline functions now.
 8112 
 8113 	* xfaces.c (face_at_buffer_position, face_for_overlay_string):
 8114 	Don't assume buffer size fits in 'int'.  Remove unused local.
 8115 
 8116 	Use C99-style 'extern inline' if available.
 8117 	* buffer.h (BUFFER_INLINE):
 8118 	* category.h (CATEGORY_INLINE):
 8119 	* character.h (CHARACTER_INLINE):
 8120 	* charset.h (CHARSET_INLINE):
 8121 	* composite.h (COMPOSITE_INLINE):
 8122 	* dispextern.h (DISPEXTERN_INLINE):
 8123 	* lisp.h (LISP_INLINE):
 8124 	* systime.h (SYSTIME_INLINE):
 8125 	New macro, replacing 'static inline' in this header.
 8126 	* buffer.h, category.h, character.h, charset.h, composite.h:
 8127 	* dispextern.h, lisp.h, systime.h:
 8128 	Use INLINE_HEADER_BEGIN, INLINE_HEADER_END.
 8129 	* alloc.c (LISP_INLINE):
 8130 	* buffer.c (BUFFER_INLINE):
 8131 	* category.c (CATEGORY_INLINE):
 8132 	* character.c (CHARACTER_INLINE):
 8133 	* charset.c (CHARSET_INLINE):
 8134 	* composite.c (COMPOSITE_INLINE):
 8135 	* dispnew.c (DISPEXTERN_INLINE):
 8136 	* sysdep.c (SYSTIME_INLINE):
 8137 	Define to EXTERN_INLINE, so that the corresponding functions
 8138 	are compiled into code.
 8139 	* conf_post.h (INLINE, EXTERN_INLINE, INLINE_HEADER_BEGIN)
 8140 	(INLINE_HEADER_END): New macros.
 8141 	* lisp.h (PSEUDOVECTOR_FLAG): Now a macro as well as a constant,
 8142 	since it's used in non-static inline functions now.
 8143 	(VALMASK) [!USE_LSB_TAG]: Likewise.
 8144 
 8145 2012-08-02  Glenn Morris  <rgm@gnu.org>
 8146 
 8147 	* s/: Remove empty directory.
 8148 
 8149 	* s/ms-w32.h: Move to ../nt/inc.
 8150 	* makefile.w32-in (TAGS, TAGS-gmake, MS_W32_H):
 8151 	Update for new ms-w32.h location.
 8152 
 8153 2012-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 8154 
 8155 	Port to Solaris 8.
 8156 	* syswait.h (WRETCODE): Remove, consistently with ../configure.ac.
 8157 
 8158 2012-08-02  Glenn Morris  <rgm@gnu.org>
 8159 
 8160 	* nsterm.m (ns_exec_path, ns_load_path): Use SEPCHAR rather than
 8161 	hard-coding the path separator.
 8162 
 8163 2012-08-02  Paul Eggert  <eggert@cs.ucla.edu>
 8164 
 8165 	* stamp-h.in: Remove from bzr repository; no longer needed there
 8166 	now ../autogen.sh creates it.
 8167 
 8168 2012-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 8169 
 8170 	Use "ASET (a, i, v)" rather than "AREF (a, i) = v".
 8171 	This how ASET and AREF are supposed to work, and makes
 8172 	it easier to think about future improvements.  See
 8173 	<https://lists.gnu.org/r/emacs-devel/2012-08/msg00026.html>.
 8174 	* charset.h (set_charset_attr): New function.
 8175 	All lvalue-style uses of CHARSET_DECODER etc. changed to use it.
 8176 	* lisp.h (ASET): Rewrite so as not to use AREF in an lvalue style.
 8177 	(aref_addr): New function.  All uses of &AREF(...) changed.
 8178 	(set_hash_key, set_hash_value, set_hash_next, set_hash_hash)
 8179 	(set_hash_index): New functions.  All lvalue-style uses of
 8180 	HASH_KEY etc. changed.
 8181 	* keyboard.c (set_prop): New function.  All lvalue-style uses
 8182 	of PROP changed.
 8183 
 8184 2012-08-01  Alp Aker  <alp.tekin.aker@gmail.com>
 8185 
 8186 	* nsterm.m (ns_set_vertical_scroll_bar, ns_redeem_scroll_bar)
 8187 	(EmacsWindow-accessibilityAttributeValue, EmacsScroller-initFrame:)
 8188 	(EmacsScroller-dealloc): Adjust to use WVAR.  (Bug#12114)
 8189 	* nsfns.m (ns_set_name_as_filename): Likewise.
 8190 	* nsmenu.m (ns_update_menubar): Likewise.
 8191 	* nsselect.m (symbol_to_nsstring): Adjust to use SVAR.
 8192 
 8193 2012-08-01  Eli Zaretskii  <eliz@gnu.org>
 8194 
 8195 	* .gdbinit (xcar, xcdr, xlist, xwindow, nextcons, xprintsym):
 8196 	Adapt to latest changes in field names of the corresponding Lisp
 8197 	objects.
 8198 
 8199 	* xdisp.c (try_window_id): Use WVAR in IF_DEBUG code.
 8200 
 8201 2012-08-01  Glenn Morris  <rgm@gnu.org>
 8202 
 8203 	* s/msdos.h: Remove file.
 8204 	* conf_post.h [MSDOS]: New section, moved from s/msdos.h.
 8205 	* Makefile.in (S_FILE): Remove.
 8206 	(config_h): Remove S_FILE.
 8207 
 8208 2012-08-01  Juanma Barranquero  <lekktu@gmail.com>
 8209 
 8210 	* s/ms-w32.h (DEVICE_SEP, IS_DIRECTORY_SEP, IS_ANY_SEP):
 8211 	Remove; moved to nt/config.nt.
 8212 
 8213 2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 8214 
 8215 	Use INTERNAL_FIELD for conses and overlays.
 8216 	* lisp.h (struct Lisp_Cons): Use INTERNAL_FIELD.
 8217 	Remove obsolete comment.
 8218 	(MVAR): New macro.
 8219 	(struct Lisp_Overlay): Use INTERNAL_FIELD.
 8220 	* alloc.c, buffer.c, buffer.h, fns.c: Adjust users.
 8221 
 8222 2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 8223 
 8224 	Use INTERNAL_FIELD for symbols.
 8225 	* lisp.h (SVAR): New macro.  Adjust users.
 8226 	* alloc.c, bytecode.c, cmds.c, data.c, doc.c, eval.c:
 8227 	* fns.c, keyboard.c, lread.c, xterm.c: Users changed.
 8228 
 8229 2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 8230 
 8231 	Use INTERNAL_FIELD for processes.
 8232 	* process.h (PVAR): New macro.  Adjust style.
 8233 	(struct Lisp_Process): Change Lisp_Object members to INTERNAL_FIELD.
 8234 	* print.c, process.c, sysdep.c, w32.c, xdisp.c: Users changed.
 8235 
 8236 2012-08-01  Dmitry Antipov  <dmantipov@yandex.ru>
 8237 
 8238 	Use INTERNAL_FIELD for windows.
 8239 	* window.h (WVAR): New macro.
 8240 	(struct window): Change Lisp_Object members to INTERNAL_FIELD.
 8241 	* alloc.c, buffer.c, composite.c, dispextern.h, dispnew.c, editfns.c:
 8242 	* fileio.c, font.c, fontset.c, frame.c, frame.h, fringe.c, indent.c:
 8243 	* insdel.c, keyboard.c, keymap.c, lisp.h, minibuf.c, nsterm.m, print.c:
 8244 	* textprop.c, w32fns.c, w32menu.c, w32term.c, window.c, xdisp.c:
 8245 	* xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
 8246 
 8247 2012-08-01  Paul Eggert  <eggert@cs.ucla.edu>
 8248 
 8249 	* coding.h (CODING_ATTR_FLUSHING): Remove; unused and wouldn't work.
 8250 
 8251 2012-08-01  Glenn Morris  <rgm@gnu.org>
 8252 
 8253 	* lisp.h (IS_DIRECTORY_SEP, IS_DEVICE_SEP, IS_ANY_SEP):
 8254 	Move to configure.ac.
 8255 
 8256 2012-08-01  Juanma Barranquero  <lekktu@gmail.com>
 8257 
 8258 	* makefile.w32-in (CONFIG_H): Update dependencies.
 8259 	(CONF_POST_H): New macro.
 8260 
 8261 	* s/ms-w32.h (SEPCHAR, NULL_DEVICE): Remove; moved to nt/config.nt.
 8262 
 8263 2012-07-31  Glenn Morris  <rgm@gnu.org>
 8264 
 8265 	* Makefile.in (S_FILE): No longer set by configure.
 8266 
 8267 	* conf_post.h (config_opsysfile): Move earlier, so that WINDOWSNT
 8268 	is available.
 8269 	(alloca.h) [WINDOWSNT]: Don't include it on MS Windows.
 8270 
 8271 	* process.h (NULL_DEVICE):
 8272 	* emacs.c (SEPCHAR):
 8273 	* editfns.c (USER_FULL_NAME): Let configure set them.
 8274 
 8275 	* s/README, s/template.h: Remove files.
 8276 
 8277 	* conf_post.h [HPUX]: Undefine HAVE_RANDOM and HAVE_RINT.
 8278 
 8279 	* conf_post.h (AMPERSAND_FULL_NAME, subprocesses):
 8280 	Move to configure.ac.
 8281 
 8282 2012-07-31  Eli Zaretskii  <eliz@gnu.org>
 8283 
 8284 	* .gdbinit (xframe): Adapt to introduction of FVAR and the
 8285 	resulting renaming of 'struct frame' members.
 8286 
 8287 	* w32menu.c (w32_menu_show): Revert bogus introduction of FVAR.
 8288 
 8289 	* fontset.c (dump_fontset): Fix compilation with ENABLE_CHECKING
 8290 	after introduction of FVAR.
 8291 
 8292 2012-07-31  Jan Djärv  <jan.h.d@swipnet.se>
 8293 
 8294 	* nsmenu.m (update_frame_tool_bar): Change key from NSObject* to id.
 8295 
 8296 	* nsterm.m (ns_draw_fringe_bitmap, ns_dumpglyphs_image): Use drawInRect
 8297 	instead of compositeToPoint.
 8298 	(applicationShouldTerminate): Pass NS String literal to NSRunAlertPanel.
 8299 
 8300 	* nsfns.m, nsmenu.m, nsterm.m: Adopt to struct frame/FVAR changes.
 8301 
 8302 2012-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
 8303 
 8304 	Generalize INTERNAL_FIELD between buffers, keyboards and frames.
 8305 	* lisp.h (INTERNAL_FIELD): New macro.
 8306 	* buffer.h (BUFFER_INTERNAL_FIELD): Remove.
 8307 	(BVAR): Change to use INTERNAL_FIELD.
 8308 	* keyboard.h (KBOARD_INTERNAL_FIELD): Likewise.
 8309 	(KVAR): Change to use INTERNAL_FIELD.
 8310 	* frame.h (FVAR): New macro.
 8311 	(struct frame): Use INTERNAL_FIELD for all Lisp_Object fields.
 8312 	* alloc.c, buffer.c, data.c, dispnew.c, dosfns.c, eval.c, frame.c:
 8313 	* fringe.c, gtkutil.c, minibuf.c, nsfns.m, nsterm.m, print.c:
 8314 	* term.c, w32fns.c, w32menu.c, w32term.c, window.c, window.h:
 8315 	* xdisp.c, xfaces.c, xfns.c, xmenu.c, xterm.c: Users changed.
 8316 
 8317 2012-07-31  Dmitry Antipov  <dmantipov@yandex.ru>
 8318 
 8319 	Miscellaneous fixes for non-default X toolkits.
 8320 	* xfns.c (Fx_file_dialog): Change to SSDATA to avoid warnings.
 8321 	* xterm.c (x_frame_of_widget): Remove redundant prototype.
 8322 	Move under #ifdef USE_LUCID.
 8323 	(x_create_toolkit_scroll_bar): Adjust scroll_bar_name
 8324 	definition and usage to avoid warnings.
 8325 
 8326 2012-07-31  Jan Djärv  <jan.h.d@swipnet.se>
 8327 
 8328 	* nsterm.m (openFiles): Fix previous checkin.
 8329 
 8330 2012-07-31  Paul Eggert  <eggert@cs.ucla.edu>
 8331 
 8332 	* indent.c (compute_motion): Remove unused local.
 8333 
 8334 2012-07-31  Glenn Morris  <rgm@gnu.org>
 8335 
 8336 	* s/usg5-4-common.h (wait3, WRETCODE): Let configure set them.
 8337 
 8338 	* conf_post.h [USG5_4]:
 8339 	Move remaining contents of s/usg5-4-common.h here.
 8340 	* s/usg5-4-common.h: Remove file.
 8341 
 8342 	* conf_post.h [IRIX6_5]: Move remaining contents of s/irix6-5.h here.
 8343 	* s/irix6-5.h: Remove file.
 8344 
 8345 	* conf_post.h [DARWIN_OS]: Move remaining contents of s/darwin.h here.
 8346 	* s/darwin.h: Remove file.
 8347 
 8348 	* conf_post.h [HPUX]: Move random, srandom here from s/hpux10-20.h.
 8349 	* s/hpux10-20.h: Remove file, which is now empty.
 8350 
 8351 2012-07-30  Glenn Morris  <rgm@gnu.org>
 8352 
 8353 	* conf_post.h: New, split from configure.ac's AH_BOTTOM.
 8354 	* Makefile.in (config_h): Add conf_post.h.
 8355 	* makefile.w32-in (CONFIG_H): Add conf_post.h.
 8356 
 8357 2012-07-30  Jan Djärv  <jan.h.d@swipnet.se>
 8358 
 8359 	* nsterm.m (ns_do_open_file): New variable.
 8360 	(ns_term_init): Set ns_do_open_file to YES after run returns.
 8361 	(openFile, openTempFile, openFileWithoutUI, openFiles):
 8362 	Open files only if ns_do_open_file.
 8363 
 8364 2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
 8365 
 8366 	* lisp.h (SWITCH_ENUM_CAST): Remove.  All uses removed.
 8367 	This no-op macro hasn't been needed for many years.
 8368 	* regex.c (SWITCH_ENUM_CAST) [!emacs]: Likewise.
 8369 
 8370 	Export DIRECTORY_SEP, TYPEMASK, VALMASK to GDB.
 8371 	* alloc.c (gdb_make_enums_visible) [USE_LSB_TAG]: Add lsb_bits.
 8372 	* lisp.h (enum lsb_bits) [USE_LSB_TAG]: New enum, for
 8373 	gdb_make_enums_visible.
 8374 	(TYPEMASK, VALMASK) [USE_LSB_TAGS]: Now enum constants, not macros.
 8375 	(DIRECTORY_SEP): Now a constant, not a macro.
 8376 
 8377 2012-07-30  Eli Zaretskii  <eliz@gnu.org>
 8378 
 8379 	* w32fns.c (w32_wnd_proc): Pass w32_keyboard_codepage to
 8380 	w32_kbd_patch_key as the 2nd arg.  (Bug#12082)
 8381 
 8382 	* w32term.c <w32_keyboard_codepage>: Renamed from
 8383 	keyboard_codepage and now external.  All users changed.
 8384 
 8385 	* w32term.h: Add declaration of w32_keyboard_codepage.
 8386 
 8387 	* w32inevt.c (w32_kbd_patch_key): Accept an additional argument --
 8388 	the codepage to translate keys to Unicode.  If this argument is
 8389 	-1, use the value returned by GetConsoleCP.  All callers changed.
 8390 
 8391 2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
 8392 
 8393 	Update .PHONY listings in makefiles.
 8394 	* Makefile.in (.PHONY): Add all, mostlyclean, clean,
 8395 	bootstrap-clean, distclean, maintainer-clean, versioclean,
 8396 	extraclean, frc.
 8397 
 8398 	* lisp.h (STRING_BYTES_BOUND): Cast entire result to ptrdiff_t.
 8399 	This is a bit clearer.  Fix some commentary typos.
 8400 
 8401 2012-07-30  Glenn Morris  <rgm@gnu.org>
 8402 
 8403 	* s/netbsd.h: Let configure include signal.h if needed.
 8404 	Remove file, which is now empty.
 8405 
 8406 	* s/usg5-4-common.h (_longjmp, _setjmp, TIOCSIGSEND):
 8407 	Let configure set them.
 8408 	* s/irix6-5.h (_longjmp, _setjmp, TIOCSIGSEND):
 8409 	No more need to undefine.
 8410 
 8411 2012-07-30  Andreas Schwab  <schwab@linux-m68k.org>
 8412 
 8413 	* keymap.c (Fkey_description): Don't remove 0x80 bit from
 8414 	non-single-byte char when adding meta modifier.  (Bug#12090)
 8415 
 8416 2012-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
 8417 
 8418 	Convert safe_call to use variable number of arguments.
 8419 	* xdisp.c (safe_call): Convert to use varargs.  Adjust users.
 8420 	(safe_call2): Fix comment.
 8421 	* lisp.h (safe_call): Adjust prototype.
 8422 	* coding.c (encode_coding_object): Change to use safe_call2.
 8423 	* xfaces.c (merge_face_heights): Change to use safe_call1.
 8424 
 8425 2012-07-30  Glenn Morris  <rgm@gnu.org>
 8426 
 8427 	* s/aix4-2.h (sigmask): No need to undefine it, since syssignal.h
 8428 	does that unconditionally.  Remove file, which is now empty.
 8429 
 8430 	* s/freebsd.h, s/gnu-linux.h, s/sol2-6.h, s/unixware.h:
 8431 	Remove empty files.
 8432 
 8433 2012-07-30  Paul Eggert  <eggert@cs.ucla.edu>
 8434 
 8435 	Export to GDB most of lisp.h's remaining object-like macros.
 8436 	* lisp.h (min, max): Move earlier, because they're used earlier now.
 8437 	(INTMASK, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK)
 8438 	(CHAR_TABLE_STANDARD_SLOTS, CHARTAB_SIZE_BITS_0)
 8439 	(CHARTAB_SIZE_BITS_1, CHARTAB_SIZE_BITS_2, CHARTAB_SIZE_BITS_3)
 8440 	(DEFAULT_HASH_SIZE, COMPILED_ARGLIST, COMPILED_BYTECODE)
 8441 	(COMPILED_CONSTANTS, COMPILED_STACK_DEPTH, COMPILED_DOC_STRING)
 8442 	(COMPILED_INTERACTIVE, CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT)
 8443 	(CHAR_CTL, CHAR_META, CHAR_MODIFIER_MASK, CHARACTERBITS)
 8444 	(MANY, UNEVALLED, FLOAT_TO_STRING_BUFSIZE, MAX_ALLOCA):
 8445 	Now constants, for GDB.  They need not be macros.
 8446 	(MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM, STRING_BYTES_BOUND):
 8447 	Now constants, for GDB, as well as macros, for static initializers.
 8448 	(CHAR_TABLE_STANDARD_SLOTS, CHAR_TABLE_EXTRA_SLOTS):
 8449 	Move to after the definition of struct Lisp_Char_Table,
 8450 	since the former now needs that type defined.
 8451 	(enum CHARTAB_SIZE_BITS, enum CHAR_TABLE_STANDARD_SLOTS)
 8452 	(enum DEFAULT_HASH_SIZE, enum Lisp_Compiled, enum char_bits)
 8453 	(enum maxargs, enum FLOAT_TO_STRING_BUFSIZE, enum MAX_ALLOCA):
 8454 	New enums, for gdb_make_enums_visible.
 8455 	(GLYPH_MODE_LINE_FACE): Remove; unused.
 8456 	* alloc.c (STRING_BYTES_MAX): Now a constant, not a macro.
 8457 	(gdb_make_enums_visible): Add enum CHARTAB_SIZE_BITS, enum
 8458 	CHAR_TABLE_STANDARD_SLOTS, enum char_bits, enum DEFAULT_HASH_SIZE,
 8459 	enum FLOAT_TO_STRING_BUFSIZE, enum Lisp_Bits, enum Lisp_Compiled,
 8460 	enum maxargs, enum MAX_ALLOCA.
 8461 	(ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): Remove.
 8462 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Remove;
 8463 	no longer needed, now that they are done in lisp.h.
 8464 
 8465 2012-07-30  Dmitry Antipov  <dmantipov@yandex.ru>
 8466 
 8467 	Cleanup string bytes checking.
 8468 	* alloc.c (GC_STRING_BYTES, CHECK_STRING_BYTES): Remove.  Convert
 8469 	all users to STRING_BYTES or string_bytes if GC_CHECK_STRING_BYTES.
 8470 	(check_string_bytes): Define to empty if not GC_CHECK_STRING_BYTES.
 8471 	(check_sblock, compact_small_strings): Simplify.
 8472 
 8473 2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
 8474 
 8475 	* lisp.h (LISP_INT_TAG, LISP_INT1_TAG, LISP_STRING_TAG): Remove.
 8476 	These macros are confusing and no longer need to be defined, as
 8477 	the enum values now suffice.  All uses replaced with definiens.
 8478 	(Lisp_Int1, Lisp_String): Define directly; this is clearer.
 8479 
 8480 2012-07-29  Juanma Barranquero  <lekktu@gmail.com>
 8481 
 8482 	* makefile.w32-in (LISP_H, $(BLD)/emacs.$(O), $(BLD)/w32inevt.$(O))
 8483 	($(BLD)/w32console.$(O)): Update dependencies.
 8484 
 8485 2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
 8486 
 8487 	Remove HIDE_LISP_IMPLEMENTATION and cleanup cons free list check.
 8488 	* lisp.h (HIDE_LISP_IMPLEMENTATION): Remove as useless for a long
 8489 	time.  Adjust users.
 8490 	(CHECK_CONS_LIST): Remove.  Convert all users to check_cons_list.
 8491 
 8492 2012-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 8493 
 8494 	* lread.c (init_lread): Remove if-statement in ifdef HAVE_NS before
 8495 	setting sitelisp (Bug#12010).
 8496 
 8497 2012-07-29  Eli Zaretskii  <eliz@gnu.org>
 8498 
 8499 	* w32heap.h (OS_9X): Rename from OS_WINDOWS_95.
 8500 
 8501 	* w32heap.c (cache_system_info):
 8502 	* w32.c (sys_rename):
 8503 	* w32proc.c (find_child_console, sys_kill): All users changed.
 8504 
 8505 2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
 8506 
 8507 	* alloc.c (Fgarbage_collect): Indent as per usual Emacs style.
 8508 
 8509 2012-07-29  Eli Zaretskii  <eliz@gnu.org>
 8510 
 8511 	* makefile.w32-in (LISP_H): Add $(NT_INC)/stdalign.h.
 8512 
 8513 2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
 8514 
 8515 	Cleanup statistics calculation in Fgarbage_collect.
 8516 	* alloc.c (Fgarbage_collect): Rename t1 to meaningful start.
 8517 	Fix zombies percentage calculation.  Simplify elapsed time calculation.
 8518 
 8519 2012-07-29  Dmitry Antipov  <dmantipov@yandex.ru>
 8520 
 8521 	Generalize marker debugging code under MARKER_DEBUG and use eassert.
 8522 	* insdel.c (CHECK_MARKERS, check_markers_debug_flag): Remove.
 8523 	(gap_left, gap_right, adjust_markers_for_delete, insert_1_both)
 8524 	(insert_from_string_1, insert_from_gap, insert_from_buffer_1)
 8525 	(replace_range, replace_range_2, del_range_2): Change to eassert.
 8526 	* marker.c (byte_char_debug_check): Adjust style.
 8527 
 8528 2012-07-29  Paul Eggert  <eggert@cs.ucla.edu>
 8529 
 8530 	Don't use the abbreviation "win" to refer to Windows (Bug#10421).
 8531 	* regex.c (MAX_BUF_SIZE): Remove some incorrect and
 8532 	long-ago-commented-out code that talks about "WIN32".
 8533 	* w32heap.h (OS_WINDOWS_95): Rename from OS_WIN95.
 8534 	All uses changed.
 8535 
 8536 2012-07-28  Paul Eggert  <eggert@cs.ucla.edu>
 8537 
 8538 	Use Gnulib stdalign module (Bug#9772, Bug#9960).
 8539 	* alloc.c (XMALLOC_BASE_ALIGNMENT, GC_POINTER_ALIGNMENT, pure_alloc):
 8540 	Simplify by using alignof.
 8541 	(pure_alloc) [! USE_LSB_TAG]: Don't over-align EMACS_INT values.
 8542 	* lisp.h: Include <stdalign.h>.
 8543 	(GCALIGNMENT): New macro and constant.
 8544 	(DECL_ALIGN): Remove.  All uses replaced by alignas (GCALIGNMENT).
 8545 	(USE_LSB_TAG): ifdef on alignas, not on DECL_ALIGN.
 8546 	(stdalign): New macro, if not already defined.
 8547 
 8548 2012-07-28  Eli Zaretskii  <eliz@gnu.org>
 8549 
 8550 	Fix non-ASCII input in non-GUI frames on MS-Windows.  (Bug#12055)
 8551 	* w32inevt.c: Include w32inevt.h.
 8552 	(w32_read_console_input): New inline function, calls either
 8553 	ReadConsoleInputA or ReadConsoleInputW, depending on the value of
 8554 	w32_console_unicode_input.
 8555 	(fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
 8556 	(w32_kbd_patch_key, key_event): Use the codepage returned by
 8557 	GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
 8558 	(key_event): use uChar.UnicodeChar only if
 8559 	w32_console_unicode_input is non-zero.
 8560 
 8561 	* w32console.c: Include w32heap.h.
 8562 	<w32_console_unicode_input>: New global variable.
 8563 	(initialize_w32_display): Set w32_console_unicode_input to 1 on NT
 8564 	family of Windows, zero otherwise.
 8565 
 8566 	* w32inevt.h: Declare w32_console_unicode_input.
 8567 
 8568 	* xdisp.c (init_iterator): Don't reference tip_frame in a build
 8569 	--without-x.  (Bug#11742)
 8570 
 8571 2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
 8572 
 8573 	Adjust GDB to reflect pvec_type changes (Bug#12036).
 8574 	* .gdbinit (xvectype, xpr, xbacktrace): Adjust to reflect the
 8575 	2012-07-04 changes to pseudovector representation.
 8576 	Problem reported by Eli Zaretskii in <https://bugs.gnu.org/12036#30>.
 8577 
 8578 2012-07-27  Michael Albinus  <michael.albinus@gmx.de>
 8579 
 8580 	* dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS): Canonicalize session
 8581 	bus address.
 8582 	(xd_close_bus, Fdbus_init_bus): Handle reference counter properly.
 8583 
 8584 2012-07-27  Eli Zaretskii  <eliz@gnu.org>
 8585 
 8586 	* alloc.c (listn): Fix the order the arguments are consed onto the
 8587 	list.
 8588 
 8589 	* lisp.h (enum constype): Use CONSTYPE_HEAP and CONSTYPE_PURE for
 8590 	enumeration constants, as PURE and HEAP are too general, and clash
 8591 	with other headers and sources, such as gmalloc.c and the
 8592 	MS-Windows system headers.  All users changed.
 8593 
 8594 2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
 8595 
 8596 	Revert last save_excursion_save and save_excursion_restore changes.
 8597 	* alloc.c, editfns.c, marker.c, lisp.h: Revert.
 8598 	Lots of crashes reported by Chong Yidong <cyd@gnu.org>.
 8599 
 8600 2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
 8601 
 8602 	Fix recently-introduced typos in Windows port.
 8603 	Reported by Martin Rudalics <rudalics@gmx.at>.
 8604 	* w32.c (init_environment): Replace comma with semicolon.
 8605 	* w32fns.c (syms_of_w32fns): Add missing parenthesis.
 8606 
 8607 2012-07-27  Paul Eggert  <eggert@cs.ucla.edu>
 8608 
 8609 	Improve GDB symbol export (Bug#12036).
 8610 	* .gdbinit (xgetptr, xgetint, xgettype): Set $bugfix in different
 8611 	arms of an 'if', not using conditional expressions; otherwise GDB
 8612 	complains about the types in the unevaluated arm when the argument
 8613 	is an integer literal.
 8614 	(xgetint): Simplify expression.
 8615 	* alloc.c (gdb_make_enums_visible): New constant.  This ports to
 8616 	GCC 3.4.2 the export of symbols to GDB.  Problem reported by Eli
 8617 	Zaretskii in <https://bugs.gnu.org/12036#13>.
 8618 	* lisp.h (PUBLISH_TO_GDB): Remove.  All uses removed.  No longer
 8619 	needed now that we have gdb_make_enums_visible.
 8620 	(enum CHECK_LISP_OBJECT_TYPE, enum Lisp_Bits, enum More_Lisp_Bits)
 8621 	(enum enum_USE_LSB_TAG):
 8622 	New enum types, packaging up enums that need to be exported to GDB.
 8623 
 8624 2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
 8625 
 8626 	Utility function to make a list from specified amount of objects.
 8627 	* lisp.h (enum constype): New datatype.
 8628 	(listn): New prototype.
 8629 	* alloc.c (listn): New function.
 8630 	(Fmemory_use_count, syms_of_alloc): Use it.
 8631 	* buffer.c (syms_of_buffer): Likewise.
 8632 	* callint.c (syms_of_callint): Likewise.
 8633 	* charset.c (define_charset_internal): Likewise.
 8634 	* coding.c (syms_of_coding): Likewise.
 8635 	* keymap.c (syms_of_keymap): Likewise.
 8636 	* search.c (syms_of_search): Likewise.
 8637 	* syntax.c (syms_of_syntax): Likewise.
 8638 	* w32.c (init_environment): Likewise.
 8639 	* w32fns.c (Fw32_battery_status, syms_of_w32fns): Likewise.
 8640 	* xdisp.c (syms_of_xdisp): Likewise.
 8641 	* xfns.c (syms_of_xfns): Likewise.
 8642 
 8643 2012-07-27  Dmitry Antipov  <dmantipov@yandex.ru>
 8644 
 8645 	Fast save_excursion_save and save_excursion_restore.
 8646 	* lisp.h (struct Lisp_Excursion): New data type.
 8647 	(PVEC_EXCURSION): New pseudovector type.
 8648 	(XEXCURSION, XSETEXCURSION, EXCURSIONP): Convenient macros
 8649 	to deal with it.  Adjust comments.
 8650 	(init_marker, attach_marker): New prototype.
 8651 	(unchain_marker): Adjust prototype.
 8652 	* marker.c (attach_marker): Change to global.
 8653 	(init_marker): New function.
 8654 	* alloc.c (Fmake_marker, build_marker): Use it.
 8655 	(build_marker): More easserts.
 8656 	(mark_object): Handle struct Lisp_Excursion.
 8657 	* editfns.c (save_excursion_save, save_excursion_restore):
 8658 	Reimplement to use struct Lisp_Excursion.  Add comments.
 8659 
 8660 2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 8661 
 8662 	Fix export of symbols to GDB (Bug#12036).
 8663 	* alloc.c (ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL)
 8664 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Move these here from
 8665 	emacs.c, as this is a more-suitable home.  Had this been done earlier
 8666 	the fix for 12036 would have avoided some of the problems noted in
 8667 	<https://bugs.gnu.org/12036#13> by Eli Zaretskii, as the scope problems
 8668 	would have been more obvious.
 8669 	* emacs.c: Do not include <verify.h>; no longer needed.
 8670 	(gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS)
 8671 	(gdb_GCTYPEBITS, gdb_USE_LSB_TAG)
 8672 	(CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
 8673 	Remove; now done in lisp.h.
 8674 	* lisp.h (PUBLISH_TO_GDB): New macro.
 8675 	(GCTYPEBITS, USE_LSB_TAG, CHECK_LISP_OBJECT_TYPE, enum pvec_type)
 8676 	(DATA_SEG_BITS): Use it.
 8677 	(GCTYPEBITS, USE_LSB_TAG): Now also an enum, for GDB.
 8678 	(CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Now just an enum, for GDB.
 8679 	* mem-limits.h (EXCEEDS_LISP_PTR): Redo so that DATA_SEG_BITS need
 8680 	not be usable in #if.  This simplifies things.
 8681 
 8682 2012-07-26  Juanma Barranquero  <lekktu@gmail.com>
 8683 
 8684 	* makefile.w32-in ($(BLD)/emacs.$(O)): Update dependencies.
 8685 
 8686 2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 8687 
 8688 	Simplify export of symbols to GDB (Bug#12036).
 8689 	* .gdbinit (xgetptr, xgetint, xgettype): Don't use "set $bugfix =
 8690 	$bugfix.i", as this doesn't work (with GDB 7.4.1, anyway).
 8691 	(xgetptr, xgetint, xgettype, xcoding, xcharset, xprintbytestr):
 8692 	Adjust to changes in lisp.h and emacs.c, by using
 8693 	CHECK_LISP_OBJECT_TYPE rather than gdb_use_struct, VALMASK instead
 8694 	of $valmask, DATA_SEG_BITS instead of gdb_data_seg_bits,
 8695 	INTTYPEBITS instead of gdb_gctypebits - 1, USE_LSB_TAG instead of
 8696 	gdb_use_lsb, (1 << GCTYPEBITS) - 1 instead of $tagmask, VALBITS
 8697 	instead of gdb_valbits.
 8698 	(xvectype, xvector, xpr, xprintstr, xbacktrace): Similarly, use
 8699 	PSEUDOVECTOR_FLAG instead of PVEC_FLAG, and ARRAY_MARK_FLAG
 8700 	instead of gdb_array_mark_flag.
 8701 	(xboolvector): Get size from $->size, not $->header.size.
 8702 	Use BOOL_VECTOR_BITS_PER_CHAR rather than mystery constants.
 8703 	(xreload, hook-run, hookpost-run): Remove.
 8704 	* emacs.c: Include <verify.h>.
 8705 	(gdb_use_lsb, gdb_use_struct, gdb_valbits, gdb_gctypebits)
 8706 	(gdb_data_seg_bits, PVEC_FLAG, gdb_array_mark_flag, gdb_pvec_type):
 8707 	Remove.
 8708 	(gdb_CHECK_LISP_OBJECT_TYPE, gdb_DATA_SEG_BITS, gdb_GCTYPEBITS)
 8709 	(gdb_USE_LSB_TAG): New enum constants.
 8710 	(CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS, GCTYPEBITS, USE_LSB_TAG):
 8711 	Also define these as enum constants, so they're visible to GDB.
 8712 	(ARRAY_MARK_FLAG_VAL, PSEUDOVECTOR_FLAG_VAL, VALMASK_VAL): New macros.
 8713 	(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Also define these
 8714 	as constants, so they're visible to GDB.
 8715 	* lisp.h (VALBITS, INTTYPEBITS, FIXNUM_BITS, PSEUDOVECTOR_SIZE_BITS)
 8716 	(PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK, BOOL_VECTOR_BITS_PER_CHAR):
 8717 	Now enum constants, not macros, so they're visible to GDB.
 8718 	(CHECK_LISP_OBJECT_TYPE, DATA_SEG_BITS): Default to 0, as this is
 8719 	more convenient now.  All uses changed.
 8720 	(VALMASK) [USE_LSB_TAG]: Also define in this case.
 8721 	* mem-limits.h (EXCEEDS_LISP_PTR): Adjust to DATA_SEG_BITS change.
 8722 
 8723 2012-07-26  Dmitry Antipov  <dmantipov@yandex.ru>
 8724 
 8725 	Explicitly free restriction data that are not needed anymore.
 8726 	* editfns.c (save_restriction_restore): Free restriction data.
 8727 
 8728 2012-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 8729 
 8730 	* eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp,
 8731 	add argument, tune behavior, and adjust all callers.
 8732 
 8733 2012-07-25  Paul Eggert  <eggert@cs.ucla.edu>
 8734 
 8735 	Use typedef for EMACS_INT, EMACS_UINT.
 8736 	* lisp.h, s/ms-w32.h (EMACS_INT, EMACS_UINT): Use typedefs rather
 8737 	than macros.  This simplifies debugging in the usual case, since
 8738 	it lets GDB show addresses as 'EMACS_INT *' rather than 'long int *'
 8739 	and it allows expressions involving EMACS_INT casts.
 8740 	* .gdbinit (xreload): Simplify by using EMACS_INT cast.
 8741 
 8742 2012-07-25  Jan Djärv  <jan.h.d@swipnet.se>
 8743 
 8744 	* nsterm.m (ns_read_socket): Return early if there is a modal
 8745 	window (Bug#12043).
 8746 
 8747 2012-07-25  Martin Rudalics  <rudalics@gmx.at>
 8748 
 8749 	* frame.c (Fredirect_frame_focus): In doc-string don't mention
 8750 	that FOCUS-FRAME can be omitted.
 8751 
 8752 2012-07-25  Dmitry Antipov  <dmantipov@yandex.ru>
 8753 
 8754 	Adjust buffer text indirection counters at the end of Fkill_buffer.
 8755 	* buffer.c (Fkill_buffer): Adjust indirection counters when the
 8756 	buffer is definitely dead.  This should really fix an issue reported
 8757 	by Christoph Scholtes again.  (Bug#12007).
 8758 	(init_buffer_once): Initialize indirection counters of
 8759 	buffer_defaults and buffer_local_symbols (for sanity and safety).
 8760 
 8761 2012-07-24  Eli Zaretskii  <eliz@gnu.org>
 8762 
 8763 	* xdisp.c (init_iterator): Don't compute dimensions of truncation
 8764 	and continuation glyphs on tooltip frames, leave them at zero.
 8765 	Avoids continued lines in tooltips.  (Bug#11832)
 8766 
 8767 2012-07-24  Dmitry Antipov  <dmantipov@yandex.ru>
 8768 
 8769 	Simplify copy_overlay.
 8770 	* buffer.c (copy_overlay): Simplify.  Use build_marker.
 8771 	* lisp.h (struct Lisp_Overlay): Restore comment with minor tweaks.
 8772 
 8773 2012-07-23  Eli Zaretskii  <eliz@gnu.org>
 8774 
 8775 	* print.c (print_object): Don't crash when a frame's name is nil
 8776 	or invalid.  (Bug#12025)
 8777 
 8778 	* window.c (decode_any_window): Disable CHECK_LIVE_FRAME test, as
 8779 	it signals an error when a tooltip frame is being created.
 8780 
 8781 2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
 8782 
 8783 	Cleanup miscellaneous objects allocation and initialization.
 8784 	* alloc.c (allocate_misc): Change to static.  Add argument to
 8785 	specify the subtype.  Adjust comment and users.
 8786 	(build_overlay): New function.
 8787 	* buffer.c (copy_overlays, Fmake_overlay): Use it.
 8788 	* lisp.h (struct Lisp_Overlay): Remove obsolete comment.
 8789 	(allocate_misc): Remove prototype.
 8790 	(build_overlay): Add prototype.
 8791 
 8792 2012-07-23  Dmitry Antipov  <dmantipov@yandex.ru>
 8793 
 8794 	Swap buffer text indirection counters in Fbuffer_swap_text.
 8795 	* buffer.c (Fbuffer_swap_text): Swap indirections too.
 8796 	This avoids crash reported by Christoph Scholtes at
 8797 	https://lists.gnu.org/r/bug-gnu-emacs/2012-07/msg00785.html.
 8798 
 8799 2012-07-22  Jan Djärv  <jan.h.d@swipnet.se>
 8800 
 8801 	* nsmenu.m (Popdown_data): New struct.
 8802 	(pop_down_menu): p->pointer is Popdown_data.  Release the pool and
 8803 	free Popdown_data.
 8804 	(ns_popup_dialog): Use NSAutoreleasePool and pass it to pop_down_menu.
 8805 	(initWithContentRect): Make imgView and contentView non-static
 8806 	and autorelease them.  Also autorelease img and matrix (Bug#12005).
 8807 	(dealloc): Remove (Bug#12005).
 8808 
 8809 2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
 8810 
 8811 	Adjust consing_since_gc when objects are explicitly freed.
 8812 	* alloc.c (GC_DEFAULT_THRESHOLD): New macro.
 8813 	(Fgarbage_collect): Use it.  Change minimum to 1/10 of default.
 8814 	(free_cons, free_misc): Subtract object size from consing_since_gc.
 8815 
 8816 2012-07-22  Dmitry Antipov  <dmantipov@yandex.ru>
 8817 
 8818 	Simplify and cleanup markers positioning code.
 8819 	* marker.c (attach_marker): More useful eassert.
 8820 	(live_buffer, set_marker_internal): New function.
 8821 	(Fset_marker, set_marker_restricted): Use set_marker_internal.
 8822 	(set_marker_both, set_marker_restricted_both): Use live_buffer.
 8823 
 8824 2012-07-22  Paul Eggert  <eggert@cs.ucla.edu>
 8825 
 8826 	* buffer.h (struct buffer.indirections): Now ptrdiff_t, not int,
 8827 	as it's limited by the amount of memory, not by INT_MAX.
 8828 
 8829 2012-07-21  Eli Zaretskii  <eliz@gnu.org>
 8830 
 8831 	* keyboard.c (keys_of_keyboard): Bind language-change to 'ignore'
 8832 	in special-event-map.  See the discussion at
 8833 	https://lists.gnu.org/r/emacs-devel/2012-06/msg00417.html
 8834 	for the reasons.
 8835 
 8836 	* w32menu.c (add_menu_item): Cast to ULONG_PTR when assigning
 8837 	info.dwItemData.  Fixes crashes on 64-bit Windows.
 8838 	Suggested by Fabrice Popineau <fabrice.popineau@supelec.fr>.
 8839 
 8840 2012-07-21  Jan Djärv  <jan.h.d@swipnet.se>
 8841 
 8842 	* nsterm.m (accessibilityAttributeValue): New function.  (Bug#11134).
 8843 	(conversationIdentifier): Return value is NSInteger.
 8844 	* nsterm.m (accessibilityAttributeValue): Surround with NS_IMPL_COCOA.
 8845 
 8846 2012-07-21  Chong Yidong  <cyd@gnu.org>
 8847 
 8848 	* window.c (decode_any_window): Signal an error if the window is
 8849 	on a dead frame (Bug#11984).
 8850 
 8851 2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 8852 
 8853 	Add indirection counting to speed up Fkill_buffer.
 8854 	* buffer.h (struct buffer): New member.
 8855 	* buffer.c (Fget_buffer_create): Set indirection counter to 0.
 8856 	(Fmake_indirect_buffer): Set indirection counter to -1, increment
 8857 	base buffer indirection counter.
 8858 	(compact_buffer): If ENABLE_CHECKING, verify indirection counters.
 8859 	(Fkill_buffer): Adjust indirection counters as needed, don't walk
 8860 	through buffer list if indirection counter is 0.
 8861 
 8862 2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 8863 
 8864 	Extend the value returned by Fgarbage_collect with heap statistics.
 8865 	* alloc.c (Qheap): New symbol.
 8866 	(syms_of_alloc): DEFSYM it.
 8867 	(Fgarbage_collect): If DOUG_LEA_MALLOC, add mallinfo data.
 8868 	(Fmemory_free): Remove.
 8869 	(syms_of_alloc): Don't defsubr it.
 8870 	* buffer.c (Fcompact_buffer): Remove.
 8871 	(syms_of_buffer): Don't defsubr it.
 8872 
 8873 2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 8874 
 8875 	Make maybe_gc inline.
 8876 	Verify that inlining is always possible (GCC 4.7.1, -O3 -Winline).
 8877 	* lisp.h (consing_since_gc, gc_relative_threshold)
 8878 	(memory_full_cons_threshold): Revert declaration.
 8879 	(maybe_gc): Remove prototype, define as inline.
 8880 	* alloc.c: Remove old commented-out code.
 8881 	(consing_since_gc, gc_relative_threshold)
 8882 	(memory_full_cons_threshold): Revert to global.
 8883 	(maybe_gc): Remove.
 8884 
 8885 2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 8886 
 8887 	Simple wrapper for make_unibyte_string, adjust font_open_by_name.
 8888 	* lisp.h (build_unibyte_string): New function.
 8889 	* dosfns.c, fileio.c, fns.c, ftfont.c, process.c:
 8890 	* sysdep.c, w32fns.c, xfns.c: Use it.
 8891 	* font.c (font_open_by_name): Change 2nd and 3rd args to the only arg
 8892 	of type Lisp_Object to avoid redundant calls to make_unibyte_string.
 8893 	Adjust users accordingly.
 8894 	* font.h (font_open_by_name): Adjust prototype.
 8895 
 8896 2012-07-20  Dmitry Antipov  <dmantipov@yandex.ru>
 8897 
 8898 	Cleanup calls to Fgarbage_collect.
 8899 	* lisp.h (maybe_gc): New prototype.
 8900 	(consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
 8901 	Remove declarations.
 8902 	* alloc.c (maybe_gc): New function.
 8903 	(consing_since_gc, gc_relative_threshold, memory_full_cons_threshold):
 8904 	Make them static.
 8905 	* bytecode.c (MAYBE_GC): Use maybe_gc.
 8906 	* eval.c (eval_sub, Ffuncall): Likewise.
 8907 	* keyboard.c (read_char): Likewise.  Adjust call to maybe_gc
 8908 	to avoid dependency from auto-save feature.
 8909 
 8910 2012-07-19  Paul Eggert  <eggert@cs.ucla.edu>
 8911 
 8912 	* buffer.h (FOR_EACH_BUFFER): Rename from 'for_each_buffer'.
 8913 	(FOR_EACH_PER_BUFFER_OBJECT_AT): Rename from
 8914 	'for_each_per_buffer_object_at'.
 8915 	All uses changed.  It's better to use upper-case for macros that
 8916 	cannot be implemented as functions, to give the reader a clue
 8917 	that they're special.
 8918 
 8919 2012-07-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 8920 
 8921 	* alloc.c (Fgarbage_collect): Tweak docstring.
 8922 
 8923 2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
 8924 
 8925 	Tweak the value returned from Fgarbage_collect again.
 8926 	* alloc.c (Fgarbage_collect): New return value, as confirmed in
 8927 	https://lists.gnu.org/r/emacs-devel/2012-07/msg00418.html.
 8928 	Adjust documentation.
 8929 	(total_vector_bytes): Rename to total_vector_slots, adjust
 8930 	accounting.
 8931 	(total_free_vector_bytes): Rename to total_free_vector_slots,
 8932 	adjust accounting.
 8933 	(Qstring_bytes, Qvector_slots): New symbols.
 8934 	(syms_of_alloc): DEFSYM them.
 8935 
 8936 2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
 8937 
 8938 	Buffer compaction primitive which may be used from Lisp.
 8939 	* buffer.c (compact_buffer, Fcompact_buffer): New function.
 8940 	(syms_of_buffer): Register Fcompact_buffer.
 8941 	* alloc.c (Fgarbage_collect): Use compact_buffer.
 8942 	* buffer.h (compact_buffer): New prototype.
 8943 	(struct buffer_text): New member.
 8944 
 8945 2012-07-19  Dmitry Antipov  <dmantipov@yandex.ru>
 8946 
 8947 	New macro to iterate over all buffers, miscellaneous cleanups.
 8948 	* lisp.h (all_buffers): Remove declaration.
 8949 	* buffer.h (all_buffers): Add declaration, with comment.
 8950 	(for_each_buffer): New macro.
 8951 	* alloc.c (Fgarbage_collect, mark_object): Use it.
 8952 	* buffer.c (Fkill_buffer, Fbuffer_swap_text, Fset_buffer_multibyte)
 8953 	(init_buffer): Likewise.
 8954 	* data.c (Fset_default): Likewise.
 8955 	* coding.c (code_conversion_restore): Remove redundant check
 8956 	for dead buffer.
 8957 	* buffer.c (Fkill_buffer): Likewise.  Remove obsolete comment.
 8958 
 8959 2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
 8960 
 8961 	Fix bug that created negative-length intervals.
 8962 	* intervals.c (merge_interval_right, merge_interval_left):
 8963 	Do not zero out this interval if it is absorbed by its children,
 8964 	as this interval's total length doesn't change in that case.  See
 8965 	<https://lists.gnu.org/r/emacs-devel/2012-07/msg00403.html>.
 8966 
 8967 2012-07-18  Paul Eggert  <eggert@cs.ucla.edu>
 8968 
 8969 	* alloc.c (Fmake_bool_vector): Fix off-by-8 bug
 8970 	when invoking (make-bool-vector N t) and N is a positive
 8971 	multiple of 8 -- the last 8 bits were mistakenly cleared.
 8972 
 8973 	Remove some struct layout assumptions in bool vectors.
 8974 	* alloc.c (bool_header_size): New constant.
 8975 	(header_size, word_size): Move earlier, as they're now used earlier.
 8976 	Use 'word_size' in a few more places, where it's appropriate.
 8977 	(Fmake_bool_vector, sweep_vectors): Don't assume that there is no
 8978 	padding before the data member of a bool vector.
 8979 	(sweep_vectors): Use PSEUDOVECTOR_TYPEP, in an eassert, rather
 8980 	than doing the check by hand with an abort ().
 8981 
 8982 2012-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 8983 
 8984 	* eval.c (Fdefvar): Don't check constants since we only set the var if
 8985 	it's not yet defined anyway (bug#11904).
 8986 
 8987 	* lisp.h (last_undo_boundary): Declare new var.
 8988 	* keyboard.c (command_loop_1): Set it.
 8989 	* cmds.c (Fself_insert_command): Use it to only remove boundaries that
 8990 	were auto-added by the command loop (bug#11774).
 8991 
 8992 2012-07-18  Andreas Schwab  <schwab@linux-m68k.org>
 8993 
 8994 	* w32font.c (Qsymbol): Remove local definition.
 8995 	(syms_of_w32font): Don't DEFSYM it.
 8996 
 8997 2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
 8998 
 8999 	Fix sweep_vectors to handle large bool vectors correctly.
 9000 	* alloc.c (sweep_vectors): Account total_vector_bytes for
 9001 	bool vectors larger than VBLOCK_BYTES_MAX.
 9002 
 9003 2012-07-18  Chong Yidong  <cyd@gnu.org>
 9004 
 9005 	* frame.c (x_set_frame_parameters): Revert bogus change introduced
 9006 	in 2012-05-25 commit by Paul Eggert (Bug#11738).
 9007 
 9008 2012-07-18  Dmitry Antipov  <dmantipov@yandex.ru>
 9009 
 9010 	Return more descriptive data from Fgarbage_collect.
 9011 	Suggested by Stefan Monnier in
 9012 	https://lists.gnu.org/r/emacs-devel/2012-07/msg00369.html.
 9013 	* alloc.c (bounded_number): New function.
 9014 	(total_buffers, total_vectors): New variable.
 9015 	(total_string_size): Rename to total_string_bytes, adjust users.
 9016 	(total_vector_size): Rename to total_vector_bytes, adjust users.
 9017 	(sweep_vectors): Account total_vectors and total_vector_bytes.
 9018 	(Fgarbage_collect): New return value.  Adjust documentation.
 9019 	(gc_sweep): Account total_buffers.
 9020 	(Fmemory_free, Fmemory_use_counts): Use bounded_number.
 9021 	(VECTOR_SIZE): Remove.
 9022 	* data.c (Qfloat, Qvector, Qsymbol, Qstring, Qcons): Make global.
 9023 	(Qinterval, Qmisc): New symbols.
 9024 	(syms_of_data): Initialize them.
 9025 	* lisp.h (Qinterval, Qsymbol, Qstring, Qmisc, Qvector, Qfloat)
 9026 	(Qcons, Qbuffer): New declarations.
 9027 
 9028 2012-07-17  Paul Eggert  <eggert@cs.ucla.edu>
 9029 
 9030 	* alloc.c (Fmemory_free): Account for memory-free's own storage.
 9031 	Round up, not down.  Improve doc.
 9032 
 9033 2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 9034 
 9035 	Restore old code in allocate_string_data to avoid Faset breakage.
 9036 	Reported by Julien Danjou <julien@danjou.info> in
 9037 	https://lists.gnu.org/r/emacs-devel/2012-07/msg00371.html.
 9038 	* alloc.c (allocate_string_data): Restore old code with minor
 9039 	adjustments, fix comment to explain this subtle issue.
 9040 
 9041 2012-07-17  Eli Zaretskii  <eliz@gnu.org>
 9042 
 9043 	Remove FILE_SYSTEM_CASE.
 9044 	* s/msdos.h (FILE_SYSTEM_CASE): Don't define.
 9045 
 9046 	* fileio.c (FILE_SYSTEM_CASE): Don't define.
 9047 	(Ffile_name_directory, Fexpand_file_name): Don't use FILE_SYSTEM_CASE.
 9048 	Fixes problems on MS-DOS with Vtemp_file_name_pattern when
 9049 	call-process-region passes it through expand-file-name.
 9050 
 9051 	* dired.c (file_name_completion): Don't use FILE_SYSTEM_CASE.
 9052 
 9053 2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
 9054 
 9055 	Fix crash when creating indirect buffer (Bug#11917)
 9056 	* buffer.c (buffer_lisp_local_variables): Add argument CLONE.
 9057 	Don't handle unbound variables specially if non-zero.
 9058 	(Fbuffer_local_variables): Pass zero.
 9059 	(clone_per_buffer_values): Pass non-zero.
 9060 
 9061 2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
 9062 
 9063 	* gnutls.c (emacs_gnutls_handshake): Revert last change.  Add QUIT
 9064 	to make the loop interruptible.
 9065 
 9066 2012-07-17  Andreas Schwab  <schwab@linux-m68k.org>
 9067 
 9068 	* gnutls.c (emacs_gnutls_handshake): Only retry if
 9069 	GNUTLS_E_INTERRUPTED.
 9070 
 9071 2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 9072 
 9073 	Cleanup and convert miscellaneous checks to eassert.
 9074 	* alloc.c (mark_interval): Fix comment, partially rephrase
 9075 	old comment from intervals.h (see below).
 9076 	* intervals.c (find_interval, adjust_intervals_for_insertion)
 9077 	(delete_interval, adjust_intervals_for_deletion)
 9078 	(graft_intervals_into_buffer, temp_set_point_both, copy_intervals):
 9079 	Convert to eassert.
 9080 	(adjust_intervals_for_insertion, make_new_interval):
 9081 	Remove obsolete and unused code.
 9082 	* intervals.h (struct interval): Remove obsolete comment.
 9083 	* textprop.c (erase_properties): Remove unused code.
 9084 	(Fadd_text_properties, set_text_properties_1, Fremove_text_properties)
 9085 	(Fremove_list_of_text_properties): Convert to eassert.
 9086 
 9087 2012-07-17  Chong Yidong  <cyd@gnu.org>
 9088 
 9089 	* editfns.c (Finsert_char): Doc fix.
 9090 
 9091 2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 9092 
 9093 	Fix previous change to make Fmemory_free always accurate.
 9094 	* alloc.c (make_interval): Update total_free_intervals.
 9095 	(make_float): Likewise for total_free_floats.
 9096 	(free_cons, Fcons): Likewise for total_free_conses.
 9097 	(SETUP_ON_FREE_LIST, allocate_vector_from_block):
 9098 	Likewise for total_free_vector_bytes.
 9099 	(Fmake_symbol): Likewise for total_free_symbols.
 9100 	(bytes_free): Remove.
 9101 
 9102 2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 9103 
 9104 	Simple free memory accounting feature.
 9105 	* alloc.c (bytes_free, total_free_vector_bytes): New variable.
 9106 	(sweep_vectors): Accumulate size of free vectors.
 9107 	(Fgarbage_collect): Setup bytes_free.
 9108 	(Fmemory_free): New function.
 9109 	(syms_of_alloc): Register it.
 9110 
 9111 2012-07-17  Dmitry Antipov  <dmantipov@yandex.ru>
 9112 
 9113 	Cleanup overlays checking.
 9114 	* buffer.h (OVERLAY_VALID): Remove as useless synonym of OVERLAYP.
 9115 	* buffer.c (overlay_touches_p, recenter_overlay_lists): Change to
 9116 	eassert and OVERLAYP.
 9117 	(sort_overlays): Change to use OVERLAYP.
 9118 
 9119 2012-07-16  René Kyllingstad  <Rene@Kyllingstad.com>  (tiny change)
 9120 
 9121 	* editfns.c (Finsert_char): Make it interactive, and make the
 9122 	second arg optional.  Copy interactive spec and docstring from
 9123 	ucs-insert.
 9124 
 9125 2012-07-17  Paul Eggert  <eggert@cs.ucla.edu>
 9126 
 9127 	* floatfns.c (Fabs): Do not wrap fabs inside IN_FLOAT (Bug#11913).
 9128 	Unlike the other wrapped functions, fabs has an unspecified
 9129 	effect on errno.
 9130 
 9131 2012-07-16  Jan Djärv  <jan.h.d@swipnet.se>
 9132 
 9133 	* nsterm.m (keyDown): Interpret flags without left/right bits
 9134 	as the left key (Bug#11670).
 9135 
 9136 2012-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
 9137 
 9138 	Remove empty and useless init functions.
 9139 	* lisp.h (init_character_once, init_fns, init_image)
 9140 	(init_filelock, init_sound): Remove prototype.
 9141 	* character.c (init_character_once): Remove.
 9142 	* filelock.c (init_filelock): Likewise.
 9143 	* fns.c (init_fns): Likewise.
 9144 	* image.c (init_image): Likewise.
 9145 	* sound.c (init_sound): Likewise.
 9146 	* emacs.c (main): Adjust accordingly.
 9147 
 9148 2012-07-16  Dmitry Antipov  <dmantipov@yandex.ru>
 9149 
 9150 	* gtkutil.h: Tiny cleanups.
 9151 	(use_old_gtk_file_dialog): Remove useless declaration.
 9152 	(xg_uses_old_file_dialog): Add suggested const attribute.
 9153 
 9154 2012-07-15  Eli Zaretskii  <eliz@gnu.org>
 9155 
 9156 	* bidi.c (MAX_STRONG_CHAR_SEARCH): New macro.
 9157 	(bidi_paragraph_init): Use it to limit search forward for a strong
 9158 	directional character in abnormally large paragraphs full of
 9159 	neutral or weak characters.  (Bug#11943)
 9160 
 9161 2012-07-15  Stefano Facchini  <stefano.facchini@gmail.com>  (tiny change)
 9162 
 9163 	* gtkutil.c (xg_create_tool_bar): Apply "primary-toolbar" style to
 9164 	the toolbar (Bug#9451).
 9165 	(xg_make_tool_item): Give the widget event box a transparent
 9166 	background.
 9167 
 9168 2012-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
 9169 
 9170 	Cleanup basic allocation variables and functions.
 9171 	* alloc.c (ignore_warnings, init_intervals, init_float)
 9172 	(init_cons, init_symbol, init_marker): Remove.
 9173 	(interval_block_index): Initialize to INTERVAL_BLOCK_SIZE.
 9174 	(float_block_index): Initialize to FLOAT_BLOCK_SIZE.
 9175 	(cons_block_index): Initialize to CONS_BLOCK_SIZE.
 9176 	(symbol_block_size): Initialize to SYMBOL_BLOCK_SIZE.
 9177 	(marker_block_index): Initialize to MARKER_BLOCK_SIZE.
 9178 	(staticidx, init_alloc_once, init_strings, free_ablock):
 9179 	Remove redundant initialization.
 9180 	* fns.c (init_weak_hash_tables): Remove.
 9181 	* lisp.h (init_weak_hash_tables): Remove prototype.
 9182 
 9183 2012-07-15  Dmitry Antipov  <dmantipov@yandex.ru>
 9184 
 9185 	Use zero_vector where appropriate.
 9186 	* alloc.c (zero_vector): Define as Lisp_Object.  Adjust users
 9187 	accordingly.
 9188 	* lisp.h (zero_vector): New declaration.
 9189 	* font.c (null_vector): Remove.
 9190 	(syms_of_font): Remove initialization and staticpro.
 9191 	(font_list_entities, font_find_for_lface): Change to use zero_vector.
 9192 	* keymap.c (Faccessible_keymaps): Likewise.
 9193 
 9194 2012-07-15  Leo Liu  <sdl.web@gmail.com>
 9195 
 9196 	* fringe.c: Fix typo in comments.
 9197 
 9198 2012-07-14  Leo Liu  <sdl.web@gmail.com>
 9199 
 9200 	* fringe.c: Add a new bitmap exclamation-mark.
 9201 
 9202 2012-07-14  Eli Zaretskii  <eliz@gnu.org>
 9203 
 9204 	* gmalloc.c (GMALLOC_INHIBIT_VALLOC): Don't reference.
 9205 
 9206 	* s/msdos.h (BSD_SYSTEM, DATA_START, GC_SETJMP_WORKS, HAVE_MOUSE)
 9207 	(HAVE_MENUS): Don't define, defined by editing config.in with
 9208 	msdos/sed2v2.inp.
 9209 	(GMALLOC_INHIBIT_VALLOC): Don't define.
 9210 	(MODE_LINE_BINARY_TEXT): Remove, not used anymore.
 9211 
 9212 2012-07-14  Juanma Barranquero  <lekktu@gmail.com>
 9213 
 9214 	* s/ms-w32.h (GC_SETJMP_WORKS, GC_MARK_STACK): Set in nt/config.nt.
 9215 
 9216 2012-07-14  Glenn Morris  <rgm@gnu.org>
 9217 
 9218 	* s/aix4-2.h, s/freebsd.h, s/gnu-linux.h, s/hpux10-20.h:
 9219 	* s/irix6-5.h, s/netbsd.h, s/sol2-6.h, s/unixware.h:
 9220 	Let configure set GC_SETJMP_WORKS, GC_MARK_STACK.
 9221 
 9222 2012-07-13  Glenn Morris  <rgm@gnu.org>
 9223 
 9224 	* s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Let configure set it.
 9225 
 9226 	* s/usg5-4-common.h (SETUP_SLAVE_PTY): Let configure set it.
 9227 	* s/irix6-5.h (SETUP_SLAVE_PTY): No more need to unset it.
 9228 
 9229 2012-07-13  Jan Djärv  <jan.h.d@swipnet.se>
 9230 
 9231 	* nsterm.m (uRect): Only define if NS_IMPL_GNUSTEP.
 9232 	(x_free_frame_resources): Pass x_free_frame_resources to NSTRACE.
 9233 	(ns_lisp_to_color, ns_string_to_lispmod, ns_term_init)
 9234 	(ns_term_shutdown, requestService, initFrameFromEmacs): Use SSDATA
 9235 	where appropriate.
 9236 	(ns_exec_path, ns_load_path, changeFont): Put () around assignment used
 9237 	as boolean expression.
 9238 	(x_set_window_size): Remove unused variable toolbar.
 9239 	(ns_get_color_default, ns_mod_to_lisp): Remove.
 9240 	(ns_mouse_position): Remove unused variables xchar and ychar.
 9241 	(ns_compute_glyph_string_overhangs): Remove unused variable face.
 9242 	(ns_set_vertical_scroll_bar): Remove unused variable count.
 9243 	(ns_delete_terminal): Remove unused variable i.
 9244 	(ns_term_init): Remove unused variables r, g and b.
 9245 	(mouseDown): Remove unused variable window.
 9246 	(windowDidResize): Move definition of theWindow inside NS_IMPL_GNUSTEP.
 9247 	(initFrameFromEmacs): Remove unused variable vbextra.
 9248 	(mouseEntered): Remove unused variables p and dpyinfo.
 9249 	(mouseExited): Remove unused variables p and r.
 9250 	(ns_define_frame_cursor, ns_clear_frame_area)
 9251 	(ns_draw_window_cursor, ns_initialize_display_info): Make static.
 9252 	(menuDown): Assign [sender tag] to variable and cast the variable.
 9253 
 9254 	* nsterm.h (menuDown): Add id as type to argument sender.
 9255 	(ns_display_info_for_name): Add Lisp_Object argument.
 9256 	(ns_term_init): Add Lisp_Object argument.
 9257 	(ns_map_event_to_object): Add void argument.
 9258 	(ns_string_from_pasteboard, ns_string_to_pasteboard): Add correct
 9259 	prototype with arguments and only declare if __OBJC__.
 9260 	(nxatoms_of_nsselect): Add void argument.
 9261 	(ns_lisp_to_cursor_type): Add Lisp_Object argument.
 9262 	(ns_alloc_autorelease_pool): Add void argument.
 9263 	(ns_release_autorelease_pool): Add void* argument.
 9264 	(ns_get_defaults_value): Add const char* argument.
 9265 
 9266 	* nsmenu.m (ns_update_menubar, ns_menu_show, process_dialog)
 9267 	(initFromContents): Use SSDATA where appropriate.
 9268 	(ns_update_menubar): Add braces to ambigous if-else.
 9269 	(initWithTitle): Put () around assignment in if statement.
 9270 	(ns_menu_show): Remove unused variables window and keymap.
 9271 	(update_frame_tool_bar): Remove unused variable selected_p.
 9272 	(initWithContentRect): Remove unused variable this_cmd_name.
 9273 
 9274 	* nsimage.m (ns_load_image, allocInitFromFile): Use SSDATA where
 9275 	appropriate.
 9276 	(setXBMColor): Remove unused variable len.
 9277 	(setPixmapData): Put () around assignment in loop statement.
 9278 
 9279 	* nsfont.m (ns_get_family, ns_lang_to_script, ns_otf_to_script)
 9280 	(ns_registry_to_script, ns_get_req_script, nsfont_open): Use SSDATA
 9281 	where appropriate.
 9282 	(ns_get_covering_families, ns_findfonts, nsfont_list_family): Put ()
 9283 	around assignment in loop statement.
 9284 	(nsfont_open): Remove unused variable i.
 9285 	(nsfont_open): Remove unused variable len.
 9286 	(nsfont_draw): Remove unused variable cs.
 9287 
 9288 	* nsfns.m (x_set_icon_name, ns_set_name_internal)
 9289 	(ns_set_name_as_filename, ns_implicitly_set_icon_type)
 9290 	(x_set_icon_type, ns_lisp_to_cursor_type, Fns_read_file_name)
 9291 	(Fns_get_resource, Fns_set_resource, Fx_open_connection)
 9292 	(Fns_font_name, Fns_perform_service)
 9293 	(Fns_convert_utf8_nfd_to_nfc, ns_do_applescript)
 9294 	(Fns_do_applescript, Fx_show_tip): Use SSDATA where appropriate.
 9295 	(ns_set_name): Remove unused variable view.
 9296 	(x_set_menu_bar_lines): Remove unused variable olines.
 9297 	(x_set_tool_bar_lines): Remove unused variable root_window.
 9298 	(Fns_list_colors): Put () around assignment in while statement.
 9299 	(Fns_perform_service): Remove unused variable len.
 9300 	(Fns_display_usable_bounds): Remove unused variable top.
 9301 	(syms_of_nsfns): Remove unused variable i.
 9302 
 9303 	* nsmenu.m (ns_update_menubar): Exchange place of argument 2 and 3 to
 9304 	memcpy (Bug#11907).
 9305 
 9306 2012-07-13  Kalle Kankare  <kalle.kankare@iki.fi>  (tiny change)
 9307 
 9308 	* image.c (Fimagemagick_types): Initialize ex with GetExceptionInfo
 9309 	and free it with DestroyExceptionInfo (Bug#11558).
 9310 
 9311 2012-07-13  Juanma Barranquero  <lekktu@gmail.com>
 9312 
 9313 	* s/ms-w32.h (FIRST_PTY_LETTER, HAVE_SOCKETS): Move to nt/config.nt.
 9314 	(HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE___BUILTIN_UNWIND_INIT):
 9315 	Set here, not in nt/config.nt.
 9316 
 9317 2012-07-13  Eli Zaretskii  <eliz@gnu.org>
 9318 
 9319 	* xdisp.c (move_it_in_display_line_to): On GUI terminals, allow
 9320 	cursor overflow into the last glyph on display line when the right
 9321 	fringe is off.  (Bug#11832)
 9322 
 9323 2012-07-13  Paul Eggert  <eggert@cs.ucla.edu>
 9324 
 9325 	* xdisp.c (produce_special_glyphs): Now static.
 9326 	* dispextern.h (produce_special_glyphs): Remove decl.
 9327 
 9328 2012-07-13  Glenn Morris  <rgm@gnu.org>
 9329 
 9330 	* s/bsd-common.h, s/cygwin.h: Remove empty files.
 9331 	* s/freebsd.h, s/netbsd.h: Do not include bsd-common.h.
 9332 
 9333 	* s/usg5-4-common.h (USG, USG5):
 9334 	* s/template.h (USG5, USG, HPUX, BSD4_2, BSD_SYSTEM):
 9335 	* s/sol2-6.h (SOLARIS2):
 9336 	* s/irix6-5.h (IRIX6_5):
 9337 	* s/hpux10-20.h (USG, USG5, HPUX):
 9338 	* s/gnu-linux.h (USG, GNU_LINUX):
 9339 	* s/freebsd.h (BSD_SYSTEM):
 9340 	* s/darwin.h (BSD4_2, BSD_SYSTEM, DARWIN_OS):
 9341 	* s/cygwin.h (CYGWIN):
 9342 	* s/bsd-common.h (BSD_SYSTEM, BSD4_2):
 9343 	* s/aix4-2.h (USG, USG5, _AIX): Move "system type" macros to configure.
 9344 
 9345 2012-07-13  BT Templeton  <bpt@hcoop.net>  (tiny change)
 9346 
 9347 	* nsfont.m (ns_charset_covers): Don't abort if no bitmap (Bug#11853).
 9348 
 9349 2012-07-13  Glenn Morris  <rgm@gnu.org>
 9350 
 9351 	* s/usg5-4-common.h (NSIG_MINIMUM): Let configure set it.
 9352 
 9353 	* s/gnu-linux.h, s/irix6-5.h: Let configure set ULIMIT_BREAK_VALUE.
 9354 
 9355 	* process.c (init_process_emacs): Replace MIN_PTY_KERNEL_VERSION.
 9356 	* s/darwin.h (MIN_PTY_KERNEL_VERSION): Remove single-use macro.
 9357 
 9358 2012-07-12  Glenn Morris  <rgm@gnu.org>
 9359 
 9360 	* s/darwin.h (SYSTEM_PURESIZE_EXTRA): Move to configure.
 9361 
 9362 	* process.c (init_process_emacs): Rename from init_process.
 9363 	The old name is also the name of a Mach system call.
 9364 	* lisp.h, emacs.c: Update for this name change.
 9365 	* nsgui.h, sysselect.h, s/darwin.h: Remove workaround that is no
 9366 	longer needed.
 9367 
 9368 2012-07-12  Eli Zaretskii  <eliz@gnu.org>
 9369 
 9370 	* xdisp.c (insert_left_trunc_glyphs): Fix incorrect size in
 9371 	memmove call that removes glyphs covered by the left truncation
 9372 	glyph.  Improve commentary.
 9373 	(display_line): Fix display of continuation glyphs on GUI frames
 9374 	when the right fringe is turned off and variable-size fonts are
 9375 	used in the window.  Move the code that appends a stretch glyph to
 9376 	produce_special_glyphs, so that it could be used for truncation
 9377 	and continuation glyphs alike.
 9378 	(produce_special_glyphs) [HAVE_WINDOW_SYSTEM]: Produce a stretch
 9379 	glyph of a suitably computed width, to align the special glyphs at
 9380 	the window margin.  Code moved from display_line.  (Bug#11832)
 9381 
 9382 2012-07-12  Glenn Morris  <rgm@gnu.org>
 9383 
 9384 	* s/aix4-2.h, s/hpux10-20.h: Let configure set NO_EDITRES.
 9385 
 9386 	* s/gnu-linux.h, s/hpux10-20.h:
 9387 	Do not unconditionally define HAVE_XRMSETDATABASE.
 9388 
 9389 	* s/gnu-linux.h (UNIX98_PTYS): Let configure set it.
 9390 
 9391 2012-07-12  Paul Eggert  <eggert@cs.ucla.edu>
 9392 
 9393 	Fix typos that broke OS X build.
 9394 	Reported by Randal L. Schwartz in
 9395 	<https://lists.gnu.org/r/emacs-devel/2012-07/msg00225.html>.
 9396 	* nsterm.m (ns_timeout): Add missing local decl.
 9397 	(ns_get_color): snprintf -> sprintf, to fix typo.
 9398 
 9399 2012-07-12  Glenn Morris  <rgm@gnu.org>
 9400 
 9401 	* s/aix4-2.h, s/cygwin.h, s/darwin.h:
 9402 	* s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h:
 9403 	* s/sol2-6.h, s/unixware.h, s/usg5-4-common.h:
 9404 	Move PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF to configure.
 9405 
 9406 	* s/cygwin.h, s/darwin.h, s/gnu-linux.h, s/irix6-5.h:
 9407 	Move PTY_OPEN to configure.
 9408 
 9409 	* s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
 9410 	* s/gnu-linux.h, s/hpux10-20.h, s/irix6-5.h, s/template.h:
 9411 	* s/usg5-4-common.h: Move FIRST_PTY_LETTER, PTY_ITERATION to configure.
 9412 
 9413 2012-07-12  Dmitry Antipov  <dmantipov@yandex.ru>
 9414 
 9415 	Use empty_unibyte_string where applicable.
 9416 	* keyboard.c (parse_tool_bar_item): Use empty_unibyte_string.
 9417 	* lread.c (read1): Likewise.
 9418 	* xsettings.c (syms_of_xsettings): Likewise.
 9419 
 9420 2012-07-12  Glenn Morris  <rgm@gnu.org>
 9421 
 9422 	* s/cygwin.h (G_SLICE_ALWAYS_MALLOC):
 9423 	* s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN):
 9424 	* s/irix6-5.h (SETPGRP_RELEASES_CTTY, PREFER_VSUSP):
 9425 	* s/hpux10-20.h (RUN_TIME_REMAP):
 9426 	* s/bsd-common.h (TABDLY): Move to configure.
 9427 
 9428 	* s/hpux10-20.h, s/sol2-6.h: Move XOS_NEEDS_TIME_H to configure.
 9429 
 9430 	* s/bsd-common.h, s/darwin.h: Move TAB3 to configure.
 9431 
 9432 	* s/aix4-2.h (BROKEN_FIONREAD, BROKEN_SIGAIO, BROKEN_SIGPTY)
 9433 	(BROKEN_SIGPOLL, BROKEN_GET_CURRENT_DIR_NAME): Let configure set them.
 9434 
 9435 	* s/darwin.h (NO_ABORT, NO_MATHERR): Let configure set them.
 9436 
 9437 	* s/bsd-common.h, s/cygwin.h, s/gnu-linux.h, s/irix6-5.h:
 9438 	* s/template.h: Move NARROWPROTO to configure.
 9439 
 9440 2012-07-11  Glenn Morris  <rgm@gnu.org>
 9441 
 9442 	* s/gnu-linux.h, s/sol2-6.h: No longer define POSIX,
 9443 	unused since 2011-01-17 change to systty.h.
 9444 
 9445 	* s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h, s/gnu-linux.h:
 9446 	* s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
 9447 	Move HAVE_PTYS and HAVE_SOCKETS to configure.
 9448 
 9449 2012-07-11  Paul Eggert  <eggert@cs.ucla.edu>
 9450 
 9451 	* s/sol2-6.h (HAVE_LIBKSTAT): Remove.  (Bug#11914)
 9452 
 9453 2012-07-11  Glenn Morris  <rgm@gnu.org>
 9454 
 9455 	* s/darwin.h, s/gnu-linux.h, s/template.h:
 9456 	Move INTERRUPT_INPUT to configure.
 9457 
 9458 2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 9459 
 9460 	Minor adjustments to interning code.
 9461 	* lisp.h (intern, intern_c_string): Redefine as static inline
 9462 	wrappers for intern_1 and intern_c_string_1, respectively.
 9463 	(intern_1, intern_c_string_1): Rename prototypes.
 9464 	* lread.c (intern_1, intern_c_string_1, oblookup):
 9465 	Simplify Vobarray checking.
 9466 	* font.c (font_intern_prop): Likewise.  Adjust comment.
 9467 	* w32font.c (intern_font_name): Likewise.
 9468 
 9469 2012-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 9470 
 9471 	* gnutls.c (Fgnutls_boot): Properly parse :keylist argument.
 9472 
 9473 	* coding.c (Fdefine_coding_system_internal): Use XCAR/XCDR instead
 9474 	of Fcar/Fcdr if possible.
 9475 	* font.c (check_otf_features): Likewise.
 9476 	* fontset.c (Fnew_fontset): Likewise.
 9477 	* gnutls.c (Fgnutls_boot): Likewise.
 9478 	* minibuf.c (read_minibuf): Likewise.
 9479 	* msdos.c (IT_set_frame_parameters): Likewise.
 9480 	* xmenu.c (Fx_popup_dialog): Likewise.
 9481 	* w32menu.c (Fx_popup_dialog): Likewise.
 9482 
 9483 2012-07-11  Glenn Morris  <rgm@gnu.org>
 9484 
 9485 	* s/bsd-common.h, s/cygwin.h: No need to undefine INTERRUPT_INPUT,
 9486 	since nothing has defined it on these platforms.
 9487 
 9488 	* s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h:
 9489 	* s/irix6-5.h: Move SIGNALS_VIA_CHARACTERS to configure.
 9490 
 9491 	* s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
 9492 	* s/gnu-linux.h, s/hpux10-20.h, s/template.h, s/usg5-4-common.h:
 9493 	Move CLASH_DETECTION to configure.
 9494 
 9495 	* s/gnu.h: Remove file, which is now empty.
 9496 
 9497 	* s/gnu.h, s/gnu-linux.h:
 9498 	Move GNU_LIBRARY_PENDING_OUTPUT_COUNT to configure.
 9499 
 9500 2012-07-11  John Wiegley  <johnw@newartisans.com>
 9501 
 9502 	* alloc.c (mark_memory): Guard the "no_address_safety_analysis"
 9503 	function attribute, so we only use it if it exists in the
 9504 	compiler.
 9505 
 9506 2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 9507 
 9508 	Avoid call to strlen in fast_c_string_match_ignore_case.
 9509 	* search.c (fast_c_string_match_ignore_case): Change to use
 9510 	length argument.  Adjust users accordingly.
 9511 	* lisp.h (fast_c_string_match_ignore_case): Adjust prototype.
 9512 
 9513 2012-07-11  Paul Eggert  <eggert@cs.ucla.edu>
 9514 
 9515 	Assume mkdir, rmdir.
 9516 	* sysdep.c (mkdir) [!HAVE_MKDIR]: Remove.
 9517 	* sysdep.c (rmdir) [!HAVE_RMDIR]: Remove.
 9518 
 9519 	Assume rename.
 9520 	* sysdep.c (rename) [!HAVE_RENAME]: Remove.
 9521 
 9522 	Assume perror.
 9523 	* s/hpux10-20.h (HAVE_PERROR): Remove.
 9524 	* sysdep.c (perror) [HPUX && !HAVE_PERROR]:
 9525 	Remove dummy definition, as this problem was obsolete long ago.
 9526 
 9527 	Assume strerror.
 9528 	* sysdep.c (strerror) [!HAVE_STRERROR && !WINDOWSNT]: Remove.
 9529 
 9530 2012-07-11  Dmitry Antipov  <dmantipov@yandex.ru>
 9531 
 9532 	Avoid calls to strlen in font processing functions.
 9533 	* font.c (font_parse_name, font_parse_xlfd, font_parse_fcname)
 9534 	(font_open_by_name): Change to use length argument.
 9535 	Adjust users accordingly.
 9536 	* font.h (font_open_by_name, font_parse_xlfd, font_unparse_xlfd):
 9537 	Adjust prototypes.
 9538 	* xfont.c (xfont_decode_coding_xlfd, font_unparse_xlfd):
 9539 	Change to return ptrdiff_t.
 9540 	(xfont_list_pattern, xfont_match): Use length returned by
 9541 	xfont_decode_coding_xlfd.
 9542 	* xfns.c (x_default_font_parameter): Omit useless xstrdup.
 9543 
 9544 2012-07-11  Glenn Morris  <rgm@gnu.org>
 9545 
 9546 	* s/darwin.h, s/freebsd.h, s/netbsd.h:
 9547 	Move DONT_REOPEN_PTY to configure.
 9548 
 9549 	* sound.c (DEFAULT_SOUND_DEVICE) [!WINDOWSNT]:
 9550 	* s/netbsd.h (DEFAULT_SOUND_DEVICE): Let configure set it.
 9551 
 9552 2012-07-10  Paul Eggert  <eggert@cs.ucla.edu>
 9553 
 9554 	Remove "#define unix" that is no longer needed (Bug#11905).
 9555 	* s/aix4-2.h (unix): Remove; no longer needed.
 9556 
 9557 	EMACS_TIME simplification (Bug#11875).
 9558 	This replaces macros (which typically do not work in GDB)
 9559 	with functions, typedefs and enums, making the code easier to debug.
 9560 	The functional style also makes code easier to read and maintain.
 9561 	* systime.h: Include <sys/time.h> on all hosts, not just if
 9562 	WINDOWSNT, since 'struct timeval' is needed in general.
 9563 	(EMACS_TIME): Now a typedef, not a macro.
 9564 	(EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): Now constants,
 9565 	not macros.
 9566 	(EMACS_SECS, EMACS_NSECS, EMACS_TIME_SIGN, EMACS_TIME_VALID_P)
 9567 	(EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE, EMACS_TIME_EQ)
 9568 	(EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT)
 9569 	(EMACS_TIME_LE): Now functions, not macros.
 9570 	(EMACS_SET_SECS, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS)
 9571 	(EMACS_SET_USECS, EMACS_SET_SECS_USECS): Remove these macros,
 9572 	which are not functions.  All uses rewritten to use:
 9573 	(make_emacs_time): New function.
 9574 	(EMACS_SECS_ADDR, EMACS_SET_INVALID_TIME, EMACS_GET_TIME)
 9575 	(EMACS_ADD_TIME, EMACS_SUB_TIME): Remove these macros, which are
 9576 	not functions.  All uses rewritten to use the following, respectively:
 9577 	(emacs_secs_addr, invalid_emacs_time, get_emacs_time)
 9578 	(add_emacs_time, sub_emacs_time): New functions.
 9579 	* atimer.c: Don't include <sys/time.h>, as "systime.h" does this.
 9580 	* fileio.c (Fcopy_file):
 9581 	* xterm.c (XTflash): Get the current time closer to when it's used.
 9582 	* makefile.w32-in ($(BLD)/atimer.$(O)): Update dependencies.
 9583 
 9584 	* bytecode.c (targets): Suppress -Woverride-init warnings.
 9585 
 9586 	Simplify by avoiding confusing use of strncpy etc.
 9587 	* doc.c (Fsnarf_documentation):
 9588 	* fileio.c (Ffile_name_directory, Fsubstitute_in_file_name):
 9589 	* frame.c (Fmake_terminal_frame):
 9590 	* gtkutil.c (get_utf8_string):
 9591 	* lread.c (openp):
 9592 	* nsmenu.m (ns_update_menubar):
 9593 	* regex.c (regerror):
 9594 	Prefer memcpy to strncpy and strncat when either will do.
 9595 	* fileio.c (Fsubstitute_in_file_name):
 9596 	* keyboard.c (MULTI_LETTER_MOD, parse_modifiers_uncached)
 9597 	(menu_separator_name_p):
 9598 	* nsmenu.m (ns_update_menubar):
 9599 	Prefer memcmp to strncmp when either will do.
 9600 	* nsterm.m: Include <ftoastr.h>.
 9601 	(ns_get_color):
 9602 	* s/gnu-linux.h, s/sol2-6.h, s/unixware.h (PTY_TTY_NAME_SPRINTF):
 9603 	Prefer snprintf to strncpy.
 9604 	* nsterm.m (ns_term_init):
 9605 	* widget.c (set_frame_size) [0]: Prefer xstrdup to xmalloc + strncpy.
 9606 	* nsterm.m (ns_term_init):
 9607 	Avoid the need for strncpy, by using build_string or
 9608 	make_unibyte_string directly.  Use dtoastr, not snprintf.
 9609 	* process.c (Fmake_network_process): Diagnose service names that
 9610 	are too long, rather than silently truncating them or creating
 9611 	non-null-terminated names.
 9612 	(Fnetwork_interface_info): Likewise, for interface names.
 9613 	* sysdep.c (system_process_attributes) [GNU_LINUX]:
 9614 	Prefer sprintf to strncat.
 9615 	* xdisp.c (debug_method_add) [GLYPH_DEBUG]:
 9616 	Prefer vsnprintf to vsprintf + strncpy.
 9617 
 9618 2012-07-10  Glenn Morris  <rgm@gnu.org>
 9619 
 9620 	* dispnew.c (PENDING_OUTPUT_COUNT) [!__GNU_LIBRARY__]:
 9621 	Clarify fallback case.
 9622 
 9623 2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 9624 
 9625 	Use XCAR and XCDR instead of Fcar and Fcdr where possible.
 9626 	* callint.c, coding.c, doc.c, editfns.c, eval.c, font.c, fontset.c,
 9627 	* frame.c, gnutls.c, minibuf.c, msdos.c, textprop.c, w32fns.c,
 9628 	* w32menu.c, window.c, xmenu.c: Change to use XCAR and XCDR
 9629 	where argument type is known to be a Lisp_Cons.
 9630 
 9631 2012-07-10  Tom Tromey  <tromey@redhat.com>
 9632 
 9633 	* bytecode.c (BYTE_CODE_THREADED): New macro.
 9634 	(BYTE_CODES): New macro.  Replaces all old byte-code defines.
 9635 	(enum byte_code_op): New type.
 9636 	(CASE, NEXT, FIRST, CASE_DEFAULT, CASE_ABORT): New macros.
 9637 	(exec_byte_code): Use them.  Use token threading when applicable.
 9638 
 9639 2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 9640 
 9641 	Optimize pure C strings initialization.
 9642 	* lisp.h (make_pure_string): Fix prototype.
 9643 	(build_pure_c_string): New function, defined as static inline.  This
 9644 	provides a better opportunity to optimize away calls to strlen when
 9645 	the function is called with compile-time constant argument.
 9646 	* alloc.c (make_pure_c_string): Fix comment.  Change to add nchars
 9647 	argument, adjust users accordingly.  Use build_pure_c_string where
 9648 	appropriate.
 9649 	* buffer.c, coding.c, data.c, dbusbind.c, fileio.c, fontset.c, frame.c,
 9650 	* keyboard.c, keymap.c, lread.c, search.c, syntax.c, w32fns.c, xdisp.c,
 9651 	* xfaces.c, xfns.c, xterm.c: Use build_pure_c_string where appropriate.
 9652 
 9653 2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 9654 
 9655 	Avoid calls to strlen in miscellaneous functions.
 9656 	* buffer.c (init_buffer): Use precalculated len, adjust if needed.
 9657 	* font.c (Ffont_xlfd_name): Likewise.  Change to call make_string.
 9658 	* lread.c (openp): Likewise.
 9659 
 9660 2012-07-10  Dmitry Antipov  <dmantipov@yandex.ru>
 9661 
 9662 	Avoid calls to strlen in path processing functions.
 9663 	* fileio.c (file_name_as_directory): Add comment.  Change to add
 9664 	srclen argument and return the length of result.  Adjust users
 9665 	accordingly.
 9666 	(directory_file_name): Fix comment.  Change to add srclen argument,
 9667 	swap 1st and 2nd arguments to obey the common convention.
 9668 	Adjust users accordingly.
 9669 	* filelock.c (fill_in_lock_file_name): Avoid calls to strlen.
 9670 
 9671 2012-07-10  Glenn Morris  <rgm@gnu.org>
 9672 
 9673 	* s/cygwin.h, s/darwin.h, s/freebsd.h, s/netbsd.h, s/unixware.h:
 9674 	Move PENDING_OUTPUT_COUNT definition to configure.
 9675 
 9676 	* s/irix6-5.h (DATA_START, DATA_SEG_BITS):
 9677 	* s/hpux10-20.h (DATA_SEG_BITS, DATA_START):
 9678 	* s/gnu.h (DATA_START): Move definitions to configure.
 9679 
 9680 	* s/irix6-5.h (SETUP_SLAVE_PTY, PTY_NAME_SPRINTF): Drop ifdef guards.
 9681 	We include usg5-4-common.h, which defines them both.
 9682 
 9683 	* s/gnu.h: Don't include fcntl.h (every file in Emacs that uses
 9684 	O_RDONLY already includes it).
 9685 
 9686 	Stop ns builds setting the EMACSLOADPATH environment variable.
 9687 	* nsterm.m (ns_load_path): Rename from ns_init_paths.
 9688 	Now it does not set EMACSLOADPATH, just returns the load-path string.
 9689 	* nsterm.h: Update accordingly.
 9690 	* lread.c [HAVE_NS]: Include nsterm.h.
 9691 	(init_lread) [HAVE_NS]: Use ns_load_path.
 9692 	* emacs.c (main) [HAVE_NS]: No longer call ns_init_paths.
 9693 
 9694 2012-07-09  Glenn Morris  <rgm@gnu.org>
 9695 
 9696 	* s/gnu.h (SIGNALS_VIA_CHARACTERS): No need to define it here,
 9697 	since the included bsd-common.h does so.
 9698 
 9699 	Stop ns builds setting the EMACSPATH environment variable.
 9700 	* nsterm.m (ns_exec_path): New function, split from ns_init_paths.
 9701 	(ns_init_paths): Do not set EMACSPATH.
 9702 	* nsterm.h (ns_exec_path): Add it.
 9703 	* callproc.c (init_callproc_1, init_callproc) [HAVE_NS]:
 9704 	Use ns_exec_path.
 9705 
 9706 	* nsterm.m, nsterm.h (ns_etc_directory): Fix type, empty return.
 9707 
 9708 2012-07-09  Paul Eggert  <eggert@cs.ucla.edu>
 9709 
 9710 	* process.c (wait_reading_process_output): 'waitchannels' was unset
 9711 	when read_kbd || !NILP (wait_for_cell); fix this.
 9712 
 9713 	Add GCC-style 'const' attribute to functions that can use it.
 9714 	* character.h (char_resolve_modifier_mask):
 9715 	* keyboard.h (make_ctrl_char):
 9716 	* lisp.h (multibyte_char_to_unibyte, multibyte_char_to_unibyte_safe)
 9717 	(init_character_once, next_almost_prime, init_fns, init_image)
 9718 	(flush_pending_output, init_sound):
 9719 	* mem-limits.h (start_of_data):
 9720 	* menu.h (finish_menu_items):
 9721 	Add ATTRIBUTE_CONST.
 9722 	* emacs.c (DEFINE_DUMMY_FUNCTION):
 9723 	Declare the dummy function with ATTRIBUTE_CONST.
 9724 	* lisp.h (Fbyteorder, Fmax_char, Fidentity):
 9725 	Add decls with ATTRIBUTE_CONST.
 9726 
 9727 	Minor improvements to make_formatted_string.
 9728 	* alloc.c (make_formatted_string): Prefer int to ptrdiff_t
 9729 	where int is good enough, as vsprintf returns an int.
 9730 	* lisp.h (make_formatted_string): Add ATTRIBUTE_FORMAT_PRINTF.
 9731 
 9732 2012-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
 9733 
 9734 	Use make_formatted_string to avoid double length calculation.
 9735 	* lisp.h (make_formatted_string): New prototype.
 9736 	* alloc.c (make_formatted_string): New function.
 9737 	* buffer.c (Fgenerate_new_buffer_name): Use it.
 9738 	* dbusbind.c (syms_of_dbusbind): Likewise.
 9739 	* editfns.c (Fcurrent_time_zone): Likewise.
 9740 	* filelock.c (get_boot_time): Likewise.
 9741 	* frame.c (make_terminal_frame, set_term_frame_name)
 9742 	(x_report_frame_params): Likewise.
 9743 	* image.c (gs_load): Likewise.
 9744 	* minibuf.c (get_minibuffer): Likewise.
 9745 	* msdos.c (dos_set_window_size): Likewise.
 9746 	* process.c (make_process): Likewise.
 9747 	* xdisp.c (ensure_echo_area_buffers): Likewise.
 9748 	* xsettings.c (apply_xft_settings): Likewise.
 9749 
 9750 2012-07-09  Glenn Morris  <rgm@gnu.org>
 9751 
 9752 	Stop ns builds polluting the environment with EMACSDATA, EMACSDOC.
 9753 	* nsterm.m (ns_etc_directory): New function, split from ns_init_paths.
 9754 	(ns_init_paths): Do not set EMACSDATA, EMACSDOC.
 9755 	* nsterm.h (ns_etc_directory): Add it.
 9756 	* callproc.c [HAVE_NS]: Include nsterm.h.
 9757 	(init_callproc_1, init_callproc) [HAVE_NS]: Use ns_etc_directory.
 9758 
 9759 2012-07-09  Dmitry Antipov  <dmantipov@yandex.ru>
 9760 
 9761 	Move marker debugging code under MARKER_DEBUG.
 9762 	* marker.c (MARKER_DEBUG): Move marker debugging code under
 9763 	#ifdef MARKER_DEBUG because byte_char_debug_check is too slow
 9764 	for bootstrap with --enable-checking (~3x slowdown reported
 9765 	by Juanma Barranquero <lekktu@gmail.com>).
 9766 	(verify_bytepos): Move under #ifdef MARKER_DEBUG.
 9767 
 9768 2012-07-08  Paul Eggert  <eggert@cs.ucla.edu>
 9769 
 9770 	* systime.h (EMACS_SUB_TIME): Clarify behavior with unsigned time_t.
 9771 	See <https://bugs.gnu.org/11825#29>.
 9772 
 9773 2012-07-08  Eli Zaretskii  <eliz@gnu.org>
 9774 
 9775 	* xdisp.c (fill_glyphless_glyph_string): If the face of the glyph
 9776 	has no font, use the frame's font.  (Bug#11813)
 9777 	(display_line): Add commentary about displaying truncation glyphs
 9778 	on GUI frames.
 9779 	(produce_special_glyphs): Move here from term.c.
 9780 
 9781 	* term.c (produce_special_glyphs): Move to xdisp.c.
 9782 
 9783 	* dispextern.h (produce_special_glyphs): Move prototype to xdisp.c
 9784 	section.
 9785 
 9786 2012-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 9787 
 9788 	* xdisp.c (display_line): Avoid warning about implicit declaration
 9789 	of FRAME_FONT.
 9790 
 9791 	* frame.c (get_frame_param): Define only if HAVE_WINDOW_SYSTEM.
 9792 
 9793 	* lisp.h: Remove empty conditional.
 9794 
 9795 2012-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 9796 
 9797 	* lread.c (load_path_check): Now static.
 9798 
 9799 	Fix some minor --with-ns problems found by static checking.
 9800 	* frame.c (Ftool_bar_pixel_width) [!FRAME_TOOLBAR_WIDTH]:
 9801 	(x_set_font) [!HAVE_X_WINDOWS]:
 9802 	* image.c (xpm_load_image) [HAVE_NS]:
 9803 	(x_to_xcolors) [!HAVE_X_WINDOWS && !HAVE_NTGUI]:
 9804 	(x_disable_image) [!HAVE_NS && !HAVE_NTGUI]:
 9805 	Remove unused local.
 9806 	(Fx_parse_geometry) [HAVE_NS]: Don't return garbage.
 9807 	(xpm_load_image) [HAVE_NS && !HAVE_XPM]: Remove unused label.
 9808 	* image.c (x_create_bitmap_from_file) [HAVE_NS]:
 9809 	(xpm_load_image, xpm_load) [HAVE_NS && !HAVE_XPM]:
 9810 	* nsselect.m (symbol_to_nsstring, ns_string_to_pasteboard_internal):
 9811 	* xfaces.c (Fx_load_color_file) [!HAVE_X_WINDOWS]:
 9812 	Fix pointer signedness problem.
 9813 	* xfaces.c (FRAME_X_FONT_TABLE):
 9814 	* xterm.h (FRAME_X_FONT_TABLE): Remove unused, incompatible macros.
 9815 
 9816 2012-07-07  Glenn Morris  <rgm@gnu.org>
 9817 
 9818 	* lread.c (load_path_check): New function, split from init_lread.
 9819 	(init_lread): Reorganize.  Motivation:
 9820 	If EMACSLOADPATH is set, check/warn about that rather than the
 9821 	defaults, which we are not going to use.  Hence we can remove
 9822 	the turn_off_warning and WINDOWSNT || HAVE_NS tests.
 9823 	Don't warn if site-lisp directories are missing.
 9824 	If not installed, start from a blank load-path, since
 9825 	PATH_LOADSEARCH refers to the eventual installation directories.
 9826 
 9827 2012-07-07  Eli Zaretskii  <eliz@gnu.org>
 9828 
 9829 	Support truncation and continuation glyphs on GUI frames, when
 9830 	fringes are disabled.  (Bug#11832)
 9831 	* xdisp.c (init_iterator): Get dimensions of truncation and
 9832 	continuation glyphs even if on GUI frames.
 9833 	Adjust it->last_visible_x on GUI frames when the left or right fringes,
 9834 	or both, are absent.
 9835 	(start_display, move_it_in_display_line_to): Handle the case of a
 9836 	GUI frame without a fringe to display continuation or truncation
 9837 	glyphs.
 9838 	(insert_left_trunc_glyphs): Support GUI frames: make sure
 9839 	truncation glyphs overwrite enough glyphs from the current line to
 9840 	have sufficient space in pixels.
 9841 	(display_line): Support truncation and continuation glyphs on GUI
 9842 	frames.  If some spare pixels are left on the line after inserting
 9843 	the truncation glyphs, fill that space with a stretch glyph of a
 9844 	suitably computed width.
 9845 
 9846 	* term.c (produce_special_glyphs): Call PRODUCE_GLYPHS, not
 9847 	produce_glyphs, to support GUI sessions.
 9848 
 9849 2012-07-07  Paul Eggert  <eggert@cs.ucla.edu>
 9850 
 9851 	* sysdep.c (ULLONG_MAX): Define if not already defined (Bug#11781).
 9852 
 9853 	* sysdep.c (list_system_processes): Port to NetBSD-current (Bug#11797).
 9854 
 9855 	Do not require float-time's arg to fit in time_t (Bug#11825).
 9856 	This works better on hosts where time_t is unsigned, and where
 9857 	float-time is applied to the (negative) difference between two times.
 9858 	* editfns.c (decode_time_components): Last arg is now double *,
 9859 	not int *, and means to store all the result as a double, without
 9860 	worrying about whether the seconds part fits in time_t.
 9861 	All callers changed.
 9862 	(lisp_time_argument): Remove last int * arg, as it's no longer needed.
 9863 	All callers changed.
 9864 	(Ffloat_time): Do not fail merely because the specified time falls
 9865 	outside of time_t range.
 9866 
 9867 2012-07-07  Glenn Morris  <rgm@gnu.org>
 9868 
 9869 	* s/darwin.h (HAVE_RES_INIT, HAVE_LIBRESOLV):
 9870 	* s/hpux10-20.h (HAVE_RINT, HAVE_RANDOM):
 9871 	* s/unixware.h (HAVE_GETWD): Move undefs to configure (effectively).
 9872 
 9873 2012-07-07  Juanma Barranquero  <lekktu@gmail.com>
 9874 
 9875 	* makefile.w32-in (DISPEXTERN_H, $(BLD)/regex.$(O)):
 9876 	Update dependencies.
 9877 
 9878 	* s/ms-w32.h [_MSC_VER]: Remove strcasecmp, strncasecmp.
 9879 
 9880 2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
 9881 
 9882 	Use c_strcasecmp for ASCII case-insensitive comparison (Bug#11786).
 9883 	* dispextern.h, nsfns.m, nsterm.m: Include <c-strcase.h>.
 9884 	* dispextern.h (xstrcasecmp): Rewrite using c_strcasecmp.
 9885 	* nsfns.m (x_get_string_resource): Use c_strncasecmp, not strncasecmp.
 9886 	* nsterm.m (ns_default): Use c_strcasecmp, not strcasecmp.
 9887 	* xfaces.c (xstrcasecmp) [!HAVE_STRCASECMP]: Remove.
 9888 
 9889 	* xfont.c (compare_font_names): Redo to omit the need for casts.
 9890 
 9891 2012-07-06  Andreas Schwab  <schwab@linux-m68k.org>
 9892 
 9893 	* xfns.c (Fx_change_window_property): Doc fix.
 9894 	* w32fns.c (Fx_change_window_property): Doc fix.
 9895 
 9896 	* w32fns.c (Fx_window_property): Accept the same arguments as the
 9897 	X Windows version.  Doc fix.
 9898 	* xfns.c (Fx_window_property): Doc fix.  (Bug#11870)
 9899 
 9900 2012-07-06  Juanma Barranquero  <lekktu@gmail.com>
 9901 	    Eli Zaretskii  <eliz@gnu.org>
 9902 
 9903 	* s/ms-w32.h: Settings not specific to Windows moved to nt/config.nt.
 9904 	Windows-specific code from nt/config.nt moved here.
 9905 	Obsolete settings removed.
 9906 
 9907 2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
 9908 
 9909 	* process.c: Avoid unnecessary calls to gettime.
 9910 	(wait_reading_process_output): Don't get the time of day
 9911 	when gobbling data immediately and not waiting, as there's no need
 9912 	for it in that case.  This removes a FIXME.
 9913 
 9914 2012-07-06  Jan Djärv  <jan.h.d@swipnet.se>
 9915 
 9916 	* gtkutil.c (xg_event_is_for_scrollbar): Assign gwin when HAVE_GTK3
 9917 	is defined (Bug#11768).
 9918 
 9919 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9920 
 9921 	Fix marker debugging code.
 9922 	* marker.c (byte_char_debug_check): Do not perform the check
 9923 	if buffer is not multibyte.
 9924 	(buf_charpos_to_bytepos, buf_bytepos_to_charpos):
 9925 	Call byte_char_debug_check with correct arguments.
 9926 
 9927 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9928 
 9929 	Compile marker debugging code only if ENABLE_CHECKING is defined.
 9930 	* marker.c (byte_char_debug_check, count_markers):
 9931 	Use only if ENABLE_CHECKING is defined.
 9932 	(byte_debug_flag): Remove.
 9933 	(CONSIDER, buf_charpos_to_bytepos, buf_bytepos_to_charpos):
 9934 	Always call byte_char_debug_check if ENABLE_CHECKING is defined.
 9935 
 9936 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9937 
 9938 	Avoid code repetition in marker-related functions.
 9939 	* marker.c (attach_marker): New function.
 9940 	(Fset_marker, set_marker_restricted, set_marker_both)
 9941 	(set_marker_restricted_both): Use it.
 9942 	(Fset_marker, set_marker_restricted, Fbuffer_has_markers_at):
 9943 	Consistently rename charno to charpos.
 9944 	(marker_position): Add eassert.
 9945 	(marker_byte_position): Convert to eassert.
 9946 
 9947 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9948 
 9949 	Simplify list operations in unchain_overlay and unchain_marker.
 9950 	* buffer.c (unchain_overlay): Simplify.  Add comment.
 9951 	* marker.c (unchain_marker): Simplify.  Fix comments.
 9952 
 9953 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9954 
 9955 	Introduce fast path for the widely used marker operation.
 9956 	* alloc.c (build_marker): New function.
 9957 	* lisp.h (build_marker): New prototype.
 9958 	* buffer.c (clone_per_buffer_values, Fmake_indirect_buffer): Use it.
 9959 	* composite.c (autocmp_chars): Likewise.
 9960 	* editfns.c (buildmark): Remove.
 9961 	(Fpoint_marker, Fpoint_min_marker, Fpoint_max_marker)
 9962 	(save_restriction_save): Use build_marker.
 9963 	* marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
 9964 	* window.c (save_window_save): Likewise.
 9965 
 9966 2012-07-06  Dmitry Antipov  <dmantipov@yandex.ru>
 9967 
 9968 	Do not use Fdelete_overlay in delete_all_overlays
 9969 	to avoid redundant calls to unchain_overlay.
 9970 	* buffer.c (drop_overlay): New function.
 9971 	(delete_all_overlays, Fdelete_overlay): Use it.
 9972 	* minibuf.c (get_minibuffer): Fix comment.
 9973 
 9974 2012-07-06  Paul Eggert  <eggert@cs.ucla.edu>
 9975 
 9976 	Port to OpenBSD 5.1 amd64.
 9977 	* sysdep.c [BSD_SYSTEM]: Include <sys/param.h> before <sys/sysctl.h>.
 9978 	This is needed for OpenBSD, and should be harmless on all BSD systems.
 9979 	Also, include <sys/sysctl.h>, as it should be available on all
 9980 	BSD_SYSTEM hosts given that we're already calling sysctl in that case.
 9981 	(list_system_processes) [__OpenBSD__]: Use DARWIN_OS style mib, but
 9982 	use p_pid member, not kp_proc.pid.
 9983 
 9984 2012-07-06  Glenn Morris  <rgm@gnu.org>
 9985 
 9986 	* Makefile.in (emacs$(EXEEXT)): Don't check for load-path shadows.
 9987 
 9988 2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
 9989 
 9990 	More xmalloc and related cleanup.
 9991 	* alloc.c, bidi.c, buffer.c, buffer.h, bytecode.c, callint.c:
 9992 	* callproc.c, charset.c, coding.c, composite.c, data.c, dispnew.c:
 9993 	* doc.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fns.c:
 9994 	* font.c, fontset.c, frame.c, fringe.c, ftfont.c, ftxfont.c, gmalloc.c:
 9995 	* gtkutil.c, image.c, keyboard.c, keymap.c, lread.c, macros.c, menu.c:
 9996 	* nsfns.m, nsfont.m, nsmenu.m, nsterm.m, print.c, process.c, ralloc.c:
 9997 	* regex.c, region-cache.c, scroll.c, search.c, sound.c, syntax.c:
 9998 	* sysdep.c, term.c, termcap.c, unexmacosx.c, window.c, xdisp.c:
 9999 	* xfaces.c, xfns.c, xftfont.c, xgselect.c, xmenu.c, xrdb.c, xselect.c:
10000 	* xterm.c:
10001 	Omit needless casts involving void * pointers and allocation.
10002 	Prefer "P = xmalloc (sizeof *P)" to "P = xmalloc (sizeof (TYPE_OF_P))",
10003 	as the former is more robust if P's type is changed.
10004 	Prefer xzalloc to xmalloc + memset 0.
10005 	Simplify malloc-or-realloc to realloc.
10006 	Don't worry about xmalloc returning a null pointer.
10007 	Prefer xstrdup to xmalloc + strcpy.
10008 	* editfns.c (Fmessage_box): Grow message_text by at least 80 when
10009 	growing it.
10010 	* keyboard.c (apply_modifiers_uncached): Prefer local array to
10011 	alloca of a constant.
10012 
10013 2012-07-05  Eli Zaretskii  <eliz@gnu.org>
10014 
10015 	* xdisp.c (display_line): Fix horizontal pixel coordinates when
10016 	hscroll is larger than the line width.  Fixes long and futile
10017 	looping inside extend_face_to_end_of_line (on a TTY) producing
10018 	glyphs that are not needed and thrown away.
10019 
10020 2012-07-05  Dmitry Antipov  <dmantipov@yandex.ru>
10021 
10022 	* marker.c (set_marker_restricted_both): Simplify by using
10023 	clip_to_bounds.
10024 
10025 2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
10026 
10027 	* editfns.c (region_limit): Simplify by using clip_to_bounds.
10028 
10029 2012-07-05  Jan Djärv  <jan.h.d@swipnet.se>
10030 
10031 	* gtkutil.c (gtk_scrollbar_new, gtk_box_new): Define when HAVE_GTK3 is
10032 	not defined (Bug#11768).
10033 	(xg_create_frame_widgets): Use gtk_plug_new_for_display (Bug#11768).
10034 	(xg_create_frame_widgets, create_dialog, xg_get_file_with_chooser)
10035 	(make_widget_for_menu_item, xg_make_tool_item): Use gtk_box_new
10036 	followed by gtk_box_set_homogeneous (Bug#11768).
10037 	(xg_update_menu_item): Use GTK_IS_BOX (Bug#11768).
10038 	(update_theme_scrollbar_width, xg_create_scroll_bar):
10039 	Use gtk_scrollbar_new (Bug#11768).
10040 	(xg_event_is_for_scrollbar): Use Gdk Device functions for HAVE_GTK3.
10041 	(is_box_type): New function (Bug#11768).
10042 	(xg_tool_item_stale_p): Call is_box_type.
10043 	(xg_initialize): Get settings by calling gtk_settings_get_for_screen
10044 	with default display (Bug#11768).
10045 
10046 2012-07-05  Eli Zaretskii  <eliz@gnu.org>
10047 
10048 	* xdisp.c (window_hscroll_limited): New function.
10049 	(pos_visible_p, init_iterator): Use it to avoid overflow of pixel
10050 	coordinates when window's hscroll is set to insanely large
10051 	values.  (Bug#11857)
10052 
10053 2012-07-05  Juanma Barranquero  <lekktu@gmail.com>
10054 
10055 	* makefile.w32-in ($(BLD)/dired.$(O), $(BLD)/fileio.$(O)): Fix typo.
10056 	($(BLD)/terminal.$(O), $(BLD)/syntax.$(O)): Update dependencies.
10057 
10058 2012-07-05  Dmitry Antipov  <dmantipov@yandex.ru>
10059 
10060 	Cleanup xmalloc.
10061 	* lisp.h (xzalloc): New prototype.  Omit needless casts.
10062 	* alloc.c (xzalloc): New function.  Omit needless casts.
10063 	* charset.c: Omit needless casts.  Convert all calls to
10064 	xmalloc with following memset to xzalloc.
10065 	* dispnew.c: Likewise.
10066 	* fringe.c: Likewise.
10067 	* image.c: Likewise.
10068 	* sound.c: Likewise.
10069 	* term.c: Likewise.
10070 	* w32fns.c: Likewise.
10071 	* w32font.c: Likewise.
10072 	* w32term.c: Likewise.
10073 	* xfaces.c: Likewise.
10074 	* xfns.c: Likewise.
10075 	* xterm.c: Likewise.
10076 	* atimer.c: Omit needless casts.
10077 	* buffer.c: Likewise.
10078 	* callproc.c: Likewise.
10079 	* ccl.c: Likewise.
10080 	* coding.c: Likewise.
10081 	* composite.c: Likewise.
10082 	* doc.c: Likewise.
10083 	* doprnt.c: Likewise.
10084 	* editfns.c: Likewise.
10085 	* emacs.c: Likewise.
10086 	* eval.c: Likewise.
10087 	* filelock.c: Likewise.
10088 	* fns.c: Likewise.
10089 	* gtkutil.c: Likewise.
10090 	* keyboard.c: Likewise.
10091 	* lisp.h: Likewise.
10092 	* lread.c: Likewise.
10093 	* minibuf.c: Likewise.
10094 	* msdos.c: Likewise.
10095 	* print.c: Likewise.
10096 	* process.c: Likewise.
10097 	* region-cache.c: Likewise.
10098 	* search.c: Likewise.
10099 	* sysdep.c: Likewise.
10100 	* termcap.c: Likewise.
10101 	* terminal.c: Likewise.
10102 	* tparam.c: Likewise.
10103 	* w16select.c: Likewise.
10104 	* w32.c: Likewise.
10105 	* w32reg.c: Likewise.
10106 	* w32select.c: Likewise.
10107 	* w32uniscribe.c: Likewise.
10108 	* widget.c: Likewise.
10109 	* xdisp.c: Likewise.
10110 	* xmenu.c: Likewise.
10111 	* xrdb.c: Likewise.
10112 	* xselect.c: Likewise.
10113 
10114 2012-07-05  Paul Eggert  <eggert@cs.ucla.edu>
10115 
10116 	* fileio.c (time_error_value): Check the right error number.
10117 	Problem reported by Troels Nielsen in
10118 	<https://lists.gnu.org/r/emacs-devel/2012-07/msg00095.html>.
10119 
10120 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
10121 
10122 	* window.c (set_window_hscroll): Revert the 100000 hscroll limit.
10123 	This should be fixed in a better way; see Eli Zaretskii in
10124 	<https://lists.gnu.org/r/emacs-devel/2012-07/msg00088.html>.
10125 	(HSCROLL_MAX): Remove; this is now internal to set_window_hscroll.
10126 
10127 	* fileio.c (time_error_value): Rename from special_mtime.
10128 	The old name's problems were noted by Eli Zaretskii in
10129 	<https://lists.gnu.org/r/emacs-devel/2012-07/msg00087.html>.
10130 
10131 	* emacs.c (gdb_pvec_type): Change it back to enum pvec_type.
10132 	This variable's comment says Emacs needs at least one GDB-visible
10133 	symbol of type enum pvec_type, to work around GDB problems.
10134 	The symbol's value doesn't matter.
10135 
10136 	* alloc.c (PSEUDOVECTOR_NBYTES): Remove stray ';'
10137 	that causes compilation to fail on pre-C99 compilers.
10138 
10139 2012-07-04  Juanma Barranquero  <lekktu@gmail.com>
10140 
10141 	* s/ms-w32.h (LISP_FLOAT_TYPE, HAVE_MEMCMP, HAVE_MEMCPY)
10142 	(HAVE_MEMMOVE, HAVE_MEMSET): Don't set, obsolete.
10143 
10144 2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
10145 
10146 	* buffer.c (init_buffer_once): Fix initialization of
10147 	headers for buffer_defaults and buffer_local_symbols.
10148 	Reported by Juanma Barranquero <lekktu@gmail.com>.
10149 
10150 2012-07-04  Stefan Monnier  <monnier@iro.umontreal.ca>
10151 
10152 	Turn VECTOR_FREE_LIST_FLAG into PVEC_FREE.
10153 	* lisp.h (enum pvec_type): Use fewer bits.
10154 	(PSEUDOVECTOR_SIZE_BITS): New constant.
10155 	(PSEUDOVECTOR_SIZE_MASK, PVEC_TYPE_MASK): Use it.
10156 	(XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR, DEFUN): Adapt code to
10157 	change in pvec_type.
10158 	(PSEUDOVECTOR_TYPEP): New macro.
10159 	(TYPED_PSEUDOVECTORP): Use it.
10160 	* fns.c (internal_equal): Adapt code to extract pvectype.
10161 	* emacs.c (gdb_pvec_type): Update type.
10162 	* alloc.c (PSEUDOVECTOR_NBYTES): New macro.
10163 	(VECTOR_FREE_LIST_SIZE_MASK): Remove (=> PSEUDOVECTOR_SIZE_MASK).
10164 	(VECTOR_FREE_LIST_FLAG): Remove (=> PVEC_FREE).
10165 	(SETUP_ON_FREE_LIST): Use XSETPVECTYPESIZE.
10166 	(sweep_vectors): Use it.  Use local var `total_bytes' instead of
10167 	abusing vector->header.next.nbytes.
10168 	(live_vector_p): Use PVEC_TYPE.
10169 	(mark_object): Adapt code to extract pvectype.  Use switch.
10170 
10171 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
10172 
10173 	* doprnt.c (doprnt): Don't assume string length fits in 'int'.
10174 	Tighten new eassert a bit.
10175 
10176 2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
10177 
10178 	Fix compilation with --enable-gcc-warnings and -O1
10179 	optimization level.
10180 	* doprnt.c (doprnt): Change type of tem to int, initialize
10181 	to avoid compiler warning.  Add eassert.
10182 	* search.c (simple_search): Initialize match_byte to avoid
10183 	compiler warning.  Add eassert.
10184 
10185 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
10186 
10187 	Avoid weird behavior with large horizontal scrolls.
10188 	Without this change, for example, large hscroll values would
10189 	mess up Emacs's display on Fedora 15 x86, presumably due to
10190 	overflows in int calculations in the display code.
10191 	Also, if buffers had long lines, Emacs would freeze.
10192 	* window.c (HSCROLL_MAX): Reduce to 100000, and make it visible to GDB.
10193 	(set_window_hscroll): New function, containing the old guts of
10194 	Fset_window_hscroll.  Return the clipped value.
10195 	(Fset_window_hscroll, Fscroll_left, Fscroll_right): Use it.
10196 	This avoids the need to check against PTRDIFF_MAX.
10197 
10198 	* buffer.c (Fgenerate_new_buffer_name): Fix sprintf format mismatch.
10199 
10200 2012-07-04  Dmitry Antipov  <dmantipov@yandex.ru>
10201 
10202 	* buffer.c (Fgenerate_new_buffer_name): Fix type mismatch.
10203 
10204 2012-07-04  Paul Eggert  <eggert@cs.ucla.edu>
10205 
10206 	* regex.c: Suppress GCC warning on RHEL 6.  (Bug#11207)
10207 	Conditionalize the pragmas on GCC 4.5 or later, not GCC 4.3 or later,
10208 	since GCC 4.4.6 issues a bogus warning for them.
10209 
10210 	Fix bugs in file timestamp newness comparisons.
10211 	* fileio.c (Ffile_newer_than_file_p):
10212 	* lread.c (Fload): Use full timestamp resolution of files,
10213 	not just the 1-second resolution, so that files that are only
10214 	slightly newer still count as newer.
10215 	* fileio.c (Ffile_newer_than_file_p): Don't assume file
10216 	timestamps fit in 'int'; this fixes a Y2038 bug on most hosts.
10217 
10218 2012-07-03  Paul Eggert  <eggert@cs.ucla.edu>
10219 
10220 	* fileio.c: Improve handling of file time marker.  (Bug#11852)
10221 	(special_mtime): New function.
10222 	(Finsert_file_contents, Fverify_visited_file_modtime):
10223 	Use it to set special mtime values consistently.
10224 
10225 2012-07-03  Andreas Schwab  <schwab@linux-m68k.org>
10226 
10227 	* fileio.c (Finsert_file_contents): Properly handle st_mtime
10228 	marker for non-existing file.  (Bug#11852)
10229 
10230 2012-07-03  Glenn Morris  <rgm@gnu.org>
10231 
10232 	* lisp.h (Fread_file_name): Restore EXFUN (it's not a normal DEFUN
10233 	and did not make it into globals.h).
10234 
10235 2012-07-03  Tom Tromey  <tromey@redhat.com>
10236 
10237 	* window.c (Fset_window_margins, Fset_window_fringes)
10238 	(Fset_window_scroll_bars, Fset_window_vscroll): No longer static.
10239 	* textprop.c (Fprevious_property_change): No longer static.
10240 	* syntax.c (Fsyntax_table_p): No longer static.
10241 	* process.c (Fget_process, Fprocess_datagram_address): No longer
10242 	static.
10243 	* keymap.c (Flookup_key, Fcopy_keymap): No longer static.
10244 	* keyboard.c (Fcommand_execute): No longer static.
10245 	Remove EXFUN.
10246 	* insdel.c (Fcombine_after_change_execute): No longer static.
10247 	* image.c (Finit_image_library): No longer static.
10248 	* fileio.c (Fmake_symbolic_link): No longer static.
10249 	* eval.c (Ffetch_bytecode): No longer static.
10250 	* editfns.c (Fuser_full_name): No longer static.
10251 	* doc.c (Fdocumentation_property, Fsnarf_documentation):
10252 	No longer static.
10253 	* buffer.c (Fset_buffer_major_mode, Fdelete_overlay): No longer
10254 	static.
10255 	* dired.c (Ffile_attributes): No longer static.
10256 	* composite.c (Fcomposition_get_gstring): No longer static.
10257 	* callproc.c (Fgetenv_internal): No longer static.
10258 
10259 	* ccl.h: Remove EXFUNs.
10260 	* buffer.h: Remove EXFUNs.
10261 	* dispextern.h: Remove EXFUNs.
10262 	* intervals.h: Remove EXFUNs.
10263 	* fontset.h: Remove EXFUN.
10264 	* font.h: Remove EXFUNs.
10265 	* dosfns.c (system_process_attributes): Remove EXFUN.
10266 	* keymap.h: Remove EXFUNs.
10267 	* lisp.h: Remove EXFUNs.
10268 	* w32term.h: Remove EXFUNs.
10269 	* window.h: Remove EXFUNs.
10270 	* xsettings.h: Remove EXFUN.
10271 	* xterm.h: Remove EXFUN.
10272 
10273 2012-07-03  Glenn Morris  <rgm@gnu.org>
10274 
10275 	* lisp.h (Frandom): Make it visible to C.
10276 	* buffer.c (Fgenerate_new_buffer_name): Speed up finding a new
10277 	buffer for invisible buffers.  (Bug#1229)
10278 
10279 2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
10280 
10281 	Fix block vector allocation code to allow VECTOR_BLOCK_SIZE
10282 	values which aren't power of 2.
10283 	* alloc.c (VECTOR_FREE_LIST_SIZE_MASK): New macro.
10284 	Verify its value and the value of VECTOR_BLOCK_SIZE.  Adjust users
10285 	accordingly.
10286 
10287 2012-07-03  Stefan Monnier  <monnier@iro.umontreal.ca>
10288 
10289 	* lisp.h (Lisp_Misc, Lisp_Fwd): Move around to group better.
10290 
10291 	* alloc.c (mark_object): Revert part of last patch to use `switch'.
10292 
10293 2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
10294 
10295 	* alloc.c (allocate_vector_block): Remove redundant
10296 	calls to mallopt if DOUG_LEA_MALLOC is defined.
10297 	(allocate_vectorlike): If DOUG_LEA_MALLOC is defined,
10298 	avoid calls to mallopt if zero_vector is returned.
10299 
10300 2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
10301 
10302 	* alloc.c (check_string_bytes): If GC_CHECK_STRING_BYTES
10303 	is enabled, avoid dereferencing NULL current_sblock if
10304 	running undumped.
10305 
10306 2012-07-03  Dmitry Antipov  <dmantipov@yandex.ru>
10307 
10308 	Cleanup basic buffer management.
10309 	* buffer.h (struct buffer): Change layout to use generic vector
10310 	marking code.  Fix some comments.  Change type of 'clip_changed'
10311 	to bitfield.  Remove unused #ifndef old.
10312 	(FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER): Remove.
10313 	(GET_OVERLAYS_AT): Fix indentation.
10314 	(for_each_per_buffer_object_at): New macro.
10315 	* buffer.c (clone_per_buffer_values, reset_buffer_local_variables)
10316 	(Fbuffer_local_variables): Use it.
10317 	(init_buffer_once, syms_of_buffer): Remove unused #ifndef old.
10318 	* alloc.c (allocate_buffer): Adjust to match new layout of
10319 	struct buffer.  Fix comment.
10320 	(mark_overlay): New function.
10321 	(mark_buffer): Use it.  Use mark_vectorlike to mark normal
10322 	Lisp area of struct buffer.
10323 	(mark_object): Use it.  Adjust marking of misc objects
10324 	and related comments.
10325 
10326 2012-07-02  Paul Eggert  <eggert@cs.ucla.edu>
10327 
10328 	* alloc.c (mark_object): Remove "#ifdef GC_CHECK_MARKED_OBJECTS"
10329 	wrapper that is not needed because the wrapped code is a no-op (zero
10330 	machine instructions) when GC_CHECK_MARKED_OBJECTS is not defined.
10331 	This avoids a -Wunused-macros diagnostic with GCC 4.7.1 x86-64.
10332 
10333 2012-07-02  Dmitry Antipov  <dmantipov@yandex.ru>
10334 
10335 	* alloc.c (mark_buffer): Simplify.  Remove prototype.
10336 	(mark_object): Add comment.  Reorganize marking of vector-like
10337 	objects.  Use CHECK_LIVE for all vector-like objects except buffers
10338 	and subroutines when GC_CHECK_MARKED_OBJECTS is defined.
10339 	Avoid redundant calls to mark_vectorlike for bool vectors.
10340 
10341 2012-06-30  Glenn Morris  <rgm@gnu.org>
10342 
10343 	* nsterm.m (ns_init_paths): Ignore site-lisp if --no-site-lisp.
10344 
10345 	* epaths.in (PATH_SITELOADSEARCH): New.
10346 	* lread.c (init_lread): Use PATH_SITELOADSEARCH.
10347 	This is rather than relying on --enable-locallisppath elements
10348 	having "site-lisp" in their names.  (Bug#10208#25, 11658)
10349 
10350 2012-06-30  Eli Zaretskii  <eliz@gnu.org>
10351 
10352 	* w32proc.c (sys_select): Accept and ignore one more argument.
10353 
10354 	* w32.c (emacs_gnutls_pull): Call select with one more argument.
10355 
10356 	* sysselect.h [DOS_NT]: Don't include sys/select.h.
10357 	(pselect) [!MS_DOS]: Redirect to sys_select.
10358 
10359 	* sysdep.c: Don't include dos.h and dosfns.h.
10360 
10361 	* process.c (sys_select):
10362 	* msdos.c (sys_select): Accept one more argument and ignore it.
10363 
10364 	* msdos.c (event_timestamp, sys_select): Use gnulib's gettime;
10365 	adapt data types and code to that.
10366 
10367 	* dosfns.c:
10368 	* msdos.c (gettime, settime): Define away the prototypes in dos.h,
10369 	which clashes with the gnulib function of the same name.
10370 
10371 2012-06-30  Andreas Schwab  <schwab@linux-m68k.org>
10372 
10373 	* font.c (font_style_to_value, font_style_symbolic)
10374 	(font_prop_validate_style): Add type checks for values in
10375 	font_style_table.
10376 
10377 	* lisp.h (CHECK_RANGED_INTEGER): Make value to check the first
10378 	argument.
10379 	* character.c, charset.c, menu.c, process.c, window.c: Adjust all
10380 	uses.
10381 
10382 2012-06-29  Eli Zaretskii  <eliz@gnu.org>
10383 
10384 	* xdisp.c (try_window_id): Undo last change.
10385 
10386 	* w32.c (getwd): Adjust commentary about startup_dir.
10387 	(init_environment): Always call sys_access, even in non-MSVC
10388 	builds.  Don't chdir to the directory of the Emacs executable.
10389 	This undoes code from 1997 which was justified by the need to
10390 	"avoid conflicts when removing and renaming directories".  But its
10391 	downside was that every relative file name was being interpreted
10392 	relative to the directory of the Emacs executable, which can never
10393 	be TRT.  In particular, it broke sys_access when called with
10394 	relative file names.
10395 	(sys_access): Map GetLastError to errno.
10396 
10397 2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
10398 
10399 	* window.h (struct window): Change type of 'fringes_outside_margins'
10400 	to bitfield.  Fix comment.  Adjust users accordingly.
10401 	(struct window): Change type of 'window_end_bytepos' to ptrdiff_t.
10402 	Adjust comment.
10403 	* xdisp.c (try_window_id): Change type of 'first_vpos' and 'vpos'
10404 	to ptrdiff_t.
10405 
10406 2012-06-29  Andreas Schwab  <schwab@linux-m68k.org>
10407 
10408 	* gnutls.c (emacs_gnutls_handshake):
10409 	Add QUIT to make the loop interruptible.
10410 
10411 2012-06-29  Glenn Morris  <rgm@gnu.org>
10412 
10413 	* charset.c (init_charset): Make lack of etc/charsets fatal.
10414 
10415 2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
10416 
10417 	* editfns.c (region_limit): Fix type mismatch.
10418 
10419 2012-06-29  Dmitry Antipov  <dmantipov@yandex.ru>
10420 
10421 	* nsfns.m: Fix GLYPH_DEBUG usage assuming that it may be
10422 	undefined.  Convert from xassert to eassert.
10423 	* nsmenu.m: Convert from xassert to eassert.
10424 	* nsterm.m: Likewise.
10425 
10426 2012-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>
10427 
10428 	* editfns.c (region_limit): Clip to narrowing (bug#11770).
10429 
10430 2012-06-28  Paul Eggert  <eggert@cs.ucla.edu>
10431 
10432 	Avoid integer overflow on scroll-left and scroll-right.
10433 	* window.c (HSCROLL_MAX): New macro.
10434 	(Fscroll_left, Fscroll_right): Avoid undefined behavior on integer
10435 	overflow when requested scroll falls outside ptrdiff_t range.
10436 
10437 2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
10438 
10439 	* window.h (struct window): Change type of 'hscroll',
10440 	'min_hscroll' and 'last_point' from Lisp_Object to ptrdiff_t,
10441 	'last_modified' and 'last_overlay_modified' to EMACS_INT.
10442 	Adjust users accordingly.
10443 	* xdisp.c (try_cursor_movement): Replace type check with eassert.
10444 	* window.c (Fscroll_left, Fscroll_right): Change type of 'hscroll'
10445 	from EMACS_INT to ptrdiff_t.
10446 	(make_window): Omit redundant initialization.
10447 
10448 2012-06-28  Juanma Barranquero  <lekktu@gmail.com>
10449 
10450 	* makefile.w32-in ($(BLD)/regex.$(O)): Update dependencies.
10451 
10452 2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
10453 
10454 	* window.h (struct window): Change type of 'use_time' and
10455 	'sequence_number' from Lisp_Object to int.
10456 	* frame.c (make_frame): Adjust users accordingly.
10457 	* print.c (print_object): Likewise.
10458 	* window.c (select_window, Fwindow_use_time, make_parent_window)
10459 	(make_window): Likewise.
10460 
10461 2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
10462 
10463 	* dispextern.h (GLYPH_DEBUG): Now defined in config.h if
10464 	enabled with --enable-checking=[all,glyphs] configure option.
10465 	Fix GLYPH_DEBUG usage assuming that it may be undefined,
10466 	adjust comments accordingly.
10467 	* dispnew.c: Fix GLYPH_DEBUG usage assuming that it may be
10468 	undefined, adjust comments accordingly.
10469 	* image.c: Likewise.
10470 	* scroll.c: Likewise.
10471 	* w32fns.c: Likewise.
10472 	* w32term.c: Likewise.
10473 	* xdisp.c: Likewise.
10474 	* xfaces.c: Likewise.
10475 	* xfns.c: Likewise.
10476 	* xterm.c: Likewise.
10477 
10478 2012-06-28  Dmitry Antipov  <dmantipov@yandex.ru>
10479 
10480 	Generalize run-time debugging checks.
10481 	* dispextern.h (XASSERTS): Remove.
10482 	* fontset.c (xassert): Remove.
10483 	Convert from xassert to eassert.
10484 	* alloc.c: Convert from xassert to eassert.
10485 	* bidi.c: Likewise.
10486 	* dispnew.c: Likewise.
10487 	* fns.c: Likewise.
10488 	* fringe.c: Likewise.
10489 	* ftfont.c: Likewise.
10490 	* gtkutil.c: Likewise.
10491 	* image.c: Likewise.
10492 	* keyboard.c: Likewise.
10493 	* menu.c: Likewise.
10494 	* process.c: Likewise.
10495 	* scroll.c: Likewise.
10496 	* sound.c: Likewise.
10497 	* term.c: Likewise.
10498 	* w32console.c: Likewise.
10499 	* w32fns.c: Likewise.
10500 	* w32term.c: Likewise.
10501 	* window.c: Likewise.
10502 	* xdisp.c: Likewise.
10503 	* xfaces.c: Likewise.
10504 	* xfns.c: Likewise.
10505 	* xselect.c: Likewise.
10506 	* xterm.c: Likewise.
10507 
10508 2012-06-27  Stefan Monnier  <monnier@iro.umontreal.ca>
10509 
10510 	* fns.c (maybe_resize_hash_table): Output message when growing the
10511 	purify-hashtable.
10512 
10513 2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
10514 
10515 	* alloc.c (allocate_string_data): Remove dead code.
10516 	* xsettings.c (XSETTINGS_FONT_NAME): Move under HAVE_XFT to
10517 	avoid GCC warning about unused macro.
10518 
10519 2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
10520 
10521 	* alloc.c (allocate_string): Omit intervals initialization.
10522 	* alloc.c (make_uninit_multibyte_string): Initialize intervals
10523 	as in make_pure_string and make_pure_c_string.
10524 
10525 2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
10526 
10527 	* alloc.c (allocate_string): Fix last change.
10528 
10529 2012-06-27  Dmitry Antipov  <dmantipov@yandex.ru>
10530 
10531 	* alloc.c (allocate_string): Remove two redundant calls
10532 	to memset, add explicit initialization where appropriate.
10533 
10534 2012-06-27  Glenn Morris  <rgm@gnu.org>
10535 
10536 	* lisp.mk (lisp): Remove paths.elc.
10537 
10538 2012-06-27  Chong Yidong  <cyd@gnu.org>
10539 
10540 	* doc.c (Fsubstitute_command_keys): Fix punctuation.
10541 
10542 2012-06-26  John Wiegley  <johnw@newartisans.com>
10543 
10544 	* unexmacosx.c (copy_data_segment): Add two section names used
10545 	on Mac OS X Lion: __mod_init_func and __mod_term_func.
10546 
10547 	* alloc.c (mark_memory): Do not check with -faddress-sanitizer
10548 	when building with Clang.
10549 
10550 2012-06-26  Stefan Monnier  <monnier@iro.umontreal.ca>
10551 
10552 	* eval.c (Fapply): Allow calling it with a single argument.
10553 
10554 2012-06-26  Eli Zaretskii  <eliz@gnu.org>
10555 
10556 	* s/ms-w32.h (strcasecmp, strncasecmp) [_MSC_VER]: Redirect to
10557 	_stricmp and _strnicmp.
10558 	(HAVE_STRCASECMP, HAVE_STRNCASECMP): Define to 1.
10559 
10560 2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
10561 
10562 	* alloc.c (allocate_window): Zero out non-Lisp part of newly
10563 	allocated window.
10564 	(allocate_process): Likewise for new process.
10565 	(allocate_terminal): Change to use offsetof.
10566 	(allocate_frame): Likewise.
10567 	* frame.c (make_frame): Omit redundant initialization.
10568 	* window.c (make_parent_window): Use memset.
10569 	(make_window): Omit redundant initialization.
10570 	* process.c (make_process): Omit redundant initialization.
10571 	* terminal.c (create_terminal): Likewise.
10572 
10573 2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
10574 
10575 	* term.c (delete_tty): Remove redundant call to memset.
10576 
10577 2012-06-26  Dmitry Antipov  <dmantipov@yandex.ru>
10578 
10579 	* alloc.c: Remove build_string.
10580 	* lisp.h: Define build_string as static inline.  This provides
10581 	a better opportunity to optimize away calls to strlen when the
10582 	function is called with compile-time constant argument.
10583 	* image.c (imagemagick_error): Convert to build_string.
10584 	* w32proc.c (sys_spawnve): Likewise.
10585 	* xterm.c (x_term_init): Likewise.
10586 
10587 2012-06-26  Paul Eggert  <eggert@cs.ucla.edu>
10588 
10589 	Use sprintf return value instead of invoking strlen on result.
10590 	In the old days this wasn't portable, since some sprintf
10591 	implementations returned char *.  But they died out years ago and
10592 	Emacs already assumes sprintf returns int.
10593 	Similarly for float_to_string.
10594 	This patch speeds up (number-to-string 1000) by 3% on Fedora 15 x86-64.
10595 	* ccl.c (ccl_driver):
10596 	* character.c (string_escape_byte8):
10597 	* data.c (Fnumber_to_string):
10598 	* doprnt.c (doprnt):
10599 	* print.c (print_object):
10600 	* xdisp.c (message_dolog):
10601 	* xfns.c (syms_of_xfns):
10602 	Use sprintf or float_to_string result to avoid need to call strlen.
10603 	* data.c (Fnumber_to_string):
10604 	Use make_unibyte_string, since the string must be ASCII.
10605 	* lisp.h, print.c (float_to_string): Now returns int length.
10606 	* term.c (produce_glyphless_glyph):
10607 	Use sprintf result rather than recomputing it.
10608 
10609 	Clean out last vestiges of the old HAVE_CONFIG_H stuff.
10610 	* Makefile.in (ALL_CFLAGS):
10611 	* makefile.w32-in (LOCAL_FLAGS): Remove -DHAVE_CONFIG_H.
10612 	* gmalloc.c, regex.c: Include <config.h> unconditionally.
10613 
10614 2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
10615 
10616 	* dispextern.h (xstrcasecmp): Define to library function
10617 	strcasecmp if available.
10618 	* xfaces.c: Do not use xstrcasecmp if strcasecmp is available.
10619 
10620 2012-06-25  Andreas Schwab  <schwab@linux-m68k.org>
10621 
10622 	* keyboard.c (menu_bar_items, menu_bar_item, read_key_sequence):
10623 	Avoid comma operator.
10624 	* menu.c (push_submenu_start, push_submenu_end)
10625 	(push_left_right_boundary, push_menu_pane): Likewise.
10626 	* msdos.c (dos_rawgetc): Likewise.
10627 
10628 2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
10629 
10630 	* xfns.c (xic_create_fontsetname): Remove redundant calls
10631 	to memset.
10632 
10633 2012-06-25  Paul Eggert  <eggert@cs.ucla.edu>
10634 
10635 	* gtkutil.c (get_utf8_string): Remove redundant assignment.
10636 	sprintf already null-terminates its output.
10637 
10638 	* xfns.c (x_window): Remove redundant cast.
10639 
10640 2012-06-25  Dmitry Antipov  <dmantipov@yandex.ru>
10641 
10642 	* xmenu.c (xmenu_show, xdialog_show): Explicit cast from
10643 	`const char *' to `char *' to avoid compiler warning.
10644 
10645 2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
10646 
10647 	* xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string
10648 	instead of truncating it to 63 (admittedly a generous limit).
10649 
10650 	* process.c: Fix spelling and caps in comments.
10651 
10652 2012-06-24  Dan Nicolaescu  <dann@ics.uci.edu>
10653 
10654 	* emacs.c (setpgrp): Remove definition, unused.
10655 	* sysdep.c (setpgrp): Remove definition, not used in this file.
10656 
10657 2012-06-24  Juanma Barranquero  <lekktu@gmail.com>
10658 
10659 	* makefile.w32-in: Update dependencies.
10660 
10661 2012-06-24  Eli Zaretskii  <eliz@gnu.org>
10662 
10663 	* makefile.w32-in (TIMESPEC_H): Remove nt/inc/sys/time.h.
10664 	(SYSTIME_H): Add nt/inc/sys/time.h.
10665 
10666 	* systime.h [WINDOWSNT]: Include sys/time.h.
10667 
10668 	* s/ms-w32.h (struct timespec): Definition moved from
10669 	nt/inc/sys/time.h.  Suggested by Paul Eggert <eggert@cs.ucla.edu>.
10670 
10671 2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
10672 
10673 	Switch from NO_RETURN to C11's _Noreturn (Bug#11750).
10674 	* buffer.h (buffer_slot_type_mismatch):
10675 	* data.c (arith_error) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
10676 	* eval.c (unwind_to_catch):
10677 	* image.c (my_png_error, my_error_exit):
10678 	* keyboard.c (quit_throw_to_read_char, user_error)
10679 	(Fexit_recursive_edit, Fabort_recursive_edit):
10680 	* lisp.h (die, args_out_of_range, args_out_of_range_3)
10681 	(wrong_type_argument, buffer_overflow, __executable_start)
10682 	(memory_full, buffer_memory_full, string_overflow, Fthrow)
10683 	(xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error)
10684 	(error, verror, nsberror, report_file_error, Ftop_level, Fkill_emacs)
10685 	(fatal):
10686 	(child_setup) [!DOS_NT]:
10687 	* lread.c (end_of_file_error, invalid_syntax):
10688 	* process.c (send_process_trap) [!FORWARD_SIGNAL_TO_MAIN_THREAD]:
10689 	* puresize.h (pure_write_error):
10690 	* search.c (matcher_overflow):
10691 	* sound.c (sound_perror, alsa_sound_perror):
10692 	* sysdep.c, syssignal.h (croak):
10693 	* term.c (maybe_fatal, vfatal):
10694 	* textprop.c (text_read_only):
10695 	* undo.c (user_error):
10696 	* unexmacosx.c (unexec_error):
10697 	* xterm.c (x_ins_del_lines, x_delete_glyphs):
10698 	Use _Noreturn rather than NO_RETURN.
10699 	No need for separate decl merely because of _Noreturn.
10700 	* sound.c (sound_warning, parse_sound):
10701 	Remove unnecessary forward decls.
10702 
10703 2012-06-24  Paul Eggert  <eggert@cs.ucla.edu>
10704 
10705 	Fix bug when time_t is unsigned and as wide as intmax_t (Bug#9000).
10706 	* lisp.h (WAIT_READING_MAX): New macro.
10707 	* dispnew.c (Fsleep_for, sit_for):
10708 	* keyboard.c (kbd_buffer_get_event):
10709 	* process.c (Faccept_process_output):
10710 	Use it to avoid bogus compiler warnings with obsolescent GCC versions.
10711 	This improves on the previous patch, which introduced a bug
10712 	when time_t is unsigned and as wide as intmax_t.
10713 	See <https://bugs.gnu.org/9000#51>.
10714 
10715 2012-06-23  Eli Zaretskii  <eliz@gnu.org>
10716 
10717 	* dispnew.c (sit_for, Fsleep_for):
10718 	* keyboard.c (kbd_buffer_get_event):
10719 	* process.c (Faccept_process_output): Avoid compiler warnings when
10720 	comparing a 32-bit time_t with a 64-bit INTMAX_MAX.
10721 
10722 2012-06-23  Juanma Barranquero  <lekktu@gmail.com>
10723 
10724 	* makefile.w32-in: Update dependencies.
10725 
10726 	* w32.c (ltime): Add return type and declare static.
10727 	(w32_get_internal_run_time): Remove usused variable `time_100ns'.
10728 
10729 2012-06-23  Paul Eggert  <eggert@cs.ucla.edu>
10730 
10731 	* sysdep.c [__FreeBSD__]: Fix more recently-introduced typos.
10732 	Privately reported by Herbert J. Skuhra.
10733 	(make_lisp_timeval) [__FreeBSD__]: Rename from TIMELIST.
10734 	All uses changed.
10735 	(system_process_attributes) [__FreeBSD__]: Invoke make_lisp_time,
10736 	not make_lisp_timeval, when the argument is of type EMACS_TIME.
10737 
10738 2012-06-23  Eli Zaretskii  <eliz@gnu.org>
10739 
10740 	* w32proc.c (Fw32_get_locale_info): Fix an off-by-one error in
10741 	last argument of make_unibyte_string.
10742 
10743 	* keyboard.c (kbd_buffer_get_event): Include the codepage and the
10744 	language ID in the event parameters.
10745 
10746 	* w32term.c (w32_read_socket): Put the new keyboard codepage into
10747 	event.code, not the obscure "character set ID".
10748 
10749 2012-06-23  Chong Yidong  <cyd@gnu.org>
10750 
10751 	* xmenu.c (x_menu_wait_for_event): Adapt GTK3 to new xg_select.
10752 
10753 2012-06-23  Eli Zaretskii  <eliz@gnu.org>
10754 
10755 	Fix the MS-Windows build broken by 2012-06-22T21:17:42Z!eggert@cs.ucla.edu.
10756 	* w32.c (fdutimens): New function.
10757 
10758 	* w32proc.c (sys_select): Adapt to change in the EMACS_TIME type.
10759 
10760 	* s/ms-w32.h (pselect): Redirect to sys_select.
10761 
10762 	* sysselect.h [WINDOWSNT]: Don't include sys/select.h.
10763 
10764 	* ralloc.c (r_alloc_inhibit_buffer_relocation): Fix stupid thinko
10765 	in the logic of incrementing and decrementing the value of
10766 	use_relocatable_buffers.
10767 
10768 2012-06-23  Paul Eggert  <eggert@cs.ucla.edu>
10769 
10770 	* sysdep.c [__FreeBSD__]: Fix recently-introduced typos.
10771 	Privately reported by Herbert J. Skuhra.
10772 	[__FreeBSD__]: Remove "*/" typo after "#include".
10773 	(timeval_to_EMACS_TIME) [__FreeBSD__]: New static function.
10774 	(TIMEVAL) [__FreeBSD__]: Now a static function rather than a macro.
10775 	(TIMEVAL, system_process_attributes) [__FreeBSD__]:
10776 	Don't assume EMACS_TIME and struct timeval are the same type.
10777 
10778 2012-06-22  Paul Eggert  <eggert@cs.ucla.edu>
10779 
10780 	Support higher-resolution time stamps (Bug#9000).
10781 	The time stamps are only nanosecond-resolution at the C level,
10782 	since that's the best that any real-world system supports now.
10783 	But they are picosecond-resolution at the Lisp level, as that's
10784 	easy, and leaves room for future OS improvements.
10785 
10786 	* Makefile.in (LIB_CLOCK_GETTIME): New macro.
10787 	(LIBES): Use it.
10788 
10789 	* alloc.c (Fgarbage_collect): Port to higher-res time stamps.
10790 	Don't get current time unless it's needed.
10791 
10792 	* atimer.c: Include <sys/time.h> unconditionally, since gnulib
10793 	now provides it if it's absent.
10794 	(start_atimer): Port to higher-res time stamps.
10795 	Check for time stamp overflow.  Don't get current time more
10796 	often than is needed.
10797 
10798 	* buffer.h (struct buffer): Buffer modtime now has high resolution.
10799 	Include systime.h, not time.h.
10800 	(NONEXISTENT_MODTIME_NSECS, UNKNOWN_MODTIME_NSECS): New macros.
10801 
10802 	* dired.c: Include stat-time.h.
10803 	(Ffile-attributes): File times now have higher resolution.
10804 
10805 	* dispextern.h [HAVE_WINDOW_SYSTEM]: Include systime.h.
10806 	(struct image): Timestamp now has higher resolution.
10807 
10808 	* dispnew.c (PERIODIC_PREEMPTION_CHECKING): Remove, as Emacs always
10809 	has at least microseconds now.  All uses removed.
10810 	(update_frame, update_single_window, update_window, update_frame_1)
10811 	(Fsleep_for, sit_for): Port to higher-resolution time stamps.
10812 	(duration_to_sec_usec): Remove; no longer needed.
10813 
10814 	* editfns.c (time_overflow): Now extern.
10815 	(Fcurrent_time, Fget_internal_run_time, make_time, lisp_time_argument)
10816 	(float-time, Fformat_time_string, Fcurrent_time_string)
10817 	(Fcurrent_time_zone): Accept and generate higher-resolution
10818 	time stamps.
10819 	(make_time_tail, make_lisp_time, dissassemble_lisp_time)
10820 	(decode_time_components, lisp_seconds_argument): New functions.
10821 	(make_time): Now static.
10822 	(lisp_time_argument): Now returns EMACS_TIME.  New arg ppsec.
10823 	Report an error if the time is invalid, rather than having the caller
10824 	do that.
10825 
10826 	* fileio.c: Include <stat-time.h>
10827 	(Fcopy_file): Copy higher-resolution time stamps.
10828 	Prefer to set the time stamp via a file descriptor if that works.
10829 	(Fset_file_times, Finsert_file_contents, Fwrite_region)
10830 	(Fverify_visited_file_modtime, Fclear_visited_file_modtime)
10831 	(Fvisited_file_modtime, Fset_visited_file_modtime):
10832 	Support higher-resolution time stamps.
10833 
10834 	* fns.c (Frandom): Use nanoseconds, not microseconds, for seed.
10835 
10836 	* gtkutil.c (xg_maybe_add_timer): Port to higher-res time stamps.
10837 
10838 	* image.c (prepare_image_for_display, clear_image_cache)
10839 	(lookup_image): Port to higer-resolution time stamps.
10840 
10841 	* keyboard.c (start_polling, bind_polling_period):
10842 	Check for time stamp overflow.
10843 	(read_char, kbd_buffer_get_event, timer_start_idle)
10844 	(timer_stop_idle, timer_resume_idle, timer_check_2, timer_check)
10845 	(Fcurrent_idle_time, init_keyboard, set_waiting_for_input):
10846 	Port to higher-resolution time stamps.  Do not assume time_t is signed.
10847 	(decode_timer): New function.  Timers are now vectors of length 9,
10848 	not 8, to accommodate the picosecond component.
10849 	(timer_check_2): Use it.
10850 
10851 	* nsterm.m (select_timeout, timeval_subtract): Remove.
10852 	(ns_timeout): Use Emacs's facilities for time stamp arithmetic,
10853 	as they're a bit more accurate and handle overflow better.
10854 	(ns_select): Change prototype to be compatible with pselect.
10855 	(ns_select, ns_term_shutdown): Port to ns-resolution time stamps.
10856 	* nsterm.h (ns_select): Adjust prototype.
10857 
10858 	* msdos.c (EMACS_TIME_ZERO_OR_NEG_P): Remove, as it assumes
10859 	us-resolution time stamps.
10860 	(sys_select): Use the new EMACS_TIME_SIGN macro instead.
10861 
10862 	* lread.c (read_filtered_event): Port to ns-resolution time stamps.
10863 
10864 	* lisp.h (time_overflow): New decl.
10865 	(wait_reading_process_output): First arg is now intmax_t, not int,
10866 	to accommodate larger waits.
10867 
10868 	* process.h (struct Lisp_Process.read_output_delay):
10869 	Now counts nanoseconds, not microseconds.
10870 	* process.c (ADAPTIVE_READ_BUFFERING): Don't worry about
10871 	EMACS_HAS_USECS.
10872 	(READ_OUTPUT_DELAY_INCREMENT, Faccept_process_output)
10873 	(wait_reading_process_output):
10874 	Port to ns-resolution time stamps.
10875 	(Faccept_process_output, wait_reading_process_output):
10876 	Check for time stamp overflow.  Do not assume time_t is signed.
10877 	(select_wrapper): Remove; we now use pselect.
10878 	(Fprocess_attributes): Now generates ns-resolution time stamps.
10879 
10880 	* sysdep.c: Include utimens.h.  Don't include utime.h
10881 	or worry about struct utimbuf; gnulib does that for us now.
10882 	(gettimeofday): Remove; gnulib provides a substitute.
10883 	(make_timeval): New function.
10884 	(set_file_times): Now sets ns-resolution time stamps.
10885 	New arg FD; all uses changed.
10886 	(time_from_jiffies, ltime_from_jiffies, get_up_time)
10887 	(system_process_attributes):
10888 	Now returns ns-resolution time stamp.  All uses changed.
10889 	Check for time stamp overflow.
10890 
10891 	* sysselect.h: Don't depend on HAVE_SYS_SELECT_H; gnulib
10892 	provides a substitute now.
10893 
10894 	* systime.h: Include timespec.h rather than sys/time.h and time.h,
10895 	since it guarantees struct timespec.
10896 	(EMACS_TIME): Now struct timespec, so that we can support
10897 	ns-resolution time stamps.
10898 	(EMACS_TIME_RESOLUTION, LOG10_EMACS_TIME_RESOLUTION): New macros.
10899 	(EMACS_HAS_USECS): Remove; Emacs always has sub-second time stamps now.
10900 	(EMACS_USECS): Remove.
10901 	(EMACS_SET_USECS): The underlying time stamp now has ns resolution,
10902 	so multiply the arg by 1000 before storing it.
10903 	(EMACS_NSECS, EMACS_SECS_ADDR, EMACS_SET_NSECS, EMACS_SET_SECS_NSECS):
10904 	New macros.
10905 	(EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME):
10906 	Port to ns-resolution time stamps.
10907 	(EMACS_TIME_NEG_P): Remove; replaced by....
10908 	(EMACS_TIME_SIGN): New macro.
10909 	(EMACS_SET_INVALID_TIME, EMACS_TIME_VALID_P)
10910 	(EMACS_TIME_FROM_DOUBLE, EMACS_TIME_TO_DOUBLE): New macros.
10911 	(set_file_times, make_time, lisp_time_argument): Adjust signature.
10912 	(make_timeval, make_lisp_time, decode_time_components): New decls.
10913 	(EMACS_TIME_CMP): Remove; no longer used.  Plus, it was buggy, in
10914 	that it mishandled time_t overflow.  You can't compare by subtracting!
10915 	(EMACS_TIME_EQ, EMACS_TIME_NE, EMACS_TIME_GT, EMACS_TIME_GE)
10916 	(EMACS_TIME_LT, EMACS_TIME_LE): Rewrite in terms of timespec_cmp.
10917 
10918 	* term.c: Include <sys/time.h>.
10919 	(timeval_to_Time): New function, for proper overflow wraparound.
10920 	(term_mouse_position, term_mouse_click): Use it.
10921 
10922 	* undo.c (record_first_change): Support higher-resolution time stamps
10923 	in the undo buffer.
10924 	(Fprimitive_undo): Use them when restoring time stamps.
10925 
10926 	* w32.c (ltime, U64_TO_LISP_TIME, process_times, emacs_gnutls_pull)
10927 	(w32_get_internal_run_time):
10928 	Port to higher-resolution Emacs time stamps.
10929 	(ltime): Now accepts single 64-bit integer, as that's more convenient
10930 	for callers.
10931 
10932 	* xdisp.c (start_hourglass): Port to ns-resolution time stamps.
10933 
10934 	* xgselect.c, xgselect.h (xg_select): Add sigmask argument,
10935 	for compatibility with pselect.  Support ns-resolution time stamps.
10936 
10937 	* xmenu.c (x_menu_wait_for_event): Support ns-resolution time stamps.
10938 
10939 	* xselect.c (wait_for_property_change, x_get_foreign_selection):
10940 	Check for time stamp overflow, and support ns-resolution time stamps.
10941 
10942 	* xterm.c: Don't include sys/time.h; gnulib does that for us now.
10943 	Don't worry about whether HAVE_TIMEVAL and HAVE_SELECT are set.
10944 	(timeval_subtract): Remove; no longer needed.
10945 	(XTflash, XTring_bell, x_wait_for_event):
10946 	Port to ns-resolution time stamps.  Don't assume time_t is signed.
10947 
10948 2012-06-22  Chong Yidong  <cyd@gnu.org>
10949 
10950 	* xdisp.c (x_consider_frame_title): Revert last change.
10951 
10952 2012-06-22  Eli Zaretskii  <eliz@gnu.org>
10953 
10954 	* alloc.c (NSTATICS): Enlarge to 0x650.  Otherwise, Emacs compiled
10955 	with -DENABLE_CHECKING -DXASSERTS -DGLYPH_DEBUG=1 -DBYTE_CODE_METER
10956 	aborts in staticpro during startup.  (Without -DBYTE_CODE_METER,
10957 	staticidx goes up to 1597 out of 1600 = 0x640.)
10958 
10959 2012-06-20  Paul Eggert  <eggert@cs.ucla.edu>
10960 
10961 	* fileio.c (Fdefault_file_modes): Block input while fiddling with umask.
10962 	Otherwise, the umask might be mistakenly 0 while handling input signals.
10963 
10964 2012-06-19  Stefan Monnier  <monnier@iro.umontreal.ca>
10965 
10966 	* minibuf.c (Fread_string): Bind minibuffer-completion-table.
10967 
10968 2012-06-19  Dmitry Antipov  <dmantipov@yandex.ru>
10969 
10970 	* alloc.c, bytecode.c, ccl.c, coding.c, composite.c, data.c, dosfns.c:
10971 	* font.c, image.c, keyboard.c, lread.c, menu.c, minibuf.c, msdos.c:
10972 	* print.c, syntax.c, window.c, xmenu.c, xselect.c: Replace direct
10973 	access to `contents' member of Lisp_Vector objects with AREF and ASET
10974 	where appropriate.
10975 
10976 2012-06-19  Chong Yidong  <cyd@gnu.org>
10977 
10978 	* frame.c (delete_frame): When selecting a frame on a different
10979 	text terminal, do not alter the terminal's top-frame.
10980 
10981 	* xdisp.c (format_mode_line_unwind_data): Record the target
10982 	frame's selected window and its terminal's top-frame.
10983 	(unwind_format_mode_line): Restore them.
10984 	(x_consider_frame_title, display_mode_line, Fformat_mode_line):
10985 	Callers changed.
10986 	(x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
10987 	since tty frames can be explicitly named.
10988 	(prepare_menu_bars): Likewise.
10989 
10990 	* term.c (Ftty_top_frame): New function.
10991 
10992 2012-06-18  Paul Eggert  <eggert@cs.ucla.edu>
10993 
10994 	Port byte-code-meter to modern targets.
10995 	* bytecode.c (METER_CODE) [BYTE_CODE_METER]: Don't assume
10996 	!CHECK_LISP_OBJECT_TYPE && !USE_LSB_TAG.  Problem with
10997 	CHECK_LISP_OBJECT_TYPE reported by Dmitry Antipov in
10998 	<https://lists.gnu.org/r/emacs-devel/2012-06/msg00282.html>.
10999 	(METER_1, METER_2): Simplify.
11000 
11001 2012-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>
11002 
11003 	* data.c (Fdefalias): Return `symbol' (bug#11686).
11004 
11005 2012-06-18  Martin Rudalics  <rudalics@gmx.at>
11006 
11007 	* buffer.c (Fkill_buffer): Don't throw an error when the buffer
11008 	gets killed during executing of this function (Bug#11665).
11009 	Try to always return Qt when the buffer has been actually killed.
11010 	(Vkill_buffer_query_functions): In doc-string say that functions
11011 	run by this hook should not change the current buffer.
11012 
11013 2012-06-18  Paul Eggert  <eggert@cs.ucla.edu>
11014 
11015 	Fix recently-introduced process.c problems found by static checking.
11016 	* process.c (write_queue_push, write_queue_pop, send_process):
11017 	Use ptrdiff_t, not int or EMACS_INT, for buffer lengths and offsets.
11018 	(write_queue_pop): Fix pointer signedness problem.
11019 	(send_process): Remove unused local.
11020 
11021 2012-06-17  Chong Yidong  <cyd@gnu.org>
11022 
11023 	* xdisp.c (redisplay_internal): No need to redisplay terminal
11024 	frames that are not on top.
11025 
11026 2012-06-17  Troels Nielsen  <bn.troels@gmail.com>
11027 
11028 	* process.c (make_process): Initialize write_queue.
11029 	(write_queue_push, write_queue_pop): New functions.
11030 	(send_process): Use them to maintain correct ordering of process
11031 	writes (Bug#10815).
11032 
11033 2012-06-17  Paul Eggert  <eggert@cs.ucla.edu>
11034 
11035 	* lisp.h (eassert): Assume C89 or later.
11036 	This removes the need for CHECK.
11037 	(CHECK): Remove.  Its comments about always evaluating its
11038 	argument were confusing, as 'eassert' typically does not evaluate
11039 	its argument.
11040 
11041 	* coding.c (produce_chars): Use ptrdiff_t, not int.
11042 
11043 	* xterm.c (x_draw_underwave): Check for integer overflow.
11044 	This pacifies gcc 4.7.0 -Wunsafe-loop-optimizations on x86-64.
11045 
11046 2012-06-17  Jan Djärv  <jan.h.d@swipnet.se>
11047 
11048 	* nsterm.m (x_free_frame_resources): Move xfree so freed memory isn't
11049 	referenced (Bug#11583).
11050 
11051 2012-06-16  Aurélien Aptel  <aurelien.aptel@gmail.com>
11052 
11053 	Implement wave-style variant of underlining.
11054 	* dispextern.h (face_underline_type): New enum.
11055 	(face): Add field for underline type.
11056 	* nsterm.m (ns_draw_underwave): New function.
11057 	(ns_draw_text_decoration): Use it.
11058 	* w32term.c (w32_restore_glyph_string_clip, w32_draw_underwave):
11059 	New functions.
11060 	(x_draw_glyph_string): Use them.
11061 	* xfaces.c (Qline, Qwave): New Lisp objects.
11062 	(check_lface_attrs, merge_face_ref)
11063 	(Finternal_set_lisp_face_attribute, realize_x_face):
11064 	Handle wave-style underline face attributes.
11065 	* xterm.c (x_draw_underwave): New function.
11066 	(x_draw_glyph_string): Use it.
11067 
11068 2012-06-16  Juanma Barranquero  <lekktu@gmail.com>
11069 
11070 	* makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/fringe.$(O))
11071 	($(BLD)/xml.$(O), $(BLD)/intervals.$(O), $(BLD)/macros.$(O))
11072 	($(BLD)/minibuf.$(O), $(BLD)/regex.$(O), $(BLD)/region-cache.$(O))
11073 	($(BLD)/textprop.$(O), $(BLD)/undo.$(O), $(BLD)/window.$(O))
11074 	($(BLD)/w32select.$(O)): Update dependencies.
11075 
11076 2012-06-16  Andreas Schwab  <schwab@linux-m68k.org>
11077 
11078 	* buffer.h (FETCH_MULTIBYTE_CHAR): Define as inline.
11079 	(BUF_FETCH_MULTIBYTE_CHAR): Likewise.
11080 	* character.c (_fetch_multibyte_char_p): Remove.
11081 	* alloc.c: Include "character.h" before "buffer.h".
11082 	* bidi.c: Likewise.
11083 	* buffer.c: Likewise.
11084 	* bytecode.c: Likewise.
11085 	* callint.c: Likewise.
11086 	* callproc.c: Likewise.
11087 	* casefiddle.c: Likewise.
11088 	* casetab.c: Likewise.
11089 	* category.c: Likewise.
11090 	* cmds.c: Likewise.
11091 	* coding.c: Likewise.
11092 	* composite.c: Likewise.
11093 	* dired.c: Likewise.
11094 	* dispnew.c: Likewise.
11095 	* doc.c: Likewise.
11096 	* dosfns.c: Likewise.
11097 	* editfns.c: Likewise.
11098 	* emacs.c: Likewise.
11099 	* fileio.c: Likewise.
11100 	* filelock.c: Likewise.
11101 	* font.c: Likewise.
11102 	* fontset.c: Likewise.
11103 	* fringe.c: Likewise.
11104 	* indent.c: Likewise.
11105 	* insdel.c: Likewise.
11106 	* intervals.c: Likewise.
11107 	* keyboard.c: Likewise.
11108 	* keymap.c: Likewise.
11109 	* lread.c: Likewise.
11110 	* macros.c: Likewise.
11111 	* marker.c: Likewise.
11112 	* minibuf.c: Likewise.
11113 	* nsfns.m: Likewise.
11114 	* nsmenu.m: Likewise.
11115 	* print.c: Likewise.
11116 	* process.c: Likewise.
11117 	* regex.c: Likewise.
11118 	* region-cache.c: Likewise.
11119 	* search.c: Likewise.
11120 	* syntax.c: Likewise.
11121 	* term.c: Likewise.
11122 	* textprop.c: Likewise.
11123 	* undo.c: Likewise.
11124 	* unexsol.c: Likewise.
11125 	* w16select.c: Likewise.
11126 	* w32fns.c: Likewise.
11127 	* w32menu.c: Likewise.
11128 	* window.c: Likewise.
11129 	* xdisp.c: Likewise.
11130 	* xfns.c: Likewise.
11131 	* xmenu.c: Likewise.
11132 	* xml.c: Likewise.
11133 	* xselect.c: Likewise.
11134 
11135 2012-06-16  Eli Zaretskii  <eliz@gnu.org>
11136 
11137 	* xdisp.c (set_cursor_from_row): Don't dereference glyphs_end.
11138 	If all the glyphs of the glyph row came from strings, and we have no
11139 	cursor positioning clues, put the cursor on the first glyph of the
11140 	row.
11141 	(handle_face_prop): Use chunk-relative overlay string index when
11142 	indexing into it->string_overlays array.  (Bug#11653)
11143 	(set_cursor_from_row): Use the leftmost glyph as GLYPH_BEFORE, not
11144 	the rightmost.  (Bug#11720)
11145 
11146 2012-06-16  Andreas Schwab  <schwab@linux-m68k.org>
11147 
11148 	* category.h (CHAR_HAS_CATEGORY): Define as inline.
11149 	(CATEGORY_MEMBER): Enforce 1/0 value.
11150 	* category.c (_temp_category_set): Remove.
11151 
11152 2012-06-16  Eli Zaretskii  <eliz@gnu.org>
11153 
11154 	* window.c (Fdelete_other_windows_internal)
11155 	(Fdelete_window_internal): Don't access frame's mouse highlight
11156 	info of the initial frame.  (Bug#11677)
11157 
11158 2012-06-14  Paul Eggert  <eggert@cs.ucla.edu>
11159 
11160 	* .gdbinit (xgetint): Fix recently-introduced paren typo.
11161 	Assume USE_2_TAGS_FOR_INTS.
11162 	(xreload): Adjust $tagmask width to match recent lisp.h change.
11163 
11164 	Simplify lisp.h in minor ways that should not affect code.
11165 	* lisp.h (USE_2_TAGS_FOR_INTS): Remove, as it was always defined.
11166 	(LISP_INT_TAG, case_Lisp_Int, LISP_STRING_TAG, LISP_INT_TAG_P)
11167 	(LISP_INT1_TAG, enum Lisp_Type, XINT, XUINT, make_number):
11168 	Simplify under the assumption that USE_2_TAGS_FOR_INTS is defined.
11169 	(INTTYPEBITS): New macro, for clarity.
11170 	(INTMASK, MOST_POSITIVE_FIXNUM): Use it.
11171 	(LISP_INT1_TAG, LISP_STRING_TAG, LISP_INT_TAG_P):
11172 	Simplify now that USE_LSB_TAG is always defined.
11173 	(TYPEMASK, XINT) [USE_LSB_TAG]: Remove unnecessary cast.
11174 	(make_number) [!USE_LSB_TAG]: Use INTMASK; that's simpler.
11175 
11176 2012-06-13  Juanma Barranquero  <lekktu@gmail.com>
11177 
11178 	* makefile.w32-in ($(BLD)/data.$(O)): Update dependencies.
11179 
11180 2012-06-13  Glenn Morris  <rgm@gnu.org>
11181 
11182 	* s/bsd-common.h (BSD4_3):
11183 	* s/usg5-4-common.h (USG5_4): No longer define; unused.
11184 
11185 2012-06-13  Andreas Schwab  <schwab@linux-m68k.org>
11186 
11187 	* lisp.h (Lisp_Object) [CHECK_LISP_OBJECT_TYPE]: Define as struct
11188 	instead of union.
11189 	(XLI, XIL): Define.
11190 	(XHASH, XTYPE, XINT, XUINT, make_number, XSET, XPNTR, XUNTAG):
11191 	Use them.
11192 	* emacs.c (gdb_use_struct): Rename from gdb_use_union.
11193 	* .gdbinit: Check gdb_use_struct instead of gdb_use_union.
11194 	* alloc.c (widen_to_Lisp_Object): Remove.
11195 	(mark_memory): Use XIL instead of widen_to_Lisp_Object.
11196 	* frame.c (delete_frame): Remove outdated comment.
11197 	* w32fns.c (Fw32_register_hot_key): Use XLI instead of checking
11198 	USE_LISP_UNION_TYPE.
11199 	(Fw32_unregister_hot_key): Likewise.
11200 	(Fw32_toggle_lock_key): Likewise.
11201 	* w32menu.c (add_menu_item): Likewise.
11202 	(w32_menu_display_help): Use XIL instead of checking
11203 	USE_LISP_UNION_TYPE.
11204 	* w32heap.c (allocate_heap): Don't check USE_LISP_UNION_TYPE.
11205 	(init_heap): Likewise.
11206 	* w32term.c (w32_read_socket): Update comment.
11207 
11208 2012-06-13  Glenn Morris  <rgm@gnu.org>
11209 
11210 	* s/usg5-4-common.h, s/unixware.h:
11211 	Remove define/undef of HAVE_SYSV_SIGPAUSE (not used since 2010-05-04).
11212 
11213 	* s/gnu.h (POSIX_SIGNALS): Remove (not used since 2010-05-04).
11214 
11215 2012-06-13  Paul Eggert  <eggert@cs.ucla.edu>
11216 
11217 	USE_LISP_UNION_TYPE + USE_LSB_TAG cleanup (Bug#11604)
11218 	* alloc.c (make_number) [!defined make_number]:
11219 	Remove, as lisp.h always defines this now.
11220 	(mark_maybe_pointer): Simplify since USE_LSB_TAG is always defined now.
11221 	(roundup_size): Verify that it is a power of 2.
11222 	* data.c (Fmake_variable_buffer_local, Fmake_local_variable):
11223 	* ftfont.c (ftfont_driver): Use LISP_INITIALLY_ZERO.
11224 	* lisp.h (USE_LSB_TAG): Allow the builder to compile with
11225 	-DUSE_LSB_TAG=0, to override the automatically-selected default.
11226 	USE_LSB_TAG now is always defined to be either 0 or 1.
11227 	All uses changed.
11228 	(union Lisp_Object): Don't worry about WORDS_BIGENDIAN; the
11229 	code works fine either way, and efficiency is not a concern here,
11230 	as the union type is for debugging, not for production.
11231 	(LISP_MAKE_RVALUE, make_number) [USE_LISP_UNION_TYPE]:
11232 	Use an inline function on all platforms when using the union type,
11233 	since this is simpler and 'static inline' can be used portably
11234 	within Emacs now.
11235 	(LISP_INITIALLY_ZERO): New macro.
11236 	(XFASTINT, XSETFASTINT) [USE_LISP_UNION_TYPE]: Remove.
11237 	(XSET) [USE_LISP_UNION_TYPE]: Don't overparenthesize.
11238 
11239 2012-06-12  Glenn Morris  <rgm@gnu.org>
11240 
11241 	* s/gnu-kfreebsd.h, s/hpux11.h, s/openbsd.h, s/sol2-10.h: Remove files.
11242 
11243 	* s/gnu-linux.h (HAVE_PROCFS): Move to configure.
11244 
11245 	* s/hpux10-20.h, s/openbsd.h, s/usg5-4-common.h:
11246 	Move BROKEN_SIGIO to configure.
11247 
11248 	* s/bsd-common.h, s/darwin.h, s/gnu-kfreebsd.h, s/hpux10-20.h:
11249 	Move NO_TERMIO to configure.
11250 
11251 2012-06-12  Chong Yidong  <cyd@gnu.org>
11252 
11253 	* image.c (imagemagick_load_image): Use MagickFlattenImage if
11254 	MagickMergeImageLayers is undefined.  Use pixel pusher loop if
11255 	MagickExportImagePixels is undefined.
11256 
11257 2012-06-12  Paul Eggert  <eggert@cs.ucla.edu>
11258 
11259 	* image.c (imagemagick_load_image): Remove unused label.
11260 
11261 2012-06-11  Glenn Morris  <rgm@gnu.org>
11262 
11263 	* s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/darwin.h:
11264 	* s/gnu-kfreebsd.h, s/gnu-linux.h, s/gnu.h, s/hpux10-20.h:
11265 	* s/irix6-5.h, s/ms-w32.h, s/msdos.h, s/template.h:
11266 	* s/usg5-4-common.h: Move SYSTEM_TYPE to configure.
11267 
11268 2012-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
11269 
11270 	* alloc.c (make_byte_code): New function.
11271 	(Fmake_byte_code): Use it.  Don't purify here.
11272 	* lread.c (read1): Use it as well to avoid extra allocation.
11273 
11274 2012-06-11  Chong Yidong  <cyd@gnu.org>
11275 
11276 	* image.c (imagemagick_load_image): Implement transparency.
11277 
11278 2012-06-10  Andreas Schwab  <schwab@linux-m68k.org>
11279 
11280 	* regex.c (at_begline_loc_p): Also recognize `(?N:' and correctly
11281 	account for preceding backslashes.  (Bug#11663)
11282 
11283 2012-06-09  Chong Yidong  <cyd@gnu.org>
11284 
11285 	* term.c: Support italics in capable terminals (Bug#9652).
11286 	(no_color_bit): Replace unused NC_BLINK with NC_ITALIC.
11287 	(turn_on_face): Output using TS_enter_italic_mode if available.
11288 	Don't handle unused blinking and alt-charset cases.
11289 	(turn_off_face): Handle italic case; discard unused tty_blinking_p
11290 	and tty_alt_charset_p cases.
11291 	(tty_capable_p, init_tty): Support italics.
11292 
11293 	* termchar.h (struct tty_display_info): Add field for italics.
11294 	Remove unused blink field.
11295 
11296 	* xfaces.c (tty_supports_face_attributes_p, realize_tty_face):
11297 	Handle slant.
11298 
11299 	* dispextern.h: Replace unused TTY_CAP_BLINK with TTY_CAP_ITALIC.
11300 	(struct face): Remove unused fields tty_dim_p, tty_blinking_p, and
11301 	tty_alt_charset_p.  Add tty_italic_p.
11302 
11303 2012-06-09  Michael Albinus  <michael.albinus@gmx.de>
11304 
11305 	* dbusbind.c (XD_BASIC_DBUS_TYPE): Use dbus_type_is_valid and
11306 	dbus_type_is_basic if available.
11307 	(xd_extract_signed, xd_extract_unsigned): Rename from
11308 	extract_signed and extract_unsigned, respectively.  Adapt callers.
11309 
11310 2012-06-09  Chong Yidong  <cyd@gnu.org>
11311 
11312 	* xfaces.c (face_for_overlay_string): Handle face remapping (Bug#2066).
11313 
11314 	* fringe.c (Fset_fringe_bitmap_face): Handle the noninteractive
11315 	case (Bug#9752).
11316 
11317 2012-06-08  Paul Eggert  <eggert@cs.ucla.edu>
11318 
11319 	* xdisp.c (vmessage): Treat frame message as multibyte.
11320 	Without this change, (let ((§ 1)) (make-variable-buffer-local '§))
11321 	would generate the diagnostic "Making \302\247 buffer-local while
11322 	let-bound!".
11323 
11324 2012-06-08  Eli Zaretskii  <eliz@gnu.org>
11325 
11326 	* dispnew.c (showing_window_margins_p): Undo last change, which
11327 	was done due to an inadvertent commit.
11328 	(adjust_frame_glyphs_for_frame_redisplay): Do call
11329 	showing_window_margins_p.
11330 
11331 2012-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
11332 
11333 	* eval.c (Fmake_var_non_special): New primitive.
11334 	(syms_of_eval): Defsubr it.
11335 	* lread.c (syms_of_lread): Mark `values' as lexically scoped.
11336 
11337 2012-06-08  Juanma Barranquero  <lekktu@gmail.com>
11338 
11339 	* dispnew.c (showing_window_margins_p): Wrap in #if 0 to prevent unused
11340 	function warning (the only call is inside #if 0 since 2012-06-08T08:44:45Z!eliz@gnu.org).
11341 
11342 2012-06-08  Eli Zaretskii  <eliz@gnu.org>
11343 
11344 	* alloc.c (allocate_vectorlike): Fix last change.
11345 
11346 2012-06-08  Dmitry Antipov  <dmantipov@yandex.ru>
11347 
11348 	Block-based vector allocation of small vectors.
11349 	* lisp.h (struct vectorlike_header): New field `nbytes',
11350 	adjust comment accordingly.
11351 	* alloc.c (enum mem_type): New type `MEM_TYPE_VECTOR_BLOCK'
11352 	to denote vector blocks.  Adjust users (live_vector_p,
11353 	mark_maybe_pointer, valid_lisp_object_p) accordingly.
11354 	(COMMON_MULTIPLE): Move outside #if USE_LSB_TAG.
11355 	(VECTOR_BLOCK_SIZE, vroundup, VECTOR_BLOCK_BYTES)
11356 	(VBLOCK_BYTES_MIN, VBLOCK_BYTES_MAX, VECTOR_MAX_FREE_LIST_INDEX)
11357 	(VECTOR_FREE_LIST_FLAG, ADVANCE, VINDEX, SETUP_ON_FREE_LIST)
11358 	(VECTOR_SIZE, VECTOR_IN_BLOCK): New macros.
11359 	(roundup_size): New constant.
11360 	(struct vector_block): New data type.
11361 	(vector_blocks, vector_free_lists, zero_vector): New variables.
11362 	(all_vectors): Rename to `large_vectors'.
11363 	(allocate_vector_from_block, init_vectors, allocate_vector_from_block)
11364 	(sweep_vectors): New functions.
11365 	(allocate_vectorlike): Return `zero_vector' as the only vector of
11366 	0 items.  Allocate new vector from block if vector size is less than
11367 	or equal to VBLOCK_BYTES_MAX.
11368 	(Fgarbage_collect): Move all vector sweeping code to sweep_vectors.
11369 	(init_alloc_once): Add call to init_vectors.
11370 
11371 2012-06-08  Stefan Monnier  <monnier@iro.umontreal.ca>
11372 
11373 	* eval.c (Fmacroexpand): Stop if the macro returns the same form.
11374 
11375 2012-06-07  Paul Eggert  <eggert@cs.ucla.edu>
11376 
11377 	* doprnt.c (doprnt): Truncate multibyte char correctly.
11378 	Without this change, doprnt (buf, 2, "%s", FORMAT_END, AP)
11379 	would mishandle a string argument "Xc" if X was a multibyte
11380 	character of length 2: it would truncate after X's first byte
11381 	rather than including all of X.
11382 
11383 2012-06-06  Chong Yidong  <cyd@gnu.org>
11384 
11385 	* buffer.c (word_wrap): Doc fix.
11386 
11387 2012-06-04  Paul Eggert  <eggert@cs.ucla.edu>
11388 
11389 	* xdisp.c (note_mode_line_or_margin_highlight): Pacify gcc -Wall.
11390 
11391 2012-06-03  Glenn Morris  <rgm@gnu.org>
11392 
11393 	* xdisp.c (tool-bar-style): Doc fix.
11394 
11395 2012-06-03  Ulrich Müller  <ulm@gentoo.org>
11396 
11397 	* Makefile.in (PAXCTL): Define.
11398 	(temacs$(EXEEXT)): Disable memory randomization for the temacs
11399 	binary via PaX flags if the paxctl utility is available.
11400 	(emacs$(EXEEXT), bootstrap-emacs$(EXEEXT)):
11401 	Restore PaX flags to their default.  (Bug#11398)
11402 
11403 2012-06-03  Chong Yidong  <cyd@gnu.org>
11404 
11405 	* xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
11406 	buffer (Bug#11226).
11407 
11408 2012-06-03  Chong Yidong  <cyd@gnu.org>
11409 
11410 	* xdisp.c (calc_pixel_width_or_height): Use Fbuffer_local_value.
11411 	(note_mode_line_or_margin_highlight): If there is no help echo,
11412 	use mode-line-default-help-echo.  Handle the case where the mouse
11413 	position is past the end of the mode line string.
11414 
11415 	* buffer.c (buffer_local_value_1): New function, split from
11416 	Fbuffer_local_value; can return Qunbound.
11417 	(Fbuffer_local_value): Use it.
11418 	(Vmode_line_format): Docstring tweaks.
11419 
11420 2012-06-02  Paul Eggert  <eggert@cs.ucla.edu>
11421 
11422 	* sysdep.c (system_process_attributes): Improve comment.
11423 
11424 2012-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
11425 
11426 	* keyboard.c: Export real-this-command to Elisp.
11427 	(syms_of_keyboard): Rename real_this_command to Vreal_this_command
11428 	and DEFVAR it.  Update all users.
11429 
11430 2012-06-02  Paul Eggert  <eggert@cs.ucla.edu>
11431 
11432 	* minibuf.c (Fassoc_string): Remove duplicate declaration.
11433 
11434 	* sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
11435 	Convert pctcpu and pctmem to Lisp float properly.
11436 	Let the compiler fold better, as 100.0/0x8000 is exact.
11437 
11438 2012-06-02  Andreas Schwab  <schwab@linux-m68k.org>
11439 
11440 	* alloc.c (CONS_BLOCK_SIZE): Account for padding at the end of
11441 	cons_block.
11442 
11443 2012-06-01  Paul Eggert  <eggert@cs.ucla.edu>
11444 
11445 	* xfns.c (x_set_tool_bar_lines) [USE_GTK]: Adjust to bitfield change.
11446 
11447 2012-06-01  Dmitry Antipov  <dmantipov@yandex.ru>
11448 
11449 	For a 'struct window', replace some Lisp_Object fields to
11450 	bitfields where appropriate, remove unused fields.
11451 	* window.h (struct window): Remove unused 'last_mark_x' and
11452 	'last_mark_y' fields.  Rename 'mini_p' field to 'mini',
11453 	change its type from Lisp_Object to bitfield.
11454 	Change type of 'force_start', 'optional_new_start',
11455 	'last_had_star', 'update_mode_line' and 'start_at_line_beg'
11456 	fields from Lisp_Object to bitfield.  Adjust users accordingly.
11457 
11458 2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>
11459 
11460 	Pacify gcc -Wdouble-precision when using Xaw.
11461 	* xterm.c (xaw_jump_callback, x_set_toolkit_scroll_bar_thumb)
11462 	[HAVE_X_WINDOWS && USE_TOOLKIT_SCROLL_BARS && !USE_MOTIF && !USE_GTK]:
11463 	Use 'float' consistently, rather than 'float' in most places
11464 	and 'double' in a couple of places.
11465 
11466 2012-05-31  Eli Zaretskii  <eliz@gnu.org>
11467 
11468 	* xdisp.c (handle_stop): Detect whether we have overlay strings
11469 	loaded by testing it->current.overlay_string_index to be
11470 	non-negative, instead of checking whether n_overlay_strings is
11471 	positive.  (Bug#11587)
11472 
11473 2012-05-31  Chong Yidong  <cyd@gnu.org>
11474 
11475 	* keymap.c (describe_map_tree): Revert 2011-07-07 change (Bug#1169).
11476 
11477 	* doc.c (Fsubstitute_command_keys): Doc fix.
11478 
11479 2012-05-31  Eli Zaretskii  <eliz@gnu.org>
11480 
11481 	* search.c (search_buffer): Remove calls to
11482 	r_alloc_inhibit_buffer_relocation, as it is now called by
11483 	maybe_unify_char, which was the cause of relocation of buffer text
11484 	in bug#11519.
11485 
11486 2012-05-31  Eli Zaretskii  <eliz@gnu.org>
11487 
11488 	* charset.c (maybe_unify_char): Inhibit relocation of buffer text
11489 	for the duration of call to load_charset, to avoid problems with
11490 	callers of maybe_unify_char that access buffer text through C
11491 	pointers.
11492 
11493 	* ralloc.c (r_alloc_inhibit_buffer_relocation): Increment and
11494 	decrement the inhibition flag, instead of just setting or
11495 	resetting it.
11496 
11497 2012-05-31  Paul Eggert  <eggert@cs.ucla.edu>
11498 
11499 	Remove obsolete '#define static' cruft.
11500 	* s/hpux10-20.h (_FILE_OFFSET_BITS): Don't #undef.
11501 	This #undef was "temporary" in 2000; it is no longer needed
11502 	now that '#define static' has gone away.
11503 	* xfns.c, xterm.h (gray_bitmap_width, gray_bitmap_height)
11504 	(gray_bitmap_bits): Remove; no longer needed.
11505 	All uses replaced with definiens.
11506 	* xterm.c: Include "bitmaps/gray.xbm".
11507 
11508 2012-05-30  Paul Eggert  <eggert@cs.ucla.edu>
11509 
11510 	Clean up __executable_start, monstartup when --enable-profiling.
11511 	The following changes affect the code only when profiling.
11512 	* dispnew.c (__executable_start): Rename from safe_bcopy.
11513 	Define only on platforms that need it.
11514 	* emacs.c: Include <sys/gmon.h> when profiling.
11515 	(_mcleanup): Remove decl, since <sys/gmon.h> does it now.
11516 	(__executable_start): Remove decl, since lisp.h does it now.
11517 	(safe_bcopy): Remove decl; no longer has that name.
11518 	(main): Coalesce #if into single bit of code, for simplicity.
11519 	Cast pointers to uintptr_t, since standard libraries want integers
11520 	and not pointers.
11521 	* lisp.h (__executable_start): New decl.
11522 
11523 2012-05-31  Glenn Morris  <rgm@gnu.org>
11524 
11525 	* image.c (Fimagemagick_types): Doc fix.
11526 
11527 2012-05-30  Jim Meyering  <meyering@redhat.com>
11528 
11529 	* callproc.c (Fcall_process_region): Include directory component
11530 	in mkstemp error message (Bug#11586).
11531 
11532 2012-05-30  Paul Eggert  <eggert@cs.ucla.edu>
11533 
11534 	* alloc.c, lisp.h (make_pure_vector): Now static.
11535 
11536 2012-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
11537 
11538 	* eval.c (Fdefun, Fdefmacro, Vmacro_declaration_function):
11539 	Move to byte-run.el.
11540 	(Fautoload): Do the hash-doc more carefully.
11541 	* data.c (Fdefalias): Purify definition, except for keymaps.
11542 	(Qdefun): Move from eval.c.
11543 	* lisp.h (Qdefun): Remove.
11544 	* lread.c (read1): Tiny simplification.
11545 
11546 2012-05-29  Troels Nielsen  <bn.troels@gmail.com>
11547 
11548 	Do not create empty overlays with the evaporate property (Bug#9642).
11549 	* buffer.c (Fmove_overlay): Reinstate the earlier fix for
11550 	Bug#9642, but explicitly check that the buffer the overlay would
11551 	be moved to is live and rearrange lines to make sure that errors
11552 	will not put the overlay in an inconsistent state.
11553 	(Fdelete_overlay): Cosmetics.
11554 
11555 2012-05-28  Eli Zaretskii  <eliz@gnu.org>
11556 
11557 	* w32term.c (my_bring_window_to_top): New function.
11558 	(x_raise_frame): Use handle returned by DeferWindowPos, which
11559 	could be different from the original one.
11560 	Call my_bring_window_to_top instead of my_set_foreground_window.
11561 	(Bug#11513)
11562 
11563 	* w32fns.c (w32_wnd_proc): Accept and process WM_EMACS_BRINGTOTOP
11564 	by calling BringWindowToTop.
11565 
11566 	* w32term.h (WM_EMACS_BRINGTOTOP): New message.
11567 	(WM_EMACS_END): Increase by one.
11568 
11569 2012-05-28  Paul Eggert  <eggert@cs.ucla.edu>
11570 
11571 	* bidi.c (bidi_mirror_char): Put eassert before conversion to int.
11572 	This avoids undefined behavior that might cause the eassert
11573 	to not catch an out-of-range value.
11574 
11575 2012-05-28  Juanma Barranquero  <lekktu@gmail.com>
11576 
11577 	* makefile.w32-in ($(BLD)/w32inevt.$(O), $(BLD)/w32console.$(O)):
11578 	Update dependencies.
11579 
11580 2012-05-27  Eli Zaretskii  <eliz@gnu.org>
11581 
11582 	* bidi.c (bidi_mirror_char): Fix last change.
11583 
11584 2012-05-27  Andreas Schwab  <schwab@linux-m68k.org>
11585 
11586 	* unexmacosx.c (copy_data_segment): Truncate after 16 characters
11587 	when referring to sectname field in printf format.
11588 
11589 2012-05-27  Paul Eggert  <eggert@cs.ucla.edu>
11590 
11591 	* lisp.h [REL_ALLOC]: Omit duplicate prototypes.
11592 	Only r_alloc_inhibit_buffer_relocation needed to be added;
11593 	the others were already declared.
11594 
11595 	* bidi.c (bidi_mirror_char): Don't possibly truncate the integer
11596 	before checking whether it's out of range.  Put the check inside
11597 	eassert.  See
11598 	<https://lists.gnu.org/r/emacs-devel/2012-05/msg00485.html>.
11599 
11600 2012-05-27  Ken Brown  <kbrown@cornell.edu>
11601 
11602 	* callproc.c (Fcall_process): Restore a line that was accidentally
11603 	commented out in the 2011-02-13 change (bug#11547).
11604 
11605 2012-05-27  Eli Zaretskii  <eliz@gnu.org>
11606 
11607 	* lisp.h [REL_ALLOC]: Add prototypes for external functions
11608 	defined on ralloc.c.
11609 
11610 	* buffer.c [REL_ALLOC]: Remove prototypes of
11611 	r_alloc_reset_variable, r_alloc, r_re_alloc, and r_alloc_free,
11612 	they are now on lisp.h.
11613 
11614 	* ralloc.c (r_alloc_inhibit_buffer_relocation): New function.
11615 
11616 	* search.c (search_buffer): Use it to inhibit relocation of buffer
11617 	text while re_search_2 is doing its job, because re_search_2 is
11618 	passed C pointers to buffer text.  (Bug#11519)
11619 
11620 	* msdos.c (internal_terminal_init) <Vwindow_system_version>:
11621 	Update value to 24.
11622 
11623 	* xdisp.c (move_it_to): Under MOVE_TO_Y, when restoring iterator
11624 	state after an additional call to move_it_in_display_line_to, keep
11625 	the values of it->max_ascent and it->max_descent found for the
11626 	entire line.
11627 	(pos_visible_p): Revert the comparison against bottom_y to what it
11628 	was in revid eliz@gnu.org-20120513182235-4p6386j761ld0nwb.
11629 	(Bug#11464)
11630 
11631 2012-05-26  Paul Eggert  <eggert@cs.ucla.edu>
11632 
11633 	Fix coding-related core dumps with gcc -ftrapv.
11634 	The code was computing A - B, where A and B are pointers, and B is
11635 	random garbage.  This can lead to core dumps on platforms that
11636 	have special pointer registers, and it also leads to core dumps on
11637 	x86-64 when compiled with gcc -ftrapv.  The fix is to compute
11638 	A - B only when B is initialized properly.
11639 	* coding.c (coding_set_source, coding_set_destination): Return void.
11640 	(coding_change_source, coding_change_destinations): New functions,
11641 	with the old behaviors of coding_set_source and coding_set_destination.
11642 	All callers that need an offset changed to use these new functions.
11643 
11644 2012-05-26  Glenn Morris  <rgm@gnu.org>
11645 
11646 	* nsterm.m (ns_init_paths): Don't mess with INFOPATH.  (Bug#2791)
11647 
11648 2012-05-26  Eli Zaretskii  <eliz@gnu.org>
11649 
11650 	Extend mouse support on W32 text-mode console.
11651 	* xdisp.c (draw_row_with_mouse_face):
11652 	Call tty_draw_row_with_mouse_face for WINDOWSNT as well.
11653 
11654 	* w32console.c: Include window.h.
11655 	(w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face):
11656 	New functions.
11657 	(initialize_w32_display): Initialize mouse-highlight data.
11658 
11659 	* w32inevt.c: Include termchar.h and window.h.
11660 	(do_mouse_event): Support mouse-autoselect-window.  When the mouse
11661 	moves, call note_mouse_highlight.  If help_echo changed, call
11662 	gen_help_event to produce help-echo message in the echo area.
11663 	Call clear_mouse_face if mouse_face_hidden is set in the mouse
11664 	highlight info.
11665 
11666 2012-05-26  Paul Eggert  <eggert@cs.ucla.edu>
11667 
11668 	* lread.c (read1): Simplify slightly to avoid an overflow warning
11669 	with GCC 4.7.0 on x86-64.
11670 
11671 2012-05-26  Eli Zaretskii  <eliz@gnu.org>
11672 
11673 	* bidi.c (bidi_mirror_char): Revert last change: an int is
11674 	definitely wide enough here.
11675 
11676 2012-05-25  Paul Eggert  <eggert@cs.ucla.edu>
11677 
11678 	Fix integer width and related bugs (Bug#9874).
11679 	* alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp):
11680 	(allocate_vectorlike, buffer_memory_full, struct sdata, SDATA_SIZE)
11681 	(string_bytes, check_sblock, allocate_string_data):
11682 	(compact_small_strings, Fmake_bool_vector, make_string)
11683 	(make_unibyte_string, make_multibyte_string)
11684 	(make_string_from_bytes, make_specified_string)
11685 	(allocate_vectorlike, Fmake_vector, find_string_data_in_pure)
11686 	(make_pure_string, make_pure_c_string, make_pure_vector, Fpurecopy)
11687 	(mark_vectorlike):
11688 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11689 	(allocate_pseudovector):
11690 	Use int, not EMACS_INT, where int is wide enough.
11691 	(inhibit_garbage_collection, Fgarbage_collect):
11692 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11693 	* bidi.c (bidi_mirror_char): Use EMACS_INT, not int, where
11694 	int might not be wide enough.
11695 	(bidi_cache_search, bidi_cache_find, bidi_init_it)
11696 	(bidi_count_bytes, bidi_char_at_pos, bidi_fetch_char)
11697 	(bidi_at_paragraph_end, bidi_find_paragraph_start)
11698 	(bidi_paragraph_init, bidi_resolve_explicit, bidi_resolve_weak)
11699 	(bidi_level_of_next_char, bidi_move_to_visually_next):
11700 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11701 	* buffer.c (copy_overlays, Fgenerate_new_buffer_name)
11702 	(Fkill_buffer, Fset_buffer_major_mode)
11703 	(advance_to_char_boundary, Fbuffer_swap_text)
11704 	(Fset_buffer_multibyte, overlays_at, overlays_in)
11705 	(overlay_touches_p, struct sortvec, record_overlay_string)
11706 	(overlay_strings, recenter_overlay_lists)
11707 	(adjust_overlays_for_insert, adjust_overlays_for_delete)
11708 	(fix_start_end_in_overlays, fix_overlays_before, modify_overlay)
11709 	(Fmove_overlay, Fnext_overlay_change, Fprevious_overlay_change)
11710 	(Foverlay_recenter, last_overlay_modification_hooks_used)
11711 	(report_overlay_modification, evaporate_overlays, enlarge_buffer_text):
11712 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11713 	(validate_region): Omit unnecessary test for b <= e,
11714 	since that's guaranteed by the previous test.
11715 	(adjust_overlays_for_delete): Avoid pos + length overflow.
11716 	(Fmove_overlay, Fdelete_overlay, add_overlay_mod_hooklist)
11717 	(report_overlay_modification):
11718 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11719 	(Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change):
11720 	Omit pointer cast, which isn't needed anyway, and doesn't work
11721 	after the EMACS_INT -> ptrdiff_t change.
11722 	(Fmove_overlay): Clip BEG and END to ptrdiff_t to avoid overflow.
11723 	* buffer.h: Adjust decls to match defn changes elsewhere.
11724 	(struct buffer_text, struct buffer):
11725 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11726 	Use EMACS_INT, not int, where int might not be wide enough.
11727 	* bytecode.c (unmark_byte_stack, exec_byte_code): Use ptrdiff_t,
11728 	not int, to avoid needless 32-bit limit on 64-bit hosts.
11729 	(exec_byte_code): Use tighter memory-full test, one that checks
11730 	for alloca overflow.  Don't compute the address of the object just
11731 	before an array, as that's not portable.  Use EMACS_INT, not
11732 	ptrdiff_t or int, where ptrdiff_t or int might not be wide enough.
11733 	* callint.c (Fcall_interactively):
11734 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11735 	* callproc.c (call_process_kill, Fcall_process):
11736 	Don't assume pid_t fits into an Emacs fixnum.
11737 	(call_process_cleanup, Fcall_process, child_setup):
11738 	Don't assume pid_t fits into int.
11739 	(call_process_cleanup, Fcall_process, delete_temp_file)
11740 	(Fcall_process_region):
11741 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11742 	(Fcall_process): Simplify handling of volatile integers.
11743 	Use int, not EMACS_INT, where int will do.
11744 	* casefiddle.c (casify_object, casify_region, operate_on_word)
11745 	(Fupcase_word, Fdowncase_word, Fcapitalize_word):
11746 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11747 	(casify_object): Avoid integer overflow when overallocating buffer.
11748 	* casetab.c (set_identity, shuffle): Prefer int to unsigned when
11749 	either works.  Use lint_assume to convince GCC 4.6.1 that it's OK.
11750 	* category.c (Fchar_category_set): Don't assume fixnum fits in int.
11751 	* category.h (CATEGORYP): Don't assume arg is nonnegative.
11752 	* ccl.c (GET_CCL_INT): Remove; no longer needed, since the
11753 	integers are now checked earlier.  All uses replaced with XINT.
11754 	(ccl_driver):
11755 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11756 	For CCL_MapSingle, check that content and value are in int range.
11757 	(ccl_driver, Fregister_code_conversion_map):
11758 	Check that Vcode_version_map_vector is a vector.
11759 	(resolve_symbol_ccl_program): Check that vector header is in range.
11760 	Always copy the vector, so that we can check its contents reliably
11761 	now rather than having to recheck each instruction as it's being
11762 	executed.  Check that vector words fit in 'int'.
11763 	(ccl_get_compiled_code, Fregister_ccl_program)
11764 	(Fregister_code_conversion_map): Use ptrdiff_t, not int, for
11765 	program indexes, to avoid needless 32-bit limit on 64-bit hosts.
11766 	(Fccl_execute, Fccl_execute_on_string): Check that initial reg
11767 	contents are in range.
11768 	(Fccl_execute_on_string): Check that status is in range.
11769 	* ccl.h (struct ccl_program.idx): Now ptrdiff_t, not int.
11770 	* character.c (char_resolve_modifier_mask, Fchar_resolve_modifiers):
11771 	Accept and return EMACS_INT, not int, because callers can pass values
11772 	out of 'int' range.
11773 	(c_string_width, strwidth, lisp_string_width, chars_in_text)
11774 	(multibyte_chars_in_text, parse_str_as_multibyte)
11775 	(str_as_multibyte, count_size_as_multibyte, str_to_multibyte)
11776 	(str_as_unibyte, str_to_unibyte, string_count_byte8)
11777 	(string_escape_byte8, Fget_byte):
11778 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11779 	(Funibyte_string): Use CHECK_RANGED_INTEGER, not CHECK_NATNUM, to
11780 	avoid mishandling large integers.
11781 	* character.h: Adjust decls to match defn changes elsewhere.
11782 	* charset.c (load_charset_map_from_file, find_charsets_in_text)
11783 	(Ffind_charset_region):
11784 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11785 	(load_charset_map_from_file): Redo idx calculation to avoid overflow.
11786 	(load_charset_map_from_vector, Fdefine_charset_internal):
11787 	Don't assume fixnum fits in int.
11788 	(load_charset_map_from_vector, Fmap_charset_chars):
11789 	Remove now-unnecessary CHECK_NATNUMs.
11790 	(Fdefine_charset_internal): Check ranges here, more carefully.
11791 	Don't rely on undefined behavior with signed left shift overflow.
11792 	Don't assume unsigned int fits into fixnum, or that fixnum fits
11793 	into unsigned int.  Don't require max_code to be a valid fixnum;
11794 	that's not true for gb10830 4-byte on a 32-bit host.  Allow
11795 	invalid_code to be a cons, for the same reason.  Require code_offset
11796 	to be a character.  Avoid int overflow if max_char is close
11797 	to INT_MAX.
11798 	(CODE_POINT_TO_INDEX): On 32-bit hosts, return int, not unsigned;
11799 	this is intended anyway and avoids some undefined behavior.
11800 	(load_charset_map): Pass unsigned, not int, as 2nd arg of
11801 	INDEX_TO_CODE_POINT, as that's what it expects.
11802 	(Funify_charset, encode_char): Don't stuff unsigned vals into int vars.
11803 	* charset.h (DECODE_CHAR): Return int, not unsigned;
11804 	this is what was intended anyway, and it avoids undefined behavior.
11805 	(CHARSET_OFFSET): Remove unused macro, instead of fixing its
11806 	integer-overflow issues.
11807 	(ENCODE_CHAR): Return unsigned on all hosts, not just on 32-bit hosts.
11808 	Formerly, it returned EMACS_INT on 64-bit hosts in the common case
11809 	where the argument is EMACS_INT, and this behavior is not intended.
11810 	* chartab.c (Fmake_char_table, Fset_char_table_range)
11811 	(uniprop_get_decoder, uniprop_get_encoder):
11812 	Don't assume fixnum fits in int.
11813 	* cmds.c (move_point): New function, that does the gist of
11814 	Fforward_char and Fbackward_char, but does so while checking
11815 	for integer overflow more accurately.
11816 	(Fforward_char, Fbackward_char): Use it.
11817 	(Fforward_line, Fend_of_line, internal_self_insert)
11818 	(internal_self_insert):
11819 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11820 	Fix a FIXME, by checking for integer overflow when calculating
11821 	target_clm and actual_clm.
11822 	* coding.c (detect_coding_XXX, encode_coding_XXX, CODING_DECODE_CHAR)
11823 	(CODING_ENCODE_CHAR, CODING_CHAR_CHARSET, CODING_CHAR_CHARSET_P)
11824 	(ASSURE_DESTINATION, coding_alloc_by_realloc)
11825 	(coding_alloc_by_making_gap, alloc_destination)
11826 	(detect_coding_utf_8, encode_coding_utf_8, decode_coding_utf_16)
11827 	(encode_coding_utf_16, detect_coding_emacs_mule)
11828 	(decode_coding_emacs_mule, encode_coding_emacs_mule)
11829 	(detect_coding_iso_2022, decode_coding_iso_2022)
11830 	(encode_invocation_designation, encode_designation_at_bol)
11831 	(encode_coding_iso_2022, detect_coding_sjis, detect_coding_big5)
11832 	(decode_coding_sjis, decode_coding_big5, encode_coding_sjis)
11833 	(encode_coding_big5, detect_coding_ccl, decode_coding_ccl)
11834 	(encode_coding_ccl, encode_coding_raw_text)
11835 	(detect_coding_charset, decode_coding_charset)
11836 	(encode_coding_charset, detect_eol, decode_eol, produce_chars)
11837 	(produce_composition, produce_charset, produce_annotation)
11838 	(decode_coding, handle_composition_annotation)
11839 	(handle_charset_annotation, consume_chars, decode_coding_gap)
11840 	(decode_coding_object, encode_coding_object, detect_coding_system)
11841 	(Ffind_coding_systems_region_internal, Fcheck_coding_systems_region)
11842 	(code_convert_region, code_convert_string)
11843 	(Fdefine_coding_system_internal)
11844 	(coding_set_source, coding_set_destination):
11845 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11846 	(setup_iso_safe_charsets, consume_chars, Funencodable_char_position)
11847 	(Fdefine_coding_system_internal):
11848 	Don't assume fixnums fit in int.
11849 	(decode_coding_gap, decode_coding_object, encode_coding_object)
11850 	(Fread_coding_system, Fdetect_coding_region)
11851 	(Funencodable_char_position, Fcheck_coding_systems_region)
11852 	(get_translation, handle_composition_annotation, consume_chars):
11853 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11854 	(consume_chars): Rewrite to not calculate an address outside buffer.
11855 	(Ffind_operation_coding_system): NATNUMP can eval its arg twice.
11856 	Don't access memory outside of the args array.
11857 	(Fdefine_coding_system_internal): Check for charset-id overflow.
11858 	(ENCODE_ISO_CHARACTER): Use unsigned, not int, to store the unsigned
11859 	result of ENCODE_CHAR.
11860 	* coding.h: Adjust decls to match defn changes elsewhere.
11861 	(struct coding_system):
11862 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11863 	* composite.c (get_composition_id, find_composition)
11864 	(run_composition_function, update_compositions)
11865 	(compose_text, composition_gstring_put_cache)
11866 	(composition_gstring_p, composition_gstring_width)
11867 	(fill_gstring_header, fill_gstring_body, autocmp_chars)
11868 	(composition_compute_stop_pos, composition_reseat_it)
11869 	(composition_update_it, struct position_record)
11870 	(find_automatic_composition, composition_adjust_point)
11871 	(Fcomposition_get_gstring, Ffind_composition_internal):
11872 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11873 	(update_compositions):
11874 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11875 	* composite.h: Adjust decls to match defn changes elsewhere.
11876 	(struct composition):
11877 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11878 	* data.c (let_shadows_buffer_binding_p, let_shadows_global_binding_p):
11879 	Do not attempt to compute the address of the object just before a
11880 	buffer; this is not portable.
11881 	(Faref, Faset):
11882 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11883 	(Faset): Use int, not EMACS_INT, where int is wide enough.
11884 	(Fstring_to_number): Don't assume fixnums fit in int.
11885 	(Frem): Don't assume arg is nonnegative.
11886 	* dbusbind.c (xd_append_arg): Check for integers out of range.
11887 	(Fdbus_call_method): Don't overflow the timeout int.
11888 	(extract_signed, extract_unsigned): New functions.
11889 	(XD_CHECK_DBUS_SERIAL): Remove; superseded by extract_unsigned.
11890 	(xd_get_connection_references): Return ptrdiff_t, not int.
11891 	All uses changed.
11892 	(xd_signature, xd_append_arg, xd_retrieve_arg, Fdbus_message_internal)
11893 	(xd_read_message_1):
11894 	Use int, not unsigned, where the dbus API uses int.
11895 	(Fdbus_message_internal): Don't overflow mtype.
11896 	(syms_of_dbusbind): Allocate right-sized buffer for integers.
11897 	* dired.c (directory_files_internal, file_name_completion, scmp)
11898 	(file_name_completion_stat):
11899 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11900 	(file_name_completion): Don't overflow matchcount.
11901 	(file_name_completion_stat): Use SAFE_ALLOCA, not alloca.
11902 	* dispextern.h: Adjust decls to match defn changes elsewhere.
11903 	(struct text_pos, struct glyph, struct bidi_saved_info)
11904 	(struct bidi_string_data, struct bidi_it, struct composition_it)
11905 	(struct it):
11906 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11907 	(struct display_pos, struct composition_it, struct it):
11908 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11909 	* dispnew.c (increment_matrix_positions)
11910 	(increment_row_positions, mode_line_string)
11911 	(marginal_area_string):
11912 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11913 	(change_frame_size_1, Fredisplay, Fframe_or_buffer_changed_p):
11914 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11915 	(duration_to_sec_usec): New function, to check for overflow better.
11916 	(Fsleep_for, sit_for): Use it.
11917 	* doc.c (get_doc_string, store_function_docstring):
11918 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11919 	(get_doc_string, Fsnarf_documentation):
11920 	Use int, not EMACS_INT, where int is wide enough.
11921 	(get_doc_string):
11922 	Use SAFE_ALLOCA, not alloca.
11923 	Check for overflow when converting EMACS_INT to off_t.
11924 	* doprnt.c (doprnt):
11925 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11926 	* editfns.c (init_editfns, Fuser_uid, Fuser_real_uid):
11927 	Don't assume uid_t fits into fixnum.
11928 	(buildmark, Fgoto_char, overlays_around, find_field, Fdelete_field)
11929 	(Ffield_string, Ffield_string_no_properties, Ffield_beginning)
11930 	(Ffield_end, Fconstrain_to_field, Fline_beginning_position)
11931 	(Fline_end_position, Fprevious_char, Fchar_after, Fchar_before)
11932 	(general_insert_function)
11933 	(Finsert_char, make_buffer_string, make_buffer_string_both)
11934 	(update_buffer_properties, Fbuffer_substring)
11935 	(Fbuffer_substring_no_properties, Fcompare_buffer_substrings)
11936 	(Fsubst_char_in_region, check_translation)
11937 	(Ftranslate_region_internal, save_restriction_restore, Fformat)
11938 	(transpose_markers, Ftranspose_regions):
11939 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11940 	(clip_to_bounds): Move to lisp.h as an inline function).
11941 	(Fconstrain_to_field): Don't assume integers are nonnegative.
11942 	(Fline_beginning_position, Fsave_excursion, Fsave_current_buffer):
11943 	(Fsubst_char_in_region, Fsave_restriction):
11944 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11945 	(Femacs_pid): Don't assume pid_t fits into fixnum.
11946 	(lo_time): Use int, not EMACS_INT, when int suffices.
11947 	(lisp_time_argument): Check for usec out of range.
11948 	(Fencode_time): Don't assume fixnum fits in int.
11949 	(Fuser_login_name, Fuser_full_name): Signal an error
11950 	if a uid argument is out of range, rather than relying on
11951 	undefined behavior.
11952 	(Fformat_time_string): Remove now-unnecessary check.
11953 	lisp_time_argument checks for out-of-range usec now.
11954 	Use ptrdiff_t, not size_t, where ptrdiff_t will do.
11955 	* emacs.c (gdb_valbits, gdb_gctypebits): Now int, not EMACS_INT.
11956 	(gdb_data_seg_bits): Now uintptr_t, not EMACS_INT.
11957 	(PVEC_FLAG, gdb_array_mark_flag): Now ptrdiff_t, not EMACS_INT.
11958 	(init_cmdargs, Fdump_emacs):
11959 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11960 	(Fkill_emacs): Don't assume fixnum fits in int; instead, take just
11961 	the bottom (typically) 32 bits of the fixnum.
11962 	* eval.c (specpdl_size, call_debugger):
11963 	Use ptrdiff_t, not EMACS_INT, where ptrdiff_t is wide enough.
11964 	(when_entered_debugger, Fbacktrace_debug):
11965 	Don't assume fixnum can fit in int.
11966 	(Fdefvaralias, Fdefvar): Do not attempt to compute the address of
11967 	the object just before a buffer; this is not portable.
11968 	(FletX, Flet, Funwind_protect, do_autoload, Feval, funcall_lambda)
11969 	(grow_specpdl, unbind_to):
11970 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11971 	(Fapply, apply_lambda): Don't assume ptrdiff_t can hold fixnum.
11972 	(grow_specpdl): Simplify allocation by using xpalloc.
11973 	(Fprog1, Fprog2): Don't assume list length fits in int.  Simplify.
11974 	* fileio.c (Ffind_file_name_handler, Fcopy_file, Frename_file)
11975 	(Finsert_file_contents, Fwrite_region, Fdo_auto_save):
11976 	Use ptrdiff_t, not int, to avoid needless 32-bit limit on 64-bit hosts.
11977 	(Ffind_file_name_handler, non_regular_inserted, Finsert_file_contents)
11978 	(a_write, e_write):
11979 	Use ptrdiff_t, n