From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stelian Iancu Subject: Re: Bug: wrong-type-argument when changing TODO state [7.7] Date: Mon, 29 Aug 2011 23:59:58 +0200 Message-ID: References: <4E5A2556.50106@gmail.com> <27177.1314551389@alphaville.dokosmarshall.org> <23342.1314604746@alphaville.dokosmarshall.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:55870) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qy9sT-00055s-GR for emacs-orgmode@gnu.org; Mon, 29 Aug 2011 18:00:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qy9sS-0002Uw-BY for emacs-orgmode@gnu.org; Mon, 29 Aug 2011 18:00:21 -0400 Received: from mail-ey0-f171.google.com ([209.85.215.171]:60990) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qy9sS-0002Uo-3t for emacs-orgmode@gnu.org; Mon, 29 Aug 2011 18:00:20 -0400 Received: by eyg24 with SMTP id 24so6330866eyg.30 for ; Mon, 29 Aug 2011 15:00:19 -0700 (PDT) In-Reply-To: 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: nicholas.dokos@hp.com Cc: emacs-orgmode@gnu.org On Mon, Aug 29, 2011 at 23:42, Stelian Iancu wrot= e: > On Mon, Aug 29, 2011 at 09:59, Nick Dokos wrote: >> Stelian Iancu wrote: >> >>> On Sun, Aug 28, 2011 at 19:09, Nick Dokos wrote= : >>> > Stelian Iancu wrote: >>> > >>> >> >>> >> I am trying to switch between TODO and DONE states with Shift-Right >>> >> Arrow and I get a (wrong-type-argument stringp nil) error. >>> >> >>> >> Please find attached the backtrace. >>> >> >>> >> >>> >> Emacs =A0: GNU Emacs 23.2.1 (i486-pc-linux-gnu, GTK+ Version 2.20.0) >>> >> =A0of 2010-12-11 on raven, modified by Debian >>> >> Package: Org-mode version 7.7 >>> >> >>> > >>> >> Debugger entered--Lisp error: (wrong-type-argument stringp nil) >>> >> =A0 looking-at(nil) >>> >> =A0 (save-excursion (beginning-of-line 1) (looking-at org-todo-line-= regexp)) >>> >> =A0 (and (outline-on-heading-p) (not (bolp)) (save-excursion (beginn= ing-of-line 1) (looking-at org-todo-line-regexp)) (< (point) (+ 2 ...))) >>> >> =A0 (if (and (outline-on-heading-p) (not ...) (save-excursion ... ..= .) (< ... ...)) (progn (goto-char ...) (and ... ...))) >>> >> =A0 (let* ...) >>> >> =A0 (catch (quote exit) ...) >>> >> =A0 (save-excursion (catch (quote exit)...) >>> >> =A0 (let ...) >>> >> =A0 org-todo(right) >>> >> =A0 call-interactively(org-todo) >>> >> =A0 (let ((current-prefix-arg arg)) (call-interactively command)) >>> >> =A0 org-call-with-arg(org-todo right) >>> >> =A0 (let ...) >>> >> =A0 (cond ...) >>> >> =A0 org-shiftright(nil) >>> >> =A0 call-interactively(org-shiftright nil nil) >>> > >>> > The problem is that org-todo-line-regexp is nil. This variable is >>> > made buffer-local and initialized when the buffer's mode is set >>> > to org-mode. >>> > >>> > Are you sure that your buffer's major mode is org-mode? >>> > >>> > Nick >>> > >>> >>> Yeah, the mode shows as org-mode. >> >> What happens if while visiting the buffer, you say >> >> C-h v org-todo-line-regexp RET >> >> Is the value reported nil? > > Yes, the value is nil. > >> >>> But now I get another weird one. >>> Everytime I open an org file, I see the following message in the >>> minibuffer: >>> >>> File mode specification error: (wrong-type-argument keymap nil) >>> >> >> That will require another backtrace but... >> >>> I'm lost ... >> >> When you get to the point of feeling lost, it's time to take a step >> back. Make yourself a minimal.emacs that contains just the basics to >> get org-mode loaded - assuming you get your org sources from git, then >> you need something like this (with pathnames changed appropriately): >> >> --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 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . or= g-mode)) >> (require 'org-install) >> (global-set-key "\C-cl" 'org-store-link) >> (global-set-key "\C-ca" 'org-agenda) >> --8<---------------cut here---------------end--------------->8--- >> >> Then start up an emacs without any of your customizations, load the mini= mal.emacs >> file and visit an org file and try what you tried before: >> >> =A0 emacs -q -l /path/to/minimal.emacs /path/to/somefile.org >> >> and try changing a TODO as before. =A0Does that work? > > Tried this one and indeed, it works now. Looking at the > org-todo-line-regexp variable I can see it's no longer reported nil. > >> If not, try -Q >> instead of -q: does *that* work? >> >> Assuming one of these works, then you have localized the problem to >> some customization (yours or the systems) and then there are various >> ways to proceed. >> > > So it is a customization issue. Now the question is what :-). I should > mention that I am using both dev versions for Emacs and org-mode > (Emacs from bzr from a few days ago and org-mode from git from a few > days ago) on Mac OS X 10.7. Emacs is installed using homebrew. > Ok, it seems like I've found the culprit. It's this line: ;; Make org-mode default for all the new files (setq major-mode 'org-mode) If I comment it out, it all works beautifully. I thought it was because I was executing it before loading org-mode, but I've made sure org-mode is loaded before executing that line and I still get the same error. Any ideas why it happens? Thanks, S.