Hi Stefan,

The context on how this function is being used is the case where you
are writing out to a file, so in this case I think we should be using
the EOL standards of the underlying platform. If we were just keeping
the output as a string, I could see us sticking with the standard
newline character.

And also, the function previously took a character and still will take
a character ( PHP_EOL is #defined to whatever character string should
be used for the EOL character, be it "\r\n" or "\n" ), unless I'm
missing something ( which could be since I haven't done much C in a
while ).

John Mertic
[EMAIL PROTECTED]
http://jmertic.wordpress.com

"Explaining a joke is like dissecting a frog: you understand it
better, but the frog dies
in the process." --Mark Twain



On Wed, Oct 22, 2008 at 10:14 AM, Stefan Walk <[EMAIL PROTECTED]> wrote:
> John Mertic wrote:
>>
>> Hi All,
>>
>> My first patch so be gentle :-).
>>
>> Per the documentation for the fputcsv() function, it adds a newline to
>> the end of the csv string it returns. However, it is hardcoded to be
>> '\n' ( default for unix newline ), while Windows uses \r\n. PHP should
>> do this as well.
>>
>> Below is a patch to fix this issue; it uses the constant PHP_EOL to get
>> the correct newline to use on the current platform:
>>
>> Index: php-src/ext/standard/file.c
>> ===================================================================
>> RCS file: /repository/php-src/ext/standard/file.c,v
>> retrieving revision 1.530
>> diff -r1.530 file.c
>> 2107c2107
>> <       smart_str_appendc(&csvline, '\n');
>> ---
>>
>>>
>>>        smart_str_appendc(&csvline, PHP_EOL);
>>>
>>
>>
>
> This can't work. Either the function takes a character or a pointer to a
> character, it can't take both.
>
> Also, a "newline" is \n. Everywhere. The "End of line"-marker is distinct
> from that.
>
> Regards,
> Stefan
>

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to