2007-04-12 02:31:20 +00:00
|
|
|
|
GNU Emacs NEWS -- history of user-visible changes.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
Copyright (C) 2022-2023 Free Software Foundation, Inc.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
See the end of the file for license conditions.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2018-11-13 10:04:20 +00:00
|
|
|
|
Please send Emacs bug reports to 'bug-gnu-emacs@gnu.org'.
|
|
|
|
|
If possible, use 'M-x report-emacs-bug'.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
This file is about changes in Emacs version 30.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2015-10-15 21:59:43 +00:00
|
|
|
|
See file HISTORY for a list of GNU Emacs versions and release dates.
|
2022-11-28 18:03:07 +00:00
|
|
|
|
See files NEWS.29, NEWS.28, ..., NEWS.18, and NEWS.1-17 for changes
|
2017-10-20 23:29:15 +00:00
|
|
|
|
in older Emacs versions.
|
2006-06-04 01:01:51 +00:00
|
|
|
|
|
2016-03-15 00:36:23 +00:00
|
|
|
|
You can narrow news to a specific version by calling 'view-emacs-news'
|
2018-11-13 10:04:20 +00:00
|
|
|
|
with a prefix argument or by typing 'C-u C-h C-n'.
|
2007-06-12 08:16:23 +00:00
|
|
|
|
|
2016-09-11 02:13:36 +00:00
|
|
|
|
Temporary note:
|
2019-09-02 15:28:59 +00:00
|
|
|
|
+++ indicates that all relevant manuals in doc/ have been updated.
|
2016-09-11 02:13:36 +00:00
|
|
|
|
--- means no change in the manuals is needed.
|
2019-09-02 15:28:59 +00:00
|
|
|
|
When you add a new item, use the appropriate mark if you are sure it
|
|
|
|
|
applies, and please also update docstrings as needed.
|
2016-10-01 08:14:05 +00:00
|
|
|
|
|
2015-11-25 14:44:20 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Installation Changes in Emacs 30.1
|
2021-12-31 04:17:45 +00:00
|
|
|
|
|
Update Android port
* .gitignore: Add new files.
* INSTALL.android: Explain how to build Emacs for ancient
versions of Android.
* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
* build-aux/config.guess (timestamp, version):
* build-aux/config.sub (timestamp, version): Autoupdate.
* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
Add new configure tests for Android API version when not
explicitly specified.
* doc/emacs/android.texi (Android): Add reference to ``Other
Input Devices''.
(Android File System): Remove restrictions on directory-files on
the assets directory.
* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
* doc/emacs/input.texi (Other Input Devices): New node.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen input events.
* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
* etc/NEWS: Announce changes.
* java/Makefile.in: Use lib-src/asset-directory-tool to generate
an `directory-tree' file placed in /assets.
* java/debug.sh: Large adjustments to support Android 2.2 and
later.
* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
* java/org/gnu/emacs/EmacsCopyArea.java (perform):
* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
(destroyHandle):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
redundant canvas saves and restores.
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
(handleDirtyBitmap):
* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
(EmacsWindow): Make compatible with Android 2.2 and later.
* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
on Android.:(asset-directory-tool{EXEEXT}): New target.
* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
(main_1, main_2, main): New file.
* lib, m4: Merge from gnulib. This will be reverted before
merging to master.
* lisp/button.el (button-map):
(push-button):
* lisp/frame.el (display-popup-menus-p): Improve touchscreen
support.
* lisp/subr.el (event-start):
(event-end): Handle touchscreen events.
* lisp/touch-screen.el (touch-screen-handle-timeout):
(touch-screen-handle-point-update):
(touch-screen-handle-point-up):
(touch-screen-track-tap):
(touch-screen-track-drag):
(touch-screen-drag-mode-line-1):
(touch-screen-drag-mode-line): New functions.
([mode-line touchscreen-begin]):
([bottom-divider touchscreen-begin]): Bind new events.
* lisp/wid-edit.el (widget-event-point):
(widget-keymap):
(widget-event-start):
(widget-button--check-and-call-button):
(widget-button-click): Improve touchscreen support.
* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
(mark_pinned_symbols): Likewise.
* src/android.c (struct android_emacs_window): New struct.
(window_class): New variable.
(android_run_select_thread): Add workaround for Android platform
bug.
(android_extract_long, android_scan_directory_tree): New
functions.
(android_file_access_p): Use those functions instead.
(android_init_emacs_window): New function.
(android_init_emacs_gc_class): Update signature of `markDirty'.
(android_change_gc, android_set_clip_rectangles): Tell the GC
whether or not clip rects were dirtied.
(android_swap_buffers): Do not look up method every time.
(struct android_dir): Adjust for new directory tree lookup.
(android_opendir, android_readdir, android_closedir): Likewise.
(android_four_corners_bilinear): Fix coding style.
(android_ftruncate): New function.
* src/android.h: Update prototypes. Replace ftruncate with
android_ftruncate when necessary.
* src/androidterm.c (handle_one_android_event): Pacify GCC. Fix
touch screen tool bar bug.
* src/emacs.c (using_utf8): Fix compilation error.
* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
is not built.
* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
uses.
* src/keyboard.c (lispy_function_keys): Fix `back'.
* src/menu.c (x_popup_menu_1): Handle touch screen events.
(Fx_popup_menu): Document changes.
* src/sfnt.c (main): Improve tests.
* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
minor problem.
(init_sfntfont_android): Check for
HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
and `languages'.
(sfnt_parse_style): Append tokens to adstyle.
(sfnt_parse_languages): New function.
(sfnt_enum_font_1): Parse supported languages and adstyle.
(sfntfont_list_1): Handle new fields.
(sfntfont_text_extents): Fix uninitialized variable use.
(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
2023-01-19 14:19:06 +00:00
|
|
|
|
** Emacs has been ported to the Android operating system.
|
|
|
|
|
This requires Emacs to be compiled on another computer. The Android
|
|
|
|
|
NDK, SDK, and a suitable Java compiler must also be installed.
|
|
|
|
|
|
2023-03-02 10:31:35 +00:00
|
|
|
|
See the file 'java/INSTALL' for more details.
|
Update Android port
* .gitignore: Add new files.
* INSTALL.android: Explain how to build Emacs for ancient
versions of Android.
* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
* build-aux/config.guess (timestamp, version):
* build-aux/config.sub (timestamp, version): Autoupdate.
* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
Add new configure tests for Android API version when not
explicitly specified.
* doc/emacs/android.texi (Android): Add reference to ``Other
Input Devices''.
(Android File System): Remove restrictions on directory-files on
the assets directory.
* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
* doc/emacs/input.texi (Other Input Devices): New node.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen input events.
* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
* etc/NEWS: Announce changes.
* java/Makefile.in: Use lib-src/asset-directory-tool to generate
an `directory-tree' file placed in /assets.
* java/debug.sh: Large adjustments to support Android 2.2 and
later.
* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
* java/org/gnu/emacs/EmacsCopyArea.java (perform):
* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
(destroyHandle):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
redundant canvas saves and restores.
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
(handleDirtyBitmap):
* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
(EmacsWindow): Make compatible with Android 2.2 and later.
* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
on Android.:(asset-directory-tool{EXEEXT}): New target.
* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
(main_1, main_2, main): New file.
* lib, m4: Merge from gnulib. This will be reverted before
merging to master.
* lisp/button.el (button-map):
(push-button):
* lisp/frame.el (display-popup-menus-p): Improve touchscreen
support.
* lisp/subr.el (event-start):
(event-end): Handle touchscreen events.
* lisp/touch-screen.el (touch-screen-handle-timeout):
(touch-screen-handle-point-update):
(touch-screen-handle-point-up):
(touch-screen-track-tap):
(touch-screen-track-drag):
(touch-screen-drag-mode-line-1):
(touch-screen-drag-mode-line): New functions.
([mode-line touchscreen-begin]):
([bottom-divider touchscreen-begin]): Bind new events.
* lisp/wid-edit.el (widget-event-point):
(widget-keymap):
(widget-event-start):
(widget-button--check-and-call-button):
(widget-button-click): Improve touchscreen support.
* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
(mark_pinned_symbols): Likewise.
* src/android.c (struct android_emacs_window): New struct.
(window_class): New variable.
(android_run_select_thread): Add workaround for Android platform
bug.
(android_extract_long, android_scan_directory_tree): New
functions.
(android_file_access_p): Use those functions instead.
(android_init_emacs_window): New function.
(android_init_emacs_gc_class): Update signature of `markDirty'.
(android_change_gc, android_set_clip_rectangles): Tell the GC
whether or not clip rects were dirtied.
(android_swap_buffers): Do not look up method every time.
(struct android_dir): Adjust for new directory tree lookup.
(android_opendir, android_readdir, android_closedir): Likewise.
(android_four_corners_bilinear): Fix coding style.
(android_ftruncate): New function.
* src/android.h: Update prototypes. Replace ftruncate with
android_ftruncate when necessary.
* src/androidterm.c (handle_one_android_event): Pacify GCC. Fix
touch screen tool bar bug.
* src/emacs.c (using_utf8): Fix compilation error.
* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
is not built.
* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
uses.
* src/keyboard.c (lispy_function_keys): Fix `back'.
* src/menu.c (x_popup_menu_1): Handle touch screen events.
(Fx_popup_menu): Document changes.
* src/sfnt.c (main): Improve tests.
* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
minor problem.
(init_sfntfont_android): Check for
HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
and `languages'.
(sfnt_parse_style): Append tokens to adstyle.
(sfnt_parse_languages): New function.
(sfnt_enum_font_1): Parse supported languages and adstyle.
(sfntfont_list_1): Handle new fields.
(sfntfont_text_extents): Fix uninitialized variable use.
(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
2023-01-19 14:19:06 +00:00
|
|
|
|
|
2023-07-22 17:08:42 +00:00
|
|
|
|
---
|
|
|
|
|
** Emacs now defaults to ossaudio library for sound on NetBSD and OpenBSD.
|
|
|
|
|
Previously configure used ALSA libraries if installed on the
|
|
|
|
|
system when configured '--with-sound=yes' (which is the default), with
|
|
|
|
|
fallback to libossaudio. The libossaudio library included with the
|
|
|
|
|
base system is now used even if ALSA is found to avoid relying on
|
|
|
|
|
external packages and to resolve potential incompatibilities between
|
|
|
|
|
Linux and BSD versions of ALSA. Use '--with-sound=alsa' to build with
|
|
|
|
|
ALSA on these operating systems instead.
|
|
|
|
|
|
2020-02-25 00:38:33 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Startup Changes in Emacs 30.1
|
2022-02-10 08:34:29 +00:00
|
|
|
|
|
2021-09-06 02:27:12 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Emacs 30.1
|
2022-07-28 13:32:42 +00:00
|
|
|
|
|
2023-05-19 08:46:41 +00:00
|
|
|
|
** Help
|
2023-05-31 06:45:08 +00:00
|
|
|
|
|
|
|
|
|
*** 'describe-function' shows function inferred type when available.
|
2023-05-19 08:46:41 +00:00
|
|
|
|
For native compiled Lisp functions 'describe-function' prints (after
|
|
|
|
|
the signature) the automatically inferred function type as well.
|
|
|
|
|
|
2023-04-07 10:09:59 +00:00
|
|
|
|
---
|
|
|
|
|
** New user option 'describe-bindings-outline-rules'.
|
|
|
|
|
This user option controls outline visibility in the output buffer of
|
|
|
|
|
'describe-bindings' when 'describe-bindings-outline' in non-nil.
|
|
|
|
|
|
Speed up handling X selection requests
* etc/NEWS: Announce speedup.
* src/alloc.c (garbage_collect): Call mark_xselect.
* src/xftfont.c (xftfont_end_for_frame): Fix crash on display IO
error.
* src/xselect.c (struct selection_data, struct transfer): New
structures.
(outstading_transfers): New variable.
(SELECTED_EVENTS, x_selection_request_lisp_error): Stop checking
cs->nofree.
(x_catch_errors_unwind): Delete function.
(c_size_for_format, x_size_for_format, selection_data_for_offset)
(selection_data_size, transfer_selecting_event)
(x_continue_selection_transfer, x_remove_selection_transfers)
(x_selection_transfer_timeout): New functions.
(x_reply_selection_request): When handling selection requests,
never wait for property notifications synchronously. Instead,
write out the selection data as the client reads it from the
event loop.
(x_handle_selection_request, x_convert_selection)
(x_handle_property_notify, x_get_window_property)
(lisp_data_to_selection_data): Don't ever use pointers to Lisp
string data! Instead, just store the string object itself.
(syms_of_xselect): Initialize outstanding transfer list.
(syms_of_xselect_for_pdumper):
* src/xterm.c (x_delete_display): Remove outstanding selection
transfers.
* src/xterm.h: Update prototypes.
2022-12-01 06:33:23 +00:00
|
|
|
|
** X selection requests are now handled much faster and asynchronously.
|
|
|
|
|
This means it should be less necessary to disable the likes of
|
2023-01-05 12:23:04 +00:00
|
|
|
|
'select-active-regions' when Emacs is running over a slow network
|
Speed up handling X selection requests
* etc/NEWS: Announce speedup.
* src/alloc.c (garbage_collect): Call mark_xselect.
* src/xftfont.c (xftfont_end_for_frame): Fix crash on display IO
error.
* src/xselect.c (struct selection_data, struct transfer): New
structures.
(outstading_transfers): New variable.
(SELECTED_EVENTS, x_selection_request_lisp_error): Stop checking
cs->nofree.
(x_catch_errors_unwind): Delete function.
(c_size_for_format, x_size_for_format, selection_data_for_offset)
(selection_data_size, transfer_selecting_event)
(x_continue_selection_transfer, x_remove_selection_transfers)
(x_selection_transfer_timeout): New functions.
(x_reply_selection_request): When handling selection requests,
never wait for property notifications synchronously. Instead,
write out the selection data as the client reads it from the
event loop.
(x_handle_selection_request, x_convert_selection)
(x_handle_property_notify, x_get_window_property)
(lisp_data_to_selection_data): Don't ever use pointers to Lisp
string data! Instead, just store the string object itself.
(syms_of_xselect): Initialize outstanding transfer list.
(syms_of_xselect_for_pdumper):
* src/xterm.c (x_delete_display): Remove outstanding selection
transfers.
* src/xterm.h: Update prototypes.
2022-12-01 06:33:23 +00:00
|
|
|
|
connection.
|
|
|
|
|
|
2022-12-26 14:10:44 +00:00
|
|
|
|
** Emacs now updates invisible frames that are made visible by a compositor.
|
|
|
|
|
If an invisible or an iconified frame is shown to the user by the
|
|
|
|
|
compositing manager, Emacs will now redisplay such a frame even though
|
2023-01-05 12:23:04 +00:00
|
|
|
|
'frame-visible-p' returns nil or 'icon' for it. This can happen, for
|
2022-12-26 14:10:44 +00:00
|
|
|
|
example, as part of preview for iconified frames.
|
2022-12-26 07:57:06 +00:00
|
|
|
|
|
2023-03-13 12:39:29 +00:00
|
|
|
|
---
|
|
|
|
|
** New user option 'menu-bar-close-window'.
|
2023-08-16 18:12:42 +00:00
|
|
|
|
When non-nil, selecting "Close" from the "File" menu or clicking
|
|
|
|
|
"Close" in the tool bar will result in the current window being
|
|
|
|
|
closed, if possible.
|
2023-03-13 12:39:29 +00:00
|
|
|
|
|
2023-01-02 18:00:41 +00:00
|
|
|
|
+++
|
|
|
|
|
** 'write-region-inhibit-fsync' now defaults to t in interactive mode,
|
|
|
|
|
as it has in batch mode since Emacs 24.
|
|
|
|
|
|
2023-01-08 18:24:17 +00:00
|
|
|
|
+++
|
|
|
|
|
** New user option 'remote-file-name-inhibit-delete-by-moving-to-trash'.
|
|
|
|
|
When non-nil, this option suppresses moving remote files to the local
|
|
|
|
|
trash when deleting. Default is nil.
|
|
|
|
|
|
2023-03-23 16:09:52 +00:00
|
|
|
|
---
|
|
|
|
|
** New user option 'remote-file-name-inhibit-auto-save'.
|
|
|
|
|
If this user option is non-nil, 'auto-save-mode' will not auto-save
|
|
|
|
|
remote buffers. The default is nil.
|
|
|
|
|
|
2023-07-03 16:24:11 +00:00
|
|
|
|
+++
|
|
|
|
|
** New user option 'remote-file-name-access-timeout'.
|
2023-07-05 08:05:44 +00:00
|
|
|
|
When a positive number, this option limits the call of 'access-file'
|
2023-07-03 16:24:11 +00:00
|
|
|
|
for remote files to this number of seconds. Default is nil.
|
|
|
|
|
|
2023-01-03 16:09:53 +00:00
|
|
|
|
+++
|
|
|
|
|
** New user option 'yes-or-no-prompt'.
|
|
|
|
|
This allows the user to customize the prompt that is appended by
|
|
|
|
|
'yes-or-no-p' when asking questions. The default value is
|
|
|
|
|
"(yes or no) ".
|
|
|
|
|
|
2023-02-16 09:05:53 +00:00
|
|
|
|
---
|
2023-02-18 07:36:18 +00:00
|
|
|
|
** New face 'display-time-date-and-time'.
|
2023-02-16 09:05:53 +00:00
|
|
|
|
This is used for displaying the time and date components of
|
|
|
|
|
'display-time-mode'.
|
|
|
|
|
|
2023-04-21 20:48:51 +00:00
|
|
|
|
---
|
2023-04-23 11:37:39 +00:00
|
|
|
|
** New icon images for general use.
|
|
|
|
|
Several symbolic icons are added to "etc/images/symbols", including
|
2023-04-21 20:48:51 +00:00
|
|
|
|
plus, minus, check-mark, start, etc.
|
2023-04-23 11:37:39 +00:00
|
|
|
|
|
2023-06-21 02:04:31 +00:00
|
|
|
|
+++
|
|
|
|
|
** Tool bars can now be placed on the bottom on more systems.
|
|
|
|
|
The 'tool-bar-position' frame parameter can be set to 'bottom' on all
|
|
|
|
|
window systems other than Nextstep.
|
|
|
|
|
|
2023-07-04 08:40:20 +00:00
|
|
|
|
+++
|
|
|
|
|
** New global minor mode 'modifier-bar-mode'.
|
|
|
|
|
When this minor mode is enabled, buttons representing modifier keys
|
|
|
|
|
are displayed along the tool bar.
|
|
|
|
|
|
2023-07-26 15:11:49 +00:00
|
|
|
|
---
|
|
|
|
|
** New user option 'uniquify-dirname-transform'.
|
|
|
|
|
This can be used to customize how buffer names are uniquified, by
|
|
|
|
|
making arbitrary transforms on the buffer's directory name (whose
|
|
|
|
|
components are used to uniquify buffer names when they clash). You
|
|
|
|
|
can use this to distinguish between buffers visiting files with the
|
|
|
|
|
same base name that belong to different projects by using the provided
|
|
|
|
|
transform function 'project-uniquify-dirname-transform'.
|
|
|
|
|
|
2023-07-14 02:26:19 +00:00
|
|
|
|
** cl-print
|
2023-07-22 08:16:04 +00:00
|
|
|
|
|
2023-07-14 02:26:19 +00:00
|
|
|
|
*** You can expand the "..." truncation everywhere.
|
2023-07-22 08:16:04 +00:00
|
|
|
|
The code that allowed "..." to be expanded in the "*Backtrace*" buffer
|
|
|
|
|
should now work anywhere the data is generated by 'cl-print'.
|
2023-07-13 23:00:51 +00:00
|
|
|
|
|
2023-08-13 19:23:26 +00:00
|
|
|
|
*** The 'backtrace-ellipsis' button is replaced by 'cl-print-ellipsis'.
|
|
|
|
|
|
2023-07-22 08:16:04 +00:00
|
|
|
|
*** hash-tables' contents can be expanded via the ellipsis.
|
2023-07-14 02:26:19 +00:00
|
|
|
|
|
2023-08-13 19:23:26 +00:00
|
|
|
|
*** Modes can control the expansion via 'cl-print-expand-ellipsis-function'.
|
|
|
|
|
|
2023-07-06 07:33:43 +00:00
|
|
|
|
** Modeline elements can now be right-aligned.
|
2023-04-01 21:27:25 +00:00
|
|
|
|
Anything following the symbol 'mode-line-format-right-align' in
|
2023-07-06 07:33:43 +00:00
|
|
|
|
'mode-line-format' will be right-aligned. Exactly where it is
|
2023-04-01 21:27:25 +00:00
|
|
|
|
right-aligned to is controlled by the new user option
|
|
|
|
|
'mode-line-right-align-edge'.
|
|
|
|
|
|
2021-12-03 19:44:26 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Editing Changes in Emacs 30.1
|
2022-10-19 18:57:03 +00:00
|
|
|
|
|
2023-08-11 07:58:31 +00:00
|
|
|
|
---
|
|
|
|
|
** New global minor mode 'kill-ring-deindent-mode'.
|
|
|
|
|
When enabled, text being saved to the kill ring will be de-indented by
|
2023-08-11 08:08:16 +00:00
|
|
|
|
the column number at its start. For example, saving the entire
|
|
|
|
|
function call within:
|
2023-08-11 07:58:31 +00:00
|
|
|
|
|
|
|
|
|
foo ()
|
|
|
|
|
{
|
|
|
|
|
long_function_with_several_arguments (argument_1_compute (),
|
|
|
|
|
argument_2_compute (),
|
|
|
|
|
argument_3_compute ());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
will save:
|
|
|
|
|
|
|
|
|
|
long_function_with_several_arguments (argument_1_compute (),
|
|
|
|
|
argument_2_compute (),
|
|
|
|
|
argument_3_compute ())
|
|
|
|
|
|
|
|
|
|
to the kill ring, omitting the two columns of extra indentation that
|
|
|
|
|
would otherwise be present in the second and third lines of the
|
|
|
|
|
function call.
|
|
|
|
|
|
2023-01-21 12:04:52 +00:00
|
|
|
|
+++
|
2023-07-20 01:22:41 +00:00
|
|
|
|
** Emacs now has better support for touchscreen devices.
|
|
|
|
|
Many touch screen gestures are now implemented and translated into
|
|
|
|
|
mouse or gesture events, and support for tapping tool bar buttons and
|
|
|
|
|
opening menus has been written. Countless packages, such as Dired and
|
|
|
|
|
Custom have been adjusted to better understand touch screen input.
|
Update Android port
* .gitignore: Add new files.
* INSTALL.android: Explain how to build Emacs for ancient
versions of Android.
* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
* build-aux/config.guess (timestamp, version):
* build-aux/config.sub (timestamp, version): Autoupdate.
* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
Add new configure tests for Android API version when not
explicitly specified.
* doc/emacs/android.texi (Android): Add reference to ``Other
Input Devices''.
(Android File System): Remove restrictions on directory-files on
the assets directory.
* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
* doc/emacs/input.texi (Other Input Devices): New node.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen input events.
* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
* etc/NEWS: Announce changes.
* java/Makefile.in: Use lib-src/asset-directory-tool to generate
an `directory-tree' file placed in /assets.
* java/debug.sh: Large adjustments to support Android 2.2 and
later.
* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
* java/org/gnu/emacs/EmacsCopyArea.java (perform):
* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
(destroyHandle):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
redundant canvas saves and restores.
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
(handleDirtyBitmap):
* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
(EmacsWindow): Make compatible with Android 2.2 and later.
* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
on Android.:(asset-directory-tool{EXEEXT}): New target.
* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
(main_1, main_2, main): New file.
* lib, m4: Merge from gnulib. This will be reverted before
merging to master.
* lisp/button.el (button-map):
(push-button):
* lisp/frame.el (display-popup-menus-p): Improve touchscreen
support.
* lisp/subr.el (event-start):
(event-end): Handle touchscreen events.
* lisp/touch-screen.el (touch-screen-handle-timeout):
(touch-screen-handle-point-update):
(touch-screen-handle-point-up):
(touch-screen-track-tap):
(touch-screen-track-drag):
(touch-screen-drag-mode-line-1):
(touch-screen-drag-mode-line): New functions.
([mode-line touchscreen-begin]):
([bottom-divider touchscreen-begin]): Bind new events.
* lisp/wid-edit.el (widget-event-point):
(widget-keymap):
(widget-event-start):
(widget-button--check-and-call-button):
(widget-button-click): Improve touchscreen support.
* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
(mark_pinned_symbols): Likewise.
* src/android.c (struct android_emacs_window): New struct.
(window_class): New variable.
(android_run_select_thread): Add workaround for Android platform
bug.
(android_extract_long, android_scan_directory_tree): New
functions.
(android_file_access_p): Use those functions instead.
(android_init_emacs_window): New function.
(android_init_emacs_gc_class): Update signature of `markDirty'.
(android_change_gc, android_set_clip_rectangles): Tell the GC
whether or not clip rects were dirtied.
(android_swap_buffers): Do not look up method every time.
(struct android_dir): Adjust for new directory tree lookup.
(android_opendir, android_readdir, android_closedir): Likewise.
(android_four_corners_bilinear): Fix coding style.
(android_ftruncate): New function.
* src/android.h: Update prototypes. Replace ftruncate with
android_ftruncate when necessary.
* src/androidterm.c (handle_one_android_event): Pacify GCC. Fix
touch screen tool bar bug.
* src/emacs.c (using_utf8): Fix compilation error.
* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
is not built.
* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
uses.
* src/keyboard.c (lispy_function_keys): Fix `back'.
* src/menu.c (x_popup_menu_1): Handle touch screen events.
(Fx_popup_menu): Document changes.
* src/sfnt.c (main): Improve tests.
* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
minor problem.
(init_sfntfont_android): Check for
HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
and `languages'.
(sfnt_parse_style): Append tokens to adstyle.
(sfnt_parse_languages): New function.
(sfnt_enum_font_1): Parse supported languages and adstyle.
(sfntfont_list_1): Handle new fields.
(sfntfont_text_extents): Fix uninitialized variable use.
(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
2023-01-19 14:19:06 +00:00
|
|
|
|
|
2023-02-12 11:55:28 +00:00
|
|
|
|
---
|
|
|
|
|
** On X, Emacs now supports input methods which perform "string conversion".
|
|
|
|
|
This means an input method can now ask Emacs to delete text
|
|
|
|
|
surrounding point and replace it with something else, as well as query
|
|
|
|
|
Emacs for surrounding text. If your input method allows you to "undo"
|
|
|
|
|
mistaken compositions, this will now work as well.
|
|
|
|
|
|
2023-01-21 06:35:53 +00:00
|
|
|
|
---
|
2023-01-20 11:27:07 +00:00
|
|
|
|
** New command 'kill-matching-buffers-no-ask'.
|
2023-01-21 06:35:53 +00:00
|
|
|
|
This works like 'kill-matching-buffers', but without asking for
|
2023-01-18 14:15:51 +00:00
|
|
|
|
confirmation.
|
|
|
|
|
|
2023-07-03 11:15:53 +00:00
|
|
|
|
---
|
2023-07-03 16:24:11 +00:00
|
|
|
|
** New user option 'duplicate-region-final-position'.
|
2023-07-03 11:15:53 +00:00
|
|
|
|
It controls the placement of point and the region after duplicating a
|
|
|
|
|
region with 'duplicate-dwim'.
|
|
|
|
|
|
2023-07-22 14:55:07 +00:00
|
|
|
|
+++
|
|
|
|
|
** New user option 'mouse-prefer-closest-glyph'.
|
|
|
|
|
When enabled, clicking or dragging with the mouse will put the point
|
|
|
|
|
or start the drag in front of the buffer position corresponding to the
|
|
|
|
|
glyph with the closest X coordinate to the click or start of the drag.
|
|
|
|
|
In other words, if the mouse pointer is in the right half of a glyph,
|
|
|
|
|
point will be put after the buffer position corresponding to that glyph,
|
|
|
|
|
whereas if the mouse pointer is in the left half of a glyph, point
|
|
|
|
|
will be put in front the buffer position corresponding to that glyph.
|
|
|
|
|
By default this is disabled.
|
|
|
|
|
|
2023-08-05 15:15:47 +00:00
|
|
|
|
** Internationalization
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Users in CJK locales can control width of some non-CJK characters.
|
|
|
|
|
Some characters are considered by Unicode as "ambiguous" with respect
|
|
|
|
|
to their display width: either "full-width" (i.e. taking 2 columns on
|
|
|
|
|
display) or "narrow" (taking 1 column). The actual width depends on
|
|
|
|
|
the fonts used for these characters by Emacs or (for text-mode frames)
|
|
|
|
|
by the terminal emulator. Traditionally, font sets in CJK locales
|
|
|
|
|
were set up so as to display these characters as full-width, and thus
|
|
|
|
|
Emacs modified the char-width table in those locales to follow suit.
|
|
|
|
|
Lately, the tendency is to display these characters as narrow. The
|
|
|
|
|
new user option 'cjk-ambiguous-chars-are-wide' allows users to control
|
|
|
|
|
whether Emacs considers these characters as full-width (the default)
|
|
|
|
|
or narrow (if the variable is customized to the nil value).
|
|
|
|
|
|
|
|
|
|
This setting affects the results of 'string-width' and similar
|
|
|
|
|
functions in CJK locales.
|
|
|
|
|
|
2021-09-06 02:27:12 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Specialized Modes and Packages in Emacs 30.1
|
2023-02-13 17:53:05 +00:00
|
|
|
|
|
2022-11-29 22:40:23 +00:00
|
|
|
|
---
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** Variable order and truncation can now be configured in 'gdb-many-windows'.
|
|
|
|
|
The new user option 'gdb-locals-table-row-config' allows users to
|
2022-11-29 22:40:23 +00:00
|
|
|
|
configure the order and max length of various properties in the local
|
2022-12-10 13:32:41 +00:00
|
|
|
|
variables buffer when using 'gdb-many-windows'.
|
2022-11-29 22:40:23 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
By default, this user option is set to write the properties in the order:
|
2022-12-10 13:32:41 +00:00
|
|
|
|
name, type and value, where the name and type are truncated to 20
|
|
|
|
|
characters, and the value is truncated according to the value of
|
|
|
|
|
'gdb-locals-value-limit'.
|
2022-11-29 22:40:23 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
If you want to get back the old behavior, set the user option to the value
|
2022-12-10 13:32:41 +00:00
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(setopt gdb-locals-table-row-config
|
|
|
|
|
`((type . 0) (name . 0) (value . ,gdb-locals-value-limit)))
|
2021-05-10 11:42:48 +00:00
|
|
|
|
|
2023-04-23 11:37:39 +00:00
|
|
|
|
** Grep
|
2022-12-07 17:44:07 +00:00
|
|
|
|
|
|
|
|
|
*** New user option 'grep-use-headings'.
|
|
|
|
|
When non-nil, the output of Grep is split into sections, one for each
|
|
|
|
|
file, instead of having file names prefixed to each line. It is
|
2023-03-06 12:35:49 +00:00
|
|
|
|
equivalent to the "--heading" option of some tools such as 'git grep'
|
2022-12-07 17:44:07 +00:00
|
|
|
|
and 'rg'. The headings are displayed using the new 'grep-heading'
|
|
|
|
|
face.
|
|
|
|
|
|
2022-12-04 22:56:35 +00:00
|
|
|
|
** VC
|
|
|
|
|
|
|
|
|
|
---
|
2022-12-05 12:21:36 +00:00
|
|
|
|
*** New user option 'vc-git-shortlog-switches'.
|
|
|
|
|
This is a string or a list of strings that specifies the Git log
|
|
|
|
|
switches for shortlogs, such as the one produced by 'C-x v L'.
|
|
|
|
|
'vc-git-log-switches' is no longer used for shortlogs.
|
2022-12-04 22:56:35 +00:00
|
|
|
|
|
2023-01-10 18:55:50 +00:00
|
|
|
|
** Diff Mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** 'diff-ignore-whitespace-hunk' can now be applied to all hunks.
|
2023-03-06 12:35:49 +00:00
|
|
|
|
When called with a non-nil prefix argument,
|
2023-01-10 18:55:50 +00:00
|
|
|
|
'diff-ignore-whitespace-hunk' now iterates over all the hunks in the
|
|
|
|
|
current diff, regenerating them without whitespace changes.
|
|
|
|
|
|
2023-02-15 13:31:43 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New user option 'diff-ignore-whitespace-switches'.
|
|
|
|
|
This allows changing which type of whitespace changes are ignored when
|
|
|
|
|
regenerating hunks with 'diff-ignore-whitespace-hunk'. Defaults to
|
|
|
|
|
the previously hard-coded "-b".
|
|
|
|
|
|
2023-04-07 21:54:06 +00:00
|
|
|
|
** Ediff
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'ediff-floating-control-frame'.
|
|
|
|
|
If non-nil, try making the control frame be floating rather than tiled.
|
|
|
|
|
|
|
|
|
|
Many X tiling window managers make the Ediff control frame a tiled
|
|
|
|
|
window equal in size to the main Emacs frame, which works poorly.
|
|
|
|
|
This option is useful to set if you use such a window manager.
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** Buffer Selection
|
2022-12-07 01:36:41 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'bs-default-action-list'.
|
2022-12-07 12:50:41 +00:00
|
|
|
|
You can now configure how to display the "*buffer-selection*" buffer
|
|
|
|
|
using this new option. (Or set 'display-buffer-alist' directly.)
|
2022-12-07 01:36:41 +00:00
|
|
|
|
|
2022-11-09 06:49:23 +00:00
|
|
|
|
** Eshell
|
|
|
|
|
|
2023-08-13 19:07:39 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New builtin Eshell command 'compile'.
|
|
|
|
|
This command runs another command, sending its output to a compilation
|
2023-08-16 18:12:42 +00:00
|
|
|
|
buffer when the command would output interactively. This can be useful
|
2023-08-13 19:07:39 +00:00
|
|
|
|
when defining aliases so that they produce a compilation buffer when
|
|
|
|
|
appropriate, but still allow piping the output elsewhere if desired.
|
|
|
|
|
For more information, see the "(eshell) Built-ins" node in the Eshell
|
|
|
|
|
manual.
|
|
|
|
|
|
2022-11-09 06:49:23 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New splice operator for Eshell dollar expansions.
|
|
|
|
|
Dollar expansions in Eshell now let you splice the elements of the
|
|
|
|
|
expansion in-place using '$@expr'. This makes it easier to fill lists
|
|
|
|
|
of arguments into a command, such as when defining aliases. For more
|
|
|
|
|
information, see the "(eshell) Dollars Expansion" node in the Eshell
|
|
|
|
|
manual.
|
|
|
|
|
|
2023-01-20 21:54:20 +00:00
|
|
|
|
+++
|
|
|
|
|
*** Eshell now supports negative numbers and ranges for indices.
|
|
|
|
|
Now, you can retrieve the last element of a list with '$my-list[-1]'
|
|
|
|
|
or get a sublist of elements 2 through 4 with '$my-list[2..5]'. For
|
|
|
|
|
more information, see the "(eshell) Dollars Expansion" node in the
|
|
|
|
|
Eshell manual.
|
|
|
|
|
|
2023-07-09 19:06:13 +00:00
|
|
|
|
+++
|
|
|
|
|
*** Eshell commands can now be explicitly-remote (or local).
|
|
|
|
|
By prefixing a command name in Eshell with a remote identifier, like
|
2023-07-18 21:07:03 +00:00
|
|
|
|
"/ssh:user@remote:whoami", you can now run commands on a particular
|
2023-07-09 19:06:13 +00:00
|
|
|
|
host no matter your current directory. Likewise, you can run a
|
|
|
|
|
command on your local system no matter your current directory via
|
|
|
|
|
"/:whoami". For more information, see the "(eshell) Remote Access"
|
|
|
|
|
node in the Eshell manual.
|
|
|
|
|
|
2023-07-08 06:18:33 +00:00
|
|
|
|
+++
|
|
|
|
|
*** Eshell's '$UID' and '$GID' variables are now connection-aware.
|
|
|
|
|
Now, when expanding '$UID' or '$GID' in a remote directory, the value
|
|
|
|
|
is the user or group ID associated with the remote connection.
|
|
|
|
|
|
2023-01-08 21:00:47 +00:00
|
|
|
|
---
|
|
|
|
|
*** Eshell now uses 'field' properties in its output.
|
2023-01-20 11:27:07 +00:00
|
|
|
|
In particular, this means that pressing the '<home>' key moves the
|
|
|
|
|
point to the beginning of your input, not the beginning of the whole
|
|
|
|
|
line. If you want to go back to the old behavior, add something like
|
|
|
|
|
this to your configuration:
|
2023-01-08 21:00:47 +00:00
|
|
|
|
|
|
|
|
|
(keymap-set eshell-mode-map "<home>" #'eshell-bol-ignoring-prompt)
|
|
|
|
|
|
2023-02-13 07:25:59 +00:00
|
|
|
|
---
|
|
|
|
|
*** You can now properly unload Eshell.
|
2023-03-06 12:35:49 +00:00
|
|
|
|
Calling '(unload-feature 'eshell)' no longer signals an error, and now
|
2023-02-13 07:25:59 +00:00
|
|
|
|
correctly unloads Eshell and all of its modules.
|
|
|
|
|
|
2022-12-09 05:54:58 +00:00
|
|
|
|
+++
|
|
|
|
|
*** 'eshell-read-aliases-list' is now an interactive command.
|
2023-01-05 12:23:04 +00:00
|
|
|
|
After manually editing 'eshell-aliases-file', you can use this command
|
|
|
|
|
to load the edited aliases.
|
2022-12-09 05:54:58 +00:00
|
|
|
|
|
2023-03-24 20:41:41 +00:00
|
|
|
|
+++
|
|
|
|
|
*** 'rgrep' is now a builtin command.
|
2023-04-14 12:36:29 +00:00
|
|
|
|
Running 'rgrep' in Eshell now uses the Emacs grep facility instead of
|
2023-03-24 20:41:41 +00:00
|
|
|
|
calling external rgrep.
|
|
|
|
|
|
2023-08-20 07:41:07 +00:00
|
|
|
|
** Pcomplete
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'pcomplete-remote-file-ignore'.
|
|
|
|
|
When this option is non-nil, remote file names are not completed by
|
|
|
|
|
Pcomplete. Packages, like 'shell-mode', could set this in order to
|
|
|
|
|
suppress remote file name completion at all.
|
|
|
|
|
|
2023-03-31 07:57:32 +00:00
|
|
|
|
** Shell Mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New user option 'shell-get-old-input-include-continuation-lines'.
|
2023-04-14 12:36:29 +00:00
|
|
|
|
When this user option is non-nil, 'shell-get-old-input' ('C-RET')
|
2023-03-31 07:57:32 +00:00
|
|
|
|
includes multiple shell "\" continuation lines from command output.
|
|
|
|
|
Default is nil.
|
|
|
|
|
|
2022-12-09 19:12:51 +00:00
|
|
|
|
** Prog Mode
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2022-12-09 19:12:51 +00:00
|
|
|
|
+++
|
2023-01-05 12:23:04 +00:00
|
|
|
|
*** New command 'prog-fill-reindent-defun'.
|
2022-12-09 19:12:51 +00:00
|
|
|
|
This command either fills a single paragraph in a defun, such as a
|
2023-01-05 12:23:04 +00:00
|
|
|
|
docstring, or a comment, or (re)indents the surrounding defun if
|
2022-12-09 19:12:51 +00:00
|
|
|
|
point is not in a comment or a string. It is by default bound to
|
|
|
|
|
'M-q' in 'prog-mode' and all its descendants.
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2023-07-22 08:16:04 +00:00
|
|
|
|
** Which Function Mode
|
|
|
|
|
|
2023-07-09 16:16:28 +00:00
|
|
|
|
+++
|
|
|
|
|
*** Which Function Mode can now display function names on the header line.
|
|
|
|
|
The new user option 'which-func-display' allows choosing where the
|
|
|
|
|
function name is displayed. The default is 'mode' to display in the
|
|
|
|
|
mode line. 'header' will display in the header line;
|
|
|
|
|
'mode-and-header' displays in both the header line and mode line.
|
|
|
|
|
|
2023-01-07 11:14:26 +00:00
|
|
|
|
** Tramp
|
|
|
|
|
|
|
|
|
|
+++
|
2023-04-23 11:37:39 +00:00
|
|
|
|
*** New connection methods "toolbox" and "flatpak".
|
|
|
|
|
They allow accessing system containers provided by Toolbox or
|
|
|
|
|
sandboxes provided by Flatpak.
|
2023-01-07 11:14:26 +00:00
|
|
|
|
|
2023-06-23 19:26:14 +00:00
|
|
|
|
+++
|
|
|
|
|
*** Connection method "kubernetes" supports now optional container name.
|
|
|
|
|
The host name for Kubernetes connections can be of kind [CONTAINER.]POD,
|
|
|
|
|
in order to specify a dedicated container. If there is just the pod
|
|
|
|
|
name, the first container in the pod is taken. The new user options
|
|
|
|
|
'tramp-kubernetes-context' and 'tramp-kubernetes-namespace' allow to
|
|
|
|
|
access pods with different context or namespace but the default one.
|
|
|
|
|
|
2023-03-06 12:35:49 +00:00
|
|
|
|
+++
|
2023-04-23 11:37:39 +00:00
|
|
|
|
*** Rename 'tramp-use-ssh-controlmaster-options' to 'tramp-use-connection-share'.
|
|
|
|
|
The old name still exists as obsolete variable alias. This user
|
|
|
|
|
option controls now connection sharing for both ssh-based and
|
|
|
|
|
plink-based methods. It allows the values t, nil, and 'suppress'.
|
|
|
|
|
The latter suppresses also "ControlMaster" settings in the user's
|
|
|
|
|
"~/.ssh/config" file, or connection share configuration in PuTTY
|
|
|
|
|
sessions, respectively.
|
2023-03-06 12:35:49 +00:00
|
|
|
|
|
2023-04-26 16:06:39 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New command 'tramp-cleanup-some-buffers'.
|
|
|
|
|
It allows to kill only selected remote buffers, controlled by user
|
|
|
|
|
option 'tramp-cleanup-some-buffers-hook'.
|
|
|
|
|
|
2023-07-22 08:16:04 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New command 'inhibit-remote-files'.
|
|
|
|
|
This command disables the handling of file names with the special
|
|
|
|
|
remote file name syntax. It should be applied only when remote files
|
|
|
|
|
won't be used in this Emacs instance. It provides a slightly improved
|
|
|
|
|
performance of file name handling in Emacs.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New macro 'without-remote-files'.
|
|
|
|
|
This macro could wrap code which handles local files only. Due to the
|
|
|
|
|
temporary deactivation of remote files, it results in a slightly
|
|
|
|
|
improved performance of file name handling in Emacs.
|
|
|
|
|
|
2023-01-14 14:12:14 +00:00
|
|
|
|
** EWW
|
2022-05-16 09:28:36 +00:00
|
|
|
|
|
|
|
|
|
+++
|
2023-01-14 14:12:14 +00:00
|
|
|
|
*** 'eww-open-file' can now display the file in a new buffer.
|
2023-01-20 11:27:07 +00:00
|
|
|
|
By default, the command reuses the "*eww*" buffer, but if called with
|
|
|
|
|
the new argument NEW-BUFFER non-nil, it will use a new buffer instead.
|
2023-01-14 14:12:14 +00:00
|
|
|
|
Interactively, invoke 'eww-open-file' with a prefix argument to
|
|
|
|
|
activate this behavior.
|
2021-11-11 06:14:57 +00:00
|
|
|
|
|
2023-04-25 14:31:05 +00:00
|
|
|
|
---
|
2023-04-12 17:56:01 +00:00
|
|
|
|
*** 'eww' URL or keyword prompt now has tab completion.
|
|
|
|
|
The interactive minibuffer prompt when invoking 'eww' now has support
|
|
|
|
|
for tab completion.
|
|
|
|
|
|
2023-04-13 15:59:54 +00:00
|
|
|
|
+++
|
|
|
|
|
*** 'eww' URL and keyword prompt now completes suggested URIs and bookmarks.
|
|
|
|
|
The interactive minibuffer prompt when invoking 'eww' now provides
|
2023-04-26 16:06:39 +00:00
|
|
|
|
completions from 'eww-suggest-uris'. 'eww-suggest-uris' now includes
|
2023-04-13 15:59:54 +00:00
|
|
|
|
bookmark URIs.
|
|
|
|
|
|
2023-06-17 10:48:51 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New command 'eww-copy-alternate-url'.
|
2023-06-24 11:58:44 +00:00
|
|
|
|
It copies an alternate link on the page currently visited in EWW into
|
2023-06-17 10:48:51 +00:00
|
|
|
|
the kill ring. Alternate links are optional metadata that HTML pages
|
|
|
|
|
use for linking to their alternative representations, such as
|
|
|
|
|
translated versions or associated RSS feeds.
|
|
|
|
|
|
2023-08-16 01:00:07 +00:00
|
|
|
|
+++
|
2023-08-20 08:48:03 +00:00
|
|
|
|
*** 'eww-open-in-new-buffer' supports the prefix argument.
|
|
|
|
|
When invoked with the prefix argument ('C-u'),
|
|
|
|
|
'eww-open-in-new-buffer' will not make the new buffer the current one.
|
|
|
|
|
This is useful for continuing reading the URL in the current buffer
|
|
|
|
|
when the new URL is fetched.
|
2023-08-16 01:00:07 +00:00
|
|
|
|
|
2023-01-14 06:28:06 +00:00
|
|
|
|
** go-ts-mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New command 'go-ts-mode-docstring'.
|
|
|
|
|
This command adds a docstring comment to the current defun. If a
|
|
|
|
|
comment already exists, point is only moved to the comment. It is
|
|
|
|
|
bound to 'C-c C-d' in 'go-ts-mode'.
|
|
|
|
|
|
2022-03-10 08:36:04 +00:00
|
|
|
|
** Man-mode
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New user option 'Man-prefer-synchronous-call'.
|
|
|
|
|
When this is non-nil, call the 'man' program synchronously rather than
|
2023-03-02 11:28:28 +00:00
|
|
|
|
asynchronously (which is the default behavior).
|
2022-03-10 08:36:04 +00:00
|
|
|
|
|
2023-03-02 18:16:19 +00:00
|
|
|
|
** DocView
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New face 'doc-view-svg-face'.
|
|
|
|
|
This replaces 'doc-view-svg-foreground' and 'doc-view-svg-background'.
|
2023-06-13 13:42:38 +00:00
|
|
|
|
If you don't like the colors produced by the default definition of
|
|
|
|
|
this new face when DocView displays documents, customize this face to
|
|
|
|
|
restore the colors you were used to, or to get colors more to your
|
|
|
|
|
liking.
|
2023-03-02 18:16:19 +00:00
|
|
|
|
|
2023-07-13 11:19:57 +00:00
|
|
|
|
---
|
|
|
|
|
*** DocView buffers now display a new tool bar.
|
|
|
|
|
This tool bar contains options for searching and navigating within the
|
|
|
|
|
document, replacing the incompatible items for incremental search and
|
|
|
|
|
editing within the default tool bar displayed in the past.
|
|
|
|
|
|
2023-02-28 22:15:40 +00:00
|
|
|
|
** Shortdoc
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New function 'shortdoc-function-examples'.
|
2023-03-12 08:25:10 +00:00
|
|
|
|
This function returns examples of use of a given Emacs Lisp function
|
|
|
|
|
from the available shortdoc information.
|
2023-02-28 22:15:40 +00:00
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New function 'shortdoc-help-fns-examples-function'.
|
2023-03-12 08:25:10 +00:00
|
|
|
|
This function inserts into the current buffer examples of use of a
|
|
|
|
|
given Emacs Lisp function, which it gleans from the shortdoc
|
|
|
|
|
information. If you want 'describe-function' ('C-h f') to insert
|
2023-03-14 10:39:32 +00:00
|
|
|
|
examples of using the function into regular "*Help*" buffers, add the
|
|
|
|
|
following to your init file:
|
2023-02-28 22:15:40 +00:00
|
|
|
|
|
|
|
|
|
(add-hook 'help-fns-describe-function-functions
|
|
|
|
|
#'shortdoc-help-fns-examples-function)
|
|
|
|
|
|
2023-03-14 10:50:31 +00:00
|
|
|
|
** Package
|
2023-04-14 12:36:29 +00:00
|
|
|
|
|
2023-03-14 10:50:31 +00:00
|
|
|
|
---
|
|
|
|
|
*** New user option 'package-vc-register-as-project'.
|
|
|
|
|
When non-nil, it will automatically register every package as a
|
|
|
|
|
project, that you can quickly select using 'project-switch-project'
|
|
|
|
|
('C-x p p').
|
|
|
|
|
|
2023-05-13 17:05:04 +00:00
|
|
|
|
---
|
|
|
|
|
*** New user option 'package-vc-allow-side-effects'.
|
|
|
|
|
When non-nil, package specifications with side-effects for building
|
2023-05-31 06:45:08 +00:00
|
|
|
|
software will be used when building a package.
|
2023-05-13 17:05:04 +00:00
|
|
|
|
|
2023-08-15 16:39:14 +00:00
|
|
|
|
---
|
|
|
|
|
*** New command to start an inferior Emacs loading only specific packages.
|
|
|
|
|
The new command 'package-isolate' will start a new Emacs process, as
|
|
|
|
|
a sub-process of Emacs where you invoke the command, in a way that
|
|
|
|
|
causes the new process to load only some of the installed packages.
|
|
|
|
|
The command prompts for the packages to activate in this
|
|
|
|
|
sub-process, and is intended for testing Emacs and/or the packages
|
|
|
|
|
in a clean environment.
|
|
|
|
|
|
2023-03-02 22:55:31 +00:00
|
|
|
|
** Flymake
|
2023-04-14 12:36:29 +00:00
|
|
|
|
|
2023-03-02 22:55:31 +00:00
|
|
|
|
+++
|
|
|
|
|
*** New user option 'flymake-show-diagnostics-at-end-of-line'.
|
|
|
|
|
When non-nil, Flymake shows summarized descriptions of diagnostics at
|
|
|
|
|
the end of the line. Depending on your preference, this can either be
|
|
|
|
|
distracting and easily confused with actual code, or a significant
|
|
|
|
|
early aid that relieves you from moving the buffer or reaching for the
|
|
|
|
|
mouse to consult an error message.
|
|
|
|
|
|
2023-04-23 11:37:39 +00:00
|
|
|
|
** Python Mode
|
2023-04-16 13:18:39 +00:00
|
|
|
|
|
2023-04-22 09:29:55 +00:00
|
|
|
|
---
|
2023-04-16 13:18:39 +00:00
|
|
|
|
*** New user option 'python-indent-block-paren-deeper'.
|
|
|
|
|
If non-nil, increase the indentation of the lines inside parens in a
|
|
|
|
|
header of a block when they are indented to the same level as the body
|
|
|
|
|
of the block:
|
|
|
|
|
|
|
|
|
|
if (some_expression
|
|
|
|
|
and another_expression):
|
|
|
|
|
do_something()
|
|
|
|
|
|
|
|
|
|
instead of:
|
|
|
|
|
|
|
|
|
|
if (some_expression
|
|
|
|
|
and another_expression):
|
|
|
|
|
do_something()
|
|
|
|
|
|
2023-07-13 21:38:41 +00:00
|
|
|
|
*** New user option 'python-interpreter-args'.
|
|
|
|
|
This allows the user to specify command line arguments to the non
|
|
|
|
|
interactive Python interpreter specified by 'python-interpreter'.
|
|
|
|
|
|
2022-12-29 10:05:04 +00:00
|
|
|
|
** use-package
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New ':vc' keyword.
|
|
|
|
|
This keyword enables the user to install packages using 'package-vc'.
|
|
|
|
|
|
2023-05-21 10:57:14 +00:00
|
|
|
|
** Rmail
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New commands for reading mailing lists.
|
|
|
|
|
The new Rmail commands 'rmail-mailing-list-post',
|
|
|
|
|
'rmail-mailing-list-unsubscribe', 'rmail-mailing-list-help', and
|
2023-05-31 06:45:08 +00:00
|
|
|
|
'rmail-mailing-list-archive' allow to, respectively, post to,
|
2023-05-21 10:57:14 +00:00
|
|
|
|
unsubscribe from, request help about, and browse the archives, of the
|
|
|
|
|
mailing list from which the current email message was delivered.
|
2023-05-15 18:04:21 +00:00
|
|
|
|
|
|
|
|
|
** Dictionary
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'dictionary-search-interface'.
|
|
|
|
|
Controls how the 'dictionary-search' command prompts for and displays
|
|
|
|
|
dictionary definitions. Customize this user option to 'help' to have
|
2023-05-31 06:45:08 +00:00
|
|
|
|
'dictionary-search' display definitions in a "*Help*" buffer and
|
|
|
|
|
provide dictionary-based minibuffer completion for word selection.
|
2023-05-15 18:04:21 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'dictionary-read-word-prompt'.
|
|
|
|
|
This allows the user to customize the prompt that is used by
|
|
|
|
|
'dictionary-search' when asking for a word to search in the
|
|
|
|
|
dictionary.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'dictionary-display-definition-function'.
|
|
|
|
|
This allows the user to customize the way in which 'dictionary-search'
|
|
|
|
|
displays word definitions. If non-nil, this user option should be set
|
|
|
|
|
to a function that displays a word definition obtained from a
|
|
|
|
|
dictionary server. The new function
|
|
|
|
|
'dictionary-display-definition-in-help-buffer' can be used to display
|
2023-05-31 06:45:08 +00:00
|
|
|
|
the definition in a "*Help*" buffer, instead of the default
|
|
|
|
|
"*Dictionary*" buffer.
|
2023-05-15 18:04:21 +00:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'dictionary-read-word-function'.
|
|
|
|
|
This allows the user to customize the way in which 'dictionary-search'
|
|
|
|
|
prompts for a word to search in the dictionary. This user option
|
|
|
|
|
should be set to a function that lets the user select a word and
|
|
|
|
|
returns it as a string. The new function
|
|
|
|
|
'dictionary-completing-read-word' can be used to prompt with
|
|
|
|
|
completion based on dictionary matches.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** New user option 'dictionary-read-dictionary-function'.
|
|
|
|
|
This allows the user to customize the way in which 'dictionary-search'
|
|
|
|
|
prompts for a dictionary to search in. This user option should be set
|
|
|
|
|
to a function that lets the user select a dictionary and returns its
|
|
|
|
|
name as a string. The new function
|
|
|
|
|
'dictionary-completing-read-dictionary' can be used to prompt with
|
|
|
|
|
completion based on dictionaries that the server supports.
|
|
|
|
|
|
2023-06-16 17:35:36 +00:00
|
|
|
|
** Pp
|
2023-06-23 19:15:13 +00:00
|
|
|
|
|
|
|
|
|
*** New 'pp-default-function' user option replaces 'pp-use-max-width'.
|
2023-06-16 17:35:36 +00:00
|
|
|
|
|
|
|
|
|
*** New default pretty printing function, which tries to obey 'fill-column'.
|
|
|
|
|
|
2023-06-23 19:15:13 +00:00
|
|
|
|
*** 'pp-to-string' takes an additional PP-FUNCTION argument.
|
|
|
|
|
This argument specifies the prettifying algorithm to use.
|
2023-06-22 11:17:00 +00:00
|
|
|
|
|
|
|
|
|
** Emacs Lisp mode
|
|
|
|
|
|
|
|
|
|
---
|
2023-06-23 19:15:13 +00:00
|
|
|
|
*** ',@' now has 'prefix' syntax.
|
2023-06-22 11:17:00 +00:00
|
|
|
|
Previously, the '@' character, which normally has 'symbol' syntax,
|
|
|
|
|
would combine with a following Lisp symbol and interfere with symbol
|
|
|
|
|
searching.
|
|
|
|
|
|
2023-06-30 21:55:53 +00:00
|
|
|
|
** CPerl mode
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Subroutine signatures are now supported.
|
|
|
|
|
CPerl mode fontifies subroutine signatures like variable declarations
|
|
|
|
|
which makes them visually distinct from subroutine prototypes.
|
|
|
|
|
|
2023-07-03 21:03:11 +00:00
|
|
|
|
*** Syntax of Perl up to version 5.38 is supported.
|
|
|
|
|
CPerl mode supports the new keywords for exception handling and the
|
|
|
|
|
object oriented syntax which were added in Perl 5.36 and 5.38.
|
2023-06-30 21:55:53 +00:00
|
|
|
|
|
2023-07-04 13:27:03 +00:00
|
|
|
|
** Emacs Sessions (Desktop)
|
|
|
|
|
|
|
|
|
|
+++
|
2023-07-04 16:56:15 +00:00
|
|
|
|
*** Restoring buffers visiting remote files can now time out.
|
2023-07-04 16:35:28 +00:00
|
|
|
|
When a buffer is restored which visits a remote file, the restoration
|
|
|
|
|
of the session could hang if the remote host is off-line or slow to
|
|
|
|
|
respond. Setting the user option 'remote-file-name-access-timeout' to
|
|
|
|
|
a positive number will abandon the attempt to restore such buffers
|
|
|
|
|
after a timeout of that many seconds, thus allowing the rest of
|
|
|
|
|
desktop restoration to continue.
|
2023-07-04 13:27:03 +00:00
|
|
|
|
|
|
|
|
|
** Recentf
|
|
|
|
|
|
|
|
|
|
+++
|
2023-07-04 16:56:15 +00:00
|
|
|
|
*** Checking recent remote files can now time out.
|
2023-07-05 08:05:44 +00:00
|
|
|
|
Similarly to buffer restoration by Desktop, 'recentf-mode' checking
|
2023-07-04 16:56:15 +00:00
|
|
|
|
of the accessibility of remote files can now time out if
|
2023-07-05 08:05:44 +00:00
|
|
|
|
'remote-file-name-access-timeout' is set to a positive number.
|
2023-07-04 13:27:03 +00:00
|
|
|
|
|
2023-07-27 14:43:17 +00:00
|
|
|
|
** Notifications
|
|
|
|
|
|
|
|
|
|
+++
|
2023-08-16 18:12:42 +00:00
|
|
|
|
*** Allow to use Icon Naming Specification for ':app-icon'.
|
2023-07-27 14:43:17 +00:00
|
|
|
|
You can use a symbol as the value for ':app-icon' to provide icon name
|
|
|
|
|
without specifying a file, like this:
|
|
|
|
|
|
2023-08-16 18:12:42 +00:00
|
|
|
|
(notifications-notify
|
|
|
|
|
:title "I am playing music" :app-icon 'multimedia-player)
|
2023-07-27 14:43:17 +00:00
|
|
|
|
|
2023-02-25 18:27:07 +00:00
|
|
|
|
** Image Dired
|
|
|
|
|
|
|
|
|
|
*** New user option 'image-dired-thumb-naming'.
|
|
|
|
|
You can now configure how a thumbnail is named using this option.
|
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* New Modes and Packages in Emacs 30.1
|
2023-01-05 12:23:04 +00:00
|
|
|
|
|
2023-03-06 12:35:49 +00:00
|
|
|
|
** New major modes based on the tree-sitter library
|
2023-01-20 20:05:41 +00:00
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New major mode 'html-ts-mode'.
|
|
|
|
|
An optional major mode based on the tree-sitter library for editing
|
2023-01-21 06:25:51 +00:00
|
|
|
|
HTML files.
|
2023-01-20 20:05:41 +00:00
|
|
|
|
|
2023-03-12 15:43:40 +00:00
|
|
|
|
---
|
2023-03-14 10:39:32 +00:00
|
|
|
|
*** New major mode 'heex-ts-mode'.
|
2023-03-12 15:08:50 +00:00
|
|
|
|
A major mode based on the tree-sitter library for editing HEEx files.
|
|
|
|
|
|
2023-03-12 15:43:40 +00:00
|
|
|
|
---
|
2023-03-14 10:39:32 +00:00
|
|
|
|
*** New major mode 'elixir-ts-mode'.
|
2023-03-12 15:10:43 +00:00
|
|
|
|
A major mode based on the tree-sitter library for editing Elixir
|
|
|
|
|
files.
|
|
|
|
|
|
2023-01-01 12:14:09 +00:00
|
|
|
|
---
|
2023-05-30 06:37:24 +00:00
|
|
|
|
** The highly accessible Modus themes collection has eight items.
|
2023-01-01 12:14:09 +00:00
|
|
|
|
The 'modus-operandi' and 'modus-vivendi' are the main themes that have
|
|
|
|
|
been part of Emacs since version 28. The former is light, the latter
|
|
|
|
|
dark. In addition to these, we now have 'modus-operandi-tinted' and
|
|
|
|
|
'modus-vivendi-tinted' for easier legibility, as well as
|
2023-05-30 06:37:24 +00:00
|
|
|
|
'modus-operandi-deuteranopia', 'modus-vivendi-deuteranopia',
|
|
|
|
|
'modus-operandi-tritanopia', and 'modus-vivendi-tritanopia' to cover
|
|
|
|
|
the needs of users with red-green or blue-yellow color deficiency.
|
|
|
|
|
The Info manual "(modus-themes) Top" describes the details and
|
|
|
|
|
showcases all their customization options.
|
2022-09-08 12:53:00 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* Incompatible Lisp Changes in Emacs 30.1
|
2022-10-03 18:27:17 +00:00
|
|
|
|
|
2023-03-24 15:03:41 +00:00
|
|
|
|
---
|
2023-03-25 17:28:55 +00:00
|
|
|
|
** The escape sequence '\x' not followed by hex digits is now an error.
|
|
|
|
|
Previously, '\x' without at least one hex digit denoted character code
|
2023-03-24 15:03:41 +00:00
|
|
|
|
zero (NUL) but as this was neither intended nor documented or even
|
|
|
|
|
known by anyone, it is now treated as an error by the Lisp reader.
|
|
|
|
|
|
2023-03-25 17:28:55 +00:00
|
|
|
|
---
|
|
|
|
|
** Connection-local variables are applied in buffers visiting a remote file.
|
|
|
|
|
This overrides possible directory-local or file-local variables with
|
|
|
|
|
the same name.
|
|
|
|
|
|
|
|
|
|
---
|
2023-01-05 12:23:04 +00:00
|
|
|
|
** User option 'tramp-completion-reread-directory-timeout' has been removed.
|
|
|
|
|
This user option has been obsoleted in Emacs 27, use
|
|
|
|
|
'remote-file-name-inhibit-cache' instead.
|
|
|
|
|
|
2023-02-13 07:25:59 +00:00
|
|
|
|
---
|
|
|
|
|
** User options 'eshell-NAME-unload-hook' are now obsolete.
|
|
|
|
|
These hooks were named incorrectly, and so they never actually ran
|
|
|
|
|
when unloading the correspending feature. Instead, you should use
|
|
|
|
|
hooks named after the feature name, like 'esh-mode-unload-hook'.
|
|
|
|
|
|
2023-05-19 10:32:28 +00:00
|
|
|
|
+++
|
|
|
|
|
** 'copy-tree' now copies records when its optional 2nd argument is non-nil.
|
|
|
|
|
|
2023-06-20 10:12:50 +00:00
|
|
|
|
+++
|
|
|
|
|
** Regexp zero-width assertions followed by operators are better defined.
|
2023-06-23 19:15:13 +00:00
|
|
|
|
Previously, regexps such as "xy\\B*" would have ill-defined behavior.
|
2023-06-20 10:12:50 +00:00
|
|
|
|
Now any operator following a zero-width assertion applies to that
|
|
|
|
|
assertion only (which is useless). For historical compatibility, an
|
|
|
|
|
operator character following '^' or '\`' becomes literal, but we
|
|
|
|
|
advise against relying on this.
|
|
|
|
|
|
2023-07-08 08:47:32 +00:00
|
|
|
|
---
|
2023-07-08 08:48:12 +00:00
|
|
|
|
** Mode-line mnemonics for some coding-systems have changed.
|
2023-07-08 08:47:32 +00:00
|
|
|
|
The mode-line mnemonic for 'utf-7' is now the lowercase 'u', to be
|
|
|
|
|
consistent with the other encodings of this family.
|
|
|
|
|
|
|
|
|
|
The mode-line mnemonic for 'koi8-u' is now 'У', U+0423 CYRILLIC
|
|
|
|
|
CAPITAL LETTER U, to distinguish between this encoding and the
|
|
|
|
|
UTF-8/UTF-16 family.
|
|
|
|
|
|
|
|
|
|
If your terminal cannot display 'У', or if you want to get the old
|
|
|
|
|
behavior back for any other reason, you can do that using the
|
|
|
|
|
'coding-system-put' function. For example, the following restores the
|
|
|
|
|
previous behavior of showing 'U' in the mode line for 'koi8-u':
|
|
|
|
|
|
2023-07-22 08:16:04 +00:00
|
|
|
|
(coding-system-put 'koi8-u :mnemonic ?U)
|
2023-07-13 21:26:29 +00:00
|
|
|
|
|
2023-07-28 21:04:43 +00:00
|
|
|
|
---
|
|
|
|
|
** 'vietnamese-tcvn' is now a coding system alias for 'vietnamese-vscii'.
|
|
|
|
|
VSCII-1 and TCVN-5712 are different names for the same character
|
|
|
|
|
encoding. Therefore, the duplicate coding system definition has been
|
|
|
|
|
dropped in favor of an alias.
|
|
|
|
|
|
|
|
|
|
The mode-line mnemonic for 'vietnamese-vscii' and its aliases is the
|
|
|
|
|
lowercase letter 'v'.
|
|
|
|
|
|
2023-07-13 21:26:29 +00:00
|
|
|
|
+++
|
|
|
|
|
** Infinities and NaNs no longer act as symbols on non-IEEE platforms.
|
|
|
|
|
On old platforms like the VAX that do not support IEEE floating-point,
|
|
|
|
|
tokens like 0.0e+NaN and 1.0e+INF are no longer read as symbols.
|
|
|
|
|
Instead, the Lisp reader approximates an infinity with the nearest
|
|
|
|
|
finite value, and a NaN with some other non-numeric object that
|
|
|
|
|
provokes an error if used numerically.
|
2023-07-22 08:16:04 +00:00
|
|
|
|
|
2023-08-06 09:35:02 +00:00
|
|
|
|
+++
|
|
|
|
|
** X color support compatibility aliases are now marked obsolete.
|
|
|
|
|
The compatibility aliases 'x-defined-colors', 'x-color-defined-p',
|
|
|
|
|
'x-color-values', and 'x-display-color-p' are now obsolete.
|
|
|
|
|
|
2023-08-08 02:03:17 +00:00
|
|
|
|
+++
|
2023-08-16 18:12:42 +00:00
|
|
|
|
** 'easy-mmode-define-{minor,global}-mode' aliases are now obsolete.
|
2023-08-08 02:03:17 +00:00
|
|
|
|
Use 'define-minor-mode' and 'define-globalized-minor-mode' instead.
|
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
|
|
|
|
|
* Lisp Changes in Emacs 30.1
|
2022-09-19 08:55:09 +00:00
|
|
|
|
|
2023-08-04 03:41:11 +00:00
|
|
|
|
** 'defadvice' is marked as obsolete.
|
2023-08-16 18:12:42 +00:00
|
|
|
|
See the "(elisp) Porting Old Advice" node for help converting them
|
|
|
|
|
to use 'advice-add' or 'define-advice' instead.
|
2023-08-04 03:41:11 +00:00
|
|
|
|
|
2023-08-17 08:34:32 +00:00
|
|
|
|
+++
|
|
|
|
|
** Desktop notifications are now supported on the Haiku operating system.
|
|
|
|
|
The new function 'haiku-notifications-notify' provides a subset of the
|
|
|
|
|
capabilities of the 'notifications-notify' function in a manner
|
|
|
|
|
analogous to 'w32-notification-notify'.
|
|
|
|
|
|
2023-08-08 05:37:00 +00:00
|
|
|
|
+++
|
|
|
|
|
** New value 'if-regular' for the REPLACE argument to 'insert-file-contents'.
|
|
|
|
|
It results in 'insert-file-contents' erasing the buffer instead of
|
|
|
|
|
preserving markers if the file being inserted is not a regular file,
|
|
|
|
|
rather than signaling an error.
|
|
|
|
|
|
2023-07-22 02:44:34 +00:00
|
|
|
|
+++
|
|
|
|
|
** New variable 'current-key-remap-sequence'.
|
|
|
|
|
It is bound to the key sequence that caused a call to a function bound
|
2023-08-16 18:12:42 +00:00
|
|
|
|
within 'function-key-map' or 'input-decode-map' around those calls.
|
2023-07-22 02:44:34 +00:00
|
|
|
|
|
2023-01-24 13:37:22 +00:00
|
|
|
|
+++
|
|
|
|
|
** New variables describing the names of built in programs.
|
|
|
|
|
The new variables 'ctags-program-name', 'ebrowse-program-name',
|
|
|
|
|
'etags-program-name', 'hexl-program-name', 'emacsclient-program-name'
|
|
|
|
|
and 'movemail-program-name' should be used instead of "ctags",
|
|
|
|
|
"ebrowse", "etags", "hexl", and "emacsclient", when starting one of
|
|
|
|
|
these built in programs in a subprocess.
|
|
|
|
|
|
Update Android port
* .gitignore: Add new files.
* INSTALL.android: Explain how to build Emacs for ancient
versions of Android.
* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
* build-aux/config.guess (timestamp, version):
* build-aux/config.sub (timestamp, version): Autoupdate.
* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
Add new configure tests for Android API version when not
explicitly specified.
* doc/emacs/android.texi (Android): Add reference to ``Other
Input Devices''.
(Android File System): Remove restrictions on directory-files on
the assets directory.
* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
* doc/emacs/input.texi (Other Input Devices): New node.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen input events.
* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
* etc/NEWS: Announce changes.
* java/Makefile.in: Use lib-src/asset-directory-tool to generate
an `directory-tree' file placed in /assets.
* java/debug.sh: Large adjustments to support Android 2.2 and
later.
* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
* java/org/gnu/emacs/EmacsCopyArea.java (perform):
* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
(destroyHandle):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
redundant canvas saves and restores.
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
(handleDirtyBitmap):
* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
(EmacsWindow): Make compatible with Android 2.2 and later.
* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
on Android.:(asset-directory-tool{EXEEXT}): New target.
* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
(main_1, main_2, main): New file.
* lib, m4: Merge from gnulib. This will be reverted before
merging to master.
* lisp/button.el (button-map):
(push-button):
* lisp/frame.el (display-popup-menus-p): Improve touchscreen
support.
* lisp/subr.el (event-start):
(event-end): Handle touchscreen events.
* lisp/touch-screen.el (touch-screen-handle-timeout):
(touch-screen-handle-point-update):
(touch-screen-handle-point-up):
(touch-screen-track-tap):
(touch-screen-track-drag):
(touch-screen-drag-mode-line-1):
(touch-screen-drag-mode-line): New functions.
([mode-line touchscreen-begin]):
([bottom-divider touchscreen-begin]): Bind new events.
* lisp/wid-edit.el (widget-event-point):
(widget-keymap):
(widget-event-start):
(widget-button--check-and-call-button):
(widget-button-click): Improve touchscreen support.
* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
(mark_pinned_symbols): Likewise.
* src/android.c (struct android_emacs_window): New struct.
(window_class): New variable.
(android_run_select_thread): Add workaround for Android platform
bug.
(android_extract_long, android_scan_directory_tree): New
functions.
(android_file_access_p): Use those functions instead.
(android_init_emacs_window): New function.
(android_init_emacs_gc_class): Update signature of `markDirty'.
(android_change_gc, android_set_clip_rectangles): Tell the GC
whether or not clip rects were dirtied.
(android_swap_buffers): Do not look up method every time.
(struct android_dir): Adjust for new directory tree lookup.
(android_opendir, android_readdir, android_closedir): Likewise.
(android_four_corners_bilinear): Fix coding style.
(android_ftruncate): New function.
* src/android.h: Update prototypes. Replace ftruncate with
android_ftruncate when necessary.
* src/androidterm.c (handle_one_android_event): Pacify GCC. Fix
touch screen tool bar bug.
* src/emacs.c (using_utf8): Fix compilation error.
* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
is not built.
* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
uses.
* src/keyboard.c (lispy_function_keys): Fix `back'.
* src/menu.c (x_popup_menu_1): Handle touch screen events.
(Fx_popup_menu): Document changes.
* src/sfnt.c (main): Improve tests.
* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
minor problem.
(init_sfntfont_android): Check for
HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
and `languages'.
(sfnt_parse_style): Append tokens to adstyle.
(sfnt_parse_languages): New function.
(sfnt_enum_font_1): Parse supported languages and adstyle.
(sfntfont_list_1): Handle new fields.
(sfntfont_text_extents): Fix uninitialized variable use.
(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
2023-01-19 14:19:06 +00:00
|
|
|
|
+++
|
|
|
|
|
** 'x-popup-menu' now understands touch screen events.
|
|
|
|
|
When a 'touchscreen-begin' or 'touchscreen-end' event is passed as the
|
|
|
|
|
POSITION argument, it will behave as if that event was a mouse event.
|
|
|
|
|
|
2023-02-15 04:24:22 +00:00
|
|
|
|
+++
|
Update Android port
* .gitignore: Add new files.
* INSTALL.android: Explain how to build Emacs for ancient
versions of Android.
* admin/merge-gnulib (GNULIB_MODULES): Add getdelim.
* build-aux/config.guess (timestamp, version):
* build-aux/config.sub (timestamp, version): Autoupdate.
* configure.ac (BUILD_DETAILS, ANDROID_MIN_SDK):
(ANDROID_STUBIFY): Allow specifying CFLAGS via ANDROID_CFLAGS.
Add new configure tests for Android API version when not
explicitly specified.
* doc/emacs/android.texi (Android): Add reference to ``Other
Input Devices''.
(Android File System): Remove restrictions on directory-files on
the assets directory.
* doc/emacs/emacs.texi (Top): Add Other Input Devices to menu.
* doc/emacs/input.texi (Other Input Devices): New node.
* doc/lispref/commands.texi (Touchscreen Events): Document
changes to touchscreen input events.
* doc/lispref/frames.texi (Pop-Up Menus): Likewise.
* etc/NEWS: Announce changes.
* java/Makefile.in: Use lib-src/asset-directory-tool to generate
an `directory-tree' file placed in /assets.
* java/debug.sh: Large adjustments to support Android 2.2 and
later.
* java/org/gnu/emacs/EmacsContextMenu.java (inflateMenuItems):
* java/org/gnu/emacs/EmacsCopyArea.java (perform):
* java/org/gnu/emacs/EmacsDialog.java (toAlertDialog):
* java/org/gnu/emacs/EmacsDrawLine.java (perform):
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform):
* java/org/gnu/emacs/EmacsDrawable.java (EmacsDrawable):
* java/org/gnu/emacs/EmacsFillPolygon.java (perform):
* java/org/gnu/emacs/EmacsFillRectangle.java (perform):
* java/org/gnu/emacs/EmacsGC.java (EmacsGC):
* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):
(destroyHandle):
* java/org/gnu/emacs/EmacsSdk7FontDriver.java (draw): Avoid
redundant canvas saves and restores.
* java/org/gnu/emacs/EmacsService.java (run):
* java/org/gnu/emacs/EmacsView.java (EmacsView):
(handleDirtyBitmap):
* java/org/gnu/emacs/EmacsWindow.java (changeWindowBackground)
(EmacsWindow): Make compatible with Android 2.2 and later.
* lib-src/Makefile.in (DONT_INSTALL): Add asset-directory-tool
on Android.:(asset-directory-tool{EXEEXT}): New target.
* lib-src/asset-directory-tool.c (struct directory_tree, xmalloc)
(main_1, main_2, main): New file.
* lib, m4: Merge from gnulib. This will be reverted before
merging to master.
* lisp/button.el (button-map):
(push-button):
* lisp/frame.el (display-popup-menus-p): Improve touchscreen
support.
* lisp/subr.el (event-start):
(event-end): Handle touchscreen events.
* lisp/touch-screen.el (touch-screen-handle-timeout):
(touch-screen-handle-point-update):
(touch-screen-handle-point-up):
(touch-screen-track-tap):
(touch-screen-track-drag):
(touch-screen-drag-mode-line-1):
(touch-screen-drag-mode-line): New functions.
([mode-line touchscreen-begin]):
([bottom-divider touchscreen-begin]): Bind new events.
* lisp/wid-edit.el (widget-event-point):
(widget-keymap):
(widget-event-start):
(widget-button--check-and-call-button):
(widget-button-click): Improve touchscreen support.
* src/alloc.c (make_lisp_symbol): Avoid ICE on Android NDK GCC.
(mark_pinned_symbols): Likewise.
* src/android.c (struct android_emacs_window): New struct.
(window_class): New variable.
(android_run_select_thread): Add workaround for Android platform
bug.
(android_extract_long, android_scan_directory_tree): New
functions.
(android_file_access_p): Use those functions instead.
(android_init_emacs_window): New function.
(android_init_emacs_gc_class): Update signature of `markDirty'.
(android_change_gc, android_set_clip_rectangles): Tell the GC
whether or not clip rects were dirtied.
(android_swap_buffers): Do not look up method every time.
(struct android_dir): Adjust for new directory tree lookup.
(android_opendir, android_readdir, android_closedir): Likewise.
(android_four_corners_bilinear): Fix coding style.
(android_ftruncate): New function.
* src/android.h: Update prototypes. Replace ftruncate with
android_ftruncate when necessary.
* src/androidterm.c (handle_one_android_event): Pacify GCC. Fix
touch screen tool bar bug.
* src/emacs.c (using_utf8): Fix compilation error.
* src/fileio.c (Ffile_system_info): Return Qnil when fsusage.o
is not built.
* src/filelock.c (BOOT_TIME_FILE): Fix definition for Android.
* src/frame.c (Fx_parse_geometry): Fix uninitialized variable
uses.
* src/keyboard.c (lispy_function_keys): Fix `back'.
* src/menu.c (x_popup_menu_1): Handle touch screen events.
(Fx_popup_menu): Document changes.
* src/sfnt.c (main): Improve tests.
* src/sfntfont-android.c (sfntfont_android_put_glyphs): Fix
minor problem.
(init_sfntfont_android): Check for
HAVE_DECL_ANDROID_GET_DEVICE_API_LEVEL.
* src/sfntfont.c (struct sfnt_font_desc): New fields `adstyle'
and `languages'.
(sfnt_parse_style): Append tokens to adstyle.
(sfnt_parse_languages): New function.
(sfnt_enum_font_1): Parse supported languages and adstyle.
(sfntfont_list_1): Handle new fields.
(sfntfont_text_extents): Fix uninitialized variable use.
(syms_of_sfntfont, mark_sfntfont): Adjust accordingly.
2023-01-19 14:19:06 +00:00
|
|
|
|
** New functions for handling touch screen events.
|
|
|
|
|
The new functions 'touch-screen-track-tap' and
|
|
|
|
|
'touch-screen-track-drag' handle tracking common touch screen gestures
|
|
|
|
|
from within a command.
|
|
|
|
|
|
2023-05-31 06:45:08 +00:00
|
|
|
|
** New user option 'safe-local-variable-directories'.
|
|
|
|
|
This user option names directories in which Emacs will treat all
|
2023-05-09 20:51:14 +00:00
|
|
|
|
directory-local variables as safe.
|
|
|
|
|
|
2023-07-18 01:27:27 +00:00
|
|
|
|
+++
|
|
|
|
|
** New parameter to 'touchscreen-end' events.
|
|
|
|
|
CANCEL non-nil establishes that the touch sequence has been
|
|
|
|
|
intercepted by programs such as window managers and should be ignored
|
|
|
|
|
with Emacs.
|
|
|
|
|
|
2023-04-14 12:36:29 +00:00
|
|
|
|
** New variable 'inhibit-auto-fill' to temporarily prevent auto-fill.
|
2023-04-02 21:54:02 +00:00
|
|
|
|
|
2023-07-04 08:40:20 +00:00
|
|
|
|
+++
|
|
|
|
|
** New variable 'secondary-tool-bar-map'.
|
|
|
|
|
If non-nil, this variable contains a keymap of menu items that are
|
|
|
|
|
displayed along tool bar items inside 'tool-bar-map'.
|
|
|
|
|
|
2023-02-13 17:53:05 +00:00
|
|
|
|
** Functions and variables to transpose sexps
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New helper variable 'transpose-sexps-function'.
|
|
|
|
|
Emacs now can set this variable to customize the behavior of the
|
|
|
|
|
'transpose-sexps' function.
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
*** New function 'transpose-sexps-default-function'.
|
|
|
|
|
The previous implementation is moved into its own function, to be
|
|
|
|
|
bound by 'transpose-sexps-function'.
|
|
|
|
|
|
|
|
|
|
*** New function 'treesit-transpose-sexps'.
|
|
|
|
|
Tree-sitter now unconditionally sets 'transpose-sexps-function' for all
|
|
|
|
|
tree-sitter enabled modes. This functionality utilizes the new
|
|
|
|
|
'transpose-sexps-function'.
|
|
|
|
|
|
|
|
|
|
** Functions and variables to move by program statements
|
|
|
|
|
|
|
|
|
|
*** New variable 'forward-sentence-function'.
|
|
|
|
|
Major modes can now set this variable to customize the behavior of the
|
|
|
|
|
'forward-sentence' command.
|
|
|
|
|
|
|
|
|
|
*** New function 'forward-sentence-default-function'.
|
|
|
|
|
The previous implementation of 'forward-sentence' is moved into its
|
|
|
|
|
own function, to be bound by 'forward-sentence-function'.
|
|
|
|
|
|
|
|
|
|
*** New buffer-local variable 'treesit-sentence-type-regexp'.
|
|
|
|
|
Similarly to 'treesit-defun-type-regexp', this variable is used to
|
|
|
|
|
define "sentences" in tree-sitter enabled modes.
|
|
|
|
|
|
|
|
|
|
*** New function 'treesit-forward-sentence'.
|
|
|
|
|
All tree-sitter enabled modes that define 'treesit-sentence-type-regexp'
|
|
|
|
|
now set 'forward-sentence-function' to call 'treesit-forward-sentence'.
|
|
|
|
|
|
|
|
|
|
** Functions and variables to move by program sexps
|
|
|
|
|
|
|
|
|
|
*** New buffer-local variable 'treesit-sexp-type-regexp'.
|
|
|
|
|
Similarly to 'treesit-defun-type-regexp', this variable is used to
|
|
|
|
|
define "sexps" in tree-sitter enabled modes.
|
|
|
|
|
|
|
|
|
|
*** New function 'treesit-forward-sexp'.
|
|
|
|
|
Tree-sitter conditionally sets 'forward-sexp-function' for major modes
|
|
|
|
|
that have defined 'treesit-sexp-type-regexp' to enable sexp-related
|
|
|
|
|
motion commands.
|
|
|
|
|
|
2022-12-29 16:38:02 +00:00
|
|
|
|
** New or changed byte-compilation warnings
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about empty bodies for more special forms and macros.
|
|
|
|
|
The compiler now warns about an empty body argument to 'when',
|
|
|
|
|
'unless', 'ignore-error' and 'with-suppressed-warnings' in addition to
|
|
|
|
|
the existing warnings for 'let' and 'let*'. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(when (> x 2))
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'empty-body'.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about quoted error names in 'condition-case' and 'ignore-error'.
|
|
|
|
|
The compiler now warns about quoted condition (error) names
|
|
|
|
|
in 'condition-case' and 'ignore-error'. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(condition-case nil
|
|
|
|
|
(/ x y)
|
|
|
|
|
('arith-error "division by zero"))
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
Quoting them adds the error name 'quote' to those handled or ignored
|
|
|
|
|
respectively, which was probably not intended.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
*** Warn about comparison with literal constants without defined identity.
|
|
|
|
|
The compiler now warns about comparisons by identity with a literal
|
|
|
|
|
string, cons, vector, record, function, large integer or float as this
|
|
|
|
|
may not match any value at all. Example:
|
|
|
|
|
|
2023-01-05 12:23:04 +00:00
|
|
|
|
(eq x "hello")
|
2022-12-29 16:38:02 +00:00
|
|
|
|
|
|
|
|
|
Only literals for symbols and small integers (fixnums), including
|
|
|
|
|
characters, are guaranteed to have a consistent (unique) identity.
|
|
|
|
|
This warning applies to 'eq', 'eql', 'memq', 'memql', 'assq', 'rassq',
|
|
|
|
|
'remq' and 'delq'.
|
|
|
|
|
|
|
|
|
|
To compare by (structural) value, use 'equal', 'member', 'assoc',
|
|
|
|
|
'rassoc', 'remove' or 'delete' instead. Floats and bignums can also
|
|
|
|
|
be compared using 'eql', '=' and 'memql'. Function literals cannot be
|
|
|
|
|
compared reliably at all.
|
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'suspicious'.
|
|
|
|
|
|
2023-02-27 12:57:48 +00:00
|
|
|
|
---
|
|
|
|
|
*** Warn about 'condition-case' without handlers.
|
|
|
|
|
The compiler now warns when the 'condition-case' form is used without
|
|
|
|
|
any actual handlers, as in
|
|
|
|
|
|
|
|
|
|
(condition-case nil (read buffer))
|
|
|
|
|
|
|
|
|
|
because it has no effect other than the execution of the body form.
|
|
|
|
|
In particular, no errors are caught or suppressed. If the intention
|
|
|
|
|
was to catch all errors, add an explicit handler for 'error', or use
|
|
|
|
|
'ignore-error' or 'ignore-errors'.
|
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'suspicious'.
|
|
|
|
|
|
2023-03-29 11:21:26 +00:00
|
|
|
|
---
|
|
|
|
|
*** Warn about 'unwind-protect' without unwind forms.
|
|
|
|
|
The compiler now warns when the 'unwind-protect' form is used without
|
|
|
|
|
any unwind forms, as in
|
|
|
|
|
|
|
|
|
|
(unwind-protect (read buffer))
|
|
|
|
|
|
2023-04-14 12:36:29 +00:00
|
|
|
|
because the behavior is identical to that of the argument; there is
|
2023-03-29 11:21:26 +00:00
|
|
|
|
no protection of any kind. Perhaps the intended unwind forms have
|
|
|
|
|
been misplaced or forgotten, or the use of 'unwind-protect' could be
|
|
|
|
|
simplified away.
|
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
|
|
|
|
the warning name 'suspicious'.
|
|
|
|
|
|
2023-05-11 17:24:51 +00:00
|
|
|
|
---
|
|
|
|
|
*** Warn about mutation of constant values.
|
|
|
|
|
The compiler now warns about code that modifies program constants in
|
|
|
|
|
some obvious cases. Examples:
|
|
|
|
|
|
|
|
|
|
(setcar '(1 2) 7)
|
|
|
|
|
(aset [3 4] 0 8)
|
|
|
|
|
(aset "abc" 1 ?d)
|
|
|
|
|
|
2023-05-31 06:45:08 +00:00
|
|
|
|
Such code may have unpredictable behavior because the constants are
|
2023-05-11 17:24:51 +00:00
|
|
|
|
part of the program, not data structures generated afresh during
|
|
|
|
|
execution, and the compiler does not expect them to change.
|
|
|
|
|
|
|
|
|
|
To avoid the warning, operate on an object created by the program
|
|
|
|
|
(maybe a copy of the constant), or use a non-destructive operation
|
|
|
|
|
instead.
|
|
|
|
|
|
|
|
|
|
This warning can be suppressed using 'with-suppressed-warnings' with
|
2023-05-13 11:49:07 +00:00
|
|
|
|
the warning name 'mutate-constant'.
|
2023-05-11 17:24:51 +00:00
|
|
|
|
|
2023-04-09 13:57:31 +00:00
|
|
|
|
---
|
|
|
|
|
*** Warn about more ignored function return values.
|
|
|
|
|
The compiler now warns when the return value from certain functions is
|
2023-05-01 13:55:32 +00:00
|
|
|
|
implicitly ignored. Example:
|
2023-04-09 13:57:31 +00:00
|
|
|
|
|
|
|
|
|
(progn (nreverse my-list) my-list)
|
|
|
|
|
|
|
|
|
|
will elicit a warning because it is usually pointless to call
|
2023-05-01 13:55:32 +00:00
|
|
|
|
'nreverse' on a list without using the returned value.
|
2023-04-09 13:57:31 +00:00
|
|
|
|
|
2023-05-01 13:55:32 +00:00
|
|
|
|
To silence the warning, make use of the value in some way, such as
|
|
|
|
|
assigning it to a variable. You can also wrap the function call in
|
|
|
|
|
'(ignore ...)', or use 'with-suppressed-warnings' with the warning
|
|
|
|
|
name 'ignored-return-value'.
|
|
|
|
|
|
|
|
|
|
The warning will only be issued for calls to functions declared
|
|
|
|
|
'important-return-value' or 'side-effect-free' (but not 'error-free').
|
|
|
|
|
|
|
|
|
|
+++
|
|
|
|
|
** New function declaration and property 'important-return-value'.
|
|
|
|
|
The declaration '(important-return-value t)' sets the
|
|
|
|
|
'important-return-value' property which indicates that the function
|
|
|
|
|
return value should probably not be thrown away implicitly.
|
2023-04-09 13:57:31 +00:00
|
|
|
|
|
2023-01-10 23:35:18 +00:00
|
|
|
|
+++
|
2023-05-01 16:49:00 +00:00
|
|
|
|
** New functions 'file-user-uid' and 'file-group-gid'.
|
|
|
|
|
These functions are like 'user-uid' and 'group-gid', respectively, but
|
|
|
|
|
are aware of file name handlers, so they will return the remote UID or
|
|
|
|
|
GID for remote files (or -1 if the connection has no associated user).
|
2023-01-10 23:35:18 +00:00
|
|
|
|
|
2023-02-20 14:23:12 +00:00
|
|
|
|
+++
|
2023-04-14 16:26:27 +00:00
|
|
|
|
** 'fset', 'defalias' and 'defvaralias' now signal an error for cyclic aliases.
|
|
|
|
|
Previously, 'fset', 'defalias' and 'defvaralias' could be made to
|
|
|
|
|
build circular function and variable indirection chains as in
|
2023-02-20 14:23:12 +00:00
|
|
|
|
|
|
|
|
|
(defalias 'able 'baker)
|
|
|
|
|
(defalias 'baker 'able)
|
|
|
|
|
|
2023-04-14 16:26:27 +00:00
|
|
|
|
but trying to use them would sometimes make Emacs hang. Now, an attempt
|
2023-02-20 14:23:12 +00:00
|
|
|
|
to create such a loop results in an error.
|
|
|
|
|
|
2023-04-14 16:26:27 +00:00
|
|
|
|
Since circular alias chains now cannot occur, 'function-alias-p',
|
|
|
|
|
'indirect-function' and 'indirect-variable' will never signal an error.
|
|
|
|
|
Their 'noerror' arguments have no effect and are therefore obsolete.
|
2023-02-20 14:23:12 +00:00
|
|
|
|
|
2021-09-30 17:11:43 +00:00
|
|
|
|
|
2022-11-28 18:03:07 +00:00
|
|
|
|
* Changes in Emacs 30.1 on Non-Free Operating Systems
|
2022-04-27 14:46:57 +00:00
|
|
|
|
|
2001-01-25 20:15:31 +00:00
|
|
|
|
|
1999-10-03 12:39:42 +00:00
|
|
|
|
----------------------------------------------------------------------
|
2007-02-11 01:18:25 +00:00
|
|
|
|
This file is part of GNU Emacs.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2008-05-15 07:32:14 +00:00
|
|
|
|
GNU Emacs is free software: you can redistribute it and/or modify
|
2007-02-11 01:18:25 +00:00
|
|
|
|
it under the terms of the GNU General Public License as published by
|
2008-05-15 07:32:14 +00:00
|
|
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
(at your option) any later version.
|
2007-02-11 01:18:25 +00:00
|
|
|
|
|
|
|
|
|
GNU Emacs is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU General Public License for more details.
|
1999-10-03 12:39:42 +00:00
|
|
|
|
|
2007-02-11 01:18:25 +00:00
|
|
|
|
You should have received a copy of the GNU General Public License
|
2017-09-13 22:52:52 +00:00
|
|
|
|
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2022-11-30 15:53:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Local variables:
|
|
|
|
|
coding: utf-8
|
|
|
|
|
mode: outline
|
|
|
|
|
mode: emacs-news
|
|
|
|
|
paragraph-separate: "[ ]"
|
|
|
|
|
end:
|