unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation
@ 2013-11-05 15:21 Friedrich Delgado
  2013-11-06  7:16 ` Andreas Röhler
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Friedrich Delgado @ 2013-11-05 15:21 UTC (permalink / raw)
  To: 15812

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

emacs -Q
M-x python-mode
M-x erase-buffer<RET>y<RET>y
def foo():
    "return stuff"
<TAB>

Expected behaviour: The cursor is placed under the first quotation
mark (4 spaces indent)

Actual behaviour: The cursor is placed at the beginning of the line.

In GNU Emacs 24.3.50.1 (x86_64-suse-linux-gnu, GTK+ Version 3.4.4)
 of 2013-07-09 on rosita
Windowing system distributor `The X.Org Foundation', version
11.0.11203000
System Description:     openSUSE 12.2 (x86_64)

Configured using:
 `configure --prefix=/home/friedel/local/stow/emacs
 --without-gif'

Important settings:
  value of $LC_ALL: de_DE.utf8
  value of $LANG: de_DE.utf8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Python

Minor modes in effect:
  xterm-mouse-mode: t
  diff-auto-refine-mode: t
  elpy-mode: t
  yas-minor-mode: t
  highlight-indentation-mode: t
  flymake-mode: t
  auto-complete-mode: t
  global-git-gutter-mode: t
  shell-dirtrack-mode: t
  desktop-save-mode: t
  winpoint-mode: t
  display-time-mode: t
  eldoc-mode: t
  strokes-mode: t
  show-paren-mode: t
  minibuffer-electric-default-mode: t
  ido-everywhere: t
  auto-image-file-mode: t
  override-global-mode: t
  image-diredx-async-mode: t
  tooltip-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
<up> <up> <up> <down> C-SPC <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> C-w <down> <down> <tab> <tab> 
<tab> C-_ C-_ C-_ C-x C-s C-_ C-_ C-_ C-_ C-_ C-_ C-_ 
C-x C-s C-c <C-left> <up> <up> <up> <up> <up> <up> 
<up> <up> <up> <up> <up> C-a C-SPC <C-end> C-w C-c 
<C-right> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> C-c <C-left> d e f SPC s o u r 
c e s ( s e l f ) : <return> <tab> r e t <backspace> 
<backspace> <backspace> " r e t u r n SPC a SPC c o 
l l e c t i o n SPC o f SPC s o u r c e s SPC w e SPC 
a g g r e g a t e SPC o v e r " <return> <tab> <tab> 
<up> C-e <C-left> <C-left> <C-left> <C-left> <down> 
<tab> <C-home> C-SPC <C-end> C-w C-x k <return> y C-x 
C-f <M-backspace> <M-backspace> <M-backspace> <M-backspace> 
<M-backspace> b l a . p y <return> <C-return> <M-backspace> 
<M-backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <return> C-j <return> d e f SPC s o u r 
c e s ( s e l f ) : <return> <tab> " b l a " <return> 
<tab> <up> <right> C-k r e t u r n SPC a SPC c o l 
l e c t i o n " <return> <tab> C-k C-k <up> C-e <C-left> 
<C-left> <left> M-d M-d <down> <tab> r e t u r n <tab> 
SPC <tab> f o <tab> <tab> C-a <tab> <tab> C-k <up> 
<up> <C-right> <right> M-d f o o <down> <up> <up> <up> 
<up> <up> <up> <down> <down> <tab> <right> M-d <down> 
<tab> <down> <tab> M-x r e b <backspace> p o <tab> 
r <tab> <return>

Recent messages:
Mark set [3 times]
Buffer foo.py modified; kill anyway? (y or n)  y
Searching for `bla.py'....
Searching for `bla.python-guess-indent'....
(New file)
Here is not Git work tree
Can't guess python-indent-offset, using defaults: 4
Here is not Git work tree
Auto-saving...done
Making completion list...

Load-path shadows:
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/loaddefs hides
~/lib/emacs/loaddefs
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/calendar/timeclock
hides ~/lib/emacs/timeclock
/home/friedel/.emacs.d/elpa/mmm-mako-20121019.2351/mmm-mako hides
~/lib/emacs/mmm-mako
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/align hides
~/lib/emacs/align
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/timezone hides
/home/friedel/lib/emacs/apel-10.7/timezone
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/env hides
/home/friedel/lib/emacs/apel-10.7/env
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/json hides
/home/friedel/lib/emacs/g-client/json
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/gnus/.dir-locals
hides /home/friedel/lib/emacs/magit/.dir-locals
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/gnus/.dir-locals
hides /home/friedel/lib/emacs/org-mode/.dir-locals
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/textmodes/remember
hides /home/friedel/lib/emacs/remember/remember
/home/friedel/lib/emacs/doxymacs-1.8.0/lisp/xml-parse hides
/home/friedel/lib/emacs/doxymacs-1.8.0/no-autoconf/xml-parse
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/mail/rfc2368
hides /home/friedel/lib/emacs/emacs-w3m/attic/rfc2368
/home/friedel/.emacs.d/elpa/popup-20130324.1305/popup hides
/home/friedel/lib/emacs/ensime_2.8.1-0.4.1/elisp/popup
/home/friedel/.emacs.d/elpa/fuzzy-20120323.1044/fuzzy hides
/home/friedel/lib/emacs/ensime_2.8.1-0.4.1/elisp/fuzzy
/home/friedel/.emacs.d/elpa/auto-complete-20130503.2013/auto-complete
hides /home/friedel/lib/emacs/ensime_2.8.1-0.4.1/elisp/auto-complete
~/lib/emacs/php-mode hides
/home/friedel/lib/emacs/nxhtml/related/php-mode
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/emacs-lisp/ert
hides /home/friedel/lib/emacs/nxhtml/tests/ert
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-odt
hides /home/friedel/lib/emacs/nxhtml/util/org-odt
~/lib/emacs/fold-dwim hides
/home/friedel/lib/emacs/nxhtml/util/fold-dwim
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-timer
hides /home/friedel/lib/emacs/org-mode/lisp/org-timer
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-rmail
hides /home/friedel/lib/emacs/org-mode/lisp/org-rmail
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-loaddefs
hides /home/friedel/lib/emacs/org-mode/lisp/org-loaddefs
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-version
hides /home/friedel/lib/emacs/org-mode/lisp/org-version
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-mac-message
hides /home/friedel/lib/emacs/org-mode/lisp/org-mac-message
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-mhe
hides /home/friedel/lib/emacs/org-mode/lisp/org-mhe
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-mouse
hides /home/friedel/lib/emacs/org-mode/lisp/org-mouse
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-irc
hides /home/friedel/lib/emacs/org-mode/lisp/org-irc
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org hides
/home/friedel/lib/emacs/org-mode/lisp/org
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-plot
hides /home/friedel/lib/emacs/org-mode/lisp/org-plot
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-info
hides /home/friedel/lib/emacs/org-mode/lisp/org-info
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-pcomplete
hides /home/friedel/lib/emacs/org-mode/lisp/org-pcomplete
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-table
hides /home/friedel/lib/emacs/org-mode/lisp/org-table
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-src
hides /home/friedel/lib/emacs/org-mode/lisp/org-src
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-macs
hides /home/friedel/lib/emacs/org-mode/lisp/org-macs
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-habit
hides /home/friedel/lib/emacs/org-mode/lisp/org-habit
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-protocol
hides /home/friedel/lib/emacs/org-mode/lisp/org-protocol
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-install
hides /home/friedel/lib/emacs/org-mode/lisp/org-install
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-feed
hides /home/friedel/lib/emacs/org-mode/lisp/org-feed
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-inlinetask
hides /home/friedel/lib/emacs/org-mode/lisp/org-inlinetask
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-indent
hides /home/friedel/lib/emacs/org-mode/lisp/org-indent
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-id
hides /home/friedel/lib/emacs/org-mode/lisp/org-id
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-eshell
hides /home/friedel/lib/emacs/org-mode/lisp/org-eshell
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-gnus
hides /home/friedel/lib/emacs/org-mode/lisp/org-gnus
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-footnote
hides /home/friedel/lib/emacs/org-mode/lisp/org-footnote
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-mobile
hides /home/friedel/lib/emacs/org-mode/lisp/org-mobile
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-entities
hides /home/friedel/lib/emacs/org-mode/lisp/org-entities
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-list
hides /home/friedel/lib/emacs/org-mode/lisp/org-list
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-ctags
hides /home/friedel/lib/emacs/org-mode/lisp/org-ctags
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-crypt
hides /home/friedel/lib/emacs/org-mode/lisp/org-crypt
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-docview
hides /home/friedel/lib/emacs/org-mode/lisp/org-docview
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-datetree
hides /home/friedel/lib/emacs/org-mode/lisp/org-datetree
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-faces
hides /home/friedel/lib/emacs/org-mode/lisp/org-faces
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-element
hides /home/friedel/lib/emacs/org-mode/lisp/org-element
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-compat
hides /home/friedel/lib/emacs/org-mode/lisp/org-compat
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-colview
hides /home/friedel/lib/emacs/org-mode/lisp/org-colview
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-clock
hides /home/friedel/lib/emacs/org-mode/lisp/org-clock
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-capture
hides /home/friedel/lib/emacs/org-mode/lisp/org-capture
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-bbdb
hides /home/friedel/lib/emacs/org-mode/lisp/org-bbdb
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-attach
hides /home/friedel/lib/emacs/org-mode/lisp/org-attach
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-bibtex
hides /home/friedel/lib/emacs/org-mode/lisp/org-bibtex
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-archive
hides /home/friedel/lib/emacs/org-mode/lisp/org-archive
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-agenda
hides /home/friedel/lib/emacs/org-mode/lisp/org-agenda
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob hides
/home/friedel/lib/emacs/org-mode/lisp/ob
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-tangle
hides /home/friedel/lib/emacs/org-mode/lisp/ob-tangle
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-table
hides /home/friedel/lib/emacs/org-mode/lisp/ob-table
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-sqlite
hides /home/friedel/lib/emacs/org-mode/lisp/ob-sqlite
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-sql
hides /home/friedel/lib/emacs/org-mode/lisp/ob-sql
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-shen
hides /home/friedel/lib/emacs/org-mode/lisp/ob-shen
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-sh
hides /home/friedel/lib/emacs/org-mode/lisp/ob-sh
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-screen
hides /home/friedel/lib/emacs/org-mode/lisp/ob-screen
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-scheme
hides /home/friedel/lib/emacs/org-mode/lisp/ob-scheme
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-scala
hides /home/friedel/lib/emacs/org-mode/lisp/ob-scala
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-sass
hides /home/friedel/lib/emacs/org-mode/lisp/ob-sass
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-ruby
hides /home/friedel/lib/emacs/org-mode/lisp/ob-ruby
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-ref
hides /home/friedel/lib/emacs/org-mode/lisp/ob-ref
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-python
hides /home/friedel/lib/emacs/org-mode/lisp/ob-python
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-plantuml
hides /home/friedel/lib/emacs/org-mode/lisp/ob-plantuml
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-picolisp
hides /home/friedel/lib/emacs/org-mode/lisp/ob-picolisp
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-perl
hides /home/friedel/lib/emacs/org-mode/lisp/ob-perl
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-org
hides /home/friedel/lib/emacs/org-mode/lisp/ob-org
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-octave
hides /home/friedel/lib/emacs/org-mode/lisp/ob-octave
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-ocaml
hides /home/friedel/lib/emacs/org-mode/lisp/ob-ocaml
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-mscgen
hides /home/friedel/lib/emacs/org-mode/lisp/ob-mscgen
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-maxima
hides /home/friedel/lib/emacs/org-mode/lisp/ob-maxima
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-matlab
hides /home/friedel/lib/emacs/org-mode/lisp/ob-matlab
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-lob
hides /home/friedel/lib/emacs/org-mode/lisp/ob-lob
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-lisp
hides /home/friedel/lib/emacs/org-mode/lisp/ob-lisp
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-lilypond
hides /home/friedel/lib/emacs/org-mode/lisp/ob-lilypond
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-ledger
hides /home/friedel/lib/emacs/org-mode/lisp/ob-ledger
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-latex
hides /home/friedel/lib/emacs/org-mode/lisp/ob-latex
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-keys
hides /home/friedel/lib/emacs/org-mode/lisp/ob-keys
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-js
hides /home/friedel/lib/emacs/org-mode/lisp/ob-js
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-java
hides /home/friedel/lib/emacs/org-mode/lisp/ob-java
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-io
hides /home/friedel/lib/emacs/org-mode/lisp/ob-io
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-haskell
hides /home/friedel/lib/emacs/org-mode/lisp/ob-haskell
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-gnuplot
hides /home/friedel/lib/emacs/org-mode/lisp/ob-gnuplot
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-fortran
hides /home/friedel/lib/emacs/org-mode/lisp/ob-fortran
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-exp
hides /home/friedel/lib/emacs/org-mode/lisp/ob-exp
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-eval
hides /home/friedel/lib/emacs/org-mode/lisp/ob-eval
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-emacs-lisp
hides /home/friedel/lib/emacs/org-mode/lisp/ob-emacs-lisp
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-dot
hides /home/friedel/lib/emacs/org-mode/lisp/ob-dot
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-ditaa
hides /home/friedel/lib/emacs/org-mode/lisp/ob-ditaa
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-css
hides /home/friedel/lib/emacs/org-mode/lisp/ob-css
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-comint
hides /home/friedel/lib/emacs/org-mode/lisp/ob-comint
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-clojure
hides /home/friedel/lib/emacs/org-mode/lisp/ob-clojure
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-calc
hides /home/friedel/lib/emacs/org-mode/lisp/ob-calc
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-awk
hides /home/friedel/lib/emacs/org-mode/lisp/ob-awk
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-asymptote
hides /home/friedel/lib/emacs/org-mode/lisp/ob-asymptote
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-R hides
/home/friedel/lib/emacs/org-mode/lisp/ob-R
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/ob-C hides
/home/friedel/lib/emacs/org-mode/lisp/ob-C
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/calendar/timeclock
hides /home/friedel/lib/emacs/planner/contrib/timeclock
/home/friedel/lib/emacs/muse/examples/johnw/muse-init hides
/home/friedel/lib/emacs/muse/examples/mwolson/muse-init
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-w3m
hides /home/friedel/lib/emacs/org-mode/contrib/lisp/org-w3m
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-wl
hides /home/friedel/lib/emacs/org-mode/contrib/lisp/org-wl
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-vm
hides /home/friedel/lib/emacs/org-mode/contrib/lisp/org-vm
/home/friedel/local/stow/emacs/share/emacs/24.3.50/lisp/org/org-mew
hides /home/friedel/lib/emacs/org-mode/contrib/lisp/org-mew
/home/friedel/lib/emacs/nxhtml/util/org-panel hides
/home/friedel/lib/emacs/org-mode/contrib/lisp/org-panel

Features:
(shadow emacsbug message rfc822 mml mml-sec mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader sendmail mail-utils debug
slime-sbcl-exts slime-tramp slime-asdf slime-fancy slime-fontifying-fu
slime-package-fu slime-references slime-scratch slime-presentations
slime-fuzzy slime-fancy-inspector slime-c-p-c slime-editing-commands
slime-autodoc slime-parse slime-repl elp slime hyperspec org-capture
org-mks tramp-cache tramp-sh org-archive org-colview browse-url post
xt-mouse xterm hippie-exp mule-util cal-iso url-http tls url url-proxy
url-privacy url-expand url-history mailcap url-auth mail-parse rfc2231
rfc2047 rfc2045 ietf-drums url-cookie url-domsuf url-gw url-methods
windmove smerge-mode magit-svn url-handlers misearch multi-isearch
time-stamp tabify org-element ffap highlight-parentheses quack
cmuscheme scheme sh-script smie executable cperl-mode nxml-uchnm
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 vc-hg conf-mode disp-table
org-checklist org-magit magit-bisect magit-key-mode magit iswitchb
view diff-mode log-edit pcvs-util add-log org-location-google-maps
google-maps google-maps-static url-util url-parse url-vars
google-maps-geocode google-maps-base org-notmuch org-clock org-timer
org-toc org-man org-mairix org-elisp-symbol org-bookmark bookmark pp
org-annotate-file org-w3m org-wl org-vm org-rmail org-protocol org-mhe
org-mew org-irc org-habit org-jsinfo org-infojs org-html org-exp
ob-exp org-exp-blocks org-agenda org-info org-id org-bibtex bibtex
org-bbdb elpy yasnippet virtualenv thingatpt python rx nose json
idomenu imenu highlight-indentation flymake compile
find-file-in-project etags elpy-refactor auto-complete-config
auto-complete popup git-gutter tramp tramp-compat auth-source eieio
eieio-core gnus-util mm-util mail-prsvr password-cache tramp-loaddefs
trampver shell coffee-mode browse-vcs-url vc vc-dispatcher server
my-bindings desktop session cedet-config epa-file epa epg epg-config
ediff monky bindat org-config notify cal-china lunar solar cal-dst
cal-islam cal-hebrew holidays hol-loaddefs vc-git generic dtrt-indent
appt diary-lib diary-loaddefs org ob-tangle ob-ref ob-lob ob-table
org-footnote org-src ob-comint ob-keys org-pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp ob
org-compat org-macs ob-eval org-loaddefs winpoint c-eldoc cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs lisp-stuff paredit edmacro kmacro help-mode dired+
dired-x ediff-merg ediff-wind ediff-diff ediff-mult ediff-help
ediff-init ediff-util dired-aux mutt-alias outline-or-allout-config
uniquify myfuncs tls-config auto-mode-config generic-x autoload-config
cal-menu calendar cal-loaddefs site-customisation customisations-cert
time timeclock saveplace pcomplete comint ansi-color ring esh-var
esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg eldoc esh-groups
eshell esh-module esh-mode esh-util jka-compr type-break strokes paren
minibuf-eldef ido delsel image-file initsplit byte-opt cus-edit
cus-start cus-load wid-edit find-func use-package cl bytecomp
byte-compile cconv bind-key easy-mmode site-conditionals warnings
dired+-autoloads dired-single-autoloads elpy-autoloads
find-file-in-project-autoloads fuzzy-autoloads gnuplot-autoloads
gnuplot-mode-autoloads highlight-indentation-autoloads
idomenu-autoloads iedit-autoloads image-dired+-autoloads image-dired+
nadvice image-dired format-spec dired advice help-fns
ipython-autoloads jedi-autoloads auto-complete-autoloads epc-autoloads
ctable-autoloads concurrent-autoloads deferred-autoloads
mmm-mako-autoloads mmm-mode-autoloads info easymenu nose-autoloads
popup-autoloads virtualenv-autoloads yaml-mode-autoloads
yasnippet-autoloads package derived cl-macs gv cl-loaddefs cl-lib
time-date 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 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 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)

Kind regards
     Friedel
-- 
        Friedrich Delgado <friedel@nomaden.org>
                             TauPan on Ircnet and Freenode ;)

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation
  2013-11-05 15:21 bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation Friedrich Delgado
@ 2013-11-06  7:16 ` Andreas Röhler
  2013-11-06 11:51 ` Nathan Trapuzzano
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 7+ messages in thread
From: Andreas Röhler @ 2013-11-06  7:16 UTC (permalink / raw)
  To: 15812

Am 05.11.2013 16:21, schrieb Friedrich Delgado:
> def foo():
>      "return stuff"

May confirme this

GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.10) of 2013-07-06





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

* bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation
  2013-11-05 15:21 bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation Friedrich Delgado
  2013-11-06  7:16 ` Andreas Röhler
