Patch 642 (http://patchwork.newartisans.com/patch/642/) is now "Accepted".
Maintainer comment: none This relates to the following submission: http://mid.gmane.org/%3C87wrkh4oua.fsf%40member.fsf.org%3E Here is the original message containing the patch: > Content-Type: text/plain; charset="utf-8" > MIME-Version: 1.0 > Content-Transfer-Encoding: 7bit > Subject: [O] Use and show default refiling location. > Date: Wed, 02 Mar 2011 18:46:37 -0000 > From: Tassilo Horn <tass...@member.fsf.org> > X-Patchwork-Id: 642 > Message-Id: <87wrkh4oua....@member.fsf.org> > To: emacs-orgmode@gnu.org > > * org.el (org-refile-get-location): Set and show default > value. > (org-goto, org-refile): Adapt calls. > > * org-id.el (org-id-get-with-outline-path-completion): Adapt > call. > > * org-agenda.el (org-agenda-refile, org-agenda-bulk-action): > Adapt calls. > > * org-remember.el (org-remember-handler): Adapt call. > > --- > This patch that implements the usage (and indication) of a default > refiling location for `org-refile'. The default is the first value of > `org-refile-history'. Although that value was already easily accessible > from the history with M-n, an explicit default is convenient when > refiling several (non-consecutive, so you cannot refile using a region) > entries. That happened to me just now after importing a dozen of > contacts from Gnus into my contacts.org (using org-contacts.el), > followed by refiling them in several category headlines. > > lisp/org-agenda.el | 4 ++-- > lisp/org-id.el | 2 +- > lisp/org-remember.el | 2 +- > lisp/org.el | 17 ++++++++++++----- > 4 files changed, 16 insertions(+), 9 deletions(-) > > diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el > index ea822da..9a818ce 100644 > --- a/lisp/org-agenda.el > +++ b/lisp/org-agenda.el > @@ -6718,7 +6718,7 @@ If this information is not given, the function uses the > tree at point." > (pos (marker-position marker)) > (rfloc (or rfloc > (org-refile-get-location > - (if goto "Goto: " "Refile to: ") buffer > + (if goto "Goto" "Refile to") buffer > org-refile-allow-creating-parent-nodes)))) > (with-current-buffer buffer > (save-excursion > @@ -7984,7 +7984,7 @@ The prefix arg is passed through to the command if > possible." > > ((member action '(?r ?w)) > (setq rfloc (org-refile-get-location > - "Refile to: " > + "Refile to" > (marker-buffer (car org-agenda-bulk-marked-entries)) > org-refile-allow-creating-parent-nodes)) > (if (nth 3 rfloc) > diff --git a/lisp/org-id.el b/lisp/org-id.el > index a8004af..a70dd15 100644 > --- a/lisp/org-id.el > +++ b/lisp/org-id.el > @@ -231,7 +231,7 @@ It returns the ID of the entry. If necessary, the ID is > created." > (org-refile-use-outline-path > (if (caar org-refile-targets) 'file t)) > (org-refile-target-verify-function nil) > - (spos (org-refile-get-location "Entry: ")) > + (spos (org-refile-get-location "Entry")) > (pom (and spos (move-marker (make-marker) (nth 3 spos) > (get-file-buffer (nth 1 spos)))))) > (prog1 (org-id-get pom 'create) > diff --git a/lisp/org-remember.el b/lisp/org-remember.el > index c6e21ae..3be7b86 100644 > --- a/lisp/org-remember.el > +++ b/lisp/org-remember.el > @@ -1004,7 +1004,7 @@ See also the variable `org-reverse-note-order'." > ((eq org-remember-interactive-interface 'outline-path-completion) > (let ((org-refile-targets '((nil . (:maxlevel . 10)))) > (org-refile-use-outline-path t)) > - (setq spos (org-refile-get-location "Heading: ") > + (setq spos (org-refile-get-location "Heading") > exitcmd 'return > spos (nth 3 spos)))) > (t (error "This should not happen"))) > diff --git a/lisp/org.el b/lisp/org.el > index a26a3ca..51240c3 100644 > --- a/lisp/org.el > +++ b/lisp/org.el > @@ -6544,7 +6544,7 @@ the headline hierarchy above." > (selected-point > (if (eq interface 'outline) > (car (org-get-location (current-buffer) org-goto-help)) > - (let ((pa (org-refile-get-location "Goto: "))) > + (let ((pa (org-refile-get-location "Goto"))) > (org-refile-check-position pa) > (nth 3 pa))))) > (if selected-point > @@ -10290,7 +10290,7 @@ This can be done with a 0 prefix: `C-0 C-c C-w'" > (setq it (or rfloc > (save-excursion > (org-refile-get-location > - (if goto "Goto: " "Refile to: ") default-buffer > + (if goto "Goto" "Refile to") default-buffer > org-refile-allow-creating-parent-nodes))))) > (setq file (nth 1 it) > re (nth 2 it) > @@ -10371,13 +10371,20 @@ This can be done with a 0 prefix: `C-0 C-c C-w'" > (message "This is the location of the last refile")) > > (defun org-refile-get-location (&optional prompt default-buffer new-nodes) > - "Prompt the user for a refile location, using PROMPT." > + "Prompt the user for a refile location, using PROMPT. > +PROMPT should not be prefixed with a colon and a space, because > +this function prepends the default value from > +`org-refile-history' automatically, if that is not empty." > (let ((org-refile-targets org-refile-targets) > (org-refile-use-outline-path org-refile-use-outline-path)) > (setq org-refile-target-table (org-get-refile-targets default-buffer))) > (unless org-refile-target-table > (error "No refile targets")) > - (let* ((cbuf (current-buffer)) > + (let* ((prompt (concat prompt > + (and (car org-refile-history) > + (concat " (default " (car org-refile-history) > ")")) > + ": ")) > + (cbuf (current-buffer)) > (partial-completion-mode nil) > (cfn (buffer-file-name (buffer-base-buffer cbuf))) > (cfunc (if (and org-refile-use-outline-path > @@ -10400,7 +10407,7 @@ This can be done with a 0 prefix: `C-0 C-c C-w'" > pa answ parent-target child parent old-hist) > (setq old-hist org-refile-history) > (setq answ (funcall cfunc prompt tbl nil (not new-nodes) > - nil 'org-refile-history)) > + nil 'org-refile-history (car org-refile-history))) > (setq pa (or (assoc answ tbl) (assoc (concat answ "/") tbl))) > (org-refile-check-position pa) > (if pa >