From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oi1-x233.google.com (mail-oi1-x233.google.com [IPv6:2607:f8b0:4864:20::233]) by sourceware.org (Postfix) with ESMTPS id 26B8C3858C54 for ; Thu, 24 Mar 2022 20:08:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 26B8C3858C54 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-oi1-x233.google.com with SMTP id q129so6045462oif.4 for ; Thu, 24 Mar 2022 13:08:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=5ULET9UEqdfTSivtj0GEOsIprmyXIOitu7q4MBho7Gw=; b=bQD/X6x/jf8NFaXXFSNhZEeu6ZxVpfIQSqcP8UlwdK83GBcWHZvGQ+WbbkRh5KpViA /7cp2EU2QQJku7znYLOy4F1Bmz3nvMI0+yU4SWqnuXvwiZDAJ70Fk3F4pz+wYtQ7OX3A WPfIOGgNpLwQUz0fJAmy4v2XXd+sFW/TfHBoQbjwyAv2GQ+8w8l3X15IWfwOc34v26Pw v5L2FcgXoMO8FW3V5sbBWCuU45ukdtIDb5NPmXRje1O4nJHT8hKQztm67EApRJ5iwSyU codU01INZ21rAmYch+cAQYZ77wKVqzbfUw1J4lIbbrdE//S9y5jBaSwtrggpeshvlSSv vv8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=5ULET9UEqdfTSivtj0GEOsIprmyXIOitu7q4MBho7Gw=; b=ivg3EPNWa4uW6QnhvE2nU4mkuvAemdHR7n0nHz/lIJrm+TOf6c6dKFDzvMJB4LgS99 5U/T5jNcXEU07MxDEc3RpIxvFeH9TPS6Jc7zFYvKCj0i6VpBJonUb4BQYSkYepGEzCLt dhjcCuFOPtBNU/A3mQGnQ/LOzhgdOeiXxJsDYf+2YeHP7ie1kYqtZIVEm+NSWLt+iPTr 6PpAtC+oTsfWuiUJ7JjZyT/6aLJWgxHSHWHCOECSVduA4mccvixDbb7t1sBRjMQTj4JL t5Te2OQ0W6gHceC1biOCQLZFC9dETYKWNSHSZO0WyY0WK9Bc54zNpMykWyu3SiNwLsLs dnqQ== X-Gm-Message-State: AOAM533ht362/DBA+Qau6/zbYt99idjmGws1NMQSUQg9LHmM6kCM6cqb AdO252tVkFDMbRqZFdEPcpFPlCWpcbESr3BUMZRdM3X8 X-Google-Smtp-Source: ABdhPJxAMMxJUIFWo2rcdVJfV0BNqMtceZnwXSn4S+NONvV0/E90y7twV6d/avYNGfdVHVY/IqrZP+TWCISCtHyHtiQ= X-Received: by 2002:a05:6808:1144:b0:2ec:b290:80e7 with SMTP id u4-20020a056808114400b002ecb29080e7mr3484280oiu.26.1648152484346; Thu, 24 Mar 2022 13:08:04 -0700 (PDT) MIME-Version: 1.0 References: <20220324173350.93408efabc64014998e7b817@nifty.ne.jp> In-Reply-To: <20220324173350.93408efabc64014998e7b817@nifty.ne.jp> From: Andy Koppe Date: Thu, 24 Mar 2022 20:07:53 +0000 Message-ID: Subject: Re: Closing the Command Prompt using the "x" button doesn't update shell history file To: Cygwin Tech List Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: General Cygwin discussions and problem reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 24 Mar 2022 20:08:08 -0000 On Thu, 24 Mar 2022, 08:34 Takashi Yano wrote: > On Wed, 23 Mar 2022 15:11:20 -0400 Mitchell Hentges wrote: > > To reproduce the issue: > > 1. Run Cygwin.bat to open a Cygwin shell in the "Command Prompt" terminal > > 2. Run some command, such as "echo test" > > 3. Click the Windows "x" button in the top-right corner of the terminal > > > > The terminal closes, but `$HOME/.bash_history` is not updated to include > > the "echo test" command. > > Interestingly, when using mintty, the shell history is indeed saved when > > the "x" button is pressed. > > I looked into this problem, and found cygwin sends SIGHUP on > window closure, however, bash is terminated before SIGHUP is > processed. > > The following patch solves the issue, however, I wonder if > there is better way to wait completion of signal handling. > > diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc > index f946bed77..87b419ea7 100644 > --- a/winsup/cygwin/exceptions.cc > +++ b/winsup/cygwin/exceptions.cc > @@ -1119,6 +1119,7 @@ ctrl_c_handler (DWORD type) > { > sig_send (NULL, SIGHUP); > saw_close = true; > + Sleep (100); > return FALSE; > } > if (!saw_close && type == CTRL_LOGOFF_EVENT) Rather than have a timeout, how about just sending SIGHUP first time around, on the assumption that the shell will usually quit on that. If it doesn't, a second click on the close button could kill it more forcefully. Andy