| 
					
				 | 
			
			
				@@ -126,10 +126,12 @@ Stars are put in group 1 and the trimmed body in group 2.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-beamer-mode "ox-beamer" ()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-table-edit-field "org-table" (arg)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-table-justify-field-maybe "org-table" (&optional new)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(declare-function org-table-set-constants "org-table" ()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-id-get-create "org-id" (&optional force)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-id-find-id-file "org-id" (id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-tags-view "org-agenda" (&optional todo-only match)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-agenda-list "org-agenda" (&optional arg start-day span)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(declare-function org-agenda-redo "org-agenda" (&optional all)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-table-align "org-table" ()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-table-paste-rectangle "org-table" ()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-table-maybe-eval-formula "org-table" ()) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1324,9 +1326,9 @@ and a boolean flag as CDR.  The cdr may also be the symbol `auto', in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 which case Org will look at the surrounding headings/items and try to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 make an intelligent decision whether to insert a blank line or not. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-For plain lists, if the variable `org-empty-line-terminates-plain-lists' is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-set, the setting here is ignored and no empty line is inserted, to avoid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-breaking the list structure." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For plain lists, if `org-list-empty-line-terminates-plain-lists' is set, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+the setting here is ignored and no empty line is inserted to avoid breaking 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+the list structure." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :group 'org-edit-structure 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :type '(list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (cons (const heading) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2288,7 +2290,12 @@ taken from the (otherwise obsolete) variable `org-todo-interpretation'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-done-keywords-for-agenda nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-drawers-for-agenda nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-todo-keyword-alist-for-agenda nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defvar org-tag-alist-for-agenda nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-tag-alist-for-agenda nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Alist of all tags from all agenda files.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-tag-groups-alist-for-agenda nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Alist of all groups tags from all current agenda files.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-tag-groups-alist nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(make-variable-buffer-local 'org-tag-groups-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-agenda-contributing-files nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defvar org-not-done-keywords nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (make-variable-buffer-local 'org-not-done-keywords) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3170,6 +3177,8 @@ See the manual for details." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (list :tag "Start radio group" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (const :startgroup) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (option (string :tag "Group description"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (list :tag "Group tags delimiter" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (const :grouptags)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (list :tag "End radio group" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (const :endgroup) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 (option (string :tag "Group description"))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3192,6 +3201,7 @@ To disable these tags on a per-file basis, insert anywhere in the file: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (cons   (string    :tag "Tag name") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		   (character :tag "Access char")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (const :tag "Start radio group" (:startgroup)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (const :tag "Group tags delimiter" (:grouptags)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (const :tag "End radio group" (:endgroup)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (const :tag "New line" (:newline))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4730,8 +4740,97 @@ This regexp can match any headline with the specified keyword, or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 without a keyword.  The keyword isn't in any group by default, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defcustom org-group-tags t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "When non-nil (the default), use group tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This can be turned on/off through `org-toggle-tags-groups'." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :group 'org-tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :group 'org-startup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :type 'boolean) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-toggle-tags-groups () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Toggle support for group tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Support for group tags is controlled by the option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-group-tags', which is non-nil by default." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (setq org-group-tags (not org-group-tags)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (if (and (derived-mode-p 'org-agenda-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   org-group-tags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (org-agenda-redo)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (when (derived-mode-p 'org-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-set-regexps-and-options-for-tags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-set-regexps-and-options)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (message "Groups tags support has been turned %s" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (if org-group-tags "on" "off"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-set-regexps-and-options-for-tags () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Precompute regular expressions used for tags in the current buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (when (derived-mode-p 'org-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-set-local 'org-file-tags nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (let ((re (org-make-options-regexp '("FILETAGS" "TAGS"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (splitre "[ \t]+") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  tags ftags key value 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (start 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(save-restriction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (widen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (while (re-search-forward re nil t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (setq key (upcase (org-match-string-no-properties 1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  value (org-match-string-no-properties 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (if (stringp value) (setq value (org-trim value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal key "TAGS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (setq tags (append tags (if tags '("\\n") nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 (org-split-string value splitre)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal key "FILETAGS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (when (string-match "\\S-" value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(setq ftags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (append 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       ftags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (apply 'append 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			      (mapcar (lambda (x) (org-split-string x ":")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				      (org-split-string value))))))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; Process the file tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (and ftags (org-set-local 'org-file-tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(mapcar 'org-add-prop-inherited ftags))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (org-set-local 'org-tag-groups-alist nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; Process the tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ;; FIXME 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (when tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(let (e tgs g) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (while (setq e (pop tags)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal e "{") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (progn (push '(:startgroup) tgs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (when (equal (nth 1 tags) ":") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (push (list (replace-regexp-in-string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				    "(.+)$" "" (nth 0 tags))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     org-tag-groups-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (setq g 0)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal e ":") (push '(:grouptags) tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal e "}") (push '(:endgroup) tgs) (if g (setq g nil))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((equal e "\\n") (push '(:newline) tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     ((string-match (org-re "^\\([[:alnum:]_@#%]+\\)(\\(.\\))$") e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (push (cons (match-string 1 e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (string-to-char (match-string 2 e))) tgs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (if (and g (> g 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (setcar org-tag-groups-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (append (car org-tag-groups-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				  (list (match-string 1 e))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (if g (setq g (1+ g)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (t (push (list e) tgs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(if (and g (> g 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		    (setcar org-tag-groups-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			    (append (car org-tag-groups-alist) (list e)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(if g (setq g (1+ g)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (org-set-local 'org-tag-alist nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (while (setq e (pop tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (or (and (stringp (car e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (assoc (car e) org-tag-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(push e org-tag-alist)))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-set-regexps-and-options () 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Precompute regular expressions for current buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Precompute regular expressions used in the current buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (when (derived-mode-p 'org-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-set-local 'org-todo-kwd-alist nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-set-local 'org-todo-key-alist nil) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4742,16 +4841,15 @@ but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-set-local 'org-todo-sets nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-set-local 'org-todo-log-states nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-set-local 'org-file-properties nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-set-local 'org-file-tags nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (let ((re (org-make-options-regexp 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       '("CATEGORY" "TODO" "COLUMNS" "STARTUP" "ARCHIVE" "FILETAGS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 "TAGS" "LINK" "PRIORITIES" "CONSTANTS" "PROPERTY" "DRAWERS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       '("CATEGORY" "TODO" "COLUMNS" "STARTUP" "ARCHIVE" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 "LINK" "PRIORITIES" "CONSTANTS" "PROPERTY" "DRAWERS" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		 "SETUPFILE" "OPTIONS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	       "\\(?:[a-zA-Z][0-9a-zA-Z_]*_TODO\\)")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (splitre "[ \t]+") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (scripts org-use-sub-superscripts) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  kwds kws0 kwsa key log value cat arch tags const links hw dws 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  tail sep kws1 prio props ftags drawers ext-setup-or-nil setup-contents 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  kwds kws0 kwsa key log value cat arch const links hw dws 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  tail sep kws1 prio props drawers ext-setup-or-nil setup-contents 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (start 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(save-restriction 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4776,9 +4874,6 @@ but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      ;; general TODO-like setup 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  	      (push (cons (intern (downcase (match-string 1 key))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  (org-split-string value splitre)) kwds)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((equal key "TAGS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (setq tags (append tags (if tags '("\\n") nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (org-split-string value splitre)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     ((equal key "COLUMNS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (org-set-local 'org-columns-default-format value)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     ((equal key "LINK") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4793,14 +4888,6 @@ but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		(setq props (org-update-property-plist (match-string 1 value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						       (match-string 2 value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						       props)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((equal key "FILETAGS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (when (string-match "\\S-" value) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(setq ftags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (append 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       ftags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (apply 'append 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      (mapcar (lambda (x) (org-split-string x ":")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				      (org-split-string value))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     ((equal key "DRAWERS") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (setq drawers (delete-dups (append org-drawers (org-split-string value splitre))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     ((equal key "CONSTANTS") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4856,8 +4943,6 @@ but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(org-set-local 'org-lowest-priority  (nth 1 prio)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(org-set-local 'org-default-priority (nth 2 prio))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (and props (org-set-local 'org-file-properties (nreverse props))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (and ftags (org-set-local 'org-file-tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				(mapcar 'org-add-prop-inherited ftags))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (and drawers (org-set-local 'org-drawers drawers)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (and arch (org-set-local 'org-archive-location arch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (and links (setq org-link-abbrev-alist-local (nreverse links))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4908,26 +4993,6 @@ but the stars and the body are.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      org-todo-kwd-alist (nreverse org-todo-kwd-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      org-todo-key-trigger (delq nil (mapcar 'cdr org-todo-key-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      org-todo-key-alist (org-assign-fast-keys org-todo-key-alist))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ;; Process the tags. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(let (e tgs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (while (setq e (pop tags)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((equal e "{") (push '(:startgroup) tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((equal e "}") (push '(:endgroup) tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((equal e "\\n") (push '(:newline) tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     ((string-match (org-re "^\\([[:alnum:]_@#%]+\\)(\\(.\\))$") e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (push (cons (match-string 1 e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			  (string-to-char (match-string 2 e))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (t (push (list e) tgs)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (org-set-local 'org-tag-alist nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (while (setq e (pop tgs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (or (and (stringp (car e)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		     (assoc (car e) org-tag-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(push e org-tag-alist))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; Compute the regular expressions and other local variables. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; Using `org-outline-regexp-bol' would complicate them much, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; because of the fixed white space at the end of that string. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5064,7 +5129,7 @@ This will extract info from a string like \"WAIT(w@/!)\"." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Respect keys that are already there." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let (new e (alt ?0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (while (setq e (pop alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if (or (memq (car e) '(:newline :endgroup :startgroup)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (if (or (memq (car e) '(:newline :grouptags :endgroup :startgroup)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (cdr e)) ;; Key already assigned. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (push e new) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(let ((clist (string-to-list (downcase (car e)))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5208,6 +5273,7 @@ The following commands are available: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 					      org-ellipsis))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	       (if (stringp org-ellipsis) org-ellipsis "...")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (setq buffer-display-table org-display-table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (org-set-regexps-and-options-for-tags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (org-set-regexps-and-options) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (when (and org-tag-faces (not org-tags-special-faces-re)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; tag faces set outside customize.... force initialization. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -5672,7 +5738,7 @@ by a #." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (error (message "org-mode fontification error")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-fontify-meta-lines-and-blocks-1 (limit) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Fontify #+ lines and blocks, in the correct ways." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Fontify #+ lines and blocks." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let ((case-fold-search t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (if (re-search-forward 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 "^\\([ \t]*#\\(\\(\\+[a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ \t]*\\(\\([^ \t\n]*\\)[ \t]*\\(.*\\)\\)\\)" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -6088,6 +6154,12 @@ needs to be inserted at a specific position in the font-lock sequence.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   '(org-font-lock-add-priority-faces) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   ;; Tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   '(org-font-lock-add-tag-faces) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   ;; Tags groups 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (if (and org-group-tags org-tag-groups-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	       (list (concat org-outline-regexp-bol ".+\\(:" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     (regexp-opt (mapcar 'car org-tag-groups-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			     ":\\).*$") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     '(1 'org-tag-group prepend))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   ;; Special keywords 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	   (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -12017,8 +12089,7 @@ For calling through lisp, arg is also interpreted in the following way: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				       (not org-todo-key-trigger))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			      ;; Read a state with completion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			      (org-icompleting-read 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			       "State: " (mapcar (lambda(x) (list x)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-						 org-todo-keywords-1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       "State: " (mapcar 'list org-todo-keywords-1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			       nil t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			     ((eq arg 'right) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			      (if this 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13828,7 +13899,7 @@ See also `org-scan-tags'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (declare (special todo-only)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (unless (boundp 'todo-only) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (error "org-make-tags-matcher expects todo-only to be scoped in")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (error "`org-make-tags-matcher' expects todo-only to be scoped in")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (unless match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; Get a new match request, with completion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (let ((org-last-tags-completion-table 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13844,6 +13915,8 @@ See also `org-scan-tags'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	tagsmatch todomatch tagsmatcher todomatcher kwd matcher 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	orterms term orlist re-p str-p level-p level-op time-p 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	prop-p pn pv po gv rest) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; Expand group tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (setq match (org-tags-expand match)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (if (string-match "/+" match) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	;; match contains also a todo-matching request 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(progn 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -13950,6 +14023,54 @@ See also `org-scan-tags'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			  matcher))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (cons match0 matcher))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-tags-expand (match &optional single-as-list downcased) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Expand group tags in MATCH. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This replaces every group tag in MATCH with a regexp tag search. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For example, a group tag \"Work\" defined as { Work : Lab Conf } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+will be replaced like this: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   Work =>  {\(?:Work\|Lab\|Conf\} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  +Work => +{\(?:Work\|Lab\|Conf\} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  -Work => -{\(?:Work\|Lab\|Conf\} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Replacing by a regexp preserves the structure of the match. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+E.g., this expansion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  Work|Home => {\(?:Work\|Lab\|Conf\}|Home 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+will match anything tagged with \"Lab\" and \"Home\", or tagged 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+with \"Conf\" and \"Home\" or tagged with \"Work\" and \"home\". 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When the optional argument SINGLE-AS-LIST is non-nil, MATCH is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+assumed to be a single group tag, and the function will return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+the list of tags in this group. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When DOWNCASE is non-nil, expand downcased TAGS." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (if org-group-tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (let* ((case-fold-search t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (tal (or org-tag-groups-alist-for-agenda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      org-tag-groups-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (tal (if downcased (mapcar (lambda(tg) (mapcar 'downcase tg)) tal) tal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (tml (mapcar 'car tal)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (rtnmatch match) rpl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(while (and tml (string-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 (concat "\\(?1:[+-]?\\)\\(?2:" (regexp-opt tml) "\\)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			 rtnmatch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (let* ((dir (match-string 1 rtnmatch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (tag (match-string 2 rtnmatch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 (tag (if downcased (downcase tag) tag))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (setq tml (delete tag tml)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (setq rpl (append (org-uniquify rpl) (assoc tag tal))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (setq rtnmatch 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (replace-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   (concat dir "{" (regexp-opt rpl) "}") t t rtnmatch)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(if single-as-list 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (or (reverse rpl) (list rtnmatch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  rtnmatch)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if single-as-list (list (if downcased (downcase match) match)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      match))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-op-to-function (op &optional stringp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Turn an operator into the appropriate function." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (setq op 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14346,15 +14467,14 @@ This works in the agenda, and also in an org-mode buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       rtn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      ((eq flag t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; all-completions 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (all-completions s2 ctable confirm) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (all-completions s2 ctable confirm)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      ((eq flag 'lambda) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; exact match? 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (assoc s2 ctable))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    )) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (assoc s2 ctable))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-fast-tag-insert (kwd tags face &optional end) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Insert KDW, and the TAGS, the latter with face FACE.  Also insert END." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Insert KDW, and the TAGS, the latter with face FACE. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Also insert END." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (insert (format "%-12s" (concat kwd ":")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (org-add-props (mapconcat 'identity tags " ") nil 'face face) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (or end ""))) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14370,6 +14490,7 @@ This works in the agenda, and also in an org-mode buffer." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (insert (org-add-props " Next change exits" nil 'face 'org-warning))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-set-current-tags-overlay (current prefix) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Add an overlay to CURRENT tag with PREFIX." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let ((s (concat ":" (mapconcat 'identity current ":") ":"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (if (featurep 'xemacs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(org-overlay-display org-tags-overlay (concat prefix s) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14452,6 +14573,7 @@ Returns the new tags string, or nil to not change the current settings." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (while (equal (car tbl) '(:newline)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (insert "\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (setq tbl (cdr tbl))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ((equal e '(:grouptags)) nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 (t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (setq tg (copy-sequence (car e)) c2 nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (if (cdr e) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -14467,11 +14589,13 @@ Returns the new tags string, or nil to not change the current settings." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (setq c (or c2 char))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (if ingroup (push tg (car groups))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (setq tg (org-add-props tg nil 'face 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				  (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   ((not (assoc tg table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				    (org-get-todo-face tg)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   ((member tg current) c-face) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				   ((member tg inherited) i-face)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  			  (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  			   ((not (assoc tg table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  			    (org-get-todo-face tg)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  			   ((member tg current) c-face) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  			   ((member tg inherited) i-face)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (if (equal (caar tbl) :grouptags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (org-add-props tg nil 'face 'org-tag-group)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (if (and (= cnt 0) (not ingroup)) (insert "  ")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (insert "[" c "] " tg (make-string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				 (- fwidth 4 (length tg)) ?\ )) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17120,7 +17244,7 @@ When SUPPRESS-TMP-DELAY is non-nil, suppress delays like \"--2d\"." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ;; Maybe adjust the closest clock in `org-clock-history' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (when org-clock-adjust-closest 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(if (not (and (org-at-clock-log-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (< 1 (length (delq nil (mapcar (lambda(m) (marker-position m)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (< 1 (length (delq nil (mapcar 'marker-position 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 						     org-clock-history)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (message "No clock to adjust") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (cond ((save-excursion ; fix previous clock? 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17747,7 +17871,9 @@ When a buffer is unmodified, it is just killed.  When modified, it is saved 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(inhibit-read-only t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(org-inhibit-startup org-agenda-inhibit-startup) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(rea (concat ":" org-archive-tag ":")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	file re) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	file re org-tag-alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (setq org-tag-alist-for-agenda nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  org-tag-groups-alist-for-agenda nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (save-restriction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(while (setq file (pop files)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17757,6 +17883,7 @@ When a buffer is unmodified, it is just killed.  When modified, it is saved 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (org-check-agenda-file file) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	      (set-buffer (org-get-agenda-file-buffer file))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (widen) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (org-set-regexps-and-options-for-tags) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (org-refresh-category-properties) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (org-refresh-properties org-effort-property 'org-effort) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (org-refresh-properties "APPT_WARNTIME" 'org-appt-warntime) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17770,6 +17897,10 @@ When a buffer is unmodified, it is just killed.  When modified, it is saved 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (append org-drawers-for-agenda org-drawers)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (setq org-tag-alist-for-agenda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (append org-tag-alist-for-agenda org-tag-alist)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (if org-group-tags 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(setq org-tag-groups-alist-for-agenda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (org-uniquify-alist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (append org-tag-groups-alist-for-agenda org-tag-groups-alist)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (org-with-silent-modifications 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	       (remove-text-properties (point-min) (point-max) pall) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17787,8 +17918,7 @@ When a buffer is unmodified, it is just killed.  When modified, it is saved 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (setq org-todo-keywords-for-agenda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           (org-uniquify org-todo-keywords-for-agenda)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (setq org-todo-keyword-alist-for-agenda 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (org-uniquify org-todo-keyword-alist-for-agenda) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  org-tag-alist-for-agenda (org-uniquify org-tag-alist-for-agenda)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (org-uniquify org-todo-keyword-alist-for-agenda)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;;; CDLaTeX minor mode 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18735,6 +18865,7 @@ BEG and END default to the buffer boundaries." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-xa" 'org-toggle-archive-tag) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-xA" 'org-archive-to-archive-sibling) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-xb" 'org-tree-to-indirect-buffer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(org-defkey org-mode-map "\C-c\C-xq" 'org-toggle-tags-groups) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-j" 'org-goto) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-t" 'org-todo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (org-defkey org-mode-map "\C-c\C-q" 'org-set-tags-command) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -21382,6 +21513,27 @@ for the search purpose." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (mapc (lambda (x) (add-to-list 'res x 'append)) list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     res)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-uniquify-alist (alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Merge duplicate elements of an alist. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+For example, in this alist: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+\(org-uniquify-alist '((a 1) (b 2) (a 3))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  => '((a 1 3) (b 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+merge (a 1) and (a 3) into (a 1 3) and return the new alist." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let (rtn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (mapc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (lambda (e) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (let (n) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (if (not (assoc (car e) rtn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (push e rtn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (setq n (cons (car e) (append (cdr (assoc (car e) rtn)) (cdr e)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (setq rtn (assq-delete-all (car e) rtn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (push n rtn)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  alist) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    rtn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-delete-all (elts list) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Remove all elements in ELTS from LIST." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (while elts 
			 |