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

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

[elpa] externals/rt-liberation 0e2e19d 11/15: * rt-liberation.el: solve


From: Yoni Rabkin
Subject: [elpa] externals/rt-liberation 0e2e19d 11/15: * rt-liberation.el: solve macro compilation problem
Date: Wed, 17 Feb 2021 12:52:33 -0500 (EST)

branch: externals/rt-liberation
commit 0e2e19d2d12154ede1a9f9581a9c26a8ffca86b8
Author: Yoni Rabkin <yoni@rabkins.net>
Commit: Yoni Rabkin <yoni@rabkins.net>

    * rt-liberation.el: solve macro compilation problem
---
 rt-liberation.el | 80 ++++++++++++++++++++++++++++----------------------------
 1 file changed, 40 insertions(+), 40 deletions(-)

diff --git a/rt-liberation.el b/rt-liberation.el
index 38761da..73a6c0a 100644
--- a/rt-liberation.el
+++ b/rt-liberation.el
@@ -269,39 +269,40 @@ This variable is made buffer local for the ticket 
history")
 ;;; --------------------------------------------------------
 ;;; TicketSQL compiler
 ;;; --------------------------------------------------------
-(defun rt-liber-bool-p (sym)
-  "Return t if SYM is a boolean operator, otherwise nil."
-  (member sym '(and or)))
-(defun rt-liber-attrib-p (sym)
-  "Return t if SYM is a ticket attribute, otherwise nil."
-  (member sym '(id owner status subject content queue lastupdatedby
-                  email-address)))
-(defun rt-liber-time-p (sym)
-  "Return t if SYM is a temporal attribute, otherwise nil."
-  (member sym '(created lastupdated resolved)))
-(defun rt-liber-negation-p (sym)
-  (member sym '(not)))
-
-(defun rt-liber-reduce (op seq)
-  "Reduce-OP with SEQ to a string of \"s0 op s1 op s2..\"."
-  (if seq
-      (cl-reduce
-       #'(lambda (a b)
-          (format "%s %s %s" a op b))
-       seq)
-    ""))
-
-(defun rt-liber-make-interval (pred before after)
-  "Return a formatted TicketSQL interval.
+(eval-and-compile ;; for use in macro `rt-liber-compile-query'
+  (defun rt-liber-bool-p (sym)
+    "Return t if SYM is a boolean operator, otherwise nil."
+    (member sym '(and or)))
+  (defun rt-liber-attrib-p (sym)
+    "Return t if SYM is a ticket attribute, otherwise nil."
+    (member sym '(id owner status subject content queue lastupdatedby
+                    email-address)))
+  (defun rt-liber-time-p (sym)
+    "Return t if SYM is a temporal attribute, otherwise nil."
+    (member sym '(created lastupdated resolved)))
+  (defun rt-liber-negation-p (sym)
+    (member sym '(not)))
+
+  (defun rt-liber-reduce (op seq)
+    "Reduce-OP with SEQ to a string of \"s0 op s1 op s2..\"."
+    (if seq
+       (cl-reduce
+        #'(lambda (a b)
+            (format "%s %s %s" a op b))
+        seq)
+      ""))
+
+  (defun rt-liber-make-interval (pred before after)
+    "Return a formatted TicketSQL interval.
 PRED   temporal attribute predicate.
 BEFORE date before predicate.
 AFTER  date after predicate."
-  (when (string= before "") (setq before nil))
-  (when (string= after "") (setq after nil))
-  (concat
-   (if before (format "%s < '%s'" pred before) "")
-   (if (and before after) (format " AND ") "")
-   (if after (format "%s > '%s'" pred after) "")))
+    (when (string= before "") (setq before nil))
+    (when (string= after "") (setq after nil))
+    (concat
+     (if before (format "%s < '%s'" pred before) "")
+     (if (and before after) (format " AND ") "")
+     (if after (format "%s > '%s'" pred after) ""))))
 
 (defmacro rt-liber-compile-query (query &optional n)
   "Compile sexp-based QUERY into TicketSQL."
@@ -493,15 +494,6 @@ AFTER  date after predicate."
     (error "null field symbol"))
   (cdr (assoc field-symbol rt-liber-field-dictionary)))
 
-(defun rt-liber-display-ticket (ticket-number)
-  "Display ticket with TICKET-NUMBER."
-  (interactive "nticket number: ")
-  (let ((ticket-id (number-to-string ticket-number)))
-    (rt-liber-browse-query
-     (rt-liber-compile-query
-      (id ticket-id))
-     (concat "#" ticket-id))))
-
 
 ;;; --------------------------------------------------------
 ;;; Ticket browser
@@ -1449,7 +1441,6 @@ ASSOC-BROWSER if non-nil should be a ticket browser."
        (desc      (alist-get 'Description section))
        (oldvalue  (alist-get 'OldValue section))
        (newvalue  (alist-get 'NewValue section))
-       (field     (alist-get 'Field section))
        (s-content (rt-liber-viewer2-format-content
                    (alist-get 'Content section))))
     (when (not (or (string= type "CommentEmailRecord")
@@ -1623,6 +1614,15 @@ ASSOC-BROWSER if non-nil should be a ticket browser."
        (lambda (&optional _noconfirm) 'slow))
   (run-hooks 'rt-liber-viewer-hook))
 
+(defun rt-liber-display-ticket (ticket-number)
+  "Display ticket with TICKET-NUMBER."
+  (interactive "nticket number: ")
+  (let ((ticket-id (number-to-string ticket-number)))
+    (rt-liber-browse-query
+     (rt-liber-compile-query
+      (id ticket-id))
+     (concat "#" ticket-id))))
+
 
 (provide 'rt-liberation)
 



reply via email to

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