From 8e8c1a72149bf3d10d995979f4e76c3d38352820 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Wed, 15 Oct 2008 14:44:02 +0000 Subject: [PATCH] (Low-Level Kill Ring): interprogram-paste-function can now return a list of strings. --- doc/lispref/ChangeLog | 3 +++ doc/lispref/text.texi | 29 ++++++++++++++++++++--------- etc/NEWS | 1 + 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 4217dc72c4..a0ffb90ffb 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,5 +1,8 @@ 2008-10-15 Eli Zaretskii + * text.texi (Low-Level Kill Ring): interprogram-paste-function can + now return a list of strings. + * control.texi (Handling Errors): Document ignore-errors. * frames.texi (Creating Frames): Document frame-inherited-parameters. diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index ac2fb09072..2b3cb6a26c 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -1054,12 +1054,13 @@ If @var{n} is zero, indicating a request for the latest kill, @code{current-kill} calls the value of @code{interprogram-paste-function} (documented below) before consulting the kill ring. If that value is a function and calling it -returns a string, @code{current-kill} pushes that string onto the kill -ring and returns it. It also sets the yanking pointer to point to -that new entry, regardless of the value of @var{do-not-move}. -Otherwise, @code{current-kill} does not treat a zero value for @var{n} -specially: it returns the entry pointed at by the yanking pointer and -does not move the yanking pointer. +returns a string or a list of several string, @code{current-kill} +pushes the strings onto the kill ring and returns the first string. +It also sets the yanking pointer to point to that new entry, +regardless of the value of @var{do-not-move}. Otherwise, +@code{current-kill} does not treat a zero value for @var{n} specially: +it returns the entry pointed at by the yanking pointer and does not +move the yanking pointer. @end defun @defun kill-new string &optional replace yank-handler @@ -1102,9 +1103,19 @@ If the value is a function, @code{current-kill} calls it to get the then that value is used as the ``most recent kill.'' If it returns @code{nil}, then the front of the kill ring is used. -The normal use of this hook is to get the window system's primary +To facilitate support for window systems that support multiple +selections, this function may also return a list of strings. In that +case, the first string is used as the ``most recent kill'', and all +the other strings are pushed onto the kill ring, for easy access by +@code{yank-pop}. + +The normal use of this function is to get the window system's primary selection as the most recent kill, even if the selection belongs to -another application. @xref{Window System Selections}. +another application. @xref{Window System Selections}. However, if +the selection was provided by the current Emacs session, this function +should return @code{nil}. (If it is hard to tell whether Emacs or +some other program provided the selection, it should be good enough to +use @code{string=} to compare it with the last text Emacs provided.) @end defvar @defvar interprogram-cut-function @@ -1118,7 +1129,7 @@ The second, optional, argument has the same meaning as the @var{push} argument to @code{x-set-cut-buffer} (@pxref{Definition of x-set-cut-buffer}) and only affects the second and later cut buffers. -The normal use of this hook is to set the window system's primary +The normal use of this function is to set the window system's primary selection (and first cut buffer) from the newly killed text. @xref{Window System Selections}. @end defvar diff --git a/etc/NEWS b/etc/NEWS index 5f6b67abdc..151f9a096c 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1131,6 +1131,7 @@ this map rather than to function-key-map now. +++ ** `ignore-errors' is now a standard macro (does not require the CL package). ++++ ** `interprogram-paste-function' can now return one string or a list of strings. In the latter case, Emacs puts the second and following strings on the kill ring. -- 2.20.1