Paul Eggert [Mon, 28 Apr 2014 16:59:41 +0000 (09:59 -0700)]
Use bits_word for gcmarkbits.
* alloc.c (struct cons_block, struct float_block): On 64-bit hosts,
bits_word is typically a tad more efficient for mark bits than
unsigned is, so use bits_word. All uses changed.
* lisp.h (BITS_PER_INT): Remove; no longer used.
Stefan Monnier [Mon, 28 Apr 2014 04:40:41 +0000 (00:40 -0400)]
* lisp/progmodes/ps-mode.el: Use SMIE. Move string and comment recognition
to syntax-propertize.
(ps-mode-auto-indent): Mark as obsolete.
(ps-mode-font-lock-keywords-1): Remove string-or-comment handling.
(ps-mode-font-lock-keywords-3): Use symbol regexp operators instead of
word regexp operators.
(ps-mode-map): Move initialization into declaration. Remove binding
for TAB, RET, >, ], and }.
(ps-mode-syntax-table): Move initialization into declaration.
Don't give word syntax to non-word chars.
(ps-run-mode-map): Move initialization into declaration.
(ps-mode-menu-main): Remove auto-indent entry.
(ps-mode-smie-rules): New function.
(ps-mode): Setup smie, syntax-propertize, and electric-indent-mode.
(ps-mode-looking-at-nested, ps-mode-match-string-or-comment): Remove.
(ps-mode--string-syntax-table): New const.
(ps-mode--syntax-propertize-special, ps-mode-syntax-propertize):
New functions.
(ps-mode-newline, ps-mode-tabkey, ps-mode-r-brace, ps-mode-r-angle)
(ps-mode-r-gt, ps-mode-r-balance): Remove functions.
Paul Eggert [Mon, 28 Apr 2014 01:29:44 +0000 (18:29 -0700)]
Avoid undefined behavior in signed left shift.
This ports to GCC 4.9.0 with -fsanitize=undefined.
* alloc.c (bool_vector_fill, SETMARKBIT, UNSETMARKBIT):
* data.c (Fash):
* regex.c (extract_number):
* lisp.h (make_number, XINT):
Do not shift a 1 bit left into a sign bit.
* alloc.c (struct cons_block, struct float_block): Use unsigned,
not int, for gcmarkbits. All uses changed.
lisp/gnus.auth-source.el (auth-source-search): return boolean on :max 0
* lisp/gnus.auth-source.el (auth-source-search, auth-source-search-backends):
Treat :max 0 as an indicator that a boolean return is wanted, as
documented. Reported by Joe Bloggs.
Stefan Monnier [Fri, 25 Apr 2014 19:22:26 +0000 (15:22 -0400)]
* lisp/progmodes/perl-mode.el (perl--syntax-exp-intro-regexp): New var.
(perl-syntax-propertize-function): Use it. Extend handling of
here-docs to the unquoted case.
Michael Albinus [Fri, 25 Apr 2014 10:35:01 +0000 (12:35 +0200)]
* automated/tramp-tests.el (top):
* automated/file-notify-tests.el (top): Do not disable interactive
passwords in batch mode.
(password-cache-expiry): Set to nil.
Stefan Monnier [Thu, 24 Apr 2014 14:04:36 +0000 (10:04 -0400)]
* lisp/info.el: Use lexical-binding and cl-lib.
Use defvar-local and setq-local instead of make-local-variable.
(Info-apropos-matches): Avoid add-to-list.
(Info-edit-mode-map): Fix obsolescence call to Info-edit-map.
Michael Albinus [Thu, 24 Apr 2014 08:21:58 +0000 (10:21 +0200)]
Use a mock-up connection method for remote files.
* automated/file-notify-tests.el
(file-notify-test-remote-temporary-file-directory):
* automated/tramp-tests.el (tramp-test-temporary-file-directory):
Use a mock-up method as default.
(tramp-test00-availability): Print the used directory name.
(tramp-test33-recursive-load): Fix typo.
Stefan Monnier [Thu, 24 Apr 2014 03:59:19 +0000 (23:59 -0400)]
* src/window.c (Fset_window_configuration): Deactivate the mark before
unsetting the mark.
(set_window_buffer): Ignore window_initialized.
(window_initialized): Remove.
* src/keyboard.c (Qdeactivate_mark): Not static any more.
* src/buffer.c (buffer_local_value): Rename from buffer_local_value_1.
Update all callers.
Stefan Monnier [Wed, 23 Apr 2014 02:22:06 +0000 (22:22 -0400)]
* lisp/simple.el (completion-list-mode-map): Use choose-completion for the
mouse binding as well.
(completion-list-mode, completion-setup-function): Adjust docstring and
echo area message accordingly.
* lisp/progmodes/idlwave.el (idlwave-choose-completion): Adjust to new
calling convention of choose-completion.
* lisp/comint.el (comint-dynamic-list-completions):
* lisp/term.el (term-dynamic-list-completions): Accept choose-completion.
Paul Eggert [Tue, 22 Apr 2014 20:19:17 +0000 (13:19 -0700)]
Port to GCC 4.9.0 with --enable-gcc-warnings.
* image.c (struct my_jpeg_error_mgr) [lint]: Remove member fp.
All uses removed.
(jpeg_load_body) [lint]: Add a 'volatile' to pacify a buggy GCC in
a way that also works with GCC 4.9.0.
* dired.el (dired-insert-set-properties): Do not consider
subdirectory headings and empty lines to be information that
`dired-hide-details-mode' should hide. (Bug#17228)
Stefan Monnier [Tue, 22 Apr 2014 17:45:43 +0000 (13:45 -0400)]
* lisp/emacs-lisp/lisp-mode.el (lisp--match-hidden-arg): New function.
(lisp-el-font-lock-keywords-2, lisp-cl-font-lock-keywords-2): Use it.
(lisp-mode-variables): Set font-lock-extra-managed-props.
Eli Zaretskii [Tue, 22 Apr 2014 17:37:35 +0000 (20:37 +0300)]
Add debugging facility for the newline cache.
See the discussion in
http://lists.gnu.org/archive/html/emacs-devel/2014-04/msg00295.html
for more detail.
src/search.c (find_newline1): New subroutine.
(Fnewline_cache_check): New function.
(syms_of_search): Defsubr it.
Stefan Monnier [Tue, 22 Apr 2014 16:22:13 +0000 (12:22 -0400)]
* lisp/emacs-lisp/byte-run.el (function-put): New function.
(defun-declarations-alist): Use it. Add `pure' and `side-effect-free'.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-struct-sequence-type)
(cl-struct-slot-info, cl-struct-slot-offset, cl-struct-slot-value):
Use them.
Michael Albinus [Tue, 22 Apr 2014 10:43:01 +0000 (12:43 +0200)]
* net/tramp-sh.el (tramp-sh-handle-file-name-all-completions):
Remove test messages.
(tramp-do-copy-or-rename-file-out-of-band): Do not quote `source'
and `target' twice.
* lisp/emacs-lisp/macroexp.el (internal-macroexpand-for-load): Add
`full-p' parameter; when nil, call `macroexpand' instead of
`macroexpand-all'.
* src/lread.c (readevalloop_eager_expand_eval): New function
that can recurse into toplevel forms.
(readevalloop): Call it.
* src/lisp.h: Declare Qprogn.
* src/callint.c (Qprogn): No longer static.
* test/automated/bytecomp-tests.el (test-byte-comp-compile-and-load):
Add compile flag.
(test-byte-comp-macro-expansion)
(test-byte-comp-macro-expansion-eval-and-compile)
(test-byte-comp-macro-expansion-eval-when-compile)
(test-byte-comp-macro-expand-lexical-override): Use it.
(test-eager-load-macro-expansion)
(test-eager-load-macro-expansion-eval-and-compile)
(test-eager-load-macro-expansion-eval-when-compile)
(test-eager-load-macro-expand-lexical-override): New tests.
* lisp/emacs-lisp/bytecomp.el (byte-compile-initial-macro-environment):
Use lambda function values, not quoted lambdas.
(byte-compile-recurse-toplevel): Remove extraneous &optional.
* test/automated/cl-lib.el (cl-lib-struct-accessors): Fix test to
account for removal of `cl-struct-set-slot-value'. Also, move
the defstruct to top level.
* emacs-lisp/cl-macs.el
(cl-struct-sequence-type,cl-struct-slot-info): Declare pure.
(cl-struct-slot-value): Conditionally use aref or nth so that the
compiler produces optimal code.
2014-04-22 Daniel Colascione <dancol@dancol.org>
* automated/cl-lib.el (cl-lib-struct-accessors): Fix test to
account for removal of `cl-struct-set-slot-value'.
Michael Albinus [Mon, 21 Apr 2014 21:04:25 +0000 (23:04 +0200)]
* net/tramp-sh.el (tramp-sh-handle-file-name-all-completions): Set
"IFS=" when using read builtin, in order to preserve spaces in
the file name. Add test messages for hunting a bug on hydra.
(tramp-get-ls-command): Undo using "-b" argument. It doesn't help.
* emacs-lisp/cl-macs.el (cl--const-expr-val): We didn't need the
last two parameters after all.
(cl--expr-contains,cl--compiler-macro-typep,cl--compiler-macro-member)
(cl--compiler-macro-assoc,cl-struct-slot-value)
(cl-struct-set-slot-value): Stop using them.
Eli Zaretskii [Mon, 21 Apr 2014 14:50:19 +0000 (17:50 +0300)]
Minor fixes to the docs.
doc/emacs/buffers.texi (Uniquify): Clarify the default uniquification.
doc/emacs/indent.texi (Tab Stops): Improve wording.
doc/emacs/cmdargs.texi (General Variables): Improve docs of
EMACSLOADPATH. Index all the environment variables.
(Misc Variables): Index all the environment variables.
Jan Tatarik [Sun, 20 Apr 2014 22:10:33 +0000 (22:10 +0000)]
* gnus-icalendar.el (gnus-icalendar-event->org-entry)
(gnus-icalendar--update-org-event): put event timestamp in
the org entry body instead of the drawer.
(gnus-icalendar-event--get-attendee-names): list of participants should
contain even attendees without common name attribute.
(gnus-icalendar--update-org-event): don't generate duplicates of empty
property tags in org drawers.
Michael Albinus [Sun, 20 Apr 2014 21:39:43 +0000 (23:39 +0200)]
* automated/tramp-tests.el (tramp-test19-directory-files-and-attributes)
(tramp-test22-file-times): Check for `file-attributes' equality
only if there is a usable timestamp.
(tramp--test-check-files): Do not use `copy-sequence'.
Michael Albinus [Fri, 18 Apr 2014 18:58:13 +0000 (20:58 +0200)]
* automated/tramp-tests.el (tramp-copy-size-limit): Set to nil.
(tramp--test-make-temp-name): Optional argument LOCAL.
(tramp--instrument-test-case): Show messages. Catch also `quit'.
(tramp-test10-write-region): No special test for out-of-band copy
needed anymore.
(tramp-test11-copy-file, tramp-test12-rename-file)
(tramp-test21-file-links): Extend tests.
(tramp-test20-file-modes): More robust check for user "root".
(tramp--test-check-files): New defun.
(tramp-test30-special-characters, tramp-test33-recursive-load)
(tramp-test34-unload): New tests.
(tramp-test31-utf8, tramp-test32-asynchronous-requests): Rename.
Michael Albinus [Fri, 18 Apr 2014 18:57:04 +0000 (20:57 +0200)]
Avoid recursive load of tramp.el
* net/tramp.el (tramp-run-real-handler, tramp-file-name-handler):
Do not autoload.
(tramp-file-name-handler, tramp-completion-file-name-handler):
Revert patch from 2014-04-10, it isn't necessary anymore.
(tramp-autoload-file-name-handler)
(tramp-register-autoload-file-name-handlers): New defuns.
(top): Autoload call of `tramp-register-autoload-file-name-handlers'.
(tramp-register-file-name-handlers): Remove also
`tramp-autoload-file-name-handler' from `file-name-handler-list'.
Do not autoload its invocation, but eval it after loading of 'tramp.
Add support for bracketed paste mode; add infrastructure for
managing terminal mode enabling and disabling automatically.
* xt-mouse.el:
(xterm-mouse-mode): Simplify.
(xterm-mouse-tracking-enable-sequence)
(xterm-mouse-tracking-disable-sequence): New constants.
(turn-on-xterm-mouse-tracking-on-terminal)
(turn-off-xterm-mouse-tracking-on-terminal): Use
tty-mode-set-strings and tty-mode-reset-strings terminal
parameters instead of random hooks.
(turn-on-xterm-mouse-tracking)
(turn-off-xterm-mouse-tracking): Delete.
* term/xterm.el (xterm-extra-capabilities): Fix bitrotted comment.
(xterm-paste-ending-sequence): New constant.
(xterm-paste): New command used for bracketed paste support.
(xterm-modify-other-keys-terminal-list): Delete obsolete variable.
(terminal-init-xterm-bracketed-paste-mode): New function.
(terminal-init-xterm): Call it.
(terminal-init-xterm-modify-other-keys): Use tty-mode-set-strings
and tty-mode-reset-strings instead of random hooks.
(xterm-turn-on-modify-other-keys)
(xterm-turn-off-modify-other-keys)
(xterm-remove-modify-other-keys): Delete obsolete functions.
* term/screen.el: Rewrite to just use the xterm code. Add
copyright notice. Mention tmux.
Paul Eggert [Thu, 17 Apr 2014 06:40:25 +0000 (23:40 -0700)]
* GNUmakefile: Speed up 'make bootstrap' in fresh checkout.
(ORDINARY_GOALS): New macro, which excludes 'bootstrap'.
(bootstrap, .PHONY): New rules.
* INSTALL.REPO: Document current procedure better.
Move copyright notice to just before license notice.
Paul Eggert [Thu, 17 Apr 2014 06:02:38 +0000 (23:02 -0700)]
* Makefile.in (force-info): Remove.
All uses removed. This hack is no longer needed here
now that we can assume GNU Make's .PHONY feature works.
(bootstrap): No need to make 'info', since 'all' now implies 'info'.
Ian D [Thu, 17 Apr 2014 03:58:25 +0000 (23:58 -0400)]
* lisp/image-mode.el (image-mode-window-put): Also update the property of
the "default window".
* lisp/doc-view.el (doc-view-new-window-function): If no window
exists, move to the last known page.
Paul Eggert [Thu, 17 Apr 2014 01:35:20 +0000 (18:35 -0700)]
Be consistent about reporting infoclean failures.
* doc/emacs/Makefile.in (infoclean):
* doc/lispintro/Makefile.in (infoclean):
* doc/lispref/Makefile.in (infoclean):
* doc/misc/Makefile.in (infoclean):
Do not fail merely because the info directory does not exist,
but do fail if it exists and can't be cleaned.
Paul Eggert [Wed, 16 Apr 2014 15:16:35 +0000 (08:16 -0700)]
Remove DATA_SEG_BITS.
The DATA_SEG_BITS hack was needed for older 32 bit platforms.
As a result of this change, Emacs won't work on IRIX 6.5 with IRIX
cc, but that platform is so old that SGI itself stopped supporting
it in December 2013. If you still need Emacs on IRIX, please
either compile with GCC and port the undumping code, or run
'./configure --with-wide-int'.
* configure.ac (DATA_SEG_BITS): Remove. All uses removed.
* src/alloc.c (gdb_make_enums_visible): Update to match lisp.h.
* src/lisp.h (GCTYPEBITS): Move definition up, and switch to the
DEFINE_GDB_SYMBOL_START way to define it.
(NONPOINTER_BITS): New macro.
(EMACS_INT): Use it.
[!USE_LSB_TAG && !WIDE_EMACS_INT]: Fail, and suggest reporting
the problem and/or configuring --with-wide-int.
(USE_LSB_TAG): Simplify, based on above changes.
(gdb_DATA_SEG_BITS): Remove. All uses removed.
* src/vm-limit.c (exceeds_lisp_ptr): Remove. All uses removed.