diff options
author | Remi Collet <remi@remirepo.net> | 2023-10-12 15:19:36 +0200 |
---|---|---|
committer | Remi Collet <remi@php.net> | 2023-10-12 15:19:36 +0200 |
commit | 8bf3b94ac38682b4e5f1553ce0a501873dbcb855 (patch) | |
tree | 62facf14dac55546e421f85e0b8c565443a30345 | |
parent | 16192a25a02e72eee26009f47bf85e0644ac3daf (diff) |
implement fstat
-rw-r--r-- | rpminfo.c | 11 | ||||
-rw-r--r-- | tests/014-stream.phpt | 4 |
2 files changed, 14 insertions, 1 deletions
@@ -608,6 +608,15 @@ static int php_rpm_ops_close(php_stream *stream, int close_handle) return EOF; } +static int php_zip_ops_stat(php_stream *stream, php_stream_statbuf *ssb) +{ + STREAM_DATA_FROM_STREAM(); + + if (self) { + return rpmfiStat(self->fi, 0, &ssb->sb); + } + return -1; +} const php_stream_ops php_stream_rpmio_ops = { NULL, /* write */ @@ -617,7 +626,7 @@ const php_stream_ops php_stream_rpmio_ops = { "rpm", NULL, /* seek */ NULL, /* cast */ - NULL, /* stat */ + php_zip_ops_stat, NULL /* set_option */ }; diff --git a/tests/014-stream.phpt b/tests/014-stream.phpt index e8650f7..90192bf 100644 --- a/tests/014-stream.phpt +++ b/tests/014-stream.phpt @@ -12,6 +12,8 @@ $n = "rpm://" . __DIR__ . "/bidon.rpm#/usr/share/doc/bidon/README"; var_dump(in_array('rpm', stream_get_wrappers())); var_dump($f = fopen($n, "r")); +$s = fstat($f); +var_dump($s['size'], $s['mode']); var_dump(trim(fread($f, 10))); var_dump(feof($f)); var_dump(trim(fread($f, 100))); @@ -26,6 +28,8 @@ Done --EXPECTF-- bool(true) resource(%d) of type (stream) +int(29) +int(33188) string(10) "Mon Feb 12" bool(false) string(17) "13:27:47 CET 2018" |