Ken Raeburn [Wed, 14 Jun 2017 01:28:07 +0000 (21:28 -0400)]
Fix use of "-l" on command line after installation.
The use of "-l" shouldn't override the loading of dumped.elc for
users. When we need to suppress the use of dumped.elc in the build
process, do so explicitly.
* src/emacs.c (main): Let the loading of dumped.elc override the
loading of a module specified with "-l".
* src/Makefile.in (emacs$(EXEEXT)): Pass --no-loadup when running
temacs.
(bootstrap-emacs$(EXEEXT)): Likewise.
ls-lisp: Do not require em-glob at top of the file
Require em-glob inside 'ls-lisp--dired'. This is necessary to
not break the Emacs build.
See following thread for details:
https://lists.gnu.org/archive/html/emacs-devel/2017-07/msg01083.html
* lisp/ls-lisp.el (dired-goto-next-file)
(dired-read-dir-and-switches, eshell-extended-glob):
Add function declarations.
* lisp/eshell/em-ls.el (dired-goto-next-file): Fix function declaration.
* lisp/textmodes/css-mode.el (css-property): Inherit from
`font-lock-keyword-face' instead of `font-lock-variable-name-face' to
distinguish CSS properties from variables.
Allow Dired to handle calls like
\(dired \"~/foo/*/*.el\"), that is, with wildcards within
the directory part of the file argument (Bug#27631).
* lisp/files.el (insert-directory-wildcard-in-dir-p): New predicate.
(insert-directory-clean): New defun extracted from insert-directory.
(insert-directory)
* lisp/dired.el (dired-internal-noselect)
(dired-insert-directory): Use the new predicate; when it's true,
handle the directory wildcards with a shell call.
* lisp/eshell/em-ls.el (eshell-ls-use-in-dired): Add/remove both advices.
(eshell-ls-unload-hook): New defun. Use it in
eshell-ls-unload-hook instead of an anonymous function.
(eshell-ls--dired)
* lisp/ls-lisp.el (ls-lisp--dired):
Advice dired to handle wildcards in the directory part with both
eshell-ls and ls-lisp.
* etc/NEWS: Announce it.
* doc/emacs/dired.texi (Dired Enter): Update manual.
* test/lisp/dired-tests.el (dired-test-bug27631): Add test.
Stephen Berman [Sat, 29 Jul 2017 11:59:18 +0000 (13:59 +0200)]
artist.el: Avoid error with keyboard command invocation
* lisp/textmodes/artist.el (artist-mouse-choose-operation):
Call x-popup-menu with t instead of last-nonmenu-event as the
value of the position argument; this allows invoking the
command from the keyboard without raising an error (bug#27819).
Stephen Berman [Sat, 29 Jul 2017 11:34:47 +0000 (13:34 +0200)]
Preserve point under 'dired-auto-revert-buffer' (third case)
* lisp/files.el (find-file): Use pop-to-buffer-same-window
instead of switch-to-buffer. This preserves Dired window
point when dired-auto-revert-buffer is non-nil. (Bug#27243)
* test/lisp/dired-tests.el (dired-test-bug27243-01)
(dired-test-bug27243-02, dired-test-bug27243-03): New tests.
The first two replace a previous test that combined them; that
test intermittently fails in the Hydra build system, so maybe
separating the two cases will help locate the point of
failure. The third test involves find-file but is here
because it, like the others, is testing the effect of
dired-auto-revert-buffer.
Eli Zaretskii [Sat, 29 Jul 2017 08:25:29 +0000 (11:25 +0300)]
Improve documentation of 'occur'
* doc/emacs/search.texi (Other Repeating Search):
* lisp/replace.el (occur): Make the documentation of 'occur' be
more accurate when matches overlap. (Bug#27818)
Paul Eggert [Sat, 29 Jul 2017 07:01:02 +0000 (00:01 -0700)]
Do not worry about paxctl on newer NetBSD
Problem reported privately by Thomas Klausner.
* configure.ac (emacs_uname_r): New var. Use it to avoid paxctl
on newer NetBSD platforms, where it is not needed. Also use it to
simplify Cygwin diagnostic.
Stefan Monnier [Fri, 28 Jul 2017 16:27:00 +0000 (12:27 -0400)]
* lisp/password-cache.el (password-data): Use a hash-table
* lisp/auth-source.el (auth-source-magic): Remove.
(auth-source-forget+, auth-source-forget-all-cached): Adjust to new
format of password-data.
(auth-source-format-cache-entry): Just use a cons.
Stefan Monnier [Fri, 28 Jul 2017 16:02:01 +0000 (12:02 -0400)]
* lisp/subr.el (define-symbol-prop): New function
(symbol-file): Make it find symbol property definitions.
* lisp/emacs-lisp/pcase.el (pcase-defmacro):
* lisp/emacs-lisp/ert.el (ert-set-test): Use it instead of `put'.
(ert-describe-test): Adjust call to symbol-file accordingly.
Stefan Monnier [Fri, 28 Jul 2017 15:28:48 +0000 (11:28 -0400)]
* lisp/subr.el (method-files): Move function to cl-generic.el
* lisp/emacs-lisp/cl-generic.el (cl-generic-p): New function.
(cl--generic-method-files): New function, moved from subr.el.
* lisp/emacs-lisp/edebug.el (edebug-instrument-function): Use them.
* test/lisp/emacs-lisp/cl-generic-tests.el:
* test/lisp/subr-tests.el: Move and adjust method-files tests accordingly.
Alan Mackenzie [Thu, 27 Jul 2017 17:56:23 +0000 (17:56 +0000)]
Fix C++ class initializers not always being fontified at mode start.
The problem here happened when an "outer list" of declarations moved beyond an
"inner list" containing class initializers. These weren't being checked for
by the code.
Also, fix places in c-get-fontification-context where point is undefined.
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): when argument
not-front-decl is set, test for class initializers. Also, anchor point in
places where it is moved and is otherwise undefined.
Michael Albinus [Thu, 27 Jul 2017 10:51:45 +0000 (12:51 +0200)]
Add watchdog process to tramp-test36-asynchronous-requests
* test/lisp/net/tramp-tests.el (tramp--test-timeout-handler):
New defun.
(tramp-test36-asynchronous-requests): Use a watchdog process,
listening for SIGUSR1.
Stefan Monnier [Thu, 27 Jul 2017 04:13:27 +0000 (00:13 -0400)]
* lisp/url/url-cookie.el: Use lexical-binding
(url-cookie-host-can-set-p): Remove unused var `last'.
Use string-suffix-p.
(url-cookie-list): De morgan.
(url-cookie-quit): Remove.
(url-cookie-mode): Inherit from special-mode.
(url-cookie-mode-map): Simplify accordingly.
* lisp/emacs-lisp/ert.el
(ert-results-pop-to-backtrace-for-test-at-point):
Set multibyte true, not false. This copies a
debugger-setup-buffer change from 2009-08-30, and stops the
"Backtrace for" header line containing ^X and ^Y.
Fix semantic-symref-parse-tool-output-one-line after 644cdd1aa0
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-grep--line-re): Delete.
(semantic-symref-parse-tool-output-one-line):
Use regexp and group numbers from (grep-regexp-alist).
Mark Oteiza [Tue, 25 Jul 2017 00:17:50 +0000 (20:17 -0400)]
; Fix previous commit
Functions prefixed with `turn-on-foo' are quite old, and in general
subsumed by the corresponding `foo-mode` command.
* lisp/display-line-numbers.el (turn-on-display-line-numbers-mode):
Rename with library prefix, mark as internal. Nix autoload.
Stefan Monnier [Mon, 24 Jul 2017 22:10:02 +0000 (18:10 -0400)]
* lisp/progmodes/perl-mode.el: Add support for indented here docs
* lisp/progmodes/perl-mode.el (perl-syntax-propertize-function):
Recognize the new <<~ syntax for indented here docs.
(perl-syntax-propertize-special-constructs): Adjust search of the
end of here docs accordingly.
* test/manual/indent/perl.perl: Add test for indented here docs.
Michael Albinus [Mon, 24 Jul 2017 17:38:17 +0000 (19:38 +0200)]
Fix Bug#27371
* lisp/loadhist.el (loadhist-unload-element): Declare for
different entry types of `load-history'.
(loadhist--restore-autoload): New variable.
(loadhist--unload-function): New defun.
(unload-feature): Use `loadhist-unload-element'. Recommended by
Stefan Monnier. (Bug#27371)
* test/lisp/net/tramp-tests.el (tramp-test39-unload):
Check, that the `tramp-file-name' structure has been unloaded.
Enable GUI Emacs without 'make install' on macOS (Bug #27645)
* nextstep/INSTALL: Correct it, and mention that Emacs can be run
from 'src/emacs'.
* src/nsterm.m (applicationDidFinishLaunching:): When Emacs is
launched outside of a macOS application bundle, change its
activation policy from the default 'prohibited' to 'regular'.
Alan Mackenzie [Sun, 23 Jul 2017 13:48:36 +0000 (13:48 +0000)]
Convert CC Mode's c-found-types from an obarray to a hash table.
* lisp/progmodes/cc-engine.el (c-clear-found-types): create a hash table
rather than an obarray.
(c-copy-found-types): Remove.
(c-add-type, c-unfind-type, c-check-type, c-list-found-types): Amend to use
the new hash table.
(c-forward-<>-arglist): Use copy-hash-table rather than c-copy-found-types.
* lisp/net/shr.el (shr-put-image): Display svg images as svg
(bug#27799). I suspect the previous change was checked in by
accident in conjuction with some other svg changes.
Don't automatically enable Gconf if Gsettings was found
* configure.ac (HAVE_GCONF) [HAVE_GSETTINGS]:
Don't test for Gconf unless specifically requested.
Gconf was deprecated in favor of Gsettings several years ago.
Michael Albinus [Sat, 22 Jul 2017 18:24:24 +0000 (20:24 +0200)]
Add line numbers display to the Options menu
* lisp/menu-bar.el (toggle-display-line-numbers): Remove.
(menu-bar-display-line-numbers-mode): New defun.
(menu-bar-showhide-line-numbers-menu): New defvar.
(menu-bar-showhide-menu): Use `menu-bar-showhide-line-numbers-menu'
Noam Postavsky [Wed, 7 Jun 2017 23:59:09 +0000 (19:59 -0400)]
Signal error for symbol names with strange quotes (Bug#2967)
* src/lread.c (read1): Signal an error when a symbol starts with a
non-escaped quote-like character.
* test/src/lread-tests.el (lread-tests--funny-quote-symbols): New
test.
* etc/NEWS: Announce change.
Add a minor mode interface for display-line-numbers
* lisp/cus-start.el: Use the new display-line-numbers group.
* lisp/display-line-numbers.el: New file.
* doc/emacs/custom.texi (Init Rebinding): Re-add entry that used to
belong to linum-mode.
* doc/emacs/modes.texi (Minor Modes): Summarize the mode.
* etc/NEWS: Document display-line-numbers-mode and its customization
variables, and mention that display-line-numbers-width is
buffer-local.
* src/xdisp.c (syms_of_xdisp) <display-line-numbers-width>: Fix a
typo.
* lisp/progmodes/ld-script.el: (ld-script-keywords): New commands
NOCROSSREFS_TO and HIDDEN added. Fix documentation sections
numbers for PROVIDE/PROVIDE_HIDDEN commands.
(ld-script-builtins): New builtin function LOG2CEIL added.
Ken Raeburn [Tue, 30 May 2017 06:49:20 +0000 (02:49 -0400)]
Load uniquify after dump/reload.
* lisp/loadup.el: Don't load uniquify before dumping; load it if we
don't dump, or if we do dump, write out instructions to load it at
startup. Don't explicitly filter out rename-buffer when checking for
function definitions that need writing out.
Ken Raeburn [Sun, 28 May 2017 07:35:01 +0000 (03:35 -0400)]
Clear out doc strings matching DOC file before dumping.
Since we have to call Snarf-documentation when reloading the saved
Lisp environment to get the subr doc pointers correct, we should omit
from the saved environment any doc strings that will be re-acquired
via Snarf-documentation anyway.
* src/doc.c (store_function_docstring): Add a new argument which,
if true, causes documentation slots to be set to indicate a zero
offset, which will be replaced next time Snarf-documentation is
called.
(Fsnarf_documentation): Add an optional second argument that says to
clear out as much as possible any documentation that can be found
later with a normal call to Fsnarf_documentation.
(reread_doc_file): Supply nil as the new argument to
Fsnarf_documentation.
* lisp/loadup.el: When preparing to dump the environment, call
Snarf-documentation with the extra argument to clear out the doc
strings that we can reload at startup time.
Ken Raeburn [Mon, 13 Mar 2017 07:21:53 +0000 (03:21 -0400)]
Dump and restore empty abbrev tables.
Abbrev tables are obarrays and thus don't print out in a useful form.
They need to be assembled at load time. Fortunately, loadup.el only
gives us empty abbrev tables, so we don't have to actually restore any
abbrevs, only the tables.
* lisp/loadup.el: When variable values are abbrev tables, emit a
"make-abbrev-table" initialization with the appropriate property
lists. Check abbrev tables and their parents for instances of
sharing. Reject any abbrev tables that are not empty.