]> granicus.if.org Git - php/commitdiff
fixed isset() on sub-directories (isset('blah') if file 'blah/foo.php' exists)
authorGreg Beaver <cellog@php.net>
Fri, 5 Jun 2009 04:44:55 +0000 (04:44 +0000)
committerGreg Beaver <cellog@php.net>
Fri, 5 Jun 2009 04:44:55 +0000 (04:44 +0000)
ext/phar/phar_object.c
ext/phar/tests/phar_oo_011.phpt

index 6b03e62a459dc9f429d743114d0a81b4cdafb3b0..a529c50eabbed1e8923ba8ab03ae3710ba4f759a 100755 (executable)
@@ -3526,6 +3526,9 @@ PHP_METHOD(Phar, offsetExists)
                }
                RETURN_TRUE;
        } else {
+               if (zend_hash_exists(&phar_obj->arc.archive->virtual_dirs, fname, (uint) fname_len)) {
+                       RETURN_TRUE;
+               }
                RETURN_FALSE;
        }
 }
index 236009b7e4278356a4222059c3c4cb5ec579e046..cfbab702ad8c849d5e6d42dc1bc2f03de9b5d263 100644 (file)
@@ -16,9 +16,10 @@ require_once 'files/phar_oo_test.inc';
 $phar = new Phar($fname);
 $phar->setInfoClass('SplFileObject');
 
-$phar['f.php'] = 'hi';
-var_dump(isset($phar['f.php']));
-echo $phar['f.php'];
+$phar['hi/f.php'] = 'hi';
+var_dump(isset($phar['hi']));
+var_dump(isset($phar['hi/f.php']));
+echo $phar['hi/f.php'];
 echo "\n";
 
 ?>
@@ -30,5 +31,6 @@ __halt_compiler();
 ?>
 --EXPECT--
 bool(true)
+bool(true)
 hi
 ===DONE===