Some browers send eg 'text/html' selections formatted as UTF-8, but
with a type of STRING, which actually means iso-latin-1. Autodetect
the correct coding system to use by calling 'gui-get-selection'.
* lisp/yank-media.el (yank-media--get-selection): Call
'gui-get-selection' instead of 'gui-backend-get-selection'.
* lisp/yank-media.el (yank-media--get-selection): Put the
nul-massaging code...
(yank-media-types--format): ... here instead, and decode utf-16
better.
* lisp/textmodes/sgml-mode.el (html-mode):
* lisp/gnus/message.el (message-mode):
* doc/lispref/frames.texi (Yanking Media): Adjust.
* lisp/yank-media.el (yank-media): Adjust doc string.
(yank-media-handler): Rename from `register-' because that may
cause confusion with register.el functions.
* lisp/yank-media.el (yank-media--get-selection): Use
gui-backend-get-selection instead of the higher-level function
which guesses wrong on the charset on many types.
(yank-media): Fix the case where there's only one match.
* doc/emacs/killing.texi (Clipboard): Refer to it.
* doc/lispref/frames.texi (Yanking Media): Document the mechanism.
* lisp/yank-media.el: New file.
* lisp/gnus/message.el (message-mode): Register a yank handler for
images.
(message-insert-screenshot): Factor out image code from here...
(message--yank-media-image-handler): ... to here.