1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-07 04:10:27 -08:00
Commit graph

139721 commits

Author SHA1 Message Date
Dmitry Gutov
58fb4c3e68 Make ':extend' inherited from default spec unless overridden
* lisp/faces.el (face-spec-recalc): Handle the :extend attribute
specially and always inherit it from the default spec unless
overwritten in a theme (bug#37774).

* test/lisp/faces-tests.el (faces--test-data-dir): New variable.
(faces--test-extend-with-themes): Use test themes instead of ones
from etc/themes.  Update expected values.

* test/data/themes/faces-test-dark-theme.el: New file.

* test/data/themes/faces-test-light-theme.el: New file.

* doc/lispref/display.texi (Face Attributes):
Update the description of ':extend'.

* etc/NEWS: Update the entry for ':extend'.

* etc/themes/adwaita-theme.el:
* etc/themes/deeper-blue-theme.el:
* etc/themes/dichromacy-theme.el:
* etc/themes/leuven-theme.el:
* etc/themes/light-blue-theme.el:
* etc/themes/manoj-dark-theme.el:
* etc/themes/misterioso-theme.el:
* etc/themes/tango-dark-theme.el:
* etc/themes/tango-theme.el:
* etc/themes/tsdh-dark-theme.el:
* etc/themes/tsdh-light-theme.el:
* etc/themes/wheatgrass-theme.el:
* etc/themes/wombat-theme.el: Remove the now-redundant ':extend'
attribute in all the themes.
2019-12-10 02:16:44 +02:00
Juri Linkov
d8d537e173 * lisp/emacs-lisp/map-ynp.el (read-answer): Use [remap self-insert-command]
This reverts the last change that replaced [remap self-insert-command]
with [t].  The user should have freedom of using any command
in the minibuffer.  (bug#32738)
2019-12-10 01:53:16 +02:00
Paul Eggert
5063e38921 Improve module bignum doc
* doc/lispref/internals.texi (Module Values): Tighten up
wording and code, and make the long example self-contained.
Fit things in margins.
2019-12-09 15:41:02 -08:00
Dmitry Gutov
bb8f46d55b project-find-regexp: Default to symbol at point
* lisp/progmodes/project.el (project--read-regexp):
Don't rely on the Xref backend to provide the default value.
2019-12-09 16:27:28 +02:00
Eli Zaretskii
aed9584a0e Add more tests for face :extend attribute
* test/lisp/faces-tests.el (faces--test-extend-with-themes):
New set of tests for verifying the :extend attribute across
theme loading and unloading, and also via face inheritance.
(Bug#37774)
2019-12-09 14:46:43 +02:00
Juri Linkov
51176ee81e * lisp/emacs-lisp/map-ynp.el (read-answer): Allow more SHORT-ANSWER types.
Treat SHORT-ANSWER as a character is characterp returns non-nil.
Otherwise, use key-description to print it.
Use catch-all [t] in keymap instead of [remap self-insert-command].
(bug#32738)
2019-12-09 01:27:29 +02:00
Juri Linkov
7c2c24a1aa * doc/emacs/mini.texi (Minibuffer Edit): Add minibuffer-depth-indicate-mode.
* doc/emacs/search.texi (Regexp Backslash): Change xref from
"(elisp) Syntax Tables" to "(elisp) Syntax Class Table".

* doc/lispref/display.texi (Other Display Specs): Change xref from
"Images" to "Image Descriptors".

(bug#38519)
2019-12-09 00:45:50 +02:00
Juri Linkov
252e5a8852 * lisp/simple.el (shell-command-on-region): Use set-buffer-major-mode.
This enables globalized minor modes explicitly after get-buffer-create
creates "*Shell Command Output*" buffer (bug#38111).
2019-12-09 00:27:34 +02:00
Juri Linkov
9ea3137bc8 Move recenter/scroll keybindings from minibuffer-local-map to read-char map
* lisp/minibuffer.el (minibuffer-local-map): Move remap of
recenter/scroll keybindings to read-char-from-minibuffer-map.

* lisp/subr.el (read-char-from-minibuffer-map): Move remap of
recenter/scroll keybindings here from minibuffer-local-map.
(bug#38502)
2019-12-09 00:19:43 +02:00
Juri Linkov
fe7ae74c0b * lisp/tab-line.el (tab-line-format): Use composite cache key (bug#38522) 2019-12-09 00:08:53 +02:00
Eric Abrahamsen
37d801a19a Continued fixes to gnus registry loading
* lisp/gnus/gnus-registry.el (gnus-registry-db): Do not initialize
this variable to an empty database, that should only be done for new
databases.
(gnus-registry-load): Remove "force" argument, don't check if the
database is already loaded, as we're only going to load it once.
(gnus-registry-initialize): Either load the db directly, or set up a
hook to do it later.
(gnus-registry-install-hooks): Don't load on
gnus-read-newsrc-el-hook.
2019-12-08 12:25:33 -08:00
Eli Zaretskii
f93a604ff1 ; * etc/NEWS: Fix a recently added entry. 2019-12-08 20:11:48 +02:00
Juri Linkov
7e387c9e52 * lisp/man.el (Man-width-max): New defcustom (bug#32536, bug#9385)
(Man-columns): New buffer-local variable.
(Man-columns): New function.
(Man-start-calling): Call Man-columns and set buffer-local Man-columns.
(Man--window-state-change-timer): New internal variable.
(Man--window-state-change): New internal function.
(Man-fit-to-window): New function.
(Man-mode): Add Man--window-state-change to local hook
window-state-change-functions.

* lisp/image-mode.el (image-fit-to-window): Add window arg to
window-buffer call.
2019-12-08 00:36:58 +02:00
Robert Cochran
97f24412e7 Add hooks for after tab open, before close, and to prevent closing
* lisp/tab-bar.el (tab-bar-tab-post-open-functions,
tab-bar-tab-prevent-close-functions, tab-bar-tab-pre-close-functions):
New defcustoms
(tab-bar-new-tab-to, tab-bar-close-tab): Use new defcustoms
2019-12-08 00:23:29 +02:00
Jackson Ray Hamilton
8e1c553260
Ignore comments and strings when matching JSX
* lisp/progmodes/js.el (js-jsx--matching-close-tag-pos): Ignore
comments and strings.
* test/manual/indent/jsx-comment-string.jsx: New test.
2019-12-07 13:18:00 -08:00
Jackson Ray Hamilton
c299c9b6fb
; * lisp/progmodes/js.el: Fix typo 2019-12-07 13:18:00 -08:00
Jackson Ray Hamilton
3d21ba374f
; * lisp/progmodes/js.el: Remove unnecessary concat 2019-12-07 13:18:00 -08:00
Alan Mackenzie
68d4a14fd4 CC Mode: Allow most functions on post-self-insert-hook to be called
This contrasts with the previous state where no such functions got called.
This fixes bug #38406.

* lisp/progmodes/cc-cmds.el (c--unsafe-post-self-insert-hook-functions): New
variable.
(c--call-post-self-insert-hook-more-safely-1): New function.
(c--call-post-self-insert-hook-more-safely): New macro.
(c-electric-pound, c-electric-brace, c-electric-slash, c-electric-star)
(c-electric-semi&comma, c-electric-colon, c-electric-lt-gt, c-electric-paren):
Invoke c--call-post-self-insert-hook-more-safely (which calls most of the hook
post-self-insert-hook) at the end of each of the commands.
2019-12-07 18:55:19 +00:00
Michael Albinus
959bbf3003 Add unload code to tramp-integration.el
* lisp/net/tramp-integration.el (info-lookup->mode-cache)
(info-lookup->topic-cache, info-lookup-alist): Declare.
(ido, ivy, info-look): Adapt `tramp-integration-unload-hook'.
2019-12-07 13:40:04 +01:00
Eli Zaretskii
3403d7a031 Corrections in semantic.texi
* doc/misc/semantic.texi (Parser code, Tag handling)
(Semanticdb Internals, Analyzer Internals, Tools): Fix file
names according to what was actually imported from the
original CEDET.  (Bug#38451)
2019-12-07 12:11:36 +02:00
Eli Zaretskii
c574d27464 Fix documentation of '-position' server command
* lisp/server.el (server-process-filter): Fix the description
of "-position" command to match the reality.  (Bug#38443)
2019-12-07 11:50:14 +02:00
Andrii Kolomoiets
89a4488f89 Ensure buffer is alive in python-pdbtrack-unset-tracked-buffer
* lisp/progmodes/python.el (python-pdbtrack-unset-tracked-buffer):
Check if buffer `python-pdbtrack-tracked-buffer' is alive.
(Bug#38413)
2019-12-07 11:40:57 +02:00
Eli Zaretskii
1161c7d8ec Fix fallout from fixing bug#37782
* src/keyboard.c (read_key_sequence): Modify the fix for
bug#37782 so that it applies only to keyboard keys, not to
other events, such as a new buffer.  (Bug#38132)
2019-12-07 11:28:05 +02:00
Eli Zaretskii
2c159da4c9 Minor fix in the ELisp manual
* doc/lispref/files.texi (Saving Buffers): Remove the
reference to the obsolete Fast Lock mode.  (Bug#37956)
2019-12-07 10:31:34 +02:00
Eli Zaretskii
937031a555 Remove duplicate macros from ses.el
* lisp/ses.el (1value, noreturn): Macros deleted, as we
nowadays have them in subr.el.  (Bug#38514)
2019-12-07 09:27:24 +02:00
Paul Eggert
48f6888588 Test format-time-string padding
Adapted from tests written by Stephen Gildea.
* test/src/timefns-tests.el:
(format-time-string-padding-minimal-deletes-unneeded-zeros)
(format-time-string-padding-minimal-retains-needed-zeros)
(format-time-string-padding-spaces)
(format-time-string-padding-zeros-adds-on-insignificant-side):
New tests.
2019-12-06 15:37:32 -08:00
Paul Eggert
c4cd2a0b9f Update from Gnulib
This incorporates:
2019-12-06 nstrftime: better width support for %N, %z
2019-12-03 Avoid hassles caused by [[noreturn]] in C++
2019-12-02 Fix mistakes in --enable-threads=isoc fixes from 2019-12-01
* admin/merge-gnulib (AVOIDED_MODULES): Avoid pthread-h.
* lib/_Noreturn.h, lib/nstrftime.c, m4/gnulib-common.m4:
* m4/timer_time.m4:
Copy from Gnulib.
* lib/gnulib.mk.in: Regenerate.
2019-12-06 15:17:08 -08:00
Michael Albinus
99ad65eda4 Configure info-look.el to recognize Tramp symbols
* lisp/net/tramp-integration.el (info-lookup->cache)
(info-lookup->mode-value, info-lookup->other-modes)
(info-lookup->topic-value, info-lookup-maybe-add-help)
(info-lookup-cache): Declare.
(info-look): Configure info-look.el to recognize Tramp symbols.
2019-12-06 19:28:01 +01:00
Eli Zaretskii
30eac47981 Clarify documentation of functions that use the default face
* lisp/simple.el (default-font-height, default-font-width)
(default-line-height): Say in the doc strings that the default
face these functions use is for the currently selected frame.

* doc/lispref/display.texi (Attribute Functions)
(Low-Level Font): Document more clearly the dependence of the
results of 'face-font', 'default-font-width', and
'default-font-height' on the frame's definition of the default
face.
2019-12-06 17:43:26 +02:00
Eli Zaretskii
1171fa32ca Fix set-marker when the position is larger than the largest buffer
* src/marker.c (set_marker_internal): Handle the case where
POSITION is beyond PTRDIFF_MAX, which can happen if Emacs was
built --with-wide-int.  Bug uncovered by the recently added
overlay tests.
2019-12-06 15:29:20 +02:00
Thierry Volpiatto
48373e7540
Merge branch 'completion-first-difference_face' 2019-12-06 08:01:26 +01:00
Thierry Volpiatto
4095a006fd
Fix setting completions* faces in
`completion-pcm--hilit-commonality` so that these faces doesn't
override possible already existing faces in other UIs.

* lisp/minibuffer.el (completion-pcm--hilit-commonality): Use
`add-face-text-property` instead of `put-text-property`.
2019-12-06 07:22:57 +01:00
Andreas Politz
bcf4201d4c * test/src/buffer-tests.el: Add loads of overlay tests
Taken from the `feature/noverlay` branch.
Suggested by Vladimir Kazanov <vekazanov@gmail.com>.
2019-12-05 23:10:32 -05:00
Paul Eggert
4c93307715 2019-12-05 regexp lint fixes
* lisp/org/org-agenda.el (org-agenda-filter):
Fix unescaped literal ‘+’ in regexp.  Reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-12/msg00215.html
* lisp/org/org.el (org-clone-subtree-with-time-shift):
Fix a regexp typo that mishandled strings like ‘\1d’,
reported by the same emaikl.
* lisp/progmodes/verilog-mode.el (verilog-inject-inst):
Omit unnecessary ‘?’ in regexp.  Reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-12/msg00217.html
2019-12-05 19:32:12 -08:00
Eli Zaretskii
5ee43ba0df Another fix for :extend when :inherit is used
* src/xfaces.c (face_inherited_attr): Support also values of
:inherit which are lists.  (Bug#37774)
2019-12-05 19:58:02 +02:00
Eli Zaretskii
21790e5473 Minor copyedits of 'jit-lock-antiblink-grace's docs
* lisp/jit-lock.el (jit-lock-antiblink-grace):
* etc/NEWS (value): Reword the NEWS entry and the doc string.
2019-12-05 17:43:06 +02:00
Eli Zaretskii
85f8aa1089 Fix recent modifications in emacs-module-tests
* test/data/emacs-module/mod-test.c (extract_big_integer): Fix
calculation of size of 'magnitude' when 'emacs_limb_t' is wider
than 'unsigned long'.

* test/src/emacs-module-tests.el
(module--test-assertions--load-non-live-object)
(module--test-assertions--call-emacs-from-gc): On MS-Windows,
check also mod-test-emacs with ".exe" appended, before
skipping the tests.
2019-12-05 16:38:17 +02:00
Federico Tedin
3586fef263 Make HIST arg of read-from-minibuffer work with buffer-local vars
* lisp/simple.el (minibuffer-history-values): New function, should be
used to access the minibuffer input history variable when the
minibuffer might be active.  If the variable is buffer-local, the
previous buffer's value will be used.
(goto-history-element): Use the new function to access the minibuffer
history.
(minibuffer-history-isearch-wrap): Use the new function to access the
minibuffer history.
* src/minibuf.c (read_minibuf): Switch to previous buffer temporarily
before updating history list (Bug#38317).
(read-from-minibuffer): Extend documentation to mention that the
result of using the command will be added to the history list by
default.
* doc/lispref/minibuf.texi (Minibuffer History): Mention the
possibility of using a buffer-local variable as history.
* etc/NEWS: Announce changes.
2019-12-05 10:30:28 +01:00
Paul Eggert
9027084793 Pacify GCC 9.2.1 with recent module changes
* src/emacs-module.c (module_encode): Remove unused decl.
(module_extract_big_integer): Pacify gcc -Wenum-compare.
2019-12-04 16:54:25 -08:00
Paul Eggert
ab612302b4 Fix regex repetition of repetitions
Problems reported by Mattias Engdegård in:
https://lists.gnu.org/r/emacs-devel/2019-12/msg00066.html
* lisp/gnus/gnus-util.el (gnus-emacs-version):
* lisp/mail/rfc2368.el (rfc2368-mailto-regexp):
* lisp/net/tramp-sh.el (tramp-sh-inotifywait-process-filter):
* lisp/obsolete/terminal.el (te-parse-program-and-args):
* lisp/org/org-table.el (org-table-wrap-region):
* lisp/progmodes/verilog-mode.el (verilog-inject-inst):
Avoid repetition-of-repetition in regexp.
2019-12-04 16:54:24 -08:00
Philipp Stephani
4472b053c3 Fix small bugs introduced in commit 096be9c454
* src/module-env-27.h:
* src/emacs-module.c (module_make_big_integer): Use 'emacs_limb_t'
instead of 'unsigned long' consistently
2019-12-05 01:14:03 +01:00
Juri Linkov
bd95d66ae9 * lisp/tab-line.el: Cache the tab-line-format template.
(tab-line-format): Cache the result of tab-line-format-template in window.
(tab-line-format-template): New function that returns the value to cache.
2019-12-05 01:08:24 +02:00
Juri Linkov
f336ae77cc * lisp/windmove.el (windmove-display-new-tab): New command.
(windmove-display-default-keybindings): Bind it to '?t'.
(windmove-display-in-direction): Call tab-bar-new-tab when 'dir' is 'new-tab'.
2019-12-05 01:03:45 +02:00
Juri Linkov
1e4c6f8333 * lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use. 2019-12-05 01:00:53 +02:00
Juri Linkov
67815c6bf2 * lisp/tab-bar.el (switch-to-buffer-other-tab): Use display-buffer-in-tab.
(tab-bar--tab): Use float-time instead of integer.
This improves correct detection of recent tabs switched within 1 sec.
(tab-bar--current-tab, tab-bar--current-tab-index)
(tab-bar--tab-index, tab-bar--tab-index-by-name)
(tab-bar--tab-index-recent): Add optional arg FRAME.
(tab-bar-move-tab-to-frame): Add with-selected-frame for tab-bar-close-tab.
(tab-bar--reusable-frames): New function.
(tab-bar-get-buffer-tab): Add index to the found tab.
(display-buffer-in-tab): Use `tab-name' entry instead of `name'.
Add `reusable-frames' entry.  (bug#38354)
2019-12-05 00:56:54 +02:00
João Távora
5b45c269cd New jit-lock-antiblink-grace feature
* lisp/jit-lock.el (jit-lock-antiblink-grace): New defcustom.
(jit-lock--antiblink-line-beginning-position)
(jit-lock--antiblink-string-or-comment): New variables
(jit-lock--antiblink-post-command): New helper.
(jit-lock-mode): Tweak post-command-hook and
jit-lock-context-timer.

* etc/NEWS: Mention jit-lock-antiblink-grace
2019-12-04 23:38:06 +01:00
Philipp Stephani
0e774d4f35 Use new function encode_string_utf_8 for the module API, too
* src/emacs-module.c (module_encode): Remove.
(module_copy_string_contents): Use encode_string_utf_8.
(syms_of_module): Define symbol 'unicode-string-p'.
2019-12-04 22:27:45 +01:00
Philipp Stephani
d673f871f9 * src/emacs-module.c: Add a few more restrictions for emacs-module.h 2019-12-04 21:37:47 +01:00
Philipp Stephani
096be9c454 Change module interface to no longer use GMP objects directly.
As described in the new comment added to emacs-module.c, using GMP
directly in the module interface has significant downsides: it couples
the module interface directly to the implementation and requires
module authors to link their module against the same GMP library as
Emacs itself, which is often difficult and an unnecessary burden.  By
picking a representation for the magnitude that often matches the one
used by GMP, we can avoid overhead when converting from and to GMP in
most cases.

Loading the test module in test/data/emacs-module and evaluating

(dotimes (_ 10000)
  (mod-test-double (* 2 most-negative-fixnum)))

under Callgrind shows that on my (GNU/Linux) machine Emacs only spends
10% of the CPU time of mod-test-double in mpz_import and mpz_export
combined, even though that function does little else.  (By contrast,
30% is spent in allocate_pseudovector.)

* src/emacs-module.h.in: Don't check EMACS_MODULE_GMP.  Don't include
gmp.h.  Remove emacs_mpz structure.  Instead, define type alias
emacs_limb_t and macro EMACS_LIMB_MAX.

* src/module-env-27.h: Change interface of extract_big_integer and
make_big_integer to take a sign-magnitude representation instead of
mpz_t.

* src/emacs-module.c: Don't check EMACS_MODULE_GMP or
EMACS_MODULE_HAVE_MPZ_T.  Add a comment about the chosen
implementation.
(module_extract_big_integer, module_make_big_integer): Reimplement
without using mpz_t in the interface.

* doc/lispref/internals.texi (Module Values): Adapt function
documentation and example.  Stop mentioning GMP and EMACS_MODULE_GMP.

* test/data/emacs-module/mod-test.c: Don't define EMACS_MODULE_GMP or
EMACS_MODULE_HAVE_MPZ_T.
(memory_full, extract_big_integer, make_big_integer): New helper
functions, identical to example in the Info documentation.
(Fmod_test_nanoseconds, Fmod_test_double): Adapt to new interface.
2019-12-04 21:17:10 +01:00
Bastien
0ca32d1270 etc/ORG-NEWS: Fix contents 2019-12-04 17:09:02 +01:00