emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/clipboard-collector dc4b60f 20/31: Cancel on error


From: Stefan Monnier
Subject: [elpa] externals/clipboard-collector dc4b60f 20/31: Cancel on error
Date: Sun, 6 Jan 2019 17:16:21 -0500 (EST)

branch: externals/clipboard-collector
commit dc4b60f2cd743ef6f27f94cdb465942d597775f6
Author: Clemens Radermacher <address@hidden>
Commit: Clemens Radermacher <address@hidden>

    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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]