summaryrefslogtreecommitdiff
path: root/src/libical/icaltypes.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libical/icaltypes.c')
-rw-r--r--src/libical/icaltypes.c53
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
+
+}