summaryrefslogtreecommitdiff
path: root/libmateweather/mateweather-win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmateweather/mateweather-win32.c')
-rw-r--r--libmateweather/mateweather-win32.c100
1 files changed, 100 insertions, 0 deletions
diff --git a/libmateweather/mateweather-win32.c b/libmateweather/mateweather-win32.c
new file mode 100644
index 0000000..1d3e197
--- /dev/null
+++ b/libmateweather/mateweather-win32.c
@@ -0,0 +1,100 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* mateweather-win32.c - Win32 portability
+ *
+ * Copyright 2008, Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public License
+ * as published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib.h>
+
+#ifdef G_OS_WIN32
+
+#include <windows.h>
+
+#include "mateweather-win32.h"
+
+static HMODULE dll = NULL;
+
+/* Prototype first to silence gcc warning */
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved);
+
+BOOL WINAPI
+DllMain (HINSTANCE hinstDLL,
+ DWORD fdwReason,
+ LPVOID lpvReserved)
+{
+ if (fdwReason == DLL_PROCESS_ATTACH)
+ dll = hinstDLL;
+
+ return TRUE;
+}
+
+char *
+_mateweather_win32_get_zoneinfo_dir (void)
+{
+ static char *retval = NULL;
+ char *root;
+
+ if (retval)
+ return retval;
+
+ root = g_win32_get_package_installation_directory_of_module (dll);
+ retval = g_build_filename (root, "share/zoneinfo", NULL);
+ g_free (root);
+
+ return retval;
+}
+
+char *
+_mateweather_win32_get_locale_dir (void)
+{
+ static char *retval = NULL;
+ char *root;
+
+ if (retval)
+ return retval;
+
+ root = g_win32_get_package_installation_directory_of_module (dll);
+ retval = g_build_filename (root, "share/locale", NULL);
+ g_free (root);
+
+ return retval;
+}
+
+char *
+_mateweather_win32_get_xml_location_dir (void)
+{
+ static char *retval = NULL;
+ char *root;
+
+ if (retval)
+ return retval;
+
+ root = g_win32_get_package_installation_directory_of_module (dll);
+ retval = g_build_filename (root, "share/libmateweather", NULL);
+ g_free (root);
+
+ return retval;
+}
+
+#endif