/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto & The Claws Mail Team
+ * Copyright (C) 1999-2009 Hiroyuki Yamamoto & The Claws Mail Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
return fopen(filename, mode);
#endif
}
+int g_open(const gchar *filename, int flags, int mode)
+{
+#ifdef G_OS_WIN32
+ char *name = g_win32_locale_filename_from_utf8(filename);
+ int fd = open(name, flags, mode);
+ g_free(name);
+ return fp;
+#else
+ return open(filename, flags, mode);
+#endif
+}
#endif /* GLIB_CHECK_VERSION && G_OS_UNIX */
int tmpfd;
*name_used = g_strdup_printf("%s.%ld",_mktemp(template),count++);
- tmpfd = open (*name_used, (O_CREAT | O_RDWR | O_BINARY),
+ tmpfd = g_open (*name_used, (O_CREAT | O_RDWR | O_BINARY),
(S_IRUSR | S_IWUSR));
tempfiles=g_slist_append(tempfiles, g_strdup(*name_used));
if (file == NULL)
goto freeout;
- fp = fopen(file, "rb");
+ fp = g_fopen(file, "rb");
if (!fp)
goto freeout;
- outfp = fopen(out, "wb");
+ outfp = g_fopen(out, "wb");
if (!outfp) {
fclose(fp);
goto freeout;
* g_filename_from_uri() rejects escaped/locale encoded uri
* string which come from Nautilus.
*/
+#ifndef G_OS_WIN32
if (g_utf8_validate(file, -1, NULL))
locale_file
= conv_codeset_strdup(
conv_get_locale_charset_str());
if (!locale_file)
locale_file = g_strdup(file + 5);
+#else
+ locale_file = g_filename_from_uri(file, NULL, NULL);
+#endif
result = g_list_append(result, locale_file);
}
}
#endif
}
+
+#ifdef G_OS_WIN32
+/* Return the default directory for Themes. */
+const gchar *get_themes_dir(void)
+{
+ static gchar *themes_dir = NULL;
+
+ if (!themes_dir)
+ themes_dir = g_strconcat(w32_get_module_dir(),
+ "\\share\\claws-mail\\themes",
+ NULL);
+ return themes_dir;
+}
+#endif
+
const gchar *get_tmp_dir(void)
{
static gchar *tmp_dir = NULL;
gchar buf[BUFFSIZE];
if ((fp = g_fopen(file, "rb")) == NULL) {
- FILE_OP_ERROR(file, "fopen");
+ FILE_OP_ERROR(file, "g_fopen");
return -1;
}
gboolean err = FALSE;
if ((src_fp = g_fopen(src, "rb")) == NULL) {
- FILE_OP_ERROR(src, "fopen");
+ FILE_OP_ERROR(src, "g_fopen");
return -1;
}
if ((dest_fp = g_fopen(dest, "ab")) == NULL) {
- FILE_OP_ERROR(dest, "fopen");
+ FILE_OP_ERROR(dest, "g_fopen");
fclose(src_fp);
return -1;
}
gboolean err = FALSE;
if ((src_fp = g_fopen(src, "rb")) == NULL) {
- FILE_OP_ERROR(src, "fopen");
+ FILE_OP_ERROR(src, "g_fopen");
return -1;
}
if (is_file_exist(dest)) {
}
if ((dest_fp = g_fopen(dest, "wb")) == NULL) {
- FILE_OP_ERROR(dest, "fopen");
+ FILE_OP_ERROR(dest, "g_fopen");
fclose(src_fp);
if (dest_bak) {
if (rename_force(dest_bak, dest) < 0)
gboolean err = FALSE;
if ((dest_fp = g_fopen(dest, "wb")) == NULL) {
- FILE_OP_ERROR(dest, "fopen");
+ FILE_OP_ERROR(dest, "g_fopen");
return -1;
}
gboolean last_linebreak = FALSE;
if ((src_fp = g_fopen(src, "rb")) == NULL) {
- FILE_OP_ERROR(src, "fopen");
+ FILE_OP_ERROR(src, "g_fopen");
return -1;
}
if ((dest_fp = g_fopen(dest, "wb")) == NULL) {
- FILE_OP_ERROR(dest, "fopen");
+ FILE_OP_ERROR(dest, "g_fopen");
fclose(src_fp);
return -1;
}
g_return_val_if_fail(file != NULL, -1);
if ((fp = g_fopen(file, "wb")) == NULL) {
- FILE_OP_ERROR(file, "fopen");
+ FILE_OP_ERROR(file, "g_fopen");
return -1;
}
}
#ifdef G_OS_WIN32
- fp = fopen (file, "rb");
+ fp = g_fopen (file, "rb");
if (fp == NULL) {
FILE_OP_ERROR(file, "open");
return NULL;
}
#else
/* test whether the file is readable without blocking */
- fd = open(file, O_RDONLY | O_NONBLOCK);
+ fd = g_open(file, O_RDONLY | O_NONBLOCK);
if (fd == -1) {
FILE_OP_ERROR(file, "open");
return NULL;
static gchar *mailcap_get_command_in_file(const gchar *path, const gchar *type, const gchar *file_to_open)
{
- FILE *fp = fopen(path, "rb");
+ FILE *fp = g_fopen(path, "rb");
gchar buf[BUFFSIZE];
gchar *result = NULL;
if (!fp)
gchar *path = NULL, *outpath = NULL;
path = g_strconcat(get_home_dir(), G_DIR_SEPARATOR_S, ".mailcap", NULL);
outpath = g_strconcat(get_home_dir(), G_DIR_SEPARATOR_S, ".mailcap.new", NULL);
- FILE *fp = fopen(path, "rb");
- FILE *outfp = fopen(outpath, "wb");
+ FILE *fp = g_fopen(path, "rb");
+ FILE *outfp = g_fopen(outpath, "wb");
gchar buf[BUFFSIZE];
gboolean err = FALSE;