cvs: php4 /ext/standard string.c
| From: | Derick Rethans | Date: | Sun, 09 Sep 2001 11:42:37 +0000 |
| Subject: | cvs: php4 /ext/standard string.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-7330@lists.php.net to get a copy of this message | ||
derick Sun Sep 9 07:42:37 2001 EDT
Modified files:
/php4/ext/standard string.c
Log:
- Fix for bug 11904
#- This is possibly not the best solution... feel free to improve
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.237 php4/ext/standard/string.c:1.238
--- php4/ext/standard/string.c:1.237 Thu Sep 6 04:56:24 2001
+++ php4/ext/standard/string.c Sun Sep 9 07:42:36 2001
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.237 2001/09/06 08:56:24 sterling Exp $ */
+/* $Id: string.c,v 1.238 2001/09/09 11:42:36 derick Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -2978,14 +2978,27 @@
PHP_FUNCTION(nl2br)
{
zval **str;
+ char* tmp;
+ int new_length;
if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &str)==FAILURE) {
WRONG_PARAM_COUNT;
}
convert_to_string_ex(str);
-
- php_char_to_str((*str)->value.str.val, (*str)->value.str.len,'\n', "<br
/>\n", 7, return_value);
+
+ /* Windows style line-endings */
+ tmp = boyer_str_to_str((*str)->value.str.val, (*str)->value.str.len, "\r\n", 2,
"<br />\r\n", 8, &new_length);
+ if (new_length != (*str)->value.str.len)
+ RETURN_STRINGL (tmp, new_length, 0);
+ efree (tmp);
+ /* Mac style line-endings */
+ tmp = boyer_str_to_str((*str)->value.str.val, (*str)->value.str.len, "\n\r", 2,
"<br />\n\r", 8, &new_length);
+ if (new_length != (*str)->value.str.len)
+ RETURN_STRINGL (tmp, new_length, 0);
+ efree (tmp);
+ /* Unix style line-endings */
+ php_char_to_str((*str)->value.str.val,(*str)->value.str.len, '\n',"<br
/>\n", 7, return_value);
}
/* }}} */