@ 2013-11-06 11:51 ` Nathan Trapuzzano
  2013-11-06 14:23 ` Nathan Trapuzzano
  2013-12-12  3:51 ` bug#15812: Fabián Ezequiel Gallina
  3 siblings, 0 replies; 7+ messages in thread
From: Nathan Trapuzzano @ 2013-11-06 11:51 UTC (permalink / raw)
  To: Friedrich Delgado; +Cc: 15812

Friedrich Delgado <friedel@nomaden.org> writes:

> emacs -Q
> M-x python-mode
> M-x erase-buffer<RET>y<RET>y
> def foo():
>     "return stuff"
> <TAB>
>
> Expected behaviour: The cursor is placed under the first quotation
> mark (4 spaces indent)
>
> Actual behaviour: The cursor is placed at the beginning of the line.

Ditto for "break", "continue", "pass", "raise", and "return".  These are
the words that make up `python-indent-block-enders'.





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

* bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation
  2013-11-05 15:21 bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation Friedrich Delgado
  2013-11-06  7:16 ` Andreas Röhler
  2013-11-06 11:51 ` Nathan Trapuzzano
@ 2013-11-06 14:23 ` Nathan Trapuzzano
  2013-11-07  8:36   ` Friedrich Delgado
  2013-12-12  3:51 ` bug#15812: Fabián Ezequiel Gallina
  3 siblings, 1 reply; 7+ messages in thread
From: Nathan Trapuzzano @ 2013-11-06 14:23 UTC (permalink / raw)
  To: Friedrich Delgado; +Cc: 15812

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

Friedrich Delgado <friedel@nomaden.org> writes:

> emacs -Q
> M-x python-mode
> M-x erase-buffer<RET>y<RET>y
> def foo():
>     "return stuff"
> <TAB>
>
> Expected behaviour: The cursor is placed under the first quotation
> mark (4 spaces indent)
>
> Actual behaviour: The cursor is placed at the beginning of the line.

Patch attached with regression test.  `python-nav-begining-of-statement'
puts point on the first non-whitespace character of the statement, so
it's safe to use `looking-at' here.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: python-mode.el.patch --]
[-- Type: text/x-diff, Size: 3791 bytes --]

