[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 8255eb5: * lisp/net/eudc-bob.el (eudc-bob-pipe-object-to-external
From: |
Stefan Monnier |
Subject: |
master 8255eb5: * lisp/net/eudc-bob.el (eudc-bob-pipe-object-to-external-program): Simplify |
Date: |
Sat, 15 Aug 2020 22:44:21 -0400 (EDT) |
branch: master
commit 8255eb526f53d9e4532cfedb8de25f39365f99bc
Author: Stefan Monnier <monnier@iro.umontreal.ca>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>
* lisp/net/eudc-bob.el (eudc-bob-pipe-object-to-external-program): Simplify
Use `with-temp-buffer`.
---
lisp/net/eudc-bob.el | 30 ++++++++++++------------------
1 file changed, 12 insertions(+), 18 deletions(-)
diff --git a/lisp/net/eudc-bob.el b/lisp/net/eudc-bob.el
index 1d7005b..bb66825 100644
--- a/lisp/net/eudc-bob.el
+++ b/lisp/net/eudc-bob.el
@@ -230,26 +230,20 @@ display a button."
(coding-system-for-write 'binary)) ;Inhibit EOL conversion.
(write-region data nil filename)))
-(defun eudc-bob-pipe-object-to-external-program ()
+(defun eudc-bob-pipe-object-to-external-program (program)
"Pipe the object data of the button at point to an external program."
- (interactive)
+ (interactive (list (completing-read "Viewer: " eudc-external-viewers)))
(let ((data (eudc-bob-get-overlay-prop 'object-data))
- (buffer (generate-new-buffer "*eudc-tmp*"))
- program
- viewer)
- (condition-case nil
- (save-excursion
- (set-buffer-file-coding-system 'binary)
- (set-buffer buffer)
- (insert data)
- (setq program (completing-read "Viewer: " eudc-external-viewers))
- (if (setq viewer (assoc program eudc-external-viewers))
- (call-process-region (point-min) (point-max)
- (car (cdr viewer))
- (cdr (cdr viewer)))
- (call-process-region (point-min) (point-max) program)))
- (error
- (kill-buffer buffer)))))
+ (viewer (assoc program eudc-external-viewers)))
+ (with-temp-buffer
+ (set-buffer-multibyte nil)
+ (insert data)
+ (let ((coding-system-for-write 'binary)) ;Inhibit EOL conversion
+ (if viewer
+ (call-process-region (point-min) (point-max)
+ (car (cdr viewer))
+ (cdr (cdr viewer)))
+ (call-process-region (point-min) (point-max) program))))))
(defun eudc-bob-menu ()
"Retrieve the menu attached to a binary object."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 8255eb5: * lisp/net/eudc-bob.el (eudc-bob-pipe-object-to-external-program): Simplify,
Stefan Monnier <=