Subject: Re: bug#1406: backward-up-list reports scan error incorrectly?

From: xah lee <[email-masked]>
Date: Fri, 21 Nov 2008 15:26:03 -0800

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.

   Xah
∑ http://xahlee.org/

☄

On Nov 21, 2008, at 3:19 PM, Alan Mackenzie wrote:

'Evening, Xah!

On Fri, Nov 21, 2008 at 01:24:30PM -0800, xah lee wrote:
> This appears to be a bug of backward-up-list.

> Summary: when i do backward-up-list in a particular lisp file, when
> the cursor is inside a double quote, it tell me Unbalanced
> parentheses, but there does not seems to be any unbalanced paren. The
> file byte-compiles fine.

What do you mean, "the cursor is inside a double quote"?  Functions like
backward-up-list don't know whether or not they start inside a string or
comment; the only way they could find out would be by doing a
partial-parse-sexp from some "safe" position earlier on in the file.

So these functions assume they're NOT in a string or comment.
backward-up-list moves back to the quote mark, and tries to jump over  
the
"string it's just found", possibly taking it to the beginning of the
buffer.

The bug appears to be in the doc string of the function, which  
forgets to
mention this assumption.

If you really, really, need a function which works the way you've
pictured, it's not too difficult to write.  But it will be SLOW, SLOW,
SLOW.

-- 
Alan Mackenzie (Nuremberg, Germany).

☄