diff options
Diffstat (limited to 'src/libical-2-windows.patch')
-rw-r--r-- | src/libical-2-windows.patch | 282 |
1 files changed, 0 insertions, 282 deletions
diff --git a/src/libical-2-windows.patch b/src/libical-2-windows.patch deleted file mode 100644 index 7cb7027..0000000 --- a/src/libical-2-windows.patch +++ /dev/null @@ -1,282 +0,0 @@ -This file is part of mingw-cross-env. -See doc/index.html for further information. - -This patch has been taken from: -https://build.opensuse.org/package/view_file?file=libical-0.44-windows.patch&package=mingw32-libical&project=windows%3Amingw%3Awin32 - ---- libical-0.44/src/libical/icaltime.c 2009-09-27 04:38:51.000000000 +0200 -+++ libical-0.44/src/libical/icaltime.c 2010-03-17 14:55:36.000000000 +0100 -@@ -45,14 +45,19 @@ - #include "icaltimezone.h" - #include "icalvalue.h" - --#ifdef WIN32 -+#ifdef _WIN32 - #include <windows.h> - - #define snprintf _snprintf - #define strcasecmp stricmp - #endif - --#ifdef WIN32 -+#ifdef HAVE_PTHREAD -+ #include <pthread.h> -+ static pthread_mutex_t tzid_mutex = PTHREAD_MUTEX_INITIALIZER; -+#endif -+ -+#ifdef _WIN32 - /* Undef the similar macro from pthread.h, it doesn't check if - * gmtime() returns NULL. - */ -@@ -62,11 +67,6 @@ - #define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) - #endif - --#ifdef HAVE_PTHREAD -- #include <pthread.h> -- static pthread_mutex_t tzid_mutex = PTHREAD_MUTEX_INITIALIZER; --#endif -- - /* - * Function to convert a struct tm time specification - * to an ANSI time_t using the specified time zone. -@@ -192,18 +192,20 @@ - * - */ - struct icaltimetype --icaltime_from_timet_with_zone(const time_t tm, const int is_date, -+icaltime_from_timet_with_zone(time_t tm, const int is_date, - const icaltimezone *zone) - { - struct icaltimetype tt; - struct tm t; - icaltimezone *utc_zone; - -+ if (tm < 0) tm=0; -+ - utc_zone = icaltimezone_get_utc_timezone (); - - /* Convert the time_t to a struct tm in UTC time. We can trust gmtime - for this. */ --#ifdef HAVE_PTHREAD -+#if defined(HAVE_PTHREAD) || defined(_WIN32) - gmtime_r (&tm, &t); - #else - t = *(gmtime (&tm)); ---- libical-0.44/src/libical/icaltimezone.c 2009-09-27 04:38:51.000000000 +0200 -+++ libical-0.44/src/libical/icaltimezone.c 2010-03-19 14:34:25.000000000 +0100 -@@ -59,6 +59,61 @@ - /** This is the toplevel directory where the timezone data is installed in. */ - #define ZONEINFO_DIRECTORY PACKAGE_DATA_DIR "/zoneinfo" - -+#ifdef _WIN32 -+/* search for data relative to where we are installed */ -+ -+static HMODULE hmodule; -+ -+BOOL WINAPI -+DllMain (HINSTANCE hinstDLL, -+ DWORD fdwReason, -+ LPVOID lpvReserved) -+{ -+ switch (fdwReason) -+ { -+ case DLL_PROCESS_ATTACH: -+ hmodule = hinstDLL; -+ break; -+ } -+ -+ return TRUE; -+} -+ -+char * -+get_zoneinfo_directory (void) -+{ -+ static char retval[1000]; -+ static int beenhere = 0; -+ -+ unsigned char *p; -+ -+ if (beenhere) -+ return retval; -+ -+ if (!GetModuleFileName (hmodule, (CHAR *) retval, sizeof(retval) - 10)) -+ return ZONEINFO_DIRECTORY; -+ -+ p = _mbsrchr ((const unsigned char *) retval, '\\'); -+ *p = '\0'; -+ p = _mbsrchr ((const unsigned char *) retval, '\\'); -+ if (p) { -+ if (stricmp ((const char *) (p+1), "bin") == 0) -+ *p = '\0'; -+ } -+ strcat (retval, "\\share\\libical\\zoneinfo"); -+ -+ beenhere = 1; -+ -+ return retval; -+} -+ -+#undef ZONEINFO_DIRECTORY -+#define ZONEINFO_DIRECTORY get_zoneinfo_directory () -+ -+#endif -+ -+ -+ - /** The prefix we use to uniquely identify TZIDs. - It must begin and end with forward slashes. - */ -@@ -1943,96 +1998,7 @@ - - static const char* get_zone_directory(void) - { --#ifndef WIN32 - return zone_files_directory == NULL ? ZONEINFO_DIRECTORY : zone_files_directory; --#else -- wchar_t wbuffer[1000]; -- char buffer[1000], zoneinfodir[1000], dirname[1000]; -- int used_default; -- static char *cache = NULL; -- char *dirslash, *zislash; -- struct stat st; -- -- if (zone_files_directory) -- return zone_files_directory; -- -- if (cache) -- return cache; -- -- /* Get the filename of the application */ -- if (!GetModuleFileNameW (NULL, wbuffer, sizeof (wbuffer) / sizeof (wbuffer[0]))) -- return ZONEINFO_DIRECTORY; -- -- /* Convert to system codepage */ -- if (!WideCharToMultiByte (CP_ACP, 0, wbuffer, -1, buffer, sizeof (buffer), -- NULL, &used_default) || -- used_default) { -- /* Failed, try 8.3 format */ -- if (!GetShortPathNameW (wbuffer, wbuffer, -- sizeof (wbuffer) / sizeof (wbuffer[0])) || -- !WideCharToMultiByte (CP_ACP, 0, wbuffer, -1, buffer, sizeof (buffer), -- NULL, &used_default) || -- used_default) -- return ZONEINFO_DIRECTORY; -- } -- /* Look for the zoneinfo directory somewhere in the path where -- * the app is installed. If the path to the app is -- * -- * C:\opt\evo-2.6\bin\evolution-2.6.exe -- * -- * and the compile-time ZONEINFO_DIRECTORY is -- * -- * C:/devel/target/evo/share/evolution-data-server-1.6/zoneinfo, -- * -- * we check the pathnames: -- * -- * C:\opt\evo-2.6/devel/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt\evo-2.6/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt\evo-2.6/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt\evo-2.6/share/evolution-data-server-1.6/zoneinfo <=== -- * C:\opt\evo-2.6/evolution-data-server-1.6/zoneinfo -- * C:\opt\evo-2.6/zoneinfo -- * C:\opt/devel/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt/evo/share/evolution-data-server-1.6/zoneinfo -- * C:\opt/share/evolution-data-server-1.6/zoneinfo -- * C:\opt/evolution-data-server-1.6/zoneinfo -- * C:\opt/zoneinfo -- * C:/devel/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:/target/evo/share/evolution-data-server-1.6/zoneinfo -- * C:/evo/share/evolution-data-server-1.6/zoneinfo -- * C:/share/evolution-data-server-1.6/zoneinfo -- * C:/evolution-data-server-1.6/zoneinfo -- * C:/zoneinfo -- * -- * In Evolution's case, we would get a match already at the -- * fourth pathname check. -- */ -- -- /* Strip away basename of app .exe first */ -- dirslash = _mbsrchr (buffer, '\\'); -- if (dirslash) -- *dirslash = '\0'; -- -- while ((dirslash = _mbsrchr (buffer, '\\'))) { -- /* Strip one more directory from app .exe location */ -- *dirslash = '\0'; -- -- strcpy (zoneinfodir, ZONEINFO_DIRECTORY); -- while ((zislash = _mbschr (zoneinfodir, '/'))) { -- *zislash = '.'; -- strcpy (dirname, buffer); -- strcat (dirname, "/"); -- strcat (dirname, zislash + 1); -- if (stat (dirname, &st) == 0 && -- S_ISDIR (st.st_mode)) { -- cache = strdup (dirname); -- return cache; -- } -- } -- } -- return ZONEINFO_DIRECTORY; --#endif - } - - void set_zone_directory(char *path) ---- libical-0.44/src/libical/icaltz-util.c 2010-03-17 15:04:14.000000000 +0100 -+++ libical-0.44/src/libical/icaltz-util.c 2010-03-19 14:38:56.000000000 +0100 -@@ -41,6 +42,10 @@ - #include <libical/icalerror.h> - #include <icaltz-util.h> - -+/** This is the filename of the file containing the city names and -+ coordinates of all the builtin timezones. */ -+#define ZONES_TAB_FILENAME "zones.tab" -+ - typedef struct - { - char ttisgmtcnt [4]; -@@ -53,7 +58,7 @@ - - static int r_pos [] = {1, 2, 3, -2, -1}; - --static char *search_paths [] = {"/usr/share/zoneinfo","/usr/lib/zoneinfo","/etc/zoneinfo","/usr/share/lib/zoneinfo"}; -+static char *search_paths [] = {"/usr/share/zoneinfo","/usr/lib/zoneinfo","/etc/zoneinfo","/usr/share/lib/zoneinfo",PACKAGE_DATA_DIR "/zoneinfo"}; - static char *zdir = NULL; - - #define NUM_SEARCH_PATHS (sizeof (search_paths)/ sizeof (search_paths [0])) -@@ -174,12 +179,24 @@ - return; - } - -+#ifdef _WIN32 -+char * get_zoneinfo_directory (void); -+#endif -+ - static void - set_zone_directory (void) - { - char file_path[PATH_MAX]; -- const char *fname = ZONES_TAB_SYSTEM_FILENAME; -+ -+#ifdef _WIN32 -+ const char *fname = ZONES_TAB_FILENAME; -+ -+ sprintf (file_path, "%s\\%s", get_zoneinfo_directory(), fname); -+ if (!access (file_path, F_OK|R_OK)) -+ zdir = strdup(get_zoneinfo_directory()); -+#else - int i; -+ const char *fname = ZONES_TAB_SYSTEM_FILENAME; - - for (i = 0;i < NUM_SEARCH_PATHS; i++) { - sprintf (file_path, "%s/%s", search_paths [i], fname); -@@ -188,6 +205,7 @@ - break; - } - } -+#endif - } - - |