Rename cygwin_convert_path* to cygwin_convert_file_name*
[bpt/emacs.git] / src / ChangeLog
index 75b70ee..89c4e27 100644 (file)
@@ -1,9 +1,629 @@
+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
+       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-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * eval.c (Finteractive_p): Revert lexbind-merge mishap.
+
+2012-11-16  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-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-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
+       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-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.
+       (Fset_window_combination_limit): Fix doc-string.
+
+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
+       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)
+
+       * 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
+       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.
        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.
+       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.
 
 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
+       * 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
        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