From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Peter Vasil Newsgroups: gmane.emacs.devel Subject: Re: Wrong indentation of defun with indent-region Date: Sun, 30 Apr 2017 18:51:11 +0200 Message-ID: References: NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1493571092 24337 195.159.176.226 (30 Apr 2017 16:51:32 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sun, 30 Apr 2017 16:51:32 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.0 To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Apr 30 18:51:29 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d4s4G-0006EB-EO for ged-emacs-devel@m.gmane.org; Sun, 30 Apr 2017 18:51:28 +0200 Original-Received: from localhost ([::1]:45298 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4s4M-0000W5-06 for ged-emacs-devel@m.gmane.org; Sun, 30 Apr 2017 12:51:34 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:60815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d4s4F-0000Vp-ES for emacs-devel@gnu.org; Sun, 30 Apr 2017 12:51:28 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d4s4C-0005Ch-D7 for emacs-devel@gnu.org; Sun, 30 Apr 2017 12:51:27 -0400 Original-Received: from [195.159.176.226] (port=46132 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d4s4C-0005BJ-66 for emacs-devel@gnu.org; Sun, 30 Apr 2017 12:51:24 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1d4s40-0005zx-Pq for emacs-devel@gnu.org; Sun, 30 Apr 2017 18:51:12 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 100 Original-X-Complaints-To: usenet@blaine.gmane.org In-Reply-To: Content-Language: de-DE X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:214443 Archived-At: On 04/30/2017 06:31 PM, Peter Vasil wrote: > Hello, > > Since commit 6fa9cc0593150a318f0e08e69ec10672d548a7c1 indent-region > doesn't indent correctly a defun when docstring is more than one line. > > Reproduction: > > (defun test () > "Test. > Two lines docstring." > (message "Test")) > > With cursor somewhere in the function and after M-x mark-defun RET and > M-x indent-region RET is this the result: > > > (defun test-func () > "Test func. > Two lines docstring." > (message "Test")) > > However if the docstring is only one line the indentation stays correct. > > Regards, > Peter Vasil > > > I wrote this small ert test which fails: diff --git a/test/lisp/emacs-lisp/lisp-mode-tests.el b/test/lisp/emacs-lisp/lisp-mode-tests.el index 27f0bb5..4856318 100644 --- a/test/lisp/emacs-lisp/lisp-mode-tests.el +++ b/test/lisp/emacs-lisp/lisp-mode-tests.el @@ -97,5 +97,19 @@ (indent-sexp) (should (equal (buffer-string) correct))))) +(ert-deftest indent-region () + (with-temp-buffer + (emacs-lisp-mode) + (insert " +(defun test () + \"Test func. +Two lines docstring.\" + (message \"Test\"))") + (let ((correct (buffer-string))) + (search-backward "message") + (mark-defun) + (indent-region (region-beginning) (region-end)) + (should (equal (buffer-string) correct))))) + (provide 'lisp-mode-tests) Result: Selector: t Passed: 0 Failed: 1 (1 unexpected) Skipped: 0 Total: 1/1 Started at: 2017-04-30 18:49:36+0200 Finished. Finished at: 2017-04-30 18:49:36+0200 F F indent-region (ert-test-failed ((should (equal (buffer-string) correct)) :form (equal " (defun test () \"Test func. Two lines docstring.\" (message \"Test\"))" " (defun test () \"Test func. Two lines docstring.\" (message \"Test\"))") :value nil :explanation (arrays-of-different-length 76 71 " (defun test () \"Test func. Two lines docstring.\" (message \"Test\"))" " (defun test () \"Test func. Two lines docstring.\" (message \"Test\"))" first-mismatch-at 54)))