]> git.eshelyaron.com Git - emacs.git/commit
Actually fix the long lines display bug (bug#56393).
authorGregory Heytings <gregory@heytings.org>
Tue, 5 Jul 2022 22:43:56 +0000 (00:43 +0200)
committerGregory Heytings <gregory@heytings.org>
Tue, 5 Jul 2022 22:43:56 +0000 (00:43 +0200)
commit38b3780f6e1bdcbb2a9a7dde76fa55da36e2774f
treed0642db75c1bfbbe11e50d8f48511a9f1ea94f5a
parent0463368a7b70dfc7914e5c5577c9690f8d0c4f7c
Actually fix the long lines display bug (bug#56393).

* lisp/files.el (auto-narrow-mode): New minor mode.
(auto-narrow-pre-command-function, auto-narrow-post-command-function):
New auxiliary functions for the minor mode.
(auto-narrow-display-length, auto-narrow-widen-automatically): New
defcustoms for the minor mode.
(auto-narrow--widen-automatically, auto-narrow--isearch-widen-automatically,
auto-narrow--initialized): New internal variables for the minor mode.

* src/buffer.h (struct buffer): New internal variable for the minor mode.
(bset_auto_narrow__narrowing_state, BUFFER_AUTO_NARROWED_P): New
auxiliary functions.

* src/buffer.c (init_buffer_once, syms_of_buffer): New internal variable
for the minor mode. Update the docstring of mode-line-format.

* src/fileio.c (Finsert_file_contents): Detect whether the minor mode should
be entered when the buffer is displayed.
(syms_of_fileio): New defcustom for the minor mode.

* src/keyboard.c (syms_of_keyboard): New hook functions for the minor mode.
(command_loop_1): Execute the hook functions.

* src/xdisp.c (redisplay_window): Enter the minor mode when the buffer is
displayed.
(decode_mode_spec): Indicate when the minor mode is active
in the modeline.  Indicate the buffer position relative to the whole buffer.
(set_vertical_scroll_bar): Indicate the buffer position relative to the
whole buffer.
(syms_of_xdisp): Two new symbols.

* lisp/isearch.el (isearch-widen-automatically): New defcustom.
(isearch-search): Use the new defcustom.

* lisp/bindings.el (mode-line-modes): Do not propertize the indication
in the modeline when the new minor mode is active.

* etc/NEWS: Announce the new minor mode, and remove the unobsoletion
indication for 'longlines-mode'.

* lisp/longlines.el: Reobsolete longlines-mode.

* doc/emacs/display.texi (Auto-Narrowing): New section, describing the new
minor mode.
(Display): Entry for the new section.

* doc/emacs/trouble.texi (Long Lines): Remove the section.
(Lossage): Remove the entry for the Long Lines section.

* doc/emacs/emacs.texi (Top): Remove the entry for the Long Lines section.
14 files changed:
doc/emacs/display.texi
doc/emacs/emacs.texi
doc/emacs/trouble.texi
etc/NEWS
lisp/bindings.el
lisp/files.el
lisp/isearch.el
lisp/longlines.el [deleted file]
lisp/obsolete/longlines.el [new file with mode: 0644]
src/buffer.c
src/buffer.h
src/fileio.c
src/keyboard.c
src/xdisp.c