1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-26 08:41:47 -07:00
Commit graph

149293 commits

Author SHA1 Message Date
Juri Linkov
d1b8179f55 Switch to literal mode with message when regexp is too big in char-fold search
* lisp/char-fold.el (char-fold-to-regexp): Don't use regexp-quote
when the length of regexp reaches 5000.  (Bug#40216)

* lisp/isearch.el (isearch-search): On big regexp in char-fold mode
gracefully fall back to literal mode, try to search again and display
momentary-message about switching to literal mode.
(isearch--momentary-message): Add optional arg SECONDS.
2020-03-29 01:41:29 +02:00
Paul Eggert
4f41188a6e Stop using newly-deprecated dosname Gnulib module
Code is supposed to use the filename module now.
* admin/merge-gnulib (GNULIB_MODULES): Replace dosname with filename.
* lib/dosname.h: Remove this forwarding stub.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib-src/emacsclient.c, src/fileio.c:
Include filename.h instead of dosname.h.
2020-03-28 14:08:11 -07:00
Paul Eggert
a775dca449 Update from Gnulib
This incorporates:
2020-03-28 Use module 'filename' instead of module 'dosname'
2020-03-28 dosname: Redirect to 'filename'
* lib/at-func.c, lib/canonicalize-lgpl.c, lib/dosname.h:
Copy from Gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/filename.h: New file, copied from Gnulib.
2020-03-28 14:08:11 -07:00
Stefan Monnier
dceba13ce5 * lisp/jit-lock.el (jit-lock-mode): Pass local to add-hook
The old code used local=nil knowing that add-hook would affect the
local part only anyway.  Remove this hideous assumption.
Remove redundant `:group` args while we're at it.
2020-03-28 10:16:58 -04:00
Stefan Monnier
a7e3516571 * lisp/progmodes/ebrowse.el (ebrowse-tags-loop-call): Rename
Used to be called `ebrowse-tags-loop-form` and passed to `eval`.
Now it's passed to `apply` instead, which is better for karma.
(ebrowse-tags-loop-continue, ebrowse-tags-search)
(ebrowse-tags-query-replace, ebrowse-tags-search-member-use):
Adjust accordingly.
(ebrowse-electric-position-mode-map): Move init into declaration.
(ebrowse-electric-position-mode): Derive from special.
2020-03-28 09:43:14 -04:00
Mattias Engdegård
dfeb87d8e5 Turn compilation-error-case-fold-search into a defvar
See bug#40119, and the discussion at
https://lists.gnu.org/archive/html/emacs-devel/2020-03/msg00653.html

* lisp/progmodes/compile.el (compilation-error-case-fold-search):
Turn into a defvar.
* etc/NEWS: Update.
2020-03-28 14:36:32 +01:00
Michael Albinus
e6c6486ee0 Tramp cache fixes
* lisp/net/tramp-adb.el (tramp-adb-handle-write-region):
* lisp/net/tramp-smb.el (tramp-smb-handle-write-region): Flush the
cache after the file has been written.
2020-03-28 12:59:03 +01:00
Paul Eggert
90b6ba0a16 Use ATTRIBUTE_CONST for some bignum functions
* src/bignum.h (mpz_get_d_rounded):
* src/lisp.h (bignum_to_double, bignum_to_intmax)
(bignum_to_uintmax, bignum_bufsize):
Declare as ATTRIBUTE_CONST.
2020-03-27 14:18:13 -07:00
Stefan Monnier
09d67716e5 * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Declare the type immediately 2020-03-27 17:14:34 -04:00
Stefan Monnier
3fdb53b13a * lisp/gnus/gnus-registry.el: Use lexical-binding
(gnus-registry-install-shortcuts): Use a closure (with dynamic :documentation)
(gnus-registry-user-format-function-M): Use define-obsolete-function-alias.
(gnus-registry-article-marks-to-names): η-reduce.
2020-03-27 16:38:52 -04:00
Mattias Engdegård
c2b8ce4439 Calc: don't treat nil as an integer (bug#40155)
Make Math-num-integerp return false for nil, following Math-integerp
which was changed in the bignum reform.  This fixes a crash in
calc-graph-fast.

Reported by Narendra Joshi.

* lisp/calc/calc-macs.el (Math-num-integerp): Not true for nil.
* test/lisp/calc/calc-tests.el (calc-Math-integerp): New tests.
2020-03-27 18:11:18 +01:00
Stefan Monnier
6075a7c5ae * lisp/textmodes/tex-mode.el: Replace double-definition hack with an advice
(tex-verbatim-environments): Add "Verbatim".
(tex--guess-mode): Rename from tex-guess-mode and return the mode
rather than calling it.
(tex-mode): Replace second definition with an advice.
2020-03-27 12:54:52 -04:00
Stefan Monnier
4710f28010 * lisp/progmodes/ebrowse.el: Prefer hash-tables to obarrays
Remove redundant :group args.
Use `defvar-local` and `setq-local` where possible.

(ebrowse-some): Use seq-some instead.
(ebrowse-every): Use seq-every-p instead.
(ebrowse-position): Use seq-position.
(ebrowse--tree-table): Rename from `ebrowse--tree-obarray`.
Change all users to use a hash-table rather than an obarray.
(ebrowse-for-all-trees): Adjust to the table being a hash-table.
(ebrowse-tree-table-as-alist): Rename from `ebrowse-tree-obarray-as-alist`.
(ebrowse-build-tree-obarray): Rename from `ebrowse-build-tree-obarray`.
(ebrowse-tree-mode): Remove redundant setting of `ebrowse--tree-obarray`.
(ebrowse-set-tree-indentation, ebrowse-view-file-other-frame)
(ebrowse-last-completion-table): Rename from
ebrowse-last-completion-obarray.
(ebrowse-position): Make it a proper struct.
2020-03-27 12:24:19 -04:00
Eli Zaretskii
f98ee21c0e Port the 'module/async-pipe' test to MS-Windows
These changes let the code compile and produce a valid DLL, but the
test hangs.  It looks like the hang is in Fdelete_process, when it
closes one of the descriptors of the pipe process.
In addition, this use of the pipe process cannot currently work
on MS-Windows, since make-pipe-process doesn't set up the reader
thread to read from the Emacs's side of the pipe, so the select
emulation doesn't know there's stuff to read from that pipe.
* test/data/emacs-module/mod-test.c [WINDOWSNT]: Include
windows.h.
(ALIGN_STACK) [!__x86_64__]: Define for 32-bit builds.
(sleep_for_half_second): New function.
(write_to_pipe): Declare return type differently for WINDOWSNT.
Call sleep_for_half_second.
(Fmod_test_async_pipe) [WINDOWSNT]: Use _beginthread as substitute
for pthread_create.
(invalid_finalizer): Replace non_ASCII character in a comment.

* test/src/emacs-module-tests.el (module/async-pipe): Skip on
MS-Windows, as the test fails and then hangs.
2020-03-27 16:19:20 +03:00
Michael Albinus
e4f8098b9e ; * etc/NEWS: Fix typos. 2020-03-27 11:02:32 +01:00
Yuan Fu
ac242ed384 Add manual and NEWS entries for previous gdb-mi changes
* etc/NEWS: Add entries for saving and restoring GDB window
configurations.
* doc/emacs/building.texi (GDB User Interface Layout): Add
documentation for 'gdb-save-window-configuration',
'gdb-load-window-configuration',
'gdb-default-window-configuration-file',
'gdb-window-configuration-directory',
'gdb-restore-window-configuration-after-quit'.  Change 'many-windows
layout' to 'default layout'.
2020-03-27 09:43:49 +01:00
Paul Eggert
de00a933e4 Treat out-of-range positions consistently
If a position argument to get-byte etc. is an out-of-range integer,
treat it the same regardless of whether it is a fixnum or a bignum.
* src/buffer.c (fix_position): New function.
* src/buffer.c (validate_region):
* src/character.c (Fget_byte):
* src/coding.c (Ffind_coding_systems_region_internal)
(Fcheck_coding_systems_region):
* src/composite.c (Ffind_composition_internal):
* src/editfns.c (Fposition_bytes, Fchar_after, Fchar_before)
(Finsert_buffer_substring, Fcompare_buffer_substrings)
(Fnarrow_to_region):
* src/fns.c (Fsecure_hash_algorithms):
* src/font.c (Finternal_char_font, Ffont_at):
* src/fringe.c (Ffringe_bitmaps_at_pos):
* src/search.c (search_command):
* src/textprop.c (get_char_property_and_overlay):
* src/window.c (Fpos_visible_in_window_p):
* src/xdisp.c (Fwindow_text_pixel_size):
Use it instead of CHECK_FIXNUM_COERCE_MARKER, so that
the code is simpler and treats bignums consistently with fixnums.
* src/buffer.h (CHECK_FIXNUM_COERCE_MARKER): Define here
rather than in lisp.h, and reimplement in terms of fix_position
so that it treats bignums consistently with fixnums.
* src/lisp.h (CHECK_FIXNUM_COERCE_MARKER): Move to buffer.h.
* src/textprop.c (validate_interval_range): Signal with original
bounds rather than modified ones.
2020-03-27 01:06:54 -07:00
Juri Linkov
10bedb75c9 Disable enable-local-variables for hunk-only in diff-syntax-fontify-props
* lisp/vc/diff-mode.el (diff-syntax-fontify-props): Let-bind
enable-local-variables to nil when hunk-only is non-nil (bug#39190)
2020-03-27 01:44:17 +02:00
Paul Eggert
57f5a63d85 Refactor and fix typo in CHECK_*_COERCE_MARKER
* src/data.c (check_integer_coerce_marker)
(check_number_coerce_marker): New functions.
Also, fix a typo in the former, by having it use
Qinteger_or_marker_p not Qnumber_or_marker_p.
(arithcompare, floatop_arith_driver, bignum_arith_driver)
(arith_driver, Fplus, Fminus, Ftimes, Fquo, Frem, Fmod)
(minmax_driver, Flogand, Flogior, Flogxor, Fadd1, Fsub1):
Use them in place of the similarly-named macros.
* src/lisp.h (CHECK_NUMBER_COERCE_MARKER)
(CHECK_INTEGER_COERCE_MARKER): Remove; no longer used.
2020-03-26 16:13:28 -07:00
Philipp Stephani
d28b004768 Add a module function to open a file descriptor connected to a pipe.
A common complaint about the module API is that modules can't
communicate asynchronously with Emacs.  While it isn't possible to
call arbitrary Emacs functions asynchronously, writing to a pipe
should always be fine and is a pretty low-hanging fruit.

This patch implements a function that adapts an existing pipe
process.  That way, users can use familiar tools like process filters
or 'accept-process-output'.

* src/module-env-28.h: Add 'open_channel' module function.

* src/emacs-module.c (module_open_channel): Provide definition for
'open_channel'.
(initialize_environment): Use it.

* src/process.c (open_channel_for_module): New helper function.
(syms_of_process): Define necessary symbol.

* test/src/emacs-module-tests.el (module/async-pipe): New unit test.

* test/data/emacs-module/mod-test.c (signal_system_error): New helper
function.
(signal_errno): Use it.
(write_to_pipe): New function running in the background.
(Fmod_test_async_pipe): New test module function.
(emacs_module_init): Export it.

* doc/lispref/internals.texi (Module Misc): Document new module
function.

* doc/lispref/processes.texi (Asynchronous Processes): New anchor
for pipe processes.

* etc/NEWS: Document 'open_channel' function.
2020-03-26 21:47:25 +01:00
Paul Eggert
934b3c9ecc Remove COERCE_MARKER
* src/xdisp.c (COERCE_MARKER): Remove.  All uses replaced by
Fmarker_position; this is simpler as the macro was invoked only on
markers.
2020-03-26 13:06:45 -07:00
Paul Eggert
fe6b8c91cb line-beginning-position args can be bignums
* src/editfns.c (Fline_beginning_position, Fline_end_position):
Do not restrict integer arguments to fixnums.
2020-03-25 18:38:07 -07:00
Paul Eggert
98546d9c82 Fix integer overflow in internal_self_insert
* src/cmds.c (internal_self_insert): Avoid undefined behavior
on integer overflow by using saturated add.
2020-03-25 18:38:07 -07:00
Paul Eggert
e4b6151ff1 Fix integer overflow in forward-point
* lisp/subr.el (forward-point): Rewrite in Lisp and move here ...
* src/cmds.c (Fforward_point): ... from here.  This fixes an
integer overflow bug with (forward-point most-positive-fixnum).
2020-03-25 18:38:07 -07:00
Mattias Engdegård
d08c9472e8 Make compilation-mode regexp matching case-sensitive (bug#40119)
The number of regexps is large, they are written independently of one
another, and they frequently intersect.  Using case-sensitive matching
improves separation and performance, and is probably what everyone
have being assuming was used by compilation-mode all along.

* lisp/progmodes/compile.el (compilation-error-case-fold-search): New.
(compilation-parse-errors): Bind case-fold-search to
compilation-error-case-fold-search during matching.
* etc/NEWS: Announce.
2020-03-25 21:41:49 +01:00
Paul Eggert
1060a6401b Update from gnulib
This incorporates:
2020-03-25 getopt-posix: port __GETOPT_PREFIX to macOS
2020-03-22 acl-permissions: Improve autoconf macro
* lib/getopt-pfx-core.h, m4/acl.m4: Copy from Gnulib.
2020-03-25 13:40:35 -07:00
Paul Eggert
2ea87d6c6f Pacify --enable-gcc-warnings for lock_file
* src/filelock.c (lock_file): Pacify gcc -Wmaybe-uninitialized
after recent change to this function.
2020-03-25 13:40:34 -07:00
Eli Zaretskii
e1f0e08922 * lisp/files.el (directory-files-recursively): Doc fix. (Bug#40202) 2020-03-25 21:54:21 +02:00
Michael Albinus
02b3820315 Document how to disable Tramp file archives
* doc/misc/tramp.texi (Archive file names): Explain how to disable
file archives.
2020-03-25 19:24:06 +01:00
Stefan Monnier
11b37a4167 * lisp/textmodes/conf-mode.el (conf-mode): Fix last change
`delay-mode-hooks` cannot be tested from within `define-derived-mode`
because it's always non-nil in there, so arrange to test it before we
enter the body.
2020-03-25 14:09:48 -04:00
Eli Zaretskii
74489bdcb6 Improve the UI of 'list-timers'
* lisp/emacs-lisp/timer-list.el (list-timers): Display both "Next"
and "Repeat" in units of seconds, for consistency.
(timer-list-mode): Add help-echo to column headers.
2020-03-25 16:18:37 +02:00
Eli Zaretskii
b85d29f4fd Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2020-03-25 15:59:19 +02:00
Juri Linkov
ce141686d2 Rename dired-mark-region choices and ignore empty region.
* lisp/dired.el (dired-mark-region): Rename choices
'exclusive' to 'file', and 'inclusive' to 'line'.
(dired-mark-if, dired-mark): Check for non-empty region explicitly
instead of using use-region-p to ignore non-nil value of
use-empty-active-region.  (Bug#39902)
2020-03-24 23:58:01 +02:00
Robert Pluim
e906cd0d58 Fix gravatar tests
* lisp/image/gravatar.el (gravatar--service-libravatar): Don't error
when failing to parse email address, just return the default URL.

* test/lisp/image/gravatar-tests.el (gravatar-build-url): Adjust
for new default gravatar url.
2020-03-24 22:21:26 +01:00
Robert Pluim
0fe7200418 ; fix previous commit 2020-03-24 21:20:33 +01:00
Eric Abrahamsen
c3447e76ea ; * etc/NEWS: Clarify news entry for message-draft-headers change 2020-03-24 13:08:30 -07:00
Andrea Corallo
bb0496e7e5 * comp.c (emit_mvar_access): Fix speed 1 compilation
At speed 1 propagate does not run and all mvars are allocated in array
0.
2020-03-24 18:47:39 +00:00
Andrea Corallo
4acc4ac667 * comp.el (native-compile-async): Fix excessive messaging 2020-03-24 19:10:20 +00:00
Philip K
421eeff243 Add support for multiple Gravatar services
Now supports Libravatar and Unicornify, next to Gravatar (Bug#39965).

* lisp/image/gravatar.el (gravatar-base-url): Remove constant.
(gravatar-service-alist): List supported services.
(gravatar-service): Add user option to specify service, defaults to
Libravatar.
(gravatar--service-libravatar): New function, libravatar image host
resolver implementation.
(gravatar-build-url): Use alist gravatar-service-alist instead of
gravatar-base-url.
* etc/NEWS: Mention new gravatar service option.
2020-03-24 17:56:01 +01:00
Andrea Corallo
f7e10297d1 Merge remote-tracking branch 'savannah/master' into HEAD 2020-03-24 16:22:06 +00:00
Eli Zaretskii
ed37f038bd Fix sending signals and EOF to the inferior process in gdb-mi.el
* lisp/progmodes/gdb-mi.el (gdb-io-interrupt, gdb-io-quit)
(gdb-io-stop, gdb-io-eof): Send signal/EOF to the inferior
process, not to GDB.  (Bug#40210)
2020-03-24 16:56:10 +02:00
Lars Ingebrigtsen
4860530f3c Don't add repeated xlmns:xlink declarations in svg-create
* lisp/svg.el (svg-create): Fix previous unconditional addition of
the xmlns:xlink declaration -- callers may already add one, and
having it twice is something most svg libraries doesn't like.
2020-03-24 05:31:27 +01:00
Lars Ingebrigtsen
82f8bee734 Don't add repeated xlmns:xlink declarations in svg-create
* lisp/svg.el (svg-create): Fix previous unconditional addition of
the xmlns:xlink declaration -- callers may already add one, and
having it twice is something most svg libraries doesn't like.
2020-03-24 05:30:54 +01:00
Noam Postavsky
78f76fe16e Make cl-concatenate an alias of seq-concatenate
* lisp/emacs-lisp/cl-extra.el (cl-concatenate): Use defalias instead
of apply.  This is simpler and more efficient.
2020-03-23 18:58:21 -04:00
Andrea Corallo
73ced8c23e * comp.el : Fix typo introduced by f8b07ff4f3 2020-03-23 22:27:17 +00:00
Andrea Corallo
8cc8adb04d Merge remote-tracking branch 'savannah/master' into HEAD 2020-03-23 20:38:07 +00:00
Andrea Corallo
f8b07ff4f3 Guard against function redefinition during deferred load 2020-03-23 20:37:59 +00:00
Mattias Engdegård
8db6b432bb Calc: Declare dynamic variable bound in lexbind code (bug#40185)
* lisp/calc/calc.el: Declare math-comp-selected as dynamic.
2020-03-23 21:36:09 +01:00
Glenn Morris
5d5d5d492c Merge from origin/emacs-27
d66331aea4 (origin/emacs-27) Don't build the Gnulib 'utimens' module ...
f2351a689b Add Harfbuzz dependency
8944310d7c Don't signal during backtrace unrewind (Bug#40088)
8709aaddd8 Fix a couple of problems in changelog generating functions
9ab85f087f Fix cl-concatenate (Bug#40180)
561e9fb91b Improve documentation of project.el commands
b28a9a6cc3 Make svg images with links valid
7515252cce * lisp/tab-line.el (tab-line-new-button-show): New defcustom.

# Conflicts:
#	etc/NEWS
#	nt/gnulib-cfg.mk
2020-03-23 09:48:15 -07:00
Glenn Morris
7832e6192d ; Merge from origin/emacs-27
The following commit was skipped:

d801d1d8cc Don't have exif bugging out on short strings
2020-03-23 09:46:39 -07:00