/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2001-2007 Match Grun and the Claws Mail team
+ * Copyright (C) 2001-2012 Match Grun 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
#include "addritem.h"
#include "addrcache.h"
-#include "base64.h"
#include "utils.h"
#define LDIF_SEP_TAG ':'
* \param value Value of access flag.
*/
void ldif_set_file( LdifFile *ldifFile, const gchar *value ) {
- g_return_if_fail( ldifFile != NULL );
+ cm_return_if_fail( ldifFile != NULL );
if( ldifFile->path ) {
if( strcmp( ldifFile->path, value ) != 0 )
* \param value File specification.
*/
void ldif_set_accessed( LdifFile *ldifFile, const gboolean value ) {
- g_return_if_fail( ldifFile != NULL );
+ cm_return_if_fail( ldifFile != NULL );
ldifFile->accessFlag = value;
}
* named.
*/
void ldif_field_set_name( Ldif_FieldRec *rec, const gchar *value ) {
- g_return_if_fail( rec != NULL );
+ cm_return_if_fail( rec != NULL );
if( ! rec->reserved ) {
rec->userName = mgu_replace_string( rec->userName, value );
* fields cannot be unselected.
*/
void ldif_field_set_selected( Ldif_FieldRec *rec, const gboolean value ) {
- g_return_if_fail( rec != NULL );
+ cm_return_if_fail( rec != NULL );
if( ! rec->reserved ) {
rec->selected = value;
* \param rec LDIF field object.
*/
void ldif_field_toggle( Ldif_FieldRec *rec ) {
- g_return_if_fail( rec != NULL );
+ cm_return_if_fail( rec != NULL );
if( ! rec->reserved ) {
rec->selected = !rec->selected;
*/
static gint ldif_hash_free_vis( gpointer key, gpointer value, gpointer data ) {
ldif_free_fieldrec( ( Ldif_FieldRec * ) value );
- value = NULL;
- key = NULL;
return -1;
}
* \param ldifFile LDIF import control object.
*/
void ldif_free( LdifFile *ldifFile ) {
- g_return_if_fail( ldifFile != NULL );
+ cm_return_if_fail( ldifFile != NULL );
/* Close file */
if( ldifFile->file ) fclose( ldifFile->file );
* \param ldifFile LDIF import control object.
*/
static void ldif_close_file( LdifFile *ldifFile ) {
- g_return_if_fail( ldifFile != NULL );
+ cm_return_if_fail( ldifFile != NULL );
if( ldifFile->file ) fclose( ldifFile->file );
ldifFile->file = NULL;
}
int i = 0;
int cur_alloc = LDIFBUFSIZE;
- if( feof( ldifFile->file ) )
+ if( feof( ldifFile->file ) ) {
+ g_free(buf);
return NULL;
+ }
while( i < cur_alloc-1 ) {
ch = fgetc( ldifFile->file );
gchar *tag = NULL;
gchar *lptr = line;
gchar *sptr = NULL;
-
+
while( *lptr++ ) {
/* Check for language tag */
if( *lptr == LDIF_LANG_TAG ) {
tag = g_strndup( line, len+1 );
tag[ len ] = '\0';
- g_utf8_strdown( tag, -1 );
- return tag;
+ return tag;
}
}
return tag;
{
gchar *nm, *val;
- nm = g_strdup( tagName );
- g_utf8_strdown( nm, -1 );
+ nm = g_utf8_strdown( tagName, -1 );
if( tagValue ) {
val = g_strdup( tagValue );
}
}
g_strstrip( val );
- if( g_utf8_collate( nm, LDIF_TAG_COMMONNAME ) == 0 ) {
+ if( g_utf8_collate( nm, g_utf8_strdown( LDIF_TAG_COMMONNAME, -1 ) ) == 0 ) {
rec->listCName = g_slist_append( rec->listCName, val );
}
- else if( g_utf8_collate( nm, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ else if( g_utf8_collate( nm, g_utf8_strdown( LDIF_TAG_FIRSTNAME, -1 ) ) == 0 ) {
rec->listFName = g_slist_append( rec->listFName, val );
}
- else if( g_utf8_collate( nm, LDIF_TAG_LASTNAME ) == 0 ) {
+ else if( g_utf8_collate( nm, g_utf8_strdown( LDIF_TAG_LASTNAME, -1 ) ) == 0 ) {
rec->listLName = g_slist_append( rec->listLName, val );
}
- else if( g_utf8_collate( nm, LDIF_TAG_NICKNAME ) == 0 ) {
+ else if( g_utf8_collate( nm, g_utf8_strdown( LDIF_TAG_NICKNAME, -1 ) ) == 0 ) {
rec->listNName = g_slist_append( rec->listNName, val );
}
- else if( g_utf8_collate( nm, LDIF_TAG_EMAIL ) == 0 ) {
+ else if( g_utf8_collate( nm, g_utf8_strdown( LDIF_TAG_EMAIL, -1 ) ) == 0 ) {
rec->listAddress = g_slist_append( rec->listAddress, val );
}
else {
long posEnd = 0L;
long posCur = 0L;
GHashTable *hashField;
+ gchar *out;
+ gsize len;
hashField = ldifFile->hashFields;
rec = g_new0( Ldif_ParsedRec, 1 );
/* Save record */
fullValue = mgu_list_coalesce( listValue );
if (fullValue && last64) {
- gchar *out = g_malloc(strlen(fullValue));
- int len = 0;
- if ((len = base64_decode(out, fullValue,
- strlen(fullValue))) >= 0) {
+ out = g_base64_decode(fullValue, &len);
+ if (len >= 0) {
g_free(fullValue);
fullValue = out;
fullValue[len] = '\0';
- } else
- g_free(out);
+ }
+ g_free(out);
}
/* Base-64 encoded data */
/*
fullValue =
mgu_list_coalesce( listValue );
if (fullValue && last64) {
- gchar *out = g_malloc(strlen(fullValue));
- int len = 0;
- if ((len = base64_decode(out, fullValue,
- strlen(fullValue))) >= 0) {
+ out = g_base64_decode(fullValue, &len);
+ if (len >= 0) {
g_free(fullValue);
fullValue = out;
fullValue[len] = '\0';
mgu_free_list( listValue );
lastTag = NULL;
listValue = NULL;
- last64 = FALSE;
}
lastTag = g_strdup( tagName );
gchar *tag = node->data;
if( ! g_hash_table_lookup( table, tag ) ) {
Ldif_FieldRec *rec = NULL;
- gchar *key = g_strdup( tag );
+ gchar *key = g_utf8_strdown( tag, -1 );
rec = ldif_create_fieldrec( tag );
- if( g_utf8_collate( tag, LDIF_TAG_DN ) == 0 ) {
+ if( g_utf8_collate( key, LDIF_TAG_DN ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( "dn" );
}
- else if( g_utf8_collate( tag, LDIF_TAG_COMMONNAME ) == 0 ) {
+ else if( g_utf8_collate( key, g_utf8_strdown( LDIF_TAG_COMMONNAME, -1 ) ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( _( "Display Name" ) );
}
- else if( g_utf8_collate( tag, LDIF_TAG_FIRSTNAME ) == 0 ) {
+ else if( g_utf8_collate( key, g_utf8_strdown( LDIF_TAG_FIRSTNAME, -1 ) ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( _( "First Name" ) );
}
- else if( g_utf8_collate( tag, LDIF_TAG_LASTNAME ) == 0 ) {
+ else if( g_utf8_collate( key, g_utf8_strdown( LDIF_TAG_LASTNAME, -1 ) ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( _( "Last Name" ) );
}
- else if( g_utf8_collate( tag, LDIF_TAG_NICKNAME ) == 0 ) {
+ else if( g_utf8_collate( key, g_utf8_strdown( LDIF_TAG_NICKNAME, -1 ) ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( _( "Nick Name" ) );
}
- else if( g_utf8_collate( tag, LDIF_TAG_EMAIL ) == 0 ) {
+ else if( g_utf8_collate( key, g_utf8_strdown( LDIF_TAG_EMAIL, -1 ) ) == 0 ) {
rec->reserved = rec->selected = TRUE;
rec->userName = g_strdup( _( "Email Address" ) );
}
* \return Status code.
*/
gint ldif_import_data( LdifFile *ldifFile, AddressCache *cache ) {
- g_return_val_if_fail( ldifFile != NULL, MGU_BAD_ARGS );
+ cm_return_val_if_fail( ldifFile != NULL, MGU_BAD_ARGS );
ldifFile->retVal = MGU_SUCCESS;
addrcache_clear( cache );
cache->dataRead = FALSE;
* \return Status code.
*/
gint ldif_read_tags( LdifFile *ldifFile ) {
- g_return_val_if_fail( ldifFile != NULL, MGU_BAD_ARGS );
+ cm_return_val_if_fail( ldifFile != NULL, MGU_BAD_ARGS );
ldifFile->retVal = MGU_SUCCESS;
if( ldifFile->dirtyFlag ) {
ldif_open_file( ldifFile );
GList *ldif_get_fieldlist( LdifFile *ldifFile ) {
GList *list = NULL;
- g_return_val_if_fail( ldifFile != NULL, NULL );
+ cm_return_val_if_fail( ldifFile != NULL, NULL );
if( ldifFile->hashFields ) {
ldifFile->tempList = NULL;
g_hash_table_foreach( ldifFile->hashFields, ldif_hash2list_vis, ldifFile );