summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Politz <politza@hochschule-trier.de>2019-10-22 22:14:33 +0200
committerAndreas Politz <politza@hochschule-trier.de>2019-10-22 22:14:33 +0200
commitf29f967fa41b6c0c82051e61b80bba6ff52b3de1 (patch)
tree332992db43e351a9f84867360c16ebdd9106c8a5
parent3407af25899c9bc0cb7b710e86ba316ab622f2c7 (diff)
Adds a pdf-aware shell-on-region commandfeature/shell-command-on-region
-rw-r--r--lisp/pdf-view.el24
1 files changed, 24 insertions, 0 deletions
diff --git a/lisp/pdf-view.el b/lisp/pdf-view.el
index d7adb48..5e57ebe 100644
--- a/lisp/pdf-view.el
+++ b/lisp/pdf-view.el
@@ -309,6 +309,8 @@ regarding display of the region in the later function.")
(define-key map [remap kill-region] 'pdf-view-kill-ring-save)
(define-key map [remap kill-ring-save] 'pdf-view-kill-ring-save)
(define-key map [remap mark-whole-buffer] 'pdf-view-mark-whole-page)
+ (define-key map [remap shell-command-on-region]
+ 'pdf-view-shell-command-on-region-command)
;; Other
(define-key map (kbd "C-c C-d") 'pdf-view-dark-minor-mode)
(define-key map (kbd "m") 'pdf-view-position-to-register)
@@ -1503,6 +1505,28 @@ the `convert' programm is used."
(dolist (f (cons result images))
(when (file-exists-p f)
(delete-file f))))))
+
+(defun pdf-view-shell-command-on-region-command (command
+ &optional error-buffer
+ display-error-buffer)
+ "Execute string COMMAND in inferior shell with current region as input.
+
+This is a pdf-aware version of `shell-command-on-region', which see."
+ (interactive
+ (progn
+ (unless (pdf-view-active-region-p)
+ (user-error "The region is not active"))
+ (list (read-shell-command "Shell command on region: ")
+ current-prefix-arg
+ shell-command-default-error-buffer)))
+ (pdf-view-assert-active-region)
+ (let ((text (mapconcat #'identity (pdf-view-active-region-text) "\n")))
+ (with-temp-buffer
+ (insert text)
+ (shell-command-on-region
+ (point-min) (point-max)
+ command nil nil error-buffer display-error-buffer))))
+
;; * ================================================================== *
;; * Bookmark + Register Integration