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

164924 commits

Author SHA1 Message Date
Gregory Heytings
097c5ee8f5 Two further fixes to last changes
* src/xdisp.c (get_narrowed_width): Use FRAME_WINDOW_P instead of
Fterminal_live_p.  Also take WINDOW_LEFT_FRINGE_WIDTH into
account.
2023-04-01 18:56:01 +02:00
Gregory Heytings
dce08cf05c Improve and fix last changes
* src/xdisp.c (get_narrowed_width): Use WINDOW_RIGHT_FRINGE_WIDTH,
which works both for character-only terminals and for GUI frames
without fringes.
(get_nearby_bol_pos): Instead of searching for BOL in
[pos-500000..pos], gradually extend the region, starting with
[pos-500..pos].  This is much faster in buffers with some long
lines in the middle of lots of short lines.
2023-04-01 16:17:05 +02:00
Gregory Heytings
2093e010dc Fix cursor motion in character-only terminals
* src/xdisp.c (get_narrowed_width): Subtract 1 from
window_body_width to account for the '\' line wrapping indication.
2023-03-29 16:50:21 +02:00
Gregory Heytings
974e4f3333 Make get_medium_narrowing_begv/zv static
* src/xdisp.c (get_medium_narrowing_begv):
(get_medium_narrowing_zv): Make these two functions static, they
are only used in xdisp.c.

* src/dispextern.h: Remove the prototypes.
2023-03-29 01:12:47 +02:00
Gregory Heytings
afc2c6c13c Improve accuracy of cursor motion commands in long lines
* src/xdisp.c (get_nearby_bol_pos): New function.
(get_small_narrowing_begv): Use it.  This makes cursor motion
commands much more accurate in the first 500K characters of each
long line.
2023-03-29 01:12:39 +02:00
Gregory Heytings
7e26a5c774 Remove labeled restrictions before calling Fwiden
* src/editfns.c (labeled_restrictions_remove_in_current_buffer):
New function.

* src/lisp.h: Make it externally visible.

* src/xdisp.c (display_count_lines_logically):
* src/lread.c (readevalloop):
* src/indent.c (line_number_display_width):
* src/fileio.c (write_region):
* src/callproc.c (Fcall_process_region):
* src/buffer.c (Ferase_buffer): Use it.
2023-03-29 01:12:36 +02:00
Gregory Heytings
85ed1c9ca6 Code cleanup for long line optimizations
This commit does not change any code, it merely renames functions
and clarifies the documentation, to make the code hopefully easier
to grasp.

* src/dispextern.h (struct it): Rename the 'narrowed_begv',
'narrowed_zv', 'locked_narrowing_begv', 'locked_narrowing_zv' to
'medium_narrowing_begv', 'medium_narrowing_zv',
'large_narrowing_begv', 'large_narrowing_zv'.  Clarify the
comments.
Update the prototypes of the functions renamed in xdisp.c.

* src/lisp.h: Update the prototypes of the functions renamed in
editfns.c.  Remove the prototype of
'safe_run_hooks_maybe_narrowed', which is used only in keyboard.c.

* src/xdisp.c
(get_small_narrowing_begv): Renamed from
'get_closer_narrowed_begv'.
(get_medium_narrowing_begv): Renamed from 'get_narrowed_begv'.
(get_medium_narrowing_zv): Renamed from 'get_narrowed_zv'.
(get_large_narrowing_begv): Renamed from 'get_locked_narrowing_begv'.
(get_large_narrowing_zv): Renamed from 'get_locked_narrowing_zv'.
(SET_WITH_NARROWED_BEGV): Use the new field names.
(handle_fontified_prop): Use the new function and new field names.
(back_to_previous_line_start): Use the new field name.
(back_to_previous_visible_line_start): Use the new field name.
(reseat): Use the new function and new field names.
(get_visually_first_element): Use the new field name.
(move_it_vertically_backward): Use the new function name.
(redisplay_internal): Use the new function name.
Also add a large comment to explain how Emacs deals with long lines.

* src/keyboard.c:
(safe_run_hooks_maybe_narrowed): Use the new function names from
xdisp.c and editfns.c.  Make the function static, and add a
prototype.

