Function: org-entries-lessp

org-entries-lessp is a byte-compiled function defined in org-agenda.el.gz.

Signature

(org-entries-lessp A B)

Documentation

Predicate for sorting agenda entries.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-agenda.el.gz
(defun org-entries-lessp (a b)
  "Predicate for sorting agenda entries."
  ;; The following variables will be used when the form is evaluated.
  ;; So even though the compiler complains, keep them.
  (let ((ss org-agenda-sorting-strategy-selected))
    (org-dlet
	((timestamp-up    (and (org-em 'timestamp-up 'timestamp-down ss)
			       (org-cmp-ts a b "")))
	 (timestamp-down  (if timestamp-up (- timestamp-up) nil))
	 (scheduled-up    (and (org-em 'scheduled-up 'scheduled-down ss)
			       (org-cmp-ts a b "scheduled")))
	 (scheduled-down  (if scheduled-up (- scheduled-up) nil))
	 (deadline-up     (and (org-em 'deadline-up 'deadline-down ss)
			       (org-cmp-ts a b "deadline")))
	 (deadline-down   (if deadline-up (- deadline-up) nil))
	 (tsia-up         (and (org-em 'tsia-up 'tsia-down ss)
			       (org-cmp-ts a b "timestamp_ia")))
	 (tsia-down       (if tsia-up (- tsia-up) nil))
	 (ts-up           (and (org-em 'ts-up 'ts-down ss)
			       (org-cmp-ts a b "timestamp")))
	 (ts-down         (if ts-up (- ts-up) nil))
	 (time-up         (and (org-em 'time-up 'time-down ss)
			       (org-cmp-time a b)))
	 (time-down       (if time-up (- time-up) nil))
	 (stats-up        (and (org-em 'stats-up 'stats-down ss)
			       (org-cmp-values a b 'org-stats)))
	 (stats-down      (if stats-up (- stats-up) nil))
	 (priority-up     (and (org-em 'priority-up 'priority-down ss)
			       (org-cmp-values a b 'priority)))
	 (priority-down   (if priority-up (- priority-up) nil))
	 (urgency-up     (and (org-em 'urgency-up 'urgency-down ss)
			      (org-cmp-values a b 'urgency)))
	 (urgency-down   (if urgency-up (- urgency-up) nil))
	 (effort-up       (and (org-em 'effort-up 'effort-down ss)
			       (org-cmp-effort a b)))
	 (effort-down     (if effort-up (- effort-up) nil))
	 (category-up     (and (or (org-em 'category-up 'category-down ss)
				   (memq 'category-keep ss))
			       (org-cmp-category a b)))
	 (category-down   (if category-up (- category-up) nil))
	 (category-keep   (if category-up +1 nil))
	 (tag-up          (and (org-em 'tag-up 'tag-down ss)
			       (org-cmp-tag a b)))
	 (tag-down        (if tag-up (- tag-up) nil))
	 (todo-state-up   (and (org-em 'todo-state-up 'todo-state-down ss)
			       (org-cmp-todo-state a b)))
	 (todo-state-down (if todo-state-up (- todo-state-up) nil))
	 (habit-up        (and (org-em 'habit-up 'habit-down ss)
			       (org-cmp-habit-p a b)))
	 (habit-down      (if habit-up (- habit-up) nil))
	 (alpha-up        (and (org-em 'alpha-up 'alpha-down ss)
			       (org-cmp-alpha a b)))
	 (alpha-down      (if alpha-up (- alpha-up) nil))
	 (need-user-cmp   (org-em 'user-defined-up 'user-defined-down ss))
	 user-defined-up user-defined-down)
      (when (and need-user-cmp org-agenda-cmp-user-defined
                 (functionp org-agenda-cmp-user-defined))
	(setq user-defined-up
	      (funcall org-agenda-cmp-user-defined a b)
	      user-defined-down (if user-defined-up (- user-defined-up) nil)))
      (cdr (assoc
	    (eval (cons 'or org-agenda-sorting-strategy-selected) t)
	    '((-1 . t) (1 . nil) (nil . nil)))))))