GNU bug report logs - #11966
24.1; cperl-mode with evil-mode causes hang on syntax-propertize

Previous Next

Package: emacs;

Reported by: JC Petkovich <jcpetkovich <at> gmail.com>

Date: Tue, 17 Jul 2012 21:30:01 UTC

Severity: normal

Found in version 24.1

Fixed in version 24.2

Done: Stefan Monnier <monnier <at> IRO.UMontreal.CA>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#11966: closed (24.1; cperl-mode with evil-mode causes hang on
 syntax-propertize)
Date: Wed, 18 Jul 2012 09:42:01 +0000
[Message part 1 (text/plain, inline)]
Your message dated Wed, 18 Jul 2012 05:35:23 -0400
with message-id <jwv629l4dnq.fsf-monnier+emacs <at> gnu.org>
and subject line Re: bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
has caused the debbugs.gnu.org bug report #11966,
regarding 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
11966: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11966
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: JC Petkovich <jcpetkovich <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
Date: Tue, 17 Jul 2012 15:04:04 -0400
[Message part 3 (text/plain, inline)]
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.

I can reproduce it with emacs -Q and the following configuration:

;; evil-error-reproduce.el:
(defalias 'perl-mode 'cperl-mode)
(add-to-list 'load-path "<path to evil>")
(require 'evil)
(evil-mode 1)
;; end evil-error-reproduce.el


Once this config is evaluated, open a .pl file which has POD after __END__
like the following:

# hangs.pl:

print "hello world";

__END__

=head1 NAME

# end hangs.pl


and open a newline after the print statement with evil-ret (bound to RET
when in insert mode by default). I haven't been able to get further than
this in debugging this problem.


In GNU Emacs 24.1.1 (x86_64-pc-linux-gnu, GTK+ Version 2.24.10)
 of 2012-07-17 on jcp-lenovo
Windowing system distributor `The X.Org Foundation', version 11.0.11202000
Configured using:
 `configure '--prefix=/usr' '--build=x86_64-pc-linux-gnu'
 '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man'
 '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc'
 '--localstatedir=/var/lib' '--libdir=/usr/lib64'
 '--disable-dependency-tracking' '--program-suffix=-emacs-24'
 '--infodir=/usr/share/info/emacs-24'
 '--enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../lib64'
 '--with-gameuser=games' '--without-compress-info'
 '--disable-maintainer-mode' '--without-hesiod' '--without-kerberos'
 '--without-kerberos5' '--with-gpm' '--with-dbus' '--with-gnutls'
 '--without-xml2' '--without-selinux' '--without-wide-int'
 '--with-sound' '--with-x' '--without-ns' '--without-gconf'
 '--without-gsettings' '--without-toolkit-scroll-bars' '--with-gif'
 '--with-jpeg' '--with-png' '--with-rsvg' '--with-tiff' '--with-xpm'
 '--without-imagemagick' '--with-xft' '--without-libotf'
 '--without-m17n-flt' '--with-x-toolkit=gtk'
 'GENTOO_PACKAGE=app-editors/emacs-24.1'
 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu'
 'CFLAGS=-O2 -march=native -pipe' 'LDFLAGS=-Wl,-O1 -Wl,--as-needed
 -Wl,-O1' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: en_US.UTF-8
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: CPerl

Minor modes in effect:
  evil-mode: t
  evil-local-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
r <tab> r e m <tab> r e <tab> <return> j j j j j j
j j j j j j j j j j j j j j j j j j j j j k o <return>
ESC j j j j V G d g g j j k k V j j j j d j j j j j
j j j j j j j j j j j j j j j j j j j j k k i <return>
<return> <backspace> <backspace> ESC u u j j j j j
j j j j j j j j j j j j j j j j j j j i <backspace>
<return> <return> ESC u u u u u u k k k g g j j j j
j j j j j j j j j j j j j j j j j j j j j j j j j j
j j k k k k g g V j j j j j k d j j j j j j j j j j
j j j j j j j j j j j j j j i <return> C-g ESC u j
j j j j V G d k k k k k i i <backspace> <return> C-g
ESC u C-x b C-g C-x C-b C-g C-x b s c C-g C-x C-f C-g
C-x b s c r <tab> <return> C-x 1 j j o <return> <return>
<return> ESC M-j M-j p k A C-x C-e ESC C-x C-b r e
m <tab> C-g C-x C-g C-x b <tab> <return> M-1 C-x 1
i <return> C-g ESC k d d M-x r e p o <tab> r <tab>
<return>

Recent messages:
Quit [2 times]
Undo!
Quit [4 times]
byte-code: End of buffer [2 times]
t
End of line
Quit
Making completion list...
Quit [2 times]
Making completion list...

Load-path shadows:
/usr/share/emacs/site-lisp/cedet/speedbar/speedbar hides
/usr/share/emacs/24.1/lisp/speedbar
/usr/share/emacs/site-lisp/cedet/common/ezimage hides
/usr/share/emacs/24.1/lisp/ezimage
/usr/share/emacs/site-lisp/cedet/speedbar/dframe hides
/usr/share/emacs/24.1/lisp/dframe
/usr/share/emacs/site-lisp/cedet/speedbar/sb-image hides
/usr/share/emacs/24.1/lisp/sb-image
/usr/share/emacs/site-lisp/ruby-mode/ruby-mode hides
/usr/share/emacs/24.1/lisp/progmodes/ruby-mode
/usr/share/emacs/site-lisp/org-mode/org-archive hides
/usr/share/emacs/24.1/lisp/org/org-archive
/usr/share/emacs/site-lisp/org-mode/ob-clojure hides
/usr/share/emacs/24.1/lisp/org/ob-clojure
/usr/share/emacs/site-lisp/org-mode/ob-keys hides
/usr/share/emacs/24.1/lisp/org/ob-keys
/usr/share/emacs/site-lisp/org-mode/org-macs hides
/usr/share/emacs/24.1/lisp/org/org-macs
/usr/share/emacs/site-lisp/org-mode/org-agenda hides
/usr/share/emacs/24.1/lisp/org/org-agenda
/usr/share/emacs/site-lisp/org-mode/org-mks hides
/usr/share/emacs/24.1/lisp/org/org-mks
/usr/share/emacs/site-lisp/org-mode/org-capture hides
/usr/share/emacs/24.1/lisp/org/org-capture
/usr/share/emacs/site-lisp/org-mode/ob-plantuml hides
/usr/share/emacs/24.1/lisp/org/ob-plantuml
/usr/share/emacs/site-lisp/org-mode/org-indent hides
/usr/share/emacs/24.1/lisp/org/org-indent
/usr/share/emacs/site-lisp/org-mode/ob-table hides
/usr/share/emacs/24.1/lisp/org/ob-table
/usr/share/emacs/site-lisp/org-mode/org-src hides
/usr/share/emacs/24.1/lisp/org/org-src
/usr/share/emacs/site-lisp/org-mode/ob-asymptote hides
/usr/share/emacs/24.1/lisp/org/ob-asymptote
/usr/share/emacs/site-lisp/org-mode/org-bbdb hides
/usr/share/emacs/24.1/lisp/org/org-bbdb
/usr/share/emacs/site-lisp/org-mode/org-datetree hides
/usr/share/emacs/24.1/lisp/org/org-datetree
/usr/share/emacs/site-lisp/org-mode/org-attach hides
/usr/share/emacs/24.1/lisp/org/org-attach
/usr/share/emacs/site-lisp/org-mode/org-clock hides
/usr/share/emacs/24.1/lisp/org/org-clock
/usr/share/emacs/site-lisp/org-mode/org-list hides
/usr/share/emacs/24.1/lisp/org/org-list
/usr/share/emacs/site-lisp/org-mode/ob-sql hides
/usr/share/emacs/24.1/lisp/org/ob-sql
/usr/share/emacs/site-lisp/org-mode/ob-sqlite hides
/usr/share/emacs/24.1/lisp/org/ob-sqlite
/usr/share/emacs/site-lisp/org-mode/ob-org hides
/usr/share/emacs/24.1/lisp/org/ob-org
/usr/share/emacs/site-lisp/org-mode/org-crypt hides
/usr/share/emacs/24.1/lisp/org/org-crypt
/usr/share/emacs/site-lisp/org-mode/ob-R hides
/usr/share/emacs/24.1/lisp/org/ob-R
/usr/share/emacs/site-lisp/org-mode/ob-python hides
/usr/share/emacs/24.1/lisp/org/ob-python
/usr/share/emacs/site-lisp/org-mode/ob-sh hides
/usr/share/emacs/24.1/lisp/org/ob-sh
/usr/share/emacs/site-lisp/org-mode/ob-dot hides
/usr/share/emacs/24.1/lisp/org/ob-dot
/usr/share/emacs/site-lisp/org-mode/ob-ruby hides
/usr/share/emacs/24.1/lisp/org/ob-ruby
/usr/share/emacs/site-lisp/org-mode/org-publish hides
/usr/share/emacs/24.1/lisp/org/org-publish
/usr/share/emacs/site-lisp/org-mode/org-beamer hides
/usr/share/emacs/24.1/lisp/org/org-beamer
/usr/share/emacs/site-lisp/org-mode/org-mac-message hides
/usr/share/emacs/24.1/lisp/org/org-mac-message
/usr/share/emacs/site-lisp/org-mode/org-faces hides
/usr/share/emacs/24.1/lisp/org/org-faces
/usr/share/emacs/site-lisp/org-mode/ob-exp hides
/usr/share/emacs/24.1/lisp/org/ob-exp
/usr/share/emacs/site-lisp/org-mode/org-entities hides
/usr/share/emacs/24.1/lisp/org/org-entities
/usr/share/emacs/site-lisp/org-mode/ob-awk hides
/usr/share/emacs/24.1/lisp/org/ob-awk
/usr/share/emacs/site-lisp/org-mode/org-html hides
/usr/share/emacs/24.1/lisp/org/org-html
/usr/share/emacs/site-lisp/org-mode/ob-ref hides
/usr/share/emacs/24.1/lisp/org/ob-ref
/usr/share/emacs/site-lisp/org-mode/org-inlinetask hides
/usr/share/emacs/24.1/lisp/org/org-inlinetask
/usr/share/emacs/site-lisp/org-mode/org-freemind hides
/usr/share/emacs/24.1/lisp/org/org-freemind
/usr/share/emacs/site-lisp/org-mode/org-feed hides
/usr/share/emacs/24.1/lisp/org/org-feed
/usr/share/emacs/site-lisp/org-mode/ob-calc hides
/usr/share/emacs/24.1/lisp/org/ob-calc
/usr/share/emacs/site-lisp/org-mode/ob-js hides
/usr/share/emacs/24.1/lisp/org/ob-js
/usr/share/emacs/site-lisp/org-mode/ob-sass hides
/usr/share/emacs/24.1/lisp/org/ob-sass
/usr/share/emacs/site-lisp/org-mode/org-footnote hides
/usr/share/emacs/24.1/lisp/org/org-footnote
/usr/share/emacs/site-lisp/org-mode/ob-emacs-lisp hides
/usr/share/emacs/24.1/lisp/org/ob-emacs-lisp
/usr/share/emacs/site-lisp/org-mode/org-remember hides
/usr/share/emacs/24.1/lisp/org/org-remember
/usr/share/emacs/site-lisp/org-mode/ob-eval hides
/usr/share/emacs/24.1/lisp/org/ob-eval
/usr/share/emacs/site-lisp/org-mode/org-id hides
/usr/share/emacs/24.1/lisp/org/org-id
/usr/share/emacs/site-lisp/org-mode/org-icalendar hides
/usr/share/emacs/24.1/lisp/org/org-icalendar
/usr/share/emacs/site-lisp/org-mode/org-plot hides
/usr/share/emacs/24.1/lisp/org/org-plot
/usr/share/emacs/site-lisp/org-mode/ob-css hides
/usr/share/emacs/24.1/lisp/org/ob-css
/usr/share/emacs/site-lisp/org-mode/org-jsinfo hides
/usr/share/emacs/24.1/lisp/org/org-jsinfo
/usr/share/emacs/site-lisp/org-mode/org-vm hides
/usr/share/emacs/24.1/lisp/org/org-vm
/usr/share/emacs/site-lisp/org-mode/org-mobile hides
/usr/share/emacs/24.1/lisp/org/org-mobile
/usr/share/emacs/site-lisp/org-mode/org-mhe hides
/usr/share/emacs/24.1/lisp/org/org-mhe
/usr/share/emacs/site-lisp/org-mode/org-taskjuggler hides
/usr/share/emacs/24.1/lisp/org/org-taskjuggler
/usr/share/emacs/site-lisp/org-mode/org-table hides
/usr/share/emacs/24.1/lisp/org/org-table
/usr/share/emacs/site-lisp/org-mode/org-bibtex hides
/usr/share/emacs/24.1/lisp/org/org-bibtex
/usr/share/emacs/site-lisp/org-mode/org-exp hides
/usr/share/emacs/24.1/lisp/org/org-exp
/usr/share/emacs/site-lisp/org-mode/ob-tangle hides
/usr/share/emacs/24.1/lisp/org/ob-tangle
/usr/share/emacs/site-lisp/org-mode/ob-perl hides
/usr/share/emacs/24.1/lisp/org/ob-perl
/usr/share/emacs/site-lisp/org-mode/ob-scheme hides
/usr/share/emacs/24.1/lisp/org/ob-scheme
/usr/share/emacs/site-lisp/org-mode/ob-gnuplot hides
/usr/share/emacs/24.1/lisp/org/ob-gnuplot
/usr/share/emacs/site-lisp/org-mode/org-mouse hides
/usr/share/emacs/24.1/lisp/org/org-mouse
/usr/share/emacs/site-lisp/org-mode/ob-lisp hides
/usr/share/emacs/24.1/lisp/org/ob-lisp
/usr/share/emacs/site-lisp/org-mode/ob-C hides
/usr/share/emacs/24.1/lisp/org/ob-C
/usr/share/emacs/site-lisp/org-mode/ob-haskell hides
/usr/share/emacs/24.1/lisp/org/ob-haskell
/usr/share/emacs/site-lisp/org-mode/org-ascii hides
/usr/share/emacs/24.1/lisp/org/org-ascii
/usr/share/emacs/site-lisp/org-mode/ob-java hides
/usr/share/emacs/24.1/lisp/org/ob-java
/usr/share/emacs/site-lisp/org-mode/org-habit hides
/usr/share/emacs/24.1/lisp/org/org-habit
/usr/share/emacs/site-lisp/org-mode/ob-lob hides
/usr/share/emacs/24.1/lisp/org/ob-lob
/usr/share/emacs/site-lisp/org-mode/org-xoxo hides
/usr/share/emacs/24.1/lisp/org/org-xoxo
/usr/share/emacs/site-lisp/org-mode/org-info hides
/usr/share/emacs/24.1/lisp/org/org-info
/usr/share/emacs/site-lisp/org-mode/org-latex hides
/usr/share/emacs/24.1/lisp/org/org-latex
/usr/share/emacs/site-lisp/org-mode/ob-ledger hides
/usr/share/emacs/24.1/lisp/org/ob-ledger
/usr/share/emacs/site-lisp/org-mode/org-irc hides
/usr/share/emacs/24.1/lisp/org/org-irc
/usr/share/emacs/site-lisp/org-mode/org-w3m hides
/usr/share/emacs/24.1/lisp/org/org-w3m
/usr/share/emacs/site-lisp/org-mode/ob hides
/usr/share/emacs/24.1/lisp/org/ob
/usr/share/emacs/site-lisp/org-mode/ob-matlab hides
/usr/share/emacs/24.1/lisp/org/ob-matlab
/usr/share/emacs/site-lisp/org-mode/ob-ditaa hides
/usr/share/emacs/24.1/lisp/org/ob-ditaa
/usr/share/emacs/site-lisp/org-mode/org-docview hides
/usr/share/emacs/24.1/lisp/org/org-docview
/usr/share/emacs/site-lisp/org-mode/ob-latex hides
/usr/share/emacs/24.1/lisp/org/ob-latex
/usr/share/emacs/site-lisp/org-mode/org hides
/usr/share/emacs/24.1/lisp/org/org
/usr/share/emacs/site-lisp/org-mode/org-timer hides
/usr/share/emacs/24.1/lisp/org/org-timer
/usr/share/emacs/site-lisp/org-mode/org-exp-blocks hides
/usr/share/emacs/24.1/lisp/org/org-exp-blocks
/usr/share/emacs/site-lisp/org-mode/ob-lilypond hides
/usr/share/emacs/24.1/lisp/org/ob-lilypond
/usr/share/emacs/site-lisp/org-mode/org-special-blocks hides
/usr/share/emacs/24.1/lisp/org/org-special-blocks
/usr/share/emacs/site-lisp/org-mode/ob-mscgen hides
/usr/share/emacs/24.1/lisp/org/ob-mscgen
/usr/share/emacs/site-lisp/org-mode/ob-comint hides
/usr/share/emacs/24.1/lisp/org/ob-comint
/usr/share/emacs/site-lisp/org-mode/org-gnus hides
/usr/share/emacs/24.1/lisp/org/org-gnus
/usr/share/emacs/site-lisp/org-mode/org-install hides
/usr/share/emacs/24.1/lisp/org/org-install
/usr/share/emacs/site-lisp/org-mode/org-compat hides
/usr/share/emacs/24.1/lisp/org/org-compat
/usr/share/emacs/site-lisp/org-mode/org-mew hides
/usr/share/emacs/24.1/lisp/org/org-mew
/usr/share/emacs/site-lisp/org-mode/org-rmail hides
/usr/share/emacs/24.1/lisp/org/org-rmail
/usr/share/emacs/site-lisp/org-mode/ob-screen hides
/usr/share/emacs/24.1/lisp/org/ob-screen
/usr/share/emacs/site-lisp/org-mode/ob-octave hides
/usr/share/emacs/24.1/lisp/org/ob-octave
/usr/share/emacs/site-lisp/org-mode/org-wl hides
/usr/share/emacs/24.1/lisp/org/org-wl
/usr/share/emacs/site-lisp/org-mode/ob-ocaml hides
/usr/share/emacs/24.1/lisp/org/ob-ocaml
/usr/share/emacs/site-lisp/org-mode/org-protocol hides
/usr/share/emacs/24.1/lisp/org/org-protocol
/usr/share/emacs/site-lisp/org-mode/org-pcomplete hides
/usr/share/emacs/24.1/lisp/org/org-pcomplete
/usr/share/emacs/site-lisp/org-mode/org-colview hides
/usr/share/emacs/24.1/lisp/org/org-colview
/usr/share/emacs/site-lisp/org-mode/org-ctags hides
/usr/share/emacs/24.1/lisp/org/org-ctags
/usr/share/emacs/site-lisp/org-mode/org-docbook hides
/usr/share/emacs/24.1/lisp/org/org-docbook
/usr/share/emacs/site-lisp/cedet/eieio/eieio-speedbar hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio-speedbar
/usr/share/emacs/site-lisp/cedet/eieio/eieio hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio
/usr/share/emacs/site-lisp/cedet/eieio/eieio-opt hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio-opt
/usr/share/emacs/site-lisp/cedet/eieio/chart hides
/usr/share/emacs/24.1/lisp/emacs-lisp/chart
/usr/share/emacs/site-lisp/cedet/eieio/eieio-datadebug hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio-datadebug
/usr/share/emacs/site-lisp/cedet/eieio/eieio-base hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio-base
/usr/share/emacs/site-lisp/cedet/eieio/eieio-custom hides
/usr/share/emacs/24.1/lisp/emacs-lisp/eieio-custom
/usr/share/emacs/site-lisp/cedet/common/inversion hides
/usr/share/emacs/24.1/lisp/cedet/inversion
/usr/share/emacs/site-lisp/cedet/common/cedet-cscope hides
/usr/share/emacs/24.1/lisp/cedet/cedet-cscope
/usr/share/emacs/site-lisp/cedet/common/cedet hides
/usr/share/emacs/24.1/lisp/cedet/cedet
/usr/share/emacs/site-lisp/cedet/common/mode-local hides
/usr/share/emacs/24.1/lisp/cedet/mode-local
/usr/share/emacs/site-lisp/cedet/ede/ede hides
/usr/share/emacs/24.1/lisp/cedet/ede
/usr/share/emacs/site-lisp/cedet/common/cedet-global hides
/usr/share/emacs/24.1/lisp/cedet/cedet-global
/usr/share/emacs/site-lisp/cedet/semantic/semantic hides
/usr/share/emacs/24.1/lisp/cedet/semantic
/usr/share/emacs/site-lisp/cedet/srecode/srecode hides
/usr/share/emacs/24.1/lisp/cedet/srecode
/usr/share/emacs/site-lisp/cedet/common/cedet-idutils hides
/usr/share/emacs/24.1/lisp/cedet/cedet-idutils
/usr/share/emacs/site-lisp/cedet/common/pulse hides
/usr/share/emacs/24.1/lisp/cedet/pulse
/usr/share/emacs/site-lisp/cedet/common/data-debug hides
/usr/share/emacs/24.1/lisp/cedet/data-debug
/usr/share/emacs/site-lisp/cedet/common/cedet-files hides
/usr/share/emacs/24.1/lisp/cedet/cedet-files

Features:
(shadow sort gnus-util mail-extr emacsbug message idna format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail regexp-opt rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils newcomment vc-git cperl-mode
help-mode easymenu view evil evil-integration evil-maps evil-commands
evil-cjk evil-types evil-digraphs evil-search evil-ex evil-macros
evil-repeat evil-states evil-core advice help-fns advice-preload
evil-common windmove rect evil-vars ring edmacro kmacro time-date
tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow
timer select scroll-bar mouse jit-lock font-lock syntax facemenu
font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces
cus-face files text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget hashtable-print-readable backquote
make-network-process dbusbind dynamic-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: JC Petkovich <jcpetkovich <at> gmail.com>
Cc: 11966-done <at> debbugs.gnu.org, Ilya Zakharevich <ilyaz <at> cpan.org>
Subject: Re: bug#11966: 24.1;
	cperl-mode with evil-mode causes hang on syntax-propertize
Date: Wed, 18 Jul 2012 05:35:23 -0400
Version:24.2

> 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,

Indeed, I could reproduce it without evil.  It seems to be a bug in
cperl-mode, tho maybe it can only be triggered via syntax-propertize.
In any case, I've installed the patch below into the emacs-24 branch,
and that should fix it.  Thanks you,


        Stefan


=== modified file 'lisp/ChangeLog'
--- lisp/ChangeLog	2012-07-09 13:54:50 +0000
+++ lisp/ChangeLog	2012-07-18 09:32:41 +0000
@@ -1,3 +1,8 @@
+2012-07-18  Stefan Monnier  <monnier <at> iro.umontreal.ca>
+
+	* progmodes/cperl-mode.el (cperl-unwind-to-safe): Don't inf-loop at end
+	of narrowed buffer (bug#11966).
+
 2012-07-09  Stefan Monnier  <monnier <at> iro.umontreal.ca>
 
 	* progmodes/sh-script.el (sh-syntax-propertize-function): Fix last

=== modified file 'lisp/progmodes/cperl-mode.el'
--- lisp/progmodes/cperl-mode.el	2012-06-21 16:49:21 +0000
+++ lisp/progmodes/cperl-mode.el	2012-07-18 09:31:14 +0000
@@ -3498,7 +3498,8 @@
     (if end
 	;; Do the same for end, going small steps
 	(save-excursion
-	  (while (and end (get-text-property end 'syntax-type))
+	  (while (and end (< end (point-max))
+		      (get-text-property end 'syntax-type))
 	    (setq pos end
 		  end (next-single-property-change end 'syntax-type nil (point-max)))
 	    (if end (progn (goto-char end)



This bug report was last modified 13 years and 24 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.