* org-refile.el: Fix the case of emtpy buffer name
@ 2021-05-09 14:47 satotake
2021-05-09 14:47 ` [PATCH] " satotake
0 siblings, 1 reply; 13+ messages in thread
From: satotake @ 2021-05-09 14:47 UTC (permalink / raw)
To: emacs-orgmode
Dear Org maintainers,
I often use org-mode for note-taking and so on.
Sometimes, I would like to refile the headings in the scratch to other
org files while I am writing.
When I call `org-refile' in the buffer, Emacs throws errors on
`org-refile-get-targets' because, typically,
these buffers do not have `buffer-name' and I set `org-refile-use-outline-path' `file'.
To fix it, I have created my first patch.
Regards
Takeshi SATO
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] org-refile.el: Fix the case of emtpy buffer name
2021-05-09 14:47 org-refile.el: Fix the case of emtpy buffer name satotake
@ 2021-05-09 14:47 ` satotake
2021-05-09 15:55 ` satotake
0 siblings, 1 reply; 13+ messages in thread
From: satotake @ 2021-05-09 14:47 UTC (permalink / raw)
To: emacs-orgmode; +Cc: satotake
* lisp/org-refile.el (org-refile-get-targets): Ensure
arg of `file-name-non' and `file-truename' is non-nil.
If you set `org-refile-use-outline-path' `file' or `full-file-path',
and call `org-refile' in the buffer before visiting file,
errors are raised at these point. To fix them,
check if they are nil or not.
TINYCHANGE
---
lisp/org-refile.el | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 24a1bde51..6f5b8acee 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -310,11 +310,14 @@ converted to a headline before refiling."
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
(when (eq org-refile-use-outline-path 'file)
- (push (list (file-name-nondirectory f) f nil nil) tgs))
+ (push (list (if f (file-name-nondirectory f) nil) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'buffer-name)
(push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (file-truename (buffer-file-name (buffer-base-buffer))) f nil nil) tgs))
+ (push (list (if (buffer-base-buffer)
+ (file-truename (buffer-file-name (buffer-base-buffer)))
+ nil)
+ f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
(setq org-outline-path-cache nil)
@@ -337,9 +340,11 @@ converted to a headline before refiling."
#'identity
(append
(pcase org-refile-use-outline-path
- (`file (list (file-name-nondirectory
- (buffer-file-name
- (buffer-base-buffer)))))
+ (`file (list
+ (if (buffer-base-buffer)
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer)))
+ nil)))
(`full-file-path
(list (buffer-file-name
(buffer-base-buffer))))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: org-refile.el: Fix the case of emtpy buffer name
2021-05-09 14:47 ` [PATCH] " satotake
@ 2021-05-09 15:55 ` satotake
2021-05-09 15:55 ` [PATCH 2/2] org-refile.el: Fix test case satotake
2021-05-09 16:05 ` satotake
0 siblings, 2 replies; 13+ messages in thread
From: satotake @ 2021-05-09 15:55 UTC (permalink / raw)
To: emacs-orgmode
I am very sorry but related tests failed with my previous patch.
I fixed it with this additinal patch.
Bests,
Takehsi SATO
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 2/2] org-refile.el: Fix test case
2021-05-09 15:55 ` satotake
@ 2021-05-09 15:55 ` satotake
2021-05-09 16:05 ` satotake
1 sibling, 0 replies; 13+ messages in thread
From: satotake @ 2021-05-09 15:55 UTC (permalink / raw)
To: emacs-orgmode; +Cc: satotake
* lisp/org-refile.el (org-refile-get-targets): Check
`buffer-file-name' return value instead of `buffer-base-buffer'.
To pass the related tests, we need to check `buffer-file-name'.
TINYCHANGE
---
lisp/org-refile.el | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 6f5b8acee..2900be27e 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -310,13 +310,12 @@ converted to a headline before refiling."
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
(when (eq org-refile-use-outline-path 'file)
- (push (list (if f (file-name-nondirectory f) nil) f nil nil) tgs))
+ (push (list (and f (file-name-nondirectory f)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'buffer-name)
(push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (if (buffer-base-buffer)
- (file-truename (buffer-file-name (buffer-base-buffer)))
- nil)
+ (push (list (and (buffer-file-name (buffer-base-buffer))
+ (file-truename (buffer-file-name (buffer-base-buffer))))
f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
@@ -341,10 +340,9 @@ converted to a headline before refiling."
(append
(pcase org-refile-use-outline-path
(`file (list
- (if (buffer-base-buffer)
- (file-name-nondirectory
- (buffer-file-name (buffer-base-buffer)))
- nil)))
+ (and (buffer-file-name (buffer-base-buffer))
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer))))))
(`full-file-path
(list (buffer-file-name
(buffer-base-buffer))))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] org-refile.el: Fix test case
2021-05-09 15:55 ` satotake
2021-05-09 15:55 ` [PATCH 2/2] org-refile.el: Fix test case satotake
@ 2021-05-09 16:05 ` satotake
2021-05-11 11:45 ` Maxim Nikulin
1 sibling, 1 reply; 13+ messages in thread
From: satotake @ 2021-05-09 16:05 UTC (permalink / raw)
To: emacs-orgmode; +Cc: satotake
* lisp/org-refile.el (org-refile-get-targets): Check
`buffer-file-name' return value instead of `buffer-base-buffer'.
To pass the related tests, we need to check `buffer-file-name'.
TINYCHANGE
---
lisp/org-refile.el | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 6f5b8acee..2900be27e 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -310,13 +310,12 @@ converted to a headline before refiling."
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
(when (eq org-refile-use-outline-path 'file)
- (push (list (if f (file-name-nondirectory f) nil) f nil nil) tgs))
+ (push (list (and f (file-name-nondirectory f)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'buffer-name)
(push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (if (buffer-base-buffer)
- (file-truename (buffer-file-name (buffer-base-buffer)))
- nil)
+ (push (list (and (buffer-file-name (buffer-base-buffer))
+ (file-truename (buffer-file-name (buffer-base-buffer))))
f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
@@ -341,10 +340,9 @@ converted to a headline before refiling."
(append
(pcase org-refile-use-outline-path
(`file (list
- (if (buffer-base-buffer)
- (file-name-nondirectory
- (buffer-file-name (buffer-base-buffer)))
- nil)))
+ (and (buffer-file-name (buffer-base-buffer))
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer))))))
(`full-file-path
(list (buffer-file-name
(buffer-base-buffer))))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 2/2] org-refile.el: Fix test case
2021-05-09 16:05 ` satotake
@ 2021-05-11 11:45 ` Maxim Nikulin
2021-05-13 18:20 ` org-refile.el: Fix test case (Squashed) satotake
0 siblings, 1 reply; 13+ messages in thread
From: Maxim Nikulin @ 2021-05-11 11:45 UTC (permalink / raw)
To: emacs-orgmode
On 09/05/2021 23:05, satotake wrote:
> * lisp/org-refile.el (org-refile-get-targets): Check
> `buffer-file-name' return value instead of `buffer-base-buffer'.
>
> To pass the related tests, we need to check `buffer-file-name'.
Thank you for the patches. Maybe I have missed something, but it seems 2
patches are not logically independent, second one touches the same code
to fix regression in tests. If so, could you, please, squash both
patches into a single one (e.g. using git rebase --interactive)? I hope,
it will help to review the change and to avoid confusion with several
versions of second patch in 2 threads.
Code around has at least one more problem: questionable behavior in the
case of indirect buffers (e.g. C-x 4 c). Refile targets cache, when
enabled, is not reused for indirect buffer.
On 09/05/2021 21:47, satotake wrote:
> I often use org-mode for note-taking and so on.
> Sometimes, I would like to refile the headings in the scratch to other
> org files while I am writing.
Have you tried org-capture? https://orgmode.org/manual/Capture.html
https://sachachua.com/blog/2015/02/learn-take-notes-efficiently-org-mode/#unnumbered-3
I think, existence of this feature is the reason why this bug was
remaining unnoticed.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: org-refile.el: Fix test case (Squashed)
2021-05-11 11:45 ` Maxim Nikulin
@ 2021-05-13 18:20 ` satotake
2021-05-13 18:20 ` [PATCH] org-refile.el: Fix the case of emtpy buffer name satotake
0 siblings, 1 reply; 13+ messages in thread
From: satotake @ 2021-05-13 18:20 UTC (permalink / raw)
To: manikulin; +Cc: emacs-orgmode
Thank you for your response.
> Maybe I have missed something, but it seems 2
> patches are not logically independent, second one touches the same code
> to fix regression in tests.
> If so, could you, please, squash both
> patches into a single one (e.g. using git rebase --interactive)?
Yes. They should be a single patch. I squashed them.
> Have you tried org-capture?
Yes. Mostly I use org-capture, especially, for creating TODO tasks.
I sometimes start with fundamental-mode new buffer.
After writing some texts, I switch to org-mode and try to call refile.
I do not know why I do it by myself clearly but I tend to do it when I
do not have any clear goal for the file.
I see this issue not critical for now because I know why this happens
and just save it anywhere temporarily to avoid it.
But when I was new to Emacs and org-mode, I did not have any idea.
Thus, at least, we should show friendly error message.
> Code around has at least one more problem: questionable behavior in the
> case of indirect buffers (e.g. C-x 4 c). Refile targets cache, when
> enabled, is not reused for indirect buffer.
In addition to your point, I found that we cannot refile internally even with
my patch. In other words, if we can cache and reuse it, error ("Please
indicate a target file in the refile path") is raised
when we select it as refile target.
Probably, we need to some additional fixations.
It may be good to filter `files' which does not have `buffer-file-name'.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] org-refile.el: Fix the case of emtpy buffer name
2021-05-13 18:20 ` org-refile.el: Fix test case (Squashed) satotake
@ 2021-05-13 18:20 ` satotake
2021-05-14 15:09 ` Maxim Nikulin
2021-05-15 8:20 ` Bastien
0 siblings, 2 replies; 13+ messages in thread
From: satotake @ 2021-05-13 18:20 UTC (permalink / raw)
To: manikulin; +Cc: satotake, emacs-orgmode
* lisp/org-refile.el (org-refile-get-targets): Ensure
arg of `file-name-non' and `file-truename' is non-nil.
If you set `org-refile-use-outline-path' `file' or `full-file-path',
and call `org-refile' in the buffer before visiting file,
errors are raised at these point. To fix them,
check if they are nil or not.
TINYCHANGE
---
lisp/org-refile.el | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 24a1bde51..2900be27e 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -310,11 +310,13 @@ converted to a headline before refiling."
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
(when (eq org-refile-use-outline-path 'file)
- (push (list (file-name-nondirectory f) f nil nil) tgs))
+ (push (list (and f (file-name-nondirectory f)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'buffer-name)
(push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (file-truename (buffer-file-name (buffer-base-buffer))) f nil nil) tgs))
+ (push (list (and (buffer-file-name (buffer-base-buffer))
+ (file-truename (buffer-file-name (buffer-base-buffer))))
+ f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
(setq org-outline-path-cache nil)
@@ -337,9 +339,10 @@ converted to a headline before refiling."
#'identity
(append
(pcase org-refile-use-outline-path
- (`file (list (file-name-nondirectory
- (buffer-file-name
- (buffer-base-buffer)))))
+ (`file (list
+ (and (buffer-file-name (buffer-base-buffer))
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer))))))
(`full-file-path
(list (buffer-file-name
(buffer-base-buffer))))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH] org-refile.el: Fix the case of emtpy buffer name
2021-05-13 18:20 ` [PATCH] org-refile.el: Fix the case of emtpy buffer name satotake
@ 2021-05-14 15:09 ` Maxim Nikulin
2021-05-15 8:20 ` Bastien
1 sibling, 0 replies; 13+ messages in thread
From: Maxim Nikulin @ 2021-05-14 15:09 UTC (permalink / raw)
To: emacs-orgmode
In my opinion, patch is the minimal change that fixes particular
workflow and can be committed in the current form. Commit message may be
improved a bit.
I have a question (mainly to maintainer) if another approach could lead
to undesired effects, see below.
I have noticed a couple of old issues that can be improved later since
they may require more changes than allowed for "TINYCHANGE".
On 14/05/2021 01:20, satotake wrote:
> [PATCH] org-refile.el: Fix the case of emtpy buffer name
Buffer not associated with a file may be more precise since "*scratch*"
has name.
> * lisp/org-refile.el (org-refile-get-targets): Ensure
> arg of `file-name-non' and `file-truename' is non-nil.
truncated function name
Comments below a loosely related to the suggested patch.
> --- a/lisp/org-refile.el
> +++ b/lisp/org-refile.el
> @@ -310,11 +310,13 @@ converted to a headline before refiling."
> (setq f (buffer-file-name (buffer-base-buffer f))))
> (setq f (and f (expand-file-name f)))
> (when (eq org-refile-use-outline-path 'file)
> - (push (list (file-name-nondirectory f) f nil nil) tgs))
> + (push (list (and f (file-name-nondirectory f)) f nil nil) tgs))
> (when (eq org-refile-use-outline-path 'buffer-name)
> (push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
> (when (eq org-refile-use-outline-path 'full-file-path)
> - (push (list (file-truename (buffer-file-name (buffer-base-buffer))) f nil nil) tgs))
Notice `file-truename'
> + (push (list (and (buffer-file-name (buffer-base-buffer))
> + (file-truename (buffer-file-name (buffer-base-buffer))))
> + f nil nil) tgs))
> (org-with-wide-buffer
> (goto-char (point-min))
> (setq org-outline-path-cache nil)
> @@ -337,9 +339,10 @@ converted to a headline before refiling."
> #'identity
> (append
> (pcase org-refile-use-outline-path
> - (`file (list (file-name-nondirectory
> - (buffer-file-name
> - (buffer-base-buffer)))))
> + (`file (list
> + (and (buffer-file-name (buffer-base-buffer))
I hope, additional operation in the inner loop has minimal performance
penalty. Additional variable may be introduced and initialized before
the loop over headings. It may help to avoid discrepancy similar to
`file-truename'.
> + (file-name-nondirectory
> + (buffer-file-name (buffer-base-buffer))))))
> (`full-file-path
> (list (buffer-file-name
> (buffer-base-buffer))))
Earlier patch, that added `file-truename' above, missed this point. At
first I was surprised why this clause does not require modification.
To maintainers:
What are negative consequences of completely skipping of buffers that
have no associated files? I mean not to add them to the list for
iteration. I can anticipate some tests should be fixed but I do not
think it is a problem. Anyway `org-goto' and `org-refile' do not work in
such buffers (from my point of view, reaction to such issue should be
saving content of buffer to some file since critical size of notes is
achieved):
On 14/05/2021 01:20, satotake wrote:
> In addition to your point, I found that we cannot refile internally even with
>
> my patch. In other words, if we can cache and reuse it, error ("Please
> indicate a target file in the refile path") is raised
> when we select it as refile target.
> Probably, we need to some additional fixations.
> It may be good to filter `files' which does not have `buffer-file-name'.
>> Have you tried org-capture?
> Yes. Mostly I use org-capture, especially, for creating TODO tasks.
> I sometimes start with fundamental-mode new buffer.
> After writing some texts, I switch to org-mode and try to call refile.
> I do not know why I do it by myself clearly but I tend to do it when I
> do not have any clear goal for the file.
Thank you for details. I think, it is a kind of valid workflow.
Personally I would consider it unreliable however. I suppose,
`org-default-notes-file' (default capture target) better suited for
temporary notes since it minimizes risk of lost text in the case of
failure. It requires to change habits a bit to call org-capture with
simple template in advance.
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] org-refile.el: Fix the case of emtpy buffer name
2021-05-13 18:20 ` [PATCH] org-refile.el: Fix the case of emtpy buffer name satotake
2021-05-14 15:09 ` Maxim Nikulin
@ 2021-05-15 8:20 ` Bastien
2021-05-15 10:38 ` satotake
1 sibling, 1 reply; 13+ messages in thread
From: Bastien @ 2021-05-15 8:20 UTC (permalink / raw)
To: satotake; +Cc: manikulin, emacs-orgmode
Hi,
satotake <doublequotation@gmail.com> writes:
> * lisp/org-refile.el (org-refile-get-targets): Ensure
> arg of `file-name-non' and `file-truename' is non-nil.
>
> If you set `org-refile-use-outline-path' `file' or `full-file-path',
> and call `org-refile' in the buffer before visiting file,
> errors are raised at these point. To fix them,
> check if they are nil or not.
>
> TINYCHANGE
Applied in maint as d285831af with a slightly updated commit message,
thank you.
--
Bastien
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH] org-refile.el: Fix the case of emtpy buffer name
2021-05-15 8:20 ` Bastien
@ 2021-05-15 10:38 ` satotake
2021-05-15 10:38 ` [PATCH] org-refile.el: Fix the case of *scratch* buffer satotake
0 siblings, 1 reply; 13+ messages in thread
From: satotake @ 2021-05-15 10:38 UTC (permalink / raw)
To: bzg; +Cc: emacs-orgmode
I was just refactoring my earlier patch based on Maxim's suggestions.
I attached it but it might be too late.
If the revision make you confused, please ignore it.
Anyway,
thank you for your reviewing, Maxim and Bastien.
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH] org-refile.el: Fix the case of *scratch* buffer
2021-05-15 10:38 ` satotake
@ 2021-05-15 10:38 ` satotake
0 siblings, 0 replies; 13+ messages in thread
From: satotake @ 2021-05-15 10:38 UTC (permalink / raw)
To: bzg; +Cc: satotake, emacs-orgmode
* lisp/org-refile.el (org-refile-get-targets): Ensure
arg of `file-name-nondirectory' and `file-truename' is non-nil.
If you set `org-refile-use-outline-path' `file' or `full-file-path',
and call `org-refile' in the buffer before visiting file,
errors are raised at these point. To fix them,
check if they are nil or not.
TINYCHANGE
---
lisp/org-refile.el | 34 ++++++++++++++++------------------
1 file changed, 16 insertions(+), 18 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 24a1bde51..01a0a6f7f 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -267,7 +267,7 @@ converted to a headline before refiling."
(let ((case-fold-search nil)
;; otherwise org confuses "TODO" as a kw and "Todo" as a word
(entries (or org-refile-targets '((nil . (:level . 1)))))
- targets tgs files desc descre)
+ targets tgs files desc descre tg-base)
(message "Getting targets...")
(with-current-buffer (or default-buffer (current-buffer))
(dolist (entry entries)
@@ -309,12 +309,17 @@ converted to a headline before refiling."
(when (bufferp f)
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
- (when (eq org-refile-use-outline-path 'file)
- (push (list (file-name-nondirectory f) f nil nil) tgs))
- (when (eq org-refile-use-outline-path 'buffer-name)
- (push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
- (when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (file-truename (buffer-file-name (buffer-base-buffer))) f nil nil) tgs))
+ (setq tg-base
+ (pcase org-refile-use-outline-path
+ (`file (and f (file-name-nondirectory f)))
+ (`full-file-path
+ (and (buffer-file-name (buffer-base-buffer))
+ (file-truename (buffer-file-name (buffer-base-buffer)))))
+ (`buffer-name (buffer-name (buffer-base-buffer)))
+ (_ nil)))
+ (when (member org-refile-use-outline-path
+ '(file full-file-path buffer-name))
+ (push (list tg-base f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
(setq org-outline-path-cache nil)
@@ -336,17 +341,10 @@ converted to a headline before refiling."
(mapconcat
#'identity
(append
- (pcase org-refile-use-outline-path
- (`file (list (file-name-nondirectory
- (buffer-file-name
- (buffer-base-buffer)))))
- (`full-file-path
- (list (buffer-file-name
- (buffer-base-buffer))))
- (`buffer-name
- (list (buffer-name
- (buffer-base-buffer))))
- (_ nil))
+ (if (member org-refile-use-outline-path
+ '(file full-file-path buffer-name))
+ (list tg-base)
+ nil)
(mapcar (lambda (s) (replace-regexp-in-string
"/" "\\/" s nil t))
(org-get-outline-path t t)))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/2] org-refile.el: Fix test case
@ 2021-05-09 16:02 satotake
0 siblings, 0 replies; 13+ messages in thread
From: satotake @ 2021-05-09 16:02 UTC (permalink / raw)
To: emacs-orgmode; +Cc: satotake
* lisp/org-refile.el (org-refile-get-targets): Check
`buffer-file-name' return value instead of `buffer-base-buffer'.
To pass the related tests, we need to check `buffer-file-name'.
TINYCHANGE
---
lisp/org-refile.el | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/lisp/org-refile.el b/lisp/org-refile.el
index 6f5b8acee..2900be27e 100644
--- a/lisp/org-refile.el
+++ b/lisp/org-refile.el
@@ -310,13 +310,12 @@ converted to a headline before refiling."
(setq f (buffer-file-name (buffer-base-buffer f))))
(setq f (and f (expand-file-name f)))
(when (eq org-refile-use-outline-path 'file)
- (push (list (if f (file-name-nondirectory f) nil) f nil nil) tgs))
+ (push (list (and f (file-name-nondirectory f)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'buffer-name)
(push (list (buffer-name (buffer-base-buffer)) f nil nil) tgs))
(when (eq org-refile-use-outline-path 'full-file-path)
- (push (list (if (buffer-base-buffer)
- (file-truename (buffer-file-name (buffer-base-buffer)))
- nil)
+ (push (list (and (buffer-file-name (buffer-base-buffer))
+ (file-truename (buffer-file-name (buffer-base-buffer))))
f nil nil) tgs))
(org-with-wide-buffer
(goto-char (point-min))
@@ -341,10 +340,9 @@ converted to a headline before refiling."
(append
(pcase org-refile-use-outline-path
(`file (list
- (if (buffer-base-buffer)
- (file-name-nondirectory
- (buffer-file-name (buffer-base-buffer)))
- nil)))
+ (and (buffer-file-name (buffer-base-buffer))
+ (file-name-nondirectory
+ (buffer-file-name (buffer-base-buffer))))))
(`full-file-path
(list (buffer-file-name
(buffer-base-buffer))))
--
2.30.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
end of thread, other threads:[~2021-05-15 10:40 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-09 14:47 org-refile.el: Fix the case of emtpy buffer name satotake
2021-05-09 14:47 ` [PATCH] " satotake
2021-05-09 15:55 ` satotake
2021-05-09 15:55 ` [PATCH 2/2] org-refile.el: Fix test case satotake
2021-05-09 16:05 ` satotake
2021-05-11 11:45 ` Maxim Nikulin
2021-05-13 18:20 ` org-refile.el: Fix test case (Squashed) satotake
2021-05-13 18:20 ` [PATCH] org-refile.el: Fix the case of emtpy buffer name satotake
2021-05-14 15:09 ` Maxim Nikulin
2021-05-15 8:20 ` Bastien
2021-05-15 10:38 ` satotake
2021-05-15 10:38 ` [PATCH] org-refile.el: Fix the case of *scratch* buffer satotake
-- strict thread matches above, loose matches on Subject: below --
2021-05-09 16:02 [PATCH 2/2] org-refile.el: Fix test case satotake
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).