* src/data.c (Fboundp): Doc fix re lexical-binding.
[bpt/emacs.git] / src / ChangeLog
index 7f03676..a1d09e6 100644 (file)
@@ -1,7 +1,316 @@
+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
+       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-17  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>
+
+       * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
+       Needed following 2012-10-20 change.  (Bug#12902)
+
+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>
+
+       * eval.c (Finteractive_p): Revert lexbind-merge mishap.
+
+2012-11-14  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (timer_loop): Make sure SuspendThread and ResumeThread
+       use the same value of thread handle.
+       (start_timer_thread): If the timer thread exited (due to error),
+       clean up by closing the two handles it used.  Duplicate the caller
+       thread's handle here, so it gets duplicated only once, when
+       launching the timer thread.  Set priority of the timer thread, not
+       the caller thread.
+       (getitimer): Don't duplicate the caller thread's handle here.
+       (Bug#12832)
+
+2012-11-13  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>
+
+       * xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
+       passed to pint2str and pint2hrstr to be at most the size of the
+       frame's decode_mode_spec_buffer.  This avoids crashes with very
+       large values of FIELD_WIDTH argument to decode_mode_spec.
+       (Bug#12867)
+
+2012-11-07  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.
+
+2012-11-06  Eli Zaretskii  <eliz@gnu.org>
+
+       * 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
+       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-03  Eli Zaretskii  <eliz@gnu.org>
+
+       * lisp.mk: Adjust comments to the fact that term/internal is now
+       loaded from loadup.el.
+
+       * msdos.c (msdos_abort): Rename from emacs_abort, and make static.
+       (msdos_fatal_signal): New function.
+       (XMenuActivate): Adjust the call to kbd_buffer_events_waiting to
+       its argument list.
+
+       * conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Define to "inline"
+       for GCC versions before 4.
+       (emacs_raise): Define to call msdos_fatal_signal.
+
+       * xdisp.c (init_from_display_pos): Fix initialization of the bidi
+       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>
+
+       * 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-01  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (getpgrp, setpgid): New functions.  (Bug#12776)
+
+2012-10-31  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix crash when using Emacs as commit editor for git (Bug#12697).
+       * callproc.c (setpgrp): Remove macro, as we now use setpgid
+       and it is configured in conf_post.h.
+       (Fcall_process): Don't invoke both setsid and setpgid; the former
+       is enough, if it exists.
+       * callproc.c (Fcall_process, child_setup):
+       * process.c (create_process): Use setpgid.
+       * conf_post.h (setpgid) [!HAVE_SETPGID]: New macro, which substitutes
+       for the real thing.
+       * dispnew.c (init_display): Initialize the foreground group
+       if we are running a tty display.
+       * emacs.c (main): Do not worry about setpgrp; init_display does it now.
+       * lisp.h (init_foreground_group): New decl.
+       * sysdep.c (inherited_pgroup): New static var.
+       (init_foreground_group, tcsetpgrp_without_stopping)
+       (narrow_foreground_group, widen_foreground_group): New functions.
+       (init_sys_modes): Narrow foreground group.
+       (reset_sys_modes): Widen foreground group.
+
+2012-10-31  Michael Albinus  <michael.albinus@gmx.de>
+
+       * dbusbind.c: Fix cut'n'waste error.  Use HAVE_DBUS_VALIDATE_INTERFACE.
+
+2012-10-31  Martin Rudalics  <rudalics@gmx.at>
+
+       * minibuf.c (read_minibuf): Restore current buffer since
+       choose_minibuf_frame calling Fset_frame_selected_window may
+       change it (Bug#12766).
+
+2012-10-30  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * frame.c (Fframe_pixel_height): Fix documentation (Bug#12733).
+
+2012-10-30  Kenichi Handa  <handa@gnu.org>
+
+       * font.c (Ffont_at): If WINDOW is specified and it is not
+       displaying the current buffer, signal an error.
+
+2012-10-29  Daniel Colascione  <dancol@dancol.org>
+
+       * cygw32.h, cygw32.c (Qutf_16le, from_unicode, to_unicode):
+       In preparation for fixing bug#12739, move these functions from
+       here...
+
+       * coding.h, coding.c: ... to here, and compile them only when
+       WINDOWSNT or CYGWIN.  Moving these functions out of cygw32 proper
+       lets us write cygw32-agnostic code for the HAVE_NTGUI case.
+
+2012-10-28  Eli Zaretskii  <eliz@gnu.org>
+
+       * w32proc.c (TIMER_TICKS_PER_SEC): New macro.
+       (timer_loop, getitimer, setitimer): Use it instead of
+       CLOCKS_PER_SEC, which is no longer pertinent, since we don't use
+       'clock'.
+       (w32_get_timer_time): Use 10*TIMER_TICKS_PER_SEC instead of a
+       literal 10000.
+
+2012-10-28  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsterm.m (NO_APPDEFINED_DATA): New define.
+       (last_appdefined_event_data): New variable
+       (last_appdefined_event): Remove.
+       (ns_select): Initialize t from last_appdefined_event_data instead
+       of [last_appdefined_event data1].
+       (sendEvent:): Save [theEvent data1] to last_appdefined_event_data,
+       remove last_appdefined_event (Bug#12698).
+
+2012-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * frame.c (x_set_font): Catch internal error.
+
 2012-10-27  Eli Zaretskii  <eliz@gnu.org>
 
-       Avoid overflow in w32 implementation of interval timers.  When
-       possible, for ITIMER_PROF count only times the main thread
+       Avoid overflow in w32 implementation of interval timers.
+       When possible, for ITIMER_PROF count only times the main thread
        actually executes.
        * w32proc.c <struct itimer_data>: 'expire' and 'reload' are now
        'volatile ULONGLONG' types.  All the other data which was
        for the timer.
        (timer_loop): Enter critical section when accessing ULONGLONG
        values of the itimer_data struct, as these accesses are no longer
-       atomic.  Call 'w32_get_timer_time' instead of 'clock'.  Remove
-       unused variable.
+       atomic.  Call 'w32_get_timer_time' instead of 'clock'.
+       Remove unused variable.
        (init_timers): Initialize s_pfn_Get_Thread_Times.
        (start_timer_thread): Don't assign itimer->caller_thread here.
        (getitimer): Assign itimer->caller_thread here.
 
 2012-10-19  Eli Zaretskii  <eliz@gnu.org>
 
-       * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.  See
-       http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
+       * puresize.h (BASE_PURESIZE): Bump the base value to 1700000.
+       See http://lists.gnu.org/archive/html/emacs-devel/2012-10/msg00593.html
        for the reasons.
 
        * alloc.c (NSTATICS): Decrease to 0x800.
        (ns_clear_frame_area): Remove resize handle code.
 
        * nsfns.m (ns_in_resize): Remove.
-       (x_set_icon_name, ns_set_name, ns_set_name_as_filename): Remove
-       ns_in_resize check.
+       (x_set_icon_name, ns_set_name, ns_set_name_as_filename):
+       Remove ns_in_resize check.
 
 2012-10-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        * lisp.h (make_formatted_string): New prototype.
        * alloc.c (make_formatted_string): New function.
        * buffer.c (Fgenerate_new_buffer_name): Use it.
-       * dbus.c (syms_of_dbusbind): Likewise.
+       * dbusbind.c (syms_of_dbusbind): Likewise.
        * editfns.c (Fcurrent_time_zone): Likewise.
        * filelock.c (get_boot_time): Likewise.
        * frame.c (make_terminal_frame, set_term_frame_name)