[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] [PATCH] agenda-view and custom sort
From: |
Jambunathan K |
Subject: |
[Orgmode] [PATCH] agenda-view and custom sort |
Date: |
Mon, 19 Jul 2010 02:10:57 +0530 |
User-agent: |
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.4) Gecko/20100608 Lightning/1.0b2 Thunderbird/3.1 |
BUG: Agenda view invokes custom sort routine even if not configured to
do so.
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
old mode 100644
new mode 100755
index 1314eb2..f34f45d
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -5312,8 +5312,9 @@ HH:MM."
(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)
- (if (and org-agenda-cmp-user-defined
+ (if (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)
;; Sample agenda file
* Tasks
** Task1
<2010-07-19 Mon>
** Task2
<2010-07-19 Mon>
;; turn on custom comparison
(org-agenda-cmp-user-defined (quote my-org-cmp-category))
;; only todo-view requests custom comparison of categories.
;; agenda-view does *NOT* request custom compare function. Despite
;; this custom sort function is triggered on C-c a a.
(org-agenda-sorting-strategy
(quote
((agenda habit-down time-up priority-down category-keep)
(todo priority-down user-defined-up)
(tags priority-down category-keep)
(search category-keep))))
;; user-defined routine for sorting of categories. prints a message
;; to the console on being invoked. Rest of the details not relevant.
(defun my-org-cmp-category (a b)
"Compare the string values of categories of strings A and B."
(let (
(uncategorized 0)
(ca (or (get-text-property 1 'org-category a) ""))
(cb (or (get-text-property 1 'org-category b) ""))
)
(message "my-org-cmp-category")
(setq ca (cdr (assoc ca org-CATEGORY-sort-order)))
(setq cb (cdr (assoc cb org-CATEGORY-sort-order)))
(unless ca
(setq ca uncategorized)
)
(unless cb
(setq cb uncategorized)
)
(cond ((< ca cb) -1)
((< cb ca) +1)
(t nil))
)
)
;; information down below is only for the sake of completion.
;; not relevant to the bug per se.
;; category to priority mappings
(defcustom org-CATEGORY-sort-order nil
"Map CATEGORY to Sort Order"
:group 'org-jambu
:type '(repeat
(cons
(string :tag "CATEGORY")
(integer :tag "VALUE")
)))
;; example categories
(org-CATEGORY-sort-order
(quote (
("PHONE" . 50)
("EMAIL" . 60)
("MISC" . 80)
)
)
)
org-agenda.diff
Description: Text document
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Orgmode] [PATCH] agenda-view and custom sort,
Jambunathan K <=