From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 14596 invoked from network); 19 Nov 2022 13:40:26 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 19 Nov 2022 13:40:26 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1668865226; b=aeHlK0m3bbG4pQObeZZ2bU360Xqd40pfO0wf/6tGyxvQmk+z5jYCZ9dGU1JUWSd8zcY1q2oI16 F28+IR689NvAV5oNf8DIh51FYy9QF9G1q1A3EaGlcQFurK7k/oRINLoJbFXSRHwyvTKc0JdZY9 RA8zClJYQVyYoraf9RBlorI0VvGq+T7cwDqeuxpCvTcDFo4X+R19qhIGQ0dse3UtHfPS82M/z9 gyZQ7AG86N+3GewqqLUU2hL6a3cOxqTIGTwotU69d1/sKtI4j5rJsaioAen8D5cjQk46RSHaHr QX+sJ4tyJrtW6LjMzXy/2vfsq2weSIrklBY+1iRFhM72iQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-vk1-f169.google.com) smtp.remote-ip=209.85.221.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1668865226; bh=bspBmMUOXhJzT35Q89TbEszVOYNxuw9B+m6ZsmX5pK8=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature:DKIM-Signature; b=So8asD0uTIf9PcJQlyM6eYr6a1mBfYbhET6L5dAMe9Io7mCrWnr33A0pnMYSM9oaLeRMpEgGUz FLdDdXAwsRQ0ByyWFfzZ6o/jhSoN2MXnilEZEhpc1EQxV+YfscB+OSIWSez8sDL0qvujxFZmYB VQCx4JfHq7fYgHZnyUXhWmuNwkN/0N4OI51Y2deMD6WKCDJDoVG/Ww+5V8E9sP74s5VTmtnqac kMYuQfJS/xaf+F4hFmma6n4wlVp9oSt8zUwQb7fq7F2rJRbNKHPqWV1Yj8CzbbZCQVG7t6upmH 7ArvNL5piP3csbHcZe/JjKOpvj1DzM7izovlTCi5rOa/bA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=02vhkLZ56PwSoL3ZqUTk9Cnp5CVq+jVLY/Z6AyNKdZM=; b=PyJ3mlVhYOSPBBtBhtf3laBblz kPq/xdfWpa4hGh4WBsQQPydpPn/5dyMn0UtHaXagEQCLbDJumpSxzam4k/Nulv9zjrktYRWKVHX03 q+7eH+2CoDi1qG5deV6m2T1Py4iePRXQew5IqnYKHpoxSyydk5oRWdqtcyeQFf7Yv++fBZGqOjhnP 5378jJ/Czie+CJwoLGA61zDpdmJq8K9PoJr+98VcbXgKhoUo8aN4icAWGC+TcQpLSsnSNEv4vIE2S fLmihoTRHIQglO56JXg+BmB0GoCX4g/h1gphH3XFDy+riDOK5DcgfKnpyMiUEmnSgxMSShpqvzw3s 4b6MtpJg==; Received: by zero.zsh.org with local id 1owO53-000MmH-7f; Sat, 19 Nov 2022 13:40:25 +0000 Authentication-Results: zsh.org; iprev=pass (mail-vk1-f169.google.com) smtp.remote-ip=209.85.221.169; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-vk1-f169.google.com ([209.85.221.169]:44727) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1owO4Q-000MRj-Tr; Sat, 19 Nov 2022 13:39:47 +0000 Received: by mail-vk1-f169.google.com with SMTP id g16so3678634vkl.11; Sat, 19 Nov 2022 05:39:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=02vhkLZ56PwSoL3ZqUTk9Cnp5CVq+jVLY/Z6AyNKdZM=; b=XUHu1RDgH7w7e1B0JB+pcL00CxIGpCPNtNJ1ErJQdez3ZT7Xi5QufTBfj3YaBF4j9+ q06dU3PlsenDn6ek/ujs+nnSfjncGCUjn6Jd264Dp7chhBZ+eR1iXpcm2gfWy5Bt1ieo Y7gEDi9Dg0qmSN5PP/QwkzzzPgDmgyTzvZnWkqQg41Hgquyq2QG8Phb7mIig0YiPdjm1 bnYIk2NfLUTfosS/c60aX7IfDSuExKZr9bVSCg11XJYQdNapi2Axh6QMe4Wr+xxjiI5i bcd0jGeVz3A1Djf8l822N7Xq/QxTiBVhpvf3T/eRtOx2BtcXhVtwidto7WNGWFEQJ2W/ MaYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=02vhkLZ56PwSoL3ZqUTk9Cnp5CVq+jVLY/Z6AyNKdZM=; b=fI/YwEriBkVfgjMxdBXi505sQzlN8qXvXPt5wXyEmyJ8yp5gJ2BharS/Op4qKAWfh7 iJOS+VTO7BRvb2E6VcSPOYIPkfR+hr0mpkjMr55bxVAQkzctiR9/fug2LyAVp2FLInLZ 6AnSkftDTItE7xa+wwr4eP24TQ/zmXFPX7G+Deuy64MgQgODAxTtczv/qRVA689QgVZn WaMFi2v2melP3vdwL2vwyARQDF0OeW+rrLGbzETUThz5ztuvAizBD35hTq9MIx5KYVg1 svtK1E4pt4gltkIb1mvuC9az70ju81tJtnZJkkp4OmKGyxgvArekm3zY1118EediIBGl LdKw== X-Gm-Message-State: ANoB5pmwhJXaJLwNsp1pZAIeLAaZm18XZPO4i5weJf5i0jyOIt/4uvFI h2nlEBtO8lIy5SvHr/O2m0OQTNYQxU7mDB6vT0OjGsXb6IY= X-Google-Smtp-Source: AA0mqf4z7iHxNcVTi4UzUXrs4gD+P4FUI8SuakL+co0efr5AfBbDPPl7ShyA3bkMAqmhp0Vu7bkXVfcyG2KaO7+UKQE= X-Received: by 2002:a05:6122:44:b0:3b5:f865:d6b8 with SMTP id q4-20020a056122004400b003b5f865d6b8mr6261759vkn.7.1668865185078; Sat, 19 Nov 2022 05:39:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Philippe Altherr Date: Sat, 19 Nov 2022 14:39:29 +0100 Message-ID: Subject: Re: [PATCH] Fix ERR_EXIT behavior in function calls and "always" statements To: Zsh hackers list Cc: Bart Schaefer , =?UTF-8?Q?Lawrence_Vel=C3=A1zquez?= Content-Type: multipart/mixed; boundary="00000000000089656905edd2f4a5" X-Seq: 51001 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --00000000000089656905edd2f4a5 Content-Type: multipart/alternative; boundary="00000000000089656705edd2f4a3" --00000000000089656705edd2f4a3 Content-Type: text/plain; charset="UTF-8" I have found that there is an error in the implementation of the negation statement. Zsh currently fails to print "done" for the following code: set -e > fn() { true; } > ! fn > echo done $? Fixing the negation statement allows a slightly simpler fix for function calls. Instead of my original patch, I recommend submitting the 4 patches attached here. Philippe On Wed, Nov 16, 2022 at 3:40 PM Philippe Altherr wrote: > The attached patch fixes the ERR_EXIT behavior in function calls and > "always" statements. The patch does the following: > > - Revert the following patches, which are based on an unfortunate > misunderstanding of the expected behavior of ERR_EXIT: > - 50929: fix handling of ERR_RETURN bent by 50928. > > - 50928: fix tests for 50897, mention behavior change in NEWS > > - I kept the localoptions fix in one of the tests. > - 50897: nonzero status of complex commands should trigger > ERR_EXIT > > - Add saving and restoring of local_noerrexit in doshfunc in exec.c > - This fixes the ERR_EXIT behavior in function calls. > - Add "this_noerrexit = 1;" at the very end of exectry in loop.c > - This makes "always" statements compliant with the exception 3 of > the POSIX specification of "set -e". > - Add new tests in C03traps.ztst > > Philippe > > --00000000000089656705edd2f4a3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I have found that there is an error in the implementation = of the negation statement. Zsh currently fails to print "done" fo= r the following code:

