Subject: 24.3; cperl: Needs an equivalent to `c-file-style'

From: Samuel Bronson <[email-masked]>
Date: Sat, 05 Jul 2014 16:10:02 -0400

The package `cperl' could *really* benefit from a way to do the
equivalent of `cperl-set-style' from a Local Variables block or
.dir-locals.el file.

It might be best to use that name, even, since the name could easily
lead one to believe that `cperl-mode' was somehow based on the `cc-mode'
package.  (At least, I thought it might be until I saw neither hide nor
hair of it in the source file.  It didn't help that `c-file-style'
*seemed* to be passing the usual `normal-mode' test, because
`cperl-mode' was failing to reset the style during reinitialization.)

In GNU Emacs 24.3.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2014-06-06 on babin, modified by Debian
Windowing system distributor `Colin Harrison', version 11.0.60900031
System Description:	Debian GNU/Linux testing (jessie)

Configured using:
 `configure '--build' 'i486-linux-gnu' '--build' 'i486-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf'
 '--without-gsettings' 'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2
 -fstack-protector --param=ssp-buffer-size=4 -Wformat
 -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro'
 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LC_COLLATE: C
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: CPerl

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  xterm-mouse-mode: t
  show-paren-mode: t
  recentf-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-h v <return> C-x o C-x o <up> <up> <C-home> <next> 
<prior> <prior> <next> <prior> <prior> <next> <next> 
<next> <next> <next> <prior> <next> <prior> <down> 
<down> <end> <down> <down> <down> <C-home> <C-end> 
<C-home> M-x m o d e - p <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> p e r l <tab> - 
m o <tab> <return> <next> <prior> <next> <next> <next> 
<next> <next> <prior> M-x <up> <up> <up> <down> <down> 
c <end> <return> <up> <up> <up> <up> M-x p o d <tab> 
<tab> C-g <down> <next> <next> <next> <next> <next> 
<next> <prior> <prior> <prior> <prior> <prior> <up> 
<prior> <up> <up> <up> <up> <up> <up> <up> <up> <up> 
<right> <up> <up> M-x c <backspace> s h <backspace> 
<backspace> n o r m <tab> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> C-g 
M-. C-g C-h c C-g M-x d e s c <tab> c h <tab> <return> 
<down> <down> <down> <up> <end> <down> <down> <down> 
<down> M-x <up> <return> <up> <up> <up> <C-left> <C-left> 
<C-left> <next> <next> <prior> <next> <next> <next> 
<next> <C-home> <next> <next> <next> <next> <next> 
<next> <next> <prior> <prior> <prior> <up> <up> <up> 
<up> <up> <up> <up> <up> <up> M-x C-g <next> <next> 
<next> <next> <prior> <next> <next> <next> <next> <prior> 
<next> <next> <next> <next> <C-home> <next> M-x r e 
p o r t <tab> c <tab> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> c p 
<tab> <backspace> <backspace> <backspace> <backspace> 
c p <tab> e r <tab> <tab> <tab> <tab> <tab> <tab> C-g 
<C-home> <next> <next> <down> <next> <next> <prior> 
<prior> <prior> <next> <next> <next> <next> <next> 
<next> <next> <prior> <C-home> <next> <next> <next> 
<next> <next> <next> <next> <next> <next> <next> <C-home> 
<next> <next> <next> <next> <next> <down> M-x r e <backspace> 
<backspace> e m a c s <tab> b <tab> <home> <home> r 
e p <tab> <end> <return>

Recent messages:
 [2 times]
Mark set
Quit
Mark set
delete-backward-char: Text is read-only
Making completion list... [2 times]
Compilation exited abnormally with code 2
Quit
Mark set [3 times]
Making completion list...

Load-path shadows:
/home/naesten/system/emacs/dist/elpa/w3-4.0.49/ssl hides /usr/share/emacs24/site-lisp/wl/ssl
/usr/share/emacs24/site-lisp/css-mode/css-mode hides /usr/share/emacs/site-lisp/css-mode/css-mode
/usr/share/emacs/site-lisp/autoconf/autotest-mode hides /usr/share/emacs/site-lisp/autotest-mode
/usr/share/emacs/24.3/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs24/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4
/home/naesten/system/emacs/dist/elisp/loaddefs hides /usr/share/emacs/24.3/lisp/loaddefs
/usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.3/lisp/hex-util
/home/naesten/system/emacs/dist/elpa/json-1.2/json hides /usr/share/emacs/24.3/lisp/json
/home/naesten/system/emacs/dist/elisp/t-mouse hides /usr/share/emacs/24.3/lisp/t-mouse
/usr/share/emacs24/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/24.3/lisp/tempo
/usr/share/emacs24/site-lisp/css-mode/css-mode hides /usr/share/emacs/24.3/lisp/textmodes/css-mode
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/24.3/lisp/textmodes/rst
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.3/lisp/textmodes/ispell
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.3/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.3/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.3/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.3/lisp/net/hmac-md5
/usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.3/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.3/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.3/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.3/lisp/net/sasl
/usr/share/emacs24/site-lisp/wl/rfc2368 hides /usr/share/emacs/24.3/lisp/mail/rfc2368
/home/naesten/system/emacs/dist/elisp/package hides /usr/share/emacs/24.3/lisp/emacs-lisp/package
/home/naesten/system/emacs/dist/elpa/tabulated-list-0/tabulated-list hides /usr/share/emacs/24.3/lisp/emacs-lisp/tabulated-list
/usr/share/emacs24/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs24/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs24/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs24/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs24/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs24/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs24/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs24/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs
/usr/share/emacs24/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs24/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs24/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs24/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs24/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs24/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs24/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs24/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs24/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs24/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs24/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs24/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs24/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs24/site-lisp/html-helper-mode/hhm-config hides /usr/share/emacs/site-lisp/html-helper-mode/hhm-config
/usr/share/emacs24/site-lisp/html-helper-mode/visual-basic-mode hides /usr/share/emacs/site-lisp/html-helper-mode/visual-basic-mode
/usr/share/emacs24/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/site-lisp/html-helper-mode/tempo
/usr/share/emacs24/site-lisp/html-helper-mode/html-helper-mode hides /usr/share/emacs/site-lisp/html-helper-mode/html-helper-mode
/usr/share/emacs24/site-lisp/mailcrypt/mc-toplev hides /usr/share/emacs/site-lisp/mailcrypt/mc-toplev
/usr/share/emacs24/site-lisp/mailcrypt/mc-remail hides /usr/share/emacs/site-lisp/mailcrypt/mc-remail
/usr/share/emacs24/site-lisp/mailcrypt/mc-pgp6 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp6
/usr/share/emacs24/site-lisp/mailcrypt/mc-pgp5 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp5
/usr/share/emacs24/site-lisp/mailcrypt/mc-pgp hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp
/usr/share/emacs24/site-lisp/mailcrypt/mc-gpg hides /usr/share/emacs/site-lisp/mailcrypt/mc-gpg
/usr/share/emacs24/site-lisp/mailcrypt/mailcrypt hides /usr/share/emacs/site-lisp/mailcrypt/mailcrypt
/usr/share/emacs24/site-lisp/mailcrypt/expect hides /usr/share/emacs/site-lisp/mailcrypt/expect
/usr/share/emacs24/site-lisp/mailcrypt/mc-setversion hides /usr/share/emacs/site-lisp/mailcrypt/mc-setversion
/usr/share/emacs24/site-lisp/psgml/psgml-edit hides /usr/share/emacs/site-lisp/psgml/psgml-edit
/usr/share/emacs24/site-lisp/psgml/psgml-charent hides /usr/share/emacs/site-lisp/psgml/psgml-charent
/usr/share/emacs24/site-lisp/psgml/psgml hides /usr/share/emacs/site-lisp/psgml/psgml
/usr/share/emacs24/site-lisp/psgml/psgml-other hides /usr/share/emacs/site-lisp/psgml/psgml-other
/usr/share/emacs24/site-lisp/psgml/psgml-api hides /usr/share/emacs/site-lisp/psgml/psgml-api
/usr/share/emacs24/site-lisp/psgml/psgml-sysdep hides /usr/share/emacs/site-lisp/psgml/psgml-sysdep
/usr/share/emacs24/site-lisp/psgml/psgml-init hides /usr/share/emacs/site-lisp/psgml/psgml-init
/usr/share/emacs24/site-lisp/psgml/psgml-parse hides /usr/share/emacs/site-lisp/psgml/psgml-parse
/usr/share/emacs24/site-lisp/psgml/psgml-info hides /usr/share/emacs/site-lisp/psgml/psgml-info
/usr/share/emacs24/site-lisp/psgml/psgml-ids hides /usr/share/emacs/site-lisp/psgml/psgml-ids
/usr/share/emacs24/site-lisp/psgml/psgml-dtd hides /usr/share/emacs/site-lisp/psgml/psgml-dtd
/usr/share/emacs/24.3/lisp/gnus/.dir-locals hides /home/naesten/system/emacs/dist/elisp/magit/.dir-locals
/usr/share/emacs/site-lisp/emacs-goodies-el/markdown-mode hides /home/naesten/system/emacs/dist/elisp/markdown-mode/markdown-mode

Features:
(shadow emacsbug descr-text shr nroff-mode two-column iso-transl dabbrev
tabify nneething perlcritic loadhist vhdl-mode hippie-exp verilog-mode
vera-mode tcl simula sieve sieve-mode sieve-manage sgml-mode ruby-mode
python prolog pascal octave-mod rng-nxml rng-valid rng-loc rng-uri
rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns
nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok
modula2 meta-mode m4-mode ld-script js json info-look idlwave
idlwave-help idlw-help icon hideshow fortran f90 delphi dcl-mode
css-mode cfengine cfengine3 antlr-mode ada-mode which-func align
find-file sql ps-mode pde-util etags tabbar re-builder gud perldoc
imenu-tree pde-project help-dwim template-simple tempo-x pde-vars
windata tree-mode woman man pde-autoloads autoload tar-mode files-x
debug info vc-rcs url-handlers nnweb nnregistry spam-report apropos
bbdb-hooks flow-fill mm-archive gnus-html browse-url xml mm-url sort
smiley gnus-cite gnus-async gnus-bcklg qp gnus-ml mailcrypt disp-table
gnus-topic nndoc nndraft nnmh netrc gnutls nnfolder bbdb-gnus bbdb-snarf
mail-extr nnnil gnus-agent gnus-srvr gnus-score score-mode nnvirtual
nntp gnus-cache gnus-registry registry eieio-base spam spam-stat gnus-uu
yenc gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime smime
dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source gnus-start
gnus-spec gnus-int gnus-range message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode gmm-utils mailheader gnus-win gnus gnus-ems nnheader
gitignore-mode perl-mode filladapt basic basic-mode cperl-mode jka-compr
lisp-mnt mule-util network-stream starttls url-http tls mail-parse
rfc2231 url-gw url-cache url-auth finder-inf wdired ls-lisp find-dired
sh-script smie executable xmtn-dvc dvc-status xmtn-conflicts xmtn-ids
xmtn-match xmtn-automate xmtn-compat parse-time xmtn-run xmtn-basic-io
xmtn-base conf-mode tramp-cmds noutline outline tramp-cache tramp-sh rx
tramp tramp-compat tramp-loaddefs shell pcomplete format-spec view
magit-bisect magit-key-mode magit debian-copyright bbdb-com mailabbrev
misearch multi-isearch dired-aux debian-bug debian-changelog-mode imenu
cc-langs make-mode debian-control-mode dpkg-dev-el dpkg-dev-el-loaddefs
thingatpt help-mode tla smerge-mode dvc-state dvc-config diff sendmail
rfc2047 rfc2045 ietf-drums mail-utils tla-gnus dvc-gnus dvc-cmenu
dvc-about dvc-version vc-git xgit-dvc xgit cus-edit xgit-annotate rect
dvc-annotate xgit-log dvc-revlist dvc-diff uniquify dvc-fileinfo
bzr-core tla-core pp tla-autoconf tla-defs dvc-log dvc-unified dvc-tips
dired-x dired ffap commit-patch-buffer log-edit pcvs-util add-log vc
vc-dispatcher diff-mode easy-mmode ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff xdarcs-core xgit-core
xhg-core xmtn-minimal server derived xcscope arc-mode archive-mode
asm-mode my-asm slime-autoloads dvc-autoloads dvc-core dvc-lisp
dvc-buffers dvc-ui dvc-register dvc-utils dvc-emacs ewoc dvc-defs
dvc-site cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs elisp-depend ps-print-bg-fixup bbdb timezone
wgrep grep compile comint ansi-color ring edebug warnings trace xt-mouse
paren recentf tree-widget wid-edit cus-start cus-load
eldoc-eval-autoloads elisp-cache-autoloads erc-hl-nicks-autoloads
fill-column-indicator-autoloads find-file-in-git-repo-autoloads
gitconfig-mode-autoloads gitignore-mode-autoloads mo-git-blame-autoloads
occur-x-autoloads smartparens-autoloads dash-autoloads
synonyms-autoloads tabulated-list-autoloads w3-autoloads wgrep-autoloads
yagist-autoloads json-autoloads yasnippet-bundle-autoloads
yasnippet-bundle dropdown-list advice help-fns advice-preload yasnippet
easymenu assoc package find-func cl-macs gv w3m-load psgml-init
proof-site proof-autoloads pg-vars mmm-auto mmm-vars mmm-compat cl
cl-lib mailcrypt-init haskell-mode-autoloads edmacro kmacro tempo url
url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util url-parse auth-source eieio byte-opt bytecomp
byte-compile cconv gnus-util time-date mm-util mail-prsvr password-cache
url-vars mailcap xml-parse doxymacs debian-el debian-el-loaddefs
bbdb-autoloads preview-latex tex-site auto-loads tooltip ediff-hook
vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar dnd fontset image
regexp-opt fringe tabulated-list newcomment 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 macroexp 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 x-toolkit x multi-tty emacs)

-- 
Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!