From dc4b60f2cd743ef6f27f94cdb465942d597775f6 Mon Sep 17 00:00:00 2001 From: Clemens Radermacher Date: Tue, 18 Dec 2018 19:54:29 +0100 Subject: 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 -- cgit v1.0