* configure.in (AC_PROG_MKDIR_P): Call it, to set MKDIR_P.
(MKDEPDIR): Use $MKDIR_P.
* Makefile.in (MKDIR_P): New, set by configure.
(mkdir): Use $MKDIR_P.
* doc/emacs/Makefile.in (MKDIR_P): New, set by configure.
(mkinfodir): Use $MKDIR_P.
* doc/lispintro/Makefile.in (MKDIR_P): New, set by configure.
(mkinfodir): Use $MKDIR_P.
* doc/lispref/Makefile.in (MKDIR_P): New, set by configure.
(mkinfodir): Use $MKDIR_P.
* doc/misc/Makefile.in (MKDIR_P): New, set by configure.
(mkinfodir): Use $MKDIR_P.
* src/Makefile.in (MKDIR_P): New, set by configure.
* src/ns.mk (${ns_appdir}, ${ns_appbindir}Emacs): Use $MKDIR_P.
* src/filelock.c (syms_of_filelock): New boolean create-lockfiles.
(lock_file): If create_lockfiles is 0, do nothing.
* lisp/cus-start.el (create-lockfiles): Add it.
Fixes: debbugs:11227
Rename all occurences of Vdbus_registered_buses to xd_registered_buses.
(syms_of_dbusbind): Remove declaration of Vdbus_registered_buses.
Initialize xd_registered_buses.
This is based on a proposal by YAMAMOTO Mitsuharu in
<http://lists.gnu.org/archive/html/emacs-devel/2008-01/msg01876.html>.
For an admittedly artificial (nth 8000 longlist) benchmark on
Fedora 15 x86-64, this yields a 25% CPU speedup. Also, it shrinks
Emacs's overall text size by 1%.
* lisp.h (XUNTAG): New macro.
(XCONS, XVECTOR, XSTRING, XSYMBOL, XFLOAT, XMISC, XPROCESS, XWINDOW)
(XTERMINAL, XSUBR, XBUFFER, XCHAR_TABLE, XSUB_CHAR_TABLE, XBOOL_VECTOR)
(XSETTYPED_PSEUDOVECTOR, XHASH_TABLE, TYPED_PSEUDOVECTORP): Use it.
* eval.c (Fautoload):
* font.h (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT):
* frame.h (XFRAME): Use XUNTAG.
* dbusbind.c (xd_append_arg, xd_retrieve_arg, Fdbus_message_internal):
Remove unportable assumptions about print widths of types like
dbus_uint32_t.
(xd_get_connection_address, Fdbus_init_bus): Cast Emacs integer to
intptr_t when converting between pointer and integer, to avoid GCC
warnings about wrong width.
* src/keyboard.c (read_char): Don't clear the echo area if there's no
message to clear.
* src/xdisp.c (redisplay_internal): Redisplay the mini window (with the
contents of *Minibuf-0*) if there' no message displayed in its stead.
(Buffer-menu-buffer+size-width): Make obsolete.
(Buffer-menu-name-width, Buffer-menu-size-width): New variables.
(Buffer-menu-mode-map): Inherit from tabulated-list-mode-map.
(Buffer-menu-mode): Derive from tabulated-list-mode. Move command
documentation into docstring of buffer-menu.
(Buffer-menu-toggle-files-only): Add an informative message.
(Buffer-menu-sort): Convert to alias for tabulated-list-sort.
(Buffer-menu-buffer, Buffer-menu-beginning, Buffer-menu-mark)
(Buffer-menu-unmark, Buffer-menu-backup-unmark)
(Buffer-menu-delete, Buffer-menu-save, Buffer-menu-not-modified)
(Buffer-menu-execute, Buffer-menu-select)
(Buffer-menu-marked-buffers, Buffer-menu-toggle-read-only)
(Buffer-menu-bury): Use Tabulated List machinery.
(Buffer-menu-mouse-select, Buffer-menu-sort-by-column)
(Buffer-menu-sort-button-map, Buffer-menu-make-sort-button):
Deleted.
(list-buffers--refresh): New function.
(list-buffers-noselect): Use it.
(tabulated-list-entry-size->, Buffer-menu--pretty-name)
(Buffer-menu--pretty-file-name): New helper functions.
* lisp/loadup.el: Preload tabulated-list.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Rename from
tabulated-list-sort-column.
(tabulated-list-init-header): Add the initial aligning space even
if tabulated-list-padding is zero.
* src/lisp.mk (lisp): Update.
src/w32proc.c (new_child): Force Windows to reserve only 64KB of
stack for each reader_thread, instead of defaulting to 8MB
determined by the linker. This avoids failures in creating
subprocesses on Windows 7, see the discussion in this thread:
http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00119.html.
* src/editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
(Fcurrent_time_string): Support any year that is supported by the
underlying localtime representation. Don't use asctime, as it
has undefined behavior for years outside the range -999..9999.
* doc/lispref/os.texi (Time of Day): Do not limit current-time-string
to years 1000..9999.
* etc/NEWS: Do not limit current-time-string to years 1000..9999.
Without this fix, interrupts could mess up code that uses these
nonreentrant functions, since setting TZ invalidates existing
tm_zone or tzname values, and since most of these functions return
pointers to static storage.
* editfns.c (format_time_string, Fdecode_time, Fencode_time)
(Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
Grow the critical sections to include not just invoking
localtime/gmtime, but also accessing these functions' results
including their tm_zone values if any, and any related TZ setting.
(format_time_string): Last arg is now struct tm *, not struct tm **,
so that the struct tm is saved in the critical section. All
callers changed. Simplify allocation of initial buffer, partly
motivated by the fact that memory allocation needs to be outside
the critical section.
* src/syssignal.h: Remove reference to BROKEN_SIGINFO (last used in
s/ptx4.h), BROKEN_SIGTSTP (last used in m/ustation.h, m/dpx2.h),
and BROKEN_SIGURG (was in s/gnu-linux.h prior to 2008-02-10).
All were removed before 23.1.
Also, it was a confusing name, since it does not necessarily mean that
we literally have libncurses; rather that we have tputs etc.
* configure.in (HAVE_LIBNCURSES): Remove; it is required to be true.
* src/dispnew.c: Remove HAVE_LIBNCURSES test;
it is always true on relevant platforms.
* nt/config.nt (HAVE_LIBNCURSES): Remove undef; not needed.
src/xdisp.c (pos_visible_p): If already at a newline from the
display string before the 'while' loop, don't walk back the glyphs
from it3.glyph_row. Solves assertion violation when the display
string begins with a newline (egg.el).
* buffer.c (Fmove_overlay): Revert the change of 2012-04-23.
That is, do not delete an evaporating overlay if it becomes
empty after its bounds are adjusted to fit within its buffer.
This fix caused other problems, and I'm reverting it until we get
to the bottom of them.
src/w32menu.c: Include w32heap.h.
(add_menu_item): If the call to AppendMenuW (via
unicode_append_menu) fails, disable Unicode menus only if we are
running on Windows 9X/Me.
* keyboard.c (read_char): Don't wipe echo area for select window
events: These might get delayed via `mouse-autoselect-window'
(Bug#11304).
* window.el (handle-select-window): Clear echo area since this is
no more done by read_char (Bug#11304).
* buffer.c (Fmove_overlay): Delete an evaporating overlay
if it becomes empty after its bounds are adjusted to fit within
its buffer. Without this fix, in a nonempty buffer (let ((o
(make-overlay 1 2))) (overlay-put o 'evaporate t) (move-overlay o 0 1))
yields an empty overlay that has the evaporate property, which is
not supposed to happen.
src/xdisp.c (pos_visible_p): If the window start position is beyond
ZV, start the display from buffer beginning. Prevents assertion
violation in init_iterator when the minibuffer window is scrolled
via the scroll bar.
src/window.c (window_scroll_pixel_based): Likewise.
* gmalloc.c: (_MALLOC_INTERNAL, _MALLOC_H, _PP, __ptr_t)
(__malloc_size_t, __malloc_ptrdiff_t):
Remove. All uses removed, replaced by the definiens if needed,
since we can assume C89 or better now.
Include <stdint.h>, for PTRDIFF_MAX, uintptr_t.
(protect_malloc_state, align, get_contiguous_space)
(malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
(malloc_atfork_handler_child, malloc_enable_thread)
(malloc_initialize_1, __malloc_initialize, morecore_nolock)
(_malloc_internal_nolock, _malloc_internal, malloc, _malloc)
(_free, _realloc, _free_internal_nolock, _free_internal, free, cfree)
(special_realloc, _realloc_internal_nolock, _realloc_internal)
(realloc, calloc, __default_morecore, memalign, valloc, checkhdr)
(freehook, mallochook, reallochook, mabort, mcheck, mprobe):
Define using prototypes, not old style.
(align, _malloc_internal_nolock, _free_internal_nolock, memalign):
Don't assume ptrdiff_t and uintptr_t are no wider than unsigned long.
(align): Don't assume that signed integer overflow wraps around.
Omit unused local var.
(malloc_initialize_1, morecore_nolock, _malloc_internal_nolock)
(_free_internal_nolock, memalign, mallochook, reallochook):
Omit no-longer-needed casts.
(valloc): Use getpagesize, not __getpagesize.
(MAGICWORD, MAGICFREE): Now randomish size_t values, not 32-bit.
(struct hdr): The 'magic' member is now size_t, not unsigned long.
the default. Implement further D-Bus standard interfaces.
* configure.in (dbus_validate_bus_name, dbus_validate_path)
(dbus_validate_interface, dbus_validate_member): Check also for
these library functions
* dbusbind.c (DBUS_NUM_MESSAGE_TYPES): Declare.
(QCdbus_request_name_allow_replacement)
(QCdbus_request_name_replace_existing)
(QCdbus_request_name_do_not_queue)
(QCdbus_request_name_reply_primary_owner)
(QCdbus_request_name_reply_in_queue)
(QCdbus_request_name_reply_exists)
(QCdbus_request_name_reply_already_owner): Move to dbus.el.
(QCdbus_registered_serial, QCdbus_registered_method)
(QCdbus_registered_signal): New Lisp objects.
(XD_DEBUG_MESSAGE): Use sizeof.
(XD_MESSAGE_TYPE_TO_STRING, XD_OBJECT_TO_STRING)
(XD_DBUS_VALIDATE_BUS_ADDRESS, XD_DBUS_VALIDATE_OBJECT)
(XD_DBUS_VALIDATE_BUS_NAME, XD_DBUS_VALIDATE_PATH)
(XD_DBUS_VALIDATE_INTERFACE, XD_DBUS_VALIDATE_MEMBER): New macros.
(XD_CHECK_DBUS_SERIAL): Rename from CHECK_DBUS_SERIAL_GET_SERIAL.
(xd_signature, xd_append_arg): Allow float for integer types.
(xd_get_connection_references): New function.
(xd_get_connection_address): Rename from xd_initialize. Return
cached address.
(xd_remove_watch): Do not unset $DBUS_SESSION_BUS_ADDRESS.
(xd_close_bus): Rename from Fdbus_close_bus. Not needed on Lisp
level.
(Fdbus_init_bus): New optional arg PRIVATE. Cache address.
Return number of recounts.
(Fdbus_get_unique_name): Make stronger parameter check.
(Fdbus_message_internal): New defun.
(Fdbus_call_method, Fdbus_call_method_asynchronously)
(Fdbus_method_return_internal, Fdbus_method_error_internal)
(Fdbus_send_signal, Fdbus_register_service)
(Fdbus_register_signal, Fdbus_register_method): Move to dbus.el.
(xd_read_message_1): Obey new structure of Vdbus_registered_objects.
(xd_read_queued_messages): Obey new structure of Vdbus_registered_buses.
(Vdbus_compiled_version, Vdbus_runtime_version)
(Vdbus_message_type_invalid, Vdbus_message_type_method_call)
(Vdbus_message_type_method_return, Vdbus_message_type_error)
(Vdbus_message_type_signal): New defvars.
(Vdbus_registered_buses, Vdbus_registered_objects_table): Adapt
docstring.
* net/dbus.el (dbus-message-internal): Declare function. Remove
unneeded function declarations.
(defvar dbus-message-type-invalid, dbus-message-type-method-call)
(dbus-message-type-method-return, dbus-message-type-error)
(dbus-message-type-signal): Declare variables. Remove local
definitions.
(dbus-interface-dbus, dbus-interface-peer)
(dbus-interface-introspectable, dbus-interface-properties)
(dbus-path-emacs, dbus-interface-emacs, dbus-return-values-table):
Adapt docstring.
(dbus-interface-objectmanager): New defconst.
(dbus-call-method, dbus-call-method-asynchronously)
(dbus-send-signal, dbus-method-return-internal)
(dbus-method-error-internal, dbus-register-service)
(dbus-register-signal, dbus-register-method): New defuns, moved
from dbusbind.c
(dbus-call-method-handler, dbus-setenv)
(dbus-get-all-managed-objects, dbus-managed-objects-handler): New
defuns.
(dbus-call-method-non-blocking): Make it an obsolete function.
(dbus-unregister-object, dbus-unregister-service)
(dbus-handle-event, dbus-register-property)
(dbus-property-handler): Obey the new structure of
`bus-registered-objects'.
(dbus-introspect): Use `dbus-call-method'. Use a timeout.
(dbus-get-property, dbus-set-property, dbus-get-all-properties):
Use `dbus-call-method'.
* dbus.texi (Version): New node.
(Properties and Annotations): Mention the object manager
interface. Describe dbus-get-all-managed-objects.
(Type Conversion): Floating point numbers are allowed, if an
anteger does not fit Emacs's integer range.
(Synchronous Methods): Remove obsolete dbus-call-method-non-blocking.
(Asynchronous Methods): Fix description of
dbus-call-method-asynchronously.
(Receiving Method Calls): Fix some minor errors. Add
dbus-interface-emacs.
(Signals): Describe unicast signals and the new match rules.
(Alternative Buses): Add the PRIVATE optional argument to
dbus-init-bus. Describe its new return value. Add dbus-setenv.