sync with sylpheed 0.6.2cvs1
[claws.git] / src / addrindex.c
index 7e1e0d8..f1da4bf 100644 (file)
  * General functions for accessing address index file.
  */
 
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "defs.h"
+
 #include <glib.h>
 
+#include "intl.h"
 #include "mgutils.h"
 #include "addritem.h"
 #include "addrcache.h"
@@ -32,6 +39,7 @@
 
 #ifndef DEV_STANDALONE
 #include "prefs.h"
+#include "codeconv.h"
 #endif
 
 #include "vcard.h"
@@ -134,7 +142,6 @@ static AddressInterface *addrindex_create_interface( gint type, gchar *name, gch
 */
 static void addrindex_build_if_list( AddressIndex *addrIndex ) {
        AddressInterface *iface;
-       gint seq = 0;
 
        iface = addrindex_create_interface( ADDR_IF_BOOK, "Address Book", TAG_IF_ADDRESS_BOOK, TAG_DS_ADDRESS_BOOK );
        iface->readOnly      = FALSE;
@@ -169,8 +176,8 @@ static void addrindex_build_if_list( AddressIndex *addrIndex ) {
 
        iface = addrindex_create_interface( ADDR_IF_JPILOT, "J-Pilot", TAG_IF_JPILOT, TAG_DS_JPILOT );
 #ifdef USE_JPILOT
-       iface->useInterface = TRUE;
        iface->haveLibrary = jpilot_test_pilot_lib();
+       iface->useInterface = iface->haveLibrary;
        iface->getModifyFlag = ( void * ) jpilot_get_modified;
        iface->getAccessFlag = ( void * ) jpilot_get_accessed;
        iface->getReadFlag   = ( void * ) jpilot_get_read_flag;
@@ -192,6 +199,7 @@ static void addrindex_build_if_list( AddressIndex *addrIndex ) {
        iface = addrindex_create_interface( ADDR_IF_LDAP, "LDAP", TAG_IF_LDAP, TAG_DS_LDAP );
 #ifdef USE_LDAP
        iface->haveLibrary = syldap_test_ldap_lib();
+       iface->useInterface = iface->haveLibrary;
        iface->getAccessFlag = ( void * ) syldap_get_accessed;
        // iface->getModifyFlag = ( void * ) syldap_get_modified;
        // iface->getReadFlag   = ( void * ) syldap_get_read_flag;
@@ -352,7 +360,7 @@ static void addrindex_free_all_datasources( AddressInterface *iface ) {
        }
 }
 
-static addrindex_free_interface( AddressInterface *iface ) {
+static void addrindex_free_interface( AddressInterface *iface ) {
        addrindex_free_all_datasources( iface );
 
        g_free( ADDRITEM_ID(iface) );
@@ -383,6 +391,7 @@ static addrindex_free_interface( AddressInterface *iface ) {
 */
 AddressIndex *addrindex_create_index() {
        AddressIndex *addrIndex = g_new0( AddressIndex, 1 );
+
        ADDRITEM_TYPE(addrIndex) = ITEMTYPE_INDEX;
        ADDRITEM_ID(addrIndex) = NULL;
        ADDRITEM_NAME(addrIndex) = g_strdup( "Address Index" );
@@ -421,7 +430,7 @@ void addrindex_set_dirty( AddressIndex *addrIndex, const gboolean value ) {
 * Return list of interfaces.
 */
 GList *addrindex_get_interface_list( AddressIndex *addrIndex ) {
-       g_return_if_fail( addrIndex != NULL );
+       g_return_val_if_fail( addrIndex != NULL, NULL );
        return addrIndex->interfaceList;
 }
 
@@ -430,6 +439,7 @@ GList *addrindex_get_interface_list( AddressIndex *addrIndex ) {
 */
 void addrindex_free_index( AddressIndex *addrIndex ) {
        GList *node;
+
        g_return_if_fail( addrIndex != NULL );
 
        g_free( ADDRITEM_ID(addrIndex) );
@@ -480,7 +490,9 @@ void addrindex_print_index( AddressIndex *addrIndex, FILE *stream ) {
 AddressInterface *addrindex_get_interface( AddressIndex *addrIndex, AddressIfType ifType ) {
        AddressInterface *retVal = NULL;
        GList *node;
-       g_return_if_fail( addrIndex != NULL );
+
+       g_return_val_if_fail( addrIndex != NULL, NULL );
+
        node = addrIndex->interfaceList;
        while( node ) {
                AddressInterface *iface = node->data;
@@ -519,8 +531,9 @@ AddressDataSource *addrindex_create_datasource() {
 AddressDataSource *addrindex_index_add_datasource( AddressIndex *addrIndex, AddressIfType ifType, gpointer dataSource ) {
        AddressInterface *iface;
        AddressDataSource *ds = NULL;
-       g_return_if_fail( addrIndex != NULL );
-       g_return_if_fail( dataSource != NULL );
+
+       g_return_val_if_fail( addrIndex != NULL, NULL );
+       g_return_val_if_fail( dataSource != NULL, NULL );
 
        iface = addrindex_get_interface( addrIndex, ifType );
        if( iface ) {
@@ -545,8 +558,9 @@ AddressDataSource *addrindex_index_add_datasource( AddressIndex *addrIndex, Addr
 AddressDataSource *addrindex_index_remove_datasource( AddressIndex *addrIndex, AddressDataSource *dataSource ) {
        AddressDataSource *retVal = FALSE;
        AddressInterface *iface;
-       g_return_if_fail( addrIndex != NULL );
-       g_return_if_fail( dataSource != NULL );
+
+       g_return_val_if_fail( addrIndex != NULL, NULL );
+       g_return_val_if_fail( dataSource != NULL, NULL );
 
        iface = addrindex_get_interface( addrIndex, dataSource->type );
        if( iface ) {
@@ -561,6 +575,7 @@ AddressDataSource *addrindex_index_remove_datasource( AddressIndex *addrIndex, A
 static AddressInterface *addrindex_tag_get_interface( AddressIndex *addrIndex, gchar *tag, AddressIfType ifType ) {
        AddressInterface *retVal = NULL;
        GList *node = addrIndex->interfaceList;
+
        while( node ) {
                AddressInterface *iface = node->data;
                node = g_list_next( node );
@@ -583,6 +598,7 @@ static AddressInterface *addrindex_tag_get_interface( AddressIndex *addrIndex, g
 static AddressInterface *addrindex_tag_get_datasource( AddressIndex *addrIndex, AddressIfType ifType, gchar *tag ) {
        AddressInterface *retVal = NULL;
        GList *node = addrIndex->interfaceList;
+
        while( node ) {
                AddressInterface *iface = node->data;
                node = g_list_next( node );
@@ -896,7 +912,7 @@ static void addrindex_write_ldap( FILE *fp, AddressDataSource *ds, gint lvl ) {
 static AddressDataSource *addrindex_parse_ldap( XMLFile *file ) {
        AddressDataSource *ds = g_new0( AddressDataSource, 1 );
        GList *list = addrindex_read_attributes( file );
-       ds->data = list;
+       ds->rawDataSource = list;
        return ds;
 }
 
@@ -914,8 +930,8 @@ static void addrindex_write_ldap( FILE *fp, AddressDataSource *ds, gint lvl ) {
 */
 static void addrindex_read_index( AddressIndex *addrIndex, XMLFile *file ) {
        guint prev_level;
-       gchar *element;
-       GList *attr;
+       //gchar *element;
+       //GList *attr;
        XMLTag *xtag;
        AddressInterface *iface = NULL, *dsIFace = NULL;
        AddressDataSource *ds;
@@ -994,7 +1010,8 @@ static void addrindex_read_index( AddressIndex *addrIndex, XMLFile *file ) {
 static gint addrindex_read_file( AddressIndex *addrIndex ) {
        XMLFile *file = NULL;
        gchar *fileSpec = NULL;
-       g_return_if_fail( addrIndex != NULL );
+
+       g_return_val_if_fail( addrIndex != NULL, -1 );
 
        fileSpec = g_strconcat( addrIndex->filePath, G_DIR_SEPARATOR_S, addrIndex->fileName, NULL );
        addrIndex->retVal = MGU_NO_FILE;
@@ -1070,7 +1087,7 @@ gint addrindex_write_to( AddressIndex *addrIndex, const gchar *newFile ) {
        PrefFile *pfile;
 #endif
 
-       g_return_if_fail( addrIndex != NULL );
+       g_return_val_if_fail( addrIndex != NULL, -1 );
 
        fileSpec = g_strconcat( addrIndex->filePath, G_DIR_SEPARATOR_S, newFile, NULL );
        addrIndex->retVal = MGU_OPEN_FILE;
@@ -1112,7 +1129,7 @@ gint addrindex_write_to( AddressIndex *addrIndex, const gchar *newFile ) {
 * return: Status code, from addrIndex->retVal.
 */
 gint addrindex_save_data( AddressIndex *addrIndex ) {
-       g_return_if_fail( addrIndex != NULL );
+       g_return_val_if_fail( addrIndex != NULL, -1 );
 
        addrIndex->retVal = MGU_NO_FILE;
        if( addrIndex->fileName == NULL || *addrIndex->fileName == '\0' ) return addrIndex->retVal;
@@ -1132,6 +1149,7 @@ gint addrindex_save_data( AddressIndex *addrIndex ) {
 gint addrindex_save_all_books( AddressIndex *addrIndex ) {
        gint retVal = MGU_SUCCESS;
        GList *nodeIf, *nodeDS;
+
        nodeIf = addrIndex->interfaceList;
        while( nodeIf ) {
                AddressInterface *iface = nodeIf->data;
@@ -1310,6 +1328,7 @@ static void addrindex_consume_tree( XMLFile *file ) {
 */
 static void addrindex_print_node( AddressCvtNode *node, FILE *stream  ) {
        GList *list;
+
        fprintf( stream, "Node:\ttype :%d:\n", node->type );
        fprintf( stream, "\tname :%s:\n", node->name );
        fprintf( stream, "\taddr :%s:\n", node->address );
@@ -1331,6 +1350,7 @@ static void addrindex_print_node( AddressCvtNode *node, FILE *stream  ) {
 */
 static void addrindex_free_node( AddressCvtNode *node ) {
        GList *list = node->list;
+
        while( list ) {
                AddressCvtNode *lNode = list->data;
                list = g_list_next( list );
@@ -1352,7 +1372,7 @@ static void addrindex_process_node(
                ItemGroup *parentGrp, ItemFolder *folderGrp )
 {
        GList *list;
-       ItemFolder *itemFolder;
+       ItemFolder *itemFolder = NULL;
        ItemGroup *itemGParent = parentGrp;
        ItemFolder *itemGFolder = folderGrp;
        AddressCache *cache = abf->addressCache;
@@ -1607,7 +1627,7 @@ static gboolean addrindex_create_new_book( AddressIndex *addrIndex, gchar *displ
 *      "Gathered addresses" - a new address book.
 */
 gint addrindex_read_data( AddressIndex *addrIndex ) {
-       g_return_if_fail( addrIndex != NULL );
+       g_return_val_if_fail( addrIndex != NULL, -1 );
 
        addrIndex->conversionError = FALSE;
        addrindex_read_file( addrIndex );
@@ -1638,7 +1658,7 @@ gint addrindex_read_data( AddressIndex *addrIndex ) {
 gint addrindex_create_new_books( AddressIndex *addrIndex ) {
        gboolean flg;
 
-       g_return_if_fail( addrIndex != NULL );
+       g_return_val_if_fail( addrIndex != NULL, -1 );
 
        flg = addrindex_create_new_book( addrIndex, DISP_NEW_COMMON );
        if( flg ) {
@@ -1841,5 +1861,3 @@ GList *addrindex_ds_get_all_persons( AddressDataSource *ds ) {
 /*
 * End of Source.
 */
-
-