[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [FYI] {master} refactor: use modern semantics of 'open'
From: |
Eric Blake |
Subject: |
Re: [FYI] {master} refactor: use modern semantics of 'open' |
Date: |
Tue, 24 Apr 2012 17:08:06 -0600 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
On 04/24/2012 04:50 PM, Russ Allbery wrote:
> Eric Blake <address@hidden> writes:
>
>> Help! I can't release autoconf 2.69 until I figure out how to work
>> around this patch. After updating to the latest shared files, as well
>> as applying this patch, I'm now stuck with output going to a literal
>> file named '-' instead of going to stdout. I suspect that the
>> conversion to the 2-arg form is mishandling our idiom of '-' as standard
>> in/out.
>
> If you call open with three arguments, "-" has no special meaning and
> refers to a file named "-" (since the whole point of three-argument open
> is to remove all magic interpretations of the filename string). The
> easiest way to work around this is probably to change the Automake helper
> functions that sit between the code and the Perl open command and have
> them switch to calling open with two arguments if the file name is "-".
Indeed, this hack gets me further, but still not complete success:
diff --git i/lib/Autom4te/XFile.pm w/lib/Autom4te/XFile.pm
index 19b73aa..95a452b 100644
--- i/lib/Autom4te/XFile.pm
+++ w/lib/Autom4te/XFile.pm
@@ -138,7 +138,14 @@ sub open
# comment in IO::Handle.
${*$fh}{'autom4te_xfile_file'} = "$file";
- if (!$fh->SUPER::open (@_))
+ if (defined $mode && "$file" eq '-')
+ {
+ if (!$fh->SUPER::open ("$mode$file"))
+ {
+ fatal "cannot open $file: $!";
+ }
+ }
+ elsif (!$fh->SUPER::open (@_))
{
fatal "cannot open $file: $!";
}
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- [FYI] {master} refactor: use modern semantics of 'open', Eric Blake, 2012/04/24
- Re: [FYI] {master} refactor: use modern semantics of 'open', Russ Allbery, 2012/04/25
- Re: [FYI] {master} refactor: use modern semantics of 'open',
Eric Blake <=
- Re: [FYI] {master} refactor: use modern semantics of 'open', Stefano Lattarini, 2012/04/24
- Re: [FYI] {master} refactor: use modern semantics of 'open', Eric Blake, 2012/04/24
- Re: [FYI] {master} refactor: use modern semantics of 'open', Stefano Lattarini, 2012/04/26
- Re: [FYI] {master} refactor: use modern semantics of 'open', Eric Blake, 2012/04/26
- Re: [FYI] {master} refactor: use modern semantics of 'open', Stefano Lattarini, 2012/04/26
- Re: [FYI] {master} refactor: use modern semantics of 'open', Jim Meyering, 2012/04/29