From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: Date: Tue, 24 Jun 2008 17:29:58 +0900 From: underspecified To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net> In-Reply-To: <467b878590eeb9c68a60ef6ae8af1b43@9netics.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_11385_3291796.1214296198242" References: <814614A9-994E-43FE-BF1E-4248213B95F7@mac.com> <467b878590eeb9c68a60ef6ae8af1b43@9netics.com> Subject: Re: [9fans] OSX Drawterm hangs on close Topicbox-Message-UUID: c5a97206-ead3-11e9-9d60-3106f5b1d025 ------=_Part_11385_3291796.1214296198242 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Greetings, I came across this message while catching up on mailing lists. This is a problem we were having that I recently fixed in Acme SAC for OS-X. Basically, the problem was that there was no handler catching kEventAppQuit. I am attaching a patch that creates a basic event handler and calls exit(0) on any quit events. This should prevent drawterm from hanging when being closed in any way not using the menu (system logouts, using the task switcher, etc.). My source for drawterm might be a bit out of date, so be careful when applying. Take care, --underspecified On Wed, Apr 9, 2008 at 6:09 AM, Skip Tavakkolian <9nut@9netics.com> wrote: > why do you feel compelled to state the obvious? > >> Also realize that Cocoa is written in Objective-C, not C, so you need >> to learn a new language to get your hands on it. You CAN write a C >> wrapper around the Objective-C (it was originally a C preprocessor), >> but I don't think elite Mac programmers would recommend it. > > > ------=_Part_11385_3291796.1214296198242 Content-Type: application/octet-stream; name=quit_event.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fhu8h1bo0 Content-Disposition: attachment; filename=quit_event.diff ZGlmZiAtcnUgZHJhd3Rlcm0ub3JpZy9ndWktb3N4L3NjcmVlbi5jIGRyYXd0ZXJtLm5ldy9ndWkt b3N4L3NjcmVlbi5jCi0tLSBkcmF3dGVybS5vcmlnL2d1aS1vc3gvc2NyZWVuLmMJMjAwNy0xMC0y NiAwMjozMTozMi4wMDAwMDAwMDAgKzA5MDAKKysrIGRyYXd0ZXJtLm5ldy9ndWktb3N4L3NjcmVl bi5jCTIwMDgtMDYtMjQgMTc6MjI6MTYuMDAwMDAwMDAwICswOTAwCkBAIC0xMzgsNiArMTM4LDcg QEAKIAlrc2xlZXAoJnJlbmQsIGlzcmVhZHksIDApOwogfQogCitzdGF0aWMgT1NTdGF0dXMgQXBw bGljYXRpb25RdWl0RXZlbnRIYW5kbGVyKEV2ZW50SGFuZGxlckNhbGxSZWYgbmV4dEhhbmRsZXIs IEV2ZW50UmVmIGV2ZW50LCB2b2lkICp1c2VyRGF0YSk7CiBzdGF0aWMgT1NTdGF0dXMgTWFpbldp bmRvd0V2ZW50SGFuZGxlcihFdmVudEhhbmRsZXJDYWxsUmVmIG5leHRIYW5kbGVyLCBFdmVudFJl ZiBldmVudCwgdm9pZCAqdXNlckRhdGEpOwogc3RhdGljIE9TU3RhdHVzIE1haW5XaW5kb3dDb21t YW5kSGFuZGxlcihFdmVudEhhbmRsZXJDYWxsUmVmIG5leHRIYW5kbGVyLCBFdmVudFJlZiBldmVu dCwgdm9pZCAqdXNlckRhdGEpOwogCkBAIC0xOTIsNiArMTkzLDkgQEAKIAlpZihQYXN0ZWJvYXJk Q3JlYXRlKGtQYXN0ZWJvYXJkQ2xpcGJvYXJkLCAmYXBwbGVjbGlwKSAhPSBub0VycikKIAkJc3lz ZmF0YWwoInBhc3RlYm9hcmQgY3JlYXRlIGZhaWxlZCIpOwogCisJY29uc3QgRXZlbnRUeXBlU3Bl YyBxdWl0X2V2ZW50c1tdID0geworCQl7IGtFdmVudENsYXNzQXBwbGljYXRpb24sIGtFdmVudEFw cFF1aXQgfQorCX07CiAJY29uc3QgRXZlbnRUeXBlU3BlYyBjb21tYW5kc1tdID0gewogCQl7IGtF dmVudENsYXNzV2luZG93LCBrRXZlbnRXaW5kb3dDbG9zZWQgfSwKIAkJeyBrRXZlbnRDbGFzc1dp bmRvdywga0V2ZW50V2luZG93Qm91bmRzQ2hhbmdlZCB9LApAQCAtMjA4LDYgKzIxMiwxMyBAQAog CQl7IGtFdmVudENsYXNzTW91c2UsIGtFdmVudE1vdXNlV2hlZWxNb3ZlZCB9LAogCX07CiAKKwlJ bnN0YWxsQXBwbGljYXRpb25FdmVudEhhbmRsZXIgKAorCQkJCQkJCQlOZXdFdmVudEhhbmRsZXJV UFAgKEFwcGxpY2F0aW9uUXVpdEV2ZW50SGFuZGxlciksCisJCQkJCQkJCUdldEV2ZW50VHlwZUNv dW50KHF1aXRfZXZlbnRzKSwKKwkJCQkJCQkJcXVpdF9ldmVudHMsCisJCQkJCQkJCU5VTEwsCisJ CQkJCQkJCU5VTEwpOworCiAgCUluc3RhbGxBcHBsaWNhdGlvbkV2ZW50SGFuZGxlciAoCiAgCQkJ CQkJCQlOZXdFdmVudEhhbmRsZXJVUFAgKE1haW5XaW5kb3dFdmVudEhhbmRsZXIpLAogCQkJCQkJ CQlHZXRFdmVudFR5cGVDb3VudChldmVudHMpLApAQCAtNDk2LDYgKzUwNywxMyBAQAogCXJldHVy biByZXN1bHQ7CiB9CiAKKy8vIGNhdGNoIHF1aXQgZXZlbnRzIHRvIGhhbmRsZSBxdWl0cyBmcm9t IG1lbnUsIENtZCtRLCBhcHBsZXNjcmlwdCwgYW5kIHRhc2sgc3dpdGNoZXIKK3N0YXRpYyBPU1N0 YXR1cyBBcHBsaWNhdGlvblF1aXRFdmVudEhhbmRsZXIoRXZlbnRIYW5kbGVyQ2FsbFJlZiBuZXh0 SGFuZGxlciwgRXZlbnRSZWYgZXZlbnQsIHZvaWQgKnVzZXJEYXRhKQoreworCWV4aXQoMCk7Cisv LwlRdWl0QXBwbGljYXRpb25FdmVudExvb3AoKTsKKwlyZXR1cm4gbm9FcnI7Cit9CiAKIC8vZGVm YXVsdCB3aW5kb3cgY29tbWFuZCBoYW5kbGVyIChmcm9tIG1lbnVzKQogc3RhdGljIE9TU3RhdHVz IE1haW5XaW5kb3dDb21tYW5kSGFuZGxlcihFdmVudEhhbmRsZXJDYWxsUmVmIG5leHRIYW5kbGVy LApAQCAtNTQzLDExICs1NjEsMjMgQEAKIAogCQlzd2l0Y2ggKGtpbmQpCiAJCXsKKwkJCS8vIHNl bmQgYSBxdWl0IGNhcmJvbiBldmVudCBpbnN0ZWFkIG9mIGRpcmVjdGx5IGNhbGxpbmcgY2xlYW5l eGl0IAorCQkJLy8gc28gdGhhdCBhbGwgcXVpdHMgYXJlIGRvbmUgaW4gQXBwbGljYXRpb25RdWl0 RXZlbnRIYW5kbGVyCiAJCQljYXNlIGtFdmVudFdpbmRvd0Nsb3NlZDoKLQkJCQl0aGVXaW5kb3cg PSBOVUxMOwotCQkJCWV4aXQoMCk7IC8vIG9ubHkgb25lIHdpbmRvdworCQkJCXsKKwkJCQlFdmVu dFJlZiBxdWl0RXZlbnQ7CisJCQkJQ3JlYXRlRXZlbnQoTlVMTCwKKwkJCQkJCQlrRXZlbnRDbGFz c0FwcGxpY2F0aW9uLAorCQkJCQkJCWtFdmVudEFwcFF1aXQsCisJCQkJCQkJMCwKKwkJCQkJCQlr RXZlbnRBdHRyaWJ1dGVOb25lLAorCQkJCQkJCSZxdWl0RXZlbnQpOworCQkJCUV2ZW50VGFyZ2V0 UmVmIHRhcmdldDsKKwkJCQl0YXJnZXQgPSBHZXRBcHBsaWNhdGlvbkV2ZW50VGFyZ2V0KCk7CisJ CQkJU2VuZEV2ZW50VG9FdmVudFRhcmdldChxdWl0RXZlbnQsIHRhcmdldCk7CisJCQkJfQogCQkJ CWJyZWFrOwotCisJCQkJCiAJCQkvL3Jlc2l6ZSB3aW5kb3cKIAkJCWNhc2Uga0V2ZW50V2luZG93 Qm91bmRzQ2hhbmdlZDoKIAkJCQl3aW5kb3dfcmVzaXplZCgpOwo= ------=_Part_11385_3291796.1214296198242--