Subject: bug#20557: 24.4; electric-indent global mode is a regression

From: Jerome L Quinn <[email-masked]>
Date: Tue, 12 May 2015 11:03:21 -0400

I see with emacs 24.4 that electric-indent mode is enabled globally by
default.  However, for some modes it seems like a major regression.  In
particular, it does strange things in fundamental and conf modes.

If I create a temporary buffer, it comes up in fundamental mode.  If I
then type:

a<RET>
a<RET>
a<RET>
a

I instead get

a
        a
                a
                        a

which isn't anything like I'd expect, and I can't see how it's useful
for anything.

Thanks
Jerry Quinn

In GNU Emacs 24.4.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.20.1)
 of 2014-12-10 on ikm123l.watson.ibm.com
Windowing system distributor `CentOS', version 11.0.11300000
System Description:	CentOS release 6.6 (Final)

Configured using:
 `configure --prefix=/ikm/77/ws'

Important settings:
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=none
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  iswitchb-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  line-number-mode: t
  transient-mark-mode: t

Recent input:
n l s / p / 1 2 1 1 / <tab> <tab> s / <tab> <tab> N 
L B <tab> 2 <tab> <return> C-x 4 f N L B <tab> . C 
<return> C-x C-f C-g C-g C-g C-x C-f N L B <tab> . 
H <M-backspace> <M-backspace> <M-backspace> h <tab> 
<tab> N L B <tab> . <tab> <return> <next> <prior> C-s 
v i r t C-s C-a C-x C-x C-g C-a <prior> C-x 4 f N L 
B <tab> 2 <tab> <return> <M-next> <M-prior> <M-next> 
<M-prior> <M-next> <M-next> <M-prior> <next> <prior> 
<down-mouse-1> <mouse-1> <double-down-mouse-1> <double-mouse-1> 
<triple-down-mouse-1> <mouse-movement> <mouse-movement> 
<triple-drag-mouse-1> <down-mouse-1> <mouse-1> <down-mouse-5> 
<mouse-5> <double-down-mouse-5> <double-mouse-5> <triple-down-mouse-5> 
<triple-mouse-5> <down-mouse-1> <mouse-1> <double-down-mouse-1> 
<double-mouse-1> <triple-down-mouse-1> <mouse-movement> 
<mouse-movement> <triple-drag-mouse-1> <down-mouse-1> 
<mouse-1> <down-mouse-1> <mouse-movement> <mouse-movement> 
<drag-mouse-1> <down-mouse-1> <mouse-movement> <mouse-movement> 
<drag-mouse-1> <down-mouse-1> <mouse-1> <double-down-mouse-1> 
<double-mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> 
<mouse-movement> <mouse-1> C-x C-g C-g C-g C-x C-f 
C-g C-g C-x b t b l . c <return> 1 C-x C-s C-x 4 f 
o u <tab> <return> <down> C-x 4 f f i <tab> X <tab> 
<return> <C-right> <C-right> <C-right> <C-right> <C-right> 
<C-right> <down-mouse-1> <mouse-movement> <mouse-movement> 
<drag-mouse-1> <down-mouse-1> <mouse-1> C-a <down-mouse-1> 
<mouse-1> <down-mouse-1> <mouse-1> <down-mouse-1> <mouse-1> 
<down-mouse-1> <mouse-1> C-x o C-s l o w C-s C-a C-x 
o C-x o C-x C-f c a p <tab> C-g C-g C-x C-f t o k c 
<tab> <return> C-s i t e m C-s C-s C-s C-s C-s C-s 
C-s C-a <down-mouse-1> <mouse-1> C-a M-< <down> <up> 
<down> <down> <down> <C-right> <C-right> <C-right> 
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right> 
<C-right> <C-left> M-g 6 7 <return> <down> C-l <C-right> 
<C-right> <C-right> <C-right> <C-right> <C-right> <C-right> 
<C-right> <C-right> <C-left> <down> <C-left> <C-left> 
<C-right> <C-right> <C-right> <C-left> <C-left> <C-right> 
M-x e m a <tab> b u <tab> <M-backspace> <tab> <M-backspace> 
r e p o <tab> r <tab> e <tab> <return>

Recent messages:
C-x C-g is undefined
Quit [4 times]
Saving file /nls/p/885/ws/data/libACE_models/tokenizer/ss10.dev/data/tbl.conf...
Wrote /nls/p/885/ws/data/libACE_models/tokenizer/ss10.dev/data/tbl.conf
Mark saved where search started
Making completion list...
Quit [2 times]
Mark saved where search started
Mark set [2 times]
Making completion list... [2 times]

Load-path shadows:
None found.

Features:
(shadow sort emacsbug calc-bin two-column macros vc-annotate kmacro
eieio-opt speedbar sb-image ezimage dframe find-func calc-math
calc-arith calc-aent calc-yank js advice imenu calc-misc network-stream
starttls tls mail-extr apropos cus-start cus-load ediff-merg ediff-wind
ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff ruler-mode
mule-util hl-line hexl eldoc iso-transl calc-alg calc-ext calc-menu calc
calc-loaddefs calc-macs ffap url-parse auth-source eieio byte-opt
bytecomp byte-compile cconv eieio-core gnus-util password-cache url-vars
log-view etags rect novice dabbrev log-edit message sendmail format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mailabbrev
mail-utils gmm-utils mailheader pcvs-util add-log vc-cvs vc-rcs
compare-w shell pcomplete grep compile help-mode misearch multi-isearch
warnings info scheme tar-mode autoconf autoconf-mode vc-git vc-hg
dcl-mode tempo sql view thingatpt noutline outline dired-aux nroff-mode
nxml-uchnm rng-xsd xsd-regexp rng-cmpct 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
smerge-mode diff-mode easy-mmode sgml-mode modula2 python json comint
ring ansi-color sh-script smie executable dired perl-mode conf-mode
vc-dir ewoc vc cc-langs cc-mode cc-fonts easymenu cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs vc-dispatcher
vc-svn make-mode desktop frameset cl-loaddefs cl-lib saveplace jka-compr
iswitchb time-date tooltip electric uniquify 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 prog-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 nadvice
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
gfilenotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

Memory information:
((conses 16 2161639 303459)
 (symbols 48 70155 0)
 (miscs 40 5204 15468)
 (strings 32 112106 26216)
 (string-bytes 1 3784707)
 (vectors 16 54128)
 (vector-slots 8 2481505 140496)
 (floats 8 218 714)
 (intervals 56 368628 10006)
 (buffers 960 1027)
 (heap 1024 437559 4878))