Andreas Röhler <andreas.roehler@easy-emacs.de> writes:
(defun end-of-sexp ()
"Move point to the end of the current sexp.
\[This is an internal function.]"
(let ((char-syntax (char-syntax (char-after))))
(if (or (eq char-syntax ?\))
(and (eq char-syntax ?\") (in-string-p)))
(forward-char 1)
(forward-sexp 1))))
"or" asks if inside a string and calls (forward-char 1).
This must fail with some probability with
triple-quoted-strings as used in Python.
Solution:
When inside a string, jump to (nth 8 (syntax-ppss)) and
call (forward-sexp 1) from there.
(I'm going through old bug reports that unfortunately weren't resolved
at the time.)
It's not quite clear to me what the actual problem here is.