cvs: php-src /ext/standard ftok.c

From: Date: Wed, 22 Nov 2006 21:22:15 +0000
Subject: cvs: php-src /ext/standard ftok.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41691@lists.php.net to get a copy of this message
andrei Wed Nov 22 21:22:15 2006 UTC Modified files: /php-src/ext/standard ftok.c Log: Unicode support in ftok(). http://cvs.php.net/viewvc.cgi/php-src/ext/standard/ftok.c?r1=1.18&r2=1.19&diff_format=u Index: php-src/ext/standard/ftok.c diff -u php-src/ext/standard/ftok.c:1.18 php-src/ext/standard/ftok.c:1.19 --- php-src/ext/standard/ftok.c:1.18 Sun Feb 19 03:07:39 2006 +++ php-src/ext/standard/ftok.c Wed Nov 22 21:22:14 2006 @@ -16,9 +16,10 @@ +----------------------------------------------------------------------+ */ -/* $Id: ftok.c,v 1.18 2006/02/19 03:07:39 andi Exp $ */ +/* $Id: ftok.c,v 1.19 2006/11/22 21:22:14 andrei Exp $ */ #include "php.h" +#include "ext/standard/file.h" #include <sys/types.h> @@ -31,27 +32,27 @@ Convert a pathname and a project identifier to a System V IPC key */ PHP_FUNCTION(ftok) { - zval **pathname, **proj; + zval **pp_pathname; + char *proj, *pathname; + int proj_len, pathname_len; key_t k; - if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pathname, &proj) == FAILURE) { - WRONG_PARAM_COUNT; + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zs", &pp_pathname, &proj, &proj_len) == FAILURE || + php_stream_path_param_encode(pp_pathname, &pathname, &pathname_len, REPORT_ERRORS, FG(default_context)) == FAILURE) { + return; } - convert_to_string_ex(pathname); - convert_to_string_ex(proj); - - if (Z_STRLEN_PP(pathname)==0){ + if (pathname_len == 0){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Pathname is invalid"); RETURN_LONG(-1); } - if (Z_STRLEN_PP(proj)!=1){ + if (proj_len != 1){ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Project identifier is invalid"); RETURN_LONG(-1); } - k = ftok(Z_STRVAL_PP(pathname),Z_STRVAL_PP(proj)[0]); + k = ftok(pathname, proj[0]); if (k == -1) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "ftok() failed - %s", strerror(errno)); }

« previous php.cvs (#41691) next »