Subject: 24.2.92; Infinite loop in python imenu support

From: Ivan Andrus <[email-masked]>
Date: Mon, 14 Jan 2013 21:59:01 +0100

The following happens on the Emacs 24 branch as well as trunk.

From `emacs -Q`

In a new python buffer, insert 

def bob():
    return 3

and position the cursor before def.  Then run M-x imenu, and you get the
message 

imenu-default-create-index-function: Infinite loop at *scratch*:1:imenu-prev-index-position-function does not move point

-Ivan

In GNU Emacs 24.2.92.1 (i386-apple-darwin12.2.0, NS apple-appkit-1187.34)
 of 2013-01-14 on oroszlan.local
Bzr revision: 111176 [email-masked]
Windowing system distributor `Apple', version 10.3.1187
Configured using:
 `configure '--with-ns''

Important settings:
  value of $LC_CTYPE: UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Python

Minor modes in effect:
  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:
d e f SPC b o b , , <backspace> <backspace> ( ) : <return> 
<tab> s-x C-g M-x p y t h <tab> <return> <tab> <tab> 
SPC SPC SPC <tab> d <backspace> r e t u r n SPC 5 <tab> 
<up> <up> <up> <up> <up> <up> C-a C-k C-k C-k C-k C-k 
C-k C-k <down> <tab> <tab> C-h k <tab> <tab> <up> <tab> 
M-x i m e <tab> <return> M-x r e p o r <tab> <retu
rn>

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
kill-region: The mark is not set now, so there is no region
Quit
python-indent-line: Arithmetic error [4 times]
byte-code: Beginning of buffer
python-indent-line: Arithmetic error [2 times]
Type C-x 1 to delete the help window, C-M-v to scroll help.
python-indent-line: Arithmetic error [2 times]
imenu-default-create-index-function: Infinite loop at *scratch*:1: imenu-prev-index-position-function does not move point

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev
gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util
mail-prsvr mail-utils imenu help-fns help-mode python rx easymenu comint
ring ansi-color time-date tooltip ediff-hook vc-hooks lisp-float-type
mwheel ns-win 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 ns multi-tty emacs)