branch: externals/clipboard-collector
commit dc4b60f2cd743ef6f27f94cdb465942d597775f6
Author: Clemens Radermacher <[email protected]>
Commit: Clemens Radermacher <[email protected]>
Cancel on error
---
README.org | 2 +-
clipboard-collector.el | 20 ++++++++++++--------
2 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/README.org b/README.org
index 6c992a1..7a13e1f 100644
--- a/README.org
+++ b/README.org
@@ -54,5 +54,5 @@ regex in that function, too:
#+BEGIN_SRC elisp
(clipboard-collector-create cc-url
- (("https?://\\(.*\\)" "Url: %s" (lambda (item) (match-string 1 item)))))
+ (("https?://\\([^/]*\\)" "Url: %s" (lambda (item) (match-string 1 item)))))
#+END_SRC
diff --git a/clipboard-collector.el b/clipboard-collector.el
index a980b83..94efc08 100644
--- a/clipboard-collector.el
+++ b/clipboard-collector.el
@@ -51,6 +51,7 @@ Rules used are defined in `clipboard-collector--rules'."
(setq clipboard-collector--finish-function
#'clipboard-collector-finish-default)
(setq clipboard-collector--rules '((".*" "%s")))
+ ;; reset clip data
(setq clipboard-collector--last-clip "")
(funcall interprogram-cut-function "")
(setq clipboard-collector--items nil)
@@ -87,14 +88,17 @@ contents transformed according to matched rule."
(defun clipboard-collector--try-collect ()
"If Clibboard changed and matches rule collect it."
- (let ((clip (gui-get-selection 'CLIPBOARD))
- (item nil))
- (when (and (not (string-empty-p clip))
- (not (string= clip
- clipboard-collector--last-clip))
- (setq item (clipboard-collector--apply-rule clip)))
- (setq clipboard-collector--last-clip clip)
- (clipboard-collector--collect item))))
+ (condition-case nil
+ (let ((clip (gui-get-selection 'CLIPBOARD))
+ (item nil))
+ (when (and (not (string-empty-p clip))
+ (not (string= clip
+ clipboard-collector--last-clip))
+ (setq item (clipboard-collector--apply-rule clip)))
+ (setq clipboard-collector--last-clip clip)
+ (clipboard-collector--collect item)))
+ (error (progn (message "Error during clipboard collection, exited
`clipboard-collector-mode'")
+ (clipboard-collector-mode -1)))))
(defvar clipboard-collector--items nil