Wrap file I/O to claws_* to benefit from custom locking when
[claws.git] / src / addrbook.c
index 0720c6bc4987b8852521bfbf1a3c104fb9a7ed9e..64a36457909c075f189fedfb4fa953e21a2e3ce9 100644 (file)
 
 /* General functions for accessing address book files */
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#include "claws-features.h"
+#endif
+
 #include <glib.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -951,11 +956,11 @@ static int addrbook_write_elem_s(FILE *fp, gint lvl, gchar *name)
 {
        gint i;
        for (i = 0; i < lvl; i++) 
-               if (fputs("  ", fp) == EOF)
+               if (claws_fputs("  ", fp) == EOF)
                        return -1;
-       if (fputs("<", fp) == EOF)
+       if (claws_fputs("<", fp) == EOF)
                return -1;
-       if (fputs(name, fp) == EOF)
+       if (claws_fputs(name, fp) == EOF)
                return -1;
                
        return 0;
@@ -971,13 +976,13 @@ static int addrbook_write_elem_e(FILE *fp, gint lvl, gchar *name)
 {
        gint i;
        for(i = 0; i < lvl; i++)
-               if (fputs("  ", fp) == EOF)
+               if (claws_fputs("  ", fp) == EOF)
                        return -1;
-       if (fputs("</", fp) == EOF)
+       if (claws_fputs("</", fp) == EOF)
                return -1;
-       if (fputs(name, fp) == EOF)
+       if (claws_fputs(name, fp) == EOF)
                return -1;
-       if (fputs(">\n", fp) == EOF)
+       if (claws_fputs(">\n", fp) == EOF)
                return -1;
                
        return 0;
@@ -991,15 +996,15 @@ static int addrbook_write_elem_e(FILE *fp, gint lvl, gchar *name)
  */
 static int addrbook_write_attr(FILE *fp, gchar *name, gchar *value)
 {
-       if (fputs(" ", fp) == EOF)
+       if (claws_fputs(" ", fp) == EOF)
                return -1;
-       if (fputs(name, fp) == EOF)
+       if (claws_fputs(name, fp) == EOF)
                return -1;
-       if (fputs("=\"", fp) == EOF)
+       if (claws_fputs("=\"", fp) == EOF)
                return -1;
        if (xml_file_put_escape_str(fp, value) < 0)
                return -1;
-       if (fputs("\"", fp) == EOF)
+       if (claws_fputs("\"", fp) == EOF)
                return -1;
        
        return 0;
@@ -1042,13 +1047,13 @@ static void addrbook_write_item_person_vis(gpointer key, gpointer value,
                                data->error = TRUE;
                        if (addrbook_write_attr(fp, AB_ATTAG_COMMON_NAME, ADDRITEM_NAME(person)) < 0)
                                data->error = TRUE;
-                       if (fputs(" >\n", fp) == EOF)
+                       if (claws_fputs(" >\n", fp) == EOF)
                                data->error = TRUE;
 
                        /* Output email addresses */
                        if (addrbook_write_elem_s(fp, 2, AB_ELTAG_ADDRESS_LIST) < 0)
                                data->error = TRUE;
-                       if (fputs(">\n", fp) == EOF)
+                       if (claws_fputs(">\n", fp) == EOF)
                                data->error = TRUE;
                        node = person->listEMail;
                        while (node) {
@@ -1063,7 +1068,7 @@ static void addrbook_write_item_person_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_REMARKS, email->remarks) < 0)
                                        data->error = TRUE;
-                               if (fputs(" />\n", fp) == EOF)
+                               if (claws_fputs(" />\n", fp) == EOF)
                                        data->error = TRUE;
                                node = g_list_next(node);
                        }
@@ -1073,7 +1078,7 @@ static void addrbook_write_item_person_vis(gpointer key, gpointer value,
                        /* Output user attributes */
                        if (addrbook_write_elem_s(fp, 2, AB_ELTAG_ATTRIBUTE_LIST) < 0)
                                data->error = TRUE;
-                       if (fputs(">\n", fp) == EOF)
+                       if (claws_fputs(">\n", fp) == EOF)
                                data->error = TRUE;
                        node = person->listAttrib;
                        while (node) {
@@ -1084,7 +1089,7 @@ static void addrbook_write_item_person_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_NAME, attrib->name) < 0)
                                        data->error = TRUE;
-                               if (fputs(" >", fp) == EOF)
+                               if (claws_fputs(" >", fp) == EOF)
                                        data->error = TRUE;
                                if (xml_file_put_escape_str(fp, attrib->value) < 0)
                                        data->error = TRUE;
@@ -1129,13 +1134,13 @@ static void addrbook_write_item_group_vis(gpointer key, gpointer value,
                                data->error = TRUE;
                        if (addrbook_write_attr(fp, AB_ATTAG_REMARKS, group->remarks) < 0)
                                data->error = TRUE;
-                       if (fputs(" >\n", fp) == EOF)
+                       if (claws_fputs(" >\n", fp) == EOF)
                                data->error = TRUE;
 
                        /* Output email address links */
                        if (addrbook_write_elem_s(fp, 2, AB_ELTAG_MEMBER_LIST) < 0)
                                data->error = TRUE;
-                       if (fputs(">\n", fp) == EOF)
+                       if (claws_fputs(">\n", fp) == EOF)
                                data->error = TRUE;
                        node = group->listEMail;
                        while (node) {
@@ -1147,7 +1152,7 @@ static void addrbook_write_item_group_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_EID, ADDRITEM_ID(email)) < 0)
                                        data->error = TRUE;
-                               if (fputs(" />\n", fp) == EOF)
+                               if (claws_fputs(" />\n", fp) == EOF)
                                        data->error = TRUE;
                                node = g_list_next(node);
                        }
@@ -1187,11 +1192,11 @@ static void addrbook_write_item_folder_vis(gpointer key, gpointer value,
                                data->error = TRUE;
                        if (addrbook_write_attr(fp, AB_ATTAG_REMARKS, folder->remarks) < 0)
                                data->error = TRUE;
-                       if (fputs(" >\n", fp) == EOF)
+                       if (claws_fputs(" >\n", fp) == EOF)
                                data->error = TRUE;
                        if (addrbook_write_elem_s(fp, 2, AB_ELTAG_ITEM_LIST) < 0)
                                data->error = TRUE;
-                       if (fputs(">\n", fp) == EOF)
+                       if (claws_fputs(">\n", fp) == EOF)
                                data->error = TRUE;
 
                        /* Output persons */
@@ -1204,7 +1209,7 @@ static void addrbook_write_item_folder_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_UID, ADDRITEM_ID(item)) < 0)
                                        data->error = TRUE;
