[mercury-users] rotd-2007-02-10 won't compile on Ubuntu
Julien Fischer
juliensf at csse.unimelb.edu.au
Tue Feb 20 18:43:47 AEDT 2007
On Thu, 15 Feb 2007, Michael Day wrote:
> Hi Julien,
>
>> I'm open to suggestions on how to handle this one more gracefully.
>
> You could just not call fatal error, as in the case where fdopen() is not
> available:
>
> #else
> /*
> ** XXX Standard ANSI/ISO C provides no way to set stdin/stdout
> ** to binary mode. I guess we just have to punt...
> */
> MR_file(mercury_stdin_binary) = stdin;
> MR_file(mercury_stdout_binary) = stdout;
> #endif
>
> I guess a more elegant approach would be to delay calling fdopen() until the
> program actually tries to access the binary input/output streams,
That would mean we would need to add a test every time we tried to access
one of the binary input/output streams. If nothing else it's a bit
of maintenance problem because we have to remember to do it everywhere
we access those streams.
> but just not aborting would already be an improvement.
Unless there are any objections I intend to change the code to
MR_file(mercury_{stdin,stdout}_binary) = {stdin,stdout} if the call to fdopen
fails.
Julien.
--------------------------------------------------------------------------
mercury-users mailing list
Post messages to: mercury-users at csse.unimelb.edu.au
Administrative Queries: owner-mercury-users at csse.unimelb.edu.au
Subscriptions: mercury-users-request at csse.unimelb.edu.au
--------------------------------------------------------------------------
More information about the users
mailing list