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=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_MESSAGE,MAILING_LIST_MULTI,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 12582 invoked from network); 12 Mar 2023 18:24:10 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 12 Mar 2023 18:24:10 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 64D8541565; Mon, 13 Mar 2023 04:24:01 +1000 (AEST) Received: from smtprelay.b.hostedemail.com (smtprelay0019.b.hostedemail.com [64.98.42.19]) by minnie.tuhs.org (Postfix) with ESMTPS id 2F7964141C for ; Mon, 13 Mar 2023 04:23:53 +1000 (AEST) Received: from omf12.b.hostedemail.com (10.5.19.248.rfc1918.com [10.5.19.248]) by smtprelay01.b.hostedemail.com (Postfix) with ESMTP id 1664C18EA9683 for ; Sun, 12 Mar 2023 18:23:52 +0000 (UTC) Received: from [HIDDEN] (Authenticated sender: srb@unixsh.com) by omf12.b.hostedemail.com (Postfix) with ESMTPA id BBC0C18070178 for ; Sun, 12 Mar 2023 18:23:51 +0000 (UTC) Content-Type: multipart/alternative; boundary="------------M0xsWcYxPfmATwQuDCc0HVQz" Message-ID: Date: Sun, 12 Mar 2023 14:23:51 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 From: Steve To: tuhs@tuhs.org Content-Language: en-US X-Stat-Signature: 3xn81xq3mnrx3iu1g38z6d36eb38yjp6 X-Rspamd-Server: rspamout01 X-Rspamd-Queue-Id: BBC0C18070178 X-Session-Marker: 73726240756E697873682E636F6D X-Session-ID: U2FsdGVkX1+Mz4tc/fN4qHUAv4rdLwNAPt04i5sRkSE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=unixsh.com; h=content-type:message-id:date:mime-version:from:subject:reply-to:to; s=key1; bh=bYQF7EA9OE7VO0YvX6PDuoxg398Hz6pFmhUh++V+xRE=; b=jB5tER/LBDiHSZbw8fNr90eOzLplxMUj1MzPXDODJXuEf7CxJzJvBfbEnwghYf6H1Jd7TB5jRJ+ohKxv6BSKS9ak8fmVWKJ42nZ1jOFC5JxAGOy8Ax3zy7y9KG63AJoLg6/ntah7+aZaD8nz5lWukrPIMpAeW5olJjo59E/409o= X-HE-Tag: 1678645431-829027 X-HE-Meta: U2FsdGVkX1+MaWYW+uzlqveT/ALMNw6yFJJSUmQhFPBAegPg77mOCkKSctLP2CCvwgdeD7Vw6KQamiOlM5+glQ== Message-ID-Hash: Y4N6WAX3XEDNS2WEDFBAFFYKKLXJFLVD X-Message-ID-Hash: Y4N6WAX3XEDNS2WEDFBAFFYKKLXJFLVD X-MailFrom: srb@unixsh.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.6b1 Precedence: list Reply-To: srb@acm.org Subject: [TUHS] GOTO etc List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: This is a multi-part message in MIME format. --------------M0xsWcYxPfmATwQuDCc0HVQz Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 RGVubmlzIGFkZGVkIHNldGptcCgpIGFuZCBsb25nam1wKCkgc28gdGhlIHNoZWxsIGNvdWxk IGhhbmRsZSBlcnJvcnMgaW4gYSByZWFzb25hYmxlIHdheS4NClRoZXJlIGFyZSB0d28gcGxh Y2VzIHdoZXJlIHNldGptcCB3YXMgdXNlZCBpbiB0aGUgb3JpZ2luYWwgc2hlbGwgKDd0aCBl ZGl0aW9uKSBjb2RlIGFzIEkgcmVjYWxsLsKgIA0KQm90aCBhdCB0aGUgdG9wIGxldmVsDQpp biBtYWluLmMuDQoNClRoZSBpZGVhIGNhbWUgZnJvbSBBbGdvbDY4IGJ1dCBJIGRvIG5vdCBr bm93IHdoZXJlIGl0IHdhcyBvcmlnaW5hbGx5IGludmVudGVkLsKgIGxvbmdqbXAoKSB3YXMg dXNlZCANCmluIHRoZSAiZXhpdHNoIg0KZnVuY3Rpb24gdGhhdCBnb3QgY2FsbGVkIG9uIHRo ZSBleGl0IGNvbW1hbmQsIGRlZmF1bHQgdHJhcCByb3V0aW5lIGFuZCBhIGZhdWx0IHdpdGgg bm8gdHJhcCBzZXQuDQoNCkl0IHdhcyBhbHNvIHVzZWQgd2hlbiBleGVjdXRpbmcgYSBzdWJz aGVsbCB0byBhdm9pZCBhIGZvcmsgYW5kIGV4ZWMuwqAgSW4gdGhpcyBjYXNlIHRoZSBzZXRq bXAoKSB3YXMgDQphdCB0b3AgbGV2ZWwNCmluIHRoZSBpbml0aWFsIHNoIHNldHVwLg0KDQpI b3BlIHRoaXMgbWFrZXMgc2Vuc2UuwqAgQnV0IHRoZXNlIHdlcmUgdHdvIGRpZmZlcmVudCB1 c2VzLsKgIE9uZSBmb3IgZXJyb3IgcmVjb3ZlcnkgYW5kIG9uZSB0byByZXNldCANCnRoZSBl eGVjdXRpb24gZW52aXJvbm1lbnQNCmJhY2sgdG8gaW5pdGlhbCBzdGF0ZS4NCg0KU3RldmUN Cg== --------------M0xsWcYxPfmATwQuDCc0HVQz Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Dennis added setjmp() and= longjmp() so the shell could handle errors in a reasonable way.
= There are two places where setjmp was used in the original shell (7th edition) code as I recall.=C2=A0 Both at the top level
in main.c.

The idea came from Algol68 but I do not know where it was originally invented.=C2=A0 longjmp() was used in the "exitsh"
function that got called on the exit command, default trap routine and a fault with no trap set.

It was also used when executing a subshell to avoid a fork and exec.=C2=A0 In this case the setjmp() was at top level
in the initial sh setup.

Hope this makes sense.=C2=A0 But these were two different uses.=C2=A0= One for error recovery and one to reset the execution environment
back to initial state.

Steve
--------------M0xsWcYxPfmATwQuDCc0HVQz--