unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
@ 2012-07-17 19:04 JC Petkovich
  2012-07-18  7:28 ` Stefan Monnier
  2012-07-18  9:35 ` Stefan Monnier
  0 siblings, 2 replies; 4+ messages in thread
From: JC Petkovich @ 2012-07-17 19:04 UTC (permalink / raw)
  To: 11966

[-- Attachment #1: Type: text/plain, Size: 17037 bytes --]

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)

[-- Attachment #2: Type: text/html, Size: 18842 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
  2012-07-17 19:04 bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize JC Petkovich
@ 2012-07-18  7:28 ` Stefan Monnier
  2012-07-18  7:41   ` JC Petkovich
  2012-07-18  9:35 ` Stefan Monnier
  1 sibling, 1 reply; 4+ messages in thread
From: Stefan Monnier @ 2012-07-18  7:28 UTC (permalink / raw)
  To: JC Petkovich; +Cc: 11966

> 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"))






^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
  2012-07-18  7:28 ` Stefan Monnier
@ 2012-07-18  7:41   ` JC Petkovich
  0 siblings, 0 replies; 4+ messages in thread
From: JC Petkovich @ 2012-07-18  7:41 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: 11966

[-- Attachment #1: Type: text/plain, Size: 1812 bytes --]

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@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"))
>
>

[-- Attachment #2: Type: text/html, Size: 2281 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize
  2012-07-17 19:04 bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize JC Petkovich
  2012-07-18  7:28 ` Stefan Monnier
@ 2012-07-18  9:35 ` Stefan Monnier
  1 sibling, 0 replies; 4+ messages in thread
From: Stefan Monnier @ 2012-07-18  9:35 UTC (permalink / raw)
  To: JC Petkovich; +Cc: 11966-done, Ilya Zakharevich

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@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@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)






^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-07-18  9:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-07-17 19:04 bug#11966: 24.1; cperl-mode with evil-mode causes hang on syntax-propertize JC Petkovich
2012-07-18  7:28 ` Stefan Monnier
2012-07-18  7:41   ` JC Petkovich
2012-07-18  9:35 ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).