/* +----------------------------------------------------------------------+ | PHP Version 4 | +----------------------------------------------------------------------+ | Copyright (c) 1997-2002 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. | +----------------------------------------------------------------------+ | Author: Hartmut Holzgraefe | +----------------------------------------------------------------------+ */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "php.h" #include "php_ini.h" #include "php_ctype.h" #include "SAPI.h" #include "ext/standard/info.h" #include /* You should tweak config.m4 so this symbol (or some else suitable) gets defined. */ #if HAVE_CTYPE /* If you declare any globals in php_ctype.h uncomment this: ZEND_DECLARE_MODULE_GLOBALS(ctype) */ /* True global resources - no need for thread safety here */ /* static int le_ctype; */ /* {{{ ctype_functions[] * Every user visible function must have an entry in ctype_functions[]. */ function_entry ctype_functions[] = { PHP_FE(ctype_alnum, NULL) PHP_FE(ctype_alpha, NULL) PHP_FE(ctype_cntrl, NULL) PHP_FE(ctype_digit, NULL) PHP_FE(ctype_lower, NULL) PHP_FE(ctype_graph, NULL) PHP_FE(ctype_print, NULL) PHP_FE(ctype_punct, NULL) PHP_FE(ctype_space, NULL) PHP_FE(ctype_upper, NULL) PHP_FE(ctype_xdigit, NULL) {NULL, NULL, NULL} /* Must be the last line in ctype_functions[] */ }; /* }}} */ /* {{{ ctype_mpodule_entry */ zend_module_entry ctype_module_entry = { STANDARD_MODULE_HEADER, "ctype", ctype_functions, NULL, NULL, NULL, NULL, PHP_MINFO(ctype), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES }; /* }}} */ #ifdef COMPILE_DL_CTYPE ZEND_GET_MODULE(ctype) #endif /* {{{ PHP_MINFO_FUNCTION */ PHP_MINFO_FUNCTION(ctype) { php_info_print_table_start(); php_info_print_table_row(2, "ctype functions", "enabled (experimental)"); php_info_print_table_end(); } /* }}} */ /* {{{ ctype */ #define CTYPE(iswhat) \ zval *c; \ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &c) == FAILURE) \ return; \ switch (Z_TYPE_P(c)) { \ case IS_LONG: \ RETURN_BOOL(iswhat(Z_LVAL_P(c))); \ case IS_STRING: \ { \ char *p; \ int n, len; \ p=Z_STRVAL_P(c); \ len = Z_STRLEN_P(c); \ for(n=0;n