| 
					
				 | 
			
			
				@@ -975,18 +975,6 @@ will only be dimmed." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (const :tag "Dim to a gray face" t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (const :tag "Make invisible" invisible))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defcustom org-timeline-show-empty-dates 3 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Non-nil means `org-timeline' also shows dates without an entry. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-When nil, only the days which actually have entries are shown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-When t, all days between the first and the last date are shown. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-When an integer, show also empty dates, but if there is a gap of more than 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-N days, just insert a special line indicating the size of the gap." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :group 'org-agenda-skip 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  :type '(choice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (const :tag "None" nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (const :tag "All" t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (integer :tag "at most"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defgroup org-agenda-startup nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Options concerning initial settings in the Agenda in Org Mode." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   :tag "Org Agenda Startup" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2705,7 +2693,6 @@ T     Call `org-todo-list' to display the global todo list, select only 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 m     Call `org-tags-view' to display headlines with tags matching 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       a condition  (the user is prompted for the condition). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 M     Like `m', but select only TODO entries, no ordinary headlines. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-L     Create a timeline for the current buffer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 e     Export views to associated files. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 s     Search entries for keywords. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 S     Search entries for keywords, only with TODO keywords. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2868,12 +2855,6 @@ Pressing `<' twice means to restrict to the current subtree or region 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				(copy-sequence note)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			       nil 'face 'org-warning))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 t t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       ((equal org-keys "L") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(unless (derived-mode-p 'org-mode) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (user-error "This is not an Org file")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(unless restriction 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (put 'org-agenda-files 'org-restrict (list bfn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (org-call-with-arg 'org-timeline arg))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ((equal org-keys "#") (call-interactively 'org-agenda-list-stuck-projects)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ((equal org-keys "/") (call-interactively 'org-occur-in-agenda-files)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        ((equal org-keys "!") (customize-variable 'org-stuck-projects)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -4038,152 +4019,7 @@ This check for agenda markers in all agenda buffers currently active." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 'org-agenda-date-weekend) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(t 'org-agenda-date))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;;; Agenda timeline 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defvar org-agenda-only-exact-dates nil) ; dynamically scoped 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defvar org-agenda-show-log-scoped) ;; dynamically scope in `org-timeline' or `org-agenda-list' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-timeline (&optional dotodo) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Show a time-sorted view of the entries in the current Org file. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Only entries with a time stamp of today or later will be listed. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-With `\\[universal-argument]' prefix, all unfinished TODO items will also be \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-shown, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-under the current date. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-If the buffer contains an active region, only check the region 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-for dates." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (interactive "P") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let* ((dopast t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-agenda-show-log-scoped org-agenda-show-log) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-agenda-show-log org-agenda-show-log-scoped) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (entry (buffer-file-name (or (buffer-base-buffer (current-buffer)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				      (current-buffer)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (date (calendar-current-date)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (beg (if (org-region-active-p) (region-beginning) (point-min))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (end (if (org-region-active-p) (region-end) (point-max))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (day-numbers (org-get-all-dates 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       beg end 'no-ranges 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       t org-agenda-show-log-scoped ; always include today 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       org-timeline-show-empty-dates)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-deadline-warning-days 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (org-agenda-only-exact-dates t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (today (org-today)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (past t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 args 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 s e rtn d emptyp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (setq org-agenda-redo-command 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	  (list 'let 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(list (list 'org-agenda-show-log 'org-agenda-show-log)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    		(list 'org-switch-to-buffer-other-window (current-buffer)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    		(list 'org-timeline (list 'quote dotodo)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (put 'org-agenda-redo-command 'org-lprops nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (not dopast) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	;; Remove past dates from the list of dates. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq day-numbers (delq nil (mapcar (lambda(x) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					      (if (>= x today) x nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					    day-numbers)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-agenda-prepare (concat "Timeline " (file-name-nondirectory entry))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-compile-prefix-format 'timeline) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-set-sorting-strategy 'timeline) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if org-agenda-show-log-scoped (push :closed args)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (push :timestamp args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (push :deadline args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (push :scheduled args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (push :sexp args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if dotodo (push :todo args)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (insert "Timeline of file " entry "\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (add-text-properties (point-min) (point) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			 (list 'face 'org-agenda-structure)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-agenda-mark-header-line (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (while (setq d (pop day-numbers)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (if (and (listp d) (eq (car d) :omitted)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (setq s (point)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (insert (format "\n[... %d empty days omitted]\n\n" (cdr d))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (put-text-property s (1- (point)) 'face 'org-agenda-structure)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(if (listp d) (setq d (car d) emptyp t) (setq emptyp nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(if (and (>= d today) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 dopast 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 past) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (setq past nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (insert (make-string 79 ?-) "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq date (calendar-gregorian-from-absolute d)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq s (point)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq rtn (and (not emptyp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		       (apply 'org-agenda-get-day-entries entry 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			      date args))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(if (or rtn (equal d today) org-timeline-show-empty-dates) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (progn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (insert 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       (if (stringp org-agenda-format-date) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		   (format-time-string org-agenda-format-date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				       (org-time-from-absolute date)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 (funcall org-agenda-format-date date)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	       "\n") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (put-text-property s (1- (point)) 'face 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (org-agenda-get-day-face date)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (put-text-property s (1- (point)) 'org-date-line t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (put-text-property s (1- (point)) 'org-agenda-date-header t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (if (equal d today) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (put-text-property s (1- (point)) 'org-today t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (and rtn (insert (org-agenda-finalize-entries rtn 'timeline) "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (put-text-property s (1- (point)) 'day d))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (goto-char (or (text-property-any (point-min) (point-max) 'org-today t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		   (point-min))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (add-text-properties 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     (point-min) (point-max) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     `(org-agenda-type timeline org-redo-cmd ,org-agenda-redo-command)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (org-agenda-finalize) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (setq buffer-read-only t))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-get-all-dates (beg end &optional no-ranges force-today inactive empty pre-re) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Return a list of all relevant day numbers from BEG to END buffer positions. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-If NO-RANGES is non-nil, include only the start and end dates of a range, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-not every single day in the range.  If FORCE-TODAY is non-nil, make 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-sure that TODAY is included in the list.  If INACTIVE is non-nil, also 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-inactive time stamps (those in square brackets) are included. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-When EMPTY is non-nil, also include days without any entries." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let ((re (concat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (if pre-re pre-re "") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	     (if inactive org-ts-regexp-both org-ts-regexp))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	dates dates1 date day day1 day2 ts1 ts2 pos) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if force-today 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq dates (list (org-today)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (save-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (goto-char beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (while (re-search-forward re end t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq day (time-to-days (org-time-string-to-time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (substring (match-string 1) 0 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				 (current-buffer) (match-beginning 0)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(or (memq day dates) (push day dates))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (unless no-ranges 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(goto-char beg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(while (re-search-forward org-tr-regexp end t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (setq pos (match-beginning 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (setq ts1 (substring (match-string 1) 0 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		ts2 (substring (match-string 2) 0 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		day1 (time-to-days (org-time-string-to-time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				    ts1 (current-buffer) pos)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		day2 (time-to-days (org-time-string-to-time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				    ts2  (current-buffer) pos))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (while (< (setq day1 (1+ day1)) day2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (or (memq day1 dates) (push day1 dates))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (setq dates (sort dates '<)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when empty 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(while (setq day (pop dates)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (setq day2 (car dates)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (push day dates1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (when (and day2 empty) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (if (or (eq empty t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (and (numberp empty) (<= (- day2 day) empty))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(while (< (setq day (1+ day)) day2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (push (list day) dates1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (push (cons :omitted (- day2 day)) dates1)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq dates (nreverse dates1))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      dates))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-agenda-show-log-scoped) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;; Agenda Daily/Weekly 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |