From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jim Porter Newsgroups: gmane.emacs.bugs Subject: bug#61954: 30.0.50; [PATCH] Simplify structured commands in Eshell Date: Fri, 3 Mar 2023 23:28:46 -0800 Message-ID: <0a0527e8-b005-6f1a-016a-1cb0694ce639@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------OGDtxR37XY4gIW5KgoOD8BAs" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="19054"; mail-complaints-to="usenet@ciao.gmane.io" To: 61954@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 04 08:29:39 2023 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 1pYMKo-0004pd-Cw for geb-bug-gnu-emacs@m.gmane-mx.org; Sat, 04 Mar 2023 08:29:38 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pYMKN-0000H3-M9; Sat, 04 Mar 2023 02:29:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pYMKF-0000GN-2N for bug-gnu-emacs@gnu.org; Sat, 04 Mar 2023 02:29:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pYMKE-000727-QJ for bug-gnu-emacs@gnu.org; Sat, 04 Mar 2023 02:29:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1pYMKE-0000Cp-7f for bug-gnu-emacs@gnu.org; Sat, 04 Mar 2023 02:29:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Jim Porter Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 04 Mar 2023 07:29:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 61954 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.1677914934776 (code B ref -1); Sat, 04 Mar 2023 07:29:02 +0000 Original-Received: (at submit) by debbugs.gnu.org; 4 Mar 2023 07:28:54 +0000 Original-Received: from localhost ([127.0.0.1]:35161 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pYMK6-0000CS-2d for submit@debbugs.gnu.org; Sat, 04 Mar 2023 02:28:54 -0500 Original-Received: from lists.gnu.org ([209.51.188.17]:42976) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pYMK3-0000CJ-Mh for submit@debbugs.gnu.org; Sat, 04 Mar 2023 02:28:52 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pYMK3-0000FY-EQ for bug-gnu-emacs@gnu.org; Sat, 04 Mar 2023 02:28:51 -0500 Original-Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pYMK1-00070W-1S for bug-gnu-emacs@gnu.org; Sat, 04 Mar 2023 02:28:51 -0500 Original-Received: by mail-pl1-x630.google.com with SMTP id n6so5058901plf.5 for ; Fri, 03 Mar 2023 23:28:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677914927; h=to:subject:from:content-language:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=oBJJyxgSPmBqd2LJg3Ad6JDLRBsWQGAFOi3j+yes1BY=; b=mP1M6IP0swVdBFog0E+KQc2PNEkQrfZR3201aPAHXN0OVW0fzxEiR5uebCLj56TL6c jmFy8bpF2gCfbc+7YvGL2Wu+WTAzjTC/i3OGze15RmGrdzgHRNSdSGP5yapLb5VSEz1R OC2GRH9HQNIj6qhITuDIQSt84kaZa5fMB6szq6J/iEeEVQcy8iOdioMRZNrmBvpvgon0 JmQVKDYtM6qGIgo0ofCh3RMa4mBGDZ65ri8MLj/maymd2+Nxzjsqmdjka+mgo3+Kyg2v XC8pJBzGEA2Ofgp9PnWSOopAI9LzfgZetEp2he9jJ/wVl7WLe950fxEqV1fV4/HRhAoQ L0Rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677914927; h=to:subject:from:content-language:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oBJJyxgSPmBqd2LJg3Ad6JDLRBsWQGAFOi3j+yes1BY=; b=PL3ivBnpH2qGVeSc6P7CoPNZMeLvRnLlDv+wt1cwDbs6zDifaHdTVVb/YrpX1tcAie DBxjkFhdVCM6l6e2DyV8rh/G6o2EDvRpbQnLbGuIcC6YeNWvwH85kpnhg6e7koRklchY oC75bM4WmccY7DpuVLs8ZIeRQslgtb1vsk1E7YIjKoemzuN62gkxnKP1ExiRezP/kawd HoCxDNeCZVhMe3fYHsW0L5wyVRDQHYefvkQ51yWYC0o4zKZjCkCde3ndzJ6m6jMwBxVE T/YoDaJV7nPcJX62nVn5cO0sZGjI9SC1BmcfJqcKujL+VIDBVY/RZ/0m5KnVs/BiypU1 WbTg== X-Gm-Message-State: AO0yUKVyDJuZ9+hB3qW/QlEojChkD/FmBJWVemdTX9xI6rpmEHohSbun XWIDBNM9FBq0TK8I5vkkeVsYcEct65U= X-Google-Smtp-Source: AK7set+rGe+jp5VxpYMqkoF97I2FJ5Ln8t1s30zTnZShCgEAzhD7UEN1o1AJiwHlVQwfeVeUtvnBqg== X-Received: by 2002:a17:90a:7:b0:23a:6be8:9446 with SMTP id 7-20020a17090a000700b0023a6be89446mr4491196pja.48.1677914927040; Fri, 03 Mar 2023 23:28:47 -0800 (PST) Original-Received: from [192.168.1.2] (cpe-76-168-148-233.socal.res.rr.com. [76.168.148.233]) by smtp.googlemail.com with ESMTPSA id s21-20020a17090a5d1500b002341ae23ad7sm9040388pji.1.2023.03.03.23.28.46 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Mar 2023 23:28:46 -0800 (PST) X-Mozilla-News-Host: news://news.gmane.io:119 Content-Language: en-US Received-SPF: pass client-ip=2607:f8b0:4864:20::630; envelope-from=jporterbugs@gmail.com; helo=mail-pl1-x630.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:257254 Archived-At: This is a multi-part message in MIME format. --------------OGDtxR37XY4gIW5KgoOD8BAs Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Structured commands are just Eshell flow control commands, like 'if' and 'while'. These expected you to set 'eshell-test-body' and 'eshell-command-body' when implementing them, and were very hard to get right (see bug#12571 for example). Instead, let's improve Eshell's iterative command evaluation some more so that you can write the implementations for these commands like normal. I think this is beneficial for two main reasons: a) it should get us closer to replacing Eshell's iterative evaluation with the CPS machinery in generator.el (bug#37635)[1], and b) third-parties should have an easier time writing their own fancy Eshell commands using the command-rewriting hooks. Given that we have fairly thorough regression tests in Eshell now, I'm pretty confident that these patches don't break anything. [1] I think I mentioned it elsewhere, but I'm hoping to make sure that when we do switch to the CPS machinery (or maybe to threads), it's just a drop-in replacement. That way, if there are problems, it should be easy to revert to the classic iterative evaluation code. Maybe we could even provide a defcustom for it just in case. --------------OGDtxR37XY4gIW5KgoOD8BAs Content-Type: text/plain; charset=UTF-8; name="0001-Simplify-iteration-in-Eshell-for-loops.patch" Content-Disposition: attachment; filename="0001-Simplify-iteration-in-Eshell-for-loops.patch" Content-Transfer-Encoding: base64 RnJvbSA3Njc4MzlhMGIzYzAzZjkxMDM4N2M4MzRmMTMyMGQ0ZjlkNDY1MjAxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFRodSwgMjYgSmFuIDIwMjMgMjM6MTg6NDIgLTA4MDAKU3ViamVjdDogW1BB VENIIDEvM10gU2ltcGxpZnkgaXRlcmF0aW9uIGluIEVzaGVsbCBmb3IgbG9vcHMKClRoZSBw cmV2aW91cyBjb2RlIGZpeGVkIGFuIGlzc3VlIGluIEVzaGVsbCdzIGl0ZXJhdGl2ZSBldmFs dWF0aW9uCndoZXJlIGRlZmVycmVkIGNvbW1hbmRzIGNhdXNlZCBhbiBpbmZpbml0ZSBsb29w IChzZWUgYnVnIzEyNTcxKS4KSG93ZXZlciwgd2l0aCB0aGUgZml4IHRvIHVud2luZGluZyBs ZXQgZm9ybXMgaW4gJ2VzaGVsbC1kby1ldmFsJyAoc2VlCmJ1ZyM1OTQ2OSksIHdlIGNhbiBq dXN0IHdyaXRlIHRoaXMgY29kZSBhcyB3ZSBub3JtYWxseSB3b3VsZC4KCiogbGlzcC9lc2hl bGwvZXNoLWNtZC5lbCAoZXNoZWxsLXJld3JpdGUtZm9yLWNvbW1hbmQpOiBTaW1wbGlmeS4K LS0tCiBsaXNwL2VzaGVsbC9lc2gtY21kLmVsIHwgMjggKysrKysrKysrKysrKy0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwgYi9saXNwL2VzaGVs bC9lc2gtY21kLmVsCmluZGV4IGQ2MDk3MTE0MDJhLi4yZGQ4ZjVkNjA0MiAxMDA2NDQKLS0t IGEvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAorKysgYi9saXNwL2VzaGVsbC9lc2gtY21kLmVs CkBAIC01MzMsMjUgKzUzMywyMyBAQCBlc2hlbGwtcmV3cml0ZS1mb3ItY29tbWFuZAogCSAg IChlcXVhbCAobnRoIDIgdGVybXMpICJpbiIpKQogICAgICAgKGxldCAoKGJvZHkgKGNhciAo bGFzdCB0ZXJtcykpKSkKIAkoc2V0Y2RyIChsYXN0IHRlcm1zIDIpIG5pbCkKLQlgKGxldCAo KGZvci1pdGVtcwotCQkoY29weS10cmVlCi0JCSAoYXBwZW5kCi0JCSAgLEAobWFwY2FyCi0J CSAgICAgKGxhbWJkYSAoZWxlbSkKLQkJICAgICAgIChpZiAobGlzdHAgZWxlbSkKLQkJCSAg IGVsZW0KLQkJCSBgKGxpc3QgLGVsZW0pKSkKLQkJICAgICAoY2RyIChjZGRyIHRlcm1zKSkp KSkpCi0JICAgICAgIChlc2hlbGwtY29tbWFuZC1ib2R5ICcobmlsKSkKKyAgICAgICAgYChs ZXQgKChmb3ItaXRlbXMKKyAgICAgICAgICAgICAgICAoYXBwZW5kCisgICAgICAgICAgICAg ICAgICxAKG1hcGNhcgorICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChlbGVtKQorICAg ICAgICAgICAgICAgICAgICAgIChpZiAobGlzdHAgZWxlbSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxlbQorICAgICAgICAgICAgICAgICAgICAgICAgYChsaXN0ICxlbGVtKSkp CisgICAgICAgICAgICAgICAgICAgIChudGhjZHIgMyB0ZXJtcykpKSkKKyAgICAgICAgICAg ICAgIChlc2hlbGwtY29tbWFuZC1ib2R5ICcobmlsKSkKICAgICAgICAgICAgICAgIChlc2hl bGwtdGVzdC1ib2R5ICcobmlsKSkpCi0JICAgKHdoaWxlIChjYXIgZm9yLWl0ZW1zKQotCSAg ICAgKGxldCAoKCwoaW50ZXJuIChjYWRyIHRlcm1zKSkgKGNhciBmb3ItaXRlbXMpKQorICAg ICAgICAgICAod2hpbGUgZm9yLWl0ZW1zCisgICAgICAgICAgICAgKGxldCAoKCwoaW50ZXJu IChjYWRyIHRlcm1zKSkgKGNhciBmb3ItaXRlbXMpKQogCQkgICAoZXNoZWxsLS1sb2NhbC12 YXJzIChjb25zICcsKGludGVybiAoY2FkciB0ZXJtcykpCi0JCQkJCSAgICBlc2hlbGwtLWxv Y2FsLXZhcnMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGVzaGVsbC0tbG9jYWwtdmFycykpKQogCSAgICAgICAoZXNoZWxsLXByb3RlY3QKIAkg ICAJLChlc2hlbGwtaW52b2tpZnktYXJnIGJvZHkgdCkpKQotCSAgICAgKHNldGNhciBmb3It aXRlbXMgKGNhZHIgZm9yLWl0ZW1zKSkKLQkgICAgIChzZXRjZHIgZm9yLWl0ZW1zIChjZGRy IGZvci1pdGVtcykpKQorICAgICAgICAgICAgIChzZXRxIGZvci1pdGVtcyAoY2RyIGZvci1p dGVtcykpKQogICAgICAgICAgICAoZXNoZWxsLWNsb3NlLWhhbmRsZXMpKSkpKQogCiAoZGVm dW4gZXNoZWxsLXN0cnVjdHVyZS1iYXNpYy1jb21tYW5kIChmdW5jIG5hbWVzIGtleXdvcmQg dGVzdCBib2R5Ci0tIAoyLjI1LjEKCg== --------------OGDtxR37XY4gIW5KgoOD8BAs Content-Type: text/plain; charset=UTF-8; name="0002-Simplify-how-Eshell-s-iterative-evaluation-handles-i.patch" Content-Disposition: attachment; filename*0="0002-Simplify-how-Eshell-s-iterative-evaluation-handles-i.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAwZTlkODljMjM3M2EzZjgyMzg1ZTYxMzMwMjMzZTg4Njk4ZGYwZDFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggSmFuIDIwMjMgMTU6MDY6MzEgLTA4MDAKU3ViamVjdDogW1BB VENIIDIvM10gU2ltcGxpZnkgaG93IEVzaGVsbCdzIGl0ZXJhdGl2ZSBldmFsdWF0aW9uIGhh bmRsZXMgJ2lmJwogZm9ybXMKClRoZSBwcmV2aW91cyBpbXBsZW1lbnRhdGlvbiB1c2VkICdl c2hlbGwtdGVzdC1ib2R5JyBhbmQKJ2VzaGVsbC1jb21tYW5kLWJvZHknIHRvIHRyYWNrIHRo ZSBjb25kaXRpb24gYW5kIHRoZSB0aGVuL2Vsc2UgZm9ybXMsCmJ1dCB0aG9zZSBzcGVjaWFs IHZhcmlhYmxlcyBhcmUgb25seSBuZWVkZWQgZm9yIGxvb3BpbmcuICAnaWYnIG9ubHkKZXZh bHVhdGVzIGVhY2ggZm9ybSBvbmNlIChhdCBtb3N0KS4KCiogbGlzcC9lc2hlbGwvZXNoLWNt ZC5lbCAoQ29tbWFuZCBldmFsdWF0aW9uIG1hY3Jvcyk6IFJlbW92ZSAnaWYnIGZyb20KdGhl IG5vdGVzIGFib3V0ICdlc2hlbGwtdGVzdC1ib2R5JyBhbmQgJ2VzaGVsbC1jb21tYW5kLWJv ZHknLgooZXNoZWxsLWRvLWV2YWwpOiBSZWltcGxlbWVudCBldmFsdWF0aW9uIG9mICdpZicg Zm9ybXMuCihlc2hlbGwtZXZhbC1jb21tYW5kKTogRG9uJ3QgbGV0LWJpbmQgJ2VzaGVsbC1j b21tYW5kLWJvZHknIGFuZAonZXNoZWxsLXRlc3QtYm9keSc7IHRoZXkncmUgbm8gbG9uZ2Vy IG5lZWRlZCBoZXJlLgotLS0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwgfCAzNiArKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saXNwL2VzaGVsbC9l c2gtY21kLmVsIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbAppbmRleCAyZGQ4ZjVkNjA0Mi4u NWRiYmQ3NzA1ODIgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxsL2VzaC1jbWQuZWwKKysrIGIv bGlzcC9lc2hlbGwvZXNoLWNtZC5lbApAQCAtNzQ1LDkgKzc0NSw5IEBAIGVzaGVsbC1zZXBh cmF0ZS1jb21tYW5kcwogOzsgICBgY29uZGl0aW9uLWNhc2UnLCBgaWYnLCBgbGV0JywgYHBy b2cxJywgYHByb2duJywgYHF1b3RlJywgYHNldHEnLAogOzsgICBgdW53aW5kLXByb3RlY3Qn LCBhbmQgYHdoaWxlJy4KIDs7Ci07OyBAIFdoZW4gdXNpbmcgYGlmJyBvciBgd2hpbGUnLCBm aXJzdCBsZXQtYmluZCBgZXNoZWxsLXRlc3QtYm9keScgYW5kCis7OyBAIFdoZW4gdXNpbmcg YHdoaWxlJywgZmlyc3QgbGV0LWJpbmQgYGVzaGVsbC10ZXN0LWJvZHknIGFuZAogOzsgICBg ZXNoZWxsLWNvbW1hbmQtYm9keScgdG8gJyhuaWwpLiAgRXNoZWxsIHVzZXMgdGhlc2UgdmFy aWFibGVzIHRvCi07OyAgIGhhbmRsZSBjb25kaXRpb25hbCBldmFsdWF0aW9uLgorOzsgICBo YW5kbGUgZXZhbHVhdGluZyBpdHMgc3ViZm9ybXMgbXVsdGlwbGUgdGltZXMuCiA7OwogOzsg QCBUaGUgdHdvIGBzcGVjaWFsJyB2YXJpYWJsZXMgYXJlIGBlc2hlbGwtY3VycmVudC1oYW5k bGVzJyBhbmQKIDs7ICAgYGVzaGVsbC1jdXJyZW50LXN1YmpvYi1wJy4gIEJpbmQgdGhlbSBs b2NhbGx5IHdpdGggYSBgbGV0JyBpZiB5b3UKQEAgLTEwMzEsOSArMTAzMSw3IEBAIGVzaGVs bC1ldmFsLWNvbW1hbmQKICAgICAgIDs7IFdlIGNhbiBqdXN0IHN0aWNrIHRoZSBuZXcgY29t bWFuZCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50CiAgICAgICA7OyBvbmUsIGFuZCBldmVy eXRoaW5nIHdpbGwgaGFwcGVuIGFzIGl0IHNob3VsZC4KICAgICAgIChzZXRjZHIgKGxhc3Qg KGNkciBlc2hlbGwtY3VycmVudC1jb21tYW5kKSkKLSAgICAgICAgICAgICAgKGxpc3QgYChs ZXQgKChoZXJlIChhbmQgKGVvYnApIChwb2ludCkpKQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGVzaGVsbC1jb21tYW5kLWJvZHkgJyhuaWwpKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGVzaGVsbC10ZXN0LWJvZHkgJyhuaWwpKSkKKyAgICAgICAgICAgICAgKGxp c3QgYChsZXQgKChoZXJlIChhbmQgKGVvYnApIChwb2ludCkpKSkKICAgICAgICAgICAgICAg ICAgICAgICAgLChhbmQgaW5wdXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYChp bnNlcnQtYW5kLWluaGVyaXQgLChjb25jYXQgaW5wdXQgIlxuIikpKQogICAgICAgICAgICAg ICAgICAgICAgICAoaWYgaGVyZQpAQCAtMTE0OSwyMyArMTE0NywxNyBAQCBlc2hlbGwtZG8t ZXZhbAogICAgICAgICAgIChzZXRjYXIgZXNoZWxsLXRlc3QtYm9keSAoY29weS10cmVlIChj YXIgYXJncykpKSkKIAkoc2V0Y2FyIGVzaGVsbC1jb21tYW5kLWJvZHkgbmlsKSkKICAgICAg ICAoKGVxIChjYXIgZm9ybSkgJ2lmKQotICAgICAgICA7OyBgY29weS10cmVlJyBpcyBuZWVk ZWQgaGVyZSBzbyB0aGF0IHRoZSB0ZXN0IGFyZ3VtZW50Ci0JOzsgZG9lc24ndCBnZXQgbW9k aWZpZWQgYW5kIHRodXMgYWx3YXlzIHlpZWxkIHRoZSBzYW1lIHJlc3VsdC4KLQkoaWYgKGNh ciBlc2hlbGwtY29tbWFuZC1ib2R5KQotCSAgICAocHJvZ24KLQkgICAgICAoY2wtYXNzZXJ0 IChub3Qgc3luY2hyb25vdXMtcCkpCi0JICAgICAgKGVzaGVsbC1kby1ldmFsIChjYXIgZXNo ZWxsLWNvbW1hbmQtYm9keSkpKQotCSAgKHVubGVzcyAoY2FyIGVzaGVsbC10ZXN0LWJvZHkp Ci0gICAgICAgICAgICAoc2V0Y2FyIGVzaGVsbC10ZXN0LWJvZHkgKGNvcHktdHJlZSAoY2Fy IGFyZ3MpKSkpCi0JICAoc2V0Y2FyIGVzaGVsbC1jb21tYW5kLWJvZHkKLSAgICAgICAgICAg ICAgICAgIChjb3B5LXRyZWUKLSAgICAgICAgICAgICAgICAgICAoaWYgKGNhZHIgKGVzaGVs bC1kby1ldmFsIChjYXIgZXNoZWxsLXRlc3QtYm9keSkKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmNocm9ub3VzLXApKQotICAgICAgICAgICAg ICAgICAgICAgICAoY2FkciBhcmdzKQotICAgICAgICAgICAgICAgICAgICAgKGNhciAoY2Rk ciBhcmdzKSkpKSkKLQkgIChlc2hlbGwtZG8tZXZhbCAoY2FyIGVzaGVsbC1jb21tYW5kLWJv ZHkpIHN5bmNocm9ub3VzLXApKQotCShzZXRjYXIgZXNoZWxsLWNvbW1hbmQtYm9keSBuaWwp Ci0JKHNldGNhciBlc2hlbGwtdGVzdC1ib2R5IG5pbCkpCisgICAgICAgIChlc2hlbGwtbWFu aXB1bGF0ZSAiZXZhbHVhdGluZyBpZiBjb25kaXRpb24iCisgICAgICAgICAgKHNldGNhciBh cmdzIChlc2hlbGwtZG8tZXZhbCAoY2FyIGFyZ3MpIHN5bmNocm9ub3VzLXApKSkKKyAgICAg ICAgKGVzaGVsbC1kby1ldmFsCisgICAgICAgICAoY29uZAorICAgICAgICAgICgoZXZhbCAo Y2FyIGFyZ3MpKSAgICAgICAgICAgIDsgQ09ORCBpcyBub24tbmlsCisgICAgICAgICAgIChj YWRyIGFyZ3MpKQorICAgICAgICAgICgoY2RkZHIgYXJncykgICAgICAgICAgICAgICAgIDsg TXVsdGlwbGUgRUxTRSBmb3JtcworICAgICAgICAgICBgKHByb2duICxAKGNkZHIgYXJncykp KQorICAgICAgICAgICh0ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDsgWmVybyBvciBv bmUgRUxTRSBmb3JtcworICAgICAgICAgICAoY2FkZHIgYXJncykpKQorICAgICAgICAgc3lu Y2hyb25vdXMtcCkpCiAgICAgICAgKChlcSAoY2FyIGZvcm0pICdzZXRjYXIpCiAJKHNldGNh ciAoY2RyIGFyZ3MpIChlc2hlbGwtZG8tZXZhbCAoY2FkciBhcmdzKSBzeW5jaHJvbm91cy1w KSkKIAkoZXZhbCBmb3JtKSkKLS0gCjIuMjUuMQoK --------------OGDtxR37XY4gIW5KgoOD8BAs Content-Type: text/plain; charset=UTF-8; name="0003-Simplify-usage-of-while-forms-in-Eshell-s-iterative-.patch" Content-Disposition: attachment; filename*0="0003-Simplify-usage-of-while-forms-in-Eshell-s-iterative-.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmZDRlOWE1MWFjMTM4MTZmYzdlMGEwY2Q4ZTJlNGY0N2E3YjAyMjZhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKaW0gUG9ydGVyIDxqcG9ydGVyYnVnc0BnbWFpbC5j b20+CkRhdGU6IFNhdCwgMjggSmFuIDIwMjMgMTc6MDQ6MTEgLTA4MDAKU3ViamVjdDogW1BB VENIIDMvM10gU2ltcGxpZnkgdXNhZ2Ugb2YgJ3doaWxlJyBmb3JtcyBpbiBFc2hlbGwncyBp dGVyYXRpdmUKIGV2YWx1YXRpb24KCk5vdywgJ2VzaGVsbC1kby1ldmFsJyByZXdyaXRlcyAn d2hpbGUnIGZvcm1zIHRvIGxldC1iaW5kIHZhcmlhYmxlcyBmb3IKdGhlIGNvbW1hbmQgYW5k IHRlc3QgYm9kaWVzLiAgVGhpcyBtZWFucyB0aGF0IGV4dGVybmFsIGNvZGUsIHN1Y2ggYXMK Y29tbWFuZCByZXdyaXRpbmcgaG9va3MsIG5vIGxvbmdlciBoYXMgdG8gd29ycnkgYWJvdXQg dGhpcywgbWFraW5nIGl0CmVhc2llciB0byBwYXNzICJub3JtYWwiIExpc3AgZm9ybXMgdG8g J2VzaGVsbC1kby1ldmFsJy4KCiogbGlzcC9lc2hlbGwvZXNoLWNtZC5lbCAoZXNoZWxsLWNv bW1hbmQtYm9keSwgZXNoZWxsLXRlc3QtYm9keSk6IE5vCmxvbmdlciB1c2VkIG91dHNpZGUg b2YgJ2VzaGVsbC1kby1ldmFsJywgc28gcmVuYW1lIHRvLi4uCihlc2hlbGwtLWNvbW1hbmQt Ym9keSwgZXNoZWxsLS10ZXN0LWJvZHkpOiAuLi4gdGhlc2UuCihDb21tYW5kIGV2YWx1YXRp b24gbWFjcm9zKTogUmVtb3ZlIG9ic29sZXRlIGRlc2NyaXB0aW9uIGFib3V0ICdpZicKYW5k ICd3aGlsZScgZm9ybXMuCihlc2hlbGwtcmV3cml0ZS1mb3ItY29tbWFuZCwgZXNoZWxsLXN0 cnVjdHVyZS1iYXNpYy1jb21tYW5kKTogUmVtb3ZlCidlc2hlbGwtY29tbWFuZC1ib2R5JyBh bmQgJ2VzaGVsbC10ZXN0LWJvZHknLgooZXNoZWxsLWRvLWV2YWwpOiBSZWltcGxlbWVudCBo YW5kbGluZyBvZiAnd2hpbGUnIGZvcm1zLgotLS0KIGxpc3AvZXNoZWxsL2VzaC1jbWQuZWwg fCA1OSArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9saXNwL2VzaGVsbC9lc2gtY21kLmVsIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbApp bmRleCA1ZGJiZDc3MDU4Mi4uOTNmMjYxNjAyMGMgMTAwNjQ0Ci0tLSBhL2xpc3AvZXNoZWxs L2VzaC1jbWQuZWwKKysrIGIvbGlzcC9lc2hlbGwvZXNoLWNtZC5lbApAQCAtNDk0LDggKzQ5 NCw4IEBAIGVzaGVsbC1yZXdyaXRlLW5hbWVkLWNvbW1hbmQKICAgICAgKHQKICAgICAgIChs aXN0IHN5bSAoY2FyIHRlcm1zKSkpKSkpCiAKLShkZWZ2YXIgZXNoZWxsLWNvbW1hbmQtYm9k eSkKLShkZWZ2YXIgZXNoZWxsLXRlc3QtYm9keSkKKyhkZWZ2YXIgZXNoZWxsLS1jb21tYW5k LWJvZHkpCisoZGVmdmFyIGVzaGVsbC0tdGVzdC1ib2R5KQogCiAoZGVmc3Vic3QgZXNoZWxs LWludm9raWZ5LWFyZyAoYXJnICZvcHRpb25hbCBzaGFyZS1vdXRwdXQgc2lsZW50KQogICAi Q2hhbmdlIEFSRyBzbyBpdCBjYW4gYmUgaW52b2tlZCBmcm9tIGEgc3RydWN0dXJlZCBjb21t YW5kLgpAQCAtNTQwLDkgKzU0MCw3IEBAIGVzaGVsbC1yZXdyaXRlLWZvci1jb21tYW5kCiAg ICAgICAgICAgICAgICAgICAgICAgKGlmIChsaXN0cCBlbGVtKQogICAgICAgICAgICAgICAg ICAgICAgICAgICBlbGVtCiAgICAgICAgICAgICAgICAgICAgICAgICBgKGxpc3QgLGVsZW0p KSkKLSAgICAgICAgICAgICAgICAgICAgKG50aGNkciAzIHRlcm1zKSkpKQotICAgICAgICAg ICAgICAgKGVzaGVsbC1jb21tYW5kLWJvZHkgJyhuaWwpKQotICAgICAgICAgICAgICAgKGVz aGVsbC10ZXN0LWJvZHkgJyhuaWwpKSkKKyAgICAgICAgICAgICAgICAgICAgKG50aGNkciAz IHRlcm1zKSkpKSkKICAgICAgICAgICAgKHdoaWxlIGZvci1pdGVtcwogICAgICAgICAgICAg IChsZXQgKCgsKGludGVybiAoY2FkciB0ZXJtcykpIChjYXIgZm9yLWl0ZW1zKSkKIAkJICAg KGVzaGVsbC0tbG9jYWwtdmFycyAoY29ucyAnLChpbnRlcm4gKGNhZHIgdGVybXMpKQpAQCAt NTc5LDggKzU3Nyw3IEBAIGVzaGVsbC1zdHJ1Y3R1cmUtYmFzaWMtY29tbWFuZAogCiAgIDs7 IGZpbmFsbHksIGNyZWF0ZSB0aGUgZm9ybSB0aGF0IHJlcHJlc2VudHMgdGhpcyBzdHJ1Y3R1 cmVkCiAgIDs7IGNvbW1hbmQKLSAgYChsZXQgKChlc2hlbGwtY29tbWFuZC1ib2R5ICcobmls KSkKLSAgICAgICAgIChlc2hlbGwtdGVzdC1ib2R5ICcobmlsKSkpCisgIGAocHJvZ24KICAg ICAgKCxmdW5jICx0ZXN0ICxib2R5ICxlbHNlKQogICAgICAoZXNoZWxsLWNsb3NlLWhhbmRs ZXMpKSkKIApAQCAtNzQ1LDEwICs3NDIsNiBAQCBlc2hlbGwtc2VwYXJhdGUtY29tbWFuZHMK IDs7ICAgYGNvbmRpdGlvbi1jYXNlJywgYGlmJywgYGxldCcsIGBwcm9nMScsIGBwcm9nbics IGBxdW90ZScsIGBzZXRxJywKIDs7ICAgYHVud2luZC1wcm90ZWN0JywgYW5kIGB3aGlsZScu CiA7OwotOzsgQCBXaGVuIHVzaW5nIGB3aGlsZScsIGZpcnN0IGxldC1iaW5kIGBlc2hlbGwt dGVzdC1ib2R5JyBhbmQKLTs7ICAgYGVzaGVsbC1jb21tYW5kLWJvZHknIHRvICcobmlsKS4g IEVzaGVsbCB1c2VzIHRoZXNlIHZhcmlhYmxlcyB0bwotOzsgICBoYW5kbGUgZXZhbHVhdGlu ZyBpdHMgc3ViZm9ybXMgbXVsdGlwbGUgdGltZXMuCi07OwogOzsgQCBUaGUgdHdvIGBzcGVj aWFsJyB2YXJpYWJsZXMgYXJlIGBlc2hlbGwtY3VycmVudC1oYW5kbGVzJyBhbmQKIDs7ICAg YGVzaGVsbC1jdXJyZW50LXN1YmpvYi1wJy4gIEJpbmQgdGhlbSBsb2NhbGx5IHdpdGggYSBg bGV0JyBpZiB5b3UKIDs7ICAgbmVlZCB0byBjaGFuZ2UgdGhlbS4gIENoYW5nZSB0aGVtIGRp cmVjdGx5IG9ubHkgaWYgeW91ciBpbnRlbnRpb24KQEAgLTExMjgsMjQgKzExMjEsMzQgQEAg ZXNoZWxsLWRvLWV2YWwKICAgICAobGV0ICgoYXJncyAoY2RyIGZvcm0pKSkKICAgICAgIChj b25kCiAgICAgICAgKChlcSAoY2FyIGZvcm0pICd3aGlsZSkKKyAgICAgICAgOzsgV3JhcCB0 aGUgYHdoaWxlJyBmb3JtIHdpdGggbGV0LWJpbmRpbmdzIGZvciB0aGUgY29tbWFuZCBhbmQK KyAgICAgICAgOzsgdGVzdCBib2RpZXMuICBUaGlzIGhlbHBzIHVzIHJlc3VtZSBldmFsdWF0 aW9uIG1pZHdheQorICAgICAgICA7OyB0aHJvdWdoIHRoZSBsb29wLgorICAgICAgICAobGV0 ICgobmV3LWZvcm0gKGNvcHktdHJlZSBgKGxldCAoKGVzaGVsbC0tY29tbWFuZC1ib2R5IG5p bCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlc2hlbGwt LXRlc3QtYm9keSBuaWwpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZXNoZWxsLS13cmFwcGVkLXdoaWxlICxAYXJncykpKSkpCisgICAgICAgICAgKGVzaGVs bC1tYW5pcHVsYXRlICJtb2RpZnlpbmcgd2hpbGUgZm9ybSIKKyAgICAgICAgICAgIChzZXRj YXIgZm9ybSAoY2FyIG5ldy1mb3JtKSkKKyAgICAgICAgICAgIChzZXRjZHIgZm9ybSAoY2Ry IG5ldy1mb3JtKSkpCisgICAgICAgICAgKGVzaGVsbC1kby1ldmFsIGZvcm0gc3luY2hyb25v dXMtcCkpKQorICAgICAgICgoZXEgKGNhciBmb3JtKSAnZXNoZWxsLS13cmFwcGVkLXdoaWxl KQorICAgICAgICAod2hlbiBlc2hlbGwtLWNvbW1hbmQtYm9keQorICAgICAgICAgIChjbC1h c3NlcnQgKG5vdCBzeW5jaHJvbm91cy1wKSkKKyAgICAgICAgICAoZXNoZWxsLWRvLWV2YWwg ZXNoZWxsLS1jb21tYW5kLWJvZHkpCisgICAgICAgICAgKHNldHEgZXNoZWxsLS1jb21tYW5k LWJvZHkgbmlsCisgICAgICAgICAgICAgICAgZXNoZWxsLS10ZXN0LWJvZHkgbmlsKSkKICAg ICAgICAgOzsgYGNvcHktdHJlZScgaXMgbmVlZGVkIGhlcmUgc28gdGhhdCB0aGUgdGVzdCBh cmd1bWVudAotCTs7IGRvZXNuJ3QgZ2V0IG1vZGlmaWVkIGFuZCB0aHVzIGFsd2F5cyB5aWVs ZCB0aGUgc2FtZSByZXN1bHQuCi0JKHdoZW4gKGNhciBlc2hlbGwtY29tbWFuZC1ib2R5KQot CSAgKGNsLWFzc2VydCAobm90IHN5bmNocm9ub3VzLXApKQotCSAgKGVzaGVsbC1kby1ldmFs IChjYXIgZXNoZWxsLWNvbW1hbmQtYm9keSkpCi0JICAoc2V0Y2FyIGVzaGVsbC1jb21tYW5k LWJvZHkgbmlsKQotCSAgKHNldGNhciBlc2hlbGwtdGVzdC1ib2R5IG5pbCkpCi0JKHVubGVz cyAoY2FyIGVzaGVsbC10ZXN0LWJvZHkpCi0gICAgICAgICAgKHNldGNhciBlc2hlbGwtdGVz dC1ib2R5IChjb3B5LXRyZWUgKGNhciBhcmdzKSkpKQotCSh3aGlsZSAoY2FkciAoZXNoZWxs LWRvLWV2YWwgKGNhciBlc2hlbGwtdGVzdC1ib2R5KSBzeW5jaHJvbm91cy1wKSkKLQkgIChz ZXRjYXIgZXNoZWxsLWNvbW1hbmQtYm9keQotICAgICAgICAgICAgICAgICAgKGlmIChjZGRy IGFyZ3MpCi0gICAgICAgICAgICAgICAgICAgICAgYChwcm9nbiAsQChjb3B5LXRyZWUgKGNk ciBhcmdzKSkpCi0gICAgICAgICAgICAgICAgICAgIChjb3B5LXRyZWUgKGNhZHIgYXJncykp KSkKLQkgIChlc2hlbGwtZG8tZXZhbCAoY2FyIGVzaGVsbC1jb21tYW5kLWJvZHkpIHN5bmNo cm9ub3VzLXApCi0JICAoc2V0Y2FyIGVzaGVsbC1jb21tYW5kLWJvZHkgbmlsKQotICAgICAg ICAgIChzZXRjYXIgZXNoZWxsLXRlc3QtYm9keSAoY29weS10cmVlIChjYXIgYXJncykpKSkK LQkoc2V0Y2FyIGVzaGVsbC1jb21tYW5kLWJvZHkgbmlsKSkKKyAgICAgICAgOzsgZG9lc24n dCBnZXQgbW9kaWZpZWQgYW5kIHRodXMgYWx3YXlzIHlpZWxkIHRoZSBzYW1lIHJlc3VsdC4K KyAgICAgICAgKHVubGVzcyBlc2hlbGwtLXRlc3QtYm9keQorICAgICAgICAgIChzZXRxIGVz aGVsbC0tdGVzdC1ib2R5IChjb3B5LXRyZWUgKGNhciBhcmdzKSkpKQorICAgICAgICAod2hp bGUgKGNhZHIgKGVzaGVsbC1kby1ldmFsIGVzaGVsbC0tdGVzdC1ib2R5IHN5bmNocm9ub3Vz LXApKQorICAgICAgICAgIChzZXRxIGVzaGVsbC0tY29tbWFuZC1ib2R5CisgICAgICAgICAg ICAgICAgKGlmIChjZGRyIGFyZ3MpCisgICAgICAgICAgICAgICAgICAgIGAocHJvZ24gLEAo Y29weS10cmVlIChjZHIgYXJncykpKQorICAgICAgICAgICAgICAgICAgKGNvcHktdHJlZSAo Y2FkciBhcmdzKSkpKQorICAgICAgICAgIChlc2hlbGwtZG8tZXZhbCBlc2hlbGwtLWNvbW1h bmQtYm9keSBzeW5jaHJvbm91cy1wKQorICAgICAgICAgIChzZXRxIGVzaGVsbC0tY29tbWFu ZC1ib2R5IG5pbAorICAgICAgICAgICAgICAgIGVzaGVsbC0tdGVzdC1ib2R5IChjb3B5LXRy ZWUgKGNhciBhcmdzKSkpKSkKICAgICAgICAoKGVxIChjYXIgZm9ybSkgJ2lmKQogICAgICAg ICAoZXNoZWxsLW1hbmlwdWxhdGUgImV2YWx1YXRpbmcgaWYgY29uZGl0aW9uIgogICAgICAg ICAgIChzZXRjYXIgYXJncyAoZXNoZWxsLWRvLWV2YWwgKGNhciBhcmdzKSBzeW5jaHJvbm91 cy1wKSkpCi0tIAoyLjI1LjEKCg== --------------OGDtxR37XY4gIW5KgoOD8BAs--