]> granicus.if.org Git - php/commitdiff
@fstat() and stat() now return identical output by returning a numerical and
authorJason Greene <jason@php.net>
Fri, 11 May 2001 01:47:46 +0000 (01:47 +0000)
committerJason Greene <jason@php.net>
Fri, 11 May 2001 01:47:46 +0000 (01:47 +0000)
@string indexed array (Jason)

(Andrei's suggestion to still allow backwords compatibility.)

ext/standard/file.c
ext/standard/filestat.c

index 82bfa0eba7ddfb5fddd859e5661bdc50750bc8b3..28c6c3084bb4a80d0650724153425cd48017fcec 100644 (file)
@@ -1801,6 +1801,32 @@ PHP_NAMED_FUNCTION(php_if_fstat)
 
        array_init(return_value);
 
+       add_next_index_long(return_value, stat_sb.st_dev);
+       add_next_index_long(return_value, stat_sb.st_ino);
+       add_next_index_long(return_value, stat_sb.st_mode);
+       add_next_index_long(return_value, stat_sb.st_nlink);
+       add_next_index_long(return_value, stat_sb.st_uid);
+       add_next_index_long(return_value, stat_sb.st_gid);
+#ifdef HAVE_ST_RDEV
+       add_next_index_long(return_value, stat_sb.st_rdev);
+#else
+       add_next_index_long(return_value, -1);
+#endif
+       add_next_index_long(return_value, stat_sb.st_size);
+       add_next_index_long(return_value, stat_sb.st_atime);
+       add_next_index_long(return_value, stat_sb.st_mtime);
+       add_next_index_long(return_value, stat_sb.st_ctime);
+#ifdef HAVE_ST_BLKSIZE
+       add_next_index_long(return_value, stat_sb.st_blksize);
+#else
+       add_next_index_long(return_value, -1);
+#endif
+#ifdef HAVE_ST_BLOCKS
+       add_next_index_long(return_value, stat_sb.st_blocks);
+#else
+       add_next_index_long(return_value, -1);
+#endif
+       /* Support string references as well as numerical*/
        add_assoc_long ( return_value , "dev" , stat_sb.st_dev );
        add_assoc_long ( return_value , "ino" , stat_sb.st_ino );
        add_assoc_long ( return_value , "mode" , stat_sb.st_mode );
index 866403238eca6f727db7024df57b8eb4b9651c39..49f8ddc3f3f87ade01c2ce051f4e210ffee13df7 100644 (file)
@@ -618,6 +618,30 @@ static void php_stat(const char *filename, php_stat_len filename_length, int typ
 #else
                add_next_index_long(return_value, -1);
 #endif
+               /* Support string references as well as numerical*/
+               add_assoc_long ( return_value , "dev" , stat_sb->st_dev );
+               add_assoc_long ( return_value , "ino" , stat_sb->st_ino );
+               add_assoc_long ( return_value , "mode" , stat_sb->st_mode );
+               add_assoc_long ( return_value , "nlink" , stat_sb->st_nlink );
+               add_assoc_long ( return_value , "uid" , stat_sb->st_uid );
+               add_assoc_long ( return_value , "gid" , stat_sb->st_gid );
+
+#ifdef HAVE_ST_RDEV
+               add_assoc_long ( return_value, "rdev" , stat_sb->st_rdev );
+#endif
+#ifdef HAVE_ST_BLKSIZE
+               add_assoc_long ( return_value , "blksize" , stat_sb->st_blksize );
+#endif
+
+               add_assoc_long ( return_value , "size" , stat_sb->st_size );
+               add_assoc_long ( return_value , "atime" , stat_sb->st_atime );
+               add_assoc_long ( return_value , "mtime" , stat_sb->st_mtime );
+               add_assoc_long ( return_value , "ctime" , stat_sb->st_ctime );
+
+#ifdef HAVE_ST_BLOCKS
+               add_assoc_long ( return_value , "blocks" , stat_sb->st_blocks );
+#endif
+
                return;
        }
        php_error(E_WARNING, "didn't understand stat call");