Browse Source

Merge branch 'master' of git+ssh://repo.or.cz/srv/git/org-mode

Conflicts:
	UTILITIES/pw
Carsten Dominik 11 years ago
parent
commit
ea16ef9535
3 changed files with 32 additions and 5 deletions
  1. 2 1
      UTILITIES/pw
  2. 23 1
      lisp/org-agenda.el
  3. 7 3
      lisp/org-latex.el

+ 2 - 1
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
 

+ 23 - 1
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)

+ 7 - 3
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