diff options
author | Stanislav Malyshev <stas@php.net> | 2001-11-15 09:53:40 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2001-11-15 09:53:40 +0000 |
commit | 39f307550002d64067bc6d89fd70b72f38d76cc9 (patch) | |
tree | 7888c7ba975c0969fa08520a04e4795cff74b804 | |
parent | 15f0f8ae23e9e13e4613eeb05e328dea2d67f2bd (diff) | |
download | php-git-39f307550002d64067bc6d89fd70b72f38d76cc9.tar.gz |
Check in ftok() function by Andrew Sitnikov <sitnikov@infonet.ee>
-rw-r--r-- | ext/standard/Makefile.in | 2 | ||||
-rw-r--r-- | ext/standard/basic_functions.c | 7 | ||||
-rw-r--r-- | ext/standard/ftok.c | 66 | ||||
-rw-r--r-- | ext/standard/php_ftok.h | 30 | ||||
-rw-r--r-- | ext/standard/php_standard.h | 1 |
5 files changed, 105 insertions, 1 deletions
diff --git a/ext/standard/Makefile.in b/ext/standard/Makefile.in index 8a9cd780ac..82ee3aa940 100644 --- a/ext/standard/Makefile.in +++ b/ext/standard/Makefile.in @@ -9,7 +9,7 @@ LTLIBRARY_SOURCES=\ syslog.c type.c uniqid.c url.c url_scanner.c var.c versioning.c assert.c \ strnatcmp.c levenshtein.c incomplete_class.c url_scanner_ex.c \ ftp_fopen_wrapper.c http_fopen_wrapper.c php_fopen_wrapper.c credits.c \ - var_unserializer.c + var_unserializer.c ftok.c include $(top_srcdir)/build/dynlib.mk diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 7517cb59b0..9519fd007a 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -792,6 +792,13 @@ function_entry basic_functions[] = { /* functions from versioning.c */ PHP_FE(version_compare, NULL) + /* functions from ftok.c*/ +#if HAVE_SYSVSEM || HAVE_SYSVSHM || HAVE_SHMOP + PHP_FE(ftok, NULL) +#else + PHP_FALIAS(ftok , warn_not_available, NULL) +#endif + {NULL, NULL, NULL} }; diff --git a/ext/standard/ftok.c b/ext/standard/ftok.c new file mode 100644 index 0000000000..0346e2444c --- /dev/null +++ b/ext/standard/ftok.c @@ -0,0 +1,66 @@ +/* + +----------------------------------------------------------------------+ + | PHP version 4.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2001 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Andrew Sitnikov <sitnikov@infonet.ee | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#include "php.h" + +#if HAVE_SYSVSEM || HAVE_SYSVSHM || HAVE_SHMOP + +#include <sys/types.h> +#include <sys/ipc.h> + +/* {{{ proto int ftok(string pathname, char proj) + convert a pathname and a project identifier to a System V IPC key */ +PHP_FUNCTION(ftok) +{ + pval **pathname, **proj; + + key_t k; + + if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &pathname, &proj) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_string_ex(pathname); + convert_to_string_ex(proj); + + if (Z_STRLEN_PP(pathname)==0){ + php_error(E_WARNING, "Invalid argument 1 in ftok"); + RETURN_LONG(-1); + } + + if (Z_STRLEN_PP(proj)!=1){ + php_error(E_WARNING, "Invalid argument 2 in ftok"); + RETURN_LONG(-1); + } + + k = ftok(Z_STRVAL_PP(pathname),Z_STRVAL_PP(proj)[0]); + + RETURN_LONG(k); +} +/* }}} */ + +#endif + +/* + * Local variables: + * tab-width: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/ext/standard/php_ftok.h b/ext/standard/php_ftok.h new file mode 100644 index 0000000000..e628257cfa --- /dev/null +++ b/ext/standard/php_ftok.h @@ -0,0 +1,30 @@ +/* + +----------------------------------------------------------------------+ + | PHP version 4.0 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2001 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Andrew Sitnikov <sitnikov@infonet.ee> | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#ifndef PHP_FTOK_H +#define PHP_FTOK_H + +#if HAVE_SYSVSEM || HAVE_SYSVSHM || HAVE_SHMOP + +PHP_FUNCTION(ftok); + +#endif + +#endif /* PHP_FTOK_H */ diff --git a/ext/standard/php_standard.h b/ext/standard/php_standard.h index 1d0d7fdbab..d4a320ce6a 100644 --- a/ext/standard/php_standard.h +++ b/ext/standard/php_standard.h @@ -57,6 +57,7 @@ #include "php_array.h" #include "php_assert.h" #include "php_versioning.h" +#include "php_ftok.h" #define phpext_standard_ptr basic_functions_module_ptr |