cvs: /php4/ext/mcal php_mcal.c php_mcal.h

From: Date: Sat, 26 Feb 2000 03:09:41 +0000
Subject: cvs: /php4/ext/mcal php_mcal.c php_mcal.h
Groups: php.version4 
Request: Send a blank email to php-version4+get-11019@lists.php.net to get a copy of this message
chagenbu Fri Feb 25 19:09:41 2000 EDT Modified files: /php4/ext/mcal php_mcal.c php_mcal.h Log: - Removing the code that checks for Zend, since this is distinctly php4-specific now. - bringing it up to date with the mcal functions in php3 - cleanups Unfortunately, it still segfaults. I'll file a bug report about that... Index: php4/ext/mcal/php_mcal.c diff -u php4/ext/mcal/php_mcal.c:1.3 php4/ext/mcal/php_mcal.c:1.4 --- php4/ext/mcal/php_mcal.c:1.3 Thu Feb 24 08:53:38 2000 +++ php4/ext/mcal/php_mcal.c Fri Feb 25 19:09:10 2000 @@ -24,6 +24,7 @@ | contact core@php.net. | +----------------------------------------------------------------------+ | Authors: Mark Musone <musone@chek.com> | + | Chuck Hagenbuch <chuck@horde.org> | +----------------------------------------------------------------------+ */ @@ -34,9 +35,6 @@ #endif #include "php.h" -#ifndef ZEND_VERSION -#include "internal_functions.h" -#endif #if COMPILE_DL #include "dl/phpdl.h" @@ -49,9 +47,6 @@ #include <ctype.h> #include <signal.h> #include <stdarg.h> -#ifndef ZEND_VERSION -#include "php3_list.h" -#endif #include "mcal.h" #include "php_mcal.h" #include "modules.h" @@ -96,6 +91,7 @@ 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) @@ -114,6 +110,7 @@ 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) @@ -123,13 +120,9 @@ {NULL, NULL, NULL} }; -#ifdef ZEND_VERSION zend_module_entry php_mcal_module_entry = { - CALVER, mcal_functions, PHP_MINIT(mcal), NULL, NULL, NULL, PHP_MINFO(mcal), STANDARD_MODULE_PROPERTIES + "Modular Calendar Access Library", mcal_functions, PHP_MINIT(mcal), NULL, NULL, NULL, PHP_MINFO(mcal), STANDARD_MODULE_PROPERTIES }; -#else -zend_module_entry php_mcal_module_entry = {"mcal", mcal_functions, PHP_MINIT_FUNCTION, NULL, NULL, NULL, PHP_MINFO_FUNCTION, 0, 0, 0, NULL}; -#endif #if COMPILE_DL DLEXPORT zend_module_entry *get_module(void) { return &php_mcal_module_entry; } @@ -153,26 +146,17 @@ } -#ifdef ZEND_VERSION PHP_MINFO_FUNCTION(mcal) -#else -void PHP_MINFO_FUNCTION(void) -#endif { php_printf("Mcal Support enabled<br>"); php_printf("<table>"); php_printf("<tr><td>Mcal Version:</td>"); - php_printf("<td>%s</td>",CALVER); + php_printf("<td>%s</td>", CALVER); php_printf("</tr></table>"); } -#ifdef ZEND_VERSION PHP_MINIT_FUNCTION(mcal) -#else -int PHP_MINIT_FUNCTION(INIT_FUNC_ARGS) -#endif { - le_mcal = register_list_destructors(cal_close_it,NULL); REGISTER_MAIN_LONG_CONSTANT("MCAL_SUNDAY",SUNDAY, CONST_PERSISTENT | CONST_CS); @@ -195,7 +179,6 @@ REGISTER_MAIN_LONG_CONSTANT("MCAL_OCTOBER",OCTOBER, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_NOVEMBER",NOVEMBER, CONST_PERSISTENT | CONST_CS); - REGISTER_MAIN_LONG_CONSTANT("MCAL_RECUR_NONE",RECUR_NONE, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_RECUR_DAILY",RECUR_DAILY, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_RECUR_WEEKLY",RECUR_WEEKLY, CONST_PERSISTENT | CONST_CS); @@ -203,7 +186,6 @@ REGISTER_MAIN_LONG_CONSTANT("MCAL_RECUR_MONTHLY_WDAY",RECUR_MONTHLY_WDAY, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_RECUR_YEARLY",RECUR_YEARLY, CONST_PERSISTENT | CONST_CS); - REGISTER_MAIN_LONG_CONSTANT("MCAL_M_SUNDAY",M_SUNDAY, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_M_MONDAY",M_MONDAY, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_M_TUESDAY",M_TUESDAY, CONST_PERSISTENT | CONST_CS); @@ -216,25 +198,20 @@ REGISTER_MAIN_LONG_CONSTANT("MCAL_M_WEEKEND",M_WEEKEND, CONST_PERSISTENT | CONST_CS); REGISTER_MAIN_LONG_CONSTANT("MCAL_M_ALLDAYS",M_ALLDAYS, CONST_PERSISTENT | CONST_CS); - return SUCCESS; } -static int add_assoc_object(pval *arg, char *key, pval tmp) +static int add_assoc_object(pval *arg, char *key, pval *tmp) { -#ifdef ZEND_VERSION - HashTable *symtable; + HashTable *symtable; - if (arg->type == IS_OBJECT) { - symtable = arg->value.obj.properties; - } else { - symtable = arg->value.ht; - } - return zend_hash_update(symtable, key, strlen(key)+1, (void *) &tmp, sizeof(pval *), NULL); -#else - return zend_hash_update(arg->value.ht, key, strlen(key)+1, (void *) &tmp, sizeof(pval), NULL); -#endif + if (arg->type == IS_OBJECT) { + symtable = arg->value.obj.properties; + } else { + symtable = arg->value.ht; + } + return zend_hash_update(symtable, key, strlen(key)+1, (void *)&tmp, sizeof(pval *), NULL); } @@ -260,7 +237,7 @@ convert_to_string(passwd); strcpy(mcal_user,user->value.str.val); strcpy(mcal_password,passwd->value.str.val); - if(myargc ==4) { + if (myargc == 4) { convert_to_long(options); flags=options->value.lval; php_printf("option is: %d\n",options->value.lval); @@ -284,29 +261,29 @@ Close an MCAL stream */ PHP_FUNCTION(mcal_close) { - pval *options, *streamind; - int ind, ind_type; - pils *mcal_le_struct=NULL; - int myargcount=ARG_COUNT(ht); - long flags = 0; + pval *options, *streamind; + int ind, ind_type; + pils *mcal_le_struct=NULL; + int myargcount=ARG_COUNT(ht); + long flags = 0; - if (myargcount < 1 || myargcount > 2 || getParameters(ht, myargcount, &streamind, &options) == FAILURE) { - WRONG_PARAM_COUNT; - } - convert_to_long(streamind); - ind = streamind->value.lval; - mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct ) { - php_error(E_WARNING, "Unable to find stream pointer"); - RETURN_FALSE; + if (myargcount < 1 || myargcount > 2 || getParameters(ht, myargcount, &streamind, &options) == FAILURE) { + WRONG_PARAM_COUNT; } - if(myargcount==2) { - convert_to_long(options); - flags = options->value.lval; - mcal_le_struct->flags = flags; - } - zend_list_delete(ind); - RETURN_TRUE; + convert_to_long(streamind); + ind = streamind->value.lval; + mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); + if (!mcal_le_struct ) { + php_error(E_WARNING, "Unable to find stream pointer"); + RETURN_FALSE; + } + if(myargcount==2) { + convert_to_long(options); + flags = options->value.lval; + mcal_le_struct->flags = flags; + } + zend_list_delete(ind); + RETURN_TRUE; } /* }}} */ @@ -347,7 +324,7 @@ } convert_to_string(calendar); - if(myargc == 3) { + if (myargc == 3) { convert_to_long(options); flags = options->value.lval; mcal_le_struct->flags = cl_flags; @@ -400,18 +377,18 @@ CALEVENT *myevent; int myargcount=ARG_COUNT(ht); - if (myargcount < 1 || myargcount > 3 || getParameters(ht, myargcount, &streamind, &eventid,&options) == FAILURE) { + if (myargcount < 1 || myargcount > 3 || getParameters(ht, myargcount, &streamind, &eventid, &options) == FAILURE) { WRONG_PARAM_COUNT; } convert_to_long(streamind); convert_to_long(eventid); ind = streamind->value.lval; mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct ) { + if (!mcal_le_struct) { php_error(E_WARNING, "Unable to find stream pointer"); RETURN_FALSE; - } - if(myargcount==3) { + } + if (myargcount==3) { convert_to_long(options); } cal_fetch(mcal_le_struct->mcal_stream,eventid->value.lval,&myevent); @@ -452,45 +429,40 @@ -void make_event_object(pval *mypvalue,CALEVENT *event) +void make_event_object(pval *mypvalue, CALEVENT *event) { - pval start,end,recurend; - object_init(mypvalue); - add_property_long(mypvalue,"id",event->id); - add_property_long(mypvalue,"public",event->public); - 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(mypvalue, "start",start); - - 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(mypvalue, "end",end); - + pval *start, *end, *recurend; + object_init(mypvalue); + add_property_long(mypvalue,"id",event->id); + add_property_long(mypvalue,"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(mypvalue, "start",start); + + 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(mypvalue, "end",end); if (event->category) add_property_string(mypvalue,"category",event->category,1); @@ -501,21 +473,22 @@ add_property_long(mypvalue,"alarm",event->alarm); add_property_long(mypvalue,"recur_type",event->recur_type); add_property_long(mypvalue,"recur_interval",event->recur_interval); - 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(mypvalue, "recur_enddate",recurend); - add_property_long(mypvalue,"recur_data",event->recur_data.weekly_wday); + + 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(mypvalue, "recur_enddate",recurend); + + add_property_long(mypvalue,"recur_data",event->recur_data.weekly_wday); } @@ -764,53 +737,44 @@ php_error(E_WARNING, "Unable to find stream pointer"); RETURN_FALSE; } - if (cal_remove(mcal_le_struct->mcal_stream,uid->value.lval)) - { + if (cal_remove(mcal_le_struct->mcal_stream,uid->value.lval)) { RETURN_TRUE; - } - else - { + } + else { RETURN_FALSE; - } + } } /* }}} */ PHP_FUNCTION(mcal_popen){ } - -/* {{{ proto string mcal_store_event(int stream_id, object event) - Store an event */ -PHP_FUNCTION(mcal_store_event) +/* {{{ proto string mcal_append_event(int stream_id) + Append a new event to the calendar stream */ +PHP_FUNCTION(mcal_append_event) { - pval *streamind; + pval *streamind; int ind, ind_type; pils *mcal_le_struct; int myargc; unsigned long uid; - CALEVENT *myevent; + CALEVENT *myevent=NULL; + myargc=ARG_COUNT(ht); - if (myargc !=1 || getParameters(ht,myargc,&streamind) == FAILURE) { + if (myargc != 1 || getParameters(ht,myargc,&streamind) == FAILURE) { WRONG_PARAM_COUNT; } - + convert_to_long(streamind); - - ind = streamind->value.lval; - + mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); - if (!mcal_le_struct ) { php_error(E_WARNING, "Unable to find stream pointer"); RETURN_FALSE; } - - /* Initialize return array */ - if (array_init(return_value) == FAILURE) { - RETURN_FALSE; - } + myevent=mcal_le_struct->event; cal_append(mcal_le_struct->mcal_stream,"INBOX",&uid,myevent); calevent_free(myevent); @@ -818,6 +782,36 @@ } /* }}} */ +/* {{{ proto string mcal_store_event(int stream_id) + Store changes to an event */ +PHP_FUNCTION(mcal_store_event) +{ + pval *streamind; + int ind, ind_type; + pils *mcal_le_struct; + int myargc; + CALEVENT *myevent=NULL; + + myargc=ARG_COUNT(ht); + if (myargc !=1 || getParameters(ht,myargc,&streamind) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_long(streamind); + ind = streamind->value.lval; + + mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); + if (!mcal_le_struct ) { + php_error(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 string mcal_snooze(int stream_id, int uid) Snooze an alarm */ @@ -1308,56 +1302,81 @@ } - if(zend_hash_find(next->value.ht,"year",sizeof("year"),(void **) &pvalue)== SUCCESS){ - - convert_to_long(pvalue); - mydate.year=(pvalue)->value.lval; + if (zend_hash_find(next->value.ht,"year",sizeof("year"),(void **) &pvalue)== SUCCESS) { + + convert_to_long(pvalue); + mydate.year=(pvalue)->value.lval; } if(zend_hash_find(next->value.ht,"month",sizeof("month"),(void **) &pvalue)== SUCCESS){ - convert_to_long(pvalue); - mydate.mon=(pvalue)->value.lval; + convert_to_long(pvalue); + mydate.mon=(pvalue)->value.lval; } if(zend_hash_find(next->value.ht,"mday",sizeof("mday"),(void **) &pvalue)== SUCCESS){ - convert_to_long(pvalue); - mydate.mday=(pvalue)->value.lval; + convert_to_long(pvalue); + mydate.mday=(pvalue)->value.lval; } if(zend_hash_find(next->value.ht,"hour",sizeof("hour"),(void **) &pvalue)== SUCCESS){ - convert_to_long(pvalue); - mydate.hour=(pvalue)->value.lval; + convert_to_long(pvalue); + mydate.hour=(pvalue)->value.lval; } if(zend_hash_find(next->value.ht,"min",sizeof("min"),(void **) &pvalue)== SUCCESS){ - convert_to_long(pvalue); - mydate.min=(pvalue)->value.lval; + convert_to_long(pvalue); + mydate.min=(pvalue)->value.lval; } if(zend_hash_find(next->value.ht,"sec",sizeof("sec"),(void **) &pvalue)== SUCCESS){ - convert_to_long(pvalue); - mydate.sec=(pvalue)->value.lval; + convert_to_long(pvalue); + mydate.sec=(pvalue)->value.lval; } calevent_next_recurrence(mcal_le_struct->event,&mydate,weekstart->value.lval); object_init(return_value); - if(mydate.has_date) - { + 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); - } + } + 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 string mcal_event_set_recur_none(int stream_id) + Create a daily recurrence */ +PHP_FUNCTION(mcal_event_set_recur_none) +{ + pval *streamind; + int ind, ind_type; + pils *mcal_le_struct; + int myargc; + myargc = ARG_COUNT(ht); + if (myargc != 1 || getParameters(ht, myargc, &streamind) == FAILURE) { + WRONG_PARAM_COUNT; + } + + convert_to_long(streamind); + + ind = streamind->value.lval; + + mcal_le_struct = (pils *)zend_list_find(ind, &ind_type); + + if (!mcal_le_struct ) { + php_error(E_WARNING, "Unable to find stream pointer"); + RETURN_FALSE; + } + + calevent_recur_none(mcal_le_struct->event); +} +/* }}} */ /* {{{ proto string mcal_event_set_recur_daily(int stream_id, int year, int month, int day, int hour, int min, int sec, int interval Create a daily recurrence */ Index: php4/ext/mcal/php_mcal.h diff -u php4/ext/mcal/php_mcal.h:1.3 php4/ext/mcal/php_mcal.h:1.4 --- php4/ext/mcal/php_mcal.h:1.3 Sat Dec 18 03:46:12 1999 +++ php4/ext/mcal/php_mcal.h Fri Feb 25 19:09:10 2000 @@ -1,4 +1,4 @@ -/* $Id: php_mcal.h,v 1.3 1999/12/18 11:46:12 zeev Exp $ */ +/* $Id: php_mcal.h,v 1.4 2000/02/26 03:09:10 chagenbu Exp $ */ #ifndef _INCLUDED_MCAL_H #define _INCLUDED_MCAL_H @@ -46,6 +46,7 @@ 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); @@ -66,6 +67,7 @@ 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);

« previous php.version4 (#11019) next »