* src/data.c (Fboundp): Doc fix re lexical-binding.
[bpt/emacs.git] / src / ChangeLog
index c12eff1..a1d09e6 100644 (file)
@@ -1,3 +1,131 @@
+2012-11-27  Glenn Morris  <rgm@gnu.org>
+
+       * data.c (Fboundp, Fsymbol_value): Doc fix re lexical-binding.
+
+2012-11-26  Eli Zaretskii  <eliz@gnu.org>
+
+       * fontset.c (Finternal_char_font): Return nil on non-GUI frames.
+       (Bug#11964)
+
+2012-11-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       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-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+       * 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>
+
+       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 (wait_for_termination_1): Remove the WINDOWSNT portion,
+       as it is no longer needed.
+
+       * 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'.
+
+2012-11-23  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).
+
+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>
+
+       * 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-20  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.)
+
+       * 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>
+
+       * 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-17  Eli Zaretskii  <eliz@gnu.org>
 
        * w32select.c: Include w32common.h before w32term.h, so that