aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-09-12 08:49:23 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2006-09-12 08:49:23 +0000
commit1e84ae5c2d6224066807411aa895a494cf113f4e (patch)
tree3fe292cdb4e26f3a8a90ab064c184a015c918efe /src
parent5502ddd4789acc83648aea090258fe99a6043951 (diff)
modified LDIF import.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1152 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/importldif.c2
-rw-r--r--src/ldif.c34
2 files changed, 14 insertions, 22 deletions
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;