Martin Rudalics [Tue, 24 Apr 2012 08:56:31 +0000 (10:56 +0200)]
Don't clear echo area prematurely when handling select window events (Bug#11304).
* 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).
Stefan Monnier [Tue, 24 Apr 2012 03:40:57 +0000 (23:40 -0400)]
* lisp/ibuffer.el (ibuffer-mode-map): Bind `/ m' to filter-used-mode
and `/ M' to filter-derived-mode.
* lisp/ibuf-ext.el (ibuffer-list-buffer-modes): Simplify; avoid add-to-list.
(ibuffer-filter-by-mode, ibuffer-filter-by-used-mode)
(ibuffer-mark-by-mode): Use default rather than initial-input.
(ibuffer-filter-by-derived-mode): Autoload and require-match.
Paul Eggert [Mon, 23 Apr 2012 22:46:35 +0000 (15:46 -0700)]
Do not create empty overlays with the evaporate property (Bug#9642).
* 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.
ispell.el,flyspell.el: Preserve session localwords when switching back buffers.
Once a word is declared valid for a session and a buffer it should
stay valid for that buffer regardless buffer switches unless ispell
process is explicitly killed or dictionary changed for that buffer.
However, it is currently lost when we switch to a different buffer
that triggers a new ispell process and then switch back to the
original buffer (triggering a new ispell restart).
These changes try to keep buffer session localwords accepted in above
case.
`ispell-insert-word' is a plain `insert' together with word filtering
through `translation-table-for-input' for character code unification.
This was useful in Emacs 22, but is not needed for Emacs 23 and above
since unification is now direct.
Since XEmacs does not have `translation-table-for-input' there is no
need at all to keep this old code, but use (insert) directly.
Paul Eggert [Sun, 22 Apr 2012 19:23:51 +0000 (12:23 -0700)]
Modernize and clean up gmalloc.c to assume C89 (Bug#9119).
* 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.
Make the "reset-saved" Custom operation reset to default if there is no saved value.
* lisp/cus-edit.el (custom-variable-menu)
(custom-variable-reset-saved, custom-face-menu)
(custom-face-reset-saved): If there is no saved value, make the
"reset-saved" operation bring back the default.
(custom-face-state): Properly detect themed faces.
Michael Albinus [Sun, 22 Apr 2012 14:11:43 +0000 (16:11 +0200)]
Move functions from C to Lisp. Make non-blocking method calls
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.
Tweaks to Customize interface. Set custom-reset-button-menu to t.
* cus-edit.el (custom-commands, custom-reset-menu)
(Custom-reset-standard): Tweak labels.
(custom-reset-button-menu): Change default to t.
(custom-buffer-create-internal): For the custom-reset-button-menu
case, put the revert button first.
(custom-group-subtitle): New face.
(custom-group-value-create): Align docstring to a specific column.
* wid-edit.el (widget-documentation-link-add): Don't handle
indentation in this function.
(widget-documentation-string-indent-to): New function.
(widget-documentation-string-value-create): Use it.
(GC_CHECK_MARKED_OBJECTS): Undef if ! GC_MARK_STACK,
since the two debugging options are incompatible.
(GC_MALLOC_CHECK): Similarly, undef if GC_CHECK_MARKED_OBJECTS
is defined.
(mem_init, mem_insert, mem_insert_fixup):
Define if GC_MARK_STACK || GC_MALLOC_CHECK.
(NEED_MEM_INSERT): Remove; no longer needed.
Paul Eggert [Sun, 22 Apr 2012 06:56:42 +0000 (23:56 -0700)]
* configure.in (doug_lea_malloc): Check for __malloc_initialize_hook.
With glibc 2.14 or later, when compiled with GCC 4.7.0's
-Werror=deprecated-declarations flag, use of hooks like
__malloc_initialize_hook causes compilation to fail because these
hooks are deprecated. Modify 'configure' to check for these hooks too.
Simplify the 'configure' code to test for all the hooks at once.
(emacs_cv_var___after_morecore_hook): Remove, replacing with ...
(emacs_cv_var_doug_lea_malloc): ... this new var.
Paul Eggert [Sun, 22 Apr 2012 01:27:10 +0000 (18:27 -0700)]
* sysdep.c [__FreeBSD__]: Minor cleanups.
(list_system_processes, system_process_attributes) [__FreeBSD__]:
Use Emacs indenting style more consistently. Avoid some casts.
Use 'double' consistently rather than mixing 'float' and 'double'.
dated 2011-10-07. Regenerating from current gnulib would be a
pervasive change, and currently the trunk isn't open to such changes.
* configure.in (WARN_CFLAGS): Remove; no longer needed now
that gnulib does it.
* lib/gnulib.mk, m4/gl-comp.m4: Regenerate.
Don't add modes to which-func-modes if already set to t.
* lisp/progmodes/verilog-mode.el (verilog-mode): Check whether
which-func-modes is t before adding verilog-mode.
Reported by Andy Moreton <andrewjmoreton@gmail.com>.
* lisp/mh-e/mh-folder.el (top): Check whether which-func-modes
is t before adding mh-folder-mode.
Eli Zaretskii [Sat, 21 Apr 2012 09:48:42 +0000 (12:48 +0300)]
Fix the build after leim-related changes.
msdos/sedleim.inp (RUN_EMACS): Replace BUILT_EMACS with EMACS.
Remove stale editing of "else make quail".
(.PHONY, compile-targets): Remove targets.
(compile-main): Edit into something that can be done without
requiring a Unixy shell.
(bootstrap-clean): Likewise: edit to not require $(setwins).
msdos/sed1v2.inp: Edit "cd $(leimdir) && $(MAKE) ..." into the
equivalent "$(MAKE) $(MFLAGS) -C $(leimdir) ..." command.
Michael Vehrs [Sat, 21 Apr 2012 05:54:39 +0000 (13:54 +0800)]
Improve tbl support in woman.el.
* lisp/woman.el (woman-find-next-control-line): New arg, specifying an
additional regexp component for the control line.
(woman2-roff-buffer): Use it.
(woman-break-table): New function.
(woman2-TS): Use it.
And some cleanups:
* lisp/woman.el (woman-set-buffer-display-table, woman-decode-region)
(woman-horizontal-escapes, woman-negative-vertical-space)
(woman-tab-to-tab-stop, woman2-fc, woman2-TS)
(WoMan-warn-ignored): Use ?\s instead of ?\ .
Stefan Monnier [Fri, 20 Apr 2012 13:02:20 +0000 (09:02 -0400)]
* src/print.c (print_preprocess): Only check print_depth if print-circle
is nil.
(print_object): Check for cycles even when print-circle is nil and
print-gensym is t, but only check print_depth if print-circle is nil.
* lisp/server.el (server-execute): Respect initial-buffer-choice
if it is a string and there are no files to open.
(server-create-window-system-frame, server-create-tty-frame):
Don't switch buffers here.
Dan Nicolaescu [Fri, 20 Apr 2012 07:32:35 +0000 (15:32 +0800)]
Fix sysfs battery display.
* battery.el (battery-echo-area-format): Display remaining time
for sysfs backend too (Bug#11269).
(battery-linux-sysfs): Fix conditional for the charge.
Fixes for pty handling in gdb-mi.el and process.c.
* lisp/progmodes/gdb-mi.el (gdb): Revert 2012-04-19 change.
(gdb-inferior-io--init-proc): New function.
(gdb-init-1): Use it.
(gdb-inferior-io-sentinel): New sentinel for the gdb-inferior pty,
responsible for allocating a new pty and hooking it to gdb when
the old pty gets an EIO due to process exit.
(gdb-delchar-or-quit): New command. Bind it in gdb-mi buffers.
(gdb-tooltip-print): Don't use obsolete tooltip-use-echo-area.
(gdb-inferior-io--maybe-delete-pty): Move into gdb-reset.
* src/process.c (wait_reading_process_output): If EIO occurs on a pty,
set the status to "failed" and ensure that sentinel is run.
* doc/lispref/processes.texi (Asynchronous Processes): Mention nil
argument to start-process.
Delete the gdb-inferior pty when the gdb process exits.
* lisp/progmodes/gdb-mi.el (gdb-inferior-io--maybe-delete-pty): New
function to call delete-process on the gdb-inferior buffer's pty.
(gdb-reset): Use it, instead of relying on kill-buffer to kill the
pty process.
(gdb-update): New arg to suppress talking to the gdb process.
(gdb-done-or-error): Use it.
(gdb-stopped-functions): Rename from gdb-stopped-hooks.
(gdb): Call gdb-inferior-io--maybe-delete-pty as a workaround for
sentinel not being called.
* doc/lispref/minibuf.texi: Standardize metasyntactic variables
("history", etc).
Use Texinfo-recommended form of quote+punctuation.
(Intro to Minibuffers): First minibuffer is #1, not #0.
Mention minibuffer-inactive-mode.
(Text from Minibuffer): Copyedits.
(Minibuffer History, Programmed Completion): Fix @var usage.
Sam Steingold [Wed, 18 Apr 2012 20:26:57 +0000 (16:26 -0400)]
* lisp/progmodes/gud.el (gud-key-prefix): Use :type 'key-sequence
instead of 'string to accommodate values like [f11].
Always use `vconcat' instead of `concat' on it, like in `gud-def'.
* lisp/progmodes/gdb-mi.el: Likewise.
Leo Liu [Wed, 18 Apr 2012 16:43:23 +0000 (00:43 +0800)]
* lisp/abbrev.el (edit-abbrevs): Move point to the abbrev table of
current buffer.
(prepare-abbrev-list-buffer): Enter edit-abbrevs-mode only if
LOCAL is nil.
Eli Zaretskii [Tue, 17 Apr 2012 15:25:17 +0000 (18:25 +0300)]
Fix bug #11261 with cursor movement in a continued line when header line is present.
src/xdisp.c (string_buffer_position_lim): Limit starting position to BEGV.
(set_cursor_from_row): If called for a mode-line or header-line
row, return zero immediately.
(try_cursor_movement): If inside continuation line, don't back up
farther than the first row after the header line, if any. Don't
consider the header-line row as "partially visible", even if
MATRIX_ROW_PARTIALLY_VISIBLE_P returns non-zero.