From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Glenn Morris Newsgroups: gmane.emacs.bugs Subject: bug#13438: /srv/bzr/emacs/emacs-24 r111196: * imenu.el (imenu-default-create-index-function): Remove useless Date: Sat, 26 Jan 2013 21:12:50 -0500 Message-ID: References: <51028EED.30406@anue.biz> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: ger.gmane.org 1359252829 22009 80.91.229.3 (27 Jan 2013 02:13:49 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 27 Jan 2013 02:13:49 +0000 (UTC) Cc: 13438@debbugs.gnu.org To: =?UTF-8?Q?Fabi=C3=A1n?= Ezequiel Gallina Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jan 27 03:14:08 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TzHl1-0002mU-Rz for geb-bug-gnu-emacs@m.gmane.org; Sun, 27 Jan 2013 03:14:07 +0100 Original-Received: from localhost ([::1]:36878 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TzHkk-0004YV-4d for geb-bug-gnu-emacs@m.gmane.org; Sat, 26 Jan 2013 21:13:50 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:48715) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TzHkh-0004YQ-Lw for bug-gnu-emacs@gnu.org; Sat, 26 Jan 2013 21:13:48 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TzHkf-0003N0-68 for bug-gnu-emacs@gnu.org; Sat, 26 Jan 2013 21:13:47 -0500 Original-Received: from debbugs.gnu.org ([140.186.70.43]:45432) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TzHkf-0003Mj-2E for bug-gnu-emacs@gnu.org; Sat, 26 Jan 2013 21:13:45 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1TzHkv-0002Ub-P6 for bug-gnu-emacs@gnu.org; Sat, 26 Jan 2013 21:14:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Glenn Morris Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Jan 2013 02:14:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13438 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 13438-submit@debbugs.gnu.org id=B13438.13592527969522 (code B ref 13438); Sun, 27 Jan 2013 02:14:01 +0000 Original-Received: (at 13438) by debbugs.gnu.org; 27 Jan 2013 02:13:16 +0000 Original-Received: from localhost ([127.0.0.1]:50896 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TzHkB-0002TX-Gu for submit@debbugs.gnu.org; Sat, 26 Jan 2013 21:13:16 -0500 Original-Received: from fencepost.gnu.org ([208.118.235.10]:54360) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1TzHk7-0002TM-1h for 13438@debbugs.gnu.org; Sat, 26 Jan 2013 21:13:12 -0500 Original-Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1TzHjn-0000MY-3i; Sat, 26 Jan 2013 21:12:51 -0500 X-Spook: gamma SSL chameleon man csystems Belknap arrangements X-Ran: .-uo`i+RVnw5gp8^>l^Zgaf0P{K?Tha343]238(8G!F'Pf82x=4{BA\"muB.k&nO\?<8O) X-Hue: magenta X-Attribution: GM In-Reply-To: <51028EED.30406@anue.biz> ("=?UTF-8?Q?Fabi=C3=A1n?= Ezequiel Gallina"'s message of "Fri, 25 Jan 2013 10:55:57 -0300") User-Agent: Gnus (www.gnus.org), GNU Emacs (www.gnu.org/software/emacs/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:70357 Archived-At: Oh, so the actual issue is: if you call imenu-default-create-index-function with point at the start of the last defun in the buffer. It goes to point-max, then back to the start of the defun, and mistakenly thinks it is inflooping. How about the following, which only signals an error if imenu-prev-index-position-function returns non-nil twice in a row without moving point. BTW, neither python-nav-beginning-of-defun or python-imenu-prev-index-position will move past the start of the first defun in a buffer, if the defun begins past point-min (ie, if there are blank lines before the first defun, it does not move over them to point-min). I don't know if this matters, but it is inconsistent with eg Prolog and Emacs Lisp modes. *** lisp/imenu.el 2013-01-23 21:55:46 +0000 --- lisp/imenu.el 2013-01-27 02:02:39 +0000 *************** *** 678,688 **** ;; in these major modes. But save that change for later. (cond ((and imenu-prev-index-position-function imenu-extract-index-name-function) ! (let ((index-alist '()) (pos (point)) name) (goto-char (point-max)) ;; Search for the function (while (funcall imenu-prev-index-position-function) (setq pos (point)) (save-excursion (setq name (funcall imenu-extract-index-name-function))) --- 678,690 ---- ;; in these major modes. But save that change for later. (cond ((and imenu-prev-index-position-function imenu-extract-index-name-function) ! (let ((index-alist '()) (pos -1) name) (goto-char (point-max)) ;; Search for the function (while (funcall imenu-prev-index-position-function) + (when (= pos (point)) + (error "Infinite loop at %s:%d: imenu-prev-index-position-function does not move point" (buffer-name) pos)) (setq pos (point)) (save-excursion (setq name (funcall imenu-extract-index-name-function)))