2007-01-21 [colin] 2.7.1cvs44
[claws.git] / src / common / utils.h
index 0f9005a578c2807040bc06db2d272424656eb144..2546e25235e444fa5bd95f022ccb721cbc3af4b3 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);
 
@@ -387,7 +359,8 @@ gint scan_mailto_url                        (const gchar    *mailto,
                                         gchar         **cc,
                                         gchar         **bcc,
                                         gchar         **subject,
-                                        gchar         **body);
+                                        gchar         **body,
+                                        gchar         **attach);
 
 /* return static strings */
 const gchar *get_home_dir              (void);
@@ -401,6 +374,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 +383,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,14 +455,14 @@ 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);
 
 /* open URI with external browser */
 gint open_uri(const gchar *uri, const gchar *cmdline);
+/* open file with text editor */
+gint open_txt_editor(const gchar *filepath, const gchar *cmdline);
 
 /* time functions */
 time_t remote_tzoffset_sec     (const gchar    *zone);
@@ -499,6 +475,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);
@@ -543,16 +523,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