]> git.eshelyaron.com Git - emacs.git/log
emacs.git
4 years agoDon't spam the echo area and the *Messages* buffer in Tramp
Michael Albinus [Wed, 11 Dec 2019 15:05:12 +0000 (16:05 +0100)]
Don't spam the echo area and the *Messages* buffer in Tramp

* lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered):
When called during `revert-buffer', don't spam the echo area and
the *Messages* buffer.

4 years agoImprove tv_nsec doc
Paul Eggert [Wed, 11 Dec 2019 04:41:28 +0000 (20:41 -0800)]
Improve tv_nsec doc

* doc/lispref/internals.texi (Module Values):
Document tv_nsec more accurately.

4 years ago; Spelling fixes
Paul Eggert [Wed, 11 Dec 2019 04:04:36 +0000 (20:04 -0800)]
; Spelling fixes

4 years agoJust use size_t for emacs_limb_t
Paul Eggert [Tue, 10 Dec 2019 21:54:20 +0000 (13:54 -0800)]
Just use size_t for emacs_limb_t

* src/emacs-module.h.in: Do not include limits.h; no longer needed.
(emacs_limb_t, EMACS_LIMB_MAX): Now size_t and SIZE_MAX.

4 years agoAdd `union' and `intersection' to rx (bug#37849)
Mattias Engdegård [Fri, 6 Dec 2019 21:23:57 +0000 (22:23 +0100)]
Add `union' and `intersection' to rx (bug#37849)

These character set operations, together with `not' for set
complement, improve the compositionality of rx, and reduce duplication
in complicated cases.  Named character classes are not permitted in
set operations.

* lisp/emacs-lisp/rx.el (rx--translate-any): Split into multiple
functions.
(rx--foldl, rx--parse-any, rx--generate-alt, rx--intervals-to-alt)
(rx--complement-intervals, rx--intersect-intervals)
(rx--union-intervals, rx--charset-intervals, rx--charset-union)
(rx--charset-all, rx--charset-intersection, rx--translate-union)
(rx--translate-intersection): New.
(rx--translate-not, rx--translate-form, rx--builtin-forms, rx):
Add `union' and `intersection'.
* test/lisp/emacs-lisp/rx-tests.el (rx-union ,rx-def-in-union)
(rx-intersection, rx-def-in-intersection): New tests.
* doc/lispref/searching.texi (Rx Constructs):
* etc/NEWS:
Document `union' and `intersection'.

4 years agoFix XBM files on NS (bug#26133)
Alan Third [Fri, 6 Dec 2019 16:49:25 +0000 (16:49 +0000)]
Fix XBM files on NS (bug#26133)

Reinstate some of the functionality removed in commit
67a878f78f879ce534232408c34dd11f42dd802b.

* src/nsimage.m (ns_image_from_XBM): Use new reverseBytes argument.
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Add
ability to reverse the contents of each byte for use with XBMs, while
still working with fringe bitmaps.
* src/nsterm.h
([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Modified
function definition.
* src/nsterm.m (ns_draw_fringe_bitmap): Use new reverseBytes argument.

4 years agoFix dabbrev-completion (bug#17899)
Alan Third [Thu, 5 Dec 2019 13:14:00 +0000 (13:14 +0000)]
Fix dabbrev-completion (bug#17899)

* lisp/dabbrev.el (dabbrev--check-all-buffers): Add new variable.
(dabbrev-completion): Lexical scoping means we can't use let to
override global variables, so use setq.
(dabbrev--reset-global-variables): Reset new variable.
(dabbrev--make-friend-buffer-list): Use new variable.
* test/lisp/dabbrev-tests.el (dabbrev-completion-test):
(dabbrev-completion-test-with-argument): New tests.

4 years agoFix mouse-position on macOS (bug#4892)
Alan Third [Wed, 4 Dec 2019 12:38:57 +0000 (12:38 +0000)]
Fix mouse-position on macOS (bug#4892)

* src/nsterm.m (ns_mouse_position): Implement a search for the frame
under the mouse pointer.

4 years agoSimplify call to add-to-history in read_minibuf
Federico Tedin [Fri, 6 Dec 2019 00:23:25 +0000 (01:23 +0100)]
Simplify call to add-to-history in read_minibuf

* src/minibuf.c (read_minibuf): Avoid restoring the previous buffer,
as this is already done at the end of the function; call
`add-to-history' after that point.

4 years ago; * etc/NEWS: Minor copyedits of a recently changed entry.
Eli Zaretskii [Tue, 10 Dec 2019 15:38:11 +0000 (17:38 +0200)]
; * etc/NEWS: Minor copyedits of a recently changed entry.

4 years agoSpelling fixes
Paul Eggert [Tue, 10 Dec 2019 02:44:35 +0000 (18:44 -0800)]
Spelling fixes

4 years agoPrefer static to extern in ebrowse
Paul Eggert [Tue, 10 Dec 2019 01:30:42 +0000 (17:30 -0800)]
Prefer static to extern in ebrowse

* lib-src/ebrowse.c (info_where, info_cls, info_member)
(info_position, options, yyival, yytext, yytext_end, yyout)
(yyline, filename, is_ident, is_digit, is_white, f_append)
(f_verbose, f_very_verbose, f_structs, f_regexps)
(f_nested_classes, min_regexp, max_regexp, inbuffer, in)
(inbuffer_size, string_start, class_table, member_table)
(namespace_alias_table, global_symbols, current_namespace)
(all_namespaces, namespace_stack, namespace_stack_size)
(namespace_sp, tk, keyword_table, search_path)
(search_path_tail, scope_buffer, scope_buffer_size)
(scope_buffer_len): Now static.
(options): Now const.

4 years ago* lib-src/etags.c (pot_etags_version): Remove; unused.
Paul Eggert [Tue, 10 Dec 2019 01:12:49 +0000 (17:12 -0800)]
* lib-src/etags.c (pot_etags_version): Remove; unused.

4 years ago* lib-src/etags.c (Forth_suffixes): Now static.
Paul Eggert [Tue, 10 Dec 2019 01:09:39 +0000 (17:09 -0800)]
* lib-src/etags.c (Forth_suffixes): Now static.

4 years agoRename faces used in faces-tests.el
Dmitry Gutov [Tue, 10 Dec 2019 00:15:55 +0000 (02:15 +0200)]
Rename faces used in faces-tests.el

* test/data/themes/faces-test-light-theme.el:
* test/data/themes/faces-test-dark-theme.el: Update accordingly.

* test/lisp/faces-tests.el (faces--test-extend-with-themes):
Don't use the diff-mode faces.  Rename the definitions.

4 years agoMake ':extend' inherited from default spec unless overridden
Dmitry Gutov [Tue, 10 Dec 2019 00:11:15 +0000 (02:11 +0200)]
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.

4 years ago* lisp/emacs-lisp/map-ynp.el (read-answer): Use [remap self-insert-command]
Juri Linkov [Mon, 9 Dec 2019 23:53:16 +0000 (01:53 +0200)]
* 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)

4 years agoImprove module bignum doc
Paul Eggert [Mon, 9 Dec 2019 23:39:28 +0000 (15:39 -0800)]
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.

4 years agoproject-find-regexp: Default to symbol at point
Dmitry Gutov [Mon, 9 Dec 2019 14:27:28 +0000 (16:27 +0200)]
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.

4 years agoAdd more tests for face :extend attribute
Eli Zaretskii [Mon, 9 Dec 2019 12:46:43 +0000 (14:46 +0200)]
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)

4 years ago* lisp/emacs-lisp/map-ynp.el (read-answer): Allow more SHORT-ANSWER types.
Juri Linkov [Sun, 8 Dec 2019 23:27:29 +0000 (01:27 +0200)]
* 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)

4 years ago* doc/emacs/mini.texi (Minibuffer Edit): Add minibuffer-depth-indicate-mode.
Juri Linkov [Sun, 8 Dec 2019 22:45:50 +0000 (00:45 +0200)]
* 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)

4 years ago* lisp/simple.el (shell-command-on-region): Use set-buffer-major-mode.
Juri Linkov [Sun, 8 Dec 2019 22:27:34 +0000 (00:27 +0200)]
* 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).

4 years agoMove recenter/scroll keybindings from minibuffer-local-map to read-char map
Juri Linkov [Sun, 8 Dec 2019 22:19:43 +0000 (00:19 +0200)]
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)

4 years ago* lisp/tab-line.el (tab-line-format): Use composite cache key (bug#38522)
Juri Linkov [Sun, 8 Dec 2019 22:08:53 +0000 (00:08 +0200)]
* lisp/tab-line.el (tab-line-format): Use composite cache key (bug#38522)

4 years agoContinued fixes to gnus registry loading
Eric Abrahamsen [Tue, 3 Dec 2019 09:12:44 +0000 (09:12 +0000)]
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.

4 years ago; * etc/NEWS: Fix a recently added entry.
Eli Zaretskii [Sun, 8 Dec 2019 18:11:48 +0000 (20:11 +0200)]
; * etc/NEWS: Fix a recently added entry.

4 years ago* lisp/man.el (Man-width-max): New defcustom (bug#32536, bug#9385)
Juri Linkov [Sat, 7 Dec 2019 22:36:58 +0000 (00:36 +0200)]
* 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.

4 years agoAdd hooks for after tab open, before close, and to prevent closing
Robert Cochran [Fri, 8 Nov 2019 19:29:43 +0000 (11:29 -0800)]
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

4 years agoIgnore comments and strings when matching JSX
Jackson Ray Hamilton [Sat, 7 Dec 2019 21:10:45 +0000 (13:10 -0800)]
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.

4 years ago; * lisp/progmodes/js.el: Fix typo
Jackson Ray Hamilton [Sat, 7 Dec 2019 20:27:51 +0000 (12:27 -0800)]
; * lisp/progmodes/js.el: Fix typo

4 years ago; * lisp/progmodes/js.el: Remove unnecessary concat
Jackson Ray Hamilton [Sat, 7 Dec 2019 19:12:49 +0000 (11:12 -0800)]
; * lisp/progmodes/js.el: Remove unnecessary concat

4 years agoCC Mode: Allow most functions on post-self-insert-hook to be called
Alan Mackenzie [Sat, 7 Dec 2019 18:55:19 +0000 (18:55 +0000)]
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.

4 years agoAdd unload code to tramp-integration.el
Michael Albinus [Sat, 7 Dec 2019 12:40:04 +0000 (13:40 +0100)]
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'.

4 years agoCorrections in semantic.texi
Eli Zaretskii [Sat, 7 Dec 2019 10:11:36 +0000 (12:11 +0200)]
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)

4 years agoFix documentation of '-position' server command
Eli Zaretskii [Sat, 7 Dec 2019 09:50:14 +0000 (11:50 +0200)]
Fix documentation of '-position' server command

* lisp/server.el (server-process-filter): Fix the description
of "-position" command to match the reality.  (Bug#38443)

4 years agoEnsure buffer is alive in python-pdbtrack-unset-tracked-buffer
Andrii Kolomoiets [Thu, 28 Nov 2019 13:54:41 +0000 (15:54 +0200)]
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)

4 years agoFix fallout from fixing bug#37782
Eli Zaretskii [Sat, 7 Dec 2019 09:28:05 +0000 (11:28 +0200)]
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)

4 years agoMinor fix in the ELisp manual
Eli Zaretskii [Sat, 7 Dec 2019 08:31:34 +0000 (10:31 +0200)]
Minor fix in the ELisp manual

* doc/lispref/files.texi (Saving Buffers): Remove the
reference to the obsolete Fast Lock mode.  (Bug#37956)

4 years agoRemove duplicate macros from ses.el
Eli Zaretskii [Sat, 7 Dec 2019 07:27:24 +0000 (09:27 +0200)]
Remove duplicate macros from ses.el

* lisp/ses.el (1value, noreturn): Macros deleted, as we
nowadays have them in subr.el.  (Bug#38514)

4 years agoTest format-time-string padding
Paul Eggert [Fri, 6 Dec 2019 23:36:48 +0000 (15:36 -0800)]
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.

4 years agoUpdate from Gnulib
Paul Eggert [Fri, 6 Dec 2019 23:16:15 +0000 (15:16 -0800)]
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.

4 years agoConfigure info-look.el to recognize Tramp symbols
Michael Albinus [Fri, 6 Dec 2019 18:28:01 +0000 (19:28 +0100)]
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.

4 years agoClarify documentation of functions that use the default face
Eli Zaretskii [Fri, 6 Dec 2019 15:42:19 +0000 (17:42 +0200)]
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.

4 years agoFix set-marker when the position is larger than the largest buffer
Eli Zaretskii [Fri, 6 Dec 2019 13:29:20 +0000 (15:29 +0200)]
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.

4 years agoMerge branch 'completion-first-difference_face'
Thierry Volpiatto [Fri, 6 Dec 2019 07:01:26 +0000 (08:01 +0100)]
Merge branch 'completion-first-difference_face'

4 years agoFix setting completions* faces in
Thierry Volpiatto [Fri, 6 Dec 2019 06:22:57 +0000 (07:22 +0100)]
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`.

4 years ago* test/src/buffer-tests.el: Add loads of overlay tests
Andreas Politz [Fri, 6 Dec 2019 04:10:32 +0000 (23:10 -0500)]
* test/src/buffer-tests.el: Add loads of overlay tests

Taken from the `feature/noverlay` branch.
Suggested by Vladimir Kazanov <vekazanov@gmail.com>.

4 years ago2019-12-05 regexp lint fixes
Paul Eggert [Fri, 6 Dec 2019 03:31:00 +0000 (19:31 -0800)]
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

4 years agoAnother fix for :extend when :inherit is used
Eli Zaretskii [Thu, 5 Dec 2019 17:58:02 +0000 (19:58 +0200)]
Another fix for :extend when :inherit is used

* src/xfaces.c (face_inherited_attr): Support also values of
:inherit which are lists.  (Bug#37774)

4 years agoMinor copyedits of 'jit-lock-antiblink-grace's docs
Eli Zaretskii [Thu, 5 Dec 2019 15:43:06 +0000 (17:43 +0200)]
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.

4 years agoFix recent modifications in emacs-module-tests
Eli Zaretskii [Thu, 5 Dec 2019 14:38:17 +0000 (16:38 +0200)]
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.

4 years agoMake HIST arg of read-from-minibuffer work with buffer-local vars
Federico Tedin [Thu, 5 Dec 2019 09:30:17 +0000 (10:30 +0100)]
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.

4 years agoPacify GCC 9.2.1 with recent module changes
Paul Eggert [Thu, 5 Dec 2019 00:53:54 +0000 (16:53 -0800)]
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.

4 years agoFix regex repetition of repetitions
Paul Eggert [Thu, 5 Dec 2019 00:53:39 +0000 (16:53 -0800)]
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.

4 years agoFix small bugs introduced in commit 096be9c454
Philipp Stephani [Thu, 5 Dec 2019 00:12:39 +0000 (01:12 +0100)]
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

4 years ago* lisp/tab-line.el: Cache the tab-line-format template.
Juri Linkov [Wed, 4 Dec 2019 23:08:24 +0000 (01:08 +0200)]
* 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.

4 years ago* lisp/windmove.el (windmove-display-new-tab): New command.
Juri Linkov [Wed, 4 Dec 2019 23:03:45 +0000 (01:03 +0200)]
* 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'.

4 years ago* lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use.
Juri Linkov [Wed, 4 Dec 2019 23:00:53 +0000 (01:00 +0200)]
* lisp/tab-bar.el (tab-bar-get-buffer-tab): Move code closer to its use.

4 years ago* lisp/tab-bar.el (switch-to-buffer-other-tab): Use display-buffer-in-tab.
Juri Linkov [Wed, 4 Dec 2019 22:56:54 +0000 (00:56 +0200)]
* 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)

4 years agoNew jit-lock-antiblink-grace feature
João Távora [Fri, 12 Jul 2019 18:27:53 +0000 (19:27 +0100)]
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

4 years agoUse new function encode_string_utf_8 for the module API, too
Philipp Stephani [Wed, 4 Dec 2019 21:27:45 +0000 (22:27 +0100)]
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'.

4 years ago* src/emacs-module.c: Add a few more restrictions for emacs-module.h
Philipp Stephani [Wed, 4 Dec 2019 20:37:47 +0000 (21:37 +0100)]
* src/emacs-module.c: Add a few more restrictions for emacs-module.h

4 years agoChange module interface to no longer use GMP objects directly.
Philipp Stephani [Sat, 2 Nov 2019 09:54:57 +0000 (10:54 +0100)]
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.

4 years agoetc/ORG-NEWS: Fix contents
Bastien [Wed, 4 Dec 2019 16:09:02 +0000 (17:09 +0100)]
etc/ORG-NEWS: Fix contents

4 years ago* lisp/doc-view.el (doc-view-doc-type): Doc fix.
Juanma Barranquero [Wed, 4 Dec 2019 14:15:20 +0000 (15:15 +0100)]
* lisp/doc-view.el (doc-view-doc-type): Doc fix.

4 years agoDon't use the return value of 'push'
Mattias Engdegård [Wed, 4 Dec 2019 10:37:26 +0000 (11:37 +0100)]
Don't use the return value of 'push'

Although 'push' returns the modified list, it isn't actually
documented to do so, so don't rely on it.

* lisp/emacs-lisp/rx.el (rx--translate-any): Add progn.

4 years ago; etc/refcards/orgcard.tex: Fix header
Bastien [Wed, 4 Dec 2019 09:42:58 +0000 (10:42 +0100)]
; etc/refcards/orgcard.tex: Fix header

4 years agoSilence warnings in Org 9.3
Juanma Barranquero [Wed, 4 Dec 2019 06:05:14 +0000 (07:05 +0100)]
Silence warnings in Org 9.3

* lisp/org/ob-eshell.el (eshell-send-input): Declare.
(eshell-last-output-start, eshell-last-output-end)
(eshell-last-input-end): Defvar.

* lisp/org/org-keys.el (cl-lib): Require.
(org-CUA-compatible): Move up defvaralias.

4 years ago; Update some manual xrefs for recent org changes
Glenn Morris [Wed, 4 Dec 2019 01:41:23 +0000 (17:41 -0800)]
; Update some manual xrefs for recent org changes

4 years ago; Fix copyright years and license notices for recent org files
Glenn Morris [Wed, 4 Dec 2019 01:19:14 +0000 (17:19 -0800)]
; Fix copyright years and license notices for recent org files

4 years ago* lisp/tab-bar.el (tab-bar-move-tab-to-frame): New command (bug#38354)
Juri Linkov [Tue, 3 Dec 2019 23:33:36 +0000 (01:33 +0200)]
* lisp/tab-bar.el (tab-bar-move-tab-to-frame): New command (bug#38354)

(tab-bar-tabs, tab-bar--tab): Add optional arg FRAME.
(tab-bar-get-buffer-tab): Funcall tab-bar-tabs-function with arg FRAME
instead of using with-selected-frame.

4 years ago* lisp/gnus/message.el (message-sendmail-envelope-from): Fix typo
Stefan Monnier [Tue, 3 Dec 2019 23:10:37 +0000 (18:10 -0500)]
* lisp/gnus/message.el (message-sendmail-envelope-from): Fix typo

Reported by David Edmondson <dme@dme.org>.

4 years agoUpdate Org to 9.3
Bastien [Tue, 3 Dec 2019 22:27:04 +0000 (23:27 +0100)]
Update Org to 9.3

4 years ago(message-sendmail-envelope-from): Obey `mail-envelope-from` even if set later
Stefan Monnier [Tue, 3 Dec 2019 20:38:48 +0000 (15:38 -0500)]
(message-sendmail-envelope-from): Obey `mail-envelope-from` even if set later

* lisp/gnus/message.el (message-sendmail-envelope-from): Change default.
(message--sendmail-envelope-from): New function.
(message-sendmail-envelope-from): Use it.
* lisp/mail/emacsbug.el (report-emacs-bug): Use it.

4 years ago* lisp/minibuffer.el (completion-pcm--optimize-pattern): New function
Stefan Monnier [Tue, 3 Dec 2019 14:45:48 +0000 (09:45 -0500)]
* lisp/minibuffer.el (completion-pcm--optimize-pattern): New function

This fixes bug#38458 where a final `point` in the pattern prevented
the expected normal behavior of point moving after the completion
of the final implicit `any`.

(completion-pcm--find-all-completions)
(completion-substring--all-completions): Use it.
(completion-basic--pattern): Don't both removing "" any more.
(completion-basic-try-completion): Use it as well as
`completion-basic--pattern`.

4 years agoAvoid duplicated character classes in rx
Mattias Engdegård [Tue, 3 Dec 2019 14:17:37 +0000 (15:17 +0100)]
Avoid duplicated character classes in rx

For example, (any digit digit) should produce "[[:digit:]]",
not "[[:digit:][:digit:]]".

* lisp/emacs-lisp/rx.el (rx--translate-any): Deduplicate character classes.
* test/lisp/emacs-lisp/rx-tests.el (rx-any): Add test case.

4 years agoFix incorrect GTK menus on HiDPI monitors with scaling factor > 1
Tobias Bading [Wed, 27 Nov 2019 15:51:26 +0000 (16:51 +0100)]
Fix incorrect GTK menus on HiDPI monitors with scaling factor > 1

This should fix Bug#31223, Bug#28106, Bug#23672 as well as Ubuntu bug
https://bugs.launchpad.net/ubuntu/+source/emacs25/+bug/1695228

Also fixes the formerly unscaled Y value returned by
frame-monitor-workarea (and display-monitor-attributes-list).

For details on why some GTK menus were empty please see thread
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01061.html

* src/gtkutil.c (menubar_map_cb, xg_update_frame_menubar): Scale up
req.height so that the menu bar's height is in device pixels as
expected.
(xg_event_is_for_menubar): Scale down rec.x and rec.y so that
gtk_widget_intersect() works as intended.
* src/xfns.c (Fx_display_monitor_attributes_list): Scale work.x and
work.y up to be in device pixels.

Copyright-paperwork-exempt: yes

4 years agoFix typo in populating otf_capability method for HarfBuzz
YAMAMOTO Mitsuharu [Tue, 3 Dec 2019 07:07:29 +0000 (16:07 +0900)]
Fix typo in populating otf_capability method for HarfBuzz

* src/ftcrfont.c (syms_of_ftcrfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/ftfont.c (syms_of_ftfont_for_pdumper) [HAVE_HARFBUZZ]:
* src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper) [HAVE_HARFBUZZ]:
* src/xftfont.c (syms_of_xftfont_for_pdumper) [HAVE_HARFBUZZ]: Fix typos.

4 years agoNew functions window-state-buffers and tab-bar-get-buffer-tab (bug#38354)
Juri Linkov [Mon, 2 Dec 2019 23:40:12 +0000 (01:40 +0200)]
New functions window-state-buffers and tab-bar-get-buffer-tab (bug#38354)

* lisp/window.el (window-state-buffers): New function.
* lisp/tab-bar.el (tab-bar-get-buffer-tab): New function.

* lisp/emacs-lisp/seq.el (seq-some): Add autoload cookie.

* lisp/desktop.el (desktop-buffers-not-to-save-function): New variable.
(desktop-save-buffer-p): Use it.

4 years agoDon't save/restore font-backend in framesets (bug#38442)
Juanma Barranquero [Mon, 2 Dec 2019 18:19:13 +0000 (19:19 +0100)]
Don't save/restore font-backend in framesets (bug#38442)

* lisp/frameset.el (frameset-persistent-filter-alist):
Add :never filter for `font-backend'.

4 years agoibuf-ext.el: Fix previous change
Juanma Barranquero [Mon, 2 Dec 2019 00:38:31 +0000 (01:38 +0100)]
ibuf-ext.el: Fix previous change

* lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Use
`cl-destructuring-bind' instead of `cl-multiple-value-bind', as we
don't want to assume how multiple-values are implemented, and we
know a list is being returned anyway.  Suggested by Stefan Monnier.

4 years ago* lisp/vc/diff-mode.el (diff-context): Set 'extend t' (bug#37774).
Dmitry Gutov [Sun, 1 Dec 2019 23:33:41 +0000 (01:33 +0200)]
* lisp/vc/diff-mode.el (diff-context): Set 'extend t' (bug#37774).

4 years agoTemporary enable transient-mark-mode for rectangle selection
Mattias Engdegård [Sun, 1 Dec 2019 17:31:34 +0000 (18:31 +0100)]
Temporary enable transient-mark-mode for rectangle selection

* lisp/mouse.el (mouse-drag-region-rectangle):
Enable transient-mark-mode during selection (bug#38431).

4 years ago; Auto-commit of loaddefs files.
Glenn Morris [Sun, 1 Dec 2019 14:27:14 +0000 (06:27 -0800)]
; Auto-commit of loaddefs files.

4 years agoSuppress superfluous messages in tramp-tests
Michael Albinus [Sun, 1 Dec 2019 11:25:15 +0000 (12:25 +0100)]
Suppress superfluous messages in tramp-tests

* test/lisp/net/tramp-tests.el (tramp-test10-write-region)
(tramp-test10-write-region-file-precious-flag)
(tramp-test34-connection-local-variables)
(tramp-test36-vc-registered): Let-bind `inhibit-message'.

4 years agoibuffer-mark-by-content-regexp: don't depend on `cl-some'
Juanma Barranquero [Sun, 1 Dec 2019 09:41:49 +0000 (10:41 +0100)]
ibuffer-mark-by-content-regexp: don't depend on `cl-some'

* lisp/ibuf-ext.el (ibuffer-mark-by-content-regexp): Use `cl-dolist'
instead of `cl-some' to avoid a run-time dependency on cl-lib that
triggers an unreported bug similar to bug#38430.

4 years agoibuffer-do-isearch: don't depend on `cl-values-list' (bug#38430)
Juanma Barranquero [Sun, 1 Dec 2019 09:12:12 +0000 (10:12 +0100)]
ibuffer-do-isearch: don't depend on `cl-values-list' (bug#38430)

* lisp/ibuf-ext.el (ibuffer-generate-filter-groups): Don't call
`cl-values-list'.  Our implementation of that function just
checks that its argument is a list, and then returns it.  In
this specific case, the argument is guaranteed to be a list.

4 years agoImproved mouse rectangle selection robustness (bug#38013)
Mattias Engdegård [Sat, 30 Nov 2019 10:37:04 +0000 (11:37 +0100)]
Improved mouse rectangle selection robustness (bug#38013)

Make the rectangular selection work better with
display-line-numbers-mode and side-by-side windows.
Also make the mouse track the text cursor in a consistent way.

* lisp/mouse.el (mouse--rectangle-track-cursor): Added constant.
(mouse-drag-region-rectangle): Take the line-number width into
account, and use window-relative columns.  Track either the cursor or
rectangle corner with more care.

4 years ago* lisp/tab-line.el (tab-line-auto-hscroll): Don't let-bind buffer-local values
Juri Linkov [Sat, 30 Nov 2019 21:42:37 +0000 (23:42 +0200)]
* lisp/tab-line.el (tab-line-auto-hscroll): Don't let-bind buffer-local values

Use setq to set buffer-local values of truncate-lines and buffer-undo-list.
This will prevent leaking of let-bound values to buffer-local values
of the minibuffer.

4 years ago* lisp/gnus/gnus-win.el (gnus-configure-frame): Check for window-live-p.
Juri Linkov [Sat, 30 Nov 2019 21:36:52 +0000 (23:36 +0200)]
* lisp/gnus/gnus-win.el (gnus-configure-frame): Check for window-live-p.

* doc/misc/gnus.texi (Tabbed Interface): New node.  (bug#37998)

4 years ago* lisp/subr.el: Add discard-input to more functions.
Juri Linkov [Sat, 30 Nov 2019 21:33:41 +0000 (23:33 +0200)]
* lisp/subr.el: Add discard-input to more functions.

* lisp/subr.el (read-char-from-minibuffer-insert-other)
(y-or-n-p-insert-other): Use discard-input in case of user mistake.
(do-after-load-evaluation): Add discard-input before calling 'message',
so in case of the active minibuffer, calling minibuffer-message will allow
sit-for to wait the complete timeout, because discard-input will discard
all initial events that prevent sit-for from waiting during startup.
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg00581.html

4 years agoCC Mode. Fix fontification bug with unterminated quotes on adjacent lines
Alan Mackenzie [Sat, 30 Nov 2019 21:22:55 +0000 (21:22 +0000)]
CC Mode.  Fix fontification bug with unterminated quotes on adjacent lines

In particular, with these unterminated quotes on each of two adjacent lines,
the following text was spuriously fontified with string face.

* lisp/progmodes/cc-defs.el
(c-search-backward-char-property-with-value-on-char): New macro.

* lisp/progmodes/cc-mode.el (c-clear-string-fences): Check whether there is an
unmatched quote at a lower buffer position which should match the current
quote, rather than wrongly assuming the latter is unmatched and marking it
with a punctuation syntax.
(c-font-lock-fontify-region): Ensure all pertinent parts of the buffer have
string fence properties applied before performing any syntactic operations on
it; in particular, this applies to a quote at an earlier buffer position which
"matches" one inside the region about to be fontified.

4 years ago* lisp/image.el: Support image scaling with mouse in other buffer.
Juri Linkov [Sat, 30 Nov 2019 21:21:00 +0000 (23:21 +0200)]
* lisp/image.el: Support image scaling with mouse in other buffer.

* lisp/image.el (image-increase-size, image-decrease-size):
Add optional arg position.
(image-mouse-increase-size, image-mouse-decrease-size):
Use '(point-marker)' for arg position.
(image--get-image): Use get-char-property from position if non-nil,
and its buffer.
(image--get-imagemagick-and-warn, image--change-size):
Add optional arg position.

4 years agoUse run-with-idle-timer instead of debounce for responsive image scaling.
Juri Linkov [Sat, 30 Nov 2019 21:16:03 +0000 (23:16 +0200)]
Use run-with-idle-timer instead of debounce for responsive image scaling.

* lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro addition.
https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01133.html

* lisp/image.el (image-increase-size, image-decrease-size):
Use run-with-idle-timer.
(image--change-size): Rename back from image--change-size-function.

* lisp/image-mode.el (image-mode--setup-mode): Remove hooks
window-size-change-functions and window-selection-change-functions (bug#32672)
(image-fit-to-window): Rename from image--window-change-function.
(image--window-state-change): Rename from image--window-change.
Use run-with-idle-timer.

4 years agoFix compilation warning in vc-hg.el
Juanma Barranquero [Sat, 30 Nov 2019 12:41:30 +0000 (13:41 +0100)]
Fix compilation warning in vc-hg.el

* lisp/vc/vc-hg.el (vc-read-revision): Declare.

4 years agoMinor fixes in last change
Eli Zaretskii [Sat, 30 Nov 2019 12:06:19 +0000 (14:06 +0200)]
Minor fixes in last change

* doc/emacs/maintaining.texi (Switching Branches)
(Pulling / Pushing, Merging): Fix markup of shell commands.

4 years agovc-hg: prompt for branch to merge
Andrii Kolomoiets [Sat, 23 Nov 2019 16:43:47 +0000 (18:43 +0200)]
vc-hg: prompt for branch to merge

* lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge.
(vc-hg-revision-table): Use branches, tags and bookmarks as competion
candidates.

* etc/NEWS: Mention changes of vc-hg.el

* doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update'
command.
(Merging): Mention 'hg merge' command.

This fixes bug#22860

4 years agoFix preserving cell boundaries in table.el after <delete>
Michal Sojka [Sat, 23 Nov 2019 22:32:39 +0000 (23:32 +0100)]
Fix preserving cell boundaries in table.el after <delete>

* lisp/textmodes/table.el (table-command-remap-alist): Add
entry for 'delete-forward-char'.  (Bug#38353)

4 years agoAdd ':extend' attribute to faces and themes
Eli Zaretskii [Sat, 30 Nov 2019 11:27:11 +0000 (13:27 +0200)]
Add ':extend' attribute to faces and themes

* etc/themes/wombat-theme.el:
* etc/themes/wheatgrass-theme.el:
* etc/themes/tsdh-light-theme.el:
* etc/themes/tsdh-dark-theme.el:
* etc/themes/tango-theme.el:
* etc/themes/tango-dark-theme.el:
* etc/themes/misterioso-theme.el:
* etc/themes/manoj-dark-theme.el:
* etc/themes/light-blue-theme.el:
* etc/themes/leuven-theme.el:
* etc/themes/dichromacy-theme.el:
* etc/themes/deeper-blue-theme.el:
* etc/themes/adwaita-theme.el: Add ':extend' attribute to all
faces that are by default defined with it.

* lisp/vc/smerge-mode.el (smerge-upper, smerge-lower)
(smerge-base):
* lisp/vc/log-view.el (log-view-file, log-view-message):
* lisp/vc/ediff-init.el (ediff-current-diff-A)
(ediff-current-diff-B, ediff-current-diff-C)
(ediff-current-diff-Ancestor, ediff-even-diff-A)
(ediff-even-diff-B, ediff-even-diff-C)
(ediff-even-diff-Ancestor, ediff-odd-diff-A)
(ediff-odd-diff-B, ediff-odd-diff-C)
(ediff-odd-diff-Ancestor):
* lisp/vc/diff-mode.el (diff-header, diff-file-header)
(diff-removed, diff-added): Make sure all definitions of faces
have the same value of the ':extend' property, otherwise
customizing background color or underline etc. attributes of
these faces on some displays will produce effects different
from other displays.