[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Refile targets fail with certain filename
From: |
Nick Dokos |
Subject: |
Re: [O] Refile targets fail with certain filename |
Date: |
Mon, 12 Dec 2011 12:05:03 -0500 |
Nathan Neff <address@hidden> wrote:
> Hello,
>
> This was a very tricky problem to work around. I have two directories
> ("notesmine" and "personal") that I use to refile stuff to. I refile to my
> notesmine directory once every few months, so I was baffled last night
> when I started getting "Wrong type argument:
> stringp, nil" when I wanted to refile to my notesmine directory.
>
> ;; Setup
> ;; My /Users/nate/Documents/notesmine directory has a file called
> "org-mode.org" in it.
>
> ;; Begin Code
> (defun njn/personal-org-files()
> (interactive)
> (directory-files "/Users/nate/Documents/notesmine" 't "^[^.].*org$")
> )
>
> (defun njn/refile-targets-personal()
> (interactive)
> (setq org-refile-targets
> (quote ((njn/personal-org-files :maxlevel . 5))))
> )
>
> ;; I would then run M-x njn/refile-targets-personal, and
> ;; then press Ctrl-C Ctrl-W to refile a heading in one of my org files.
> ;; Then, I would see the "Wrong type argument: stringp nil"
>
> I found that the problem *disappears* when I remove or re-name
> the "org-mode.org" file from my notesmine directory!
>
> I refile to my personal directory all the time, and I found that if
> I move the "org-mode.org" file to my personal directory, (or create a blank
> "org-mode.org" file in my personal directory then I would start
> getting the same "Wrong type argument stringp, nil" error when refiling
> to my personal directory.
>
> So, as a geek, I'm interested in why the "org-mode.org" filename causes
> this error. I've reproduced the problem with the simple code above, so
> I hope someone else can say "Yes, I can reproduce the problem" and I will
> have done some good :-)
>
> Can anyone reproduce the error and tell me if "org-mode.org" is a keyword or
> function or something, or is the problem in the regular expression I'm
> using to select
> my refile targets?
>
I cannot reproduce it, but the setup needed is probably sufficiently complicated
to make the attempt futile.
Here's the minimal .emacs I tried:
--8<---------------cut here---------------start------------->8---
;;; -*- mode: emacs-lisp -*-
;;; constant part
(add-to-list 'load-path (expand-file-name "~/src/emacs/org/org-mode/lisp"))
(add-to-list 'load-path (expand-file-name
"~/src/emacs/org/org-mode/contrib/lisp"))
(add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
(require 'org-install)
(setq debug-on-error t)
(setq eval-expression-print-length nil)
(setq eval-expression-print-level nil)
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
;;;; Nathan Neff's problem config.
;; Setup
;; My /Users/nate/Documents/notesmine directory has a file called
"org-mode.org" in it.
(setq org-agenda-files '("/home/nick/lib/notesmine"))
;; Begin Code
(defun njn/personal-org-files()
(interactive)
(directory-files "/home/nick/lib/notesmine" 't "^[^.].*org$")
)
(defun njn/refile-targets-personal()
(interactive)
(setq org-refile-targets
(quote ((njn/personal-org-files :maxlevel . 5))))
)
;; I would then run M-x njn/refile-targets-personal, and
;; then press Ctrl-C Ctrl-W to refile a heading in one of my org files.
;; Then, I would see the "Wrong type argument: stringp nil"
;;; end of Nathan Neff's problem config
--8<---------------cut here---------------end--------------->8---
and /home/nick/lib/notesmine contains two files, tasks.org and org-mode.org:
tasks.org:
--8<---------------cut here---------------start------------->8---
* TODO foo
SCHEDULED: <2011-12-12 Mon>
** DONE bar
SCHEDULED: <2011-12-12 Mon>
--8<---------------cut here---------------end--------------->8---
org-mode.org:
--8<---------------cut here---------------start------------->8---
* one
** two
*** three
**** four
***** five
****** TODO foo
SCHEDULED: <2011-12-12 Mon>
--8<---------------cut here---------------end--------------->8---
After doing M-x njn/refile-targets-personal, I can refile from tasks.org (to
either
tasks.org or org-mode.org) with C-c C-w with no problems.
I'd suggest you turn on debug-on-error and post the backtrace, preferably
with a minimal .emacs similar to the above and none of your other
customizations: emacs -q -l /path/to/minimal/dot/emacs
Nick