[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#1406: backward-up-list reports scan error incorrectly?
From: |
xah lee |
Subject: |
bug#1406: backward-up-list reports scan error incorrectly? |
Date: |
Sat, 22 Nov 2008 05:01:10 -0800 |
Sorry never mind.
i was able to duplicate your error. Some of my testing in previous
post went wrong because i was in text-mode.
though, isn't this something easy to fix? I mean, it surely is easy
to determine if cursor is in inside double quotes, therefore it can
simply move out the quote then do backward-up-list?
In any case, thanks.
Xah
∑ http://xahlee.org/
☄
On Nov 22, 2008, at 4:53 AM, xah lee wrote:
hi Alan,
(defun foo (arg)
"foo does nothing."
(interactive "P"))
Put point inside "P", and do C-M-u `backward-up-list'. You get the
error.
i couldn't duplicate this. It seems to work for me.
am using
GNU Emacs 22.2.1 (powerpc-apple-darwin8.11.0, Carbon Version 1.6.0)
of 2008-04-05 on g5.tokyo.stp.isas.jaxa.jp
i tried aquamacs. I can duplicate it with -Q, but not with -q.
Now i try carbon emacs again with -q, and i _can_ duplicate it.
... umm... not sure what is the problem now... since i'm pretty sure
i don't have any customization for emacs-lisp-mode ...
am kinda tired now. Maybe i'll do some more testing to see what i
find out.
Xah
∑ http://xahlee.org/
☄
On Nov 22, 2008, at 4:36 AM, Alan Mackenzie wrote:
Hi, Xah!
On Fri, Nov 21, 2008 at 03:26:03PM -0800, xah lee wrote:
Hi Alan,
it works if you switch to text mode though.
It doesn't work while in emacs-lisp-mode and fundamental mode.
In any case, normally it works when inside string too. Just not in
this particular case.
OK, I think half of the problem here is your prolixity, the other half
is my prolixity. :-)
Try instead the following example:
(defun foo (arg)
"foo does nothing."
(interactive "P"))
Put point inside "P", and do C-M-u `backward-up-list'. You get the
error. Now modify the above function by inserting an open paren into
the doc string,
(defun foo (arg)
"foo does nothing. ("
(interactive "P"))
, and do the same again. It finds that paren. Why? Because
backward-up-list assumes its starting point is NOT in a string. It
jumps backwards over (what it thinks is) the string
"\n(interactive "
, and then finds the ?\(.
This is exactly what is happening in your somewhat larger example.
In text mode, presumably the syntax table doesn't define ?\" as a string
quote. In fundamental mode, presumably it does. "(syntax-after
(point))" is your friend here.
Xah
--
Alan Mackenzie (Nuremberg, Germany).
☄
☄