From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 01 03:48:19 2013 Received: (at submit) by debbugs.gnu.org; 1 Apr 2013 07:48:19 +0000 Received: from localhost ([127.0.0.1]:55355 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UMZTW-0003Ha-0L for submit@debbugs.gnu.org; Mon, 01 Apr 2013 03:48:19 -0400 Received: from eggs.gnu.org ([208.118.235.92]:44395) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UMZTP-0003HP-LU for submit@debbugs.gnu.org; Mon, 01 Apr 2013 03:48:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UMZQZ-0001CL-PN for submit@debbugs.gnu.org; Mon, 01 Apr 2013 03:45:20 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-109.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, USER_IN_WHITELIST autolearn=disabled version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:51217) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMZQZ-0001CG-M7 for submit@debbugs.gnu.org; Mon, 01 Apr 2013 03:45:15 -0400 Received: from eggs.gnu.org ([208.118.235.92]:55737) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMZQX-0007Ur-Dr for bug-gnu-emacs@gnu.org; Mon, 01 Apr 2013 03:45:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UMZQS-0001Ag-2O for bug-gnu-emacs@gnu.org; Mon, 01 Apr 2013 03:45:13 -0400 Received: from mx1.redhat.com ([209.132.183.28]:23324) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UMZQR-00019D-QH for bug-gnu-emacs@gnu.org; Mon, 01 Apr 2013 03:45:07 -0400 Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id r317j3n8015708 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 1 Apr 2013 03:45:06 -0400 Received: from localhost (dhcp-193-94.nrt.redhat.com [10.64.193.94]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id r317j1YS004331 for ; Mon, 1 Apr 2013 03:45:02 -0400 Date: Mon, 01 Apr 2013 16:45:01 +0900 (JST) Message-Id: <20130401.164501.864987774352059653.yamato@redhat.com> To: bug-gnu-emacs@gnu.org Subject: [patch] handle function names with a single char in imenu in sh-mode From: Masatake YAMATO Organization: Red Hat Japan, Inc. Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 208.118.235.17 X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) This report includes a patch fixing a bug. = Please, review and install it to the official tree if appreciated. The patch from two parts: 1. fixing imenu expression for sh-mode. 2. A test case Description of bug: Imenu in sh-mode cannot capture "a" in following buffer: a() { } `sh-imenu-generic-expression' expects function names consist of more than 2 characters. ------------------------------------------------------------ revno: 112200 committer: Masatake YAMATO branch nick: emacs-sh-add-log timestamp: Mon 2013-04-01 16:41:48 +0900 message: * lisp/progmodes/sh-script.el (sh-imenu-generic-expression): Handle function names with a single character. = * automated/imenu-tests.el: New file. diff: =3D=3D=3D modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2013-03-30 19:31:27 +0000 +++ lisp/ChangeLog 2013-04-01 07:41:48 +0000 @@ -1,3 +1,8 @@ +2013-04-01 Masatake YAMATO + + * progmodes/sh-script.el (sh-imenu-generic-expression): Handle + function names with a single character. + 2013-03-30 Fabi=E1n Ezequiel Gallina = Un-indent after "pass" and "return" statements (Bug#13888) =3D=3D=3D modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2013-03-05 17:13:01 +0000 +++ lisp/progmodes/sh-script.el 2013-04-01 07:41:48 +0000 @@ -335,11 +335,11 @@ . ((nil ;; function FOO ;; function FOO() - "^\\s-*function\\s-+\\\([[:alpha:]_][[:alnum:]_]+\\)\\s-*\\(?= :()\\)?" + "^\\s-*function\\s-+\\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*\\(?= :()\\)?" 1) ;; FOO() (nil - "^\\s-*\\([[:alpha:]_][[:alnum:]_]+\\)\\s-*()" + "^\\s-*\\([[:alpha:]_][[:alnum:]_]*\\)\\s-*()" 1) ))) "Alist of regular expressions for recognizing shell function definit= ions. =3D=3D=3D modified file 'test/ChangeLog' --- test/ChangeLog 2013-03-30 16:55:47 +0000 +++ test/ChangeLog 2013-04-01 07:41:48 +0000 @@ -1,3 +1,7 @@ +2013-04-01 Masatake YAMATO + + * automated/imenu-tests.el: New file. + 2013-03-30 Fabi=E1n Ezequiel Gallina = * automated/python-tests.el (python-indent-block-enders): New test. =3D=3D=3D added file 'test/automated/imenu-tests.el' --- test/automated/imenu-tests.el 1970-01-01 00:00:00 +0000 +++ test/automated/imenu-tests.el 2013-04-01 07:41:48 +0000 @@ -0,0 +1,87 @@ +;;; imenu-tests.el --- Test suite for imenu. + +;; Copyright (C) 2013 Free Software Foundation, Inc. + +;; Author: Masatake YAMATO +;; Keywords: tools convenience + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published b= y +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Code: + +(require 'imenu) + +;; (imenu-simple-scan-deftest-gather-strings-from-list +;; '(nil t 'a (0 . "x") ("c" . "d") ("a" 0 "b") )) +;; =3D> ("b" "a" "d" "c" "x") +(defun imenu-simple-scan-deftest-gather-strings-from-list(input) + "Gather strings from INPUT, a list." + (let ((result ())) + (while input + (cond + ((stringp input) + (setq result (cons input result) + input nil)) + ((atom input) + (setq input nil)) + ((listp (car input)) + (setq result (append + (imenu-simple-scan-deftest-gather-strings-from-list (car input= )) + result) + input (cdr input))) + ((stringp (car input)) + (setq result (cons (car input) result) + input (cdr input))) + (t + (setq input (cdr input))))) + result)) + +(defmacro imenu-simple-scan-deftest (name doc major-mode content expec= ted-items) + "Generate an ert test for mode-own imenu expression. +Run `imenu-create-index-function' at the buffer which content is +CONTENT with MAJOR-MODE. A generated test runs `imenu-create-index-fun= ction' +at the buffer which content is CONTENT with MAJOR-MODE. Then it compar= es a list +of strings which are picked up from the result with EXPECTED-ITEMS." + (let ((xname (intern (concat "imenu-simple-scan-deftest-" (symbol-na= me name))))) + `(ert-deftest ,xname () + ,doc + (with-temp-buffer + (insert ,content) + (funcall ',major-mode) + (let ((result-items (sort (imenu-simple-scan-deftest-gather-strings-= from-list + (funcall imenu-create-index-function)) + #'string-lessp)) + (expected-items (sort (copy-sequence ,expected-items) #'string= -lessp))) + (should (equal result-items expected-items)) + ))))) + +(imenu-simple-scan-deftest sh "Test imenu expression for sh-mode." sh-= mode "a() +{ +} +function b +{ +} +function c() +{ +} +function ABC_D() +{ +} +" '("a" "b" "c" "ABC_D")) + +(provide 'imenu-tests) + +;;; imenu-tests.el ends here From debbugs-submit-bounces@debbugs.gnu.org Sun Apr 21 21:52:15 2013 Received: (at control) by debbugs.gnu.org; 22 Apr 2013 01:52:15 +0000 Received: from localhost ([127.0.0.1]:36076 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UU5vS-0002G3-SL for submit@debbugs.gnu.org; Sun, 21 Apr 2013 21:52:15 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:40522) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UU5vR-0002Fx-PR for control@debbugs.gnu.org; Sun, 21 Apr 2013 21:52:13 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1UU5qn-0000Q3-AS for control@debbugs.gnu.org; Sun, 21 Apr 2013 21:47:25 -0400 Date: Sun, 21 Apr 2013 21:47:25 -0400 Message-Id: Subject: control message for bug 14111 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -4.2 (----) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.0 (-----) close 14111 24.4 From unknown Mon Aug 18 21:49:33 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 20 May 2013 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator