comment out menu entry not existing in claws
[claws.git] / src / utils.h
index 6f6ac12a42dd507232beb796352e262bd79c3769..e8b52ae6cca0f00526d14a42f307f8c7ff47dfb0 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2001 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
 #  include <wchar.h>
 #endif
 
+/* The AC_CHECK_SIZEOF() in configure fails for some machines.
+ * we provide some fallback values here */
+#if !SIZEOF_UNSIGNED_SHORT
+  #undef SIZEOF_UNSIGNED_SHORT
+  #define SIZEOF_UNSIGNED_SHORT 2
+#endif
+#if !SIZEOF_UNSIGNED_INT
+  #undef SIZEOF_UNSIGNED_INT
+  #define SIZEOF_UNSIGNED_INT 4
+#endif
+#if !SIZEOF_UNSIGNED_LONG
+  #undef SIZEOF_UNSIGNED_LONG
+  #define SIZEOF_UNSIGNED_LONG 4
+#endif
+
+#ifndef HAVE_U32_TYPEDEF
+  #undef u32       /* maybe there is a macro with this name */
+  typedef guint32 u32;
+  #define HAVE_U32_TYPEDEF
+#endif
+
+#ifndef BIG_ENDIAN_HOST
+  #if (G_BYTE_ORDER == G_BIG_ENDIAN)
+    #define BIG_ENDIAN_HOST 1
+  #endif
+#endif
+
 #define CHDIR_RETURN_IF_FAIL(dir) \
 { \
        if (change_dir(dir) < 0) return; \
        perror(func); \
 }
 
+#define debug_print(format, data...) debug_print_real(__FILE__, __LINE__, format , ##data)
+
 /* for macro expansion */
 #define Str(x) #x
 #define Xstr(x)        Str(x)
@@ -98,20 +127,27 @@ void list_free_strings             (GList          *list);
 void slist_free_strings                (GSList         *list);
 
 void hash_free_strings         (GHashTable     *table);
+void hash_free_value_mem       (GHashTable     *table);
 
 void ptr_array_free_strings    (GPtrArray      *array);
 
 /* number-string conversion */
 gint to_number                 (const gchar *nstr);
+gchar *itos_buf                        (gchar       *nstr,
+                                gint         n);
 gchar *itos                    (gint         n);
 gchar *to_human_readable       (off_t        size);
 
 /* alternative string functions */
 gint strcmp2           (const gchar    *s1,
                         const gchar    *s2);
+gint strstr2           (const gchar    *s1,
+                        const gchar    *s2);
 gint path_cmp          (const gchar    *s1,
                         const gchar    *s2);
 gchar *strretchomp     (gchar          *str);
+gchar *strtailchomp    (gchar          *str,
+                        gchar           tail_char);
 gchar *strcasestr      (const gchar    *haystack,
                         const gchar    *needle);
 gchar *strncpy2                (gchar          *dest,
@@ -167,10 +203,16 @@ void eliminate_parenthesis                (gchar          *str,
 void extract_parenthesis               (gchar          *str,
                                         gchar           op,
                                         gchar           cl);
-void extract_parenthesis_with_skip_quote(gchar         *str,
-                                        gchar           quote_chr,
-                                        gchar           op,
-                                        gchar           cl);
+
+void extract_one_parenthesis_with_skip_quote   (gchar          *str,
+                                                gchar           quote_chr,
+                                                gchar           op,
+                                                gchar           cl);
+void extract_parenthesis_with_skip_quote       (gchar          *str,
+                                                gchar           quote_chr,
+                                                gchar           op,
+                                                gchar           cl);
+
 void eliminate_quote                   (gchar          *str,
                                         gchar           quote_chr);
 void extract_quote                     (gchar          *str,
@@ -191,6 +233,7 @@ GSList *newsgroup_list_append               (GSList         *group_list,
                                         const gchar    *str);
 void remove_return                     (gchar          *str);
 void remove_space                      (gchar          *str);
+void unfold_line                       (gchar          *str);
 void subst_char                                (gchar          *str,
                                         gchar           orig,
                                         gchar           subst);
@@ -205,24 +248,33 @@ gchar **strsplit_with_quote               (const gchar    *str,
                                         gint            max_tokens);
 
 /* return static strings */
+gchar *get_home_dir            (void);
 gchar *get_rc_dir              (void);
 gchar *get_news_cache_dir      (void);
 gchar *get_imap_cache_dir      (void);
+gchar *get_mbox_cache_dir      (void);
 gchar *get_mime_tmp_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_left_file_size       (FILE           *fp);
 gboolean file_exist            (const gchar    *file,
                                 gboolean        allow_fifo);
 gboolean is_dir_exist          (const gchar    *dir);
 gint change_dir                        (const gchar    *dir);
 gint make_dir_hier             (const gchar    *dir);
 gint remove_all_files          (const gchar    *dir);
+gint remove_numbered_files     (const gchar    *dir,
+                                guint           first,
+                                guint           last);
+gint remove_all_numbered_files (const gchar    *dir);
 gint remove_dir_recursive      (const gchar    *dir);
 gint copy_file                 (const gchar    *src,
                                 const gchar    *dest);
+gint move_file                 (const gchar    *src,
+                                const gchar    *dest);
 gint change_file_mode_rw       (FILE           *fp,
                                 const gchar    *file);
 FILE *my_tmpfile               (void);
@@ -232,7 +284,9 @@ FILE *my_tmpfile            (void);
 
 /* process execution */
 gint execute_async             (gchar *const    argv[]);
-gint execute_command_line      (const gchar    *cmdline);
+gint execute_sync              (gchar *const    argv[]);
+gint execute_command_line      (const gchar    *cmdline,
+                                gboolean        async);
 
 /* open URI with external browser */
 gint open_uri(const gchar *uri, const gchar *cmdline);
@@ -245,10 +299,13 @@ void get_rfc822_date              (gchar          *buf,
                                 gint            len);
 
 /* logging */
-void debug_print(const gchar *format, ...) G_GNUC_PRINTF(1, 2);
-void log_print (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
-void log_message(const gchar *format, ...) G_GNUC_PRINTF(1, 2);
-void log_warning(const gchar *format, ...) G_GNUC_PRINTF(1, 2);
-void log_error (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
+void set_log_file      (const gchar *filename);
+void close_log_file    (void);
+void log_verbosity_set (gboolean verbose);
+void debug_print_real  (const gchar *file, const guint line, const gchar *format, ...) G_GNUC_PRINTF(3, 4);
+void log_print         (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
+void log_message       (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
+void log_warning       (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
+void log_error         (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
 
 #endif /* __UTILS_H__ */