aboutsummaryrefslogtreecommitdiff
path: root/sx.el
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-01-16 12:16:45 -0200
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-01-16 12:16:45 -0200
commit402bac079cd32d1260ea839667db639f94f4254e (patch)
tree1eaeea3e78200995ad746251a83624b81a99ec35 /sx.el
parent6378af6a432f42b99487631117d3ee781fa17b0b (diff)
parent389e433953bba4003b102748dbbf5f8a9b421a51 (diff)
Merge branch 'master' into malabarba/fix-display-from-inbox
Conflicts: sx.el
Diffstat (limited to 'sx.el')
-rw-r--r--sx.el21
1 files changed, 14 insertions, 7 deletions
diff --git a/sx.el b/sx.el
index 785e0c4..e9cd01d 100644
--- a/sx.el
+++ b/sx.el
@@ -325,6 +325,20 @@ ID is an integer."
(when (looking-at-p "$")
(forward-char 1)))))
+(defmacro sx--create-comparator (name doc compare-func get-func)
+ "Define a new comparator called NAME with documentation DOC.
+COMPARE-FUNC is a function that takes the return value of
+GET-FUNC and performs the actual comparison."
+ (declare (indent 1) (doc-string 2))
+ `(progn
+ ;; In using `defalias', the macro supports both function
+ ;; symbols and lambda expressions.
+ (defun ,name (a b)
+ ,doc
+ (funcall ,compare-func
+ (funcall ,get-func a)
+ (funcall ,get-func b)))))
+
;;; Printing request data
(defvar sx--overlays nil
@@ -420,13 +434,6 @@ Run after `sx-init--internal-hook'."
This is used internally to set initial values for variables such
as filters.")
-(defun sx--< (property x y &optional predicate)
- "Non-nil if PROPERTY attribute of alist X is less than that of Y.
-With optional argument PREDICATE, use it instead of `<'."
- (funcall (or predicate #'<)
- (cdr (assoc property x))
- (cdr (assoc property y))))
-
(defmacro sx-init-variable (variable value &optional setter)
"Set VARIABLE to VALUE using SETTER.
SETTER should be a function of two arguments. If SETTER is nil,