* 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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.