* src/editfns.c:
(labeled_restrictions): Renamed from 'narrowing_locks'.
(labeled_restrictions_add): Renamed from 'narrowing_locks_add'.
(labeled_restrictions_remove): Renamed from
'narrowing_locks_remove'.
(labeled_restrictions_get_bound): Renamed from
'narrowing_lock_get_bound'.
(labeled_restrictions_peek_label): Renamed from
'narrowing_lock_peek_tag'.
(labeled_restrictions_push): Renamed from 'narrowing_lock_push'.
(labeled_restrictions_pop): Renamed from 'narrowing_lock_pop'.
(unwind_reset_outermost_restriction): Renamed from
'unwind_reset_outermost_narrowing'.
(reset_outermost_restrictions): Renamed from
'reset_outermost_narrowings'.
(labeled_restrictions_save): Renamed from 'narrowing_locks_save'.
(labeled_restrictions_restore): Renamed from
'narrowing_locks_restore'.
(unwind_labeled_narrow_to_region): Renamed from
'unwind_narrow_to_region_locked'.
(labeled_narrow_to_region): Renamed from
'narrow_to_region_locked'.
(Finternal__label_restriction): Renamed from
'Finternal__lock_narrowing'.
(Finternal__unlabel_restriction): Renamed from
'Finternal__unlock_narrowing'.
(Fwiden): Use the new function names.
(Fnarrow_to_region): Use the new function names.
(save_restriction_save): Use the new function names.
(syms_of_editfns): Use the new function names.
<outermost-restriction>: Renamed from 'outermost-narrowing'.

* lisp/subr.el (internal--with-restriction): Use the new internal
function name.
(internal--without-restriction): Use the new internal function
name.

* src/composite.c (composition_compute_stop_pos):
(find_automatic_composition): Use the new function name.

* doc/lispref/positions.texi (Narrowing): Add index entry.
2023-03-29 01:12:31 +02:00
Eli Zaretskii
3965c65d5e ; * lisp/subr.el (read-char-choice): Fix last change. 2023-03-28 21:31:51 +03:00
Eli Zaretskii
c1eac5b658 Improve documentation of 'read-choice' and related symbols
* doc/lispref/commands.texi (Reading One Event):
* lisp/subr.el (read-char-choice-use-read-key, read-char-choice)
(read-char-choice-with-read-key, y-or-n-p-use-read-key): Improve
documentation of these functions and variables.
2023-03-28 21:08:12 +03:00
Andrea Corallo
a8c9283e17 Revert "Comp fix calls to redefined primtives with op-bytecode (bug#61917)"
This reverts commit 263d6c3853.

These patch series caused a number of regression and more analysis is
required.
2023-03-28 15:47:54 +02:00
Andrea Corallo
8b66d8abd0 Revert "* lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Improve..."
This reverts commit 4a7a0c9a9f.

