]> granicus.if.org Git - php/commitdiff
MFB
authorWez Furlong <wez@php.net>
Thu, 14 Nov 2002 14:26:15 +0000 (14:26 +0000)
committerWez Furlong <wez@php.net>
Thu, 14 Nov 2002 14:26:15 +0000 (14:26 +0000)
ext/standard/tests/file/fopencookie.phpt

index 7fc9dd79e9fae133749e315b6809d8a10ca4900a..4043f85f8985afe3d155bd53f20309bdf4b76a94 100644 (file)
@@ -12,6 +12,9 @@ fopencookie detected and working (or cast mechanism works)
  * The important thing here is really fopencookie; the glibc people
  * changed the binary interface, so if haven't detected it correctly,
  * you can expect this test to segfault.
+ *
+ * FIXME: the test really needs something to fseek(3) on the FILE*
+ * used internally for this test to be really effective.
  */
 
 class userstream {
@@ -39,6 +42,39 @@ class userstream {
        {
                return $this->position >= strlen($this->data);
        }
+
+       function stream_seek($offset, $whence)
+       {
+               switch($whence) {
+                       case SEEK_SET:
+                               if ($offset < strlen($this->data) && $offset >= 0) {
+                                       $this->position = $offset;
+                                       return true;
+                               } else {
+                                       return false;
+                               }
+                               break;
+                       case SEEK_CUR:
+                               if ($offset >= 0) {
+                                       $this->position += $offset;
+                                       return true;
+                               } else {
+                                       return false;
+                               }
+                               break;
+                       case SEEK_END:
+                               if (strlen($this->data) + $offset >= 0) {
+                                       $this->position = strlen($this->data) + $offset;
+                                       return true;
+                               } else {
+                                       return false;
+                               }
+                               break;
+                       default:
+                               return false;
+               }
+       }
+
 }
 
 stream_register_wrapper("cookietest", "userstream");