diff options
author | foobar <sniper@php.net> | 2003-12-04 12:05:57 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2003-12-04 12:05:57 +0000 |
commit | c389f67e9107d2273de8ff418bad2d5fd3e2fe15 (patch) | |
tree | c88adacce37b3e8bff80211d44cd64dbda065690 | |
parent | ae4e11d861e1babed49c095702fa2eebb1236bc2 (diff) | |
download | php-git-c389f67e9107d2273de8ff418bad2d5fd3e2fe15.tar.gz |
- Moved ext/crack and ext/mcal to PECL.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/crack/CREDITS | 4 | ||||
-rw-r--r-- | ext/crack/EXPERIMENTAL | 5 | ||||
-rw-r--r-- | ext/crack/config.m4 | 32 | ||||
-rw-r--r-- | ext/crack/config.w32 | 16 | ||||
-rw-r--r-- | ext/crack/crack.c | 277 | ||||
-rw-r--r-- | ext/crack/crack.dsp | 114 | ||||
-rw-r--r-- | ext/crack/php_crack.h | 72 | ||||
-rw-r--r-- | ext/crack/tests/001.phpt | 23 | ||||
-rw-r--r-- | ext/mcal/CREDITS | 2 | ||||
-rw-r--r-- | ext/mcal/config.m4 | 45 | ||||
-rw-r--r-- | ext/mcal/php_mcal.c | 1625 | ||||
-rw-r--r-- | ext/mcal/php_mcal.h | 64 | ||||
-rw-r--r-- | php.ini-dist | 10 | ||||
-rw-r--r-- | php.ini-recommended | 9 |
15 files changed, 2 insertions, 2298 deletions
@@ -3,7 +3,9 @@ PHP NEWS ?? Oct 2003, PHP 5 Beta 3 - Dropped Windows 95 support. (Andi) - Moved extensions to PECL: + . ext/crack (Jani, Derick) . ext/db (Jani, Derick) + . ext/mcal (Jani, Derick) . ext/qtdom (Jani, Derick) - Added possibility to call PHP functions as XSLT-functions. (Christian) - Added possibility to prevent PHP from registering variables when diff --git a/ext/crack/CREDITS b/ext/crack/CREDITS deleted file mode 100644 index d9421275c0..0000000000 --- a/ext/crack/CREDITS +++ /dev/null @@ -1,4 +0,0 @@ -crack -Alexander Feldman -Windows Port: -Joseph Tate diff --git a/ext/crack/EXPERIMENTAL b/ext/crack/EXPERIMENTAL deleted file mode 100644 index 6443e99646..0000000000 --- a/ext/crack/EXPERIMENTAL +++ /dev/null @@ -1,5 +0,0 @@ -this extension is experimental, -its functions may change their names -or move to extension all together -so do not rely to much on them -you have been warned! diff --git a/ext/crack/config.m4 b/ext/crack/config.m4 deleted file mode 100644 index 0a9768f54d..0000000000 --- a/ext/crack/config.m4 +++ /dev/null @@ -1,32 +0,0 @@ -dnl -dnl $Id$ -dnl - -PHP_ARG_WITH(crack, for CRACKlib support, -[ --with-crack[=DIR] Include crack support.]) - -if test "$PHP_CRACK" != "no"; then - - for i in $PHP_CRACK/lib $PHP_CRACK/cracklib /usr/local/lib /usr/lib; do - test -f $i/libcrack.$SHLIB_SUFFIX_NAME -o -f $i/libcrack.a && CRACK_LIBDIR=$i && break - done - - if test -z "$CRACK_LIBDIR"; then - AC_MSG_ERROR(Cannot find the cracklib library file) - fi - - for i in $PHP_CRACK/include $PHP_CRACK/cracklib /usr/local/include /usr/include; do - test -f $i/packer.h && CRACK_INCLUDEDIR=$i && break - done - - if test -z "$CRACK_INCLUDEDIR"; then - AC_MSG_ERROR(Cannot find a cracklib header file) - fi - - PHP_ADD_INCLUDE($CRACK_INCLUDEDIR) - PHP_ADD_LIBRARY_WITH_PATH(crack, $CRACK_LIBDIR, CRACK_SHARED_LIBADD) - - PHP_NEW_EXTENSION(crack, crack.c, $ext_shared) - PHP_SUBST(CRACK_SHARED_LIBADD) - AC_DEFINE(HAVE_CRACK, 1, [ ]) -fi diff --git a/ext/crack/config.w32 b/ext/crack/config.w32 deleted file mode 100644 index 08bbacf500..0000000000 --- a/ext/crack/config.w32 +++ /dev/null @@ -1,16 +0,0 @@ -// $Id$ -// vim:ft=javascript - -ARG_WITH("crack", "CRACKlib support", "no"); - -if (PHP_CRACK != "no") { - // NB: I Don't recommend static build unless you build your own - // cracklib. - if (CHECK_LIB("cracklib_win32.lib", "crack", PHP_CRACK) && - CHECK_HEADER_ADD_INCLUDE("packer.h", "CFLAGS_CRACK")) { - EXTENSION("crack", "crack.c"); - AC_DEFINE('HAVE_CRACK', 1, 'Have CRACKlib library'); - } else { - WARNING("cpdf not enabled; libraries and headers not found"); - } -} diff --git a/ext/crack/crack.c b/ext/crack/crack.c deleted file mode 100644 index 191255dd4a..0000000000 --- a/ext/crack/crack.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.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: Alexander Feldman | - +----------------------------------------------------------------------+ - */ -/* $Id$ */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" -#include "php_ini.h" -#include "ext/standard/info.h" -#include "php_crack.h" - -#if HAVE_CRACK - -#include <packer.h> - -ZEND_DECLARE_MODULE_GLOBALS(crack) - -/* True global resources - no need for thread safety here */ -static int le_crack; - -function_entry crack_functions[] = { - ZEND_FE(crack_opendict, NULL) - ZEND_FE(crack_closedict, NULL) - ZEND_FE(crack_check, NULL) - ZEND_FE(crack_getlastmessage, NULL) - {NULL, NULL, NULL} -}; - -zend_module_entry crack_module_entry = { - STANDARD_MODULE_HEADER, - "crack", - crack_functions, - ZEND_MODULE_STARTUP_N(crack), - ZEND_MODULE_SHUTDOWN_N(crack), - ZEND_MODULE_ACTIVATE_N(crack), - ZEND_MODULE_DEACTIVATE_N(crack), - ZEND_MODULE_INFO_N(crack), - NO_VERSION_YET, - STANDARD_MODULE_PROPERTIES -}; - -#ifdef COMPILE_DL_CRACK -ZEND_GET_MODULE(crack) -#endif - -PHP_INI_BEGIN() - STD_PHP_INI_ENTRY("crack.default_dictionary", NULL, PHP_INI_SYSTEM, OnUpdateString, default_dictionary, zend_crack_globals, crack_globals) -PHP_INI_END() - -long _crack_open_dict(char *dictpath TSRMLS_DC) -{ - PWDICT *pwdict; - long resource; - - if (CRACKG(current_id) != -1) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can not use more than one open dictionary with this implementation of libcrack"); - return -1; - } - if (NULL == (pwdict = PWOpen(dictpath, "r"))) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open a crack dictionary"); - return -1; - } - - resource = zend_list_insert(pwdict, le_crack); - -/* if (CRACKG(current_id) != -1) { - zend_list_delete(CRACKG(current_id)); - } -*/ - CRACKG(current_id) = resource; - - return resource; -} - -void _close_crack_dict(PWDICT *pwdict) -{ - PWClose(pwdict); -} - -ZEND_MODULE_STARTUP_D(crack) -{ -#ifdef ZTS - zend_crack_globals *crack_globals; - - ts_allocate_id(&crack_globals_id, sizeof(zend_crack_globals), NULL, NULL); - crack_globals = ts_resource(crack_globals_id); -#endif - - REGISTER_INI_ENTRIES(); - - le_crack = register_list_destructors(_close_crack_dict, NULL); - - return SUCCESS; -} - -ZEND_MODULE_SHUTDOWN_D(crack) -{ - UNREGISTER_INI_ENTRIES(); - return SUCCESS; -} - -ZEND_MODULE_ACTIVATE_D(crack) -{ - CRACKG(last_message) = NULL; - CRACKG(current_id) = -1; - - return SUCCESS; -} - -ZEND_MODULE_DEACTIVATE_D(crack) -{ - if (NULL != CRACKG(last_message)) { - efree(CRACKG(last_message)); - } - return SUCCESS; -} - -ZEND_MODULE_INFO_D(crack) -{ - php_info_print_table_start(); - php_info_print_table_header(2, "crack support", "enabled"); - php_info_print_table_end(); - - DISPLAY_INI_ENTRIES(); -} - -/* {{{ proto resource crack_opendict(string dictionary) - Opens a new cracklib dictionary */ -ZEND_FUNCTION(crack_opendict) -{ - zval **dictpath; - long resource; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &dictpath) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(dictpath); - - if (-1 == (resource = _crack_open_dict(Z_STRVAL_PP(dictpath) TSRMLS_CC))) { - RETURN_FALSE; - } - - RETURN_RESOURCE(resource); -} -/* }}} */ - -/* {{{ proto bool crack_closedict([resource dictionary]) - Closes an open cracklib dictionary */ -ZEND_FUNCTION(crack_closedict) -{ - PWDICT *pwdict; - zval **dictionary; - long id; - - switch (ZEND_NUM_ARGS()) { - case 0: - id = CRACKG(current_id); - break; - case 1: - if (zend_get_parameters_ex(1, &dictionary) == FAILURE) { - WRONG_PARAM_COUNT; - } - id = Z_LVAL_PP(dictionary); - break; - default: - WRONG_PARAM_COUNT; - break; - } - - ZEND_FETCH_RESOURCE(pwdict, PWDICT *, dictionary, id, "cracklib dictionary", le_crack); - if (CRACKG(current_id) == id) { - CRACKG(current_id) = -1; - } - zend_list_delete(id); - - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool crack_check([resource dictionary,] string password) - Performs an obscure check with the given password */ -ZEND_FUNCTION(crack_check) -{ - zval **dictionary = NULL, **password; - char pwtrunced[STRINGSIZE]; - char *message; - PWDICT *pwdict; - long id; - - switch (ZEND_NUM_ARGS()) { - case 1: - if (zend_get_parameters_ex(1, &password) == FAILURE) { - RETURN_FALSE; - } - if (NULL != CRACKG(default_dictionary) && CRACKG(current_id) == -1) { - _crack_open_dict(CRACKG(default_dictionary) TSRMLS_CC); - } - id = CRACKG(current_id); - break; - case 2: - if (zend_get_parameters_ex(2, &dictionary, &password) == FAILURE) { - RETURN_FALSE; - } - id = -1; - break; - default: - WRONG_PARAM_COUNT; - break; - } - - ZEND_FETCH_RESOURCE(pwdict, PWDICT *, dictionary, id, "cracklib dictionary", le_crack); - convert_to_string_ex(password); - - /* Prevent buffer overflow attacks. */ - strlcpy(pwtrunced, Z_STRVAL_PP(password), sizeof(pwtrunced)); - - message = (char *)FascistLook(pwdict, pwtrunced); - - if (NULL != CRACKG(last_message)) { - efree(CRACKG(last_message)); - } - - if (NULL == message) { - CRACKG(last_message) = estrdup("strong password"); - RETURN_TRUE; - } - - CRACKG(last_message) = estrdup(message); - RETURN_FALSE; -} -/* }}} */ - -/* {{{ proto string crack_getlastmessage(void) - Returns the message from the last obscure check */ -ZEND_FUNCTION(crack_getlastmessage) -{ - if (ZEND_NUM_ARGS() != 0) { - WRONG_PARAM_COUNT; - } - - if (NULL == CRACKG(last_message)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "No obscure checks in this session"); - RETURN_FALSE; - } - - RETURN_STRING(CRACKG(last_message), 1); -} -/* }}} */ - -#endif /* HAVE_CRACK */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - * vim600: sw=4 ts=4 fdm=marker - * vim<600: sw=4 ts=4 - */ diff --git a/ext/crack/crack.dsp b/ext/crack/crack.dsp deleted file mode 100644 index bf0e0d9e2d..0000000000 --- a/ext/crack/crack.dsp +++ /dev/null @@ -1,114 +0,0 @@ -# Microsoft Developer Studio Project File - Name="crack" - Package Owner=<4>
-# Microsoft Developer Studio Generated Build File, Format Version 6.00
-# ** DO NOT EDIT **
-
-# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
-
-CFG=crack - Win32 Release_TS
-!MESSAGE This is not a valid makefile. To build this project using NMAKE,
-!MESSAGE use the Export Makefile command and run
-!MESSAGE
-!MESSAGE NMAKE /f "crack.mak".
-!MESSAGE
-!MESSAGE You can specify a configuration when running NMAKE
-!MESSAGE by defining the macro CFG on the command line. For example:
-!MESSAGE
-!MESSAGE NMAKE /f "crack.mak" CFG="crack - Win32 Release_TS"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "crack - Win32 Release_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "crack - Win32 Debug_TS" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName ""
-# PROP Scc_LocalPath ""
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "crack - Win32 Release_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Release_TS"
-# PROP BASE Intermediate_Dir "Release_TS"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Release_TS"
-# PROP Intermediate_Dir "Release_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\..\Zend" /I "..\..\..\TSRM" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_CRACK" /D ZTS=1 /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /D "WIN32" /D "CRACK_EXPORTS" /D "COMPILE_DL_CRACK" /D ZTS=1 /D HAVE_CRACK=1 /D ZEND_DEBUG=0 /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "ZEND_WIN32" /D "PHP_WIN32" /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x406 /d "NDEBUG"
-# ADD RSC /l 0x406 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php4ts.lib /nologo /dll /machine:I386
-# ADD LINK32 cracklib_Win32.lib wsock32.lib php4ts.lib resolv.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"..\..\Release_TS/php_crack.dll" /libpath:"..\..\Release_TS" /libpath:"..\..\Release_TS_Inline"
-# SUBTRACT LINK32 /pdb:none
-
-!ELSEIF "$(CFG)" == "crack - Win32 Debug_TS"
-
-# PROP BASE Use_MFC 0
-# PROP BASE Use_Debug_Libraries 0
-# PROP BASE Output_Dir "Debug_TS"
-# PROP BASE Intermediate_Dir "Debug_TS"
-# PROP BASE Ignore_Export_Lib 0
-# PROP BASE Target_Dir ""
-# PROP Use_MFC 0
-# PROP Use_Debug_Libraries 0
-# PROP Output_Dir "Debug_TS"
-# PROP Intermediate_Dir "Debug_TS"
-# PROP Ignore_Export_Lib 0
-# PROP Target_Dir ""
-# ADD BASE CPP /nologo /MT /W3 /GX /O2 /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "mssql-70" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "COMPILE_DL_CRACK" /D ZTS=1 /YX /FD /c
-# ADD CPP /nologo /MDd /W3 /GX /ZI /Od /I "..\.." /I "..\..\Zend" /I "..\..\TSRM" /I "..\..\main" /D ZEND_DEBUG=1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CRACK_EXPORTS" /D "COMPILE_DL_CRACK" /D ZTS=1 /D "ZEND_WIN32" /D "PHP_WIN32" /D HAVE_CRACK=1 /FR /YX /FD /c
-# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
-# ADD BASE RSC /l 0x406 /d "NDEBUG"
-# ADD RSC /l 0x406 /d "NDEBUG"
-BSC32=bscmake.exe
-# ADD BASE BSC32 /nologo
-# ADD BSC32 /nologo
-LINK32=link.exe
-# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib php4ts.lib /nologo /dll /machine:I386
-# ADD LINK32 cracklib_Win32.lib php4ts_debug.lib resolv.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /debug /machine:I386 /out:"..\..\Debug_TS/php_crack.dll" /libpath:"..\..\Debug_TS"
-
-!ENDIF
-
-# Begin Target
-
-# Name "crack - Win32 Release_TS"
-# Name "crack - Win32 Debug_TS"
-# Begin Group "Source Files"
-
-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
-# Begin Source File
-
-SOURCE=.\crack.c
-# End Source File
-# End Group
-# Begin Group "Header Files"
-
-# PROP Default_Filter "h;hpp;hxx;hm;inl"
-# Begin Source File
-
-SOURCE=.\php_crack.h
-# End Source File
-# End Group
-# Begin Group "Resource Files"
-
-# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
-# End Group
-# End Target
-# End Project
diff --git a/ext/crack/php_crack.h b/ext/crack/php_crack.h deleted file mode 100644 index 14aa66874c..0000000000 --- a/ext/crack/php_crack.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.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: Alexander Feldman | - +----------------------------------------------------------------------+ - */ - -/* $Id$ */ - -#ifndef ZEND_CRACK_H -#define ZEND_CRACK_H - -#if HAVE_CRACK - -extern zend_module_entry crack_module_entry; -#define phpext_crack_ptr &crack_module_entry - -#ifdef ZEND_WIN32 -#define ZEND_CRACK_API __declspec(dllexport) -#else -#define ZEND_CRACK_API -#endif - -ZEND_MINIT_FUNCTION(crack); -ZEND_MSHUTDOWN_FUNCTION(crack); -ZEND_RINIT_FUNCTION(crack); -ZEND_RSHUTDOWN_FUNCTION(crack); -PHP_MINFO_FUNCTION(crack); - -ZEND_FUNCTION(crack_opendict); -ZEND_FUNCTION(crack_closedict); -ZEND_FUNCTION(crack_check); -ZEND_FUNCTION(crack_getlastmessage); - -ZEND_BEGIN_MODULE_GLOBALS(crack) - char *default_dictionary; - char *last_message; - long current_id; -ZEND_END_MODULE_GLOBALS(crack) - -#ifdef ZTS -#define CRACKG(v) TSRMG(crack_globals_id, zend_crack_globals *, v) -#else -#define CRACKG(v) (crack_globals.v) -#endif - -#else - -#define phpext_crack_ptr NULL - -#endif - -#endif /* ZEND_CRACK_H */ - - -/* - * Local variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ diff --git a/ext/crack/tests/001.phpt b/ext/crack/tests/001.phpt deleted file mode 100644 index dc18ef5559..0000000000 --- a/ext/crack/tests/001.phpt +++ /dev/null @@ -1,23 +0,0 @@ ---TEST-- -Check for crack presence ---SKIPIF-- -<?php if (!extension_loaded("crack")) print "skip"; ?> ---POST-- ---GET-- ---FILE-- -<?php -echo "crack extension is available"; -/* - you can add regression tests for your extension here - - the output of your test code has to be equal to the - text in the --EXPECT-- section below for the tests - to pass, differences between the output and the - expected text are interpreted as failure - - see php4/tests/README for further information on - writing regression tests -*/ -?> ---EXPECT-- -crack extension is available
\ No newline at end of file diff --git a/ext/mcal/CREDITS b/ext/mcal/CREDITS deleted file mode 100644 index 7d9c3a1290..0000000000 --- a/ext/mcal/CREDITS +++ /dev/null @@ -1,2 +0,0 @@ -MCAL -Mark Musone, Chuck Hagenbuch diff --git a/ext/mcal/config.m4 b/ext/mcal/config.m4 deleted file mode 100644 index c2f119c5e6..0000000000 --- a/ext/mcal/config.m4 +++ /dev/null @@ -1,45 +0,0 @@ -dnl -dnl $Id$ -dnl - -PHP_ARG_WITH(mcal,for MCAL support, -[ --with-mcal[=DIR] Include MCAL support.]) - -if test "$PHP_MCAL" != "no"; then - MCAL_DEFAULT_SEARCH=/usr/local - if test "$PHP_MCAL" = "yes"; then - MCAL_DIR=$MCAL_DEFAULT_SEARCH - else - PHP_EXPAND_PATH($PHP_MCAL, MCAL_DIR) - fi - - for i in $MCAL_DIR $MCAL_DIR/mcal $MCAL_DIR/mcal/include $MCAL_DIR/include/mcal $MCAL_DIR/include; do - if test -r "$i/mcal.h"; then - MCAL_INCLUDE=$i - fi - done - - for i in $MCAL_DIR $MCAL_DIR/mcal $MCAL_DIR/mcal/lib $MCAL_DIR/lib/mcal $MCAL_DIR/lib; do - if test -r "$i/libmcal.a"; then - MCAL_LIBRARY=$i - fi - done - - for i in mcal cal_misc icalroutines; do - if test ! -f "$MCAL_INCLUDE/$i.h"; then - AC_MSG_ERROR(Unable to locate your libmcal header files - $i.h should be in the directory you specify or in the include/ subdirectory below it - default search location is $MCAL_DEFAULT_SEARCH) - fi - done - - if test ! -f "$MCAL_LIBRARY/libmcal.a"; then - AC_MSG_ERROR(Unable to locate your libmcal library files - libmcal.a should be in the directory you specify or in the lib/ subdirectory below it - default search location is $MCAL_DEFAULT_SEARCH) - fi - - PHP_ADD_INCLUDE($MCAL_INCLUDE) - PHP_ADD_LIBPATH($MCAL_LIBRARY,MCAL_SHARED_LIBADD) - PHP_ADD_LIBRARY_DEFER(mcal,[],MCAL_SHARED_LIBADD) - PHP_SUBST(MCAL_SHARED_LIBADD) - AC_DEFINE(HAVE_MCAL,1,[ ]) - PHP_NEW_EXTENSION(mcal, php_mcal.c, $ext_shared) -fi - diff --git a/ext/mcal/php_mcal.c b/ext/mcal/php_mcal.c deleted file mode 100644 index 84cd362265..0000000000 --- a/ext/mcal/php_mcal.c +++ /dev/null @@ -1,1625 +0,0 @@ -/* - +----------------------------------------------------------------------+ - | PHP Version 4 | - +----------------------------------------------------------------------+ - | Copyright (c) 1997-2003 The PHP Group | - +----------------------------------------------------------------------+ - | This source file is subject to version 3.0 of the PHP license, | - | that is bundled with this package in the file LICENSE, and is | - | available through the world-wide-web at the following url: | - | http://www.php.net/license/3_0.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: Mark Musone <musone@chek.com> | - | Chuck Hagenbuch <chuck@horde.org> | - +----------------------------------------------------------------------+ -*/ - -#define MCAL1 - -#ifdef ERROR -#undef ERROR -#endif - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "php.h" - -#if HAVE_MCAL - -#include <time.h> -#include <stdio.h> -#include <ctype.h> -#include <signal.h> -#include <stdarg.h> -#include "mcal.h" -#include "php_mcal.h" -#include "zend_modules.h" -#include "ext/standard/info.h" -#include "ext/standard/basic_functions.h" -#ifdef PHP_WIN32 -#include "winsock2.h" -#endif - -static void cal_close_it(zend_rsrc_list_entry *rsrc TSRMLS_DC); - -typedef struct _php_mcal_le_struct { - CALSTREAM *mcal_stream; - long public; - CALEVENT *event; - long flags; -} pils; - - -typedef struct cal_list { - php_uint32 uid; - struct cal_list *next; -} cal_list_t; - -static cal_list_t *g_cal_list=NULL; -static cal_list_t *g_cal_list_end=NULL; -/* - * this array should be set up as: - * {"PHPScriptFunctionName",dllFunctionName,1} - */ - -function_entry mcal_functions[] = { - PHP_FE(mcal_open,NULL) - PHP_FE(mcal_close,NULL) - PHP_FE(mcal_popen,NULL) - PHP_FE(mcal_reopen,NULL) - PHP_FE(mcal_fetch_event,NULL) - PHP_FE(mcal_list_events,NULL) - PHP_FE(mcal_list_alarms,NULL) - PHP_FE(mcal_create_calendar,NULL) - PHP_FE(mcal_rename_calendar,NULL) - PHP_FE(mcal_delete_calendar,NULL) - PHP_FE(mcal_delete_event,NULL) - PHP_FE(mcal_append_event,NULL) - PHP_FE(mcal_store_event,NULL) - PHP_FE(mcal_snooze,NULL) - PHP_FE(mcal_event_set_category,NULL) - PHP_FE(mcal_event_set_title,NULL) - PHP_FE(mcal_event_set_description,NULL) - PHP_FE(mcal_event_set_start,NULL) - PHP_FE(mcal_event_set_end,NULL) - PHP_FE(mcal_event_set_alarm,NULL) - PHP_FE(mcal_event_set_class,NULL) - PHP_FE(mcal_event_add_attribute,NULL) - PHP_FE(mcal_is_leap_year,NULL) - PHP_FE(mcal_days_in_month,NULL) - PHP_FE(mcal_date_valid,NULL) - PHP_FE(mcal_time_valid,NULL) - PHP_FE(mcal_day_of_week,NULL) - PHP_FE(mcal_day_of_year,NULL) - PHP_FE(mcal_week_of_year,NULL) - PHP_FE(mcal_date_compare,NULL) - PHP_FE(mcal_event_init,NULL) - PHP_FE(mcal_next_recurrence,NULL) - PHP_FE(mcal_event_set_recur_none,NULL) - PHP_FE(mcal_event_set_recur_daily,NULL) - PHP_FE(mcal_event_set_recur_weekly,NULL) - PHP_FE(mcal_event_set_recur_monthly_mday,NULL) - PHP_FE(mcal_event_set_recur_monthly_wday,NULL) - PHP_FE(mcal_event_set_recur_yearly,NULL) - PHP_FE(mcal_fetch_current_stream_event,NULL) - {NULL, NULL, NULL} -}; - -zend_module_entry php_mcal_module_entry = { - STANDARD_MODULE_HEADER, - "mcal", - mcal_functions, - PHP_MINIT(mcal), - NULL, - NULL, - NULL, - PHP_MINFO(mcal), - NO_VERSION_YET, - STANDARD_MODULE_PROPERTIES -}; - -#ifdef COMPILE_DL_MCAL -ZEND_GET_MODULE(php_mcal) -#endif - -/* - I believe since this global is used ONLY within this module, - and nothing will link to this module, we can use the simple - thread local_ storage -*/ -static int le_mcal; -char *mcal_user; -char *mcal_password; - - -static void cal_close_it (zend_rsrc_list_entry *rsrc TSRMLS_DC) -{ - pils *mcal_le_struct = (pils *)rsrc->ptr; - - cal_close(mcal_le_struct->mcal_stream,0); - efree(mcal_le_struct); -} - - -PHP_MINFO_FUNCTION(mcal) -{ - char tmp[128]; - - php_info_print_table_start(); - php_info_print_table_row(2, "MCAL Support", "enabled" ); -#ifdef MCALVER - snprintf(tmp, 128, "%s - %d", CALVER, MCALVER); -#else - snprintf(tmp, 128, "%s", CALVER ); -#endif - php_info_print_table_row(2, "MCAL Version", tmp ); - php_info_print_table_end(); -} - -PHP_MINIT_FUNCTION(mcal) -{ - le_mcal = zend_register_list_destructors_ex(cal_close_it, NULL, "mcal", module_number); - - REGISTER_LONG_CONSTANT("MCAL_SUNDAY", SUNDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_MONDAY", MONDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_TUESDAY", TUESDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_WEDNESDAY", WEDNESDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_THURSDAY", THURSDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_FRIDAY", FRIDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_SATURDAY", SATURDAY, CONST_PERSISTENT | CONST_CS); - - REGISTER_LONG_CONSTANT("MCAL_JANUARY", JANUARY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_FEBRUARY", FEBRUARY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_MARCH", MARCH, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_APRIL", APRIL, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_MAY", MAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_JUNE", JUNE, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_JULY", JULY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_AUGUST", AUGUST, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_SEPTEMBER", SEPTEMBER, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_OCTOBER", OCTOBER, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_NOVEMBER", NOVEMBER, CONST_PERSISTENT | CONST_CS); - - REGISTER_LONG_CONSTANT("MCAL_RECUR_NONE", RECUR_NONE, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_RECUR_DAILY", RECUR_DAILY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_RECUR_WEEKLY", RECUR_WEEKLY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_RECUR_MONTHLY_MDAY", RECUR_MONTHLY_MDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_RECUR_MONTHLY_WDAY", RECUR_MONTHLY_WDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_RECUR_YEARLY", RECUR_YEARLY, CONST_PERSISTENT | CONST_CS); - - REGISTER_LONG_CONSTANT("MCAL_M_SUNDAY", M_SUNDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_MONDAY", M_MONDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_TUESDAY", M_TUESDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_WEDNESDAY", M_WEDNESDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_THURSDAY", M_THURSDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_FRIDAY", M_FRIDAY, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_SATURDAY", M_SATURDAY, CONST_PERSISTENT | CONST_CS); - - REGISTER_LONG_CONSTANT("MCAL_M_WEEKDAYS", M_WEEKDAYS, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_WEEKEND", M_WEEKEND, CONST_PERSISTENT | CONST_CS); - REGISTER_LONG_CONSTANT("MCAL_M_ALLDAYS", M_ALLDAYS, CONST_PERSISTENT | CONST_CS); - - return SUCCESS; -} - -static int add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC) -{ - HashTable *symtable; - - if (Z_TYPE_P(arg) == IS_OBJECT) { - symtable = Z_OBJPROP_P(arg); - } else { - symtable = Z_ARRVAL_P(arg); - } - return zend_hash_update(symtable, key, strlen(key)+1, (void *)&tmp, sizeof(zval *), NULL); -} - -static void php_mcal_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent) -{ - zval **calendar, **user, **passwd, **options; - CALSTREAM *mcal_stream; - pils *mcal_le_struct; - long flags=0; - int ind; - - int myargc = ZEND_NUM_ARGS(); - if (myargc < 3 || myargc > 4 || zend_get_parameters_ex(myargc, &calendar, &user, &passwd, &options) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_string_ex(calendar); - convert_to_string_ex(user); - convert_to_string_ex(passwd); - mcal_user = estrndup(Z_STRVAL_PP(user), Z_STRLEN_PP(user)); - mcal_password = estrndup(Z_STRVAL_PP(passwd), Z_STRLEN_PP(passwd)); - if (myargc == 4) { - convert_to_long_ex(options); - flags = Z_LVAL_PP(options); - } - mcal_stream = cal_open(NULL, Z_STRVAL_PP(calendar), 0); - efree(mcal_user); - efree(mcal_password); - - if (!mcal_stream) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't open stream %s\n", Z_STRVAL_PP(calendar)); - RETURN_FALSE; - } - - mcal_le_struct = emalloc(sizeof(pils)); - mcal_le_struct->mcal_stream = mcal_stream; - mcal_le_struct->event=calevent_new(); - - ind = zend_list_insert(mcal_le_struct, le_mcal); - RETURN_LONG(ind); -} - -static void php_mcal_event_init(struct _php_mcal_le_struct *mystruct) -{ - calevent_free(mystruct->event); - mystruct->event=calevent_new(); -} - -static void _php_make_event_object(zval *myzvalue, CALEVENT *event TSRMLS_DC) -{ - zval *start, *end, *recurend, *attrlist; - CALATTR *attr; - - object_init(myzvalue); - add_property_long(myzvalue,"id",event->id); - add_property_long(myzvalue,"public",event->public); - - MAKE_STD_ZVAL(start); - object_init(start); - if (event->start.has_date) { - add_property_long(start,"year",event->start.year); - add_property_long(start,"month",event->start.mon); - add_property_long(start,"mday",event->start.mday); - } - if (event->start.has_time) { - add_property_long(start,"hour",event->start.hour); - add_property_long(start,"min",event->start.min); - add_property_long(start,"sec",event->start.sec); - } - add_assoc_object(myzvalue, "start", start TSRMLS_CC); - - MAKE_STD_ZVAL(end); - object_init(end); - if (event->end.has_date) { - add_property_long(end,"year",event->end.year); - add_property_long(end,"month",event->end.mon); - add_property_long(end,"mday",event->end.mday); - } - if (event->end.has_time) { - add_property_long(end,"hour",event->end.hour); - add_property_long(end,"min",event->end.min); - add_property_long(end,"sec",event->end.sec); - } - add_assoc_object(myzvalue, "end", end TSRMLS_CC); - - if (event->category) - add_property_string(myzvalue,"category",event->category,1); - if (event->title) - add_property_string(myzvalue,"title",event->title,1); - if (event->description) - add_property_string(myzvalue,"description",event->description,1); - add_property_long(myzvalue,"alarm",event->alarm); - add_property_long(myzvalue,"recur_type",event->recur_type); - add_property_long(myzvalue,"recur_interval",event->recur_interval); - - MAKE_STD_ZVAL(recurend); - object_init(recurend); - if (event->recur_enddate.has_date) { - add_property_long(recurend,"year",event->recur_enddate.year); - add_property_long(recurend,"month",event->recur_enddate.mon); - add_property_long(recurend,"mday",event->recur_enddate.mday); - } - if (event->recur_enddate.has_time) { - add_property_long(recurend,"hour",event->recur_enddate.hour); - add_property_long(recurend,"min",event->recur_enddate.min); - add_property_long(recurend,"sec",event->recur_enddate.sec); - } - add_assoc_object(myzvalue, "recur_enddate", recurend TSRMLS_CC); - - add_property_long(myzvalue,"recur_data",event->recur_data.weekly_wday); - - if (event->attrlist) { - MAKE_STD_ZVAL(attrlist); - object_init(attrlist); - array_init(attrlist); - for (attr = event->attrlist; attr; attr = attr->next) { - add_assoc_string(attrlist, attr->name, attr->value, 1); - } - add_assoc_object(myzvalue, "attrlist", attrlist TSRMLS_CC); - } -} - -/* {{{ proto bool mcal_close(int stream_id [, int options]) - Close an MCAL stream */ -PHP_FUNCTION(mcal_close) -{ - zval **options, **streamind; - int ind, ind_type; - pils *mcal_le_struct=NULL; - int myargcount=ZEND_NUM_ARGS(); - long flags = 0; - - if (myargcount < 1 || myargcount > 2 || zend_get_parameters_ex(myargcount, &streamind, &options) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - if (myargcount==2) { - convert_to_long_ex(options); - flags = Z_LVAL_PP(options); - mcal_le_struct->flags = flags; - } - zend_list_delete(ind); - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto int mcal_open(string calendar, string user, string password [, int options]) - Open an MCAL stream to a calendar */ -PHP_FUNCTION(mcal_open) -{ - php_mcal_do_open(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); -} -/* }}} */ - -/* {{{ proto string mcal_popen(string calendar, string user, string password [, int options]) - Open a persistent MCAL stream to a calendar */ -PHP_FUNCTION(mcal_popen) -{ - php_mcal_do_open(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0); -} - -/* {{{ proto bool mcal_reopen(int stream_id, string calendar [, int options]) - Reopen MCAL stream to a new calendar */ -PHP_FUNCTION(mcal_reopen) -{ - zval **streamind, **calendar, **options; - CALSTREAM *mcal_stream=NULL; - pils *mcal_le_struct; - int ind, ind_type; - long flags=0; - long cl_flags=0; - int myargc=ZEND_NUM_ARGS(); - - if (myargc < 2 || myargc > 3 || zend_get_parameters_ex(myargc, &streamind, &calendar, &options) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - convert_to_string_ex(calendar); - if (myargc == 3) { - convert_to_long_ex(options); - flags = Z_LVAL_PP(options); - mcal_le_struct->flags = cl_flags; - } - if (mcal_stream == NULL) { - php_error_docref(NULL TSRMLS_CC, E_WARNING,"Couldn't re-open stream\n"); - RETURN_FALSE; - } - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool mcal_expunge(int stream_id) - Delete all events marked for deletion */ -PHP_FUNCTION(mcal_expunge) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct; - - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - /* cal_expunge (mcal_le_struct->mcal_stream); - */ - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto object mcal_fetch_event(int stream_id, int eventid [, int options]) - Fetch an event */ -PHP_FUNCTION(mcal_fetch_event) -{ - zval **streamind, **eventid, **options=NULL; - int ind, ind_type; - pils *mcal_le_struct=NULL; - CALEVENT *myevent; - int myargcount=ZEND_NUM_ARGS(); - - if (myargcount < 1 || myargcount > 3 || zend_get_parameters_ex(myargcount, &streamind, &eventid, &options) == FAILURE) { - WRONG_PARAM_COUNT; - } - convert_to_long_ex(streamind); - convert_to_long_ex(eventid); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - if (myargcount == 3) { - convert_to_long_ex(options); - } - cal_fetch(mcal_le_struct->mcal_stream, Z_LVAL_PP(eventid), &myevent); - if (myevent == NULL) { - RETURN_FALSE; - } - calevent_free(mcal_le_struct->event); - mcal_le_struct->event = myevent; - _php_make_event_object(return_value, mcal_le_struct->event TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto object mcal_fetch_current_stream_event(int stream_id) - Fetch the current event stored in the stream's event structure */ -PHP_FUNCTION(mcal_fetch_current_stream_event) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct=NULL; - int myargcount=ZEND_NUM_ARGS(); - - if (myargcount != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - _php_make_event_object(return_value, mcal_le_struct->event TSRMLS_CC); -} -/* }}} */ - -/* {{{ proto array mcal_list_events(int stream_id, object begindate [, object enddate]) - Returns list of UIDs for that day or range of days */ -PHP_FUNCTION(mcal_list_events) -{ - zval **streamind, **startyear, **startmonth, **startday; - zval **endyear, **endmonth, **endday; - int ind, ind_type; - pils *mcal_le_struct; - cal_list_t *my_cal_list; - int myargc; - datetime_t startdate=DT_INIT; - datetime_t enddate=DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if ((myargc != 1 && myargc != 7) || zend_get_parameters_ex(myargc, &streamind, &startyear, &startmonth, &startday, &endyear, &endmonth, &endday) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - /* Initialize return array */ - array_init(return_value); - - if (myargc == 7) { - convert_to_long_ex(startyear); - convert_to_long_ex(startmonth); - convert_to_long_ex(startday); - convert_to_long_ex(endyear); - convert_to_long_ex(endmonth); - convert_to_long_ex(endday); - dt_setdate(&startdate, Z_LVAL_PP(startyear), Z_LVAL_PP(startmonth), Z_LVAL_PP(startday)); - dt_setdate(&enddate, Z_LVAL_PP(endyear), Z_LVAL_PP(endmonth), Z_LVAL_PP(endday)); - } - else { - startdate = mcal_le_struct->event->start; - enddate = mcal_le_struct->event->end; - } - - g_cal_list = NULL; - cal_search_range(mcal_le_struct->mcal_stream, &startdate, &enddate); - my_cal_list = g_cal_list; - while (my_cal_list != NULL) { - add_next_index_long(return_value, my_cal_list->uid); - my_cal_list = my_cal_list->next; - free(g_cal_list); - g_cal_list = my_cal_list; - } -} -/* }}} */ - -/* {{{ proto bool mcal_create_calendar(int stream_id, string calendar) - Create a new calendar */ -PHP_FUNCTION(mcal_create_calendar) -{ - zval **streamind, **calendar; - int ind, ind_type; - pils *mcal_le_struct; - int myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &calendar) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(calendar); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - /* - if (mcal_create(mcal_le_struct->mcal_stream,Z_STRVAL_P(calendar))) - { - RETURN_TRUE; - } - else - { - RETURN_FALSE; - } - */ - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool mcal_rename_calendar(int stream_id, string src_calendar, string dest_calendar) - Rename a calendar */ -PHP_FUNCTION(mcal_rename_calendar) -{ - zval **streamind, **src_calendar, **dest_calendar; - int ind, ind_type; - pils *mcal_le_struct; - int myargc=ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &streamind, &src_calendar, &dest_calendar) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(src_calendar); - convert_to_string_ex(dest_calendar); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - /* - if(mcal_rename(mcal_le_struct->mcal_stream,Z_STRVAL_P(src_calendar),Z_STRVAL_P(dest_calendar))) {RETURN_TRUE;} - else {RETURN_FALSE; } - */ - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto array mcal_list_alarms(int stream_id, int year, int month, int day, int hour, int min, int sec) - List alarms for a given time */ -PHP_FUNCTION(mcal_list_alarms) -{ - zval **streamind, **year, **month, **day, **hour, **min, **sec; - datetime_t mydate=DT_INIT; - int ind, ind_type; - pils *mcal_le_struct; - cal_list_t *my_cal_list; - int myargc=ZEND_NUM_ARGS(); - if ((myargc != 1 && myargc != 7) || zend_get_parameters_ex(myargc, &streamind, &year, &month, &day, &hour, &min, &sec) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - array_init(return_value); - - if (myargc == 7) { - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(hour); - convert_to_long_ex(min); - convert_to_long_ex(sec); - dt_setdate(&mydate, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - dt_settime(&mydate, Z_LVAL_PP(hour), Z_LVAL_PP(min), Z_LVAL_PP(sec)); - } - else { - mydate = mcal_le_struct->event->start; - } - g_cal_list = NULL; - cal_search_alarm(mcal_le_struct->mcal_stream, &mydate); - my_cal_list = g_cal_list; - while (my_cal_list != NULL) { - add_next_index_long(return_value, my_cal_list->uid); - my_cal_list = my_cal_list->next; - free(g_cal_list); - g_cal_list = my_cal_list; - } -} -/* }}} */ - -/* {{{ proto bool mcal_delete_calendar(int stream_id, string calendar) - Delete calendar */ -PHP_FUNCTION(mcal_delete_calendar) -{ - zval **streamind, **calendar; - int ind, ind_type; - pils *mcal_le_struct; - int myargc=ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &calendar) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(calendar); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - /* if (mcal_delete_calendar(mcal_le_struct->mcal_stream,Z_STRVAL_P(calendar))) - { - RETURN_TRUE; - } - else - { - RETURN_FALSE; - } - */ - RETURN_TRUE; -} -/* }}} */ - -/* {{{ proto bool mcal_delete_event(int stream_id, int event_id) - Delete an event */ -PHP_FUNCTION(mcal_delete_event) -{ - zval **streamind, **event_id; - int ind, ind_type; - pils *mcal_le_struct; - int myargc=ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &event_id) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(event_id); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - if (cal_remove(mcal_le_struct->mcal_stream, Z_LVAL_PP(event_id))) { - RETURN_TRUE; - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto int mcal_append_event(int stream_id) - Append a new event to the calendar stream */ -PHP_FUNCTION(mcal_append_event) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - unsigned long event_id; - CALEVENT *myevent=NULL; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - myevent = mcal_le_struct->event; - cal_append(mcal_le_struct->mcal_stream, "INBOX", &event_id, myevent); - calevent_free(myevent); - RETURN_LONG(event_id); -} -/* }}} */ - -/* {{{ proto int mcal_store_event(int stream_id) - Store changes to an event */ -PHP_FUNCTION(mcal_store_event) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - CALEVENT *myevent=NULL; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - myevent = mcal_le_struct->event; - cal_store(mcal_le_struct->mcal_stream, myevent); - RETURN_LONG(myevent->id); -} -/* }}} */ - -/* {{{ proto bool mcal_snooze(int stream_id, int uid) - Snooze an alarm */ -PHP_FUNCTION(mcal_snooze) -{ - zval **streamind, **uid; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &uid) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(uid); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - if (cal_snooze(mcal_le_struct->mcal_stream, Z_LVAL_PP(uid))) { - RETURN_TRUE; - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto void mcal_event_set_category(int stream_id, string category) - Attach a category to an event */ -PHP_FUNCTION(mcal_event_set_category) -{ - zval **streamind, **category; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &category) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(category); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - mcal_le_struct->event->category = strdup(Z_STRVAL_PP(category)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_title(int stream_id, string title) - Attach a title to an event */ -PHP_FUNCTION(mcal_event_set_title) -{ - zval **streamind, **title; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &title) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(title); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - mcal_le_struct->event->title = strdup(Z_STRVAL_PP(title)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_description(int stream_id, string description) - Attach a description to an event */ -PHP_FUNCTION(mcal_event_set_description) -{ - zval **streamind, **description; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &description) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(description); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - mcal_le_struct->event->description = strdup(Z_STRVAL_PP(description)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_start(int stream_id, int year,int month, int day [[[, int hour], int min], int sec]) - Attach a start datetime to an event */ -PHP_FUNCTION(mcal_event_set_start) -{ - zval **streamind, **year, **month, **date, **hour, **min, **sec; - int ind, ind_type; - int myhour=0, mymin=0, mysec=0; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc < 4 || myargc > 7 || zend_get_parameters_ex(myargc, &streamind, &year, &month, &date, &hour, &min, &sec) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(date); - if (myargc > 4) convert_to_long_ex(hour); - if (myargc > 5) convert_to_long_ex(min); - if (myargc > 6) convert_to_long_ex(sec); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&(mcal_le_struct->event->start), Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(date)); - - if (myargc > 4) myhour = Z_LVAL_PP(hour); - if (myargc > 5) mymin = Z_LVAL_PP(min); - if (myargc > 6) mysec = Z_LVAL_PP(sec); - if (myargc > 4) dt_settime(&(mcal_le_struct->event->start), myhour, mymin, mysec); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_end(int stream_id, int year,int month, int day [[[, int hour], int min], int sec]) - Attach an end datetime to an event */ -PHP_FUNCTION(mcal_event_set_end) -{ - zval **streamind, **year, **month, **date, **hour, **min, **sec; - int ind, ind_type; - /* initialize these to zero to make sure we don't use them - uninitialized (and to avoid the gcc warning) */ - int myhour = 0; int mymin = 0; int mysec = 0; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc < 4 || myargc > 7 || zend_get_parameters_ex(myargc, &streamind, &year, &month, &date, &hour, &min, &sec) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(date); - if (myargc > 4) convert_to_long_ex(hour); - if (myargc > 5) convert_to_long_ex(min); - if (myargc > 6) convert_to_long_ex(sec); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&(mcal_le_struct->event->end), Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(date)); - - if (myargc > 4) myhour = Z_LVAL_PP(hour); - if (myargc > 5) mymin = Z_LVAL_PP(min); - if (myargc > 6) mysec = Z_LVAL_PP(sec); - if (myargc > 4) dt_settime(&(mcal_le_struct->event->end), myhour, mymin, mysec); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_alarm(int stream_id, int alarm) - Add an alarm to the streams global event */ -PHP_FUNCTION(mcal_event_set_alarm) -{ - zval **streamind, **alarm; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - myargc=ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &alarm) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(alarm); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - mcal_le_struct->event->alarm = Z_LVAL_PP(alarm); -} -/* }}} */ - -/* {{{ proto void mcal_event_init(int stream_id) - Initialize a streams global event */ -PHP_FUNCTION(mcal_event_init) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - php_mcal_event_init(mcal_le_struct); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_class(int stream_id, int class) - Add an class to the streams global event */ -PHP_FUNCTION(mcal_event_set_class) -{ - zval **streamind, **class; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &streamind, &class) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(class); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - mcal_le_struct->event->public = Z_LVAL_PP(class); -} -/* }}} */ - -/* {{{ proto bool mcal_event_add_attribute(int stream_id, string attribute, string value) - Add an attribute and value to an event */ -PHP_FUNCTION(mcal_event_add_attribute) -{ - zval **streamind, **attribute, **val; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &streamind, &attribute, &val) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_string_ex(attribute); - convert_to_string_ex(val); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } -#if MCALVER >= 20000121 - if (calevent_setattr(mcal_le_struct->event, Z_STRVAL_PP(attribute), Z_STRVAL_PP(val))) { - RETURN_TRUE; - } - else -#endif - { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto bool mcal_is_leap_year(int year) - Returns true if year is a leap year, false if not */ -PHP_FUNCTION(mcal_is_leap_year) -{ - zval **year; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 1 || zend_get_parameters_ex(1, &year) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(year); - - if (isleapyear(Z_LVAL_PP(year))) { - RETURN_TRUE; - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto int mcal_days_in_month(int month, bool leap_year) - Returns the number of days in the given month, needs to know if the year is a leap year or not */ -PHP_FUNCTION(mcal_days_in_month) -{ - zval **month, **leap; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 2 || zend_get_parameters_ex(2, &month, &leap) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(month); - convert_to_long_ex(leap); - convert_to_boolean_ex(leap); - - RETURN_LONG(daysinmonth(Z_LVAL_PP(month), Z_LVAL_PP(leap))); -} -/* }}} */ - -/* {{{ proto bool mcal_date_valid(int year, int month, int day) - Returns true if the date is a valid date */ -PHP_FUNCTION(mcal_date_valid) -{ - zval **year, **month, **day; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &year, &month, &day) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - - if (datevalid(Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day))) { - RETURN_TRUE; - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto bool mcal_time_valid(int hour, int min, int sec) - Returns true if the time is a valid time */ -PHP_FUNCTION(mcal_time_valid) -{ - zval **hour, **min, **sec; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &hour, &min, &sec) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(hour); - convert_to_long_ex(min); - convert_to_long_ex(sec); - - if (timevalid(Z_LVAL_PP(hour), Z_LVAL_PP(min), Z_LVAL_PP(sec))) { - RETURN_TRUE; - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto int mcal_day_of_week(int year, int month, int day) - Returns the day of the week of the given date */ -PHP_FUNCTION(mcal_day_of_week) -{ - zval **year, **month, **day; - int myargc; - datetime_t mydate; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &year, &month, &day) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - - dt_init(&mydate); - dt_setdate(&mydate, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - - RETURN_LONG(dt_dayofweek(&mydate)); -} -/* }}} */ - -/* {{{ proto int mcal_day_of_year(int year, int month, int day) - Returns the day of the year of the given date */ -PHP_FUNCTION(mcal_day_of_year) -{ - zval **year, **month, **day; - int myargc; - datetime_t mydate; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &year, &month, &day) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - - dt_init(&mydate); - dt_setdate(&mydate, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - - RETURN_LONG(dt_dayofyear(&mydate)); -} -/* }}} */ - -/* {{{ proto int mcal_week_of_year(int day, int month, int year) - Returns the week number of the given date */ -PHP_FUNCTION(mcal_week_of_year) -{ - zval **year, **month, **day; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &day, &month, &year) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - - if (datevalid(Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day))) { - RETURN_LONG(dt_weekofyear(Z_LVAL_PP(day), Z_LVAL_PP(month), Z_LVAL_PP(year))); - } - else { - RETURN_FALSE; - } -} -/* }}} */ - -/* {{{ proto int mcal_date_compare(int ayear, int amonth, int aday, int byear, int bmonth, int bday) - Returns <0, 0, >0 if a<b, a==b, a>b respectively */ -PHP_FUNCTION(mcal_date_compare) -{ - zval **ayear, **amonth, **aday; - zval **byear, **bmonth, **bday; - int myargc; - datetime_t myadate, mybdate; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 6 || zend_get_parameters_ex(6, &ayear, &amonth, &aday, &byear, &bmonth, &bday) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(ayear); - convert_to_long_ex(amonth); - convert_to_long_ex(aday); - convert_to_long_ex(byear); - convert_to_long_ex(bmonth); - convert_to_long_ex(bday); - - dt_init(&myadate); - dt_init(&mybdate); - dt_setdate(&myadate, Z_LVAL_PP(ayear), Z_LVAL_PP(amonth), Z_LVAL_PP(aday)); - dt_setdate(&mybdate, Z_LVAL_PP(byear), Z_LVAL_PP(bmonth), Z_LVAL_PP(bday)); - - RETURN_LONG(dt_compare(&myadate, &mybdate)); -} -/* }}} */ - -/* {{{ proto object mcal_next_recurrence(int stream_id, int weekstart, array next) - Returns an object filled with the next date the event occurs, on or after the supplied date. Returns empty date field if event does not occur or something is invalid. */ -PHP_FUNCTION(mcal_next_recurrence) -{ - zval **streamind, **weekstart, **next, **zvalue; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t mydate; - - myargc=ZEND_NUM_ARGS(); - if (myargc != 3 || zend_get_parameters_ex(3, &streamind, &weekstart, &next) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(weekstart); - convert_to_array_ex(next); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - if (zend_hash_find(Z_ARRVAL_PP(next), "year", sizeof("year"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.year = Z_LVAL_PP(zvalue); - } - if (zend_hash_find(Z_ARRVAL_PP(next), "month", sizeof("month"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.mon = Z_LVAL_PP(zvalue); - } - if (zend_hash_find(Z_ARRVAL_PP(next), "mday", sizeof("mday"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.mday = Z_LVAL_PP(zvalue); - } - if (zend_hash_find(Z_ARRVAL_PP(next), "hour", sizeof("hour"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.hour = Z_LVAL_PP(zvalue); - } - if (zend_hash_find(Z_ARRVAL_PP(next), "min", sizeof("min"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.min = Z_LVAL_PP(zvalue); - } - if (zend_hash_find(Z_ARRVAL_PP(next), "sec", sizeof("sec"), (void **) &zvalue) == SUCCESS) { - SEPARATE_ZVAL(zvalue); - convert_to_long_ex(zvalue); - mydate.sec = Z_LVAL_PP(zvalue); - } - - calevent_next_recurrence(mcal_le_struct->event, &mydate, Z_LVAL_PP(weekstart)); - - object_init(return_value); - - if (mydate.has_date) { - add_property_long(return_value, "year", mydate.year); - add_property_long(return_value, "month", mydate.mon); - add_property_long(return_value, "mday", mydate.mday); - } - if (mydate.has_time) { - add_property_long(return_value, "hour", mydate.hour); - add_property_long(return_value, "min", mydate.min); - add_property_long(return_value, "sec", mydate.sec); - } -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_none(int stream_id) - Create a daily recurrence */ -PHP_FUNCTION(mcal_event_set_recur_none) -{ - zval **streamind; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 1 || zend_get_parameters_ex(1, &streamind) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - calevent_recur_none(mcal_le_struct->event); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_daily(int stream_id, int year, int month, int day, int interval) - Create a daily recurrence */ -PHP_FUNCTION(mcal_event_set_recur_daily) -{ - zval **streamind, **year, **month, **day, **interval; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t endtime = DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 5 || zend_get_parameters_ex(5, &streamind, &year, &month, &day, &interval) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(interval); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&endtime, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - calevent_recur_daily(mcal_le_struct->event, &endtime, Z_LVAL_PP(interval)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_weekly(int stream_id, int year, int month, int day, int interval, int weekdays) - Create a weekly recurrence */ -PHP_FUNCTION(mcal_event_set_recur_weekly) -{ - zval **streamind, **year, **month, **day, **interval, **weekdays; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t endtime=DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 6 || zend_get_parameters_ex(6, &streamind, &year, &month, &day, &interval, &weekdays) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(interval); - convert_to_long_ex(weekdays); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&endtime, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - calevent_recur_weekly(mcal_le_struct->event, &endtime, Z_LVAL_PP(interval), Z_LVAL_PP(weekdays)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_monthly_mday(int stream_id, int year, int month, int day, int interval) - Create a monthly by day recurrence */ -PHP_FUNCTION(mcal_event_set_recur_monthly_mday) -{ - zval **streamind, **year, **month, **day, **interval; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t endtime=DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 5 || zend_get_parameters_ex(5, &streamind, &year, &month, &day, &interval) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(interval); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&endtime, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - calevent_recur_monthly_mday(mcal_le_struct->event, &endtime, Z_LVAL_PP(interval)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_monthly_wday(int stream_id, int year, int month, int day, int interval) - Create a monthly by week recurrence */ -PHP_FUNCTION(mcal_event_set_recur_monthly_wday) -{ - zval **streamind, **year, **month, **day, **interval; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t endtime=DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 5 || zend_get_parameters_ex(5, &streamind, &year, &month, &day, &interval) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(interval); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&endtime, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - calevent_recur_monthly_wday(mcal_le_struct->event, &endtime, Z_LVAL_PP(interval)); -} -/* }}} */ - -/* {{{ proto void mcal_event_set_recur_yearly(int stream_id, int year, int month, int day, int interval) - Create a yearly recurrence */ -PHP_FUNCTION(mcal_event_set_recur_yearly) -{ - zval **streamind, **year, **month, **day, **interval; - int ind, ind_type; - pils *mcal_le_struct; - int myargc; - datetime_t endtime=DT_INIT; - - myargc = ZEND_NUM_ARGS(); - if (myargc != 5 || zend_get_parameters_ex(5, &streamind, &year, &month, &day, &interval) == FAILURE) { - WRONG_PARAM_COUNT; - } - - convert_to_long_ex(streamind); - convert_to_long_ex(year); - convert_to_long_ex(month); - convert_to_long_ex(day); - convert_to_long_ex(interval); - - ind = Z_LVAL_PP(streamind); - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; - } - - dt_setdate(&endtime, Z_LVAL_PP(year), Z_LVAL_PP(month), Z_LVAL_PP(day)); - calevent_recur_yearly(mcal_le_struct->event, &endtime, Z_LVAL_PP(interval)); -} -/* }}} */ - - -/* Interfaces to callbacks */ -void cc_searched (unsigned long cal_uid) -{ - if (g_cal_list == NULL) { - g_cal_list = malloc(sizeof(struct cal_list)); - g_cal_list->uid = cal_uid; - g_cal_list->next = NULL; - g_cal_list_end = g_cal_list; - } - else { - g_cal_list_end->next = malloc(sizeof(struct cal_list)); - g_cal_list_end = g_cal_list_end->next; - g_cal_list_end->uid = cal_uid; - g_cal_list_end->next = NULL; - } -} - -void cc_appended(php_uint32 uid) -{ -} - -void cc_fetched(const CALEVENT *event) -{ -} - -void cc_login(const char **user, const char **pwd) -{ - *user=mcal_user; - *pwd=mcal_password; -} - -void cc_vlog(const char *fmt,va_list ap) -{ -} - -void cc_vdlog(const char *fmt,va_list ap) -{ -} - -#endif - -/* - * Local_ variables: - * tab-width: 4 - * c-basic-offset: 4 - * End: - */ diff --git a/ext/mcal/php_mcal.h b/ext/mcal/php_mcal.h deleted file mode 100644 index 1845b4cfd1..0000000000 --- a/ext/mcal/php_mcal.h +++ /dev/null @@ -1,64 +0,0 @@ -/* $Id$ */ - -#ifndef PHP_MCAL_H -#define PHP_MCAL_H - -#if HAVE_MCAL - -/* Functions accessable to PHP */ -extern zend_module_entry php_mcal_module_entry; -#define php_mcal_module_ptr &php_mcal_module_entry - -extern int mcal_init_request(INIT_FUNC_ARGS); -extern int mcal_end_request(void); - -PHP_MINIT_FUNCTION(mcal); -PHP_MINFO_FUNCTION(mcal); - -PHP_FUNCTION(mcal_open); -PHP_FUNCTION(mcal_popen); -PHP_FUNCTION(mcal_reopen); -PHP_FUNCTION(mcal_close); -PHP_FUNCTION(mcal_fetch_event); -PHP_FUNCTION(mcal_list_events); -PHP_FUNCTION(mcal_create_calendar); -PHP_FUNCTION(mcal_rename_calendar); -PHP_FUNCTION(mcal_delete_calendar); -PHP_FUNCTION(mcal_append_event); -PHP_FUNCTION(mcal_store_event); -PHP_FUNCTION(mcal_delete_event); -PHP_FUNCTION(mcal_snooze); -PHP_FUNCTION(mcal_list_alarms); -PHP_FUNCTION(mcal_event_set_category); -PHP_FUNCTION(mcal_event_set_title); -PHP_FUNCTION(mcal_event_set_description); -PHP_FUNCTION(mcal_event_set_start); -PHP_FUNCTION(mcal_event_set_end); -PHP_FUNCTION(mcal_event_set_alarm); -PHP_FUNCTION(mcal_event_set_class); -PHP_FUNCTION(mcal_event_add_attribute); -PHP_FUNCTION(mcal_is_leap_year); -PHP_FUNCTION(mcal_days_in_month); -PHP_FUNCTION(mcal_date_valid); -PHP_FUNCTION(mcal_time_valid); -PHP_FUNCTION(mcal_day_of_week); -PHP_FUNCTION(mcal_day_of_year); -PHP_FUNCTION(mcal_week_of_year); -PHP_FUNCTION(mcal_date_compare); -PHP_FUNCTION(mcal_event_init); -PHP_FUNCTION(mcal_next_recurrence); -PHP_FUNCTION(mcal_event_set_recur_none); -PHP_FUNCTION(mcal_event_set_recur_daily); -PHP_FUNCTION(mcal_event_set_recur_weekly); -PHP_FUNCTION(mcal_event_set_recur_monthly_mday); -PHP_FUNCTION(mcal_event_set_recur_monthly_wday); -PHP_FUNCTION(mcal_event_set_recur_yearly); -PHP_FUNCTION(mcal_fetch_current_stream_event); - -#else -#define php_mcal_module_ptr NULL -#endif /* HAVE_MCAL */ - -#define phpext_mcal_ptr php_mcal_module_ptr - -#endif diff --git a/php.ini-dist b/php.ini-dist index e3a9fc83ac..abf77c72ec 100644 --- a/php.ini-dist +++ b/php.ini-dist @@ -535,9 +535,7 @@ default_socket_timeout = 60 ; ;extension=php_bz2.dll ;extension=php_cpdf.dll -;extension=php_crack.dll ;extension=php_curl.dll -;extension=php_db.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_dbx.dll @@ -546,13 +544,11 @@ default_socket_timeout = 60 ;extension=php_filepro.dll ;extension=php_gd2.dll ;extension=php_gettext.dll -;extension=php_hyperwave.dll ;extension=php_iconv.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll ;extension=php_imap.dll ;extension=php_interbase.dll -;extension=php_java.dll ;extension=php_ldap.dll ;extension=php_mbstring.dll ;extension=php_mcrypt.dll @@ -567,7 +563,6 @@ default_socket_timeout = 60 ;extension=php_oracle.dll ;extension=php_pdf.dll ;extension=php_pgsql.dll -;extension=php_printer.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_sockets.dll @@ -1113,11 +1108,6 @@ sockets.use_system_read = On ;fbsql.max_results = 128 ;fbsql.batchSize = 1000 -[Crack] -; Modify the setting below to match the directory location of the cracklib -; dictionary files. Include the base filename, but not the file extension. -; crack.default_dictionary = "c:\php\lib\cracklib_dict" - [exif] ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. ; With mbstring support this will automatically be converted into the encoding diff --git a/php.ini-recommended b/php.ini-recommended index bcf28c248c..b78fc39f68 100644 --- a/php.ini-recommended +++ b/php.ini-recommended @@ -554,9 +554,7 @@ default_socket_timeout = 60 ; ;extension=php_bz2.dll ;extension=php_cpdf.dll -;extension=php_crack.dll ;extension=php_curl.dll -;extension=php_db.dll ;extension=php_dba.dll ;extension=php_dbase.dll ;extension=php_dbx.dll @@ -565,7 +563,6 @@ default_socket_timeout = 60 ;extension=php_filepro.dll ;extension=php_gd2.dll ;extension=php_gettext.dll -;extension=php_hyperwave.dll ;extension=php_iconv.dll ;extension=php_ifx.dll ;extension=php_iisfunc.dll @@ -586,7 +583,6 @@ default_socket_timeout = 60 ;extension=php_oracle.dll ;extension=php_pdf.dll ;extension=php_pgsql.dll -;extension=php_printer.dll ;extension=php_shmop.dll ;extension=php_snmp.dll ;extension=php_sockets.dll @@ -1126,11 +1122,6 @@ sockets.use_system_read = On ;fbsql.max_results = 128 ;fbsql.batchSize = 1000 -[Crack] -; Modify the setting below to match the directory location of the cracklib -; dictionary files. Include the base filename, but not the file extension. -; crack.default_dictionary = "c:\php\lib\cracklib_dict" - [exif] ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. ; With mbstring support this will automatically be converted into the encoding |