set -e
fn() { true; }
! fn
echo done $?

Fixing the negation statement allows a slightly simpler fi= x for function calls. Instead of my original patch, I recommend=C2=A0submit= ting the 4 patches attached here.

Philippe



On Wed, Nov 16, 2022 at 3:40 PM Philippe Alth= err <philippe.altherr@gmai= l.com> wrote:
The attached patch fixes the ERR_EXIT behavior in fun= ction calls and "always" statements. The patch does the following= :
=
  • Add saving and restoring of local_noerrexit in doshfunc=C2=A0in exec.c<= /li>
    • This fixes the ERR_EXIT behavior in function calls.
    Add=C2=A0"this_noerrexit =3D 1;" at the very end of exectry in = loop.c
    • This makes "always" statements compliant with = the exception 3 of the POSIX specification of "set -e".
    =
  • Add new tests in=C2=A0C03traps.ztst
  • Philippe
    <= div>
    --00000000000089656705edd2f4a3-- --00000000000089656905edd2f4a5 Content-Type: text/plain; charset="US-ASCII"; name="patch-01-revert-mistaken-errexit-patches.txt" Content-Disposition: attachment; filename="patch-01-revert-mistaken-errexit-patches.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lanz5ljv0 ZGlmZiAtLWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IDljMjgxNjliYi4uY2RhZmQxZmY1IDEwMDY0 NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTQsMTUgKzQsNiBAQCBDSEFOR0VTIEZST00gUFJF VklPVVMgVkVSU0lPTlMgT0YgWlNICiAKIE5vdGUgYWxzbyB0aGUgbGlzdCBvZiBpbmNvbXBhdGli aWxpdGllcyBpbiB0aGUgUkVBRE1FIGZpbGUuCiAKLUNoYW5nZXMgc2luY2UgNS45Ci0tLS0tLS0t LS0tLS0tLS0tLQotCi1IYW5kbGluZyBvZiBFUlJfRVhJVCBpcyBjb3JyZWN0ZWQgd2hlbiB0aGUg ZmluYWwgc3RhdHVzIG9mIGEgc3RydWN0dXJlZAotY29tbWFuZCAoZm9yLCBzZWxlY3QsIHdoaWxl LCByZXBlYXQsIGlmLCBjYXNlLCBvciBhIGxpc3QgaW4gYnJhY2VzKSBpcwotbm9uemVyby4gIFRv IGJlIGNvbXBhdGlibGUgd2l0aCBvdGhlciBzaGVsbHMsICJ6c2ggLWUiIG5vdyBleGl0cyBpbgot dGhvc2UgY2lyY3Vtc3RhbmNlcywgd2hlcmVhcyBwcmV2aW91cyB2ZXJzaW9ucyBkaWQgbm90LiAg VGhpcyBkb2VzIG5vdAotYWZmZWN0IHRoZSBoYW5kbGluZyBvZiBub256ZXJvIHN0YXR1cyB3aXRo aW4gY29uZGl0aW9uYWwgc3RhdGVtZW50cy4KLQogQ2hhbmdlcyBzaW5jZSA1LjguMQogLS0tLS0t LS0tLS0tLS0tLS0tLQogCmRpZmYgLS1naXQgYS9TcmMvZXhlYy5jIGIvU3JjL2V4ZWMuYwppbmRl eCBjZTBjMWYxYWQuLmIwZjQyYWU2NyAxMDA2NDQKLS0tIGEvU3JjL2V4ZWMuYworKysgYi9TcmMv ZXhlYy5jCkBAIC00NTEsNyArNDUxLDcgQEAgZXhlY2N1cnNoKEVzdGF0ZSBzdGF0ZSwgaW50IGRv X2V4ZWMpCiAgICAgY21kcG9wKCk7CiAKICAgICBzdGF0ZS0+cGMgPSBlbmQ7Ci0gICAgdGhpc19u b2VycmV4aXQgPSAoV0NfU1VCTElTVF9UWVBFKCplbmQpICE9IFdDX1NVQkxJU1RfRU5EKTsKKyAg ICB0aGlzX25vZXJyZXhpdCA9IDE7CiAKICAgICByZXR1cm4gbGFzdHZhbDsKIH0KQEAgLTE0NDIs OCArMTQ0Miw2IEBAIGV4ZWNsaXN0KEVzdGF0ZSBzdGF0ZSwgaW50IGRvbnRfY2hhbmdlX2pvYiwg aW50IGV4aXRpbmcpCiAJCSAgICBleGVjc2ltcGxlKHN0YXRlKTsKIAkJZWxzZQogCQkgICAgZXhl Y3BsaW5lKHN0YXRlLCBjb2RlLCBsdHlwZSwgKGx0eXBlICYgWl9FTkQpICYmIGV4aXRpbmcpOwot CQlpZiAoIWxvY2FsbGV2ZWwgfHwgdW5zZXQoRVJSUkVUVVJOKSkKLQkJICAgIHRoaXNfbm9lcnJl eGl0ID0gbm9lcnJleGl0OwogCQlzdGF0ZS0+cGMgPSBuZXh0OwogCQlnb3RvIHN1Ymxpc3RfZG9u ZTsKIAkJYnJlYWs7CmRpZmYgLS1naXQgYS9TcmMvbG9vcC5jIGIvU3JjL2xvb3AuYwppbmRleCBi ZTUyNjEzNjkuLmRiNWIzZTA5NyAxMDA2NDQKLS0tIGEvU3JjL2xvb3AuYworKysgYi9TcmMvbG9v cC5jCkBAIC0yMDgsNyArMjA4LDcgQEAgZXhlY2ZvcihFc3RhdGUgc3RhdGUsIGludCBkb19leGVj KQogICAgIGxvb3BzLS07CiAgICAgc2ltcGxlX3BsaW5lID0gb2xkX3NpbXBsZV9wbGluZTsKICAg ICBzdGF0ZS0+cGMgPSBlbmQ7Ci0gICAgdGhpc19ub2VycmV4aXQgPSAoV0NfU1VCTElTVF9UWVBF KCplbmQpICE9IFdDX1NVQkxJU1RfRU5EKTsKKyAgICB0aGlzX25vZXJyZXhpdCA9IDE7CiAgICAg cmV0dXJuIGxhc3R2YWw7CiB9CiAKQEAgLTMzNiw3ICszMzYsNyBAQCBleGVjc2VsZWN0KEVzdGF0 ZSBzdGF0ZSwgVU5VU0VEKGludCBkb19leGVjKSkKICAgICBsb29wcy0tOwogICAgIHNpbXBsZV9w bGluZSA9IG9sZF9zaW1wbGVfcGxpbmU7CiAgICAgc3RhdGUtPnBjID0gZW5kOwotICAgIHRoaXNf bm9lcnJleGl0ID0gKFdDX1NVQkxJU1RfVFlQRSgqZW5kKSAhPSBXQ19TVUJMSVNUX0VORCk7Cisg ICAgdGhpc19ub2VycmV4aXQgPSAxOwogICAgIHJldHVybiBsYXN0dmFsOwogfQogCkBAIC00Nzgs NyArNDc4LDcgQEAgZXhlY3doaWxlKEVzdGF0ZSBzdGF0ZSwgVU5VU0VEKGludCBkb19leGVjKSkK ICAgICBwb3BoZWFwKCk7CiAgICAgbG9vcHMtLTsKICAgICBzdGF0ZS0+cGMgPSBlbmQ7Ci0gICAg dGhpc19ub2VycmV4aXQgPSAoV0NfU1VCTElTVF9UWVBFKCplbmQpICE9IFdDX1NVQkxJU1RfRU5E KTsKKyAgICB0aGlzX25vZXJyZXhpdCA9IDE7CiAgICAgcmV0dXJuIGxhc3R2YWw7CiB9CiAKQEAg LTUzMiw3ICs1MzIsNyBAQCBleGVjcmVwZWF0KEVzdGF0ZSBzdGF0ZSwgVU5VU0VEKGludCBkb19l eGVjKSkKICAgICBsb29wcy0tOwogICAgIHNpbXBsZV9wbGluZSA9IG9sZF9zaW1wbGVfcGxpbmU7 CiAgICAgc3RhdGUtPnBjID0gZW5kOwotICAgIHRoaXNfbm9lcnJleGl0ID0gKFdDX1NVQkxJU1Rf VFlQRSgqZW5kKSAhPSBXQ19TVUJMSVNUX0VORCk7CisgICAgdGhpc19ub2VycmV4aXQgPSAxOwog ICAgIHJldHVybiBsYXN0dmFsOwogfQogCkBAIC01ODcsNyArNTg3LDcgQEAgZXhlY2lmKEVzdGF0 ZSBzdGF0ZSwgaW50IGRvX2V4ZWMpCiAJICAgIGxhc3R2YWwgPSAwOwogICAgIH0KICAgICBzdGF0 ZS0+cGMgPSBlbmQ7Ci0gICAgdGhpc19ub2VycmV4aXQgPSAoV0NfU1VCTElTVF9UWVBFKCplbmQp ICE9IFdDX1NVQkxJU1RfRU5EKTsKKyAgICB0aGlzX25vZXJyZXhpdCA9IDE7CiAKICAgICByZXR1 cm4gbGFzdHZhbDsKIH0KQEAgLTcwMSw3ICs3MDEsNyBAQCBleGVjY2FzZShFc3RhdGUgc3RhdGUs IGludCBkb19leGVjKQogCiAgICAgaWYgKCFhbnlwYXRvaykKIAlsYXN0dmFsID0gMDsKLSAgICB0 aGlzX25vZXJyZXhpdCA9IChXQ19TVUJMSVNUX1RZUEUoKmVuZCkgIT0gV0NfU1VCTElTVF9FTkQp OworICAgIHRoaXNfbm9lcnJleGl0ID0gMTsKIAogICAgIHJldHVybiBsYXN0dmFsOwogfQpkaWZm IC0tZ2l0IGEvVGVzdC9DMDN0cmFwcy56dHN0IGIvVGVzdC9DMDN0cmFwcy56dHN0CmluZGV4IDVj YzQ1ZTJkZS4uYTdhMDQwZDcwIDEwMDY0NAotLS0gYS9UZXN0L0MwM3RyYXBzLnp0c3QKKysrIGIv VGVzdC9DMDN0cmFwcy56dHN0CkBAIC03MjYsNyArNzI2LDggQEAgRjpNdXN0IGJlIHRlc3RlZCB3 aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ugb3IgZnVuY3Rpb24KICAg ZG9uZQogICBwcmludCBPSwogICApCi0xOkVSUl9FWElUIHRyaWdnZXJlZCBieSBzdGF0dXMgMSBh dCBlbmQgb2YgZm9yCiswOkVSUl9FWElUIG5vdCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEgYXQgZW5k IG9mIGZvcgorPk9LCiAKICAgKHNldG9wdCBlcnJfZXhpdAogICBpbnRlZ2VyIHg9MApAQCAtNzM1 LDcgKzczNiw4IEBAIEY6TXVzdCBiZSB0ZXN0ZWQgd2l0aCBhIHRvcC1sZXZlbCBzY3JpcHQgcmF0 aGVyIHRoYW4gc291cmNlIG9yIGZ1bmN0aW9uCiAgIGRvbmUKICAgcHJpbnQgT0sKICAgKQotMTpF UlJfRVhJVCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEgYXQgZW5kIG9mIHdoaWxlCiswOkVSUl9FWElU IG5vdCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEgYXQgZW5kIG9mIHdoaWxlCis+T0sKIAogICAoc2V0 b3B0IGVycl9leGl0CiAgIHJlcGVhdCAxOyBkbwpAQCAtNzQzLDcgKzc0NSw4IEBAIEY6TXVzdCBi ZSB0ZXN0ZWQgd2l0aCBhIHRvcC1sZXZlbCBzY3JpcHQgcmF0aGVyIHRoYW4gc291cmNlIG9yIGZ1 bmN0aW9uCiAgIGRvbmUKICAgcHJpbnQgT0sKICAgKQotMTpFUlJfRVhJVCB0cmlnZ2VyZWQgYnkg c3RhdHVzIDEgYXQgZW5kIG9mIHJlcGVhdAorMDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0 YXR1cyAxIGF0IGVuZCBvZiByZXBlYXQKKz5PSwogCiAgIChzZXRvcHQgZXJyX2V4aXQKICAgaWYg dHJ1ZTsgdGhlbgpAQCAtNzUxLDcgKzc1NCw4IEBAIEY6TXVzdCBiZSB0ZXN0ZWQgd2l0aCBhIHRv cC1sZXZlbCBzY3JpcHQgcmF0aGVyIHRoYW4gc291cmNlIG9yIGZ1bmN0aW9uCiAgIGZpCiAgIHBy aW50IE9LCiAgICkKLTE6RVJSX0VYSVQgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0IGVuZCBvZiBp ZgorMDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0IGVuZCBvZiBpZgorPk9L CiAKICAgKHNldG9wdCBlcnJfZXhpdAogICB7CkBAIC03NTksNyArNzYzLDggQEAgRjpNdXN0IGJl IHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ugb3IgZnVu Y3Rpb24KICAgfQogICBwcmludCBPSwogICApCi0xOkVSUl9FWElUIHRyaWdnZXJlZCBieSBzdGF0 dXMgMSBhdCBlbmQgb2YgeyB9CiswOkVSUl9FWElUIG5vdCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEg YXQgZW5kIG9mIHsgfQorPk9LCiAKICAgdW5zZXRvcHQgZXJyX2V4aXQgZXJyX3JldHVybgogICAo c2V0b3B0IGVycl9leGl0Cg== --00000000000089656905edd2f4a5 Content-Type: text/plain; charset="US-ASCII"; name="patch-02-fix-always-statement.txt" Content-Disposition: attachment; filename="patch-02-fix-always-statement.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lanz62ng1 ZGlmZiAtLWdpdCBhL1NyYy9sb29wLmMgYi9TcmMvbG9vcC5jCmluZGV4IGRiNWIzZTA5Ny4uN2Mz ZTA0YjhhIDEwMDY0NAotLS0gYS9TcmMvbG9vcC5jCisrKyBiL1NyYy9sb29wLmMKQEAgLTc5Myw2 ICs3OTMsNyBAQCBleGVjdHJ5KEVzdGF0ZSBzdGF0ZSwgaW50IGRvX2V4ZWMpCiAgICAgY21kcG9w KCk7CiAgICAgcG9waGVhcCgpOwogICAgIHN0YXRlLT5wYyA9IGVuZDsKKyAgICB0aGlzX25vZXJy ZXhpdCA9IDE7CiAKICAgICByZXR1cm4gZW5kdmFsOwogfQpkaWZmIC0tZ2l0IGEvVGVzdC9DMDN0 cmFwcy56dHN0IGIvVGVzdC9DMDN0cmFwcy56dHN0CmluZGV4IGE3YTA0MGQ3MC4uNDcxOWRmZDU3 IDEwMDY0NAotLS0gYS9UZXN0L0MwM3RyYXBzLnp0c3QKKysrIGIvVGVzdC9DMDN0cmFwcy56dHN0 CkBAIC03MjEsMjIgKzcyMSwxOSBAQCBGOk11c3QgYmUgdGVzdGVkIHdpdGggYSB0b3AtbGV2ZWwg c2NyaXB0IHJhdGhlciB0aGFuIHNvdXJjZSBvciBmdW5jdGlvbgogPkdvb2QKIAogICAoc2V0b3B0 IGVycl9leGl0Ci0gIGZvciB4IGluIHk7IGRvCi0gICAgZmFsc2UgJiYgdHJ1ZQotICBkb25lCisg IGZhbHNlICYmIHRydWUKICAgcHJpbnQgT0sKICAgKQotMDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVk IGJ5IHN0YXR1cyAxIGF0IGVuZCBvZiBmb3IKKzA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSAi ZmFsc2UgJiYgdHJ1ZSIKID5PSwogCiAgIChzZXRvcHQgZXJyX2V4aXQKLSAgaW50ZWdlciB4PTAK LSAgd2hpbGUgKCggISB4KysgKSk7IGRvCisgIGZvciB4IGluIHk7IGRvCiAgICAgZmFsc2UgJiYg dHJ1ZQogICBkb25lCiAgIHByaW50IE9LCiAgICkKLTA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBi eSBzdGF0dXMgMSBhdCBlbmQgb2Ygd2hpbGUKKzA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSBz dGF0dXMgMSBhdCBlbmQgb2YgZm9yCiA+T0sKIAogICAoc2V0b3B0IGVycl9leGl0CkBAIC03NTUs NiArNzUyLDMxIEBAIEY6TXVzdCBiZSB0ZXN0ZWQgd2l0aCBhIHRvcC1sZXZlbCBzY3JpcHQgcmF0 aGVyIHRoYW4gc291cmNlIG9yIGZ1bmN0aW9uCiAgIHByaW50IE9LCiAgICkKIDA6RVJSX0VYSVQg bm90IHRyaWdnZXJlZCBieSBzdGF0dXMgMSBhdCBlbmQgb2YgaWYKKz5PSworCisgIChzZXRvcHQg ZXJyX2V4aXQKKyAgbG9vcD10cnVlCisgIHdoaWxlIHByaW50IENPTkQ7ICRsb29wOyBkbworICAg IGxvb3A9ZmFsc2UKKyAgICBmYWxzZSAmJiB0cnVlCisgIGRvbmUKKyAgcHJpbnQgT0sKKyAgKQor MDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0IGVuZCBvZiB3aGlsZQorPkNP TkQKKz5DT05ECis+T0sKKworICAoc2V0b3B0IGVycl9leGl0CisgIHsKKyAgICBmYWxzZSAmJiB0 cnVlCisgIH0gYWx3YXlzIHsKKyAgICBwcmludCBBTFdBWVMKKyAgfQorICBwcmludCBPSworICAp CiswOkVSUl9FWElUIG5vdCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEgYXQgZW5kIG9mIGFsd2F5cwor PkFMV0FZUwogPk9LCiAKICAgKHNldG9wdCBlcnJfZXhpdAo= --00000000000089656905edd2f4a5 Content-Type: text/plain; charset="US-ASCII"; name="patch-03-fix-negation-statement.txt" Content-Disposition: attachment; filename="patch-03-fix-negation-statement.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lanz6gkv2 ZGlmZiAtLWdpdCBhL1NyYy9leGVjLmMgYi9TcmMvZXhlYy5jCmluZGV4IGIwZjQyYWU2Ny4uZDg1 MDFjYTY4IDEwMDY0NAotLS0gYS9TcmMvZXhlYy5jCisrKyBiL1NyYy9leGVjLmMKQEAgLTYzLDcg KzYzLDEwIEBAIHR5cGVkZWYgc3RydWN0IGZ1bmNzYXZlICpGdW5jc2F2ZTsKIC8qKi8KIGludCBu b2VycmV4aXQ7CiAKLS8qIHVzZWQgdG8gc3VwcHJlc3MgRVJSRVhJVCBvciBFUlJSRVRVUk4gZm9y IG9uZSBvY2N1cnJlbmNlOiAwIG9yIDEgKi8KKy8qCisgKiB1c2VkIHRvIHN1cHByZXNzIEVSUkVY SVQgYW5kIEVSUlJFVFVSTiBmb3IgdGhlIGNvbW1hbmQgdW5kZXIgZXZhbHVhdGlvbi4KKyAqIDAg b3IgMQorICovCiAKIC8qKi8KIGludCB0aGlzX25vZXJyZXhpdDsKQEAgLTE0MjksMTAgKzE0MzIs NyBAQCBleGVjbGlzdChFc3RhdGUgc3RhdGUsIGludCBkb250X2NoYW5nZV9qb2IsIGludCBleGl0 aW5nKQogCSAgICBpZiAoIW9sZG5vZXJyZXhpdCkKIAkJbm9lcnJleGl0ID0gaXNlbmQgPyAwIDog Tk9FUlJFWElUX0VYSVQgfCBOT0VSUkVYSVRfUkVUVVJOOwogCSAgICBpZiAoV0NfU1VCTElTVF9G TEFHUyhjb2RlKSAmIFdDX1NVQkxJU1RfTk9UKSB7Ci0JCS8qIHN1cHByZXNzIGVycmV4aXQgZm9y ICIhIHRoaXNfY29tbWFuZCIgKi8KLQkJaWYgKGlzZW5kKQotCQkgICAgdGhpc19ub2VycmV4aXQg PSAxOwotCQkvKiBzdXBwcmVzcyBlcnJleGl0IGZvciAhIDxsaXN0LW9mLXNoZWxsLWNvbW1hbmRz PiAqLworCQkvKiBzdXBwcmVzcyBlcnJleGl0IGZvciB0aGUgY29tbWFuZHMgaW4gISA8bGlzdC1v Zi1jb21tYW5kcz4gKi8KIAkJbm9lcnJleGl0ID0gTk9FUlJFWElUX0VYSVQgfCBOT0VSUkVYSVRf UkVUVVJOOwogCSAgICB9CiAJICAgIHN3aXRjaCAoV0NfU1VCTElTVF9UWVBFKGNvZGUpKSB7CkBA IC0xNDQzLDYgKzE0NDMsOSBAQCBleGVjbGlzdChFc3RhdGUgc3RhdGUsIGludCBkb250X2NoYW5n ZV9qb2IsIGludCBleGl0aW5nKQogCQllbHNlCiAJCSAgICBleGVjcGxpbmUoc3RhdGUsIGNvZGUs IGx0eXBlLCAobHR5cGUgJiBaX0VORCkgJiYgZXhpdGluZyk7CiAJCXN0YXRlLT5wYyA9IG5leHQ7 CisJCS8qIHN1cHByZXNzIGVycmV4aXQgZm9yIHRoZSBjb21tYW5kICIhIC4uLiIgKi8KKwkJaWYg KFdDX1NVQkxJU1RfRkxBR1MoY29kZSkgJiBXQ19TVUJMSVNUX05PVCkKKwkJICB0aGlzX25vZXJy ZXhpdCA9IDE7CiAJCWdvdG8gc3VibGlzdF9kb25lOwogCQlicmVhazsKIAkgICAgY2FzZSBXQ19T VUJMSVNUX0FORDoKZGlmZiAtLWdpdCBhL1Rlc3QvQzAzdHJhcHMuenRzdCBiL1Rlc3QvQzAzdHJh cHMuenRzdAppbmRleCA0NzE5ZGZkNTcuLjA4ZTI0YTMyZSAxMDA2NDQKLS0tIGEvVGVzdC9DMDN0 cmFwcy56dHN0CisrKyBiL1Rlc3QvQzAzdHJhcHMuenRzdApAQCAtNzIwLDYgKzcyMCwyMSBAQCBG Ok11c3QgYmUgdGVzdGVkIHdpdGggYSB0b3AtbGV2ZWwgc2NyaXB0IHJhdGhlciB0aGFuIHNvdXJj ZSBvciBmdW5jdGlvbgogMDpFUlJfUkVUVVJOIGluICJlbHNlIiBicmFuY2ggaW4gbmVzdGVkIGZ1 bmN0aW9uCiA+R29vZAogCisgIChzZXRvcHQgZXJyX2V4aXQKKyAgISB0cnVlCisgIHByaW50IE9L CisgICkKKzA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSAiISB0cnVlIgorPk9LCisKKyAgKHNl dG9wdCBlcnJfZXhpdAorICBmbigpIHsgdHJ1ZSB9CisgICEgZm4KKyAgcHJpbnQgT0sKKyAgKQor MDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5ICIhIGZuIgorPk9LCisKICAgKHNldG9wdCBlcnJf ZXhpdAogICBmYWxzZSAmJiB0cnVlCiAgIHByaW50IE9LCg== --00000000000089656905edd2f4a5 Content-Type: text/plain; charset="US-ASCII"; name="patch-04-fix-function-call.txt" Content-Disposition: attachment; filename="patch-04-fix-function-call.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lanz7x7e3 ZGlmZiAtLWdpdCBhL1NyYy9leGVjLmMgYi9TcmMvZXhlYy5jCmluZGV4IGQ4NTAxY2E2OC4uNDNk ZjgyMTFhIDEwMDY0NAotLS0gYS9TcmMvZXhlYy5jCisrKyBiL1NyYy9leGVjLmMKQEAgLTU5MzIs MTUgKzU5MzIsNiBAQCBkb3NoZnVuYyhTaGZ1bmMgc2hmdW5jLCBMaW5rTGlzdCBkb3NoYXJncywg aW50IG5vcmV0dXJudmFsKQogCSAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGZvcmNlZCB0byByZXR1 cm4uCiAJICAgICAqLwogCSAgICByZXRmbGFnID0gMDsKLQkgICAgLyoKLQkgICAgICogVGhlIGNh bGxpbmcgZnVuY3Rpb24gaXNuJ3QgbmVjZXNzYXJpbHkgZm9yY2VkIHRvIHJldHVybiwKLQkgICAg ICogYnV0IGl0IHNob3VsZCBiZSBtYWRlIHNlbnNpdGl2ZSB0byBFUlJfRVhJVCBhbmQKLQkgICAg ICogRVJSX1JFVFVSTiBhcyB0aGUgYXNzdW1wdGlvbnMgd2UgbWFkZSBhdCB0aGUgZW5kIG9mCi0J ICAgICAqIGNvbnN0cnVjdHMgd2l0aGluIHRoaXMgZnVuY3Rpb24gbm8gbG9uZ2VyIGFwcGx5LiAg SWYKLQkgICAgICogdGhlcmUgYXJlIGNhc2VzIHdoZXJlIHRoaXMgaXMgbm90IHRydWUsIHRoZXkg bmVlZCBhZGRpbmcKLQkgICAgICogdG8gQzAzdHJhcHMuenRzdC4KLQkgICAgICovCi0JICAgIHRo aXNfbm9lcnJleGl0ID0gMDsKIAkgICAgYnJlYWtzID0gZnVuY3NhdmUtPmJyZWFrczsKIAl9CiAJ ZnJlZWFycmF5KHBwYXJhbXMpOwpAQCAtNjAxMCw2ICs2MDAxLDcgQEAgZG9zaGZ1bmMoU2hmdW5j IHNoZnVuYywgTGlua0xpc3QgZG9zaGFyZ3MsIGludCBub3JldHVybnZhbCkKIAkgICAgdHJhcF9y ZXR1cm4rKzsKIAlyZXQgPSBsYXN0dmFsOwogCW5vZXJyZXhpdCA9IGZ1bmNzYXZlLT5ub2VycmV4 aXQ7CisJdGhpc19ub2VycmV4aXQgPSAwOwogCWlmIChub3JldHVybnZhbCkgewogCSAgICBsYXN0 dmFsID0gZnVuY3NhdmUtPmxhc3R2YWw7CiAJICAgIG51bXBpcGVzdGF0cyA9IGZ1bmNzYXZlLT5u dW1waXBlc3RhdHM7CmRpZmYgLS1naXQgYS9UZXN0L0MwM3RyYXBzLnp0c3QgYi9UZXN0L0MwM3Ry YXBzLnp0c3QKaW5kZXggMDhlMjRhMzJlLi5hODg4MDY3M2YgMTAwNjQ0Ci0tLSBhL1Rlc3QvQzAz dHJhcHMuenRzdAorKysgYi9UZXN0L0MwM3RyYXBzLnp0c3QKQEAgLTc0Miw2ICs3NDIsMTUgQEAg RjpNdXN0IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhhbiBzb3Vy Y2Ugb3IgZnVuY3Rpb24KIDA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSAiZmFsc2UgJiYgdHJ1 ZSIKID5PSwogCisgIChzZXRvcHQgZXJyX2V4aXQKKyAgZm4oKSB7CisgICAgZmFsc2UgJiYgdHJ1 ZQorICB9CisgIGZuCisgIHByaW50IE9LCisgICkKKzE6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBi eSAiZmFsc2UgJiYgdHJ1ZSIgYnV0IGJ5IHJldHVybiBmcm9tIGZuCisKICAgKHNldG9wdCBlcnJf ZXhpdAogICBmb3IgeCBpbiB5OyBkbwogICAgIGZhbHNlICYmIHRydWUKQEAgLTc1MSw2ICs3NjAs MTcgQEAgRjpNdXN0IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhh biBzb3VyY2Ugb3IgZnVuY3Rpb24KIDA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSBzdGF0dXMg MSBhdCBlbmQgb2YgZm9yCiA+T0sKIAorICAoc2V0b3B0IGVycl9leGl0CisgIGZuKCkgeworICAg IGZvciB4IGluIHk7IGRvCisgICAgICBmYWxzZSAmJiB0cnVlCisgICAgZG9uZQorICB9CisgIGZu CisgIHByaW50IE9LCisgICkKKzE6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSBzdGF0dXMgMSBh dCBlbmQgb2YgZm9yIGJ1dCBieSByZXR1cm4gZnJvbSBmbgorCiAgIChzZXRvcHQgZXJyX2V4aXQK ICAgcmVwZWF0IDE7IGRvCiAgICAgZmFsc2UgJiYgdHJ1ZQpAQCAtNzYwLDYgKzc4MCwxNyBAQCBG Ok11c3QgYmUgdGVzdGVkIHdpdGggYSB0b3AtbGV2ZWwgc2NyaXB0IHJhdGhlciB0aGFuIHNvdXJj ZSBvciBmdW5jdGlvbgogMDpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0IGVu ZCBvZiByZXBlYXQKID5PSwogCisgIChzZXRvcHQgZXJyX2V4aXQKKyAgZm4oKSB7CisgICAgcmVw ZWF0IDE7IGRvCisgICAgICBmYWxzZSAmJiB0cnVlCisgICAgZG9uZQorICB9CisgIGZuCisgIHBy aW50IE9LCisgICkKKzE6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSBzdGF0dXMgMSBhdCBlbmQg b2YgcmVwZWF0IGJ1dCBieSByZXR1cm4gZnJvbSBmbgorCiAgIChzZXRvcHQgZXJyX2V4aXQKICAg aWYgdHJ1ZTsgdGhlbgogICAgIGZhbHNlICYmIHRydWUKQEAgLTc2OSw2ICs4MDAsMTcgQEAgRjpN dXN0IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ug b3IgZnVuY3Rpb24KIDA6RVJSX0VYSVQgbm90IHRyaWdnZXJlZCBieSBzdGF0dXMgMSBhdCBlbmQg b2YgaWYKID5PSwogCisgIChzZXRvcHQgZXJyX2V4aXQKKyAgZm4oKSB7CisgICAgaWYgdHJ1ZTsg dGhlbgorICAgICAgZmFsc2UgJiYgdHJ1ZQorICAgIGZpCisgIH0KKyAgZm4KKyAgcHJpbnQgT0sK KyAgKQorMTpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0IGVuZCBvZiBpZiBi dXQgYnkgcmV0dXJuIGZyb20gZm4KKwogICAoc2V0b3B0IGVycl9leGl0CiAgIGxvb3A9dHJ1ZQog ICB3aGlsZSBwcmludCBDT05EOyAkbG9vcDsgZG8KQEAgLTc4Miw2ICs4MjQsMjEgQEAgRjpNdXN0 IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNjcmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ugb3Ig ZnVuY3Rpb24KID5DT05ECiA+T0sKIAorICAoc2V0b3B0IGVycl9leGl0CisgIGZuKCkgeworICAg IGxvb3A9dHJ1ZQorICAgIHdoaWxlIHByaW50IENPTkQ7ICRsb29wOyBkbworICAgICAgbG9vcD1m YWxzZQorICAgICAgZmFsc2UgJiYgdHJ1ZQorICAgIGRvbmUKKyAgfQorICBmbgorICBwcmludCBP SworICApCisxOkVSUl9FWElUIG5vdCB0cmlnZ2VyZWQgYnkgc3RhdHVzIDEgYXQgZW5kIG9mIHdo aWxlIGJ1dCBieSByZXR1cm4gZnJvbSBmbgorPkNPTkQKKz5DT05ECisKICAgKHNldG9wdCBlcnJf ZXhpdAogICB7CiAgICAgZmFsc2UgJiYgdHJ1ZQpAQCAtNzk0LDYgKzg1MSwyMCBAQCBGOk11c3Qg YmUgdGVzdGVkIHdpdGggYSB0b3AtbGV2ZWwgc2NyaXB0IHJhdGhlciB0aGFuIHNvdXJjZSBvciBm dW5jdGlvbgogPkFMV0FZUwogPk9LCiAKKyAgKHNldG9wdCBlcnJfZXhpdAorICBmbigpIHsKKyAg ICB7CisgICAgICBmYWxzZSAmJiB0cnVlCisgICAgfSBhbHdheXMgeworICAgICAgcHJpbnQgQUxX QVlTCisgICAgfQorICB9CisgIGZuCisgIHByaW50IE9LCisgICkKKzE6RVJSX0VYSVQgbm90IHRy aWdnZXJlZCBieSBzdGF0dXMgMSBhdCBlbmQgb2YgYWx3YXlzIGJ1dCBieSByZXR1cm4gZnJvbSBm bgorPkFMV0FZUworCiAgIChzZXRvcHQgZXJyX2V4aXQKICAgewogICAgIGZhbHNlICYmIHRydWUK QEAgLTgwMyw2ICs4NzQsMTcgQEAgRjpNdXN0IGJlIHRlc3RlZCB3aXRoIGEgdG9wLWxldmVsIHNj cmlwdCByYXRoZXIgdGhhbiBzb3VyY2Ugb3IgZnVuY3Rpb24KIDA6RVJSX0VYSVQgbm90IHRyaWdn ZXJlZCBieSBzdGF0dXMgMSBhdCBlbmQgb2YgeyB9CiA+T0sKIAorICAoc2V0b3B0IGVycl9leGl0 CisgIGZuKCkgeworICAgIHsKKyAgICAgIGZhbHNlICYmIHRydWUKKyAgICB9CisgIH0KKyAgZm4K KyAgcHJpbnQgT0sKKyAgKQorMTpFUlJfRVhJVCBub3QgdHJpZ2dlcmVkIGJ5IHN0YXR1cyAxIGF0 IGVuZCBvZiB7IH0gYnV0IGJ5IHJldHVybiBmcm9tIGZuCisKICAgdW5zZXRvcHQgZXJyX2V4aXQg ZXJyX3JldHVybgogICAoc2V0b3B0IGVycl9leGl0CiAgIGZvciB4IGluIHk7IGRvCg== --00000000000089656905edd2f4a5--