2007-02-27 [colin] 2.8.0cvs6
[claws.git] / src / common / utils.h
index 4e6a3f949bb73373f2e617a6a66b5c3def289e49..65779c101a2b39661abd5dc653ac4caf02f6b0b9 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws team
+ * Copyright (C) 1999-2007 Hiroyuki Yamamoto and 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
@@ -188,9 +188,17 @@ typedef gpointer (*GNodeMapFunc)   (gpointer nodedata, gpointer data);
 /* debug functions */
 void debug_set_mode            (gboolean mode);
 gboolean debug_get_mode                (void);
+
+#ifndef __CYGWIN__
 #define debug_print \
        debug_print_real("%s:%d:", debug_srcname(__FILE__), __LINE__), \
        debug_print_real
+#else
+  /* FIXME: cygwin: why debug_srcname couldn't be resolved in library? */
+#define debug_print \
+       debug_print_real("%s:%d:", __FILE__, __LINE__), \
+       debug_print_real
+#endif
 
 /* for macro expansion */
 #define Str(x) #x
@@ -249,42 +257,6 @@ gchar *strncpy2            (gchar          *dest,
                         const gchar    *src,
                         size_t          n);
 
-/* wide-character functions */
-#if !HAVE_ISWALNUM
-int iswalnum           (wint_t wc);
-#endif
-#if !HAVE_ISWSPACE
-int iswspace           (wint_t wc);
-#endif
-#if !HAVE_TOWLOWER
-wint_t towlower                (wint_t wc);
-#endif
-
-#if !HAVE_WCSLEN
-size_t wcslen          (const wchar_t *s);
-#endif
-#if !HAVE_WCSCPY
-wchar_t *wcscpy                (wchar_t       *dest,
-                        const wchar_t *src);
-#endif
-#if !HAVE_WCSNCPY
-wchar_t *wcsncpy       (wchar_t       *dest,
-                        const wchar_t *src,
-                        size_t         n);
-#endif
-
-wchar_t *wcsdup                        (const wchar_t *s);
-wchar_t *wcsndup               (const wchar_t *s,
-                                size_t         n);
-wchar_t *strdup_mbstowcs       (const gchar   *s);
-gchar *strdup_wcstombs         (const wchar_t *s);
-gint wcsncasecmp               (const wchar_t *s1,
-                                const wchar_t *s2,
-                                size_t         n);
-wchar_t *wcscasestr            (const wchar_t *haystack,
-                                const wchar_t *needle);
-gint get_mbs_len               (const gchar    *s);
-
 gboolean is_next_nonascii      (const gchar *s);
 gint get_next_word_len         (const gchar *s);
 
@@ -382,12 +354,16 @@ gchar *get_uri_path                       (const gchar    *uri);
 gint get_uri_len                       (const gchar    *str);
 void decode_uri                                (gchar          *decoded_uri,
                                         const gchar    *encoded_uri);
+void decode_uri_with_plus              (gchar          *decoded_uri, 
+                                        const gchar    *encoded_uri, 
+                                        gboolean        with_plus);
 gint scan_mailto_url                   (const gchar    *mailto,
                                         gchar         **to,
                                         gchar         **cc,
                                         gchar         **bcc,
                                         gchar         **subject,
-                                        gchar         **body);
+                                        gchar         **body,
+                                        gchar         **attach);
 
 /* return static strings */
 const gchar *get_home_dir              (void);
@@ -401,6 +377,7 @@ const gchar *get_template_dir               (void);
 const gchar *get_header_cache_dir      (void);
 const gchar *get_plugin_dir             (void);
 const gchar *get_tmp_dir               (void);
+const gchar *get_locale_dir            (void);
 gchar *get_tmp_file                    (void);
 const gchar *get_domain_name           (void);
 
@@ -409,6 +386,8 @@ 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);
 
+time_t get_file_mtime          (const gchar *file);
+
 gboolean file_exist            (const gchar    *file,
                                 gboolean        allow_fifo);
 gboolean is_relative_filename   (const gchar *file);
@@ -479,8 +458,6 @@ gchar *file_read_to_str             (const gchar    *file);
 gchar *file_read_stream_to_str (FILE           *fp);
 
 /* process execution */
-gint execute_async             (gchar *const    argv[]);
-gint execute_sync              (gchar *const    argv[]);
 gint execute_command_line      (const gchar    *cmdline,
                                 gboolean        async);
 gchar *get_command_output      (const gchar    *cmdline);
@@ -501,6 +478,10 @@ size_t my_strftime         (gchar                  *s,
                                 size_t                  max,
                                 const gchar            *format,
                                 const struct tm        *tm);
+size_t fast_strftime           (gchar                  *buf, 
+                                gint                    buflen, 
+                                const gchar            *format, 
+                                struct tm              *lt);
 
 /* debugging */
 void debug_print_real  (const gchar *format, ...) G_GNUC_PRINTF(1, 2);
@@ -545,16 +526,31 @@ gpointer g_auto_pointer_get_ptr           (GAuto *auto_ptr);
 GAuto *g_auto_pointer_copy             (GAuto *auto_ptr);
 void g_auto_pointer_free               (GAuto *auto_ptr);
 void replace_returns                   (gchar *str);
-
-gboolean get_uri_part(const gchar *start, const gchar *scanpos,
-                            const gchar **bp, const gchar **ep, gboolean hdr);
-gchar *make_uri_string(const gchar *bp, const gchar *ep);
-gboolean get_email_part(const gchar *start, const gchar *scanpos,
-                              const gchar **bp, const gchar **ep, gboolean hdr);
-gchar *make_email_string(const gchar *bp, const gchar *ep);
-gchar *make_http_string(const gchar *bp, const gchar *ep);
-gchar *mailcap_get_command_for_type(const gchar *type);
-
+gboolean get_uri_part  (const gchar *start,
+                        const gchar *scanpos,
+                        const gchar **bp,
+                        const gchar **ep,
+                        gboolean hdr);
+gchar *make_uri_string (const gchar *bp,
+                        const gchar *ep);
+gboolean get_email_part        (const gchar *start, 
+                        const gchar *scanpos,
+                        const gchar **bp, 
+                        const gchar **ep,
+                        gboolean hdr);
+gchar *make_email_string(const gchar *bp,
+                        const gchar *ep);
+gchar *make_http_string (const gchar *bp,
+                        const gchar *ep);
+
+gchar *mailcap_get_command_for_type(const gchar *type, 
+                                   const gchar *file_to_open);
+void mailcap_update_default       (const gchar *type,
+                                   const gchar *command);
+
+gboolean file_is_email(const gchar *filename);
+gboolean sc_g_list_bigger(GList *list, gint max);
+gboolean sc_g_slist_bigger(GSList *list, gint max);
 #ifdef __cplusplus
 }
 #endif