bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 15/21] freopen: workaround freopen() on OS/2 kLIBC


From: KO Myung-Hun
Subject: Re: [PATCH 15/21] freopen: workaround freopen() on OS/2 kLIBC
Date: Fri, 05 Dec 2014 15:01:36 +0900
User-agent: Mozilla/5.0 (OS/2; Warp 4.5; rv:10.0.6esrpre) Gecko/20120715 Firefox/10.0.6esrpre SeaMonkey/2.7.2


Bruno Haible wrote:
> KO Myung-Hun wrote:
>> --- a/lib/freopen.c
>> +++ b/lib/freopen.c
>> @@ -26,10 +26,26 @@
>>  #include <stdio.h>
>>  #undef __need_FILE
>>  
>> +#include <errno.h>
>> +
>>  static FILE *
>>  orig_freopen (const char *filename, const char *mode, FILE *stream)
>>  {
>> -  return freopen (filename, mode, stream);
>> +  FILE *result;
>> +
>> +  /* Clear errno to check the success of freopen() with it */
>> +  errno = 0;
>> +
>> +  result = freopen (filename, mode, stream);
>> +
>> +#ifdef __KLIBC__
>> +  /* On OS/2 kLIBC, freopen() returns NULL even if it is successful
>> +     if filename is NULL. */
>> +  if (!filename && !result && !errno)
>> +    result = stream;
>> +#endif
>> +
>> +  return result;
>>  }
>>  
>>  /* Specification.  */
> 
> Just a question of coding style: We have a chain of invocations
>   rpl_freopen -> orig_freopen -> freopen
> While, in theory, you can put workarounds in either rpl_freopen or 
> orig_freopen,
> the function name 'orig_freopen' and the comment
>   /* Get the original definition of freopen.
> indicate that 'orig_freopen' should remain a simple invocation of freopen,
> and the workaround should go into rpl_freopen. This is the canonical way we've
> been using in gnulib (see fopen.c, fstat.c, lstat.c, open.c, openat.c etc.).
> I see no reason to abandon this convention.
> 

No problem. I also don't want to break the convention.

Fixed.

-- 
KO Myung-Hun

Using Mozilla SeaMonkey 2.7.2
Under OS/2 Warp 4 for Korean with FixPak #15
In VirtualBox v4.1.32 on Intel Core i7-3615QM 2.30GHz with 8GB RAM

Korean OS/2 User Community : http://www.ecomstation.co.kr

Attachment: 0001-freopen-workaround-freopen-on-OS-2-kLIBC.patch
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]