summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/syntax.el
diff options
context:
space:
mode:
authorKaroly Lorentey <lorentey@elte.hu>2005-10-23 22:47:29 +0000
committerKaroly Lorentey <lorentey@elte.hu>2005-10-23 22:47:29 +0000
commit6dc59f76f49a35140b3bbdeb9c495609f8e55f3a (patch)
tree3694df29f4ce4ab94220bd377cd0d32b64f98b0a /lisp/emacs-lisp/syntax.el
parenta095475c5f316eed7b27f6e0e6df52dae53dc2a5 (diff)
parentc286104c51b4510ead8e92d265a84aa661ddbf97 (diff)
downloademacs-6dc59f76f49a35140b3bbdeb9c495609f8e55f3a.tar.gz
emacs-6dc59f76f49a35140b3bbdeb9c495609f8e55f3a.tar.bz2
emacs-6dc59f76f49a35140b3bbdeb9c495609f8e55f3a.zip
Merged from miles@gnu.org--gnu-2005 (patch 610-614)
Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-610 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-611 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-612 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-613 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-614 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-429
Diffstat (limited to 'lisp/emacs-lisp/syntax.el')
-rw-r--r--lisp/emacs-lisp/syntax.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index 126c8d50dd9..9c2ac336b9b 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -83,10 +83,14 @@ point (where the PPSS is equivalent to nil).")
(setq syntax-ppss-cache (cdr syntax-ppss-cache)))
;; Throw away `last' value if made invalid.
(when (< beg (or (car syntax-ppss-last) 0))
- (if (< beg (or (car (nth 10 syntax-ppss-last))
- (nth 9 syntax-ppss-last)
- (nth 2 syntax-ppss-last)
- 0))
+ ;; If syntax-begin-function jumped to BEG, then the old state at BEG can
+ ;; depend on the text after BEG (which is presumably changed). So if
+ ;; BEG=(car (nth 10 syntax-ppss-last)) don't reuse that data because the
+ ;; assumed nil state at BEG may not be valid any more.
+ (if (<= beg (or (car (nth 10 syntax-ppss-last))
+ (nth 9 syntax-ppss-last)
+ (nth 3 syntax-ppss-last)
+ 0))
(setq syntax-ppss-last nil)
(setcar syntax-ppss-last nil)))
;; Unregister if there's no cache left. Sadly this doesn't work
@@ -293,5 +297,5 @@ Point is at POS when this function returns."
(provide 'syntax)
-;;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
+;; arch-tag: 302f1eeb-e77c-4680-a8c5-c543e01161a5
;;; syntax.el ends here