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

4572 commits

Author SHA1 Message Date
Po Lu
88b88c08a2 Improve documentation of Lisp-level drag-and-drop features
* doc/lispref/frames.texi (Drag and Drop): Don't conflate X
Windows specific implementation details with general
drag-and-drop functionality, document what `dnd-protocol-alist'
actually means, and improve documentation on DND data types.
2022-06-01 22:01:05 +08:00
Po Lu
f5fadbbfec Clean up text/uri-list mess inside the Dired drag-and-drop code
* doc/lispref/frames.texi (Window System Selections):
* etc/NEWS: Document new changes to `gui-get-selection'.
* lisp/dired.el (dired-mouse-drag): Specify text/uri-list value
explicitly.
* lisp/select.el (gui-set-selection): Update doc string.
(xselect-convert-to-text-uri-list): Update to handle either a
single URL (as a string) or a vector of URLs, instead of file
names.
(xselect-uri-list-available-p): Likewise.
* src/xselect.c (x_get_local_selection): Look in tem's text
properties (if it is a string) for a local value before using
tem itself.
2022-06-01 16:25:53 +08:00
Lars Ingebrigtsen
1d4e903417 Speed up generation of loaddefs files
* doc/lispref/loading.texi (Autoload, Autoload by Prefix): Refer
to loaddefs-generate instead of update-file-autoloads.

* lisp/Makefile.in (LOADDEFS): Remove, because all the loaddefs
files are created in one go now.
(COMPILE_FIRST): Add loaddefs-gen/radix-tree, and drop autoload.
($(lisp)/loaddefs.el): Use loaddefs-gen.
(MH_E_DIR, $(TRAMP_DIR)/tramp-loaddefs.el)
($(MH_E_DIR)/mh-loaddefs.el, $(CAL_DIR)/cal-loaddefs.el)
($(CAL_DIR)/diary-loaddefs.el, $(CAL_DIR)/hol-loaddefs.el): Remove.

* lisp/generic-x.el: Inhibit computing prefixes, because the
namespace here is all wonky.

* lisp/w32-fns.el (w32-batch-update-autoloads): Removed -- unused
function.

* lisp/calendar/holidays.el ("holiday-loaddefs"): Renamed from
hol-loaddefs to have a more regular name.

* lisp/cedet/ede/proj-elisp.el (ede-emacs-cedet-autogen-compiler):
Refer to loaddefs-gen instead of autoload.

* lisp/emacs-lisp/autoload.el (make-autoload, autoload-rubric)
(autoload-insert-section-header): Made into aliases of
loaddefs-gen functions.
(autoload--make-defs-autoload): Ditto.
(autoload-ignored-definitions, autoload-compute-prefixes): Moved
to loaddefs-gen.

* lisp/emacs-lisp/lisp-mode.el (lisp-mode-autoload-regexp): New
constant.
(lisp-fdefs, lisp-mode-variables, lisp-outline-level): Use it to
recognize all ;;;###autoload forms.

* lisp/emacs-lisp/loaddefs-gen.el: New file.

* lisp/emacs-lisp/package.el: Use loaddefs-generate instead of
make-directory-autoloads.

* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-faulty-bzr-autoloads):
Use loaddefs instead of autoloads.
2022-05-31 18:08:33 +02:00
Paul Eggert
4b44eaa1f9 Doc fix for dst flag
* doc/lispref/os.texi (Time Conversion): Note Common Lisp dst differs.
2022-05-29 15:01:55 -07:00
Stefan Kangas
6303cb7e9f Merge from origin/emacs-28
f9ee83bfb9 do_switch_frame: before leaving mini-window, check other (...
908e2e09d0 Fix commands used to produce on-line HTML docs
fff770fb97 Fix a bad cross-reference in elisp.pdf
ebea3415b0 Fix documentation of 'string-pad'
2022-05-29 06:30:21 +02:00
Eli Zaretskii
fff770fb97 Fix a bad cross-reference in elisp.pdf
* doc/lispref/control.texi (pcase Macro): Fix a conditional
cross-reference (bug#55689).
2022-05-28 11:51:15 +03:00
Eli Zaretskii
ebea3415b0 Fix documentation of 'string-pad'
* doc/lispref/strings.texi (Creating Strings): Fix description of
'string-pad'.  (Bug#55688)
2022-05-28 10:55:01 +03:00
Po Lu
79ae40c8e4 Improve documentation on what callers of `x-begin-drag' should do
* doc/lispref/frames.texi (Drag and Drop):
* src/xfns.c (Fx_begin_drag): Improve documentation of how the
chosen action should be performed.
2022-05-28 10:30:45 +08:00
Po Lu
3c5fbfe4ac Improve DND documentation
* doc/lispref/frames.texi (Drag and Drop):
* src/xfns.c (Fx_begin_drag): Document that x-begin-drag may
return immediately if no mouse buttons are held down.
2022-05-28 09:03:29 +08:00
Stefan Monnier
80ba4c1707 eval.c: New functions defvar-1 and defconst-1 (bug#55156)
The bytecode interpreter can't directly call special forms, so
the byte-compiler usually converts special forms into some sequence of
byte codes (basically, providing a duplicate definition of the special
form).  There are still two exceptions to this: `defconst` and `defvar`,
where the compiler instead generates a convoluted chunk of code like:

    (funcall '(lambda (x) (defvar <sym> x <doc>)) <value>)

where the quote makes sure we keep the function non-compiled, so as
to end up running the special form at run time.

Get rid of this workaround by introducing `defvar-1` and `defconst-1`
which provide a *functional* interface to the functionality of the
corresponding special form.

* src/eval.c (defvar, Fdefvar_1, Fdefconst_1): New functions, extracted from
`Fdefvar` and `Fdefconst`.
(Fdefvar, Fdefconst): Use them.
(syms_of_eval): `defsubr` the new functions.

* lisp/emacs-lisp/bytecomp.el (byte-compile-tmp-var): Delete const.
(byte-compile-defvar): Simplify using the new functions.

* doc/lispref/variables.texi (Defining Variables): Adjust the doc of
`defvar` to reflect the actual semantics implemented.
2022-05-26 12:21:32 -04:00
Lars Ingebrigtsen
ce79fe451d Make yank-transform-functions into defvar
* doc/lispref/text.texi (Yanking): Adjust.
* lisp/simple.el (yank-transform-functions): Make into defvar
because it's not that useful as a user option.
2022-05-25 14:23:56 +02:00
Po Lu
92fa0df30b Improve doc for `display-monitors-changed-functions'
* doc/lispref/frames.texi (Multiple Terminals): Describe how to
retrieve the new monitor configuration inside
`display-monitor-attributes-list'.
2022-05-21 16:47:39 +08:00
Po Lu
edf9700c3c Add a hook run upon monitor configuration changes
* doc/lispref/frames.texi (Multiple Terminals): Document new
hook `display-monitors-changed-functions'.
* etc/NEWS: Announce new abnormal hook.

* src/keyboard.c (kbd_buffer_get_event): Handle
MONITORS_CHANGED_EVENT.
(syms_of_keyboard): New hook and defsyms.
* src/termhooks.h (enum event_kind): Add new event
`MONITORS_CHANGED_EVENT'.

* src/xterm.c (handle_one_xevent): Handle RRNotify and
RRScreenChangeNotify events.
(x_term_init): Select for RRScreenChange, RRCrtcChange and
RROutputChange.
* src/xterm.h (struct x_display_info): Improve RandR version
detection.
2022-05-21 11:17:34 +08:00
Eli Zaretskii
e04cc584a8 ; * doc/lispref/text.texi (Yanking): Fix wording. 2022-05-20 15:06:44 +03:00
Eli Zaretskii
eb71446de5 ; Improve documentation of 'display-buffer-avoid-small-windows'
* lisp/window.el (display-buffer-avoid-small-windows)
(get-lru-window):
* etc/NEWS:
* doc/lispref/windows.texi (Choosing Window Options): Improve
documentation of 'display-buffer-avoid-small-windows'.
(Bug#10186)
2022-05-20 14:35:03 +03:00
Lars Ingebrigtsen
3c82e96954 Add new user option display-buffer-avoid-small-windows
* doc/lispref/windows.texi (Choosing Window Options): Document it.
* lisp/window.el (display-buffer-avoid-small-windows): New user
option (bug#10186).
(get-lru-window): Use it.
2022-05-20 12:05:43 +02:00
Lars Ingebrigtsen
9d557d4d4a Rename compare-window-configurations and update doc
* doc/lispref/windows.texi (Window Configurations): Update name.
* lisp/strokes.el (strokes-window-configuration-changed-p):
* lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Update
callers and references.

* lisp/subr.el (compare-window-configurations): Make into obsolete
alias.

* src/window.c (Fwindow_configuration_equal_p): Rename (bug#14964).
2022-05-20 04:23:32 +02:00
Lars Ingebrigtsen
c9a8a47ba4 Add new user option 'yank-transform-functions'
* doc/lispref/text.texi (Yanking): Mention it.
(Yanking): Document it.

* lisp/simple.el (yank-transform-functions): New user option.
(yank): Mention it.

* lisp/subr.el (insert-for-yank): Use it.
2022-05-20 00:15:38 +02:00
Po Lu
4dfaefcffc Fix race conditions processing frame fullscreen state on Haiku
* doc/lispref/frames.texi (Size Parameters): Remove note saying
Haiku doesn't support `fullwidth' and `fullboth'.

* src/haiku_support.cc (subset_windows, class EmacsWindow)
(Unparent, ParentTo): Stop calling old fullscreen functions.
(ClearFullscreen, FullscreenRectForMode, SetFullscreen): New
functions.  Completely rewrite old zoom and fullscreen handling
code.
(Zoom): Send a ZOOM_EVENT and don't actually zoom.
(BWindow_zoom, EmacsWindow_make_fullscreen, EmacsWindow_unzoom):
Delete functions.
(be_set_window_fullscreen_mode): New function.

* src/haiku_support.h (struct haiku_zoom_event): Remove
`zoomed_p' parameter.
(enum haiku_fullscreen_mode): New enum.  Update prototypes.

* src/haikufns.c (Fx_display_pixel_height): Return height
instead of width.

* src/haikuterm.c (haiku_make_fullscreen_consistent)
(haiku_read_socket, haiku_fullscreen): Adjust to always set zoom
and fullscreen in the main thread instead of the UI threads.

* src/haikuterm.h (struct haiku_output): Remove flag `zoomed_p'
and add field `fullscreen_mode'.
2022-05-19 03:43:39 +00:00
Lars Ingebrigtsen
a67d8e0d70 Add a new display-buffer-full-frame display action
* doc/lispref/windows.texi (Buffer Display Action Functions):
Document it.

* lisp/window.el (display-buffer-full-frame): New display action
(bug#34169).
(display-buffer--action-function-custom-type): Add.
(display-buffer): Mention it.
2022-05-18 15:33:57 +02:00
Po Lu
e9ad64ef92 Rewrite Haiku frame geometry code to handle decorator frames
* doc/lispref/frames.texi (Frame Layout): Document changes to
Haiku frame layout.

* src/haiku_support.cc (class EmacsWindow, MoveToIncludingFrame)
(EmacsMoveTo, MakeFullscreen): Move to an offset including the
decorator frames.
(be_get_window_decorator_dimensions):
(be_get_window_decorator_frame): New functions.

* src/haiku_support.h: Update prototypes.

* src/haikufns.c (haiku_update_after_decoration_change): New
function.
(haiku_create_frame, haiku_set_undecorated)
(haiku_set_override_redirect): Call that function.
(frame_geometry): Actually calculate frame geometry based on
decorator and frame sizes.

* src/haikuterm.c (haiku_coords_from_parent): Use frame width
instead.
(haiku_read_socket): Set left and top positions based on
decorator width and height.
* src/haikuterm.h (struct haiku_output): New field `frame_x' and
`frame_y'.
2022-05-17 09:59:20 +00:00
Eli Zaretskii
d4ae418691 ; Improve documentation of the OVERRIDES argument to prin1
* src/print.c (Fprin1, syms_of_print):
* etc/NEWS:
* doc/lispref/streams.texi (Output Functions, Output Overrides):
Fix typos and cross-references, and improve wording.
2022-05-15 19:02:46 +03:00
Lars Ingebrigtsen
aa95b2a47d Add OVERRIDES argument to prin1/prin1-to-string
* doc/lispref/streams.texi (Output Functions): Document it.
(Output Overrides): New node.

* src/process.c (Faccept_process_output):
* src/print.c (debug_print, print_error_message):
* src/pdumper.c (print_paths_to_root_1, decode_emacs_reloc):
* src/lread.c (readevalloop):
* src/eval.c (internal_lisp_condition_case):
* src/editfns.c (styled_format): Adjust prin1/prin1-to-string
callers.

* src/print.c (Fprin1): Take an OVERRIDES parameter.
(print_bind_overrides, print_bind_all_defaults): New functions.
(Fprin1_to_string): Take an OVERRIDES parameter.
2022-05-15 15:29:38 +02:00
Eli Zaretskii
e2e081a476 ; Fix the documentation of compiler-macros and advice
* doc/lispref/functions.texi (Advice and Byte Code): Fix typos
and improve wording and indexing.  (Bug#23264)
2022-05-14 10:34:50 +03:00
Lars Ingebrigtsen
5f7dd959c2 Improve the *Help* output for compiler macros and the like
* doc/lispref/functions.texi (Advice and Byte Code): New node.

* lisp/help-fns.el (help-fns--compiler-macro): Also output data on
other byte compilation things, and link to the manual (bug#23264).
2022-05-14 04:13:56 +02:00
Lars Ingebrigtsen
dea41d4c24 Add new minor mode `header-line-indent-mode'
This is mostly factored out from tabulated-list.el (with bugs fixed).

* doc/lispref/modes.texi (Header Lines): Document it.
* lisp/display-line-numbers.el (header-line-indent): New variable.
(header-line-indent--line-number-width)
(header-line-indent--watch-line-number-width)
(header-line-indent--window-scroll-function): New helper functions.
(header-line-indent-mode): New minor mode.

* lisp/display-line-numbers.el (header-line-indent-width): New
variable.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-line-number-width)
(tabulated-list-watch-line-number-width)
(tabulated-list-window-scroll-function): Make into obsolete aliases.
(tabulated-list-mode): Use 'header-line-indent-mode'.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
Adjust the header line format and computation.

* src/buffer.c (syms_of_buffer): Mention header-line-indent-mode.
2022-05-13 21:24:12 +02:00
Stefan Monnier
9c126cbacb * doc/lispref/help.texi (Keys in Documentation): Typo in last change 2022-05-13 10:38:42 -04:00
Lars Ingebrigtsen
ebfec5c119 Allow substitute-command-keys to include menus in \{...} output
* doc/lispref/help.texi (Keys in Documentation): Document it.
* lisp/help.el (substitute-command-keys): Add an argument to
include menus in the \{...-map} output (bug#24236).
2022-05-13 15:54:16 +02:00
Eli Zaretskii
7d0d87ec51 ; Improve documentation of 'restore-buffer-modified-p'
* src/buffer.c (Frestore_buffer_modified_p):
* doc/lispref/buffers.texi (Buffer Modification): Fix doc wording.
2022-05-12 09:47:25 +03:00
Eli Zaretskii
36e84d2289 ; Improve documentation of 'switch-to-prev-buffer-skip-regexp'
* lisp/window.el (switch-to-prev-buffer-skip-regexp):
* etc/NEWS:
* doc/lispref/windows.texi (Window History): Improve wording of
the documentation of 'switch-to-prev-buffer-skip-regexp'.
(Bug#19070)
2022-05-12 09:29:53 +03:00
Lars Ingebrigtsen
0d0dc1af59 Add new user option switch-to-prev-buffer-skip-regexp
* doc/lispref/windows.texi (Window History): Document it.
* lisp/window.el (switch-to-prev-buffer-skip): Mention it.
(switch-to-prev-buffer-skip-regexp): New user option (bug#19070).
(switch-to-prev-buffer-skip-p): Use it.
2022-05-12 03:35:49 +02:00
Lars Ingebrigtsen
1642a5ffcd Adjust restore-buffer-modified-p autosaved logic
* doc/lispref/buffers.texi (Buffer Modification): Adjust
documentation.

* src/buffer.c (Frestore_buffer_modified_p): Fix up the logic
around `autosaved': It means "the buffer is modified, and also
autosaved".
2022-05-12 02:16:38 +02:00
Paul Eggert
4f27e4ff02 functionp doc improvement
* doc/lispref/eval.texi, doc/lispref/functions.texi, src/eval.c:
Document functionp a bit more carefully.  It can return t
on non-functions.
2022-05-11 10:18:12 -07:00
Tino Calancha
7f2fb99211 char-uppercase-p: New predicate
Return non-nil if its argument is an uppercase character.

Suggested in Bug#54804.

* lisp/subr.el (char-uppercase-p): New defun.
* etc/NEWS (Lisp Changes in Emacs 29.1): Announce it
* doc/lispref/display.texi (Size of Displayed Text): Document it.
* test/lisp/subr-tests.el (test-char-uppercase-p): Add a test.
2022-05-11 18:03:57 +02:00
Lars Ingebrigtsen
3bc34ef635 Clarify precedence rules in Active Display Table manual node
* doc/lispref/display.texi (Active Display Table): Say what "takes
precedence" means here (bug#18546).
2022-05-11 17:51:05 +02:00
Po Lu
5079f42446 Add support for changing pointer types on Haiku
* doc/lispref/frames.texi (Pointer Shape): Document that the
pointer shape can now be changed on some window systems other
than X.

* lisp/term/haiku-win.el (x-pointer-X-cursor, x-pointer-arrow)
(x-pointer-bottom-left-corner, x-pointer-bottom-right-corner)
(x-pointer-bottom-side, x-pointer-clock, x-pointer-cross)
(x-pointer-cross-reverse, x-pointer-crosshair)
(x-pointer-diamond-cross, x-pointer-hand1, x-pointer-hand2)
(x-pointer-left-side, x-pointer-right-side)
(x-pointer-sb-down-arrow, x-pointer-sb-left-arrow)
(x-pointer-sb-right-arrow, x-pointer-sb-up-arrow, x-pointer-target)
(x-pointer-top-left-corner, x-pointer-top-right-corner)
(x-pointer-top-side, x-pointer-watch, x-pointer-invisible): New
pointer constants.

* src/haiku_support.cc (BCursor_from_id): Accept int instead of
enum.
* src/haiku_support.h: Update prototypes.

* src/haikufns.c (haiku_create_frame): Stop manually assigning
cursors and set default value of the mouse color property.
(haiku_free_frame_resources): Free custom cursors too.
(struct user_cursor_info, INIT_USER_CURSOR): New struct.
(haiku_free_custom_cursors): New function.
(haiku_set_mouse_color): New param handler.
(haiku_frame_parm_handlers): Add param handler.
(syms_of_haikufns): New cursor shape variables from X.

* src/haikuterm.h: Update prototypes.
2022-05-11 12:40:53 +00:00
Eli Zaretskii
68dd94448f ; Fix recent documentation changes
* src/fileio.c (Fdo_auto_save):
* src/buffer.c (Fbuffer_modified_p, Frestore_buffer_modified_p):
* doc/lispref/buffers.texi (Buffer Modification): Improve
documentation of 'do-auto-save', 'buffer-modified-p' and
'restore-buffer-modified-p'.
2022-05-10 16:06:10 +03:00
Stefan Kangas
93a74773b6 Merge from origin/emacs-28
7b4bdf7b9b Remove the AUCTeX subsection from MS-Windows FAQ
d2a5631552 Update AUCTeX FAQ entry
177718bc6d Update string-to-number documentation to bignum Emacs
74cc3b525f Fix doc string references to tags-loop-continue
2022-05-10 06:30:34 +02:00
Sean Whitton
054062060e Factor out *scratch* initialization
* lisp/simple.el (get-scratch-buffer-create): New function, factored
out of scratch-buffer, and additionally clearing the modification flag
and calling substitute-command-keys (bug#55257).
(scratch-buffer):
* lisp/server.el (server-execute):
* lisp/startup.el (normal-no-mouse-startup-screen, command-line-1):
* lisp/window.el (last-buffer, window-normalize-buffer-to-switch-to):
* src/buffer.c (Fother_buffer, other_buffer_safely): Use it.
(syms_of_buffer): Add Qget_scratch_buffer_create.
* lisp/startup.el (startup--get-buffer-create-scratch): Delete
now-unused function.
* doc/lispref/os.texi (Summary: Sequence of Actions at Startup):
* NEWS (Incompatible changes in Emacs 29.1): Document the change.
2022-05-09 18:49:13 -07:00
Lars Ingebrigtsen
54ab2b3674 Add NEWS entries for recent autosaved buffer modification status
* doc/lispref/buffers.texi (Buffer Modification): Note 'autosaved'
value.
2022-05-10 03:46:43 +02:00
Lars Ingebrigtsen
0bee4cda88 Reimplement recent with-silent-modifications auto-save changes
* doc/lispref/buffers.texi (Buffer Modification): Document
buffer-modified-p returning `autosaved'.
* lisp/subr.el (with-silent-modifications): Use
restore-buffer-modified-p instead of altering the buffer modiff
(since this has other side effects like not updating after async
`display' changes.

* src/buffer.c (Fbuffer_modified_p): Allow returning whether the
buffer has been autosaved after changes.
(Frestore_buffer_modified_p): Allow adjusting whether the buffer
has been autosaved after changes.

* src/fileio.c (Fdo_auto_save): Refill the doc string.
2022-05-10 03:46:43 +02:00
Eli Zaretskii
04b1f779f2 ; Fix recent changes in regexp documentation
* doc/lispref/searching.texi (Regexp Backslash):
* doc/emacs/search.texi (Regexps): Fix typo and wording.
2022-05-09 16:02:58 +03:00
Lars Ingebrigtsen
60a15fae02 Copy edits for the regexp sections in the manuals
* doc/lispref/searching.texi (Regexp Backslash):
* doc/emacs/search.texi (Regexps, Regexp Backslash): Copy edits
from Jay Bingham (bug#41970).
2022-05-09 13:40:03 +02:00
Lars Ingebrigtsen
177718bc6d Update string-to-number documentation to bignum Emacs
* doc/lispref/strings.texi (String Conversion): string-to-number
no longer converts integers to floating point numbers (bug#55334).
2022-05-09 11:57:46 +02:00
Po Lu
fd8eaa72a6 Allow precision-scrolling nonselected windows when the minibuffer is resized
* doc/lispref/windows.texi (Vertical Scrolling): Document new
`preserve-vscroll-p' parameter of `set-window-vscroll'.
* etc/NEWS: Announce new parameter.

* lisp/pixel-scroll.el (pixel-scroll-precision-scroll-down-page)
(pixel-scroll-precision-scroll-up-page): Use that parameter when
setting the vscroll.

* src/window.c (window_scroll_pixel_based, Fset_window_vscroll):
Adjust for new parameter.
* src/window.h (struct window): New flag `preserve_vscroll_p'.

* src/xdisp.c (redisplay_window): Preserve the vscroll inside
force_start on frozen windows with that flag set.  (bug#55312)
2022-05-09 09:37:58 +08:00
Lars Ingebrigtsen
fc0bd6057c Make 'delete-process' into a command
* doc/lispref/processes.texi (Deleting Processes): Document
missing PROCESS value.
* src/process.c (Fdelete_process): Allow calling interactively
(bug#10107).
2022-05-07 18:21:29 +02:00
Lars Ingebrigtsen
ea58276462 Allow inhibiting linkification in *Help* buffers
* doc/lispref/help.texi (Keys in Documentation): Document it.
lisp/help-mode.el (help-make-xrefs): Implement a new \+ syntax to
inhibit buttonification.
2022-05-07 12:46:55 +02:00
Stefan Kangas
d14d86696e Merge from origin/emacs-28
afdf72eeb2 Fix bug#55274
5bfac7c774 Provide reference for OTF tags in the ELisp manual
2022-05-07 06:30:32 +02:00
Eli Zaretskii
92bbe911e9 ; Improve documentation of 'buffer-local-set-state'
* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state)
(buffer-local-restore-state): Doc fixes.

* doc/lispref/modes.texi (Defining Minor Modes): Fix a typo and
improve wording and indexing.
2022-05-06 15:15:27 +03:00
Lars Ingebrigtsen
b13356487f Add new helper macros for minor modes to restore variables
* doc/lispref/modes.texi (Defining Minor Modes): Document it.

* lisp/emacs-lisp/easy-mmode.el (buffer-local-set-state): New macro.
(buffer-local-set-state--get): Helper function.
(buffer-local-restore-state): New function.

* lisp/textmodes/word-wrap-mode.el (word-wrap-whitespace-mode):
Use it to simplify code.
2022-05-06 13:10:45 +02:00