]> granicus.if.org Git - php/commitdiff
- Ooops. Fixed tests for rev #304380 (stream_get_contents() related) and a small...
authorGustavo André dos Santos Lopes <cataphract@php.net>
Thu, 14 Oct 2010 02:39:21 +0000 (02:39 +0000)
committerGustavo André dos Santos Lopes <cataphract@php.net>
Thu, 14 Oct 2010 02:39:21 +0000 (02:39 +0000)
ext/standard/streamsfuncs.c
ext/standard/tests/streams/bug46426.phpt
ext/standard/tests/streams/stream_get_contents_001.phpt

index 29a62fe076c778a030da70de2dac7cc5728dc24b..a01c58c3fea454606f722043811897858d5009f9 100644 (file)
@@ -425,7 +425,7 @@ PHP_FUNCTION(stream_get_contents)
 
        php_stream_from_zval(stream, &zsrc);
 
-       if ((pos != 0L) && php_stream_seek(stream, pos, SEEK_CUR) < 0) {
+       if ((pos > 0L) && php_stream_seek(stream, pos, SEEK_CUR) < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to seek %ld bytes from current position in the stream", pos);
                RETURN_FALSE;
        } else if (pos < 0L) {
index 80dbcded800028e9e1e5b104af5eca0bdd016e15..cd3c3254eff41ff05ce2e7d634b54b32892821a0 100644 (file)
@@ -7,19 +7,23 @@ $tmp = tmpfile();
 
 fwrite($tmp, b"12345");
 
-echo stream_get_contents($tmp, 2, 1);
+fseek($tmp, 0);
+echo stream_get_contents($tmp, 2, 1); //23
 echo "\n";
-echo stream_get_contents($tmp, -1);
+echo stream_get_contents($tmp, -1); //45
 echo "\n";
-echo stream_get_contents($tmp, -1, 0);
+fseek($tmp, -1, SEEK_CUR);
+echo stream_get_contents($tmp, -1, 0); //5
 echo "\n";
-echo stream_get_contents($tmp, -1, 2);
+fseek($tmp, 0);
+echo stream_get_contents($tmp, -1, 2); //345
 echo "\n";
-echo stream_get_contents($tmp, 0, 0);
+fseek($tmp, 0);
+echo stream_get_contents($tmp, 0, 0); //""
 echo "\n";
-echo stream_get_contents($tmp, 1, 0);
+echo stream_get_contents($tmp, 1, 0); //1
 echo "\n";
-echo stream_get_contents($tmp, -1);
+echo stream_get_contents($tmp, -1); //2345
 
 @unlink($tmp);
 
@@ -27,7 +31,7 @@ echo stream_get_contents($tmp, -1);
 --EXPECT--
 23
 45
-12345
+5
 345
 
 1
index e8e1c3d26bda39d1b50d9c578e68e77f921027dc..0b7db1fbcb565ae3d8ff84df6e9e3e21a16ed8bd 100644 (file)
@@ -9,14 +9,17 @@ fwrite($tmp, b"12345");
 
 echo stream_get_contents($tmp, 2, 5), "--\n";
 echo stream_get_contents($tmp, 2), "--\n";
+fseek($tmp, 0);
 echo stream_get_contents($tmp, 2, 3), "--\n";
 echo stream_get_contents($tmp, 2, -1), "--\n";
 
 @unlink($tmp);
 
 ?>
---EXPECT--
+--EXPECTF--
 --
 --
 45--
+
+Warning: stream_get_contents(): Number of bytes to seek must be non-negative, given -1 in %s on line %d
 --