Subject: bug#64423: 29.0.92; save-interprogram-paste-before-kill doesn't prevent streaming large selections

From: Eli Zaretskii <[email-masked]>
Date: Thu, 13 Jul 2023 21:39:51 +0300

> From: [email-masked]
> Date: Thu, 13 Jul 2023 16:17:32 +0000 (UTC)
> Cc: [email-masked], [email-masked], [email-masked]
> 
> > You can do it in a way that is not objectionable to either of us.  It
> > is very simple: make the changes conditioned on X.
> 
> OK, how about this?
> 
> modified   lisp/simple.el
> @@ -5618,8 +5618,11 @@ kill-new
>        (if (fboundp 'menu-bar-update-yank-menu)
>  	  (menu-bar-update-yank-menu string (and replace (car kill-ring)))))
>      (when save-interprogram-paste-before-kill
> -      (let ((interprogram-paste (and interprogram-paste-function
> -                                     (funcall interprogram-paste-function))))
> +      (let ((interprogram-paste
> +             (and interprogram-paste-function
> +                  (if (eq (window-system) 'x)
> +                      (ignore-error 'quit (funcall interprogram-paste-function))
> +                    (funcall interprogram-paste-function)))))
>          (when interprogram-paste
>            (setq interprogram-paste
>                  (if (listp interprogram-paste)

Fine by me, but please add a comment there explaining why we do that
on X.

Thanks.