1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-09 08:21:30 -07:00
Commit graph

143657 commits

Author SHA1 Message Date
Andrea Corallo
ff89ec0d36 * Name temp eln files as .eln.tmp so we can't clean-up them mistakenly.
* src/comp.c (Fcomp__compile_ctxt_to_file): Postfix temporary eln
	files as .eln.tmp.
2020-09-08 00:03:16 +02:00
Andrea Corallo
dc4b50ce0b * Do not crash compilation if user eln-cache wasn't already created.
* lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Guard
	against calling `directory-files' on non existent directories.
2020-09-07 23:18:36 +02:00
Andrea Corallo
d344e79be9 * src/data.c (subr-native-lambda-list): Defined it unconditionally (bug#43255) 2020-09-06 18:21:00 +02:00
Andrea Corallo
3a9139d197 * src/comp.c (Fcomp__compile_ctxt_to_file): Rename a variable. 2020-09-06 18:20:00 +02:00
Andrea Corallo
3df471e1f4 * src/comp.c (Fnative_elisp_load): Make recompilation always effective.
When loading a file if in this session there was ever a file loaded
with that name rename it before loading it to make sure we always get
a new handle from the standard library.
2020-09-06 18:19:00 +02:00
Andrea Corallo
a71f54eff8 Rework eln deletion strategy for new eln-cache folder structure
When recompiling remove the corresponding stale elns found in the
`comp-eln-load-path'.

When removing a package remove the corresponding elns too.

On Windows both of these are performed only when possible, when it's
not the file is renamed as .eln.old and a last attempt to remove this
is performed closing the Emacs session.  When a file being deleted was
loaded by multiple Emacs sessions the last one being closed should
delete it.

	* lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): New function.
	(comp-delete-or-replace-file): Rename from
	`comp--replace-output-file' and update so it can be used for
	replacing or deleting shared libs safetly.

	* lisp/emacs-lisp/package.el (package--delete-directory): When
	native compiled just call `comp-clean-up-stale-eln' for each
	eln file we want to clean-up.

	* src/alloc.c (cleanup_vector): Call directly the dynlib_close.

	* src/comp.c (syms_of_comp): Update for comp_u->cfile removal.
	Make 'all_loaded_comp_units_h' key-value weak as now the key will
	be the filename.
	(load_comp_unit): Register the compilation unit only when the load
	is fully completed.
	(register_native_comp_unit): Make the key of
	all_loaded_comp_units_h the load filename.
	(eln_load_path_final_clean_up): New function.
	(dispose_comp_unit)
	(finish_delayed_disposal_of_comp_units)
	(dispose_all_remaining_comp_units)
	(clean_package_user_dir_of_old_comp_units): Remove.
	(Fcomp__compile_ctxt_to_file): Update for
	`comp--replace-output-file' -> `comp-delete-or-replace-file'
	rename.

	* src/comp.h (dispose_comp_unit)
	(finish_delayed_disposal_of_comp_units)
	(dispose_all_remaining_comp_units)
	(clean_package_user_dir_of_old_comp_units): Remove.
	(eln_load_path_final_clean_up): Add.
	(struct Lisp_Native_Comp_Unit): Remove cfile field.

	* src/emacs.c (Fkill_emacs): Call 'eln_load_path_final_clean_up'.

	* src/pdumper.c (dump_do_dump_relocation): Do not set comp_u->cfile.
