Merge from trunk + rename the event. Not tested yet.
[bpt/emacs.git] / src / ChangeLog
index cea22d4..ac2299a 100644 (file)
@@ -1,3 +1,671 @@
+2012-12-10  Rüdiger Sonderfeld  <ruediger@c-plusplus.de>
+
+       * termhooks.h (enum event_kind) [HAVE_INOTIFY]: Add
+       FILE_NOTIFY_EVENT.
+
+       * lisp.h (syms_of_inotify) [HAVE_INOTIFY]: Add prototype.
+
+       * keyboard.c (Qfile_inotify) [HAVE_INOTIFY]: New variable.
+       (syms_of_keyboard): DEFSYM it.
+       (kbd_buffer_get_event) [HAVE_INOTIFY]: Generate FILE_NOTIFY_EVENT.
+       (make_lispy_event): Support FILE_NOTIFY_EVENT by generating
+       Qfile_inotify events.
+       (keys_of_keyboard) [HAVE_INOTIFY]: Bind file-inotify events in
+       special-event-map to inotify-handle-event.
+
+       * emacs.c (main) [HAVE_INOTIFY]: Call syms_of_inotify.
+
+       * Makefile.in (base_obj): Add inotify.o.
+
+       * inotify.c: New file.
+
+2012-12-10  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (fd_handler:): FD_ZERO fds (Bug#13103).
+
+2012-12-10  Fabrice Popineau  <fabrice.popineau@gmail.com>
+
+       * w32fns.c (cache_system_info): Cast sysinfo_cache.dwPageSize to
+       DWORD_PTR, for compatibility with 64-bit builds.
+
+       * w32.c (_PROCESS_MEMORY_COUNTERS_EX):
+       (GetProcessWorkingSetSize_Proc, get_process_working_set_size)
+       (system_process_attributes): Use SIZE_T rather than DWORD, for
+       compatibility with 64-bit builds.
+
+2012-12-10  Christopher Schmidt  <christopher@ch.ristopher.com>
+
+       * lread.c (Vload_source_file_function): Doc fix (Bug#11647).
+
+2012-12-10  Eli Zaretskii  <eliz@gnu.org>
+
+       * indent.c (Fvertical_motion): If a display string will be
+       displayed on the left or the right margin, don't consider it as a
+       factor in cursor positioning.  (Bug#13108)
+
+2012-12-10  Martin Rudalics  <rudalics@gmx.at>
+
+       * editfns.c (Fcompare_buffer_substrings): Reword doc-string.
+
+2012-12-10  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * fileio.c (Fsubstitute_in_file_name): Use ptrdiff_t, not int,
+       for string length.
+
+2012-12-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (unsetenv): Return 0 if the input string is too long.
+
+2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Use putenv+unsetenv instead of modifying environ directly (Bug#13070).
+       * alloc.c (xputenv): New function.
+       * dbusbind.c (Fdbus_init_bus):
+       * emacs.c (main):
+       * xterm.c (x_term_init):
+       Use xputenv instead of setenv or putenv, to detect memory exhaustion.
+       * editfns.c (initial_tz): Move static var decl up.
+       (tzvalbuf_in_environ): New static var.
+       (init_editfns): Initialize these two static vars.
+       (Fencode_time): Don't assume arbitrary limit on EMACS_INT width.
+       Save old TZ value on stack, if it's small.
+       (Fencode_time, set_time_zone_rule): Don't modify 'environ' directly;
+       instead, use xputenv+unsetenv to set and restore TZ.
+       (environbuf): Remove static var.  All uses removed.
+       (Fset_time_zone_rule): Do not save TZ and environ;
+       no longer needed here.
+       (set_time_zone_rule_tz1, set_time_zone_rule_tz2) [LOCALTIME_CACHE]:
+       Move to inside set_time_zone_rule; they don't need file scope any more.
+       (set_time_zone_rule): Maintain the TZ=value string separately.
+       (syms_of_editfns): Don't initialize initial_tz;
+       init_editfns now does it.
+       * emacs.c (dump_tz) [HAVE_TZSET]: Now const.
+       * lisp.h (xputenv): New decl.
+
+2012-12-08  Fabrice Popineau  <fabrice.popineau@gmail.com>
+
+       * w32fns.c (emacs_abort): Don't do arithmetics on void pointers.
+
+2012-12-08  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32.c (unsetenv, sys_putenv): New functions.
+
+2012-12-08  Chong Yidong  <cyd@gnu.org>
+
+       * editfns.c (Finsert_char): Make the error message more
+       informative (Bug#12992).
+
+2012-12-08  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Simplify get_lim_data.
+       * vm-limit.c (get_lim_data): Combine RLIMIT_AS and RLIMIT_DATA methods.
+       Remove USG and vlimit methods; no longer used these days.
+       Add #error catchall just in case.
+
+       Assume POSIX 1003.1-1988 or later for signal.h (Bug#13026).
+       Exceptions: do not assume SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN,
+       SIGTTOU, SIGUSR1, SIGUSR2, as Microsoft platforms lack these.
+       * process.c [subprocesses]: Include <c-ctype.h>, <sig2str.h>.
+       (deleted_pid_list, Fdelete_process, create_process)
+       (record_child_status_change, handle_child_signal, deliver_child_signal)
+       (init_process_emacs, syms_of_process):
+       Assume SIGCHLD is defined.
+       (parse_signal): Remove.  All uses removed.
+       (abbr_to_signal): New static function.
+       (Fsignal_process): Use it to convert signal names to ints.
+       * sysdep.c (sys_suspend) [!DOS_NT]: Use kill (0, ...) rather than
+       kill (getpgrp (), ...).
+       (emacs_sigaction_init): Assume SIGCHLD is defined.
+       (init_signals): Assume SIGALRM, SIGCHLD, SIGHUP, SIGKILL,
+       SIGPIPE, and SIGQUIT are defined.  Do not worry about SIGCLD any more.
+       * syssignal.h (EMACS_KILLPG): Remove.
+       All uses replaced by 'kill' with a negative pid.
+       (SIGCHLD): Remove definition, as we now assume SIGCHLD.
+       * w32proc.c (sys_kill): Support negative pids compatibly with POSIX.
+
+2012-12-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c (get_child_status): Abort on internal error (Bug#13086).
+       This will cause a production Emacs to dump core instead of
+       infinite-looping.
+
+2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.c (make_frame): Do not set window's buffer to t.
+       * window.c (Fsplit_window_internal): Likewise.  Previously it was
+       used to indicate that the window is being set up.  Now we use
+       set_window_buffer for all new windows, so the condition in ...
+       (Fset_window_buffer): ... is always true and can be removed.
+
+2012-12-07  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Convenient macro to check whether the buffer is hidden.
+       * buffer.h (BUFFER_HIDDEN_P): New macro.
+       * frame.c (make_frame): Use it.  Adjust comment.
+       * buffer.c (candidate_buffer): New function.
+       (Fother_buffer, other_buffer_safely): Use it.
+
+2012-12-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (waitpid): Avoid busy-waiting when called with WNOHANG
+       if the child process is still running.  Instead, exit the wait
+       loop and return zero.  (Bug#13086)
+
+2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * frame.h (x_char_width, x_char_height): Remove prototypes.
+       * w32term.h (x_char_width, x_char_height): Likewise.
+       * xfns.c (x_char_width, x_char_height): Remove.
+       * w32fns.c (x_char_width, x_char_height): Likewise.
+       * nsfns.c (x_char_width, x_char_height): Likewise.
+       * frame.c (Fframe_char_width): Use FRAME_COLUMN_WIDTH for
+       all window frames.
+       (Fframe_char_height): Likewise with FRAME_LINE_HEIGHT.
+       * keyboard.c (command_loop_1): Remove prototype.
+       (command_loop_2, top_level_1): Add static to match prototype.
+
+2012-12-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix a recently-introduced delete-process race condition.
+       * callproc.c, process.h (record_kill_process):
+       New function, containing part of the old call_process_kill.
+       (call_process_kill): Use it.
+       This does not change call_process_kill's behavior.
+       * process.c (Fdelete_process): Use record_kill_process to fix a
+       race condition that could cause Emacs to lose track of a child.
+
+2012-12-06  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       Avoid code duplication between prev_frame and next_frame.
+       * frame.c (candidate_frame): New function.  Add comment.
+       (prev_frame, next_frame): Use it.  Adjust comment.
+
+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
+       string.  (Bug#13079)
+       Encode expanded temp file pattern before passing it to mkstemp or
+       mktemp.
+
+       * 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-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-12-03  Fabrice Popineau  <fabrice.popineau@gmail.com>
+
+       * w32fns.c: Remove prototype of atof.
+       (syspage_mask): Declared DWORD_PTR, for compatibility with 64-bit
+       builds.
+       (file_dialog_callback): Declared UINT_PTR.
+
+       * w32common.h (syspage_mask): Declare DWORD_PTR, for compatibility
+       with 64-bit builds.
+
+       * w32.c (FILE_DEVICE_FILE_SYSTEM, METHOD_BUFFERED)
+       (FILE_ANY_ACCESS, CTL_CODE) [_MSC_VER]: Define only if not already
+       defined.
+
+2012-12-03  Glenn Morris  <rgm@gnu.org>
+
+       * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
+
+2012-12-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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.
+
+       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.
+
+2012-12-01  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * 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-25  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c (sys_subshell): Don't assume pid_t fits in int.
+
+2012-11-24  Ken Brown  <kbrown@cornell.edu>
+
+       * keyboard.c (HAVE_MOUSE):
+       * frame.c (HAVE_MOUSE): Remove, and rewrite code as if HAVE_MOUSE
+       were always defined.
+
+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
+       several display strings follow each other.
+
+       * .gdbinit (pgx): If the glyph's object is a string, display the
+       pointer to string data, rather than the value of the string object
+       itself (which barfs under CHECK_LISP_OBJECT_TYPE).
+
+       * 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-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.
+
+2012-11-23  Eli Zaretskii  <eliz@gnu.org>
+
+       * 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-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-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.
+
+       * fileio.c (Fsubstitute_in_file_name, Ffile_name_directory)
+       (Fexpand_file_name) [DOS_NT]: Pass encoded file name to
+       dostounix_filename.  Prevents crashes down the road, because
+       dostounix_filename assumes it gets a unibyte string.  Reported by
+       Michel de Ruiter <michel@sentient.nl>, see
+       http://lists.gnu.org/archive/html/help-emacs-windows/2012-11/msg00017.html
+
+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.
+       (EnumSystemLocales) [_MSC_VER]: Define if undefined.  (Bug#12878)
+
+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-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
        * xdisp.c (try_scrolling): Fix correction of aggressive-scroll
        amount when the scroll margins are too large.  When scrolling
        backwards in the buffer, give up if cannot reach point or the
-       scroll margin within a reasonable number of screen lines.  Fixes
-       point position in window under scroll-up/down-aggressively when
+       scroll margin within a reasonable number of screen lines.
+       Fixes point position in window under scroll-up/down-aggressively when
        point is positioned many lines beyond the window top/bottom.
        (Bug#12811)