From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from primenet.com.au (ns1.primenet.com.au [203.24.36.2]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 83166d3c for ; Tue, 25 Dec 2018 20:45:19 +0000 (UTC) Received: (qmail 22383 invoked by alias); 25 Dec 2018 20:45:02 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 43945 Received: (qmail 22169 invoked by uid 1010); 25 Dec 2018 20:45:02 -0000 X-Qmail-Scanner-Diagnostics: from kahlil.inlv.org by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.100.2/25112. spamassassin: 3.4.2. Clear:RC:0(37.59.109.123):SA:0(-1.9/5.0):. Processed in 3.409919 secs); 25 Dec 2018 20:45:02 -0000 X-Envelope-From: martijn@inlv.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Subject: 'wait' exit status and warnings [was: The big kre zsh bug report] To: Bart Schaefer , Zsh hackers list References: <18f684a8-2fec-4ebe-a63e-cf6688ae519f@inlv.org> From: Martijn Dekker Message-ID: Date: Tue, 25 Dec 2018 20:44:51 +0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------9BACB28715F7FBEF3A7A7A89" Content-Language: en-GB --------------9BACB28715F7FBEF3A7A7A89 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Op 21-12-18 om 07:53 schreef Bart Schaefer: > On Thu, Dec 20, 2018 at 2:48 PM Martijn Dekker wrote: >>> tc-so:Executing command [ zsh --emulate sh -c wait 1 ] >>> tc-se:Fail: incorrect exit status: 1, expected: 127 > > Probably easily fixed. Well, kind of. I got as far as the attached patch, but it turns out there is another bug with 'wait': '(wait %1)' in a subshell quietly returns status 0 even if there is no such job. ('(wait %2)' and up are ok.) I can't figure out how to solve that bug, and perhaps that's for another patch anyway, so there is one regression test failure in the attached patch (in the second test, where 'wait' is run in a subshell with POSIX_BUILTINS set). I also suppressed the warnings for POSIX_BUILTINS. As Robert Elz already suspected, POSIX says: "If one or more pid operands are specified that represent unknown process IDs, wait shall treat them as if they were known process IDs that exited with exit status 127."[*] (note that 'pid operands' include job specs like %1). That means no warnings. (bash prints warnings in posix mode too, but, according to my testing, no other shell does.) Thanks, - M. [*] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/wait.html --------------9BACB28715F7FBEF3A7A7A89 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="waitstatus-preliminary.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="waitstatus-preliminary.patch" ZGlmZiAtLWdpdCBhL0RvYy9ac2gvYnVpbHRpbnMueW8gYi9Eb2MvWnNoL2J1aWx0aW5zLnlv CmluZGV4IGZkMjljYTMuLmNjOTgzMjMgMTAwNjQ0Ci0tLSBhL0RvYy9ac2gvYnVpbHRpbnMu eW8KKysrIGIvRG9jL1pzaC9idWlsdGlucy55bwpAQCAtMjM2Miw2ICsyMzYyLDggQEAgdGhl biBhbGwgY3VycmVudGx5IGFjdGl2ZSBjaGlsZCBwcm9jZXNzZXMgYXJlIHdhaXRlZCBmb3Iu CiBFYWNoIHZhcihqb2IpIGNhbiBiZSBlaXRoZXIgYSBqb2Igc3BlY2lmaWNhdGlvbiBvciB0 aGUgcHJvY2VzcyBJRAogb2YgYSBqb2IgaW4gdGhlIGpvYiB0YWJsZS4KIFRoZSBleGl0IHN0 YXR1cyBmcm9tIHRoaXMgY29tbWFuZCBpcyB0aGF0IG9mIHRoZSBqb2Igd2FpdGVkIGZvci4K K0lmIHZhcihqb2IpIHJlcHJlc2VudHMgYW4gdW5rbm93biBqb2Igb3IgcHJvY2VzcyBJRCwg YSB3YXJuaW5nIGlzIHByaW50ZWQKKyh1bmxlc3MgdGhlIHR0KFBPU0lYX0JVSUxUSU5TKSBv cHRpb24gaXMgc2V0KSBhbmQgdGhlIGV4aXQgc3RhdHVzIGlzIDEyNy4KIAogSXQgaXMgcG9z c2libGUgdG8gd2FpdCBmb3IgcmVjZW50IHByb2Nlc3NlcyAoc3BlY2lmaWVkIGJ5IHByb2Nl c3MgSUQsCiBub3QgYnkgam9iKSB0aGF0IHdlcmUgcnVubmluZyBpbiB0aGUgYmFja2dyb3Vu ZCBldmVuIGlmIHRoZSBwcm9jZXNzIGhhcwpkaWZmIC0tZ2l0IGEvU3JjL2pvYnMuYyBiL1Ny Yy9qb2JzLmMKaW5kZXggZWQ5ZjgxZi4uNzNkN2YyNiAxMDA2NDQKLS0tIGEvU3JjL2pvYnMu YworKysgYi9TcmMvam9icy5jCkBAIC0xOTEwLDcgKzE5MTAsNyBAQCBnZXRqb2IoY29uc3Qg Y2hhciAqcywgY29uc3QgY2hhciAqcHJvZykKICAgICAvKiAiJSUiLCAiJSsiIGFuZCAiJSIg YWxsIHJlcHJlc2VudCB0aGUgY3VycmVudCBqb2IgKi8KICAgICBpZiAoKnMgPT0gJyUnIHx8 ICpzID09ICcrJyB8fCAhKnMpIHsKIAlpZiAoY3Vyam9iID09IC0xKSB7Ci0JICAgIGlmIChw cm9nKQorCSAgICBpZiAocHJvZyAmJiAhaXNzZXQoUE9TSVhCVUlMVElOUykpCiAJCXp3YXJu bmFtKHByb2csICJubyBjdXJyZW50IGpvYiIpOwogCSAgICByZXR1cm52YWwgPSAtMTsKIAkg ICAgZ290byBkb25lOwpAQCAtMTkyMSw3ICsxOTIxLDcgQEAgZ2V0am9iKGNvbnN0IGNoYXIg KnMsIGNvbnN0IGNoYXIgKnByb2cpCiAgICAgLyogIiUtIiByZXByZXNlbnRzIHRoZSBwcmV2 aW91cyBqb2IgKi8KICAgICBpZiAoKnMgPT0gJy0nKSB7CiAJaWYgKHByZXZqb2IgPT0gLTEp IHsKLQkgICAgaWYgKHByb2cpCisJICAgIGlmIChwcm9nICYmICFpc3NldChQT1NJWEJVSUxU SU5TKSkKIAkJendhcm5uYW0ocHJvZywgIm5vIHByZXZpb3VzIGpvYiIpOwogCSAgICByZXR1 cm52YWwgPSAtMTsKIAkgICAgZ290byBkb25lOwpAQCAtMTk0NCw3ICsxOTQ0LDcgQEAgZ2V0 am9iKGNvbnN0IGNoYXIgKnMsIGNvbnN0IGNoYXIgKnByb2cpCiAJICAgIHJldHVybnZhbCA9 IGpvYm51bTsKIAkgICAgZ290byBkb25lOwogCX0KLQlpZiAocHJvZykKKwlpZiAocHJvZyAm JiAhaXNzZXQoUE9TSVhCVUlMVElOUykpCiAJICAgIHp3YXJubmFtKHByb2csICIlJSVzOiBu byBzdWNoIGpvYiIsIHMpOwogCXJldHVybnZhbCA9IC0xOwogCWdvdG8gZG9uZTsKQEAgLTE5 NjIsNyArMTk2Miw3IEBAIGdldGpvYihjb25zdCBjaGFyICpzLCBjb25zdCBjaGFyICpwcm9n KQogCQkJcmV0dXJudmFsID0gam9ibnVtOwogCQkJZ290byBkb25lOwogCQkgICAgfQotCWlm IChwcm9nKQorCWlmIChwcm9nICYmICFpc3NldChQT1NJWEJVSUxUSU5TKSkKIAkgICAgendh cm5uYW0ocHJvZywgImpvYiBub3QgZm91bmQ6ICVzIiwgcyk7CiAJcmV0dXJudmFsID0gLTE7 CiAJZ290byBkb25lOwpAQCAtMTk3Niw3ICsxOTc2LDggQEAgZ2V0am9iKGNvbnN0IGNoYXIg KnMsIGNvbnN0IGNoYXIgKnByb2cpCiAgICAgfQogICAgIC8qIGlmIHdlIGdldCBoZXJlLCBp dCBpcyBiZWNhdXNlIG5vbmUgb2YgdGhlIGFib3ZlIHN1Y2NlZWRlZCBhbmQgd2VudAogICAg IHRvIGRvbmUgKi8KLSAgICB6d2Fybm5hbShwcm9nLCAiam9iIG5vdCBmb3VuZDogJXMiLCBz KTsKKyAgICBpZiAoIWlzc2V0KFBPU0lYQlVJTFRJTlMpKQorCXp3YXJubmFtKHByb2csICJq b2Igbm90IGZvdW5kOiAlcyIsIHMpOwogICAgIHJldHVybnZhbCA9IC0xOwogICBkb25lOgog ICAgIHJldHVybiByZXR1cm52YWw7CkBAIC0yMzc1LDkgKzIzNzYsMTAgQEAgYmluX2ZnKGNo YXIgKm5hbWUsIGNoYXIgKiphcmd2LCBPcHRpb25zIG9wcywgaW50IGZ1bmMpCiAJCSAgICB9 CiAJCX0KIAkgICAgfSBlbHNlIGlmICgocmV0dmFsID0gZ2V0YmdzdGF0dXMocGlkKSkgPCAw KSB7Ci0JCXp3YXJubmFtKG5hbWUsICJwaWQgJWQgaXMgbm90IGEgY2hpbGQgb2YgdGhpcyBz aGVsbCIsIHBpZCk7CisJCWlmICghaXNzZXQoUE9TSVhCVUlMVElOUykpCisJCSAgICB6d2Fy bm5hbShuYW1lLCAicGlkICVkIGlzIG5vdCBhIGNoaWxkIG9mIHRoaXMgc2hlbGwiLCBwaWQp OwogCQkvKiBwcmVzdW1hYmx5IGxhc3R2YWwyIGRvZXNuJ3QgdGVsbCB1cyBhIGhlY2sgb2Yg YSBsb3Q/ICovCi0JCXJldHZhbCA9IDE7CisJCXJldHZhbCA9IDEyNzsKIAkgICAgfQogCSAg ICB0aGlzam9iID0gb2NqOwogCSAgICBjb250aW51ZTsKQEAgLTIzOTEsMTUgKzIzOTMsMTYg QEAgYmluX2ZnKGNoYXIgKm5hbWUsIGNoYXIgKiphcmd2LCBPcHRpb25zIG9wcywgaW50IGZ1 bmMpCiAJam9iID0gKCphcmd2KSA/IGdldGpvYigqYXJndiwgbmFtZSkgOiBmaXJzdGpvYjsK IAlmaXJzdGpvYiA9IC0xOwogCWlmIChqb2IgPT0gLTEpIHsKLQkgICAgcmV0dmFsID0gMTsK KwkgICAgcmV0dmFsID0gMTI3OwogCSAgICBicmVhazsKIAl9CiAJanN0YXQgPSBvbGRqb2J0 YWIgPyBvbGRqb2J0YWJbam9iXS5zdGF0IDogam9idGFiW2pvYl0uc3RhdDsKIAlpZiAoIShq c3RhdCAmIFNUQVRfSU5VU0UpIHx8CiAJICAgIChqc3RhdCAmIFNUQVRfTk9QUklOVCkpIHsK LQkgICAgendhcm5uYW0obmFtZSwgIiVzOiBubyBzdWNoIGpvYiIsICphcmd2KTsKKwkgICAg aWYgKCFpc3NldChQT1NJWEJVSUxUSU5TKSkKKwkJendhcm5uYW0obmFtZSwgIiVzOiBubyBz dWNoIGpvYiIsICphcmd2KTsKIAkgICAgdW5xdWV1ZV9zaWduYWxzKCk7Ci0JICAgIHJldHVy biAxOworCSAgICByZXR1cm4gMTI3OwogCX0KICAgICAgICAgLyogSWYgQVVUT19DT05USU5V RSBpcyBzZXQgKGF1dG9tYXRpY2FsbHkgbWFrZSBzdG9wcGVkIGpvYnMgcnVubmluZwogICAg ICAgICAgKiBvbiBkaXNvd24pLCB3ZSBhY3R1YWxseSBkbyBhIGJnIGFuZCB0aGVuIGRlbGV0 ZSB0aGUgam9iIHRhYmxlIGVudHJ5LiAqLwpkaWZmIC0tZ2l0IGEvVGVzdC9BMDVleGVjdXRp b24uenRzdCBiL1Rlc3QvQTA1ZXhlY3V0aW9uLnp0c3QKaW5kZXggNWQzZDQ2MC4uMmRmMzYw MiAxMDA2NDQKLS0tIGEvVGVzdC9BMDVleGVjdXRpb24uenRzdAorKysgYi9UZXN0L0EwNWV4 ZWN1dGlvbi56dHN0CkBAIC0zNDEsMyArMzQxLDU0IEBAIEY6YW5vbnltb3VzIGZ1bmN0aW9u LCBhbmQgYSBkZXNjcmlwdG9yIGxlYWsgd2hlbiBiYWNrZ3JvdW5kaW5nIGEgcGlwZWxpbmUK ID4xNwogPjE5CiAKKyMgVGVzdCAnd2FpdCcgZm9yIHVua25vd24gam9iL3Byb2Nlc3MgSUQu CisgIHdhaXQgMQorICBlY2hvICQ/CisgIHdhaXQgJSUKKyAgZWNobyAkPworICB3YWl0ICUr CisgIGVjaG8gJD8KKyAgd2FpdCAlLQorICBlY2hvICQ/CisgIHdhaXQgJTEKKyAgZWNobyAk PworICB3YWl0ICVmb28KKyAgZWNobyAkPworICB3YWl0ICVcP2JhcgorMTI3Oid3YWl0JyBl eGl0IHN0YXR1cyBhbmQgd2FybmluZyBmb3IgdW5rbm93biBJRAorPjEyNworPjEyNworPjEy NworPjEyNworPjEyNworPjEyNworPyhldmFsKTp3YWl0OjE6IHBpZCAxIGlzIG5vdCBhIGNo aWxkIG9mIHRoaXMgc2hlbGwKKz8oZXZhbCk6d2FpdDozOiAlJTogbm8gc3VjaCBqb2IKKz8o ZXZhbCk6d2FpdDo1OiAlKzogbm8gc3VjaCBqb2IKKz8oZXZhbCk6d2FpdDo3OiAlLTogbm8g c3VjaCBqb2IKKz8oZXZhbCk6d2FpdDo5OiAlMTogbm8gc3VjaCBqb2IKKz8oZXZhbCk6d2Fp dDoxMTogam9iIG5vdCBmb3VuZDogZm9vCis/KGV2YWwpOndhaXQ6MTM6IGpvYiBub3QgZm91 bmQ6ID9iYXIKKworIyBUZXN0ICd3YWl0JyBmb3IgdW5rbm93biBqb2IvcHJvY2VzcyBJRCAo UE9TSVggbW9kZSkuCisgIChzZXRvcHQgUE9TSVhfQlVJTFRJTlMKKyAgd2FpdCAxCisgIGVj aG8gJD8KKyAgd2FpdCAlJQorICBlY2hvICQ/CisgIHdhaXQgJSsKKyAgZWNobyAkPworICB3 YWl0ICUtCisgIGVjaG8gJD8KKyAgd2FpdCAlMQorICBlY2hvICQ/CisgIHdhaXQgJWZvbwor ICBlY2hvICQ/CisgIHdhaXQgJVw/YmFyKQorMTI3Oid3YWl0JyBleGl0IHN0YXR1cyBmb3Ig dW5rbm93biBJRCAoUE9TSVggbW9kZSkKKz4xMjcKKz4xMjcKKz4xMjcKKz4xMjcKKz4xMjcK Kz4xMjcK --------------9BACB28715F7FBEF3A7A7A89--