]> git.eshelyaron.com Git - emacs.git/commit
Add support for 'yank-media' on MS-Windows
authorCecilio Pardo <cpardo@imayhem.com>
Mon, 28 Oct 2024 21:18:13 +0000 (22:18 +0100)
committerEshel Yaron <me@eshelyaron.com>
Fri, 8 Nov 2024 13:29:27 +0000 (14:29 +0100)
commit767ff6ab0a9ba736d2b699573738d024051640ad
treecab3c5b1b9a3ea10d061a25bbc2cec7c2a54eaa1
parente5efa71930ab77d844ab24989d48f5ba88375b2c
Add support for 'yank-media' on MS-Windows

Adds the capacity to handle types different from strings to the
clipboard management functions on MS-Windows, and some logic
required to convert media types names and content to be what
yank-media and the modes that use it expect (bug#71909).
* lisp/term/w32-win.el (w32--selection-target-translations): New
variable that holds the name translations for media types.
(w32--translate-selection-target): New function, translate the
name of a media type.
(w32--translate-reverse-selection-target): New function, reverse
translation.
(w32--get-selection): Modified to translate target names when
asked for targets, and retrieve media types when asked for them.
(w32--mime-type-textual-p): New function, checks if a MIME type
is textual.
* lisp/textmodes/sgml-mode.el (html-mode--image-yank-handler):
Fixed the image save mechanism, that added line feed characters
on MS-Windows, breaking binary formats.
* src/w32image.c (gdiplus_init): Modified to fetch more
functions fromm gdiplus.
(get_encoder_clsid): Renamed to 'w32_gdip_get_encoder_clsid'
and made nonstatic.
(gdiplus_startup): Renamed to 'w32_gdiplus_startup' and
made nonstatic.
* src/w32select.c (stdfmt_name): Made global, was static
function.
(convert_dibv5_to_png): New function to convert DIBV5 clipboard
format to PNG.
(get_clipboard_format_name): New function get the name of a
format given its index.
(Fw32__get_clipboard_data_media): New function, retrieves and
converts media content.
(syms_of_w32select): Export new lisp functions.
* src/w32gdiplus.h: New file, for definitions in w32image.c
* doc/lispref/frames.texi: Updated with MS-Windows support.
* etc/NEWS: Added entry about new feature.

(cherry picked from commit 8e7f5f97db647ce6e9606364dc15d8bbd7ef6016)
doc/lispref/frames.texi
etc/NEWS
lisp/term/w32-win.el
lisp/textmodes/sgml-mode.el
src/w32gdiplus.h [new file with mode: 0644]
src/w32gui.h
src/w32image.c
src/w32select.c