Subject: Re: bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize

From: Stefan Monnier <[email-masked]>
Date: Wed, 18 Jul 2012 03:28:11 -0400

> Emacs hangs on the creation of a newline with evil-ret when in a cperl
> buffer with some POD documentation after the __END__. This doesn't
> appear to be a bug in evil, but instead a bug in cperl or
> syntax-propertize,
> but I can't tell for sure.

Before I dive further into this, can you first check whether the bug-fix
for bug#11739 (see patch below) happens to fix your problem as well?

        Stefan

=== modified file 'lisp/progmodes/cperl-mode.el'
--- lisp/progmodes/cperl-mode.el	2012-01-19 07:21:25 +0000
+++ lisp/progmodes/cperl-mode.el	2012-07-06 20:57:58 +0000
@@ -8951,14 +8951,15 @@
       (setq cperl-syntax-done-to (min cperl-syntax-done-to beg))))
 
 (defun cperl-update-syntaxification (from to)
-  (if (and cperl-use-syntax-table-text-property
-	   cperl-syntaxify-by-font-lock
-	   (or (null cperl-syntax-done-to)
-	       (< cperl-syntax-done-to to)))
-      (progn
-	(save-excursion
-	  (goto-char from)
-	  (cperl-fontify-syntaxically to)))))
+  (cond
+   ((not cperl-use-syntax-table-text-property) nil)
+   ((fboundp 'syntax-propertize) (syntax-propertize to))
+   ((and cperl-syntaxify-by-font-lock
+         (or (null cperl-syntax-done-to)
+             (< cperl-syntax-done-to to)))
+    (save-excursion
+      (goto-char from)
+      (cperl-fontify-syntaxically to)))))
 
 (defvar cperl-version
   (let ((v  "Revision: 6.2"))