Eli Zaretskii [Sat, 30 Apr 2011 10:31:17 +0000 (13:31 +0300)]
Adapt the MSDOS build to latest changes.
msdos/inttypes.h: New file.
msdos/sed2v2.inp (HAVE_DECL_STRTOULL, HAVE_DECL_STRTOUMAX)
(HAVE_STRTOULL, HAVE_STRTOULL): Define to 1.
src/sedlibmk.inp (BUILT_SOURCES): Edit out inttypes.h.
src/sed1v2.inp (CPPFLAGS): Edit to "-I../msdos".
Add ../msdos/inttypes.h to prerequisites of lread.o.
src/dosfns.c (Fint86, Fdos_memget, Fdos_memput): Use `ASIZE (FOO)'
rather than `XVECTOR (FOO)->size'.
Paul Eggert [Sat, 30 Apr 2011 06:51:50 +0000 (23:51 -0700)]
* config.nt: Configure 64-bit integers.
(BITS_PER_LONG_LONG): Define if C99-style long long and "%lld" work.
(EMACS_INT, BITS_PER_EMACS_INT, pI): Otherwise, define these if
__int64 and "%I64d" work.
Paul Eggert [Sat, 30 Apr 2011 01:06:41 +0000 (18:06 -0700)]
* dbusbind.c: Do not use XPNTR on a value that may be an integer.
Reported by Stefan Monnier in
<http://lists.gnu.org/archive/html/emacs-devel/2011-04/msg00919.html>.
(xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages): Use
SYMBOLP-guarded XSYMBOL, not XPNTR.
Eli Zaretskii [Fri, 29 Apr 2011 19:47:29 +0000 (22:47 +0300)]
Lift the MOST_POSITIVE_FIXNUM/4 limitation on visited files (bug#8528).
src/fileio.c (Finsert_file_contents): Don't limit file size to 1/4
of MOST_POSITIVE_FIXNUM.
src/coding.c (coding_alloc_by_realloc): Error out if destination
will grow beyond MOST_POSITIVE_FIXNUM.
(decode_coding_emacs_mule): Abort if there isn't enough place in
charbuf for the composition carryover bytes. Reserve an extra
space for up to 2 characters produced in a loop.
(decode_coding_iso_2022): Abort if there isn't enough place in
charbuf for the composition carryover bytes.
Eli Zaretskii [Fri, 29 Apr 2011 19:34:06 +0000 (22:34 +0300)]
Don't abort in doprnt when passed unsupported %ll modifier.
src/doprnt.c (doprnt) [!HAVE_LONG_LONG_INT]: Error out instead of
aborting when %lld or %lll format is passed.
[!HAVE_UNSIGNED_LONG_LONG_INT]: Error out instead of aborting when
%llo or %llx format is passed. (Bug#8545)
Stefan Monnier [Fri, 29 Apr 2011 15:23:59 +0000 (12:23 -0300)]
* lisp/erc/erc-pcomplete.el (erc-pcomplete-nick-postfix): Remove the " " in the
suffix that's added by pcomplete-termination-string anyway.
(pcomplete-erc-setup): Remove pcomplete-suffix-list setting now that
it's not needed any more.
Paul Eggert [Fri, 29 Apr 2011 07:54:43 +0000 (00:54 -0700)]
Prefer intptr_t/uintptr_t for integers the same widths as pointers.
This removes an assumption that EMACS_INT and long are the same
width as pointers. The assumption is true for Emacs porting targets
now, but we want to make other targets possible.
* lisp.h: Include <inttypes.h>, for INTPTR_MAX, UINTPTR_MAX.
(EMACS_INTPTR, EMACS_UINTPTR): New macros.
In the rest of the code, change types of integers that hold casted
pointers to EMACS_INTPTR and EMACS_UINTPTR, systematically
replacing EMACS_INT, long, EMACS_UINT, and unsigned long.
(XTYPE): Don't cast arg to EMACS_UINT; normally is not needed.
(XSET): Cast type of XTYPE arg to EMACS_INTPTR; it is needed here.
No need to cast type when ORing.
(XPNTR): Return a value of type EMACS_INTPTR or EMACS_UINTPTR.
* alloc.c (lisp_align_malloc): Remove a no-longer-needed cast.
* doc.c (store_function_docstring): Use EMACS_INTPTR, so as not to
assume EMACS_INT is the same width as char *.
* gtkutil.c (xg_gtk_scroll_destroy, xg_tool_bar_button_cb):
(xg_tool_bar_callback, xg_tool_bar_help_callback, xg_make_tool_item):
Remove no-longer-needed casts.
(xg_create_scroll_bar, xg_tool_bar_button_cb, xg_tool_bar_callback):
(xg_tool_bar_help_callback, xg_make_tool_item):
Use EMACS_INTPTR to hold an integer
that will be cast to void *; this can avoid a GCC warning
if EMACS_INT is not the same width as void *.
* menu.c (find_and_call_menu_selection): Remove no-longer-needed cast.
* xdisp.c (display_echo_area_1, resize_mini_window_1):
(current_message_1, set_message_1):
Use a local to convert to proper width without a cast.
* xmenu.c (dialog_selection_callback): Likewise.
* etc/NEWS: Document `delayed-warnings-list' and `delayed-warnings-hook'.
* lisp/subr.el (display-delayed-warnings): New function.
(delayed-warnings-hook): New variable.
* src/keyboard.c (Qdelayed_warnings_hook): Define.
(command_loop_1): Run `delayed-warnings-hook' if Vdelayed_warnings_list
is non-nil.
(syms_of_keyboard) <delayed-warnings-hook>: DEFSYM it.
(syms_of_keyboard) <delayed-warnings-list>: DEFVAR_LISP it.
Stefan Monnier [Thu, 28 Apr 2011 15:32:28 +0000 (12:32 -0300)]
Make MH-E use completion-at-point
* lisp/mh-e/mh-letter.el (mh-letter-completion-at-point): New function,
extracted from mh-letter-complete
(mh-letter-mode, mh-letter-complete, mh-letter-complete-or-space): Use it.
(mh-complete-word): Only use the common-substring arg when it works.
(mh-folder-expand-at-point):
* lisp/mh-e/mh-alias.el (mh-alias-letter-expand-alias): Return data suitable
for completion-at-point-functions.
* lisp/mh-e/mh-utils.el (mh-folder-completion-function): Make it work like
file-name completion, so partial-completion can do its job.
* lisp/minibuffer.el (completion-at-point, completion-help-at-point):
Don't presume that a given completion-at-point-function will always
use the same calling convention.
Paul Eggert [Thu, 28 Apr 2011 08:18:53 +0000 (01:18 -0700)]
* sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
Also, don't assume VALBITS / RAND_BITS is less than 5,
and don't rely on undefined behavior when shifting a 1 left into
the sign bit.
* lisp.h (get_random): Change signature to match.
Paul Eggert [Thu, 28 Apr 2011 05:15:35 +0000 (22:15 -0700)]
* lread.c (hash_string): Use size_t, not int, for hash computation.
Normally we prefer signed values; but hashing is special, because
it's better to use unsigned division on hash table sizes so that
the remainder is nonnegative. Also, size_t is the natural width
for hashing into memory. The previous code used 'int', which doesn't
retain enough info to hash well into very large tables.
(oblookup, oblookup_last_bucket_number, Funintern): Likewise.
Paul Eggert [Thu, 28 Apr 2011 00:48:19 +0000 (17:48 -0700)]
* dbusbind.c: Don't possibly lose pointer info when converting.
(xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
Use XPNTR rather than XHASH, so that the high-order bits of
the pointer aren't lost when converting through void *.
Eli Zaretskii [Wed, 27 Apr 2011 18:15:29 +0000 (21:15 +0300)]
Improve `doprnt' and its usage. (Bug#8545)
src/doprnt.c (doprnt): Make sure `format' is never accessed beyond
`format_end'. Remove support for %l as a conversion specifier.
Don't use xrealloc. Improve diagnostics when the %l size modifier
is used. Update the commentary.
src/eval.c (verror): Simplify calculation of size_t.
src/coding.c (Ffind_operation_coding_system): Fix diagnostic error
messages.
* calendar/icalendar.el (diary-lib): Added require statement.
(icalendar--create-uid): Read out a uid from a text-property on
the first character in the entry. This allows for code to add its
own uid to the entry.
(icalendar--convert-float-to-ical): Add export of
`diary-float'-entries save for those with the optional DAY
Stefan Monnier [Tue, 26 Apr 2011 13:50:09 +0000 (10:50 -0300)]
Make ERC use completion-at-point
* lisp/erc/erc.el (erc-mode-map): Use completion-at-point.
(erc-mode): Tell completion-at-point to obey erc-complete-functions.
(erc-complete-word-at-point): New function.
(erc-complete-word): Make it obsolete.
* lisp/erc/erc-pcomplete.el (erc-pcompletions-at-point): New function.
(pcomplete): Use it.
* lisp/erc/erc-dcc.el (erc-dcc-chat-mode-map): Use completion-at-point.
(erc-dcc-chat-mode): Tell completion-at-point to obey
erc-complete-functions.
* lisp/erc/erc-button.el (erc-button-next-function): New function extracted from
erc-button-next.
(button, erc-button-next): Use it.
Paul Eggert [Tue, 26 Apr 2011 07:12:16 +0000 (00:12 -0700)]
* gnutls.c (emacs_gnutls_handshake): Don't return a garbage value.
Expect the caller to check whether GNUTLS_STAGE_HANDSHAKE_CANDO <=
proc->gnutls_initstage, if the check is needed. The check isn't
needed for one caller, Fgnutls_boot.
(emacs_gnutls_read): Do that check. This is the other caller.
Paul Eggert [Mon, 25 Apr 2011 21:34:39 +0000 (14:34 -0700)]
* lisp.h: (XVECTOR_SIZE): Remove. All uses replaced with ASIZE.
(ASIZE): Now contains previous implementation of XVECTOR_SIZE
instead of invoking XVECTOR_SIZE.
Michael Albinus [Mon, 25 Apr 2011 18:10:17 +0000 (20:10 +0200)]
* net/tramp.el (tramp-process-actions): Add POS argument. Delete
region between POS and (pos).
* net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use
`nil' position in `tramp-process-actions' call.
(tramp-maybe-open-connection): Call `tramp-process-actions' with pos.
* net/tramp-smb.el (tramp-smb-maybe-open-connection): Use `nil'
position in `tramp-process-actions' call.