Removed an unneeded ifdef in my_tmpfile().
[claws.git] / src / common / utils.c
index 064d12a958c20fa669d30636e6da0a0df2447d02..a07e9136dd480049fe498b2b9048e0f2a03ce08f 100644 (file)
@@ -218,37 +218,6 @@ int g_open(const gchar *filename, int flags, int mode)
 #endif /* G_OS_UNIX */
 
 
-#ifdef G_OS_WIN32
-gint mkstemp_name(gchar *template, gchar **name_used)
-{
-       static gulong count=0; /* W32-_mktemp only supports up to 27
-                                 tempfiles... */
-       int tmpfd;
-
-       *name_used = g_strdup_printf("%s.%ld",_mktemp(template),count++);
-       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 (tmpfd<0) {
-               perror(g_strdup_printf("cant create %s",*name_used));
-               return -1;
-       }
-       else
-               return tmpfd;
-}
-#endif /* G_OS_WIN32 */
-
-#ifdef G_OS_WIN32
-gint mkstemp(gchar *template)
-{
-       gchar *dummyname;
-       gint res = mkstemp_name(template, &dummyname);
-       g_free(dummyname);
-       return res;
-}
-#endif /* G_OS_WIN32 */
-
 GSList *slist_copy_deep(GSList *list, GCopyFunc func)
 {
 #if GLIB_CHECK_VERSION(2, 34, 0)
@@ -1713,7 +1682,7 @@ gint scan_mailto_url(const gchar *mailto, gchar **from, gchar **to, gchar **cc,
                } else if (body && !*body && !g_ascii_strcasecmp(field, "insert")) {
                        gchar *tmp = decode_uri_gdup(value);
                        if (!g_file_get_contents(tmp, body, NULL, NULL)) {
-                               g_warning("Error: couldn't set insert file '%s' in body\n", value);
+                               g_warning("couldn't set insert file '%s' in body", value);
                        }
                        g_free(tmp);
                        tmp = NULL;
@@ -2135,7 +2104,7 @@ const gchar *get_domain_name(void)
 
 off_t get_file_size(const gchar *file)
 {
-       struct stat s;
+       GStatBuf s;
 
        if (g_stat(file, &s) < 0) {
                FILE_OP_ERROR(file, "stat");
@@ -2147,7 +2116,7 @@ off_t get_file_size(const gchar *file)
 
 time_t get_file_mtime(const gchar *file)
 {
-       struct stat s;
+       GStatBuf s;
 
        if (g_stat(file, &s) < 0) {
                FILE_OP_ERROR(file, "stat");
@@ -2185,7 +2154,7 @@ off_t get_file_size_as_crlf(const gchar *file)
 
 gboolean file_exist(const gchar *file, gboolean allow_fifo)
 {
-       struct stat s;
+       GStatBuf s;
 
        if (file == NULL)
                return FALSE;
@@ -2330,7 +2299,7 @@ gint remove_all_files(const gchar *dir)
        }
 
        if ((dp = g_dir_open(".", 0, NULL)) == NULL) {
-               g_warning("failed to open directory: %s\n", dir);
+               g_warning("failed to open directory: %s", dir);
                g_free(prev_dir);
                return -1;
        }
@@ -2387,7 +2356,7 @@ gint remove_numbered_files(const gchar *dir, guint first, guint last)
        }
 
        if ((dp = g_dir_open(".", 0, NULL)) == NULL) {
-               g_warning("failed to open directory: %s\n", dir);
+               g_warning("failed to open directory: %s", dir);
                g_free(prev_dir);
                return -1;
        }
@@ -2493,7 +2462,7 @@ gint remove_all_numbered_files(const gchar *dir)
 
 gint remove_dir_recursive(const gchar *dir)
 {
-       struct stat s;
+       GStatBuf s;
        GDir *dp;
        const gchar *dir_name;
        gchar *prev_dir;
@@ -2501,13 +2470,13 @@ gint remove_dir_recursive(const gchar *dir)
        if (g_stat(dir, &s) < 0) {
                FILE_OP_ERROR(dir, "stat");
                if (ENOENT == errno) return 0;
-               return -1;
+               return -(errno);
        }
 
        if (!S_ISDIR(s.st_mode)) {
                if (claws_unlink(dir) < 0) {
                        FILE_OP_ERROR(dir, "unlink");
-                       return -1;
+                       return -(errno);
                }
 
                return 0;
@@ -2520,7 +2489,7 @@ gint remove_dir_recursive(const gchar *dir)
                g_free(prev_dir);
                if (g_chdir("..") < 0) {
                        FILE_OP_ERROR(dir, "chdir");
-                       return -1;
+                       return -(errno);
                }
                prev_dir = g_get_current_dir();
        }
@@ -2528,14 +2497,14 @@ gint remove_dir_recursive(const gchar *dir)
        if (g_chdir(dir) < 0) {
                FILE_OP_ERROR(dir, "chdir");
                g_free(prev_dir);
-               return -1;
+               return -(errno);
        }
 
        if ((dp = g_dir_open(".", 0, NULL)) == NULL) {
-               g_warning("failed to open directory: %s\n", dir);
+               g_warning("failed to open directory: %s", dir);
                g_chdir(prev_dir);
                g_free(prev_dir);
-               return -1;
+               return -(errno);
        }
 
        /* remove all files in the directory */
@@ -2543,9 +2512,11 @@ gint remove_dir_recursive(const gchar *dir)
                /* g_print("removing %s\n", dir_name); */
 
                if (is_dir_exist(dir_name)) {
-                       if (remove_dir_recursive(dir_name) < 0) {
-                               g_warning("can't remove directory\n");
-                               return -1;
+                       gint ret;
+
+                       if ((ret = remove_dir_recursive(dir_name)) < 0) {
+                               g_warning("can't remove directory: %s", dir_name);
+                               return ret;
                        }
                } else {
                        if (claws_unlink(dir_name) < 0)
@@ -2558,14 +2529,14 @@ gint remove_dir_recursive(const gchar *dir)
        if (g_chdir(prev_dir) < 0) {
                FILE_OP_ERROR(prev_dir, "chdir");
                g_free(prev_dir);
-               return -1;
+               return -(errno);
        }
 
        g_free(prev_dir);
 
        if (g_rmdir(dir) < 0) {
                FILE_OP_ERROR(dir, "rmdir");
-               return -1;
+               return -(errno);
        }
 
        return 0;
@@ -2611,14 +2582,14 @@ gint append_file(const gchar *src, const gchar *dest, gboolean keep_backup)
 
        if (change_file_mode_rw(dest_fp, dest) < 0) {
                FILE_OP_ERROR(dest, "chmod");
-               g_warning("can't change file mode\n");
+               g_warning("can't change file mode: %s", dest);
        }
 
        while ((n_read = fread(buf, sizeof(gchar), sizeof(buf), src_fp)) > 0) {
                if (n_read < sizeof(buf) && ferror(src_fp))
                        break;
                if (fwrite(buf, 1, n_read, dest_fp) < n_read) {
-                       g_warning("writing to %s failed.\n", dest);
+                       g_warning("writing to %s failed.", dest);
                        fclose(dest_fp);
                        fclose(src_fp);
                        claws_unlink(dest);
@@ -2679,14 +2650,14 @@ gint copy_file(const gchar *src, const gchar *dest, gboolean keep_backup)
 
        if (change_file_mode_rw(dest_fp, dest) < 0) {
                FILE_OP_ERROR(dest, "chmod");
-               g_warning("can't change file mode\n");
+               g_warning("can't change file mode: %s", dest);
        }
 
        while ((n_read = fread(buf, sizeof(gchar), sizeof(buf), src_fp)) > 0) {
                if (n_read < sizeof(buf) && ferror(src_fp))
                        break;
                if (fwrite(buf, 1, n_read, dest_fp) < n_read) {
-                       g_warning("writing to %s failed.\n", dest);
+                       g_warning("writing to %s failed.", dest);
                        fclose(dest_fp);
                        fclose(src_fp);
                        claws_unlink(dest);
@@ -2794,7 +2765,7 @@ gint copy_file_part(FILE *fp, off_t offset, size_t length, const gchar *dest)
 
        if (change_file_mode_rw(dest_fp, dest) < 0) {
                FILE_OP_ERROR(dest, "chmod");
-               g_warning("can't change file mode\n");
+               g_warning("can't change file mode: %s", dest);
        }
 
        if (copy_file_part_to_fp(fp, offset, length, dest_fp) < 0)
@@ -2806,7 +2777,7 @@ gint copy_file_part(FILE *fp, off_t offset, size_t length, const gchar *dest)
        }
 
        if (err) {
-               g_warning("writing to %s failed.\n", dest);
+               g_warning("writing to %s failed.", dest);
                claws_unlink(dest);
                return -1;
        }
@@ -2874,7 +2845,7 @@ gint canonicalize_file(const gchar *src, const gchar *dest)
 
        if (change_file_mode_rw(dest_fp, dest) < 0) {
                FILE_OP_ERROR(dest, "chmod");
-               g_warning("can't change file mode\n");
+               g_warning("can't change file mode: %s", dest);
        }
 
        while (fgets(buf, sizeof(buf), src_fp) != NULL) {
@@ -2900,7 +2871,7 @@ gint canonicalize_file(const gchar *src, const gchar *dest)
                }
 
                if (r == EOF) {
-                       g_warning("writing to %s failed.\n", dest);
+                       g_warning("writing to %s failed.", dest);
                        fclose(dest_fp);
                        fclose(src_fp);
                        claws_unlink(dest);
@@ -2943,7 +2914,7 @@ gint canonicalize_file_replace(const gchar *file)
        }
 
        if (move_file(tmp_file, file, TRUE) < 0) {
-               g_warning("can't replace %s .\n", file);
+               g_warning("can't replace file: %s", file);
                claws_unlink(tmp_file);
                g_free(tmp_file);
                return -1;
@@ -3064,7 +3035,6 @@ gint change_file_mode_rw(FILE *fp, const gchar *file)
 
 FILE *my_tmpfile(void)
 {
-#if HAVE_MKSTEMP || defined(G_OS_WIN32)
        const gchar suffix[] = ".XXXXXX";
        const gchar *tmpdir;
        guint tmplen;
@@ -3091,7 +3061,7 @@ FILE *my_tmpfile(void)
        memcpy(fname + tmplen + 1, progname, proglen);
        memcpy(fname + tmplen + 1 + proglen, suffix, sizeof(suffix));
 
-       fd = mkstemp(fname);
+       fd = g_mkstemp(fname);
        if (fd < 0)
                return tmpfile();
 
@@ -3114,25 +3084,16 @@ FILE *my_tmpfile(void)
                return fp;
        }
 
-#endif /* HAVE_MKSTEMP || G_OS_WIN32 */
-
        return tmpfile();
 }
 
 FILE *get_tmpfile_in_dir(const gchar *dir, gchar **filename)
 {
        int fd;
-#ifdef G_OS_WIN32
-       char *template = g_strdup_printf ("%s%cclaws.XXXXXX",
-                                         dir, G_DIR_SEPARATOR);
-       fd = mkstemp_name(template, filename);
-       g_free(template);
-#else
        *filename = g_strdup_printf("%s%cclaws.XXXXXX", dir, G_DIR_SEPARATOR);
-       fd = mkstemp(*filename);
+       fd = g_mkstemp(*filename);
        if (fd < 0)
                return NULL;
-#endif
        return fdopen(fd, "w+");
 }
 
@@ -3242,7 +3203,7 @@ static gchar *file_read_to_str_full(const gchar *file, gboolean recode)
 {
        FILE *fp;
        gchar *str;
-       struct stat s;
+       GStatBuf s;
 #ifndef G_OS_WIN32
        gint fd, err;
        struct timeval timeout = {1, 0};
@@ -3257,7 +3218,7 @@ static gchar *file_read_to_str_full(const gchar *file, gboolean recode)
                return NULL;
        }
        if (S_ISDIR(s.st_mode)) {
-               g_warning("%s: is a directory\n", file);
+               g_warning("%s: is a directory", file);
                return NULL;
        }
 
@@ -3284,7 +3245,7 @@ static gchar *file_read_to_str_full(const gchar *file, gboolean recode)
                if (err < 0) {
                        FILE_OP_ERROR(file, "select");
                } else {
-                       g_warning("%s: doesn't seem readable\n", file);
+                       g_warning("%s: doesn't seem readable", file);
                }
                close(fd);
                return NULL;
@@ -3374,7 +3335,7 @@ static gint execute_async(gchar *const argv[])
 
        if (g_spawn_async(NULL, (gchar **)argv, NULL, G_SPAWN_SEARCH_PATH,
                          NULL, NULL, NULL, FALSE) == FALSE) {
-               g_warning("Couldn't execute command: %s\n", argv[0]);
+               g_warning("couldn't execute command: %s", argv[0]);
                return -1;
        }
 
@@ -3390,7 +3351,7 @@ static gint execute_sync(gchar *const argv[])
 #ifdef G_OS_UNIX
        if (g_spawn_sync(NULL, (gchar **)argv, NULL, G_SPAWN_SEARCH_PATH,
                         NULL, NULL, NULL, NULL, &status, NULL) == FALSE) {
-               g_warning("Couldn't execute command: %s\n", argv[0]);
+               g_warning("couldn't execute command: %s", argv[0]);
                return -1;
        }
 
@@ -3402,7 +3363,7 @@ static gint execute_sync(gchar *const argv[])
        if (g_spawn_sync(NULL, (gchar **)argv, NULL, G_SPAWN_SEARCH_PATH| 
                         G_SPAWN_CHILD_INHERITS_STDIN|G_SPAWN_LEAVE_DESCRIPTORS_OPEN,
                         NULL, NULL, NULL, NULL, &status, NULL) == FALSE) {
-               g_warning("Couldn't execute command: %s\n", argv[0]);
+               g_warning("couldn't execute command: %s", argv[0]);
                return -1;
        }
 
@@ -3440,7 +3401,7 @@ gchar *get_command_output(const gchar *cmdline)
 
        if (g_spawn_command_line_sync(cmdline, &child_stdout, NULL, &status,
                                      NULL) == FALSE) {
-               g_warning("Couldn't execute command: %s\n", cmdline);
+               g_warning("couldn't execute command: %s", cmdline);
                return NULL;
        }
 
@@ -4814,14 +4775,14 @@ void mailcap_update_default(const gchar *type, const gchar *command)
        if (!fp) {
                fp = g_fopen(path, "a");
                if (!fp) {
-                       g_warning("failed to create file %s\n", path);
+                       g_warning("failed to create file %s", path);
                        g_free(path);
                        g_free(outpath);
                        return;
                }
                fp = g_freopen(path, "rb", fp);
                if (!fp) {
-                       g_warning("failed to reopen file %s\n", path);
+                       g_warning("failed to reopen file %s", path);
                        g_free(path);
                        g_free(outpath);
                        return;
@@ -4830,7 +4791,7 @@ void mailcap_update_default(const gchar *type, const gchar *command)
 
        outfp = g_fopen(outpath, "wb");
        if (!outfp) {
-               g_warning("failed to create file %s\n", outpath);
+               g_warning("failed to create file %s", outpath);
                g_free(path);
                g_free(outpath);
                fclose(fp);
@@ -4878,7 +4839,7 @@ gint copy_dir(const gchar *src, const gchar *dst)
        const gchar *name;
 
        if ((dir = g_dir_open(src, 0, NULL)) == NULL) {
-               g_warning("failed to open directory: %s\n", src);
+               g_warning("failed to open directory: %s", src);
                return -1;
        }
 
@@ -5335,7 +5296,7 @@ gboolean prefs_common_get_use_shred(void);
 
 int claws_unlink(const gchar *filename) 
 {
-       struct stat s;
+       GStatBuf s;
        static int found_shred = -1;
        static const gchar *args[4];
 
@@ -5361,7 +5322,7 @@ int claws_unlink(const gchar *filename)
                                        debug_print("%s %s exited with status %d\n",
                                                args[0], filename, WEXITSTATUS(status));
                                        if (truncate(filename, 0) < 0)
-                                               g_warning("couln't truncate");
+                                               g_warning("couln't truncate: %s", filename);
                                }
                        }
                }
@@ -5426,7 +5387,7 @@ static GSList *cm_split_path(const gchar *filename, int depth)
 {
        gchar **path_parts;
        GSList *canonical_parts = NULL;
-       struct stat st;
+       GStatBuf st;
        int i;
        gboolean follow_symlinks = TRUE;
 
@@ -5566,7 +5527,7 @@ guchar *g_base64_decode_zero(const gchar *text, gsize *out_len)
        g_free(tmp);
 
        if (strlen(out) != *out_len) {
-               g_warning ("strlen(out) %d != *out_len %d", strlen(out), *out_len);
+               g_warning ("strlen(out) %zd != *out_len %" G_GSIZE_FORMAT, strlen(out), *out_len);
        }
 
        return out;