| 
					
				 | 
			
			
				@@ -514,47 +514,51 @@ of a different task.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Hook called in task selection just before prompting the user.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-clock-select-task (&optional prompt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  "Select a task that recently was associated with clocking." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Select a task that was recently associated with clocking." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (interactive) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let (sel-list rpl (i 0) s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (save-window-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (org-switch-to-buffer-other-window 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (get-buffer-create "*Clock Task Select*")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (erase-buffer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when (marker-buffer org-clock-default-task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(insert (org-add-props "Default Task\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq s (org-clock-insert-selection-line ?d org-clock-default-task)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when (marker-buffer org-clock-interrupted-task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(insert (org-add-props "The task interrupted by starting the last one\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq s (org-clock-insert-selection-line ?i org-clock-interrupted-task)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when (org-clocking-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(insert (org-add-props "Current Clocking Task\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq s (org-clock-insert-selection-line ?c org-clock-marker)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (insert (org-add-props "Recent Tasks\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (mapc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (lambda (m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	 (when (marker-buffer m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (setq i (1+ i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		 s (org-clock-insert-selection-line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		    (if (< i 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			(+ i ?0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		      (+ i (- ?A 10))) m)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	   (push s sel-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       org-clock-history) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (run-hooks 'org-clock-before-select-task-hook) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (org-fit-window-to-buffer nil nil (+ 6 (length org-clock-history))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (message (or prompt "Select task for clocking:")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (setq cursor-type nil rpl (read-char-exclusive)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       ((eq rpl ?q) nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       ((eq rpl ?x) nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       ((assoc rpl sel-list) (cdr (assoc rpl sel-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-       (t (error "Invalid task choice %c" rpl)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((chl (length org-clock-history)) sel-list rpl (i 0) s) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (zerop chl) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(user-error "No recent clock") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (save-window-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(org-switch-to-buffer-other-window 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (get-buffer-create "*Clock Task Select*")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(erase-buffer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when (marker-buffer org-clock-default-task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (insert (org-add-props "Default Task\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (setq s (org-clock-insert-selection-line ?d org-clock-default-task)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when (marker-buffer org-clock-interrupted-task) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (insert (org-add-props "The task interrupted by starting the last one\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (setq s (org-clock-insert-selection-line ?i org-clock-interrupted-task)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when (org-clocking-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (insert (org-add-props "Current Clocking Task\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (setq s (org-clock-insert-selection-line ?c org-clock-marker)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (push s sel-list)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(insert (org-add-props "Recent Tasks\n" nil 'face 'bold)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(mapc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (lambda (m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   (when (marker-buffer m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (setq i (1+ i) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		   s (org-clock-insert-selection-line 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (if (< i 10) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			  (+ i ?0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			(+ i (- ?A 10))) m)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	     (push s sel-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 org-clock-history) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(run-hooks 'org-clock-before-select-task-hook) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; Set min-height relatively to circumvent a possible but in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	;; `fit-window-to-buffer' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(fit-window-to-buffer nil nil (if (< chl 10) chl (+ 5 chl))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(message (or prompt "Select task for clocking:")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(setq cursor-type nil rpl (read-char-exclusive)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ((eq rpl ?q) nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ((eq rpl ?x) nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 ((assoc rpl sel-list) (cdr (assoc rpl sel-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (t (user-error "Invalid task choice %c" rpl))))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-clock-insert-selection-line (i marker) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   "Insert a line for the clock selection menu. 
			 |