From 49df44bf51b0a3b2a8c90180764aa37d5f3e95de Mon Sep 17 00:00:00 2001
From: Nathan Trapuzzano <nbtrap@nbtrap.com>
Date: Wed, 6 Nov 2013 08:11:43 -0500
Subject: [PATCH] Fix python-mode indentation bug #15812, and add regression
 test.

* progmodes/python.el (python-indent-calculate-indentation): When
determining indentation, don't treat "return", "pass", etc., as
operators when they are just string constituents.  (Bug#15812)

* automated/python-test.el (python-indent-block-enders)
(python-indent-block-enders-1, python-indent-block-enders-2):
Rename one test, add another.
---
 lisp/ChangeLog                 |  6 ++++++
 lisp/progmodes/python.el       |  2 +-
 test/ChangeLog                 |  6 ++++++
 test/automated/python-tests.el | 23 ++++++++++++++++++++++-
 4 files changed, 35 insertions(+), 2 deletions(-)

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index d69ea7c..847a335 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-06  Nathan Trapuzzano  <nbtrap@nbtrap.com>
+
+	* progmodes/python.el (python-indent-calculate-indentation): When
+	determining indentation, don't treat "return", "pass", etc., as
+	operators when they are just string constituents.  (Bug#15812)
+
 2013-11-06  Eli Zaretskii  <eliz@gnu.org>
 
 	* menu-bar.el (popup-menu, menu-bar-open): When displaying TTY
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 7a90f0b..4d4c504 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -775,7 +775,7 @@ START is the buffer position where the sexp starts."
                     (save-excursion
                       (python-util-forward-comment -1)
                       (python-nav-beginning-of-statement)
-                      (member (current-word) python-indent-block-enders)))
+                      (looking-at (regexp-opt python-indent-block-enders))))
                 python-indent-offset
               0)))
           ;; When inside of a string, do nothing. just use the current
diff --git a/test/ChangeLog b/test/ChangeLog
index e032af4..a0ad888 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2013-11-06  Nathan Trapuzzano  <nbtrap@nbtrap.com>
+
+	* automated/python-test.el (python-indent-block-enders)
+	(python-indent-block-enders-1, python-indent-block-enders-2):
+	Rename one test, add another.
+
 2013-11-06  Michael Albinus  <michael.albinus@gmx.de>
 
 	* automated/tramp-tests.el (tramp-test07-file-exists-p):
diff --git a/test/automated/python-tests.el b/test/automated/python-tests.el
index ef1c015..798e21f 100644
--- a/test/automated/python-tests.el
+++ b/test/automated/python-tests.el
@@ -447,7 +447,7 @@ objects = Thing.objects.all() \\\\
    (should (eq (car (python-indent-context)) 'after-line))
    (should (= (python-indent-calculate-indentation) 0))))
 
-(ert-deftest python-indent-block-enders ()
+(ert-deftest python-indent-block-enders-1 ()
   "Test `python-indent-block-enders' value honoring."
   (python-tests-with-temp-buffer
    "
@@ -469,6 +469,27 @@ Class foo(object):
    (forward-line 1)
    (should (= (python-indent-calculate-indentation) 8))))
 
+(ert-deftest python-indent-block-enders-2 ()
+  "Test `python-indent-block-enders' value honoring."
+  (python-tests-with-temp-buffer
+   "
+Class foo(object):
+    '''raise lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
+
+    eiusmod tempor incididunt ut labore et dolore magna aliqua.
+    '''
+    def bar(self):
+        \"return (1, 2, 3).\"
+        if self.baz:
+            return (1,
+                    2,
+                    3)
+"
+   (python-tests-look-at "def")
+   (should (= (python-indent-calculate-indentation) 4))
+   (python-tests-look-at "if")
+   (should (= (python-indent-calculate-indentation) 8))))
+
 \f
 ;;; Navigation
 
-- 
1.8.4.2


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

* bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation
  2013-11-06 14:23 ` Nathan Trapuzzano
@ 2013-11-07  8:36   ` Friedrich Delgado
  0 siblings, 0 replies; 7+ messages in thread
From: Friedrich Delgado @ 2013-11-07  8:36 UTC (permalink / raw)
  To: Nathan Trapuzzano; +Cc: 15812

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

Hi!

In case user feedback is welcome:
Your patch fixes the  problem for me.

Thanks
        Friedel
-- 
        Friedrich Delgado <friedel@nomaden.org>
                             TauPan on Ircnet and Freenode ;)

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

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

* bug#15812:
  2013-11-05 15:21 bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation Friedrich Delgado
                   ` (2 preceding siblings ...)
  2013-11-06 14:23 ` Nathan Trapuzzano
@ 2013-12-12  3:51 ` Fabián Ezequiel Gallina
  2013-12-12  4:21   ` bug#15812: Glenn Morris
  3 siblings, 1 reply; 7+ messages in thread
From: Fabián Ezequiel Gallina @ 2013-12-12  3:51 UTC (permalink / raw)
  To: 15812-done

Fixed in revno 115477.

Thanks Nathan Trapuzzano for the patch.


Regards,
Fabián.





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

* bug#15812:
  2013-12-12  3:51 ` bug#15812: Fabián Ezequiel Gallina
@ 2013-12-12  4:21   ` Glenn Morris
  0 siblings, 0 replies; 7+ messages in thread
From: Glenn Morris @ 2013-12-12  4:21 UTC (permalink / raw)
  To: nbtrap; +Cc: 15812

Fabián Ezequiel Gallina wrote:

> Thanks Nathan Trapuzzano for the patch.

We have several changes from you in Emacs now.
Would you be willing to complete a copyright assignment?
I don't think we can accept any more changes without one.





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

end of thread, other threads:[~2013-12-12  4:21 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-05 15:21 bug#15812: 24.3.50; docstring starting with "return" confuses python-mode indentation Friedrich Delgado
2013-11-06  7:16 ` Andreas Röhler
2013-11-06 11:51 ` Nathan Trapuzzano
2013-11-06 14:23 ` Nathan Trapuzzano
2013-11-07  8:36   ` Friedrich Delgado
2013-12-12  3:51 ` bug#15812: Fabián Ezequiel Gallina
2013-12-12  4:21   ` bug#15812: Glenn Morris

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