Kazuhiro Ito [Thu, 14 Nov 2013 17:43:49 +0000 (19:43 +0200)]
Fix bug #15892 with link failures of the Cygwin w32 build.
src/keyboard.c (make_ctrl_char) [HAVE_NTGUI]: Now externally visible
for Cygwin w32 build.
src/xdisp.c (erase_phys_cursor) [HAVE_NTGUI]: Now externally visible
for Cygwin w32 build.
Paul Eggert [Thu, 14 Nov 2013 02:39:28 +0000 (18:39 -0800)]
Simplify, port and tune bool vector implementation.
* configure.ac (BITSIZEOF_SIZE_T, SIZEOF_SIZE_T): Remove.
* src/alloc.c (bool_vector_exact_payload_bytes)
(bool_vector_payload_bytes): Remove.
(bool_vector_fill): Return its argument.
* src/alloc.c (bool_vector_fill):
* src/lread.c (read1):
* src/print.c (print_object):
Simplify by using bool_vector_bytes.
* src/alloc.c (make_uninit_bool_vector):
New function, broken out from Fmake_bool_vector.
(Fmake_bool_vector): Use it. Use tail call.
(make_uninit_bool_vector, vector_nbytes): Simplify size calculations.
* src/data.c (BITS_PER_ULL): New constant.
(ULLONG_MAX, count_one_bits_ll): Fall back on long counterparts
if long long versions don't exist.
(shift_right_ull): New function.
(count_one_bits_word): New function, replacing popcount_bits_word
macro. Don't assume that bits_word is no wider than long long.
(count_one_bits_word, count_trailing_zero_bits):
Don't assume that bits_word is no wider than long long.
* src/data.c (bool_vector_binop_driver, bool_vector_not):
* src/fns.c (Fcopy_sequence):
* src/lread.c (read1):
Create an uninitialized destination, to avoid needless work.
(internal_equal): Simplify.
(Ffillarray): Prefer tail call.
* src/data.c (bool_vector_binop_driver): Don't assume bit vectors always
contain at least one word.
(bits_word_to_host_endian): Prefer if to #if. Don't assume
chars are narrower than ints.
* src/data.c (Fbool_vector_count_matches, Fbool_vector_count_matches_at):
* src/fns.c (Fcopy_sequence):
Simplify and tune.
* src/lisp.h (bits_word, BITS_WORD_MAX, BITS_PER_BITS_WORD):
Don't try to port to hosts where bits_word values have holes; the
code wouldn't work there anyway. Verify this assumption, though.
(bool_vector_bytes): New function.
(make_uninit_bool_vector): New decl.
(bool_vector_fill): Now returns Lisp_Object.
Michael Albinus [Wed, 13 Nov 2013 15:36:12 +0000 (16:36 +0100)]
* automated/file-notify-tests.el (file-notify-test02-events)
(file-notify-test03-autorevert): Suppress messages in `write-region'.
* automated/tramp-tests.el (tramp-test02-file-name-dissect)
(tramp-test03-file-name-defaults, tramp-test21-file-links): Add tests.
(tramp-test26-process-file, tramp-test28-shell-command): Ensure,
that the directory is not empty when calling "ls".
Dmitry Gutov [Tue, 12 Nov 2013 14:15:14 +0000 (16:15 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Disambiguate between
binary "|" operator and closing block args delimiter. Remove
FIXME comment referring to Ruby 1.8-only syntax.
(ruby-smie--implicit-semi-p): Not after "|" operator.
(ruby-smie--closing-pipe-p): New function.
(ruby-smie--forward-token, ruby-smie--backward-token): Use it.
(ruby-smie-rules): Indent after "|".
Stefan Monnier [Mon, 11 Nov 2013 18:05:47 +0000 (13:05 -0500)]
* lisp/subr.el (force-mode-line-update): Delete, move to buffer.c.
* src/buffer.c (Frestore_buffer_modified_p): Sync it with
Fset_buffer_modified_p.
(Fforce_mode_line_update): New function, moved from subr.el.
(Fset_buffer_modified_p): Use them.
(syms_of_buffer): Defsubr Fforce_mode_line_update.
Paul Eggert [Mon, 11 Nov 2013 16:37:54 +0000 (08:37 -0800)]
* search.c (find_newline): Rewrite to prefer offsets to pointers.
This avoids undefined behavior when subtracting pointers into
different aways. On my platform it also makes the code a tad
smaller and presumably faster.
Michael Albinus [Mon, 11 Nov 2013 15:18:07 +0000 (16:18 +0100)]
* net/tramp-sh.el (tramp-do-copy-or-rename-file-via-buffer)
(tramp-sh-handle-file-local-copy): Don't write a message when
saving temporary files.
* net/tramp-smb.el (tramp-smb-handle-copy-directory): Fix bug when
both directories are remote.
(tramp-smb-handle-directory-files): Do not return double entries.
Do not expand full file names.
(tramp-smb-handle-insert-directory): Accept nil SWITCHES.
(tramp-smb-handle-write-region): Implement APPEND.
(tramp-smb-get-stat-capability): Fix a stupid bug.
Stefan Monnier [Mon, 11 Nov 2013 05:18:53 +0000 (00:18 -0500)]
* lisp/bindings.el (ctl-x-map): Bind C-x SPC to rectangle-mark-mode.
* src/keyboard.c (command_loop_1): Use region-extract-function.
* src/insdel.c (Qregion_extract_function): Not static any more (can we
stop pretending that these vars can benefit from being marked static?).
Glenn Morris [Mon, 11 Nov 2013 00:58:13 +0000 (16:58 -0800)]
Update from Unicode 6.2.0 to 6.3.0
Note: I used Emacs 24.3 to generate the uni-*.el files, owing to
unexplained (possibly harmless) differences that the current trunk's
use of lexical-binding for subr.el causes. Ref:
http://debbugs.gnu.org/15825#29
* admin/unidata/BidiMirroring.txt, admin/unidata/UnicodeData.txt:
Update to 6.3.0.
Dmitry Gutov [Sat, 9 Nov 2013 01:12:25 +0000 (03:12 +0200)]
* lisp/textmodes/ispell.el (ispell-lookup-words): When `look' is not
available and the word has no wildcards, append one to the grep
pattern.
http://lists.gnu.org/archive/html/emacs-devel/2013-11/msg00258.html
(ispell-complete-word): Call `ispell-lookup-words' with the value
independent of `ispell-look-p'.
Dmitry Gutov [Fri, 8 Nov 2013 23:59:56 +0000 (01:59 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie--implicit-semi-p):
Not after "||".
(ruby-smie-rules): Indent non-hanging "begin" blocks as part of
their parent.
* src/xfaces.c (lface_fully_specified_p): Let distant-foreground be
unspecified.
(realize_default_face): Remove assignment to distant-foreground if
unspecified.
Paul Eggert [Fri, 8 Nov 2013 16:24:40 +0000 (08:24 -0800)]
Merge from gnulib.
This incorporates:
2013-11-08 extern-inline: port better to OS X 10.9
2013-11-08 fpending: fix regression on DragonFly BSD
* lib/fpending.h, m4/extern-inline.m4, m4/fpending.m4:
Update from gnulib.
Bozhidar Batsov [Fri, 8 Nov 2013 16:01:55 +0000 (18:01 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-mode-set-encoding): Use
`ruby-encoding-magic-comment-style' to control the
style of the auto-inserted encoding comment.
Eli Zaretskii [Fri, 8 Nov 2013 10:21:35 +0000 (12:21 +0200)]
Switch cache-long-scans to t by default.
src/xdisp.c (message_dolog): Make sure the *Messages* buffer has its
cache-long-scans disabled, since we don't want to call
prepare_to_modify_buffer (in insert_1_both) for each message we
display.
src/buffer.h (bset_cache_long_scans): New INLINE function, moved
from buffer.c. Improve commentary to the buffer field setter
functions.
src/buffer.c (bset_cache_long_scans): Static function deleted.
Improve commentary to the buffer field setter functions.
(init_buffer_once): Default for cache-long-scans changed to t.
(Bug#15797)
Michael Albinus [Fri, 8 Nov 2013 09:31:15 +0000 (10:31 +0100)]
* automated/file-notify-tests.el:
* automated/tramp-tests.el: Add `tramp-own-remote-path' to
`tramp-remote-path' when running on hydra.
(tramp-test07-file-exists-p): Remove instrumentation code.
(tramp-test26-process-file): Don't use "/bin/true" and
"/bin/false", these paths do not exist on hydra.
Paul Eggert [Fri, 8 Nov 2013 07:28:21 +0000 (23:28 -0800)]
* chartab.c (make_sub_char_table): Fix size typo.
This bug was introduced in my 2013-06-21 change, and caused
struct Lisp_Sub_Char_Table objects to be given too many slots,
which broke 'make -C admin/unidata'.
Darren Hoo [Fri, 8 Nov 2013 04:09:56 +0000 (23:09 -0500)]
* lisp/man.el (Man-start-calling): New macro, extracted from
Man-getpage-in-background.
(Man-getpage-in-background): Use it.
(Man-update-manpage): New command.
(Man-mode-map): Bind it.
Dmitry Gutov [Fri, 8 Nov 2013 02:31:51 +0000 (04:31 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie-grammar): Improve precedences
of "and", "or", "&&" and "||".
(ruby-smie--args-separator-p): Prohibit keyword "do" as the first
argument. Prohibit opening curly brace because it could only be a
block opener in that position.
(ruby-smie--forward-token, ruby-smie--backward-token): Separate
"|" from "&" or "*" going after it. That can happen in block
arguments.
(ruby-smie--indent-to-stmt): New function, seeks the end of
previous statement or beginning of buffer.
(ruby-smie-rules): Use it.
(ruby-smie-rules): Check if there's a ":" before a curly block
opener candidate; if there is, it's a hash.
Paul Eggert [Thu, 7 Nov 2013 05:31:04 +0000 (21:31 -0800)]
Port to C11 aligned_alloc, and fix some integer overflows.
* configure.ac (GMALLOC_OBJ): Initialize to empty if !system_malloc
and doug_lea_malloc.
(aligned_alloc): Test for existence if !GMALLOC_OBJ and not darwin.
(posix_memalign): Test for existence only if !GMALLOC_OBJ and
not darwin and !aligned_alloc.
* src/alloc.c (USE_ALIGNED_ALLOC): New symbol.
(USE_POSIX_MEMALIGN): Remove. All uses replaced with USE_ALIGNED_ALLOC,
and use of posix_memalign replaced with aligned_alloc.
(aligned_alloc): New function, defined or declared as needed.
* src/conf_post.h (HAVE_POSIX_MEMALIGN) [DARWIN_OS]:
Don't undef; configure.ac now does this.
* src/gmalloc.c (aligned_alloc) [MSDOS]: New decl.
(calloc, aligned_alloc): Check for integer overflow.
(aligned_alloc): Rename from memalign. All uses changed.
(memalign): New function, an alias for aligned_alloc.
Dmitry Gutov [Thu, 7 Nov 2013 03:02:01 +0000 (05:02 +0200)]
* lisp/progmodes/ruby-mode.el (ruby-smie--implicit-semi-p):
No implicit semi after "^", "and" or "or".
(ruby-smie-grammar): New tokens: "and" and "or".
(ruby-smie--args-separator-p): Fix the check for tokens at POS.
Exclude "and" and "or". Remove "do" in order to work around token
priorities.
(ruby-smie-rules): Add all infix tokens. Handle the case of
beginning-of-buffer.
Stefan Monnier [Wed, 6 Nov 2013 18:41:31 +0000 (13:41 -0500)]
* src/xdisp.c (syms_of_xdisp): New vars redisplay--all-windows-cause and
redisplay--mode-lines-cause.
(redisplay_internal): Keep them uptodate. Remove redundant check of
buffer_shared_and_changed.
* *.[chm]: Number every assignment to update_mode_lines so we
can track why it is set.