From: Phillip Wood Date: Mon, 23 Jun 2025 09:42:12 GMT Subject: Re: [PATCH] Ensure restore_term works correctly with DUPLEX Message-ID: In-Reply-To: On 19/06/2025 00:43, Carlo Marcelo Arenas Belón wrote: > On Thu, Jun 19, 2025 at 08:38:29AM -0800, James Duley wrote: >> On Wed, 18 Jun 2025 at 22:07, Carlo Marcelo Arenas Belón >> wrote: >>> >> I thought about something like that, but I figured: >> * restore_term is only called if save_term is successful >> * hconout is always invalid before save_term is called > > but it is not always set to invalid at the end of restore_term() > so it can't be relied upon either. Are you sure about that? It looks to me like the only time we don't reset hconout is when we use stty in which case I think hconout is already set to the invalid handle value. >> * 0 might be a valid cmode_out that should be restored > > cmode_out == 0 is not a valid mode that should be restored, cmode_out is a bitfield. The documentation for SetConsoleMode() says the mode parameter "can be one or more of the following values" which implies zero is not a valid mode. It seems very hacky to be relying on that when we can just check if the output handle is valid though. > and > indeed the original code was (ab)using that fact to decide if > SetConsoleMode(hcounout) would be called at all (as a proxy to > know if DUPLEX was used or not), hence why it is a bug not to > update it, as you pointed out and found unexpectally, sorry > about that. > >> This is my first patch so I didn't realize git-for-windows had a >> separate fork. That makes sense now because I couldn't find where >> save_term was called from in this repo. To test this works I had >> downloaded the artifacts from >> https://github.com/git/git/actions/runs/15692373534/job/44210362705 >> but is that right? If I should submit this patch to the git-for-windows >> fork, please let me know. Or, if someone, who knows what they're >> doing, wants to pick this up, they're more than welcome. > > You are going to need to get the Git for Windows SDK installed to > be able to apply this patch and build your own version of GfW. > > IMHO getting the change that makes "cmode_out" reliable again (which > would include both our changes) should be a good start regardless, > and at least that change could be submitted here. Yes, this change should absolutely be submitted here as it is fixing code that is upstream of git-for-windows. Thanks Phillip > > Carlo >