From: Lars Ingebrigtsen Date: Sat, 2 Jul 2022 15:58:56 +0000 (+0200) Subject: Filter out nul bytes when killing from a *grep* buffer X-Git-Tag: emacs-29.0.90~1447^2~1259 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b79cfaaf14a7aa7e8bb56fc4063bd007e0edc69a;p=emacs.git Filter out nul bytes when killing from a *grep* buffer * lisp/progmodes/grep.el (grep-mode): Filter out the nul bytes (bug#48321). --- 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 ()