From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: kobarity Newsgroups: gmane.emacs.bugs Subject: bug#56105: 29.0.50; python-nav-beginning-of-defun does not handle nested functions properly Date: Mon, 20 Jun 2022 21:01:49 +0900 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="0000000000003195eb05e1dfdf84" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16040"; mail-complaints-to="usenet@ciao.gmane.io" To: 56105@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 20 14:03:16 2022 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o3G7f-0003xw-7g for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 20 Jun 2022 14:03:15 +0200 Original-Received: from localhost ([::1]:39816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o3G7d-0003ny-Vz for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 20 Jun 2022 08:03:14 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50040) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o3G7S-0003no-60 for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2022 08:03:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:60751) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o3G7R-0003tb-T2 for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2022 08:03:01 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1o3G7R-0000IV-Pm for bug-gnu-emacs@gnu.org; Mon, 20 Jun 2022 08:03:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: kobarity Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 20 Jun 2022 12:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56105 X-GNU-PR-Package: emacs Original-Received: via spool by 56105-submit@debbugs.gnu.org id=B56105.16557265471099 (code B ref 56105); Mon, 20 Jun 2022 12:03:01 +0000 Original-Received: (at 56105) by debbugs.gnu.org; 20 Jun 2022 12:02:27 +0000 Original-Received: from localhost ([127.0.0.1]:54648 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o3G6p-0000Hb-Jf for submit@debbugs.gnu.org; Mon, 20 Jun 2022 08:02:27 -0400 Original-Received: from mail-ej1-f52.google.com ([209.85.218.52]:38759) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o3G6a-0000H8-C9 for 56105@debbugs.gnu.org; Mon, 20 Jun 2022 08:02:22 -0400 Original-Received: by mail-ej1-f52.google.com with SMTP id um5so5678086ejb.5 for <56105@debbugs.gnu.org>; Mon, 20 Jun 2022 05:02:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=4tW30DFPsCF0DebjneIip8lLb+I+4LDpenblzbjFoKs=; b=CMuawfQmh/0Lxo9LdbnZPZoCAvQl0mbnc2A2t7iWniDyQW0E5XBdcjh0JR55Jxgzjy S3SHni3so/Fw4sOZqdWoxHqpVdpTXS6t8ko0dAyTvV9m+zGRxhQ7EMFqSgERHta3+r40 1SBAdCfz3mu2jeBANrGCANuHqAXUImFMlTuDinYGtwBAEhousbJowNpakNuJ2ALFVuWE dy1uqSee+WhnT01bKrDHtWwd4JM58bhEGG1/GC/yMQ1rnaNksP7yyKldTuaBIpO4x+Ms qtDnNlS76wNcMcv1DqaEMIVjxIhpscUNeTnZHs0jMcUf7h/+tDDxYL06HvJw4h5iFfnu lirg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=4tW30DFPsCF0DebjneIip8lLb+I+4LDpenblzbjFoKs=; b=tW7lujDxvh1n/vzXg9Y4Y6UIrQ8+V/lvZ7asq8Sfd6sh/OAbtiQ3Gn6w3Jkdbh2PYw 0Wey7/4i08XdNp0lYOfwCgoh0tJPzQTWBcEf+jiBSn/NxlYTJ3qvGhRrfaQFMMkBhLQk M8kOdQELTPiJyq1ZYBUmN2fQ52/uiElJvA2t3dXdQeZUMQJBpid7vaTUp6b4WQMCcuUP eynqFSH7IxWpSNd3SBjSU6M0EFFeDusggWw5+GKygXTdQiqJqAUJCOfP48Mtl10jYKbM ERFUcevH4TrwBNSprB9noENd+6MGfwW/ftMwrxRAaQdngMTRKzwH/a3xR9dJLaKg9rEq xvFw== X-Gm-Message-State: AJIora9IbaRH7QoWlXz8mBcQ3MgqxUT5HQjbMQBmLaMw1K1AWrTXFAaH UaJN6jV+7HUzsOv9Hf4eYB3YEhLYcxvtozNsVjqQmRq2sRQ= X-Google-Smtp-Source: AGRyM1tgnJNBdaCVdmcyPzSQxzO0gTY0+mU6YNfQX3A3Pn+2zq6MfTauFoqVBHECP18GHeqAZvbjMwKlIITVCkAcoCs= X-Received: by 2002:a17:906:a57:b0:718:bd7e:e45b with SMTP id x23-20020a1709060a5700b00718bd7ee45bmr20527582ejf.204.1655726522072; Mon, 20 Jun 2022 05:02:02 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:234878 Archived-At: --0000000000003195eb05e1dfdf84 Content-Type: text/plain; charset="UTF-8" Hi, In python-nav--beginning-of-defun, body-indentation is expected to be the indentation level of the body of the current function. It is calculated by searching blocks backward for defuns and adding python-indent-offset. However, the found defun is not always the defun for the current function, because there may be nested functions. Attached is a patch to fix this issue. In this patch, min-indentation is introduced to keep track of the minimum indentation of the current function body to distinguish nested defuns from current defun. (python-info-looking-at-beginning-of-defun) in the initialization of min-indentation is a special case. In this case, python-nav-beginning-of-defun is expected to navigate to the previous defun of the same level, not the enclosing defun. There is a test case for this issue in python-nav-beginning-of-defun-1, but unfortunately the expectation is wrong. I corrected it and added some tests including a test with python-mark-defun in this patch. Best Regards, --0000000000003195eb05e1dfdf84 Content-Type: application/octet-stream; name="fix-56105.patch" Content-Disposition: attachment; filename="fix-56105.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l4moqqg70 Y29tbWl0IDRjM2EwMjQ5ZWZkYjE0YWNmNjNlYjNhOGUzNzAzNDM1NGZhM2ZlN2UKQXV0aG9yOiBr b2Jhcml0eSA8a29iYXJpdHlAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBKdW4gMjAgMjA6NTM6MDkg MjAyMiArMDkwMAoKICAgIEZpeCBuZXN0ZWQgZGVmdW5zIGhhbmRsaW5nIGluIGBweXRob24tbmF2 LWJlZ2lubmluZy1vZi1kZWZ1bicKICAgIAogICAgKiBsaXNwL3Byb2dtb2Rlcy9weXRob24uZWwg KHB5dGhvbi1uYXYtLWJlZ2lubmluZy1vZi1kZWZ1bik6IEZpeAogICAgaGFuZGxpbmcgb2YgbmVz dGVkIGRlZnVucyAoYnVnIzU2MTA1KS4KCmRpZmYgLS1naXQgYS9saXNwL3Byb2dtb2Rlcy9weXRo b24uZWwgYi9saXNwL3Byb2dtb2Rlcy9weXRob24uZWwKaW5kZXggYzI0ODM0MzZmZS4uZTBjOTM3 ZDdjZSAxMDA2NDQKLS0tIGEvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLmVsCisrKyBiL2xpc3AvcHJv Z21vZGVzL3B5dGhvbi5lbApAQCAtMTQ1NSwxMSArMTQ1NSwxNyBAQCBweXRob24tbmF2LS1iZWdp bm5pbmctb2YtZGVmdW4KICAgICAgICAgIChsaW5lLWJlZy1wb3MgKGxpbmUtYmVnaW5uaW5nLXBv c2l0aW9uKSkKICAgICAgICAgIChsaW5lLWNvbnRlbnQtc3RhcnQgKCsgbGluZS1iZWctcG9zIChj dXJyZW50LWluZGVudGF0aW9uKSkpCiAgICAgICAgICAocG9zIChwb2ludC1tYXJrZXIpKQorICAg ICAgICAgKG1pbi1pbmRlbnRhdGlvbiAoKyAoY3VycmVudC1pbmRlbnRhdGlvbikKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGlmIChweXRob24taW5mby1sb29raW5nLWF0LWJlZ2lubmlu Zy1vZi1kZWZ1bikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGhvbi1pbmRl bnQtb2Zmc2V0IDApKSkKICAgICAgICAgIChib2R5LWluZGVudGF0aW9uCiAgICAgICAgICAgKGFu ZCAoPiBhcmcgMCkKICAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgogICAgICAgICAgICAg ICAgICAod2hpbGUgKGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgIChub3QgKHB5dGhvbi1p bmZvLWxvb2tpbmctYXQtYmVnaW5uaW5nLW9mLWRlZnVuKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAob3IgKG5vdCAocHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtZGVmdW4p KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoPj0gKGN1cnJlbnQtaW5kZW50YXRpb24p IG1pbi1pbmRlbnRhdGlvbikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKHNldHEgbWluLWlu ZGVudGF0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1pbiBtaW4taW5kZW50 YXRpb24gKGN1cnJlbnQtaW5kZW50YXRpb24pKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAo cHl0aG9uLW5hdi1iYWNrd2FyZC1ibG9jaykpKQogICAgICAgICAgICAgICAgICAob3IgKGFuZCAo cHl0aG9uLWluZm8tbG9va2luZy1hdC1iZWdpbm5pbmctb2YtZGVmdW4pCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICgrIChjdXJyZW50LWluZGVudGF0aW9uKSBweXRob24taW5kZW50LW9mZnNl dCkpCmRpZmYgLS1naXQgYS90ZXN0L2xpc3AvcHJvZ21vZGVzL3B5dGhvbi10ZXN0cy5lbCBiL3Rl c3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCmluZGV4IDhkYjBhMDcxNzAuLmUxN2Jj MGRmOTIgMTAwNjQ0Ci0tLSBhL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCisr KyBiL3Rlc3QvbGlzcC9wcm9nbW9kZXMvcHl0aG9uLXRlc3RzLmVsCkBAIC0xNzM2LDYgKzE3MzYs MjcgQEAgcHl0aG9uLW1hcmstZGVmdW4tMwogICAgICAoc2hvdWxkICg9IChtYXJrZXItcG9zaXRp b24gKG1hcmstbWFya2VyKSkKICAgICAgICAgICAgICAgICBleHBlY3RlZC1tYXJrLWVuZC1wb3Np dGlvbikpKSkpCiAKKyhlcnQtZGVmdGVzdCBweXRob24tbWFyay1kZWZ1bi00ICgpCisgICJUZXN0 IGBweXRob24tbWFyay1kZWZ1bicgd2l0aCBuZXN0ZWQgZnVuY3Rpb25zLiIKKyAgKHB5dGhvbi10 ZXN0cy13aXRoLXRlbXAtYnVmZmVyCisgICAiCitkZWYgZm9vKHgpOgorICAgIGRlZiBiYXIoKToK KyAgICAgICAgcmV0dXJuIHgKKyAgICBpZiBUcnVlOgorICAgICAgICByZXR1cm4gYmFyCisiCisg ICAobGV0ICgoZXhwZWN0ZWQtbWFyay1iZWdpbm5pbmctcG9zaXRpb24KKyAgICAgICAgICAocHJv Z24KKyAgICAgICAgICAgIChweXRob24tdGVzdHMtbG9vay1hdCAiZGVmIGZvbyh4KToiKQorICAg ICAgICAgICAgKDEtIChsaW5lLWJlZ2lubmluZy1wb3NpdGlvbikpKSkKKyAgICAgICAgIChleHBl Y3RlZC1tYXJrLWVuZC1wb3NpdGlvbiAocG9pbnQtbWF4KSkpCisgICAgIChweXRob24tdGVzdHMt bG9vay1hdCAicmV0dXJuIGJhciIpCisgICAgIChweXRob24tbWFyay1kZWZ1biAxKQorICAgICAo c2hvdWxkICg9IChwb2ludCkgZXhwZWN0ZWQtbWFyay1iZWdpbm5pbmctcG9zaXRpb24pKQorICAg ICAoc2hvdWxkICg9IChtYXJrZXItcG9zaXRpb24gKG1hcmstbWFya2VyKSkKKyAgICAgICAgICAg ICAgICBleHBlY3RlZC1tYXJrLWVuZC1wb3NpdGlvbikpKSkpCisKIAwKIDs7OyBOYXZpZ2F0aW9u CiAKQEAgLTE3NjIsMTIgKzE3ODMsMjAgQEAgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtZGVmdW4t MQogICAgICAgICByZXR1cm4gd3JhcHBlZF9mCiAgICAgcmV0dXJuIHd3cmFwCiAiCi0gICAocHl0 aG9uLXRlc3RzLWxvb2stYXQgInJldHVybiB3cmFwIikKKyAgIChweXRob24tdGVzdHMtbG9vay1h dCAicmV0dXJuIHd3cmFwIikKICAgIChzaG91bGQgKD0gKHNhdmUtZXhjdXJzaW9uCiAgICAgICAg ICAgICAgICAgKHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWRlZnVuKQogICAgICAgICAgICAgICAg IChwb2ludCkpCiAgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgotICAgICAgICAgICAgICAg IChweXRob24tdGVzdHMtbG9vay1hdCAiZGVmIHdyYXBwZWRfZigqYXJncyk6IiAtMSkKKyAgICAg ICAgICAgICAgICAocHl0aG9uLXRlc3RzLWxvb2stYXQgImRlZiBkZWNvcmF0b3JGdW5jdGlvbldp dGhBcmd1bWVudHMiIC0xKQorICAgICAgICAgICAgICAgIChiZWdpbm5pbmctb2YtbGluZSkKKyAg ICAgICAgICAgICAgICAocG9pbnQpKSkpCisgICAocHl0aG9uLXRlc3RzLWxvb2stYXQgInJldHVy biB3cmFwIiAtMSkKKyAgIChzaG91bGQgKD0gKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAgICAg ICAgKHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWRlZnVuKQorICAgICAgICAgICAgICAgIChwb2lu dCkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgIChweXRo b24tdGVzdHMtbG9vay1hdCAiZGVmIHd3cmFwKGYpOiIgLTEpCiAgICAgICAgICAgICAgICAgKGJl Z2lubmluZy1vZi1saW5lKQogICAgICAgICAgICAgICAgIChwb2ludCkpKSkKICAgIChweXRob24t dGVzdHMtbG9vay1hdCAiZGVmIHdyYXBwZWRfZigqYXJncyk6IiAtMSkKQEAgLTE4MDEsMTEgKzE4 MzAsMjMgQEAgcHl0aG9uLW5hdi1iZWdpbm5pbmctb2YtZGVmdW4tMgogICAgICAgICBkZWYgYSgp OgogICAgICAgICAgICAgcGFzcwogCisgICAgICAgIGlmIFRydWU6CisgICAgICAgICAgICByZXR1 cm4gYQorCiAgICAgZGVmIGMoc2VsZik6CiAgICAgICAgIHBhc3MKICIKICAgIDs7IE5lc3RlZCBk ZWZ1bnMsIGFyZSBoYW5kbGVkIHdpdGggY2FyZS4KICAgIChweXRob24tdGVzdHMtbG9vay1hdCAi ZGVmIGMoc2VsZik6IikKKyAgIChzaG91bGQgKD0gKHNhdmUtZXhjdXJzaW9uCisgICAgICAgICAg ICAgICAgKHB5dGhvbi1uYXYtYmVnaW5uaW5nLW9mLWRlZnVuKQorICAgICAgICAgICAgICAgIChw b2ludCkpCisgICAgICAgICAgICAgIChzYXZlLWV4Y3Vyc2lvbgorICAgICAgICAgICAgICAgIChw eXRob24tdGVzdHMtbG9vay1hdCAiZGVmIG0oc2VsZik6IiAtMSkKKyAgICAgICAgICAgICAgICAo YmVnaW5uaW5nLW9mLWxpbmUpCisgICAgICAgICAgICAgICAgKHBvaW50KSkpKQorICAgOzsgTmVz dGVkIGRlZnVucyBzaHVsZCBiZSBza2lwcGVkLgorICAgKHB5dGhvbi10ZXN0cy1sb29rLWF0ICJy ZXR1cm4gYSIgLTEpCiAgICAoc2hvdWxkICg9IChzYXZlLWV4Y3Vyc2lvbgogICAgICAgICAgICAg ICAgIChweXRob24tbmF2LWJlZ2lubmluZy1vZi1kZWZ1bikKICAgICAgICAgICAgICAgICAocG9p bnQpKQo= --0000000000003195eb05e1dfdf84--