1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-31 21:01:23 -08:00
Commit graph

6547 commits

Author SHA1 Message Date
Lars Ingebrigtsen
1b2588998a Add a Gnus command to emojize symbols
* doc/misc/gnus.texi (Article Display): Document it.

* lisp/gnus/gnus-art.el (gnus-treat-emojize-symbols): New user option.
(gnus-treatment-function-alist): Map.
(article-emojize-symbols): New command and keystroke.
2021-11-04 06:38:22 +01:00
Lars Ingebrigtsen
742879f1b3 Add new user option mml-attach-file-at-the-end
* lisp/gnus/mml.el (mml-attach-file-at-the-end): New user option.
(mml-attach-file): Use it.
2021-11-04 06:09:08 +01:00
Stefan Kangas
73a6c8f98f Make image-dired-display-image-mode inherit from image-mode
* lisp/image-dired.el (image-dired-display-image-mode):
Inherit from 'image-mode'.  (Bug#10758)
(image-dired-display-image): Don't generate a temporary image, which
is no longer needed with the above change.
(image-dired-display-thumbnail-original-image)
(image-dired-dired-display-image)
(image-dired-mouse-display-image): Simplify.

(image-dired-temp-image-file)
(image-dired-cmd-create-temp-image-program)
(image-dired-cmd-create-temp-image-options)
(image-dired-display-window-width-correction)
(image-dired-display-window-height-correction)
(image-dired-display-window-width)
(image-dired-display-window-height)
(image-dired-display-current-image-full)
(image-dired-display-current-image-sized)
(image-dired-window-height-pixels): Make obsolete.
(image-dired-create-display-image-buffer): Make into obsolete
function alias for 'ignore'.
(image-dired-display-image-mode-map): Simplify by removing things
duplicated from `image-mode-map'.  Disable some commands from
`image-mode-map' that doesn't make sense for Image-Dired.
(image-dired-display-image-mode-menu): Remove menu, as it no longer
contains anything useful.
(image-dired-minor-mode):
* doc/emacs/dired.texi (Image-Dired): Update documentation for the
above change.
2021-11-04 02:05:29 +01:00
Stefan Kangas
733eff49d3 image-dired: Add face for flagged files
* lisp/image-dired.el (image-dired-thumb-mark): New defface.
(image-dired-thumb-update-marks): Mark flagged file with above new defface.
(image-dired-dired-file-marked-p)
(image-dired-thumb-file-marked-p): Add optional argument to be
used by 'image-dired-*-flagged-p' functions below.
(image-dired-dired-file-flagged-p)
(image-dired-thumb-file-flagged-p): New defuns.
(image-dired-thumb-mark): Improve definition with color classes.
(image-dired-thumb-visible-marks): Doc fix.
2021-11-03 22:34:51 +01:00
Stefan Kangas
f1770a68ae image-dired: Improve marking behavior
* lisp/image-dired.el (image-dired-thumb-mark): Use DarkOrange as
background to better match the 'dired-marked' face.
(image-dired-show-all-from-dir): Disable all marks when entering a
full directory.
(image-dired-unmark-all-marks): Add mode tag.
(image-dired-thumbnail-mode-map): Bind 'image-dired-unmark-all-marks'
to "U".
2021-11-03 08:02:56 +01:00
Stefan Kangas
2612488c36 Support inserting images in tabulated-list-mode columns
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col):
Support using an image descriptor to insert an image in a column.
(tabulated-list-entries):
* doc/lispref/modes.texi (Tabulated List Mode): Update documentation
to reflect above change.
2021-11-02 17:44:57 +01:00
Eli Zaretskii
dfc89318ce Improve documentation of 'file-has-changed-p'
* etc/NEWS:
* doc/lispref/files.texi (File Attributes): Improve wording of the
documentation of 'file-has-changed-p'.
2021-11-01 17:09:52 +02:00
Lars Ingebrigtsen
a5d79fcfe8 Don't output prefix keys in `C-h b', and output more data on objects
* lisp/help.el (help--describe-command): Output
[closure/lambda/byte-code] for those types of objects.
(describe-map): Don't output prefix keys.
2021-11-01 16:06:21 +01:00
Lars Ingebrigtsen
81f12bb777 Tag up last NEWS change 2021-11-01 14:53:35 +01:00
Gregory Heytings
daea9b3b44 Read mailcaps again only when necessary
* doc/lispref/files.texi (File Attributes): Document it.

* lisp/files.el (file-has-changed-p): New function.
(file-has-changed-p--hash-table): Internal variable used by the
new function (bug#51523).
* lisp/emacs-lisp/shortdoc.el (file): Mention it.

* lisp/net/mailcap.el (mailcap-parse-mailcaps): Read mailcaps again
only when at least one of the mailcap files has changed.  Fixes
bug#51523.
2021-11-01 14:51:57 +01:00
Lars Ingebrigtsen
57030b90d5 Add buttons to outlining and tweak `C-h b' buffer
* lisp/help.el (describe-bindings-outline): Change default to t.
(describe-bindings): Tweak the look and remove the explanation.

* lisp/outline.el (outline-minor-mode-use-buttons):
(outline-minor-mode-buttons): New user options.
(outline-hide-subtree): Update buttons.
(outline--make-button, outline--make-button-overlay)
(outline--insert-open-button, outline--insert-close-button)
(outline--fix-up-all-buttons): New functions.
2021-10-31 23:13:58 +01:00
Lars Ingebrigtsen
38751a8585 Add 'n'/'p' key bindings in *Help* buffers
* lisp/help-mode.el (help-goto-previous-page): New command and key
binding.
(help-goto-previous-page): Ditto.
2021-10-31 18:59:49 +01:00
Lars Ingebrigtsen
b75e79138c Add new function 'font-has-char-p'
* src/font.c (Ffont_has_char_p): New function.
(Ffont_get_glyphs): Link to the new function from the doc string.
2021-10-31 16:58:16 +01:00
Stefan Monnier
d553e603f4 eieio-core.el: Make slot-value work on defstructs
Adjust the values in EIEIO's index-tables so they are compatible with those
of defstructs.

* lisp/emacs-lisp/eieio-core.el (eieio--slot-name-index): Don't add the
`eieio--object-num-slots` offset.
(eieio-defclass-internal): Add the `eieio--object-num-slots` offset
here instead.
(eieio-oref): Allow its use on `cl-structure-object`.

* lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-from-index-table):
Don't need to add the `eieio--object-num-slots` offset.

* doc/misc/eieio.texi (Accessing Slots, Accessing Slots):
Mention the use on structs.

* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-test-defstruct-slot-value): New test.
2021-10-31 10:58:43 -04:00
Lars Ingebrigtsen
c23cb2861e Add new function string-glyph-split
* doc/lispref/strings.texi (Creating Strings): Document it.
* lisp/emacs-lisp/shortdoc.el (string): Mention it.

* lisp/emacs-lisp/subr-x.el (string-glyph-split): New function.
2021-10-30 15:22:36 +02:00
Eli Zaretskii
520e358a3f Minor fixes for previous change
* src/w32fns.c (DWMWA_USE_IMMERSIVE_DARK_MODE_OLD): Define only if
undefined.
(w32_applytheme, w32_createwindow, globals_of_w32fns): Minor
stylistic copyedits.

* etc/NEWS: Reword the entry about using dark mode on MS-Windows.

* doc/emacs/msdos.texi (Windows Misc): Fix wording and markup in
the last change.
2021-10-30 13:22:57 +03:00
Vince Salvino
c79d8fa416 Support system dark mode on Windows 10 version 1809 and higher
* src/w32fns.c (DARK_MODE_APP_NAME)
(DWMWA_USE_IMMERSIVE_DARK_MODE_OLD)
(DWMWA_USE_IMMERSIVE_DARK_MODE): Define.
(w32_applytheme): New function.
(w32_createvscrollbar, w32_createhscrollbar, w32_createwindow):
Call 'w32_applytheme'.
(globals_of_w32fns): Load 'DwmSetWindowAttribute' and
'SetWindowTheme' from their DLLs, and initialize 'w32_darkmode'.
* src/w32.c (w32_get_resource): Accept an additional argument
instead of hard-coding REG_ROOT; callers changed.  (Bug#51404)

* etc/NEWS:
* doc/emacs/msdos.texi (Windows Misc): Document the new feature.
2021-10-30 12:55:35 +03:00
Stefan Kangas
2671ea0de8 Be more allowing when looking for menu-bar items
* src/keymap.c (lookup_key_1): Factor out function from
Flookup_key.
(Flookup_key): Be case insensitive, and treat spaces as dashes,
when looking for Qmenu_bar items.  (Bug#50752)

* test/src/keymap-tests.el
(keymap-lookup-key/mixed-case)
(keymap-lookup-key/mixed-case-multibyte)
(keymap-lookup-keymap/with-spaces)
(keymap-lookup-keymap/with-spaces-multibyte)
(keymap-lookup-keymap/with-spaces-multibyte-lang-env): New tests.
2021-10-28 22:21:16 +02:00
Jim Porter
9c95a4fa55 Make comint-term-environment connection-aware (bug#51426)
* lisp/comint.el (comint-term-environment): Make it connection-aware.

* doc/emacs/misc.texi (Shell Options): Document the above change, and
explain how this interacts with 'system-uses-terminfo'.

* etc/NEWS: Announce the above change.
2021-10-28 18:44:39 +02:00
Stefan Kangas
bc4937539e image-dired: Make thumbnail rotation commands obsolete
* lisp/image-dired.el (image-dired-cmd-rotate-thumbnail-program)
(image-dired-cmd-rotate-thumbnail-options)
(image-dired-rotate-thumbnail)
(image-dired-rotate-thumbnail-left)
(image-dired-rotate-thumbnail-right): Make obsolete in favor of
'image-dired-refresh-thumb' and 'image-rotate'.  It makes no sense to
have destructive thumbnail rotation commands now that Emacs can rotate
thumbnails in memory, and it is very fast to just generate a new one
reflecting the rotation of the original.
(image-dired-thumbnail-mode-map): Remove menu entries and key bindings
for above obsolete commands.  The rotate right keybinding had already
been made ineffective by the local keymap added by 'insert-image'.
2021-10-28 02:03:05 +02:00
Stefan Kangas
c70fdcdd11 Increase image-dired-show-all-from-dir-max-files to 500
* lisp/image-dired.el (image-dired-show-all-from-dir-max-files):
Increase default to 500 to ask for confirmation much less frequently.
The old value was added before we had asynchronous generation of
thumbnails, when a large number of files would lock up Emacs.  Asking
for confirmation could probably be disabled completely these days, but
let's be conservative and set it to some large number of files for
which some users might want to see a prompt.  It can't hurt.
(image-dired-show-all-from-dir): Never warn if above variable is nil.
(image-dired-bookmark-jump): Let-bind above variable to nil instead of
'most-positive-fixnum'.
* doc/emacs/dired.texi (Image-Dired): Don't mention the above
variable, as it is no longer important enough to deserve the space.
* etc/NEWS: Announce the above change.
2021-10-27 20:39:10 +02:00
Lars Ingebrigtsen
03366de394 Add new function 'string-pixel-width'
* doc/lispref/display.texi (Size of Displayed Text): Mention it.
* lisp/emacs-lisp/shortdoc.el (string): Mention it.

* lisp/emacs-lisp/subr-x.el (string-pixel-width): New function.
2021-10-27 15:41:32 +02:00
Stefan Kangas
e88be49b9d image-dired: Add support for bookmark.el
* lisp/image-dired.el (image-dired-thumbnail-mode): Add bookmark.el support.
(bookmark-make-record-default, bookmark-prop-get): Declare.
(image-dired-bookmark-name, image-dired-bookmark-make-record)
(image-dired-bookmark-jump): New defuns.
2021-10-27 06:12:25 +02:00
Stefan Kangas
203279a024 Add new function image-at-point-p
* lisp/image.el (image-at-point-p): New defun.
* doc/lispref/display.texi (Showing Images): Document above new defun.
2021-10-27 03:27:08 +02:00
Mattias Engdegård
d8caa3d9fb Rename xref-pop-marker-stack to xref-go-back (bug#38797)
It is the natural name after the addition of `xref-go-forward`.
The old name is retained as an alias.

* lisp/progmodes/xref.el (xref-pop-marker-stack): Rename.
(xref-go-forward, xref-quit-and-pop-marker-stack)
(xref-find-definitions):
* lisp/menu-bar.el (menu-bar-goto-menu):
* lisp/progmodes/etags.el (find-tag-marker-ring, pop-tag-mark):
* lisp/progmodes/prog-mode.el (prog-context-menu):
* doc/emacs/maintaining.texi (Looking Up Identifiers):
* etc/NEWS:
Use the new name.
2021-10-25 20:45:18 +02:00
Mattias Engdegård
65b34f688c Add xref forward history (bug#38797)
Make it possible to go forward as well as back in the Xref history.
The new `xref-go-forward` is bound to `C-M-,`.

* lisp/progmodes/etags.el (find-tag-marker-ring-length): Update.
(tags-location-ring-length): New.
(find-tag-marker-ring): Keep as dummy.
(tags-location-ring, tags-reset-tags-tables):
Use `tags-location-ring-length` instead of `xref-marker-ring-length`.
* lisp/progmodes/xref.el (xref-marker-ring-length, xref-marker-ring)
(xref-set-marker-ring-length):
Make obsolete.
(xref--history, xref-go-forward, xref-forward-history-empty-p): New.
(xref-push-marker-stack, xref-pop-marker-stack)
(xref-clear-marker-stack, xref-marker-stack-empty-p):
Use `xref--history`.
* lisp/menu-bar.el (menu-bar-goto-menu): Add Forward entry.
* doc/emacs/maintaining.texi (Looking Up Identifiers): Document.
* etc/NEWS: Announce.
2021-10-25 17:34:37 +02:00
Martin Rudalics
beaddd87f7 Allow 'display-buffer' to set up body size of chosen window (Bug#17065)
* doc/lispref/windows.texi (Buffer Display Action Alists):
Describe new possible values for 'window-height', 'window-width'
and 'window-size' action alist entries.
* lisp/window.el (window--display-buffer): Handle new values for
'window-height', 'window-width' and 'window-size' ALIST entries.
(display-buffer): Update doc-string for new values of some
action alist entries.
* etc/NEWS: Mention new values of some action alist entries.
2021-10-25 10:42:17 +02:00
Stefan Kangas
709e1e59f0 New function xdg-state-home
* lisp/xdg.el (xdg-state-home): New function.  This returns
$XDG_STATE_HOME according to the XDG Base Directory Specification
version 0.8 (08th May 2021).
2021-10-25 07:56:34 +02:00
Stefan Kangas
79f7e87da5 image-dired: Add support for GraphicsMagick
* lisp/image-dired.el (image-dired-cmd-create-thumbnail-program)
(image-dired-cmd-create-thumbnail-options)
(image-dired-cmd-create-temp-image-program)
(image-dired-cmd-create-temp-image-options)
(image-dired-cmd-rotate-thumbnail-program)
(image-dired-cmd-rotate-thumbnail-options): Add support for the
GraphicsMagick command line tool ("gm convert", "gm mogrify").
2021-10-25 03:50:04 +02:00
Stefan Kangas
057f45abec Support new Thumbnail Managing Standard sizes in image-dired
* lisp/image-dired.el
(image-dired--thumbnail-managing-standard-sizes): New defconst.
(image-dired-thumbnail-storage)
(image-dired-thumb-name, image-dired-insert-thumbnail)
(image-dired-thumb-size, image-dired-create-thumb-1): Support larger
thumbnail sizes mandated by new version of the Thumbnail Managing
Standard (December 2020, Version 0.9.0).
2021-10-25 02:12:48 +02:00
Lars Ingebrigtsen
c2055d41b4 Add new macro `with-delayed-message'
* doc/lispref/display.texi (Progress): Document it.
* lisp/subr.el (with-delayed-message): New macro.

* src/eval.c (with_delayed_message_display)
(with_delayed_message_cancel): Helper functions.
(Ffuncall_with_delayed_message): New function (bug#19776).
2021-10-24 22:21:19 +02:00
Michael Albinus
3dd19f2af0 ; * etc/NEWS: Fix typos. 2021-10-24 17:46:23 +02:00
Stefan Kangas
68d11cc248 Add new option help-link-key-to-documentation
* lisp/help.el (help-link-key-to-documentation): New user option.
(substitute-command-keys): Add a link from keys to the command they
are bound to, if the above new option is non-nil.  (Bug#8951)
* etc/NEWS: Announce the new option.
2021-10-24 16:47:22 +02:00
William Xu
860e8c524b Make dired directory components clickable
* lisp/dired.el (dired-readin): Use it.

* lisp/dired.el (dired-make-directory-clickable): New user option.

* lisp/dired.el (dired--make-directory-clickable): New function
(bug#21973).
2021-10-24 16:15:17 +02:00
Stefan Kangas
ad7fd3cb47 Partially remove exiftool dependency from image-dired.el
* lisp/image-dired.el (exif): Require.
(image-dired-cmd-read-exif-data-program)
(image-dired-cmd-read-exif-data-options)
(image-dired-get-exif-data): Make obsolete in favour of using
exif.el.  This removes a dependency on external exiftool for some
operations.
(image-dired-get-exif-file-name)
(image-dired-thumbnail-set-image-description): Use exif.el
functions instead of exiftool.
* lisp/image/exif.el (exif-tag-alist): Add description and
copyright fields.
* test/lisp/image-dired-tests.el: New file.
2021-10-23 08:31:03 +02:00
Stefan Kangas
bb06d5648e Add new function exif-field
* test/lisp/image/exif-tests.el (exif-elem): Move function from here...
* lisp/image/exif.el (exif-field): ...to here, and rename.
(exif-orientation):
* test/lisp/image/exif-tests.el (test-exif-parse)
(test-exif-parse-short): Use above new function.
2021-10-23 08:13:43 +02:00
Stefan Kangas
bc2a5c1127 Add WebP image format support (Bug#51296)
* configure.ac (--with-webp): New option.
(HAVE_WEBP): New variable.
(emacs_config_features): Add webp.
* src/image.c (enum webp_keyword_index) [HAVE_WEBP]: New enum.
(webp_format) [HAVE_WEBP]: New variable.
(webp_image_p, init_webp_functions, webp_load) [HAVE_WEBP]: New
functions for WebP support.
(image_types) [HAVE_WEBP]: Define WebP format.
(syms_of_image) <Qwebp> [HAVE_WEBP]: New DEFSYM.  Add image type Qwebp.
* src/Makefile.in (LIBIMAGE): Add WEBP_LIBS.

* lisp/files.el (auto-mode-alist):
* lisp/image-file.el (image-file-name-extensions):
* lisp/image.el (image-type-header-regexps)
(image-type-file-name-regexps, image-type-auto-detectable): Add WebP
support.
* lisp/term/w32-win.el (dynamic-library-alist): Add the libwebp DLL.

* INSTALL:
* admin/CPP-DEFINES:
* doc/lispref/display.texi (Image Formats, Other Image Types):
* nt/INSTALL: Document WebP support.

* test/lisp/image-tests.el (image-find-image)
(image-type-from-file-name): Expand tests.
* test/src/image-tests.el (image-tests--files): Add WebP.
(image-tests-image-size/webp, image-tests-image-mask-p/webp)
(image-tests-image-metadata/webp): New tests.
* test/data/image/black.webp: New file.
2021-10-22 10:59:01 +02:00
Lars Ingebrigtsen
65fd3ca84f Support the "medium" font weight
* lisp/faces.el (set-face-attribute): Mention new font weights in
doc string.
* src/font.c (struct table_entry): Allow more synonyms.
(weight_table): Expand to support separating medium and normal
weights.  Also add heavy/ultra-heavy and some other variants.
(font_parse_fcname): Support more names.

* src/gtkutil.c (xg_weight_to_symbol): Support all the Pango weights.
(xg_style_to_symbol): Make into functions.
(xg_get_font): Adjust.

* src/w32font.c (w32_to_fc_weight): Use symbols.

* src/xfaces.c (syms_of_xfaces): Add the new symbols.
2021-10-21 04:30:02 +02:00
Robert Pluim
5f5189e9be ; * etc/NEWS: fix typos 2021-10-20 11:58:07 +02:00
Lars Ingebrigtsen
442101433c Add new macro with-locale-environment
* lisp/international/mule-cmds.el (with-locale-environment): New macro.
(current-locale-environment): New variable.
2021-10-20 09:36:25 +02:00
Lars Ingebrigtsen
90266b8356 Tweak how 'align' and 'align-regexp' align text
* lisp/align.el (align-rules-list): Change to work without `C-u'.
(align): Doc clarification.
(align-regexp): Ditto, and change default `C-u' regexp from
"\\(\\s-*\\)" to "\\(\\s-*\\)" so that it'll make things columnar
if the user just hits RET through all the defaults.
2021-10-19 22:39:05 +02:00
Lars Ingebrigtsen
53bea8796d Make downcasing unibyte strings in Turkish less wrong
* src/casefiddle.c (ascii_casify_character): New function.
(do_casify_unibyte_string): Use it to make downcasing tr_TR.UTF-8
"I" less wrong.
(Fdowncase): Mention caveats.
(Fupcase):
(Fcapitalize):
(Fupcase_initials): Refer to details in `downcase'.
(syms_of_casefiddle): Define more symbols.
2021-10-19 20:36:54 +02:00
Michael Albinus
f6826800ea * etc/NEWS: Move sql entry up. Fix typos. 2021-10-19 09:43:34 +02:00
Michael R. Mauger
0be85f2217 SQL mode supports sending passwords in process 2021-10-19 00:18:17 -04:00
Lars Ingebrigtsen
84d8df5970 Mention that we now install the pdmp file with a fingerprinted name 2021-10-18 10:48:45 +02:00
Lars Ingebrigtsen
32df203423 Remove the "def" indentation heuristic
* lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Don't
indent function calls with names that that start with "def"
specially (bug#43329).
2021-10-18 10:00:20 +02:00
Daniel Martín
9f505c476e New option show-paren-context-when-offscreen
* lisp/simple.el (blink-paren-open-paren-line-string): Extract
functionality that shows the open paren line in the echo area into its
own function, to reuse it from paren.el.
(blink-matching-open): Use blink-paren-open-paren-line-string.
* lisp/paren.el (show-paren-context-when-offscreen): New option
show-paren-context-when-offscreen.
(show-paren-function): Implement it using
blink-paren-open-paren-line-string.
* lisp/emacs-lisp/eldoc.el (eldoc-display-message-no-interference-p):
Make sure the feature works well with eldoc.
* test/lisp/paren-tests.el (paren-tests-open-paren-line): Test
blink-paren-open-paren-line-string.
* doc/emacs/programs.texi (Matching): Update the documentation.
* etc/NEWS: And announce the new feature.
2021-10-18 09:26:44 +02:00
Lars Ingebrigtsen
e36d3fc452 Support a new ["..."] key binding syntax
* doc/lispref/keymaps.texi (Key Sequences):
(Changing Key Bindings): Document the various key syntaxes.

* lisp/emacs-lisp/byte-opt.el (byte-optimize-define-key)
(byte-optimize-define-keymap)
(byte-optimize-define-keymap--define): New functions to check and
expand ["..."] syntax at compile time.

* src/keymap.c (Fdefine_key): Understand the ["..."] syntax.
(syms_of_keymap): Define `kbd' symbols.
2021-10-17 20:51:31 +02:00
Lars Ingebrigtsen
4c468c6b3c Add new function 'kbd-valid-p'
* doc/lispref/keymaps.texi (Key Sequences): New function
'kbd-valid-p'.

* lisp/subr.el (kbd-valid-p): Document it.
2021-10-16 17:50:40 +02:00
Stefan Kangas
e082a16284 Make kbd usable during bootstrap
* lisp/subr.el (kbd): Make 'kbd' usable during bootstrap by copying
the definition of 'read-kbd-macro' into it, and adjusting it to no
longer use CL-Lib functions.

This change was discussed in:
https://lists.gnu.org/r/emacs-devel/2021-10/msg00909.html
2021-10-16 16:06:55 +02:00