branch: elpa/orgit
commit 0444b8659620e5100ab8d09694c6ffe6841b24cd
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>

    Use Cond-Let package
---
 orgit.el | 79 +++++++++++++++++++++++++++++++++-------------------------------
 1 file changed, 41 insertions(+), 38 deletions(-)

diff --git a/orgit.el b/orgit.el
index 8b36b1d3af6..430b4380465 100644
--- a/orgit.el
+++ b/orgit.el
@@ -8,10 +8,11 @@
 
 ;; Package-Version: 2.1.0
 ;; Package-Requires: (
-;;     (emacs  "28.1")
-;;     (compat "30.1")
-;;     (magit   "4.4")
-;;     (org     "9.7"))
+;;     (emacs   "28.1")
+;;     (compat  "30.1")
+;;     (cond-let "0.2")
+;;     (magit    "4.4")
+;;     (org      "9.7"))
 
 ;; SPDX-License-Identifier: GPL-3.0-or-later
 
@@ -93,6 +94,7 @@
 
 (require 'cl-lib)
 (require 'compat)
+(require 'cond-let)
 (require 'format-spec)
 (require 'magit)
 (require 'org)
@@ -384,13 +386,12 @@ stores a link itself, without calling this function.
 
 When the region selects one or more commits, e.g., in a log, then
 store links to the Magit-Revision mode buffers for these commits."
-  (cond ((eq major-mode 'magit-revision-mode)
-         (orgit-rev-store-1 magit-buffer-revision))
-        ((derived-mode-p 'magit-mode)
-         (when-let* ((revs (magit-region-values 'commit)))
-           ;; Cannot use and-let* because of debbugs#31840.
-           (mapc #'orgit-rev-store-1 revs)
-           t))))
+  (cond-let ((eq major-mode 'magit-revision-mode)
+             (orgit-rev-store-1 magit-buffer-revision))
+            ([_(derived-mode-p 'magit-mode)]
+             [revs (magit-region-values 'commit)]
+             (mapc #'orgit-rev-store-1 revs)
+             t)))
 
 (defun orgit-rev-store-1 (rev)
   (pcase-let* ((repo (orgit--current-repository))
@@ -440,35 +441,33 @@ store links to the Magit-Revision mode buffers for these 
commits."
 (defun orgit-export (path desc format gitvar idx)
   (pcase-let* ((`(,dir ,rev) (split-string path "::"))
                (dir (orgit--repository-directory dir)))
-    (if (file-exists-p dir)
-        (let* ((default-directory dir)
-               (remotes (magit-git-lines "remote"))
-               (remote  (magit-get "orgit.remote"))
-               (remote  (cond ((length= remotes 1) (car remotes))
-                              ((member remote remotes) remote)
-                              ((member orgit-remote remotes) orgit-remote))))
-          (if remote
-              (if-let ((link
-                        (or (and-let* ((url (magit-get "orgit" gitvar)))
-                              (format-spec url `((?r . ,rev))))
-                            (and-let* ((url (magit-get "remote" remote "url"))
-                                       (format (cl-find-if
-                                                (lambda (elt)
-                                                  (string-match (car elt) url))
-                                                orgit-export-alist)))
-                              (format-spec (nth idx format)
-                                           `((?n . ,(match-string 1 url))
-                                             (?r . ,rev)))))))
-                  (orgit--format-export link desc format)
-                (signal 'org-link-broken
-                        (list (format "Cannot determine public url for %s"
-                                      path))))
-            (signal 'org-link-broken
-                    (list (format "Cannot determine public remote for %s"
-                                  default-directory)))))
+    (cond-let*
+     ((not (file-exists-p dir))
       (signal 'org-link-broken
               (list (format "Cannot determine public url for %s %s"
-                            path "(which itself does not exist)"))))))
+                            path "(which itself does not exist)"))))
+     [[default-directory dir]
+      [remotes (magit-git-lines "remote")]
+      [remote  (magit-get "orgit.remote")]
+      [remote  (cond ((length= remotes 1) (car remotes))
+                     ((member remote remotes) remote)
+                     ((member orgit-remote remotes) orgit-remote))]]
+     ((not remote)
+      (signal 'org-link-broken
+              (list (format "Cannot determine public remote for %s"
+                            default-directory))))
+     ([url (magit-get "orgit" gitvar)]
+      (orgit--format-export (format-spec url `((?r . ,rev))) desc format))
+     ([url (magit-get "remote" remote "url")]
+      [format (cl-find-if (lambda (elt)
+                            (string-match (car elt) url))
+                          orgit-export-alist)]
+      (orgit--format-export (format-spec (nth idx format)
+                                         `((?n . ,(match-string 1 url))
+                                           (?r . ,rev)))
+                            desc format))
+     ((signal 'org-link-broken
+              (list (format "Cannot determine public url for %s" path)))))))
 
 (defun orgit--format-export (link desc format)
   (pcase format
@@ -497,5 +496,9 @@ store links to the Magit-Revision mode buffers for these 
commits."
 (provide 'orgit)
 ;; Local Variables:
 ;; indent-tabs-mode: nil
+;; read-symbol-shorthands: (
+;;   ("and-let"  . "cond-let--and-let")
+;;   ("if-let"   . "cond-let--if-let")
+;;   ("when-let" . "cond-let--when-let"))
 ;; End:
 ;;; orgit.el ends here

Reply via email to