* lisp/textmodes/flyspell.el (flyspell-use-mouse-3-for-menu): Rename
from 'flyspell-correct-on-mouse-3'. The previous name did not make it
clear that it's about opening a menu. (Bug#11680)
(flyspell--set-use-mouse-3-for-menu): Rename from
'flyspell--set-correct-on-mouse-3'. Bind menu to 'down-mouse-3'
instead of 'mouse-3' to be more in line with user expectations.
(flyspell-mode): Use the above new names.
* doc/emacs/fixit.texi (Spelling):
* etc/NEWS: Update documentation to use the new name.
Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
* src/ccl.c (ccl_driver): Defend against signed integer
overflow (Bug#42660). Perhaps some of this is unnecessary,
but it is safe and ccl.c is low-priority these days.
* lisp/startup.el (normal-top-level): Also delete PWD if
file-attributes fails for either $PWD or default-directory,
instead of failing out of the top level.
This fixes a regression from Emacs 26 (Bug#42903).
* src/pdumper.c (pdumper_find_object_type_impl): When checking
last_mark_bits, require the offset to be less than
discardable_start, not cold_start. This fixes a typo introduced in
2020-08-14T21:33:21Z!eggert@cs.ucla.edu (Bug#42832).
Make eln filename hashing logic insensitive to the installation
process.
* src/comp.c (epaths.h): New include to have PATH_DUMPLOADSEARCH,
PATH_LOADSEARCH definitions.
(loadsearch_re_list): New static var.
(Fcomp_el_to_eln_filename): Update logic to have the eln hashing
insensitive to the installation process.
(syms_of_comp): GC protect 'loadsearch_re_list'.
Given load loads automatically a .eln in place of a .elc we need a way
to force the .elc load in the case we really want it.
* src/lread.c (syms_of_lread): Define `load-no-native'.
(maybe_swap_for_eln): Make use of.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Do not crash if
native compiling we have no permission to create the .elc
file. We are not creating it.
This is needed for installed instances compiled with NATIVE_FAST_BOOT
* src/comp.c (maybe_defer_native_compilation): Search for .el.gz
too as a source if the .el is not found.
(Fcomp_el_to_eln_filename): Remove the .gz in case to
generate the hash.
* lisp/emacs-lisp/comp.el (comp-valid-source-re): New defconst.
(comp-run-async-workers, native-compile-async): Make use of
`comp-valid-source-re'.
* src/comp.h (fixup_eln_load_path): New extern.
* src/comp.c (fixup_eln_load_path): New function.
* src/pdumper.c (dump_do_dump_relocation): Update to make use of
'fixup_eln_load_path'.
* lisp/loadup.el: Update to store in the compilation unit the
correct eln-cache installed path. Rename --lisp-dest -> --eln-dest
and.
* Makefile.in: Pass the eln destination directory to
src/Makefile. Rename LISP_DESTDIR -> ELN_DESTDIR.
(ELN_DESTDIR): Define.
(install-eln): New target.
(install): Add install-eln as prerequisite.
* src/Makefile.in: Rename --lisp-dest -> --eln-dest and
LISP_DESTDIR -> ELN_DESTDIR.
Prevent autoload to kicks in while running `native-compile-async'.
Autoload cannot be used safely by functions serving deferred
compilation as a circular load can be triggered if the dependency is
not native compiled already.
* lisp/emacs-lisp/comp.el (warnings): Add require.
* src/comp.c (comp_deferred_compilation): Doc update and set it to
true by default.
* lisp/emacs-lisp/comp.el (comp-deferred-compilation): Remove
customize.
When loading a elc file search for a corresponding eln one into
`comp-eln-load-path' directories and load it if available.
`comp-eln-load-path' contains by default two directory (user and
system one).
* src/pdumper.c (dump_do_dump_relocation): While resurrecting from
load set eln cache sys dir in `Vcomp_eln_load_path'.
* src/lread.c (maybe_swap_for_eln): New function.
(Fload): Clean-up some now unnecessary code going
back to the master one.
(Fload): Make use of Vcomp_eln_to_el_h for the reverse file
look-up.
(openp_add_middle_dir_to_suffixes)
(openp_max_middledir_and_suffix_len, openp_fill_filename_buffer):
Remove functions.
(openp): As for Fload revert code modifications.
(openp): When a .elc file is being loaded check if a corresponding
eln can be loaded in place.
* src/comp.c (ELN_FILENAME_HASH_LEN): New macro.
(comp_hash_string): New function.
(hash_native_abi): Make use of 'comp_hash_string'.
(hash_native_abi): Change `comp-native-path-postfix' format.
(Fcomp_el_to_eln_filename): New function.
(Fcomp__compile_ctxt_to_file): Have file_name as a input.
(Vcomp_eln_to_el_h, Vcomp_eln_load_path): New global varaibles.
* lisp/startup.el (normal-top-level): Add user eln cache directory
in `comp-eln-load-path'.
* lisp/help-fns.el (find-lisp-object-file-name): Reverse look-up
files using `comp-eln-to-el-h'.
* lisp/files.el (locate-file): Likewise.
* lisp/emacs-lisp/find-func.el (find-library-name): Likewise.
* lisp/emacs-lisp/comp.el (comp-output-directory)
(comp-output-base-filename, comp-output-filename): Remove function.
(comp-compile-ctxt-to-file): Create parent directories if
necessary.
(comp-run-async-workers, native-compile, native-compile-async):
Make use `comp-el-to-eln-filename'.
* lisp/simple.el (read--expression): No longer bind
read--expression-try-read here.
* lisp/simple.el (read-expression-map): Bind
read--expression-try-read here (bug#42893).
This new specialized command was recently added in [1: 4a6dd13fa4].
It reestablishes the bindings every time `read--expression' is
invoked, which is wrong because it makes it impossible for users
to remove these bindings.
1: 4a6dd13fa4
Change 'M-:' to not error out on incomplete expressions.
In Elisp mode, ElDoc will try the variable's docstring first, then the
function signature. If the former doesn't have one, don't hide the
latter.
* lisp/progmodes/elisp-mode.el (elisp-eldoc-var-docstring): If no
symbol docstring, don't declare any.
* lisp/textmodes/flyspell.el
(flyspell-correct-on-mouse-3): New option to bind
'flyspell-correct-word' to 'mouse-3'.
(flyspell--set-correct-on-mouse-3): New function to update option.
(flyspell-mode): Update 'flyspell-mouse-map' if above option is
set.
* doc/emacs/fixit.texi (Spelling): Mention the new option.
* etc/NEWS: Announce the new option.
* lisp/subr.el (user-original-login-name): Mark as obsolete. This
XEmacs compat alias was obsoleted even by XEmacs, so there is no point
in keeping it around.
* lisp/eshell/esh-mode.el: (eshell-output-filter): Match
current-buffer behavior of comint-output-filter (bug#42870).
This change (a) sets the current buffer to the process-buffer when
invoking preoutput filter functions and (b) only invokes them when the
process-buffer is live. Otherwise, the preoutput filter functions be
invoked in whatever buffer happens to be focused, breaking hooks that
read buffer-local variables.