2020-09-06 18:17:00 +02:00
Andrea Corallo
eb87425988 * Makefile.in (ELN_DESTDIR): Add ${version}/ to it. 2020-09-06 08:08:19 +02:00
Andrea Corallo
8055633466 Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-06 08:07:30 +02:00
Thomas Fitzsimmons
669b46e6a3 EUDC: Reword macOS Contacts back end overview
* doc/misc/eudc.texi (macOS Contacts): Shorten section.
2020-09-05 22:53:00 -04:00
Thomas Fitzsimmons
71d067252c EUDC: Fix a minor formatting issue
* lisp/net/eudcb-macos-contacts.el
(eudc-macos-contacts-query-internal): Move result to its own line
to eliminate a lisp-mode warning.
2020-09-05 21:57:23 -04:00
Paul Eggert
2bba9cd409 Update from Gnulib
This incorporates:
2020-09-05 verify: avoid __builtin_assume
2020-08-30 strerrorname_np: New module
2020-08-26 include_next, stdint, time_rz: Change configure message
* lib/gnulib.mk.in: Regenerate.
* lib/string.in.h, lib/verify.h, m4/include_next.m4, m4/stdint.m4:
* m4/string_h.m4, m4/time_rz.m4: Copy from Gnulib.
2020-09-05 17:51:25 -07:00
Stefan Kangas
2c1d839778 * lisp/svg.el: Bump package version to 1.1. 2020-09-06 02:23:12 +02:00
Lars Ingebrigtsen
ccd5f0d0a9 Fix eww-change-select defaults in a different way
* lisp/net/eww.el (eww-change-select): Fix bug#43218 in a more
safe way than the previous version.
2020-09-06 02:02:42 +02:00
Lars Ingebrigtsen
585fe00557 Fix up previous icomplete-show-matches-on-no-input change
* lisp/icomplete.el (icomplete-completions): Ensure that the
default value is cleared (bug#43120).
2020-09-05 23:11:43 +02:00
Paul Eggert
6cf62141c4 Reinstall recent GC-related changes
The report that they broke macOS was a false alarm, as the
previous commit was also broken (Bug#43152#62).
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding):
Count only pointers that point to a struct component,
or are a tagged pointer to the start of the struct.
Exception: for non-bool-vector pseudovectors,
count any pointer past the header, since it’s too much
of a pain to write code for every pseudovector.
(live_float_holding, live_vector_pointer):
New functions, which are similar about counting pointers.
(live_float_p, live_large_vector_holding)
(live_small_vector_pointer, mark_maybe_pointer): Use them.
(mark_maybe_object, mark_maybe_objects): Remove,
and remove all callers; mark_maybe_pointer now suffices.
(mark_objects): New function.
* src/alloc.c (mark_vectorlike, mark_face_cache):
* src/eval.c (mark_specpdl):
* src/fringe.c (mark_fringe_data):
* src/keyboard.c (mark_kboards):
Simplify by using mark_objects.
* src/lisp.h (SAFE_ALLOCA_LISP_EXTRA):
Clear any Lisp_Object arrays large enough to not fit into the stack,
so that GC need not worry about whether they contain objects.
2020-09-05 12:15:14 -07:00
Michael Albinus
940ea15491 Adapt tramp-test30-make-process
* test/lisp/net/tramp-tests.el (tramp-list-tramp-buffers)
(tramp-time-diff): Don't declare.
(tramp-test30-make-process): Adapt test.
2020-09-05 19:29:47 +02:00
Michael Albinus
a04e76ac7d Minor improvements in Tramp error reporting
* lisp/net/tramp-cmds.el (tramp-bug):
Handle `tramp-suppress-trace' property.
(tramp-reporter-dump-variable): Improve variable dump.

* lisp/net/tramp.el (tramp--startup-hook, tramp-password-save-function):
Add `tramp-suppress-trace' property.
2020-09-05 19:29:12 +02:00
Lars Ingebrigtsen
82b695faa3 Revert "Display name with with spaces, but keep symbol name underneath"
This reverts commit e0c77bb62c.

We can't use a string with a display string here, anyway, because
it's used in other contexts.
2020-09-05 17:24:42 +02:00
Lars Ingebrigtsen
f303b64f0e Revert "info-lookup-symbol: Fix the suggested default value in Custom buffers"
This reverts commit ccae4ea699.

We can't use a string with a display string here, anyway, because
it's used in other contexts.
2020-09-05 17:23:31 +02:00
Mauro Aranda
ccae4ea699 info-lookup-symbol: Fix the suggested default value in Custom buffers
* lisp/info-look.el (info-lookup-maybe-add-help 'Custom-mode): Don't
pass info-lookup-guess-custom-symbol as the :parse-rule, since we
don't need it anymore.  (Bug#41905)
(info-lookup-guess-custom-symbol): Now unused, mark as obsolete.
(info-lookup-interactive-arguments): Get rid of text properties before
passing the default value to completing-read.
2020-09-05 17:07:41 +02:00
Lucas Werkmeister
60e3353697 Mark sgml-basic-offset as safe for integers
* lisp/textmodes/sgml-mode.el (sgml-basic-offset):
Add :safe.  (Bug#43215)
2020-09-05 16:59:24 +02:00
Lars Ingebrigtsen
4b23716311 Explain in the tab-always-indent doc how to make TAB insert a TAB
* lisp/indent.el (tab-always-indent): Mention how to make TAB
insert a TAB character always (bug#37183).
2020-09-05 16:40:58 +02:00
Lars Ingebrigtsen
3c69864a9c Fix default value in selects in eww
* lisp/net/eww.el (eww-change-select): Make hitting RET with an
empty string use a default (bug#43218).
2020-09-05 15:50:40 +02:00
Lars Ingebrigtsen
b9bdc48b4c Fix <optgroup> in selects in eww
* lisp/net/eww.el (eww-tag-select): Use all the options.  This
fixes the problem with <optgroup> elements that wrap them (bug#43217).
2020-09-05 15:42:26 +02:00
Lars Ingebrigtsen
81657507c2 Tweak how cperl-mode fontifies hashes and arrays
* lisp/progmodes/cperl-mode.el (cperl-init-faces): Fontify hashes
and arrays (%foo and @foo) before the keywords, since the keyword
regexps are "wider" and the hash/array regexp just match those two
things (bug#22867).
2020-09-05 14:36:29 +02:00
Lars Ingebrigtsen
eca6c9281f Protect compilation-auto-jump against code killing the buffer
* lisp/progmodes/compile.el (compilation-auto-jump): Something may
have killed the buffer before the timer fired (bug#24585).
2020-09-05 14:31:52 +02:00
Mauro Aranda
a30268907c Improve call to widget-create-child-and-convert in cus-edit
* lisp/cus-edit.el (custom-variable-value-create): Pass tag as the
:tag property value (bug#41905).
2020-09-05 14:13:03 +02:00
ej-32u
e0c77bb62c Display name with with spaces, but keep symbol name underneath
* lisp/cus-edit.el (custom-unlispify-menu-entry): Display the
pretty name, but keep the real symbol name as the value (bug#41905).

Copyright-paperwork-exempt: yes
2020-09-05 14:12:22 +02:00
Mauro Aranda
31c3f53816 Preserve user customizations after disabling a theme
* lisp/custom.el (enable-theme): Since we are enabling the theme, bind
custom--inhibit-theme-enable to nil.  Then rely on custom-push-theme
to do the right thing with the theme settings and prior user settings,
instead of manipulating the property here.  This way, when disabling a
theme, we restore user preferences, even when the values were changed
outside of customize.
(disable-theme): Call custom-push-theme instead of handling theme
settings directly.
(custom-push-theme): Avoid another instance of Bug#28904: we don't
need the changed theme when the value recorded for it is going to be
the same as the recorded for the user theme.

* test/lisp/custom-tests.el (custom--test-theme-variables): Get rid of
a portion of the test that will always fail, because the user theme
has priority over every other theme.  Expect the test to pass now that
we preserve user customizations after disabling a theme (bug#34027).
2020-09-05 13:53:18 +02:00
Andrew G Cohen
22570d18ba ; Document new gnus-summary-line-format items
* lisp/gnus/gnus.el (gnus-summary-line-format): Include %Z, %G, and %g
in the docstring.
* doc/misc/gnus.texi (Summary Buffer Lines): Document %Z, %G, and %g
specifications.
2020-09-05 16:47:06 +08:00
Michael Albinus
a6b4514582 ; Fix typos in etc/NEWS 2020-09-05 10:21:35 +02:00
Andrew G Cohen
ecfc13e416 Introduce nnselect backend for gnus
This new backend allows gnus to handle arbitrary sets of messages
spanning multiple groups, even when these groups are from different
backends and different servers. All gnus glue is removed from
nnir (leaving only the backend search functions) and gnus
search-related processing is done through nnselect. In appropriate
places 'nnir' has been replaced by 'nnselect' or 'search'.

* etc/NEWS: Document the change.
* doc/misc/gnus.texi: New  documentation for nnselect and update
searching and thread-referral  sections.
* lisp/gnus/nnselect.el: New file.
* lisp/gnus/nnir.el: Remove all gnus glue, leaving only searching
capability. Improve documentation strings.
* lisp/gnus/gnus-group.el (gnus-group-read-ephemeral-search-group,
gnus-group-make-search-group): New functions.
* lisp/gnus/gnus-msg.el (gnus-setup-message, gnus-group-news,
gnus-summary-news-other-window): Update to work for nnselect. Fix
gnus-newsgroup-name wrangling.
*lisp/gnus/gnus-registry.el
(gnus-registry-action,gnus-registry-ignore-group-p): Make work from nnselect.
* lisp/gnus/nnheader.el (nnheader-parse-head, nnheader-parse-nov):
Rework and consolidate header parsing.
* lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group):
* lisp/gnus/gnus-cache.el (gnus-possibly-enter-article):
* lisp/gnus/gnus-cloud.el (gnus-cloud-available-chunks):
* lisp/gnus/gnus-msg.el (gnus-inews-yank-articles):
* lisp/gnus/gnus-sum. (gnus-get-newsgroup-headers):
* lisp/gnus/nndiary.el (nndiary-parse-head):
* lisp/gnus/nnfolder.el (nnfolder-parse-head):
* lisp/gnus/nnmaildir.el (nnmaildir--update-nov):
* lisp/gnus/nnml.el (nnml-parse-head):
* lisp/gnus/nnspool.el (nnspool-insert-nov-head):
Use new header parsing.
* lisp/gnus/gnus-start.el (gnus-read-active-for-groups): Rescan on
activation by default.
* lisp/gnus/gnus-sum.el (gnus-summary-line-format-alist): New specs
for virtual groups.
(gnus-article-sort-by-rsv, gnus-thread-sort-by-rsv):  New functions to
allow sorting by search RSV.
2020-09-05 08:46:43 +08:00
Andrii Kolomoiets
f450798cb0 Don't move point in vc-dir on vc-register/vc-checkin (bug#43188)
* lisp/vc/vc-dir.el (vc-dir-update):
  Save and restore point on 'ewoc-invalidate'.
* lisp/vc/vc-dispatcher.el (vc-finish-logentry):
  Don't call 'vc-dir-move-to-goal-column'.
* lisp/vc/vc.el (vc-register): Don't call 'vc-dir-move-to-goal-column'.
2020-09-05 00:16:39 +03:00
Andrea Corallo
67c5369156 Rename and move eln system directory
Rename eln sys directory into 'native-lisp' and move it from
"$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/" to
"$(DESTDIR)${libdir}/emacs/".

Add to the directory name used to disambiguate the eln compatibility
the Emacs version to have it more user friendly.

	* Makefile.in (clean, install-eln): Rename eln-cache into
	native-lisp.
	(ELN_DESTDIR): Move from
	'$(DESTDIR)${libexecdir}/emacs/${version}/${configuration}/' to
	'$(DESTDIR)${libdir}/emacs/'.

	* lisp/loadup.el: Update for comp-native-path-postfix ->
	comp-native-version-dir rename.

	* src/comp.c (syms_of_comp): Rename eln-cache -> native-lisp.
	(syms_of_comp, Fcomp_el_to_eln_filename): Rename
	comp-native-path-postfix -> comp-native-version-dir.
	(hash_native_abi): Rework and add emacs-version to
	comp-native-version-dir.
2020-09-04 17:12:22 +02:00
Lars Ingebrigtsen
9e5fd29bed Fix previous manual mis-merge of dired-aux
* lisp/dired-aux.el (dired-rename-file): Fix manual mis-merge of
previous patch.
2020-09-04 15:50:48 +02:00
Lars Ingebrigtsen
9e5db99d31 Fix up previous LAMDA->LAMBDA patch
* lisp/international/mule-cmds.el (ucs-names): Ensure we're only
matching LAMDA as a word.  Noted by Stefan Monnier.
2020-09-04 15:46:19 +02:00
Mauro Aranda
6dcfabea97 Do not remove unbound variables or faces when modifying a custom-theme
* lisp/cus-theme.el (custom-theme-write-variables
custom-theme-write-faces): Remove check for a bound symbol or for a
face name, so saving a theme does not remove not yet defined variables
or faces (bug#24727).
2020-09-04 15:35:41 +02:00
Michael Albinus
93d8ee1d6b * etc/NEWS: Add changes for D-Bus; fix typos. 2020-09-04 15:09:22 +02:00
Michael Albinus
a418b0a920 Extend dbus.el by error messages, and :write access type
* doc/misc/dbus.texi (Receiving Method Calls): Describe how to
produce D-Bus error messages.
(Receiving Method Calls): Support :write access type.

* lisp/net/dbus.el (dbus-error-dbus, dbus-error-failed)
(dbus-error-access-denied, dbus-error-invalid-args)
(dbus-error-property-read-only): New defconsts.
(dbus-method-error-internal): Add arg ERROR-NAME.
(dbus-register-method): Adapt docstring.
(dbus-handle-event): Handle error messages returned from the handler.
(dbus-get-this-registered-property)
(dbus-get-other-registered-property): New defuns.
(dbus-register-property): Support :write access type.
(dbus-property-handler): Submit proper D-Bus error messages.
Handle several paths at the same interface.

* src/dbusbind.c (Fdbus_message_internal): Improve handling of
DBUS_MESSAGE_TYPE_ERROR.
2020-09-04 15:09:08 +02:00
Mauro Aranda
0f793b5658 Document :type-error property for customization types
* doc/lispref/customize.texi (Type Keywords): Document :type-error, so
Lisp programs can display a more correct message when the value of a
user option doesn't match its type (bug#23975).
2020-09-04 14:50:40 +02:00
Noam Postavsky
689f421252 Allow "lambda" spelling for ucs-insert
* lisp/international/mule-cmds.el (ucs-names): Add a "LAMBDA"
completion variant for every "LAMDA" name (bug#30513).
2020-09-04 06:43:13 +02:00
Robert Pluim
66d01012ba Show log suppression buttons in display-warning buffer
* etc/NEWS: Describe 'display-warning' button change (bug#30757).
* lisp/emacs-lisp/warnings.el (warning-suppress-warning):
Define button.
(warning-suppress-action): New function.
(warning-suppress-log-warning): Define button.
(warning-suppress-log-action): New function.
(display-warning): Show buttons to allow permanent
modification of warning-suppress-types and
warning-suppress-log-types per warning.
2020-09-04 06:28:21 +02:00
Tino Calancha
7769cad1e3 wdired-do-renames: Speed up for long Emacs sessions
`dired-rename-file' calls unconditionally `dired-rename-subdir'.
The second function performs performs a loop on all the Emacs
buffers; this step is only needed if FILE is a directory (bug#32899).

In a long lived Emacs session, this can make a difference
when renaming a bunch of files with `wdired'.
For instance, in my 40 days old Emacs session, with ~ 700 buffers,
this patch increases the speed to rename 2000 files a factor ~ 15.

* lisp/dired-aux.el (dired-rename-file): Call `dired-rename-subdir'
iif FILE is a directory.  Add docstring.
(dired-rename-subdir, dired-remove-entry)
(dired-remove-file): Add docstring.

(dired-remove-entry): Move definition into `dired.el'.

* lisp/wdired.el (wdired-do-renames): Use a progress-reporter.

* lisp/dired.el (dired-delete-entry):
Use `dired-remove-entry'.  Add docstring.

(dired-buffers-for-dir, dired-fun-in-all-buffers):
Change comment into docstring.
(dired-fun-in-all-buffers): Prefer `when' and `push' here.
2020-09-04 06:09:23 +02:00
Harald Jörg
70af9a9cb9 Fix infloop when indenting in cperl-mode
* lisp/progmodes/cperl-mode.el (cperl-indent-exp): Fix (Bug#10483)
Perl expressions (e.g. function calls) ending in ")" without
statement terminator on the same line no longer loop endlessly.
2020-09-04 05:13:43 +02:00
Lars Ingebrigtsen
74ba8f8421 Fix previous buffer name fixup in save-some-buffers
* lisp/files.el (save-some-buffers): Get the file name for the
correct buffer in the buffer name check (bug#43192).
2020-09-04 04:58:17 +02:00
Lars Ingebrigtsen
a0e026b274 Don't display the Gnus splash on gnus-read-ephemeral-emacs-bug-group
* lisp/gnus/gnus.el: Don't display the Gnus splash at load time
(bug#43123).
2020-09-04 04:45:55 +02:00
Stefan Monnier
6f88247a6c * lisp/mail/mspools.el: Use lexical-scoping. Autoload mspools-show.
(mspools-mode-map): Remove bindings made redundant by `special-mode-map`.
(mspools-show): Autoload.  Use `erase-buffer`.
(mspools-visit-spool): Use `inhibit-read-only`; simplify a bit.
(mspools-get-spool-files): Avoid `setq`.  Use `pcase-dolist`.
(mspools-revert-buffer): Make (unused) args optional.
(mspools-help, mspools-show-again, mspools-quit): Declare obsolete.
2020-09-03 22:03:46 -04:00
João Távora
ae6daa680a Fix ElDoc's eldoc-documentation-enthusiast strategy
As soon as we get a response from any of the user functions/sources in
eldoc-documentation-functions, we must make sure to call the
display-doc local function, just like in the other strategies.

That is even if that response produced nil, meaning that there's no
doc coming from that source.  Failure to do so when none of the
sources produced non-nil would keep stale documentation displaying.

First reported in https://github.com/joaotavora/eglot/issues/503

* lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Fix
:enthusiast strategy.
(Version): Bump to 1.10.0
2020-09-03 23:20:55 +01:00
Harald Jörg
7921b5db10 Fix freeze in cperl-mode when editing a regexp
* lisp/progmodes/cperl-mode.el (cperl-forward-group-in-re): Make
sure that an error is reported back to the caller (Bug#16368).

* test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-bug-16368):
Tests for balanced (no error) and unbalanced (caught exception)
cases of `cperl-forward-group-in-re'.
2020-09-03 22:58:07 +02:00
Alan Third
4ea928e14f * configure.ac (GNU_OBJC_CFLAGS): Check ObjC defaults to C99. (bug#43167) 2020-09-03 21:56:03 +01:00