| 
					
				 | 
			
			
				@@ -48,15 +48,13 @@ under this key will be shown and offered for selection. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 TITLE will be placed over the selection in the temporary buffer, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 PROMPT will be used when prompting for a key.  SPECIAL is an alist with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-also (\"key\" \"description\") entries.  When they are selected,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+also (\"key\" \"description\") entries.  When one of these is selection, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+only the bare key is returned." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (setq prompt (or prompt "Select: ")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let (tbl orig-table dkey ddesc des-keys allowed-keys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    current prefix rtn re pressed) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    current prefix rtn re pressed buffer (inhibit-quit t)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (save-window-excursion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (org-switch-to-buffer-other-window "*Org Select*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (setq buffer (org-switch-to-buffer-other-window "*Org Select*")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (setq orig-table table) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (catch 'exit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(while t 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -104,7 +102,9 @@ also (\"key\" \"description\") entries.  When they are selected, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (message "Invalid key `%s'" pressed) (sit-for 1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (message prompt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (setq pressed (char-to-string (read-char-exclusive)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (if (equal pressed "\C-g") (error "Abort")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (when (equal pressed "\C-g") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (kill-buffer buffer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (error "Abort")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (when (and (not (assoc pressed table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		     (not (member pressed des-keys)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		     (assoc pressed specials)) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -121,7 +121,7 @@ also (\"key\" \"description\") entries.  When they are selected, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			   nil)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		       table)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	  (setq table (remove nil table))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (kill-buffer "*Org Select*") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (when buffer (kill-buffer buffer)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     rtn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (provide 'org-mks) 
			 |