From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nick Dokos Subject: Re: Refile targets fail with certain filename Date: Mon, 12 Dec 2011 12:05:03 -0500 Message-ID: <28788.1323709503@alphaville.dokosmarshall.org> References: Reply-To: nicholas.dokos@hp.com Return-path: Received: from eggs.gnu.org ([140.186.70.92]:45351) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ra9JY-0007Zi-W5 for emacs-orgmode@gnu.org; Mon, 12 Dec 2011 12:05:26 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ra9JK-0006aJ-QB for emacs-orgmode@gnu.org; Mon, 12 Dec 2011 12:05:20 -0500 Received: from g4t0017.houston.hp.com ([15.201.24.20]:5995) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ra9JK-0006YO-Ft for emacs-orgmode@gnu.org; Mon, 12 Dec 2011 12:05:06 -0500 In-Reply-To: Message from Nathan Neff of "Mon, 12 Dec 2011 09:55:18 CST." List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Nathan Neff Cc: nicholas.dokos@hp.com, emacs-orgmode Nathan Neff 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