These patch series caused a number of regression and more analysis is
required.
2023-03-28 15:47:47 +02:00
Eli Zaretskii
4ec4f614c7 ; Fix incompatibility in 'display-buffer-assq-regexp'
* lisp/window.el (display-buffer-assq-regexp): Make it accept a
buffer's name again, as it did in Emacs 28.  This makes computing
the buffer's name inside the function unnecessary.
(display-buffer): Always pass the buffer's name to
'display-buffer-assq-regexp'.  (Bug#62417)
2023-03-28 14:08:29 +03:00
Michael Albinus
ba3ade58f3 Skip ruby-ts-imenu-index test if needed
* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
Add check for treesitter.
2023-03-28 13:04:09 +02:00
Michael Albinus
9133446db8 Fix Eglot Tramp tests on EMBA
* test/lisp/progmodes/eglot-tests.el (eglot--call-with-tramp-test):
Bind `tramp-allow-unsafe-temporary-files' with t.  (Bug#62289)
2023-03-28 12:43:01 +02:00
Michael Albinus
5b351bc7fa * test/infra/Dockerfile.emba (emacs-gnustep): Instrument "make V=1 ...". 2023-03-28 09:38:07 +02:00
João Távora
edc460e3b6 Fix accidental backward-incompatible change (bug#62417)
This code used to work, but with the change of 59ecf25fc8 it stopped
working:

   (defun foop (buffer-name _alist) (string-match "foop" buffer-name))
   (add-to-list 'display-buffer-alist '(foop . display-buffer-other-frame))

This change makes it work again, restoring compatibility.

* lisp/subr.el (buffer-match-p): Fix and adjust docstring.
* lisp/window.el (display-buffer-alist): Adjust docstring.
(display-buffer-assq-regexp): Make good on promise of display-buffer-alist.
2023-03-27 12:59:14 +01:00
Dmitry Gutov
cbef1422fe ruby-ts-mode: Fix/simplify Imenu index generation
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--full-name): Drop '#'
from the end of resulting string when the node is not a method.
Support 'singleton_method' nodes.
(ruby-ts--imenu-helper): Simplify, to create a "flat" list of
entries, rather than a nested one.  The previous implementation
had problems (like producing a nested structure of full-qualified
names, thus creating a lot of textual repetition), seems easier to
just follow ruby-mode's example here, at least for Emacs 29's
release.

* test/lisp/progmodes/ruby-ts-mode-tests.el (ruby-ts-imenu-index):
New test.
2023-03-27 03:49:13 +03:00
Dmitry Gutov
a0d5fba74a (ruby-ts--align-chain): Use 'equal' to check for an exact match
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain): Use
'equal' to check for an exact match rather than substring.
2023-03-27 02:11:16 +03:00
Mattias Engdegård
f631c90e79 ; Use string-search instead of string-match[-p] in ruby-ts-mode.el
* lisp/progmodes/ruby-ts-mode.el (ruby-ts--align-chain):
Use the much faster string-search when just searching for a substring.

(cherry picked from commit 0724c6dbda)
2023-03-27 02:08:48 +03:00
Jonas Bernoulli
0337131bfa
Update to Transient v0.3.7-218-g3dbb22a 2023-03-26 23:53:03 +02:00
Kyle Meyer
a8c23677d3 Update to Org 9.6.2 2023-03-26 17:01:30 -04:00
Ken Brown
45b16bfb49 Skip failing tests on Cygwin with native compilation (bug#62450)
* test/Makefile.in (TEST_NATIVE_COMP): New variable, used to
determine whether to run tests tagged with :nativecomp.  Set it to
"no" on Cygwin and to $(HAVE_NATIVE_COMP) otherwise.

* test/lisp/emacs-lisp/benchmark-tests.el (benchmark-tests): Skip
on Cygwin with native-compilation.
2023-03-26 10:04:59 -04:00
Michael Albinus
8b4a494d8d Fix GNUSTEP tests on EMBA
* configure.ac (LIBS_GNUSTEP): Adapt CPPFLAGS and CFLAGS.  (Bug#62210)
Proposed by Po Lu <luangruo@yahoo.com>.

* test/infra/gitlab-ci.yml (build-image-gnustep)
(test-gnustep): Uncomment jobs.
2023-03-26 14:20:05 +02:00
Phil Sainty
a952bdd6af Fix primary selection modification during `term-mouse-paste' (bug#58608)
* lisp/term.el (term-mouse-paste): Prevent the primary selection from
being changed in the process of sending it to the inferior process.
2023-03-27 01:17:22 +13:00
Eli Zaretskii
b08bf82860 ; Fix :version of the new defcustom 2023-03-26 14:58:40 +03:00
Eli Zaretskii
d941666d85 ; Fix last change
* lisp/net/eww.el (eww-download-directory): Rename from
'eww-default-download-directory'.  All users changed.  Change
:type to be a directory.  Doc fix.  (Bug#62435)
2023-03-26 14:56:57 +03:00
Xi Lu
e19b7da7b0 Add 'eww-default-download-directory'.
* lisp/net/eww.el (eww-default-download-directory): New defcustom.
(eww--download-directory): Use it.  (Bug#62435)
2023-03-26 14:41:55 +03:00
Matus Goljer
564c26bdbe ; Fix edebug spec for 'gv-define-simple-setter' (bug#62256) 2023-03-26 14:38:53 +03:00
Phil Sainty
9107b2dec1 * doc/lispref/modes.texi: Improve docs for obsolete '%m' construct
Bug #57080.
2023-03-27 00:16:35 +13:00
Phil Sainty
59b7086838 Improve docs for global-mode-string / %M construct
* src/xdisp.c (global-mode-string): Update docstring.
* doc/lispref/modes.texi: Update manual.
2023-03-26 23:44:06 +13:00
Phil Sainty
207176e6b1 * src/buffer.c (mode-line-format): Document %o and %q constructs
Missed from commit b0b02ca7f3.
2023-03-26 23:44:01 +13:00
Phil Sainty
9cfae822fb * src/buffer.c (mode-line-format): Remove docs for obsolete %t construct
This documentation had been previously removed in 1999 in [1]
but was subsequently restored again in a different form in 2006
in [2] as the construct was still supported on some systems.
However it looks like it hasn't done what that documentation
indicated since [3] in 2011, and the final remnant of this
functionality was removed in [4] in 2013; so it seems clear that
it's no longer supported and shouldn't be documented now.

[1] commit 08de620019
[2] commit dafbe726b8
[3] commit 05c6525173
[4] commit 8549f9e89b
2023-03-26 23:43:54 +13:00
kobarity
8f42db010d Improve indenting "case" in Python
* lisp/progmodes/python.el (python-info-dedenter-statement-p): Do not
consider the first "case" in the block as dedenter.
* test/lisp/progmodes/python-tests.el
(python-info-dedenter-opening-block-positions-7)
(python-info-dedenter-statement-p-6): New tests. (Bug#62092)
2023-03-26 05:03:07 +03:00
Ken Brown
c4d490490d ; * test/src/fns-tests.el: Fix last change 2023-03-25 12:54:23 -04:00
Michael Albinus
875e77a66a * test/infra/Dockerfile.emba (emacs-native-comp): Add zlib1g-dev. 2023-03-25 17:33:33 +01:00
Ken Brown
64a2b0d36f Fix failure of fns-tests-collate-strings on Cygwin
* test/src/fns-tests.el (fns-tests-collate-strings): Use
en_XY.UTF-8 instead of en_DE.UTF-8 as an example of an invalid
locale; en_DE.UTF-8 is actually a valid locale on Cygwin.
Note: The test will still fail on Cygwin releases < 3.5
because of a Cygwin bug.  (Bug#62420)
2023-03-25 10:21:20 -04:00
Aaron L. Zeng
90fc6b987a * lisp/savehist.el (savehist-save): Preserve shared structure
This avoids ballooning the size of variables that contain
large text properties, such as the 'yank-handler' installed
by 'evil-yank-rectangle', which contains a list of lines in
the string.
* lisp/savehist.el (savehist-save): Enable 'print-circle'.
(Bug#62364)

Copyright-paperwork-exempt: yes
2023-03-25 15:12:30 +03:00
Michael Albinus
08fbc13375 Adapt Tramp manual
* doc/misc/tramp.texi (Default Method): OpenSSH for MS Windows can
be used.
(Ssh setup): Extend for MS Windows and ssh.
2023-03-24 13:30:25 +01:00
Eli Zaretskii
accb387166 Fix system time sampling on MS-Windows
* src/timefns.c (emacs_localtime_rz) [WINDOWSNT]: Unconditionally
call tzset to make sure we pick up all the changes of time zone,
working around the MS CRT caching.
2023-03-24 14:10:30 +03:00
Yuan Fu
33d436eefa
Fix treesit_ensure_parsed (bug#62333)
* src/treesit.c (treesit_ensure_parsed): Check for need_reparse after
treesit_sync_visible_region runs, because as the comment says,
treesit_sync_visible_region might modify need_reparse.
2023-03-24 00:18:19 -07:00
Stefan Monnier
d93a439846 * lisp/help-fns.el (find-lisp-object-file-name): Fix bug#62376 part2
Nowadays `loaddefs.el` are byte-compiled, so adjust pattern accordingly
2023-03-23 13:43:45 -04:00
Eli Zaretskii
be8147c53f Improve "Bugs" in the Emacs manual
* doc/emacs/trouble.texi (Bugs, Known Problems)
(Understanding Bug Reporting, Checklist, Sending Patches)
(Contributing, Coding Standards): Improve wording, structure,
markup, and indexing.  (Bug#62320)
2023-03-23 15:33:04 +02:00
João Távora
82523dc621 Fix Eglot progress reporting
When the server sends an "end" message, Emacs's progress reporters
should also be updated.

* lisp/progmodes/eglot.el (eglot-handle-notification $/progress): Rework.
2023-03-23 10:26:51 +00:00
João Távora
1bc9dfc5be ; Minor copyedits to Eglot manual
* doc/misc/eglot.texi (Troubleshooting Eglot): Minor fixes.
2023-03-23 10:26:50 +00:00
Eli Zaretskii
bcd02cf512 ; Improve documentation of :predicate in globalized minor modes
* doc/lispref/modes.texi (Defining Minor Modes):
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
Improve documentation of the :predicate keyword in defining
globalized minor modes.
2023-03-23 11:30:19 +02:00
Stefan Monnier
930b9fdd3a Fix :predicate handling in globalized minor modes
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
Fix a thinko.  (Bug#62376)
2023-03-23 11:03:07 +02:00
Eli Zaretskii
19c95b1416 Allow showing prefix commands in Help buffers
* lisp/help.el (describe-bindings-show-prefix-commands): New user
option.
(describe-map): Use it to decide whether to output prefix
commands.  Patch by Bob Rogers <rogers@rgrjr.com>.  (Bug#62279)

* etc/NEWS: Document 'describe-bindings-show-prefix-commands'.
2023-03-23 10:31:56 +02:00
Daniel Martín
f0a2f37dee Fix toolbar item validation in the NS port
* src/nsterm.m ([EmacsView validateToolbarItem:]): Implement this
NSToolbarItemValidation method, which is called by AppKit when it
needs to validate an image item in a toolbar.  This solves, in
particular, the problem with having the "Save" icon on the tool
bar enabled at Emacs startup.  (Bug#62234)
2023-03-23 10:07:51 +02:00
Eli Zaretskii
22de4b1e72 ; Describe problems with 'screen' and COLORTERM variable
* etc/PROBLEMS: Describe the issue with 'screen' and
COLORTERM=truecolor.  (Bug#62237)
2023-03-23 10:03:04 +02:00
Dmitry Gutov
6de00e4df9 ; Fix xref-match's :version since the default value did change 2023-03-23 02:44:54 +02:00