Hi Junio,

On 2015-04-15 20:48, Junio C Hamano wrote:
> Johannes Sixt <j...@kdbg.org> writes:
> 
>> Windows does not have process groups. It is, therefore, the simplest
>> to pretend that each process is in its own process group.
>>
>> While here, move the getppid() stub from its old location (between
>> two sync related functions) next to the two new functions.
>>
>> Signed-off-by: Johannes Sixt <j...@kdbg.org>
>> ---
> 
> Thanks for a quick update.
> 
> The patch should do for now, but I suspect that it may give us a
> better abstraction to make the "is_foreground_fd(int fd)" or even
> "is_foreground(void)" the public API that would be implemented as
> 
>       int we_are_in_the_foreground(void)
>         {
>               return getpgid(0) == tcgetpgrp(fileno(stderr));
>       }
> 
> in POSIX and Windows can implement entirely differently.

I really like it. We already require a couple of workarounds to be able to use 
`mintty` (which is a replacement terminal emulator that is more flexible than 
the default Windows terminal window, but it comes at the price that most Win32 
programs think they are not running interactively inside a `mintty` session). I 
would really like to avoid having to finagle some really ugly code into 
`getpgid()` to make that test work.

In general, I find it rewarding not only from a portability point of view, but 
*especially* from a readability one if the code contains functions that are 
named semantically, i.e. they describe *why* they are called, not *how* they 
answer the question.

In this case, I would prefer the `is_foreground_fd(int fd)` one, but I am sure 
I can make the other signature work for us, too.

Ciao,
Dscho
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to