- MFB: fix parameter order and return value check in windows (Venkat Raman Don, Pierre)' link

This commit is contained in:
Pierre Joye 2009-06-03 08:07:30 +00:00
parent ed3f87a424
commit 0a170204f4
2 changed files with 31 additions and 2 deletions

View File

@ -230,7 +230,9 @@ PHP_FUNCTION(link)
char source_p[MAXPATHLEN];
char dest_p[MAXPATHLEN];
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &topath, &topath_len, &frompath, &frompath_len) == FAILURE) {
/*First argument to link function is the target and hence should go to frompath
Second argument to link function is the link itself and hence should go to topath */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &frompath, &frompath_len, &topath, &topath_len) == FAILURE) {
return;
}
@ -259,7 +261,8 @@ PHP_FUNCTION(link)
#else
ret = CreateHardLinkA(dest_p, source_p, NULL);
#endif
if (ret == -1) {
if (ret == 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
RETURN_FALSE;
}

View File

@ -0,0 +1,26 @@
--TEST--
bug #<bugid> (link not working properly on Windows)
--CREDITS--
Venkat Raman Don
--SKIPIF--
<?php
if(substr(PHP_OS, 0, 3) != 'WIN' ) {
die('skip windows only test');
}
?>
--FILE--
<?php
$filename = __DIR__ . '\\a.php';
$content = '<?php echo "Dummy Content.\n" ?>';
file_put_contents($filename, $content);
$linkname = __DIR__ . '\\a_link.php';
link("$filename", "$linkname");
var_dump(file_exists("$linkname"));
$linkcontent = file_get_contents($linkname);
var_dump($content == $linkcontent);
unlink($filename);
unlink($linkname);
?>
--EXPECT--
bool(true)
bool(true)