+2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * window.h (struct window): Convert left_margin_cols and
+ right_margin_cols from Lisp_Objects to integers. Adjust comment.
+ (WINDOW_LEFT_MARGIN_COLS, WINDOW_RIGHT_MARGIN_COLS)
+ (WINDOW_LEFT_MARGIN_WIDTH, WINDOW_RIGHT_MARGIN_WIDTH):
+ Adjust users.
+ * dispnew.c (margin_glyphs_to_reserve): Convert 3rd arg to int.
+ Adjust comment.
+ (showing_window_margins_p, update_window_line, update_frame_1):
+ * fringe.c (draw_fringe_bitmap_1):
+ * xdisp.c (window_box_width): Adjust users.
+ * window.c (wset_left_margin_cols, wset_right_margin_cols): Remove.
+ (adjust_window_margins, set_window_buffer, Fsplit_window_internal):
+ Use direct assignment.
+ (Fset_window_configuration, save_window_save, Fwindow_margins):
+ Convert Lisp_Object to integer and back where appropriate.
+ (Fset_window_margins): Adjust user. Return t if any margin
+ was actually changed, and mention this in docstring.
+
+2013-08-13 Xue Fuqiao <xfq.free@gmail.com>
+
+ * syntax.c (forward_word):
+ * cmds.c (forward_char, backward_char): Mention the optional argument.
+
+2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * window.h (struct window): Convert left_fringe_width
+ and right_fringe_width from Lisp_Objects to integers.
+ Adjust comment.
+ (WINDOW_FRINGE_COLS, WINDOW_LEFT_FRINGE_WIDTH)
+ (WINDOW_RIGHT_FRINGE_WIDTH): Adjust users.
+ * window.c (wset_left_fringe_width, wset_right_fringe_width):
+ Remove.
+ (make_window): Initialize new integer fields to -1.
+ (Fsplit_window_internal): Use direct assignment.
+ (Fset_window_configuration, save_window_save): Convert
+ Lisp_Object to integer and back where appropriate.
+ (Fset_window_fringes): Adjust user. Return t if any fringe
+ was actually changed, and mention this in docstring.
+
+2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * keyboard.c (Fdiscard_input): Do not increment update_mode_lines.
+ * nsfns.m (x_set_cursor_type):
+ * w32fns.c (x_set_cursor_type):
+ * xfns.m (x_set_cursor_type): Do not set cursor_type_changed here...
+ * xdisp.c (set_frame_cursor_types): ...but in common code.
+
+2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * font.c (clear_font_cache): New function, stripped from...
+ (Fclear_font_cache): ...here, which now uses the function
+ above. Adjust comment.
+ * font.h (clear_font_cache): Add prototype.
+ * xfaces.c (clear_face_cache): Use clear_font_cache.
+
+2013-08-13 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * window.c (Fset_window_start): Compare `w', not `window' because
+ `w' might not be equal to `window' after call to decode_live_window.
+
+2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ * process.c (deactivate_process): Reset fds to -1 (Bug#15035).
+ This fixes a problem introduced by the Bug#15035 patch
+ when using GPG. Reported by Herbert J. Skuhra.
+
+2013-08-12 Eli Zaretskii <eliz@gnu.org>
+
+ * decompress.c <zlib_initialized> [WINDOWSNT]: New static variable.
+ (Fzlib_decompress_region) [WINDOWSNT]: Call init_zlib_functions if
+ not yet initialized.
+
+2013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * decompress.c (Fzlib_decompress_region): Support zlib
+ decompression, too, and rename.
+
+2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Minor zlib configuration tweaks.
+ * decompress.c (fn_inflateInit2) [!WINDOWSNT]:
+ Don't assume presence of fn_inflateInit2_ zlib internal function.
+
+2013-08-12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * decompress.c (Fzlib_decompress_gzipped_region): Rename to
+ include the zlib prefix.
+
+2013-08-12 Eli Zaretskii <eliz@gnu.org>
+
+ * decompress.c [WINDOWSNT]: Include windows.h and w32.h.
+ (DEF_ZLIB_FN, LOAD_ZLIB_FN) [WINDOWSNT]: New macros. Use them to
+ define static variables that are pointers to zlib functions to be
+ dynamically loaded.
+ (init_zlib_functions) [WINDOWSNT]: New function.
+ (fn_inflateInit2_, fn_inflate, fn_inflateEnd, fn_inflateInit2):
+ New macros.
+ (Fdecompress_gzipped_region, unwind_decompress): Use the fn_*
+ macros instead of invoking the zlib functions directly.
+ (syms_of_decompress): DEFSYM Qzlib_dll. Staticpro
+ Szlib_available_p.
+
+2013-08-12 Dmitry Antipov <dmantipov@yandex.ru>
+
+ Avoid looping over all frame windows to freeze and unfreeze.
+ * window.h (struct window): Drop frozen_window_start_p.
+ (freeze_window_starts): Drop prototype.
+ * frame.h (struct frame): New frozen_window_starts flag.
+ (FRAME_WINDOWS_FROZEN): New macro.
+ * window.c (freeze_window_start, freeze_window_starts):
+ Remove.
+ (select_window, replace_window): Adjust users.
+ * xdisp.c (resize_mini_window): Use FRAME_WINDOWS_FROZEN.
+ (window_frozen_p): New function.
+ (redisplay_window): Use it.
+
+2013-08-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix some fd issues when running subprocesses (Bug#15035).
+ Fix bugs that can leak files or file descriptors on errors.
+ Don't unlink open temp files, as that's hard for users to diagnose
+ when things go awry (e.g., temp disk exhausted).
+ Don't bother to lock temp files. Check for invalid recursion.
+ * callproc.c (synch_process_fd): Remove. All uses removed.
+ (synch_process_tempfile): New var or macro.
+ (CALLPROC_STDOUT, CALLPROC_STDERR, CALLPROC_PIPEREAD, CALLPROC_FDS):
+ New constants.
+ (record_kill_process): New arg, the temp name. All callers changed.
+ (delete_temp_file): Now just a simple wrapper around unlink.
+ (call_process_kill): New arg, the call_process_fd array.
+ Close them all. Clear synch_process_pid. Remove the temp file,
+ or arrange for it to be removed.
+ (call_process_cleanup) [MSDOS]: Arg no longer contains file name;
+ that's been moved to synch_process_tempfile. Caller changed.
+ Do not remove the tempfile; that's now call_process_kill's
+ responsibility.
+ (call_process_cleanup) [!MSDOS]: Do not record unwind-protect for
+ call_process_kill; the caller now does that.
+ (call_process_cleanup): Do not close the process fd; that's now
+ call_process_kill's responsibility.
+ (Fcall_process): Implement via new function call_process, which
+ has most of the old body of Fcall_process, but with a different API.
+ (call_process): New function that does not open or close filefd if
+ it is nonnegative. Record which fds need to be closed, and let
+ call_process_kill close (and remove the tempfile, on MSDOS) on error.
+ Signal an error if invoked recursively (could be done via a hook).
+ Simplify creation of the tempfile in the MSDOS case.
+ Don't create the output file until after checking for the executable.
+ Report any failure to open /dev/null.
+ Don't open /dev/null for writing twice; once is enough.
+ Don't create pipe if all output is being discarded or sent to file.
+ Don't worry about setting up the coding system or reading from the
+ pipe if all output is being discarded.
+ Hoist fd_error local into top level, to lessen block nesting.
+ Don't record deleted pid here; now done by Fcall_process_region.
+ (Fcall_process) [MSDOS]: Report mktemp failure immediately,
+ and note its success in synch_process_tempfile.
+ Do not leak resources when child_setup fails.
+ (Fcall_process) [!MSDOS && !WINDOWSNT]: Remove duplicate assignment
+ to child_errno. Remove unnecessary close of fd0; it's close-on-exec.
+ (create_temp_file): Now returns open fd, with an additional
+ Lisp_Object * argument to return the name. All callers changed.
+ Do not close the file; rewind it instead, and leave it open for
+ the caller. Do not lock the temp file. Unwind-protect the file
+ and the file-descriptor.
+ (Fcall_process_region): If the input is /dev/null, unwind-protect it.
+ If an asynchrounous process, record it here, not in call_process.
+ (syms_of_callproc) [MSDOS]: Initialize synch_process_tempfile.
+ * eval.c (set_unwind_protect): New function.
+ * fileio.c (write_region): New function, generalized from the
+ old Fwrite_region. Do not lock temp files.
+ (Fwrite_region): Use it.
+ * lisp.h (set_unwind_protect, write_region): New decls.
+ * process.c: Include <verify.h>.
+ (make_process): Mark fds as initially closed.
+ (deleted_pid_list): Now a list of pid-filename pairs.
+ All uses changed.
+ (close_process_fd): New function.
+ (SUBPROCESS_STDIN, WRITE_TO_SUBPROCESS, READ_FROM_SUBPROCESS)
+ (SUBPROCESS_STDOUT, READ_FROM_EXEC_MONITOR, EXEC_MONITOR_OUTPUT):
+ New constants. Verify that their number matches PROCESS_OPEN_FDS.
+ (create_process, create_pty, Fmake_serial_process)
+ (server_accept_connection): Record which fds need to be closed,
+ and let deactivate_process close them.
+ (Fmake_network_process): Do not discard the unwind-protect
+ until it's safe to do so.
+ (deactivate_process): Close the fds opened by create_process etc.
+ (Fprocess_send_eof): Adjust to new way of recording open fds.
+ Report an error if /dev/null can't be opened, instead of aborting.
+ * process.h (PROCESS_OPEN_FDS): New constant.
+ (struct Lisp_Process): New member open_fds.
+ (record_kill_process, record_deleted_pid): Adjust signatures.
+ (record_deleted_pid): Move decl here ...
+ * syswait.h (record_deleted_pid): ... from here.
+
2013-08-11 Paul Eggert <eggert@cs.ucla.edu>
* decompress.c: Fix bugs with large buffers and weird inputs.