diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-04-10 06:33:21 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-04-10 06:33:21 +0000 |
commit | 16167e67b513a6a75c3a477b5bce03c49789c64c (patch) | |
tree | c6ea7cd2c2b83ff467cdc35de8723af80a6aa0d5 /src/importcsv.c | |
parent | 5ff17ba27424a29ae8e0ff3776944ea2a64dcab6 (diff) |
also delete physical files when deleting data sources.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1606 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/importcsv.c')
-rw-r--r-- | src/importcsv.c | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/src/importcsv.c b/src/importcsv.c index 6b51b5dc..8c1a53dc 100644 --- a/src/importcsv.c +++ b/src/importcsv.c @@ -175,9 +175,6 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { GtkCList *clist = GTK_CLIST(impcsv_dlg.clist_field); FILE *fp; gchar buf[BUFFSIZE]; - gchar *text[ FIELDS_N_COLS ]; - gint i; - gchar **strv; CharSet enc; g_return_val_if_fail(sFile != NULL, FALSE); @@ -192,8 +189,14 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { return FALSE; } - while (fgets(buf, sizeof(buf), fp) != NULL) { + if (fgets(buf, sizeof(buf), fp) != NULL) { gchar *str; + gchar **strv; + gchar *text[ FIELDS_N_COLS ]; + gint i; + guint fields_len; + guint data_len = 0; + guint len; strretchomp(buf); if (enc == C_UTF_8) @@ -202,17 +205,26 @@ static gboolean imp_csv_load_fields( gchar *sFile ) { str = conv_localetodisp(buf, NULL); g_print("%s\n", str); strv = g_strsplit(str, ",", 0); + fields_len = sizeof(imp_csv_attrib) / sizeof(imp_csv_attrib[0]); + while (strv[data_len]) + ++data_len; + len = MAX(fields_len, data_len); - for (i = 0; strv[i] != NULL; i++) { + for (i = 0; i < len; i++) { text[ FIELD_COL_SELECT ] = ""; - text[ FIELD_COL_FIELD ] = strv[i]; - text[ FIELD_COL_ATTRIB ] = - i < N_CSV_ATTRIB ? gettext(imp_csv_attrib[i].name) : ""; + if (i < data_len) + text[ FIELD_COL_FIELD ] = strv[i]; + else + text[ FIELD_COL_FIELD ] = ""; + if (i < fields_len) + text[ FIELD_COL_ATTRIB ] = + gettext(imp_csv_attrib[i].name); + else + text[ FIELD_COL_ATTRIB ] = ""; gtk_clist_append( clist, text ); } g_strfreev(strv); g_free(str); - break; } fclose(fp); |