sync with 0.7.4cvs49
[claws.git] / src / utils.h
index 1d3729fec3628a15e6ba346cdabf5f1ecdc8907b..f9f93c769337a886273f918874314ef3f9bf711c 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2001 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
  *
  * 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
        ptr = __tmp; \
 }
 
-#define Xstrconcat_a(ptr, str1, str2, iffail) \
+#define Xstrcat_a(ptr, str1, str2, iffail) \
 { \
        gchar *__tmp; \
+       gint len1, len2; \
  \
-       if ((__tmp = alloca(strlen(str1) + strlen(str2) + 1)) == NULL) { \
+       len1 = strlen(str1); \
+       len2 = strlen(str2); \
+       if ((__tmp = alloca(len1 + len2 + 1)) == NULL) { \
                g_warning("can't allocate memory\n"); \
                iffail; \
        } else { \
-               strcpy(__tmp, str1); \
-               strcat(__tmp, str2); \
+               memcpy(__tmp, str1, len1); \
+               memcpy(__tmp + len1, str2, len2 + 1); \
        } \
  \
        ptr = __tmp; \
@@ -260,6 +263,10 @@ void unfold_line                   (gchar          *str);
 void subst_char                                (gchar          *str,
                                         gchar           orig,
                                         gchar           subst);
+void subst_chars                       (gchar          *str,
+                                        gchar          *orig,
+                                        gchar           subst);
+void subst_for_filename                        (gchar          *str);
 gboolean is_header_line                        (const gchar    *str);
 gboolean is_ascii_str                  (const guchar   *str);
 gint get_quote_level                   (const gchar    *str);
@@ -269,6 +276,8 @@ gchar **strsplit_with_quote         (const gchar    *str,
                                         const gchar    *delim,
                                         gint            max_tokens);
 
+gchar *get_abbrev_newsgroup_name       (const gchar    *group);
+
 GList *uri_list_extract_filenames      (const gchar    *uri_list);
 void decode_uri                                (gchar          *decoded_uri,
                                         const gchar    *encoded_uri);
@@ -281,15 +290,23 @@ gchar *get_imap_cache_dir (void);
 gchar *get_mbox_cache_dir      (void);
 gchar *get_mime_tmp_dir                (void);
 gchar *get_template_dir                (void);
+gchar *get_header_cache_dir     (void);
 gchar *get_tmp_file            (void);
 gchar *get_domain_name         (void);
 
 /* file / directory handling */
 off_t get_file_size            (const gchar    *file);
+off_t get_file_size_as_crlf    (const gchar    *file);
 off_t get_left_file_size       (FILE           *fp);
+
 gboolean file_exist            (const gchar    *file,
                                 gboolean        allow_fifo);
 gboolean is_dir_exist          (const gchar    *dir);
+gboolean is_file_entry_exist   (const gchar    *file);
+
+#define is_file_exist(file)            file_exist(file, FALSE)
+#define is_file_or_fifo_exist(file)    file_exist(file, TRUE)
+
 gint change_dir                        (const gchar    *dir);
 gint make_dir_hier             (const gchar    *dir);
 gint remove_all_files          (const gchar    *dir);
@@ -305,9 +322,7 @@ gint move_file                      (const gchar    *src,
 gint change_file_mode_rw       (FILE           *fp,
                                 const gchar    *file);
 FILE *my_tmpfile               (void);
-
-#define is_file_exist(file)            file_exist(file, FALSE)
-#define is_file_or_fifo_exist(file)    file_exist(file, TRUE)
+FILE *str_open_as_stream       (const gchar    *str);
 
 /* process execution */
 gint execute_async             (gchar *const    argv[]);