[Top][All Lists]

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

master bb4399f 2/2: cedet/ede/auto.el:

From: Stefan Monnier
Subject: master bb4399f 2/2: cedet/ede/auto.el:
Date: Mon, 11 Jan 2021 16:21:05 -0500 (EST)

branch: master
commit bb4399f647f0977fe560283351b325d2816cd129
Author: Eric Ludlam <zappo@gnu.org>
Commit: Stefan Monnier <monnier@iro.umontreal.ca>

    (ede-calc-fromconfig): New method.  Support functions in addition to
    string matchers.
    (ede-dirmatch-installed, ede-do-dirmatch):
    Use `ede-calc-fromconfig' to do conversion.
    Author: Eric Ludlam <zappo@gnu.org>
 lisp/cedet/ede/auto.el | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/lisp/cedet/ede/auto.el b/lisp/cedet/ede/auto.el
index ee75e29..e1417d7 100644
--- a/lisp/cedet/ede/auto.el
+++ b/lisp/cedet/ede/auto.el
@@ -64,24 +64,22 @@ location is varied dependent on other complex criteria, 
this class
 can be used to define that match without loading the specific project
 into memory.")
+(cl-defmethod ede-calc-fromconfig ((dirmatch ede-project-autoload-dirmatch))
+  "Calculate the value of :fromconfig from DIRMATCH."
+  (let* ((fc (oref dirmatch fromconfig))
+        (found (cond ((stringp fc) fc)
+                     ((functionp fc) (funcall fc))
+                     (t (error "Unknown dirmatch object match style.")))))
+    (expand-file-name found)
+    ))
 (cl-defmethod ede-dirmatch-installed ((dirmatch ede-project-autoload-dirmatch))
   "Return non-nil if the tool DIRMATCH might match is installed on the system."
-  (let ((fc (oref dirmatch fromconfig)))
-    (cond
-     ;; If the thing to match is stored in a config file.
-     ((stringp fc)
-      (file-exists-p fc))
-     ;; Add new types of dirmatches here.
-     ;; Error for weird stuff
-     (t (error "Unknown dirmatch type.")))))
+  (file-exists-p (ede-calc-fromconfig dirmatch)))
 (cl-defmethod ede-do-dirmatch ((dirmatch ede-project-autoload-dirmatch) file)
   "Does DIRMATCH match the filename FILE."
-  (let ((fc (oref dirmatch fromconfig)))
+  (let ((fc (ede-calc-fromconfig dirmatch)))
      ;; If the thing to match is stored in a config file.

reply via email to

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