From mboxrd@z Thu Jan 1 00:00:00 1970 From: James TD Smith Subject: [PATCH 4/5] Add a new sort option, which sorts items by todo keyword Date: Sun, 16 Mar 2008 16:30:15 +0000 Message-ID: <20080316162955.23004.35017.stgit@nyarlathotep.internal> References: <20080316162417.23004.16993.stgit@nyarlathotep.internal> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JawJc-0001Tq-1j for emacs-orgmode@gnu.org; Sun, 16 Mar 2008 13:06:32 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JawJb-0001Sj-2q for emacs-orgmode@gnu.org; Sun, 16 Mar 2008 13:06:31 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JawJa-0001SR-NM for emacs-orgmode@gnu.org; Sun, 16 Mar 2008 13:06:30 -0400 Received: from 81-86-40-42.dsl.pipex.com ([81.86.40.42] helo=yog-sothoth.internal) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1JawJZ-0007u7-GE for emacs-orgmode@gnu.org; Sun, 16 Mar 2008 13:06:30 -0400 Received: from nyarlathotep.internal (Debian-exim@nyarlathotep.internal [10.0.0.5]) by yog-sothoth.internal (8.13.4/8.13.4) with ESMTP id m2GGUFAq015290 for ; Sun, 16 Mar 2008 16:30:16 GMT (envelope-from ahktenzero@usa.net) Received: from [127.0.0.1] (helo=nyarlathotep.internal ident=ahktenzero) by nyarlathotep.internal with esmtp (Exim 4.69) (envelope-from ) id 1JavkV-0006HP-Ja for emacs-orgmode@gnu.org; Sun, 16 Mar 2008 16:30:15 +0000 From: James TD Smith In-Reply-To: <20080316162417.23004.16993.stgit@nyarlathotep.internal> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org This is a somewhat simple implementation which just uses the position of the keyword in org-todo-keywords-1, so if you have multiple sequences containing the same todo keyword you may not get the ordering you expect. --- org.el | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/org.el b/org.el index dee8471..d67024f 100644 --- a/org.el +++ b/org.el @@ -982,7 +982,6 @@ table, obtained by prompting the user." :group 'org-table-settings :type 'string) - (defcustom org-table-number-regexp "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%:]*\\|\\(0[xX]\\)[0-9a-fA-F]+\\|nan\\)$" "Regular expression for recognizing numbers in table columns. @@ -6993,7 +6992,7 @@ WITH-CASE, the sorting considers case as well." (message (if plain-list-p "Sort %s: [a]lpha [n]umeric [t]ime [f]unc A/N/T/F means reversed:" - "Sort %s: [a]lpha [n]umeric [t]ime [p]riority p[r]operty [f]unc A/N/T/P/F means reversed:") + "Sort %s: [a]lpha [n]umeric [t]ime [p]riority p[r]operty [f]unc keyword [o]rder A/N/T/P/F/O means reversed:") what) (setq sorting-type (read-char-exclusive)) @@ -7084,6 +7083,10 @@ WITH-CASE, the sorting considers case as well." org-default-priority)) ((= dcst ?r) (or (org-entry-get nil property) "")) + ((= dcst ?o) + (if (looking-at org-complex-heading-regexp) + (or (position (match-string 2) org-todo-keywords-1 :test 'string=) + 9999))) ((= dcst ?f) (if getkey-func (progn