Subject: bug#14595: Erroneous composition of lambda in emacs-lisp buffers with prog-prettify-symbols enabled

From: Juanma Barranquero <[email-masked]>
Date: Sat, 15 Jun 2013 19:49:10 +0200

In other words, this simple patch fixes the problem:

=== modified file 'lisp/progmodes/prog-mode.el'
--- lisp/progmodes/prog-mode.el 2013-06-06 21:32:13 +0000
+++ lisp/progmodes/prog-mode.el 2013-06-15 17:47:50 +0000
@@ -77,7 +77,7 @@
        '(?w) '(?. ?\\))))
     (if (or (memq (char-syntax (or (char-before start) ?\ )) syntaxes)
     (memq (char-syntax (or (char-after end) ?\ )) syntaxes)
-            (nth 8 (syntax-ppss)))
+            (nth 8 (save-match-data (syntax-ppss))))
  ;; No composition for you.  Let's actually remove any composition
  ;; we may have added earlier and which is now incorrect.
  (remove-text-properties start end '(composition))

but, it would still be nice to know why syntax-ppss destroys
(match-data 0) in some lines and not all of them.