summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <carsten.dominik@gmail.com>2010-08-16 17:21:18 +0200
committerCarsten Dominik <carsten.dominik@gmail.com>2010-08-16 17:21:18 +0200
commitea16ef95358f4e8788661f6037df213c9f7ae577 (patch)
tree77c5a726ec72ed24b824eca7b36e6ece92652145
parentef56c6f361c943f18b817044dc8c64627712b18a (diff)
parent4a523e0cf0fba620b0296d376c6efb617c31e7a4 (diff)
downloadorg-mode-ea16ef95358f4e8788661f6037df213c9f7ae577.tar.gz
Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode
Conflicts: UTILITIES/pw
-rwxr-xr-xUTILITIES/pw3
-rw-r--r--lisp/org-agenda.el24
-rw-r--r--lisp/org-latex.el10
3 files changed, 32 insertions, 5 deletions
diff --git a/UTILITIES/pw b/UTILITIES/pw
index 0d171a9..0cf4bfa 100755
--- a/UTILITIES/pw
+++ b/UTILITIES/pw
@@ -472,7 +472,8 @@ def merge_with(patch_id, rpc, delegate_str, comment_str):
# If it succeeded this far, mark the patch as "Accepted" by the invoking
# user.
action_update_patch(rpc, patch_id, state = 'Accepted', commit = sha,
- delegate_str = delegate_str, archived = True)
+ delegate_str = delegate_str, comment_str = comment_str,
+ archived = True)
print sha
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 670ac82..194f392 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -5198,12 +5198,34 @@ HH:MM."
(int-to-string t0))))
(if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0)))))
+(defvar org-agenda-before-sorting-filter-function nil
+ "Function to be applied to agenda items prior to sorting.
+Prior to sorting also means just before they are inserted into the agenda.
+
+To aid sorting, you may revisit the original entries and add more text
+properties which will later be used by the sorting functions.
+
+The function should take a string argument, an agenda line.
+It has access to the text properties in that line, which contain among
+other things, the property `org-hd-marker' that points to the entry
+where the line comes from. Note that not all lines going into the agenda
+have this property, only most.
+
+The function should return the modified string. It is probably best
+to ONLY change text properties.
+
+You can also use this function as a filter, by returning nil for lines
+you don't want to have in the agenda at all. For this application, you
+could bind the variable in the options section of a custom command.")
+
(defun org-finalize-agenda-entries (list &optional nosort)
"Sort and concatenate the agenda items."
(setq list (mapcar 'org-agenda-highlight-todo list))
(if nosort
list
- (mapconcat 'identity (sort list 'org-entries-lessp) "\n")))
+ (when org-agenda-before-sorting-filter-function
+ (setq list (mapcar org-agenda-before-sorting-filter-function list)))
+ (delq nil (mapconcat 'identity (sort list 'org-entries-lessp) "\n"))))
(defun org-agenda-highlight-todo (x)
(let ((org-done-keywords org-done-keywords-for-agenda)
diff --git a/lisp/org-latex.el b/lisp/org-latex.el
index 9142747..4f27f42 100644
--- a/lisp/org-latex.el
+++ b/lisp/org-latex.el
@@ -1257,9 +1257,13 @@ If END is non-nil, it is the end of the region."
'(:org-license-to-kill t))
(save-excursion
(goto-char pt)
- (while (re-search-forward "^[ \t]*#+.*\n?" limit t)
- (remove-text-properties (match-beginning 0) (match-end 0)
- '(:org-license-to-kill t))))))))))
+ (while (re-search-forward "^[ \t]*#\\+.*\n?" limit t)
+ (let ((case-fold-search t))
+ (unless (org-string-match-p
+ "^[ \t]*#\\+\\(attr_\\|caption\\>\\|label\\>\\)"
+ (match-string 0))
+ (remove-text-properties (match-beginning 0) (match-end 0)
+ '(:org-license-to-kill t))))))))))))
(defvar org-export-latex-header-defs nil