]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
Merge from emacs-24; up to 2012-11-24T16:58:43Z!cyd@gnu.org
[gnu-emacs] / src / ChangeLog
index 106333ac8ed1d473f4681aea7e878904e1048b51..795582c802bc2b02fd192d16fc2c402be8e573b3 100644 (file)
@@ -1,4 +1,4 @@
-2012-12-05  Eli Zaretskii  <eliz@gnu.org>
+2012-12-06  Eli Zaretskii  <eliz@gnu.org>
 
        * callproc.c (Fcall_process_region) [!HAVE_MKSTEMP]: If mktemp
        fails, signal an error instead of continuing with an empty
        Encode expanded temp file pattern before passing it to mkstemp or
        mktemp.
 
-2012-12-04  Eli Zaretskii  <eliz@gnu.org>
-
        * fileio.c (file_name_as_directory, directory_file_name) [DOS_NT]:
        Encode the file name before passing it to dostounix_filename, in
        case it will downcase it (under w32-downcase-file-names).
        (Bug#12933)
 
-2012-12-01  Chong Yidong  <cyd@gnu.org>
+2012-12-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Minor call-process cleanups.
+       * callproc.c (Fcall_process): Do record-unwind-protect on MSDOS
+       at the same time as other platforms, to simplify analysis.
+       No need for fd0_volatile since we have synch_process_fd.
+       Avoid needless emacs_close; arg is always negative.
+
+2012-12-04  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * callproc.c (Fcall_process): Fix specpdl nesting for asynchronous
+       processes.
+
+2012-12-04  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * lisp.h (Mouse_HLInfo): Remove set-but-unused mouse_face_image_state
+       member.  Adjust users.  Convert mouse_face_past_end, mouse_face_defer
+       and mouse_face_hidden members to a bitfields.
+       * frame.h (struct frame): Remove set-but-not-used space_width member.
+       (FRAME_SPACE_WIDTH): Remove.
+       * nsterm.m, w32term.c, xterm.c: Adjust users.
+       * termchar.h (struct tty_display_info): Remove set-but-unused se_is_so
+       member.  Adjust users.  Convert term_initted, delete_in_insert_mode,
+       costs_set, insert_mode, standout_mode, cursor_hidden and flow_control
+       members to a bitfields.
+
+2012-12-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Don't let call-process be a zombie factory (Bug#12980).
+       Fixing this bug required some cleanup of the signal-handling code.
+       As a side effect, this change also fixes a longstanding rare race
+       condition whereby Emacs could mistakenly kill unrelated processes,
+       and it fixes a bug where a second C-g does not kill a recalcitrant
+       synchronous process in GNU/Linux and similar platforms.
+       The patch should also fix the last vestiges of Bug#9488,
+       a bug which has mostly been fixed on the trunk by other changes.
+       * callproc.c, process.h (synch_process_alive, synch_process_death)
+       (synch_process_termsig, sync_process_retcode):
+       Remove.  All uses removed, to simplify analysis and so that
+       less consing is done inside critical sections.
+       * callproc.c (call_process_exited): Remove.  All uses replaced
+       with !synch_process_pid.
+       * callproc.c (synch_process_pid, synch_process_fd): New static vars.
+       These take the role of what used to be in unwind-protect arg.
+       All uses changed.
+       (block_child_signal, unblock_child_signal):
+       New functions, to avoid races that could kill innocent-victim processes.
+       (call_process_kill, call_process_cleanup, Fcall_process): Use them.
+       (call_process_kill): Record killed processes as deleted, so that
+       zombies do not clutter up the system.  Do this inside a critical
+       section, to avoid a race that would allow the clutter.
+       (call_process_cleanup): Fix code so that the second C-g works again
+       on common platforms such as GNU/Linux.
+       (Fcall_process): Create the child process in a critical section,
+       to fix a race condition.  If creating an asynchronous process,
+       record it as deleted so that zombies do not clutter up the system.
+       Do unwind-protect for WINDOWSNT too, as that's simpler in the
+       light of these changes.  Omit unnecessary call to emacs_close
+       before failure, as the unwind-protect code does that.
+       * callproc.c (call_process_cleanup):
+       * w32proc.c (waitpid): Simplify now that synch_process_alive is gone.
+       * process.c (record_deleted_pid): New function, containing
+       code refactored out of Fdelete_process.
+       (Fdelete_process): Use it.
+       (process_status_retrieved): Remove.  All callers changed to use
+       child_status_change.
+       (record_child_status_change): Remove, folding its contents into ...
+       (handle_child_signal): ... this signal handler.  Now, this
+       function is purely a handler for SIGCHLD, and is not called after
+       a synchronous waitpid returns; the synchronous code is moved to
+       wait_for_termination.  There is no need to worry about reaping
+       more than one child now.
+       * sysdep.c (get_child_status, child_status_changed): New functions.
+       (wait_for_termination): Now takes int * status and bool
+       interruptible arguments, too.  Do not record child status change;
+       that's now the caller's responsibility.  All callers changed.
+       Reimplement in terms of get_child_status.
+       (wait_for_termination_1, interruptible_wait_for_termination):
+       Remove.  All callers changed to use wait_for_termination.
+       * syswait.h: Include <stdbool.h>, for bool.
+       (record_child_status_change, interruptible_wait_for_termination):
+       Remove decls.
+       (record_deleted_pid, child_status_changed): New decls.
+       (wait_for_termination): Adjust to API changes noted above.
+
+       * bytecode.c, lisp.h (Qbytecode): Remove.
+       No longer needed after 2012-11-20 interactive-p changes.
+
+2012-12-03  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (redisplay_window): If the cursor is visible, but inside
+       the scroll margin, move point outside the margin.  (Bug#13055)
+
+2012-12-03  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * gtkutil.c (my_log_handler): New function.
+       (xg_set_geometry): Set log handler to my_log_handler (Bug#11177).
+
+2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * lisp.h (modify_region): Rename to...
+       (modify_region_1): ...new prototype.
+       * textprop.c (modify_region): Now static.  Adjust users.
+       * insdel.c (modify_region): Rename to...
+       (modify_region_1): ...new function to work with current buffer.
+       Adjust comment and users.  Use true and false for booleans.
+
+2012-12-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (free_save_value): New function.
+       (safe_alloca_unwind): Use it.
+       * lisp.h (free_save_value): New prototype.
+       * editfns.c (save_excursion_save): Use Lisp_Misc_Save_Value.
+       Add comment.
+       (save_excursion_restore): Adjust to match saved data structure.
+       Use free_save_value to offload some work from GC.  Drop obsolete
+       #if 0 code.
+
+2012-12-03  Chong Yidong  <cyd@gnu.org>
 
        * fileio.c (Vauto_save_list_file_name): Doc fix.
 
-2012-11-30  Fabrice Popineau  <fabrice.popineau@gmail.com>
+2012-12-03  Fabrice Popineau  <fabrice.popineau@gmail.com>
 
        * w32fns.c: Remove prototype of atof.
        (syspage_mask): Declared DWORD_PTR, for compatibility with 64-bit
        (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
        defined.
 
-2012-11-27  Glenn Morris  <rgm@gnu.org>
+2012-12-03  Glenn Morris  <rgm@gnu.org>
 
        * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
 
-2012-11-26  Eli Zaretskii  <eliz@gnu.org>
+2012-12-02  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
-       (Bug#11964)
+       Fix xpalloc confusion after memory is exhausted.
+       * alloc.c (xpalloc): Comment fix.
+       * charset.c (Fdefine_charset_internal): If xpalloc exhausts memory
+       and signals an error, do not clear charset_table_size, as
+       charset_table is still valid.
+       * doprnt.c (evxprintf): Clear *BUF after freeing it.
 
-2012-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+       Use execve to avoid need to munge environ (Bug#13054).
+       * callproc.c (Fcall_process):
+       * process.c (create_process):
+       Don't save and restore environ; no longer needed.
+       * callproc.c (child_setup):
+       Use execve, not execvp, to preserve environ.
 
-       Revert recent change for Bug#8855.
-       As reported by Harald Hanche-Olsen in
-       <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00445.html>
-       the change introduces a further bug, of creating lots of zombie
-       processes in some cases.  Further work is needed to come up with a
-       better fix for Bug#8855.
+2012-12-01  Paul Eggert  <eggert@cs.ucla.edu>
 
-2012-11-24  Eli Zaretskii  <eliz@gnu.org>
+       * xterm.c (x_draw_image_relief): Remove unused locals (Bug#10500).
+
+2012-12-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+       * xterm.c (x_draw_relief_rect, x_draw_image_relief): Fix relief
+       display for sliced images (Bug#10500).
+
+       * w32term.c (w32_draw_relief_rect, x_draw_image_relief): Likewise.
+
+2012-11-30  Juanma Barranquero  <lekktu@gmail.com>
+
+       * doc.c (Fdocumentation): Re-add handling of function-documentation,
+       accidentally removed in 2012-11-09T04:10:16Z!monnier@iro.umontreal.ca (bug#13034).
+
+2012-11-29  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (window_outdated): Remove eassert since it hits
+       some suspicious corner cases (see Bug#13007 and Bug#13012).
+       (mode_line_update_needed): New function.
+       (redisplay_internal, redisplay_window): Use it.
+       (ensure_selected_frame): New function.
+       (redisplay_internal, unwind_redisplay): Use it.
+       (redisplay_internal): Move comment about buffer_shared...
+       (buffer_shared_and_changed): ...near to its real use.
+
+2012-11-29  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * callproc.c (Fcall_process): Don't misreport vfork failure.
+
+2012-11-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * callproc.c (Fcall_process): Fix vfork portability problems.
+       Do not assume that fd[0], count, filefd, and save_environ survive
+       vfork.  Fix bug whereby wrong errno value could be reported for
+       pipe failure.  Some minor cleanups, too, as follows.  Move buf and
+       bufsize to the context where they're needed.  Change new_argv to
+       be of type char **, as this is more convenient and avoids casts.
+       (CALLPROC_BUFFER_SIZE_MIN, CALLPROC_BUFFER_SIZE_MAX):
+       Now local constants, not macros.
+
+2012-11-18  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (font_unparse_xlfd): Fix previous change.  Keep "const"
+       for the variable "f".
+
+2012-11-13  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (font_unparse_xlfd): Exclude special characters from the
+       generating XLFD name.
+
+2012-11-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume POSIX 1003.1-1988 or later for grp.h, pwd.h.
+       * dired.c (stat_uname, stat_gname):
+       * fileio.c (Fexpand_file_name): Remove no-longer-needed casts.
+
+       Assume POSIX 1003.1-1988 or later for errno.h (Bug#12968).
+       * dired.c (directory_files_internal, file_name_completion):
+       Assume EAGAIN and EINTR are defined.
+
+       * fileio.c (Fcopy_file): Assume EISDIR is defined.
+       * gmalloc.c (ENOMEM, EINVAL): Assume they're defined.
+       * gnutls.c (emacs_gnutls_write): Assume EAGAIN is defined.
+       * lread.c (readbyte_from_file): Assume EINTR is defined.
+       * process.c (wait_reading_process_output, send_process) [subprocesses]:
+       Assume EIO and EAGAIN are defined.
+       * unexcoff.c (write_segment): Assume EFAULT is defined.
+
+2012-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+       * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
+       (Bug#11964)
 
        * xdisp.c (draw_glyphs): Don't draw in mouse face if mouse
        highlighting on the frame was cleared.  Prevents assertion
        violations when repeatedly clicking on the "Top" link of the
        "bread-crumbs" in Info buffers.
 
-2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
-           Eli Zaretskii  <eliz@gnu.org>
+2012-11-25  Paul Eggert  <eggert@cs.ucla.edu>
 
-       Fix a race condition with glib (Bug#8855).
-       The symptom is a diagnostic "GLib-WARNING **: In call to
-       g_spawn_sync(), exit status of a child process was requested but
-       SIGCHLD action was set to SIG_IGN and ECHILD was received by
-       waitpid(), so exit status can't be returned."  The diagnostic
-       is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
-       The real bug is a race condition between Emacs and glib: Emacs
-       does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
-       so that glib can't find it.  Work around the bug by invoking
-       waitpid only on subprocesses that Emacs itself creates.
-
-       This is a backport from the trunk, consisting of:
-
-       * w32proc.c (create_child): Don't clip the PID of the child
-       process to fit into an Emacs integer, as this is no longer a
-       restriction.
-       (waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
-       reaping only the process specified by PID argument, if that is
-       positive.  Use PID instead of dead_child to know which process to
-       reap.  Wait for the child to die only if WNOHANG is not in
-       OPTIONS.
-       (sys_select): Don't set dead_child.
+       * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
 
-       * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
-       as it is no longer needed.
+2012-11-24  Ken Brown  <kbrown@cornell.edu>
 
-       * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
-       no longer needed.
-       (create_process, record_child_status_change): Don't use special
-       value -1 in pid field, as the caller now must know the pid rather
-       than having the callee infer it.  The inference was sometimes
-       incorrect anyway, due to another race.
-       (create_process): Set new 'alive' member if child is created.
-       (process_status_retrieved): New function.
-       (record_child_status_change): Use it.
-       Accept negative 1st argument, which means to wait for the
-       processes that Emacs already knows about.  Move special-case code
-       for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
-       processes that have already been waited for, by testing and
-       clearing new 'alive' member. Remove the setting of
-       record_at_most_one_child for the !WNOHANG case.
-       (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
-       now does this internally.
-       (handle_child_signal): Let record_child_status_change do all
-       the work, since we do not want to reap all exited child processes,
-       only the child processes that Emacs itself created.
-       * process.h (Lisp_Process): New boolean member 'alive'.
+       * keyboard.c (HAVE_MOUSE):
+       * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
+       were always defined.
 
-2012-11-23  Eli Zaretskii  <eliz@gnu.org>
+2012-11-24  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
        between bpos_covered and bpos_max.  This fixes cursor display when
        pointer to string data, rather than the value of the string object
        itself (which barfs under CHECK_LISP_OBJECT_TYPE).
 
-2012-11-21  Eli Zaretskii  <eliz@gnu.org>
-
        * indent.c (Fvertical_motion): If the starting position is covered
        by a display string, return to one position before that, to avoid
        overshooting it inside move_it_to.  (Bug#12930)
 
-2012-11-20  Daniel Colascione  <dancol@dancol.org>
+2012-11-23  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (struct frame): Remove display_preempted member
+       since all users are dead long ago.
+       * nsterm.h (struct x_output): Use the only dummy member.
+       * w32menu.c (pending_menu_activation): Remove since not
+       really used.
+       (set_frame_menubar): Adjust user.
+       * w32term.h (struct x_output): Drop outdated #if 0 code.
+       (struct w32_output): Use bitfields for explicit_parent,
+       asked_for_visible and menubar_active members.  Drop
+       unused pending_menu_activation member.
+       * xterm.h (struct x_output): Drop outdated #if 0 code.
+       Use bitfields for explicit_parent, asked_for_visible,
+       has_been_visible and net_wm_state_hidden_seen members.
 
-       * w32fns.c (Fx_file_dialog):
-       (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
-       cygwin_convert_file_name*.
+2012-11-23  Eli Zaretskii  <eliz@gnu.org>
 
-       * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
-       Rename cygwin_convert_path* to cygwin_convert_file_name*.
+       * makefile.w32-in (globals.h, gl-stamp): Use $(SWITCHCHAR) instead
+       of a literal "/".  (Bug#12955)
+       (gl-stamp): Invoke fc.exe directly, not through cmd.
+
+2012-11-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume POSIX 1003.1-1988 or later for dirent.h (Bug#12958).
+       * dired.c: Assume HAVE_DIRENT_H.
+       (NAMLEN): Remove, replacing with ...
+       (dirent_namelen): New function.  All uses changed.  Use the GNU macro
+       _D_EXACT_NAMELEN if available, as it's faster than strlen.
+       (DIRENTRY): Remove, replacing all uses with 'struct dirent'.
+       (DIRENTRY_NONEMPTY): Remove.  All callers now assume it's nonzero.
+       * makefile.w32-in (DIR_H): Remove.  All uses replaced with
+       $(NT_INC)/dirent.h.
+       ($(BLD)/w32.$(O)): Do not depend on $(SRC)/ndir.h.
+       * ndir.h: Rename to ../nt/inc/dirent.h.
+       * sysdep.h (closedir) [!HAVE_CLOSEDIR]: Remove.
+       Do not include <dirent.h>; no longer needed.
+       * w32.c: Include <dirent.h> rather than "ndir.h".
+
+2012-11-23  Chong Yidong  <cyd@gnu.org>
+
+       * xftfont.c (xftfont_open): Remove duplicate assignment.
+
+2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * alloc.c (Fgarbage_collect): Unblock input after clearing
+       gc_in_progress to avoid note_mouse_highlight glitch with GC.
+       * frame.h (FRAME_MOUSE_UPDATE): New macro.
+       * msdos.c (IT_frame_up_to_date): Use it here...
+       * w32term.c (w32_frame_up_to_date): ...here...
+       * xterm.c (XTframe_up_to_date): ...and here...
+       * nsterm.m (ns_frame_up_to_date): ...but not here.
+       * lisp.h (Mouse_HLInfo): Remove mouse_face_deferred_gc member.
+       Adjust users.
+       * xdisp.c (message2_nolog, message3_nolog, note_mouse_highlight):
+       Do not check whether GC is in progress.
+
+2012-11-22  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (window_buffer_changed): New function.
+       (update_menu_bar, update_tool_bar): Use it to
+       simplify large 'if' statements.
+       (redisplay_internal): Generalize commonly used
+       'tail' and 'frame' local variables.
 
-2012-11-20  Ken Brown  <kbrown@cornell.edu>
+2012-11-22  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (getcwd): Fix the 2nd argument type, to prevent conflicts
+       with Windows system header.
+
+2012-11-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume POSIX 1003.1-1988 or later for unistd.h (Bug#12945).
+       * alloc.c: Assume unistd.h exists.
+       * fileio.c (Fexpand_file_name) [DOS_NT]: Use getcwd, not getwd.
+       * sysdep.c (get_current_dir_name): Assume getcwd exists.
+       (getwd) [USG]: Remove; no longer needed.
+       (sys_subshell) [DOS_NT]: Use getcwd, not getwd.
+       * w32.c (getcwd): Rename from getwd, and switch to getcwd's API.
+       * w32.h (getcwd): Remove decl.
+
+2012-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xdisp.c (fast_set_selected_frame): Rename from update_tool_bar_unwind.
+       Make it set selected_window as well.
+       (update_tool_bar): Use it.
+
+2012-11-21  Ken Brown  <kbrown@cornell.edu>
 
        * emacs.c (main): Set the G_SLICE environment variable for all
        Cygwin builds, not just GTK builds.  See
        https://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00368.html.
 
-2012-11-19  Eli Zaretskii  <eliz@gnu.org>
-
-       * xdisp.c (start_hourglass) [HAVE_NTGUI]: Don't mix declaration of
-       w32_note_current_window with code.  (Backport from trunk.)
+2012-11-21  Eli Zaretskii  <eliz@gnu.org>
 
        * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
        (FILE_ANY_ACCESS, CTL_CODE, FSCTL_GET_REPARSE_POINT) [_MSC_VER]:
        Define for the MSVC compiler.
 
-       * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing
-       semi-colon.
-
-2012-11-18  Eli Zaretskii  <eliz@gnu.org>
+       * w32term.h (EnumSystemLocalesW) [_MSC_VER]: Add a missing semi-colon.
 
        * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
        (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
        Michel de Ruiter <michel@sentient.nl>, see
        http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
 
-2012-11-17  Eli Zaretskii  <eliz@gnu.org>
+2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Conflate Qnil and Qunbound for `symbol-function'.
+       * alloc.c (Fmake_symbol): Initialize `function' to Qnil.
+       * lread.c (init_obarray): Set `function' fields to Qnil.
+       * eval.c (Fcommandp): Ignore Qunbound.
+       (Fautoload, eval_sub, Fapply, Ffuncall, Fmacroexpand):
+       * data.c (Ffset, Ffboundp, indirect_function, Findirect_function):
+       Test NILP rather than Qunbound.
+       (Ffmakunbound): Set to Qnil.
+       (Fsymbol_function): Never signal an error.
+       (Finteractive_form): Ignore Qunbound.
+
+2012-11-20  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * eval.c (interactive_p): Remove no-longer-used decl.
+
+2012-11-20  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (buffer_shared): Adjust comment.
+       (buffer_shared_and_changed): New function.
+       (prepare_menu_bars, redisplay_internal): Use it to
+       decide whether all windows or frames should be updated.
+       (window_outdated): New function.
+       (text_outside_line_unchanged_p, redisplay_window): Use it.
+       (redisplay_internal): Likewise.  Fix indentation.
+
+2012-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Finteractive_p, Fcalled_interactively_p, interactive_p): Remove.
+       (syms_of_eval): Remove corresponding defsubr.
+       * bytecode.c (exec_byte_code): `interactive-p' is now a Lisp function.
+
+2012-11-19  Daniel Colascione  <dancol@dancol.org>
+
+       * w32fns.c (Fx_file_dialog):
+       (Fx_file_dialog): Accomodate rename of cygwin_convert_path* to
+       cygwin_convert_file_name*.
+
+       * cygw32.c (Fcygwin_convert_path_to_windows, syms_of_cygw32):
+       Rename cygwin_convert_path* to cygwin_convert_file_name*.
+
+2012-11-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * nsterm.m (ns_select): Send SIGIO only to self, not to process group.
+
+2012-11-18  Eli Zaretskii  <eliz@gnu.org>
 
        * w32select.c: Include w32common.h before w32term.h, so that
        windows.h gets included before w32term.h uses some of its
        features, see below.
 
-       * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: New
-       typedefs.
-       (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: New
-       prototypes.
+       * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]:
+       New typedefs.
+       (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]:
+       New prototypes.
        (EnumSystemLocales) [_MSC_VER]: Define if undefined.  (Bug#12878)
 
-2012-11-17  Jan Djärv  <jan.h.d@swipnet.se>
+2012-11-18  Jan Djärv  <jan.h.d@swipnet.se>
 
        * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
        (ns_select): Return at once if events are held (Bug#12834).
 
-2012-11-16  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
+2012-11-18  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 
        * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
        Needed following 2012-10-20 change.  (Bug#12902)
 
+2012-11-18  Juanma Barranquero  <lekktu@gmail.com>
+
+       * w32proc.c (waitpid): Remove unused label get_result.
+
+2012-11-17  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in (SYSWAIT_H): New macro.
+       ($(BLD)/callproc.$(O), $(BLD)/w32proc.$(O), $(BLD)/process.$(O))
+       ($(BLD)/sysdep.$(O)): Update dependencies.
+
+2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume POSIX 1003.1-1988 or later for fcntl.h (Bug#12881).
+       * callproc.c (relocate_fd): Assume F_DUPFD.
+       * emacs.c, term.c (O_RDWR): Remove.
+       * keyboard.c (tty_read_avail_input): Use O_NONBLOCK rather than
+       O_NDELAY, since O_NONBLOCK is the standard name for this flag.
+       * nsterm.m: Assume <fcntl.h> exists.
+       * process.c (NON_BLOCKING_CONNECT, allocate_pty, create_process)
+       (create_pty, Fmake_network_process, server_accept_connection)
+       (wait_reading_process_output, init_process_emacs):
+       Assume O_NONBLOCK.
+       (wait_reading_process_output): Put in a special case for WINDOWSNT
+       to mimick the older behavior where it had O_NDELAY but not O_NONBLOCK.
+       It's not clear this is needed, but it's a more-conservative change.
+       (create_process): Assume FD_CLOEXEC.
+       (create_process, create_pty): Assume O_NOCTTY.
+       * sysdep.c (init_sys_modes, reset_sys_modes): Assume F_SETFL.
+       (reset_sys_modes): Use O_NONBLOCK rather than O_NDELAY.
+       Omit if not DOS_NT, since F_GETFL is not defined there.
+       (serial_open): Assume O_NONBLOCK and O_NOCTTY.
+       * term.c: Include <fcntl.h>, for flags like O_NOCTTY.
+       (O_NOCTTY): Remove.
+       (init_tty): Assume O_IGNORE_CTTY is defined to 0 on platforms that
+       lack it, since gnulib guarantees this.
+       * w32.c (fcntl): Test for O_NONBLOCK rather than O_NDELAY.
+
+2012-11-17  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (faccessat): Pretend that directories have the execute bit
+       set.  Emacs expects that, e.g., in files.el:cd-absolute.
+
+       * w32proc.c (create_child): Don't clip the PID of the child
+       process to fit into an Emacs integer, as this is no longer a
+       restriction.
+       (waitpid): Rename from sys_wait.  Emulate a Posix 'waitpid' by
+       reaping only the process specified by PID argument, if that is
+       positive.  Use PID instead of dead_child to know which process to
+       reap.  Wait for the child to die only if WNOHANG is not in
+       OPTIONS.
+       (sys_select): Don't set dead_child.
+
+       * sysdep.c (wait_for_termination_1): Remove the WINDOWSNT portion,
+       as it is no longer needed.
+
+       * process.c (waitpid, WUNTRACED) [!WNOHANG]: Remove definitions,
+       no longer needed.
+       (record_child_status_change): Remove the setting of
+       record_at_most_one_child for the !WNOHANG case.
+
+2012-11-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix problems in ns port found by static checking.
+       * nsterm.m: Include <pthread.h>, for pthread_mutex_lock etc.
+       (hold_event, setPosition:portion:whole:): Send SIGIO only to self,
+       not to process group.
+       (ns_select): Use emacs_write, not write, as that's more robust
+       in the presence of signals.
+       (fd_handler:): Check for read errors.
+
 2012-11-16  Glenn Morris  <rgm@gnu.org>
 
        * editfns.c (Fmessage): Mention message-log-max.  (Bug#12849)
 
-2012-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+2012-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * eval.c (Finteractive_p): Revert lexbind-merge mishap.
 
-2012-11-14  Eli Zaretskii  <eliz@gnu.org>
+2012-11-16  Eli Zaretskii  <eliz@gnu.org>
 
        * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
        use the same value of thread handle.
        (getitimer): Don't duplicate the caller thread's handle here.
        (Bug#12832)
 
-2012-11-13  Jan Djärv  <jan.h.d@swipnet.se>
+2012-11-16  Jan Djärv  <jan.h.d@swipnet.se>
 
        * nsterm.m (hold_event): Send SIGIO to make sure ns_read_socket is
        called (Bug#12834).
 
-2012-11-12  Eli Zaretskii  <eliz@gnu.org>
+2012-11-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove no-longer-used pty_max_bytes variable.
+       * process.c (pty_max_bytes): Remove; unused.
+       (send_process): Do not set it.
+
+2012-11-15  Juanma Barranquero  <lekktu@gmail.com>
+
+       * makefile.w32-in ($(BLD)/dispnew.$(O), $(BLD)/emacs.$(O)):
+       Update dependencies.
+
+2012-11-15  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * eval.c (mark_backtrace) [BYTE_MARK_STACK]: Remove stray '*'.
+       This follows up on the 2012-09-29 patch that removed indirection
+       for the 'function' field.  Reported by Sergey Vinokurov in
+       <http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00263.html>.
+
+2012-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (faccessat): Rename from sys_faccessat.  (No need to use a
+       different name, as the MS runtime does not have such a function,
+       and probably never will.)  All callers changed.  Ignore DIRFD
+       value if PATH is an absolute file name, to match Posix spec
+       better.  If AT_SYMLINK_NOFOLLOW is set in FLAGS, don't resolve
+       symlinks.
+
+2012-11-14  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xdisp.c (echo_area_display, redisplay_internal):
+       Omit redundant check whether frame_garbaged is set.
+
+2012-11-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use faccessat, not access, when checking file permissions (Bug#12632).
+       This fixes a bug that has been present in Emacs since its creation.
+       It was reported by Chris Torek in 1983 even before GNU Emacs existed,
+       which must set some sort of record.  (Torek's bug report was against
+       a predecessor of GNU Emacs, but GNU Emacs happened to have the
+       same common flaw.)  See Torek's Usenet posting
+       "setuid/setgid programs & Emacs" Article-I.D.: sri-arpa.858
+       Posted: Fri Apr  8 14:18:56 1983.
+       * Makefile.in (LIB_EACCESS): New macro.
+       (LIBES): Use it.
+       * callproc.c (init_callproc):
+       * charset.c (init_charset):
+       * fileio.c (check_existing, check_executable, check_writable)
+       (Ffile_readable_p):
+       * lread.c (openp, load_path_check):
+       * process.c (allocate_pty):
+       * xrdb.c (file_p):
+       Use effective UID when checking permissions, not real UID.
+       * callproc.c (init_callproc):
+       * charset.c (init_charset):
+       * lread.c (load_path_check, init_lread):
+       Test whether directories are accessible, not merely whether they exist.
+       * conf_post.h (GNULIB_SUPPORT_ONLY_AT_FDCWD): New macro.
+       * fileio.c (check_existing, check_executable, check_writable)
+       (Ffile_readable_p):
+       Use symbolic names instead of integers for the flags, as they're
+       portable now.
+       (check_writable): New arg AMODE.  All uses changed.
+       Set errno on failure.
+       (Ffile_readable_p): Use faccessat, not stat + open + close.
+       (Ffile_writable_p): No need to call check_existing + check_writable.
+       Just call check_writable and then look at errno.  This saves a syscall.
+       dir should never be nil; replace an unnecessary runtime check
+       with an eassert.  When checking the parent directory of a nonexistent
+       file, check that the directory is searchable as well as writable, as
+       we can't create files in unsearchable directories.
+       (file_directory_p): New function, which uses 'stat' on most platforms
+       but faccessat with D_OK (for efficiency) if WINDOWSNT.
+       (Ffile_directory_p, Fset_file_times): Use it.
+       (file_accessible_directory_p): New function, which uses a single
+       syscall for efficiency.
+       (Ffile_accessible_directory_p): Use it.
+       * xrdb.c (file_p): Use file_directory_p.
+       * lisp.h (file_directory_p, file_accessible_directory_p): New decls.
+       * lread.c (openp): When opening a file, use fstat rather than
+       stat, as that avoids a permissions race.  When not opening a file,
+       use file_directory_p rather than stat.
+       (dir_warning): First arg is now a usage string, not a format.
+       Use errno.  All uses changed.
+       * nsterm.m (ns_term_init): Remove unnecessary call to file-readable
+       that merely introduced a race.
+       * process.c, sysdep.c, term.c: All uses of '#ifdef O_NONBLOCK'
+       changed to '#if O_NONBLOCK', to accommodate gnulib O_* style,
+       and similarly for the other O_* flags.
+       * w32.c (sys_faccessat): Rename from sys_access and switch to
+       faccessat's API.  All uses changed.
+       * xrdb.c: Do not include <sys/stat.h>; no longer needed.
+       (magic_db): Rename from magic_file_p.
+       (magic_db, search_magic_path): Return an XrmDatabase rather than a
+       char *, so that we don't have to test for file existence
+       separately from opening the file for reading.  This removes a race
+       fixes a permission-checking problem, and simplifies the code.
+       All uses changed.
+       (file_p): Remove; no longer needed.
+
+2012-11-13  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Omit glyphs initialization at startup.
+       * dispnew.c (glyphs_initialized_initially_p): Remove.
+       (adjust_frame_glyphs_initially): Likewise.  Adjust users.
+       (Fredraw_frame): Move actual code from here...
+       (redraw_frame): ...to here.  Add eassert.  Adjust comment.
+       (Fredraw_display): Use redraw_frame.
+       * xdisp.c (clear_garbaged_frames): Likewise.
+
+2012-11-13  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
        passed to pint2str and pint2hrstr to be at most the size of the
        large values of FIELD_WIDTH argument to decode_mode_spec.
        (Bug#12867)
 
-2012-11-07  Martin Rudalics  <rudalics@gmx.at>
+2012-11-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix a race with verify-visited-file-modtime (Bug#12863).
+       Since at least 1991 Emacs has ignored an mtime difference of no
+       more than one second, but my guess is that this was to work around
+       file system bugs that were fixed long ago.  Since the race is
+       causing problems now, let's remove that code.
+       * fileio.c (Fverify_visited_file_modtime): Do not accept a file
+       whose time stamp is off by no more than a second.  Insist that the
+       file time stamps match exactly.
+
+2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (struct frame): Convert external_tool_bar member to
+       1-bit unsigned bitfield.
+       * termhooks.h (struct terminal): Remove mouse_moved member since
+       all users are long dead.  Adjust comment on mouse_position_hook.
+
+2012-11-12  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Simplify by using FOR_EACH_FRAME here and there.
+       * frame.c (next_frame, prev_frame, other_visible_frames)
+       (delete_frame, visible-frame-list): Use FOR_EACH_FRAME.
+       * w32term.c (x_window_to_scroll_bar): Likewise.
+       * window.c (window_list): Likewise.
+       * xdisp.c (x_consider_frame_title): Likewise.
+       * xfaces.c ( Fdisplay_supports_face_attributes_p): Likewise.
+       * xfns.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame): Likewise.
+       * xmenu.c (menubar_id_to_frame): Likewise.
+       * xselect.c (frame_for_x_selection): Likewise.
+       * xterm.c (x_frame_of_widget, x_window_to_scroll_bar)
+       (x_window_to_menu_bar): Likewise.
+       * w32fns.c (x_window_to_frame): Likewise.  Adjust comment.
+
+2012-11-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * data.c (Qdefalias_fset_function): Now static.
+
+       Another tweak to vectorlike_header change.
+       * alloc.c (struct Lisp_Vectorlike_Free, NEXT_IN_FREE_LIST):
+       Remove, and replace all uses with ...
+       (next_in_free_list, set_next_in_free_list):
+       New functions, which respect C's aliasing rules better.
+
+2012-11-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * window.c (list4i): Rename from 'quad'.  All uses changed.
+       Needed because <sys/types.h> defines 'quad' on Solaris 10.
+
+2012-11-11  Juanma Barranquero  <lekktu@gmail.com>
+
+       * xdisp.c (start_hourglass) [HAVE_NTGUI]: Add block to silence
+       warning about mixing declarations and code in ISO C90.
+
+2012-11-10  Martin Rudalics  <rudalics@gmx.at>
 
        * window.c (Fsplit_window_internal): Set combination limit of
        new parent window to t iff Vwindow_combination_limit is t;
        fixing a regression introduced with the change from 2012-09-22.
-       (Fwindow_combination_limit, Fset_window_combination_limit):
-       Fix doc-strings.
+       (Fset_window_combination_limit): Fix doc-string.
 
-2012-11-06  Eli Zaretskii  <eliz@gnu.org>
+2012-11-10  Eli Zaretskii  <eliz@gnu.org>
 
        * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
        amount when the scroll margins are too large.  When scrolling
        point is positioned many lines beyond the window top/bottom.
        (Bug#12811)
 
-2012-11-05  Eli Zaretskii  <eliz@gnu.org>
-
        * ralloc.c (relinquish): If real_morecore fails to return memory
        to the system, don't crash; instead, leave the last heap
        unchanged and return.  (Bug#12774)
 
+2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (AUTOLOADP): New macro.
+       * eval.c (Fautoload): Don't attach to loadhist, call Fdefalias instead.
+       * data.c (Ffset): Remove special ad-advice-info handling.
+       (Fdefalias): Handle autoload definitions and new Qdefalias_fset_function.
+       (Fsubr_arity): CSE.
+       (Finteractive_form): Simplify.
+       (Fquo): Don't insist on having at least 2 arguments.
+       (Qdefalias_fset_function): New var.
+
+2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * image.c (xpm_make_color_table_h): Change to hashtest_equal.
+
+       * nsfont.m (Qcondensed, Qexpanded): New variables.
+       (ns_descriptor_to_entity): Restore Qcondensed, Qexpanded setting.
+       (syms_of_nsfont): Defsym Qcondensed, Qexpanded.
+
+2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Fix recently introduced crash on MS-Windows (Bug#12839).
+       * w32term.h (struct scroll_bar): Use convenient header.
+       (SCROLL_BAR_VEC_SIZE): Remove.
+       * w32term.c (x_scroll_bar_create): Use VECSIZE.
+
+2012-11-09  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Tweak last vectorlike_header change.
+       * alloc.c (struct Lisp_Vectorlike_Free): Special type to represent
+       vectorlike object on the free list.  This is introduced to avoid
+       some (but not all) pointer casting and aliasing problems, see
+       http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00105.html.
+       * .gdbinit (pvectype, pvecsize): New commands to examine vectorlike
+       objects.
+       (xvectype, xvecsize): Use them to examine Lisp_Object values.
+
+2012-11-09  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsfont.m (ns_descriptor_to_entity): Qcondensed and Qexpanded has
+       been removed, so remove them here also.
+
+2012-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * doc.c (Fdocumentation): Handle new property
+       dynamic-docstring-function to replace the old ad-advice-info.
+
+2012-11-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fns.c (Qeql, hashtest_eq): Now static.
+
+2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * lisp.h (XHASH): Redefine to be imperfect and fit in a Lisp int.
+       * fns.c (hashfn_eq, hashfn_eql, sxhash):
+       * profiler.c (hashfn_profiler): Don't use XUINT on non-integers.
+       * buffer.c (compare_overlays): Use XLI rather than XHASH.
+
+2012-11-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use same hash function for hashfn_profiler as for hash_string etc.
+       * fns.c (SXHASH_COMBINE): Remove.  All uses replaced by sxhash_combine.
+       * lisp.h (sxhash_combine): New inline function, with the contents
+       of the old SXHASH_COMBINE.
+       * profiler.c (hashfn_profiler): Use it, instead of having a
+       special hash function containing a comparison that always yields 1.
+
+2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * xfaces.c (Qultra_light, Qreverse_oblique, Qreverse_italic)
+       (Qultra_condensed, Qextra_condensed, Qcondensed, Qsemi_condensed)
+       (Qsemi_expanded, Qextra_expanded, Qexpanded, Qultra_expanded):
+       Remove unused vars.
+
+2012-11-08  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * image.c (xpm_make_color_table_h): Fix compiler error because
+       make_hash_table changed.
+
+2012-11-08  Thomas Kappler <tkappler@gmail.com> (tiny change)
+
+       * nsfont.m (ns_findfonts): Handle empty matchingDescs (Bug#11541).
+
+2012-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       Use ad-hoc comparison function for the profiler's hash-tables.
+       * profiler.c (Qprofiler_backtrace_equal, hashtest_profiler): New vars.
+       (make_log): Use them.
+       (handle_profiler_signal): Don't inhibit quit any longer since we don't
+       call Fequal any more.
+       (Ffunction_equal): New function.
+       (cmpfn_profiler, hashfn_profiler): New functions.
+       (syms_of_profiler): Initialize them.
+       * lisp.h (struct hash_table_test): New struct.
+       (struct Lisp_Hash_Table): Use it.
+       * alloc.c (mark_object): Mark hash_table_test fields of hash tables.
+       * fns.c (make_hash_table): Take a struct to describe the test.
+       (cmpfn_eql, cmpfn_equal, cmpfn_user_defined, hashfn_eq, hashfn_eql)
+       (hashfn_equal, hashfn_user_defined): Adjust to new calling convention.
+       (hash_lookup, hash_remove_from_table): Move assertion checking of
+       hashfn result here.  Check hash-equality before calling cmpfn.
+       (Fmake_hash_table): Adjust call to make_hash_table.
+       (hashtest_eq, hashtest_eql, hashtest_equal): New structs.
+       (syms_of_fns): Initialize them.
+       * emacs.c (main): Move syms_of_fns earlier.
+       * xterm.c (syms_of_xterm):
+       * category.c (hash_get_category_set): Adjust call to make_hash_table.
+       * print.c (print_object): Adjust to new hash-table struct.
+       * composite.c (composition_gstring_put_cache): Adjust to new hashfn.
+
+2012-11-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (modifier_set): Fix handling of Scroll Lock when the
+       value of w32-scroll-lock-modifier is neither nil nor one of the
+       known key modifiers.  (Bug#12806)
+
+2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Shrink struct vectorlike_header to the only size field.
+       * lisp.h (enum pvec_type): Avoid explicit enum member values.
+       Adjust comment.
+       (enum More_Lisp_Bits): Change PSEUDOVECTOR_SIZE_BITS and
+       PVEC_TYPE_MASK to arrange new bitfield in the vector header.
+       (PSEUDOVECTOR_REST_BITS, PSEUDOVECTOR_REST_MASK): New members.
+       (PSEUDOVECTOR_AREA_BITS): New member used to extract subtype
+       information from the vector header.  Adjust comment.
+       (XSETPVECTYPE, XSETPVECTYPESIZE, XSETTYPED_PSEUDOVECTOR)
+       (PSEUDOVECTOR_TYPEP, DEFUN): Adjust to match new vector header
+       layout.
+       (XSETSUBR, SUBRP): Adjust to match new Lisp_Subr layout.
+       (struct vectorlike_header): Remove next member.  Adjust comment.
+       (struct Lisp_Subr): Add convenient header.  Adjust comment.
+       (allocate_pseudovector): Adjust prototype.
+       * alloc.c (mark_glyph_matrix, mark_face_cache, allocate_string)
+       (sweep_string, lisp_malloc): Remove useless prototypes.
+       (enum mem_type): Adjust comment.
+       (NEXT_IN_FREE_LIST): New macro.
+       (SETUP_ON_FREE_LIST): Adjust XSETPVECTYPESIZE usage.
+       (Fmake_bool_vector): Likewise.
+       (struct large_vector): New type to represent allocation unit for
+       the vectors with the memory footprint more than VBLOOCK_BYTES_MAX.
+       (large_vectors): Change type to struct large_vector.
+       (allocate_vector_from_block): Simplify.
+       (PSEUDOVECTOR_NBYTES): Replace with...
+       (vector_nbytes): ...new function.  Adjust users.
+       (sweep_vectors): Adjust processing of large vectors.
+       (allocate_vectorlike): Likewise.
+       (allocate_pseudovector): Change type of 3rd arg to enum pvec_type.
+       Add easserts.  Adjust XSETPVECTYPESIZE usage.
+       (allocate_buffer): Use BUFFER_PVEC_INIT.
+       (live_vector_p): Adjust to match large vector.
+       * buffer.c (init_buffer_once): Use BUFFER_PVEC_INIT.
+       * buffer.h (struct buffer): Add next member.
+       (BUFFER_LISP_SIZE, BUFFER_REST_SIZE, BUFFER_PVEC_INIT):
+       New macros.
+       (FOR_EACH_BUFFER): Adjust to match struct buffer change.
+       * fns.c (internal_equal): Adjust to match enum pvec_type change.
+       (copy_hash_table): Adjust to match vector header change.
+       * lread.c (defsubr): Use XSETPVECTYPE.
+       * .gdbinit (xpr, xbacktrace): Adjust to match vector header change.
+       (xvectype): Likewise.  Print PVEC_NORMAL_VECTOR for regular vectors.
+       (xvecsize): New command.
+
+2012-11-08  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * keyboard.c (event_to_kboard): Do not dereference
+       frame_or_window field of SELECTION_REQUEST_EVENT
+       and SELECTION_CLEAR_EVENT events (Bug#12814).
+       * xterm.h (struct selection_input_event): Adjust comment.
+
+2012-11-07  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32fns.c (modifier_set): Don't report modifiers from toggle key,
+       such as Scroll Lock, if the respective keys are treated as
+       function keys, not as modifiers.  This avoids destroying non-ASCII
+       keyboard input when Scroll Lock is toggled ON.  (Bug#12806)
+
+2012-11-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * xfns.c (Fx_wm_set_size_hint): Use check_x_frame.  Adjust docstring.
+
+2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Restore some duplicate definitions (Bug#12814).
+       This undoes part of the 2012-11-03 changes.  Some people build
+       with plain -g rather than with -g3, and they need the duplicate
+       definitions for .gdbinit to work; see <http://bugs.gnu.org/12814#26>.
+       * lisp.h (GCTYPEBITS, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK):
+       Define as macros, as well as as enums or as constants.
+
+2012-11-06  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (convert_ns_to_X_keysym, keyDown:): Add NSNumericPadKeyMask
+       to keypad keys (Bug#12816).
+
+2012-11-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Minor adjustments of recently-changed frame functions.
+       * buffer.c (Fbuffer_list): Omit CHECK_FRAME, since arg is already
+       known to be a frame (we're in the FRAMEP branch).
+       * lisp.h (Qframep): Remove decl.  frame.h declares this.
+       * window.c (quad): Args are of type EMACS_INT, not ptrdiff_t,
+       since they're meant for Lisp fixnum values.
+
+2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.c (Fwindow_combination_limit): Revert to the only
+       required argument and adjust docstring as suggested in
+       http://lists.gnu.org/archive/html/emacs-diffs/2012-11/msg01082.html
+       by Martin Rudalics <rudalics@gmx.at>.
+
+2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Widely used frame validity and checking functions.
+       * frame.h (decode_live_frame, decode_any_frame): Add prototypes.
+       * frame.c (decode_live_frame, decode_any_frame): New functions.
+       (delete_frame, Fredirect_frame_focus, Fframe_parameters)
+       (Fframe_parameter, Fframe_char_height, Fframe_char_width)
+       (Fframe_pixel_height, Fframe_pixel_width, Ftool_bar_pixel_width)
+       (Fframe_pointer_visible_p): Use decode_any_frame.
+       (Fmake_frame_visible, Fmake_frame_invisible, Ficonify_frame)
+       (Fraise_frame, Flower_frame, Fmodify_frame_parameters)
+       (Fset_frame_height, Fset_frame_width): Use decode_live_frame.
+       (Fframe_focus): Likewise.  Allow zero number of arguments.
+       Adjust docstring.
+       (frame_buffer_list, frame_buffer_predicate): Remove.
+       * lisp.h (frame_buffer_predicate): Remove prototype.
+       * buffer.c (Fother_buffer): Use decode_any_frame.
+       * xdisp.c (Ftool_bar_lines_needed): Likewise.
+       * xfaces.c (Fcolor_gray_p, Fcolor_supported_p): Likewise.
+       * font.c (Ffont_face_attributes, Ffont_family_list, Fopen_font)
+       (Fclose_font, Ffont_info): Use decode_live_frame.
+       * fontset.c (check_fontset_name): Likewise.
+       * terminal.c (Fframe_terminal): Likewise.
+       * w32fns.c (check_x_frame): Likewise.
+       * window.c (Fminibuffer_window, Fwindow_at)
+       (Fcurrent_window_configuration): Likewise.
+       (Frun_window_configuration_change_hook, Fwindow_resize_apply):
+       Likewise.  Allow zero number of arguments.  Adjust docstring.
+       * dispnew.c (Fredraw_frame): Likewise.
+       * xfaces.c (frame_or_selected_frame): Remove.
+       (Fx_list_fonts, Finternal_get_lisp_face_attribute, Fface_font)
+       (Finternal_lisp_face_equal_p, Finternal_lisp_face_empty_p)
+       (Fframe_face_alist): Use decode_live_frame.
+       * xfns.c (check_x_frame): Likewise.
+
+2012-11-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.c (quad): New function.
+       (Fwindow_edges, Fwindow_pixel_edges, Fwindow_inside_edges)
+       (Fwindow_absolute_pixel_edges, Fwindow_inside_absolute_pixel_edges)
+       (Fwindow_inside_pixel_edges, Fpos_visible_in_window_p)
+       (Fwindow_line_height): Use it.
+       (Fwindow_fringes): Use list3.
+       (Fwindow_scroll_bars): Use list4.
+       (Fwindow_frame, Fwindow_top_child, Fwindow_left_child)
+       (Fwindow_combination_limit): Allow zero number of arguments.
+
+2012-11-05  Eli Zaretskii  <eliz@gnu.org>
+
+       * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
+
+       * w32fns.c: Include unistd.h, to avoid compiler warnings on Cygwin.
+       (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
+       file descriptor 2 for standard error.  (Bug#12805)
+
+2012-11-05  Chong Yidong  <cyd@gnu.org>
+
+       * process.c (wait_reading_process_output): Revert previous change.
+
+2012-11-05  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Assume at least POSIX.1-1988 for getpgrp, setpgid, setsid (Bug#12800).
+       This removes code that has been obsolete since around 1990.
+       * callproc.c (Fcall_process):
+       * emacs.c (main):
+       * process.c (create_process):
+       * term.c (dissociate_if_controlling_tty):
+       Assume setsid exists.
+       * callproc.c (child_setup): Assume setpgid exists and behaves as
+       per POSIX.1-1988 or later.
+       * conf_post.h (setpgid) [!HAVE_SETPGID]: Remove.
+       * emacs.c (shut_down_emacs):
+       * sysdep.c (sys_suspend, init_foreground_group):
+       Assume getpgrp behaves as per POSIX.1-1998 or later.
+       * msdos.c (setpgrp): Remove.
+       (tcgetpgrp, setpgid, setsid): New functions.
+       * systty.h (EMACS_GETPGRP): Remove.  All callers now use getpgrp.
+       * term.c (no_controlling_tty): Remove; unused.
+       * w32proc.c (setpgrp): Remove.
+       (setsid, tcgetpgrp): New functions.
+
+       Simplify by assuming __fpending.
+       * dispnew.c: Include <fpending.h>, not <stdio_ext.h>.
+       (update_frame_1): Use __fpending, not PENDING_OUTPUT_COUNT.
+       Do not assume that __fpending's result fits in int.
+
+2012-11-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Remove EMACS_OUTQSIZE+sleep hack.
+       * dispnew.c (update_frame_1): Remove hack for terminals slower
+       than 2400 bps, which throttled Emacs by having it sleep.
+       This code hasn't worked since at least 2007, when the multi-tty stuff
+       was added, and anyway those old terminals are long dead.
+       * systty.h (EMACS_OUTQSIZE): Remove; unused.  The macro isn't used even
+       without the dispnew.c change, as dispnew.c doesn't include systty.h.
+
+       Fix data-loss with --version (Bug#9574).
+       * emacs.c (close_output_streams): Use strerror, not emacs_strerror,
+       as we can't assume that emacs_strerror is initialized, and strerror
+       is good enough here.
+       (main): Invoke atexit earlier, to catch earlier instances of
+       sending data to stdout and exiting, e.g., "emacs --version >/dev/full".
+
+2012-11-04  Michael Marchionna  <tralfaz@pacbell.net>
+
+       * nsterm.m: Add NSClearLineFunctionKey and keypad keys (Bug#8680).
+       (keyDown): Remap keypad keys to X11 virtual key codes.
+
+2012-11-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix data-loss with --batch (Bug#9574).
+       * emacs.c: Include <close-stream.h>.
+       (close_output_streams): New function.
+       (main): Pass it to atexit, so that Emacs closes stdout and stderr
+       and handles errors appropriately.
+       (Fkill_emacs): Don't worry about flushing, as close_output_stream
+       does that now.
+
+       Fix a race condition that causes Emacs to mess up glib (Bug#8855).
+       The symptom is a diagnostic "GLib-WARNING **: In call to
+       g_spawn_sync(), exit status of a child process was requested but
+       SIGCHLD action was set to SIG_IGN and ECHILD was received by
+       waitpid(), so exit status can't be returned."  The diagnostic
+       is partly wrong, as the SIGCHLD action is not set to SIG_IGN.
+       The real bug is a race condition between Emacs and glib: Emacs
+       does a waitpid (-1, ...) and reaps glib's subprocess by mistake,
+       so that glib can't find it.  Work around the bug by invoking
+       waitpid only on subprocesses that Emacs itself creates.
+       * process.c (create_process, record_child_status_change):
+       Don't use special value -1 in pid field, as the caller now must
+       know the pid rather than having the callee infer it.
+       The inference was sometimes incorrect anyway, due to another race.
+       (create_process): Set new 'alive' member if child is created.
+       (process_status_retrieved): New function.
+       (record_child_status_change): Use it.
+       Accept negative 1st argument, which means to wait for the
+       processes that Emacs already knows about.  Move special-case code
+       for DOS_NT (which lacks WNOHANG) here, from caller.  Keep track of
+       processes that have already been waited for, by testing and
+       clearing new 'alive' member.
+       (CAN_HANDLE_MULTIPLE_CHILDREN): Remove, as record_child_status_change
+       now does this internally.
+       (handle_child_signal): Let record_child_status_change do all
+       the work, since we do not want to reap all exited child processes,
+       only the child processes that Emacs itself created.
+       * process.h (Lisp_Process): New boolean member 'alive'.
+
+       Omit duplicate definitions no longer needed with gcc -g3.
+       * lisp.h (GCTYPEBITS, GCALIGNMENT, ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG)
+       (VALMASK, MOST_POSITIVE_FIXNUM, MOST_NEGATIVE_FIXNUM):
+       Define only as macros.  There's no longer any need to also define
+       these symbols as enums or as constants, since we now assume
+       gcc -g3 when debugging.
+
 2012-11-03  Eli Zaretskii  <eliz@gnu.org>
 
        * lisp.mk: Adjust comments to the fact that term/internal is now
        iterator when starting in the middle of a display or overlay
        string.  (Bug#12745)
 
-2012-11-03  Jan Djärv  <jan.h.d@swipnet.se>
+2012-11-03  Chong Yidong  <cyd@gnu.org>
+
+       * process.c (wait_reading_process_output): Clean up the last
+       change.
+
+2012-11-03  Jim Paris  <jim@jtan.com>  (tiny change)
+
+       * process.c (wait_reading_process_output): Avoid a race condition
+       with SIGIO delivery (Bug#11536).
+
+2012-11-03  Chong Yidong  <cyd@gnu.org>
+
+       * buffer.c (cursor_type): Untabify docstring.
+
+2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (struct frame): Drop can_have_scroll_bars member
+       which is meaningless for a long time.  Adjust comments.
+       (FRAME_CAN_HAVE_SCROLL_BARS): Remove.
+       * frame.c, nsfns.m, term.c, w32fns.c, xfns.c: Adjust users.
+
+2012-11-03  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * window.c (decode_next_window_args): Update window arg after
+       calling decode_live_window and so fix crash reported at
+       http://lists.gnu.org/archive/html/emacs-devel/2012-11/msg00035.html
+       by Juanma Barranquero <lekktu@gmail.com>.
+       (Fwindow_body_width, Fwindow_body_height): Simplify a bit.
+       * font.c (Ffont_at): Likewise.
+
+2012-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 
        * widget.c (resize_cb): New function.
        (EmacsFrameRealize): Add resize_cb as event handler (Bug#12733).
        (EmacsFrameResize): Check if all is up to date before changing frame
        size.
 
+2012-11-02  Eli Zaretskii  <eliz@gnu.org>
+
+       Implement backtrace output for fatal errors on MS-Windows.
+       * w32fns.c (CaptureStackBackTrace_proc): New typedef.
+       (BACKTRACE_LIMIT_MAX): New macro.
+       (w32_backtrace): New function.
+       (emacs_abort): Use w32_backtrace when the user chooses not to
+       attach a debugger.  Update the text of the abort dialog.
+
+2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Window-related stuff cleanup here and there.
+       * dispnew.c (Finternal_show_cursor, Finternal_show_cursor_p):
+       Use decode_any_window.
+       * fringe.c (Ffringe_bitmaps_at_pos): Likewise.
+       * xdisp.c (Fformat_mode_line): Likewise.
+       * font.c (Ffont_at): Use decode_live_window.
+       * indent.c (Fcompute_motion, Fvertical_motion): Likewise.
+       * window.c (decode_next_window_args): Likewise.
+       (decode_any_window): Remove static.
+       * window.h (decode_any_window): Add prototype.
+       * lisp.h (CHECK_VALID_WINDOW, CHECK_LIVE_WINDOW): Move from here...
+       * window.h: ...to here, redefine via WINDOW_VALID_P and WINDOW_LIVE_P,
+       respectively.
+
+2012-11-02  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Remove pad from struct input_event.
+       * termhooks.h (struct input_event): Remove padding field.
+       Adjust comment.
+       * keyboard.c (event_to_kboard): Simplify because frame_or_window
+       member is never cons for a long time.  Adjust comment.
+       (mark_kboards): Adjust because SELECTION_REQUEST_EVENT and
+       SELECTION_CLEAR_EVENT has no Lisp_Objects to mark.  Add comment.
+       * xterm.c (handle_one_xevent): Do not initialize frame_or_window
+       field of SELECTION_REQUEST_EVENT and SELECTION_CLEAR_EVENT.
+
 2012-11-01  Eli Zaretskii  <eliz@gnu.org>
 
        * w32proc.c (getpgrp, setpgid): New functions.  (Bug#12776)
        now a supported configuration.
 
        * Makefile.in: consolidate image variables into LIBIMAGE; add
-       W32_OBJ and W32_LIBS. Compile new files.
+       W32_OBJ and W32_LIBS.  Compile new files.
 
        * conf_post.h:
        (_DebPrint) declare tracing facility for W32 debugging.  We need