|
@@ -11755,6 +11755,17 @@ prefix argument (`C-u C-u C-u C-c C-w')."
|
|
|
(bookmark-jump "org-refile-last-stored")
|
|
|
(message "This is the location of the last refile"))
|
|
|
|
|
|
+(defun org-refile--get-location (refloc tbl)
|
|
|
+ "When user refile to REFLOC, find the associated target in TBL.
|
|
|
+Also check `org-refile-target-table'."
|
|
|
+ (car (delq
|
|
|
+ nil
|
|
|
+ (mapcar
|
|
|
+ (lambda (r) (or (assoc r tbl)
|
|
|
+ (assoc r org-refile-target-table)))
|
|
|
+ (list (replace-regexp-in-string "/$" "" refloc)
|
|
|
+ (replace-regexp-in-string "\\([^/]\\)$" "\\1/" refloc))))))
|
|
|
+
|
|
|
(defun org-refile-get-location (&optional prompt default-buffer new-nodes
|
|
|
no-exclude)
|
|
|
"Prompt the user for a refile location, using PROMPT.
|
|
@@ -11808,8 +11819,7 @@ this is used for the GOTO interface."
|
|
|
(setq old-hist org-refile-history)
|
|
|
(setq answ (funcall cfunc prompt tbl nil (not new-nodes)
|
|
|
nil 'org-refile-history (or cdef (car org-refile-history))))
|
|
|
- (setq pa (or (assoc answ tbl) (assoc (concat answ "/") tbl)))
|
|
|
- (if pa
|
|
|
+ (if (setq pa (org-refile--get-location answ tbl))
|
|
|
(progn
|
|
|
(org-refile-check-position pa)
|
|
|
(when (or (not org-refile-history)
|
|
@@ -11826,8 +11836,7 @@ this is used for the GOTO interface."
|
|
|
(progn
|
|
|
(setq parent (match-string 1 answ)
|
|
|
child (match-string 2 answ))
|
|
|
- (setq parent-target (or (assoc parent tbl)
|
|
|
- (assoc (concat parent "/") tbl)))
|
|
|
+ (setq parent-target (org-refile--get-location parent tbl))
|
|
|
(when (and parent-target
|
|
|
(or (eq new-nodes t)
|
|
|
(and (eq new-nodes 'confirm)
|