diff options
Diffstat (limited to 'src/libical/icaltypes.c')
-rw-r--r-- | src/libical/icaltypes.c | 53 |
1 files changed, 44 insertions, 9 deletions
diff --git a/src/libical/icaltypes.c b/src/libical/icaltypes.c index 2debac4..8ce5d1d 100644 --- a/src/libical/icaltypes.c +++ b/src/libical/icaltypes.c @@ -36,13 +36,19 @@ #include <string.h> /* for icalmemory_strdup */ #include <assert.h> -#ifdef WIN32 -#define snprintf _snprintf -#define strcasecmp stricmp +#if defined(_MSC_VER) +#define snprintf _snprintf +#define strcasecmp stricmp #endif #define TEMP_MAX 1024 +#ifdef HAVE_PTHREAD + #include <pthread.h> + static pthread_mutex_t unk_token_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif + +static ical_unknown_token_handling unknownTokenHandling = ICAL_TREAT_AS_ERROR; int icaltriggertype_is_null_trigger(struct icaltriggertype tr) { @@ -77,16 +83,13 @@ struct icaltriggertype icaltriggertype_from_string(const char* str) { - struct icaltriggertype tr, null_tr; + struct icaltriggertype tr; icalerrorstate es = ICAL_ERROR_DEFAULT; icalerrorenum e; tr.time= icaltime_null_time(); tr.duration = icaldurationtype_from_int(0); - null_tr = tr; - - /* Suppress errors so a failure in icaltime_from_string() does not cause an abort */ es = icalerror_get_error_state(ICAL_MALFORMEDDATA_ERROR); if(str == 0) goto error; @@ -178,9 +181,9 @@ char* icalreqstattype_as_string_r(struct icalreqstattype stat) { char *temp; - temp = (char*)icalmemory_new_buffer(TEMP_MAX); - icalerror_check_arg_rz((stat.code != ICAL_UNKNOWN_STATUS),"Status"); + + temp = (char*)icalmemory_new_buffer(TEMP_MAX); if (stat.desc == 0){ stat.desc = icalenum_reqstat_desc(stat.code); @@ -199,3 +202,35 @@ char* icalreqstattype_as_string_r(struct icalreqstattype stat) return temp; } + +ical_unknown_token_handling ical_get_unknown_token_handling_setting(void) +{ + ical_unknown_token_handling myHandling; + +#ifdef HAVE_PTHREAD + pthread_mutex_lock (&unk_token_mutex); +#endif + + myHandling = unknownTokenHandling; + +#ifdef HAVE_PTHREAD + pthread_mutex_unlock (&unk_token_mutex); +#endif + + return myHandling; +} + +void ical_set_unknown_token_handling_setting(ical_unknown_token_handling newSetting) +{ + +#ifdef HAVE_PTHREAD + pthread_mutex_lock (&unk_token_mutex); +#endif + + unknownTokenHandling = newSetting; + +#ifdef HAVE_PTHREAD + pthread_mutex_unlock (&unk_token_mutex); +#endif + +} |