Subject: Re: bug#4030: forward-sexp parses character literal ?; as comment

From: martin rudalics <[email-masked]>
Date: Tue, 04 Aug 2009 14:43:44 +0200

> It seems that forward-sexp (and its underlying C implementation) does
 > not cope correctly with a character literal semicolon, seeing instead
 > (effectively) end of line.
 >
 > In the *scratch* buffer if you write (insert ?;) you can evaluate this
 > Lisp code and it behaves as intended (inserts a semicolon in the current
 > buffer) but doing M-x forward-sexp just before the expression results in
 > an "Unbalanced parentheses" error.

A similar thing happens with (insert ?") so why don't you escape such a
character by writing (insert ?\;) instead?  From the Elisp manual:

     You can use the same syntax for punctuation characters, but it is
  often a good idea to add a `\' so that the Emacs commands for editing
  Lisp code don't get confused.  For example, `?\(' is the way to write
  the open-paren character.  If the character is `\', you _must_ use a
  second `\' to quote it: `?\\'.

martin