]> granicus.if.org Git - php/commitdiff
MFH: Fix #45216 (Add a default size for fgetss)
authorEtienne Kneuss <colder@php.net>
Wed, 18 Jun 2008 10:05:29 +0000 (10:05 +0000)
committerEtienne Kneuss <colder@php.net>
Wed, 18 Jun 2008 10:05:29 +0000 (10:05 +0000)
ext/spl/spl_directory.c
ext/spl/tests/bug45216.phpt [new file with mode: 0644]

index c0ddb9f1d4296460ada13dd043e7a6b97110fc6b..9d1a71d56b624c5e07f508481bce3c02599b4d64 100755 (executable)
@@ -2295,7 +2295,12 @@ SPL_METHOD(SplFileObject, fgetss)
        spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
        zval *arg2 = NULL;
        MAKE_STD_ZVAL(arg2);
-       ZVAL_LONG(arg2, intern->u.file.max_line_len);
+
+       if (intern->u.file.max_line_len > 0) {
+               ZVAL_LONG(arg2, intern->u.file.max_line_len);
+       } else {
+               ZVAL_LONG(arg2, 1024);
+       }
 
        spl_filesystem_file_free_line(intern TSRMLS_CC);
        intern->u.file.current_line_num++;
diff --git a/ext/spl/tests/bug45216.phpt b/ext/spl/tests/bug45216.phpt
new file mode 100644 (file)
index 0000000..b3c4aa5
--- /dev/null
@@ -0,0 +1,22 @@
+--TEST--
+SPL: SplFileObject::fgetss (bug 45216)
+--CREDITS--
+Perrick Penet <perrick@noparking.net>
+#testfest phpcampparis 2008-06-07
+--FILE--
+<?php 
+$file = dirname(__FILE__) . '/foo.html';
+file_put_contents($file, 'text 0<div class="tested">text 1</div>');
+$handle = fopen($file, 'r');
+
+$object = new SplFileObject($file);
+var_dump($object->fgetss());
+var_dump(fgetss($handle));
+?>
+--CLEAN--
+<?php
+unlink(dirname(__FILE__) . '/foo.html');
+?>
+--EXPECTF--
+string(12) "text 0text 1"
+string(12) "text 0text 1"