From b79cfaaf14a7aa7e8bb56fc4063bd007e0edc69a Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sat, 2 Jul 2022 17:58:56 +0200 Subject: [PATCH] Filter out nul bytes when killing from a *grep* buffer * lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes (bug#48321). --- lisp/progmodes/grep.el | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el index a3ef90f397e..4f90a534440 100644 --- a/lisp/progmodes/grep.el +++ b/lisp/progmodes/grep.el @@ -885,6 +885,14 @@ The value depends on `grep-command', `grep-template', (setq-local compilation-disable-input t) (setq-local compilation-error-screen-columns grep-error-screen-columns) + ;; We normally use a nul byte to separate the file name from the + ;; contents, but display it as ":". That's fine, but when yanking + ;; to other buffers, it's annoying to have the nul byte there. + (unless kill-transform-function + (setq-local kill-transform-function #'identity)) + (add-function :filter-return (local 'kill-transform-function) + (lambda (string) + (string-replace "\0" ":" string))) (add-hook 'compilation-filter-hook #'grep-filter nil t)) (defun grep--save-buffers () -- 2.39.2