From 1e84ae5c2d6224066807411aa895a494cf113f4e Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 12 Sep 2006 08:49:23 +0000 Subject: modified LDIF import. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1152 ee746299-78ed-0310-b773-934348b2243d --- src/importldif.c | 2 ++ src/ldif.c | 34 ++++++++++++---------------------- 2 files changed, 14 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/importldif.c b/src/importldif.c index 8b9990b9..f77d2e1c 100644 --- a/src/importldif.c +++ b/src/importldif.c @@ -367,6 +367,7 @@ static void imp_ldif_finish_show() { sMsg = mgu_error2string( _ldifFile_->retVal ); } imp_ldif_status_show( sMsg ); + gtk_button_set_label(GTK_BUTTON(impldif_dlg.btnCancel), GTK_STOCK_CLOSE); gtk_widget_grab_focus(impldif_dlg.btnCancel); } @@ -819,6 +820,7 @@ AddressBookFile *addressbook_imp_ldif( AddressIndex *addrIndex ) { gtk_notebook_set_current_page( GTK_NOTEBOOK(impldif_dlg.notebook), PAGE_FILE_INFO ); gtk_widget_set_sensitive( impldif_dlg.btnPrev, FALSE ); gtk_widget_set_sensitive( impldif_dlg.btnNext, TRUE ); + gtk_button_set_label( GTK_BUTTON(impldif_dlg.btnCancel), GTK_STOCK_CANCEL ); stock_pixmap_gdk( impldif_dlg.window, STOCK_PIXMAP_MARK, &markxpm, &markxpmmask ); imp_ldif_message(); diff --git a/src/ldif.c b/src/ldif.c index b2a74278..21c74478 100644 --- a/src/ldif.c +++ b/src/ldif.c @@ -229,30 +229,14 @@ static void ldif_close_file( LdifFile *ldifFile ) { */ static gchar *ldif_get_line( LdifFile *ldifFile ) { gchar buf[ LDIFBUFSIZE ]; - gint ch; - gint i = 0; if( feof( ldifFile->file ) ) return NULL; - while( i < LDIFBUFSIZE - 1 ) { - ch = fgetc( ldifFile->file ); - if( ch == '\0' || ch == EOF ) { - if( i == 0 ) - return NULL; - break; - } -#if HAVE_DOSISH_SYSTEM -#else - if( ch == '\r' ) - continue; -#endif - if( ch == '\n' ) - break; - buf[i] = ch; - i++; - } - buf[i] = '\0'; + if( fgets( buf, sizeof( buf ), ldifFile->file ) == NULL ) + return NULL; + + strretchomp( buf ); /* Return a copy of buffer */ return g_strdup( buf ); @@ -669,7 +653,7 @@ static gchar *ldif_conv_base64( gchar *buf ) { */ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { gchar *tagName = NULL, *tagValue = NULL; - gchar *lastTag = NULL, *fullValue = NULL; + gchar *lastTag = NULL; GSList *listValue = NULL; gboolean flagEOF = FALSE, flagEOR = FALSE; gboolean flag64 = FALSE, last64 = FALSE; @@ -688,7 +672,7 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { fseek( ldifFile->file, 0L, SEEK_SET ); while( ! flagEOF ) { - gchar *line = ldif_get_line( ldifFile ); + gchar *line = ldif_get_line( ldifFile ); posCur = ftell( ldifFile->file ); if( ldifFile->cbProgress ) { @@ -707,6 +691,8 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { if( flagEOR ) { /* EOR, Output address data */ if( lastTag ) { + gchar *fullValue; + /* Save record */ fullValue = mgu_list_coalesce( listValue ); @@ -722,6 +708,7 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { /* ldif_print_record( rec, stdout ); */ ldif_build_items( ldifFile, rec, cache ); ldif_clear_rec( rec ); + g_free( fullValue ); g_free( lastTag ); mgu_free_list( listValue ); lastTag = NULL; @@ -746,6 +733,8 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { tagValue = ldif_get_tagvalue( line ); if( tagValue ) { if( lastTag ) { + gchar *fullValue; + /* Save data */ fullValue = mgu_list_coalesce( listValue ); /* Base-64 encoded data */ @@ -757,6 +746,7 @@ static void ldif_read_file( LdifFile *ldifFile, AddressCache *cache ) { } ldif_add_value( rec, lastTag, fullValue, hashField ); + g_free( fullValue ); g_free( lastTag ); mgu_free_list( listValue ); lastTag = NULL; -- cgit v1.2.3