[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Bug: wrong-type-argument when changing TODO state [7.7]

From: Nick Dokos
Subject: Re: [O] Bug: wrong-type-argument when changing TODO state [7.7]
Date: Tue, 30 Aug 2011 13:21:51 -0400

Nick Dokos <address@hidden> wrote:

> I'm pretty tired and I might have misunderstood what is happening here,
> so don't put too much weight on the following. I'll need some sleep
> before I can take a whack at it again however.
> Nick
> Nick Dokos <address@hidden> wrote:
> > Stelian Iancu <address@hidden> wrote:
> > 
> > 
> > > > 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?
> > > 
> > 
> > Yes - don't ever do that. The major mode of a buffer is set by calling a
> > function (e.g. the org-mode function for buffers that should be in org
> > mode).  That function does a million things to make sure that everything
> > works properly: your setting a single variable does none of that and all
> > you end up doing is confusing emacs.
> > 
> > In most cases, you don't even call the mode function explicitly: it is
> > called for you automatically, e.g. through the setting of auto-mode-alist.
> > I have the following in my basic customizations:
> > 
> > (add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
> > 
> > That says to emacs: when find-file is called to open a file whose name
> > ends in `.org' arrange to call the function org-mode on it. The function
> > takes care of the setting of major-mode.
> > 
> > Be sure to read Ch.23 of the emacs manual on major modes.
> > 

This is all correct I think (except for the ominous first
sentence).  But having

(setq major-mode 'org-mode)

in one's .emacs should not have any effect: major-mode is
buffer local, so the setting above should not have any
effect on *anything*, afaict.  To make org-mode the
default mode for new buffers, you'd have to say

(setq-default major-mode 'org-mode)

I've added each of those to my minimal .emacs and I have
no problem using S-{right,left} to change the TODO state
in a .org file. When I set org-mode to be the default
major mode and I open an unrelated file, its major mode
is set to org-mode, but when I S-{right,left} at some
arbitrary place, I get a message:

To use shift-selection with Org-mode, customize

and the corresponding message in the *Messages* buffer

if: To use shift-selection with Org-mode, customize

That's an error, but it's a "reasonable" error: not right
but not too bad.

And when I ``find-file foo.bar'' which would normally
open it in fundamental mode, I do get it in org-mode and
everything works as it should: I can add headlines and
change TODO states normally.

So to summarize: no idea why that setting should have any
effect at all.


PS. The only possible explanation I can think of is
version differences:

Org-mode version 7.7 (release_7.7.205.gce02a) 

GNU Emacs (x86_64-unknown-linux-gnu, GTK+
Version 2.22.0) of 2011-07-30

I have not tried with emacs 23.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]