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.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 11966 in the body.
You can then email your comments to 11966 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#11966; Package emacs. (Tue, 17 Jul 2012 21:30:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to JC Petkovich <jcpetkovich <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Tue, 17 Jul 2012 21:30:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

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 1 (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 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#11966; Package emacs. (Wed, 18 Jul 2012 07:35:02 GMT) Full text and rfc822 format available.

Message #8 received at 11966 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: JC Petkovich <jcpetkovich <at> gmail.com>
Cc: 11966 <at> debbugs.gnu.org
Subject: Re: bug#11966: 24.1;
	cperl-mode with evil-mode causes hang on syntax-propertize
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"))





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#11966; Package emacs. (Wed, 18 Jul 2012 07:49:02 GMT) Full text and rfc822 format available.

Message #11 received at 11966 <at> debbugs.gnu.org (full text, mbox):

From: JC Petkovich <jcpetkovich <at> gmail.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 11966 <at> debbugs.gnu.org
Subject: Re: bug#11966: 24.1;
	cperl-mode with evil-mode causes hang on syntax-propertize
Date: Wed, 18 Jul 2012 03:41:54 -0400
[Message part 1 (text/plain, inline)]
I'm afraid the patch does not appear to do anything. Same symptoms.

Same procedure was used to reproduce, using a patched cperl-mode.el instead
(I made sure it was not loading the old elc, I moved it elsewhere).

Jean-Christophe Petkovich


On Wed, Jul 18, 2012 at 3:28 AM, Stefan Monnier <monnier <at> iro.umontreal.ca>wrote:

> > 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"))
>
>
[Message part 2 (text/html, inline)]

Reply sent to Stefan Monnier <monnier <at> IRO.UMontreal.CA>:
You have taken responsibility. (Wed, 18 Jul 2012 09:42:01 GMT) Full text and rfc822 format available.

Notification sent to JC Petkovich <jcpetkovich <at> gmail.com>:
bug acknowledged by developer. (Wed, 18 Jul 2012 09:42:02 GMT) Full text and rfc822 format available.

Message #16 received at 11966-done <at> debbugs.gnu.org (full text, mbox):

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)





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 15 Aug 2012 11:24:05 GMT) Full text and rfc822 format available.

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.