-                               if (fputs(" />\n", fp) == EOF)
+                               if (claws_fputs(" />\n", fp) == EOF)
                                        data->error = TRUE;
                                node = g_list_next(node);
                        }
@@ -1219,7 +1224,7 @@ static void addrbook_write_item_folder_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_UID, ADDRITEM_ID(item)) < 0)
                                        data->error = TRUE;
-                               if (fputs(" />\n", fp) == EOF)
+                               if (claws_fputs(" />\n", fp) == EOF)
                                        data->error = TRUE;
                                node = g_list_next(node);
                        }
@@ -1234,7 +1239,7 @@ static void addrbook_write_item_folder_vis(gpointer key, gpointer value,
                                        data->error = TRUE;
                                if (addrbook_write_attr(fp, AB_ATTAG_UID, ADDRITEM_ID(item)) < 0)
                                        data->error = TRUE;
-                               if (fputs(" />\n", fp) == EOF)
+                               if (claws_fputs(" />\n", fp) == EOF)
                                        data->error = TRUE;
                                node = g_list_next(node);
                        }
@@ -1268,10 +1273,10 @@ static gint addrbook_write_to(AddressBookFile *book, gchar *newFile)
 
        book->retVal = MGU_OPEN_FILE;
 #ifdef DEV_STANDALONE
-       fp = g_fopen(fileSpec, "wb");
+       fp = claws_fopen(fileSpec, "wb");
        g_free(fileSpec);
        if (fp) {
-               if (fputs("<?xml version=\"1.0\" ?>\n", fp) == EOF) {
+               if (claws_fputs("<?xml version=\"1.0\" ?>\n", fp) == EOF) {
                        book->retVal = MGU_ERROR_WRITE;
                        return book->retVal;
                }
@@ -1288,7 +1293,7 @@ static gint addrbook_write_to(AddressBookFile *book, gchar *newFile)
                if (addrbook_write_attr(fp, AB_ATTAG_NAME,
                                    addrcache_get_name(book->addressCache)) < 0)
                        goto fail;
-               if (fputs(" >\n", fp) == EOF)
+               if (claws_fputs(" >\n", fp) == EOF)
                        goto fail;
 
                /* Output all persons */
@@ -1319,7 +1324,7 @@ static gint addrbook_write_to(AddressBookFile *book, gchar *newFile)
 
                book->retVal = MGU_SUCCESS;
 #ifdef DEV_STANDALONE
-               safe_fclose(fp);
+               claws_safe_fclose(fp);
 #else
                if (prefs_file_close( pfile ) < 0)
                        book->retVal = MGU_ERROR_WRITE;