gint category_add_div ( void ) { gint new_category_number; gchar * name; int i = 1; /** Find a unique name for category */ name = my_strdup (_("New category")); while ( gsb_data_category_get_number_by_name ( name, FALSE, 0 )) { g_free (name); i++; name = g_strdup_printf ( _("New category #%d"), i ); } new_category_number = gsb_data_category_get_number_by_name ( name, TRUE, 0 ); return new_category_number; }
gint gsb_qif_recupere_categories ( FILE *qif_file, const gchar *coding_system ) { gchar *string; gint returned_value; do { returned_value = get_utf8_line_from_file ( qif_file, &string, coding_system ); /* a category never begin with ^ and ! */ if ( strlen ( string ) && returned_value != EOF && string[0] != '^' && string[0] != '!' ) { gint category_number; gint type_category = 1; gchar **tab_str = NULL; tab_str = g_strsplit ( string + 1, ":", 2 ); g_free ( string ); do { returned_value = get_utf8_line_from_file ( qif_file, &string, coding_system ); if ( strlen ( string ) && returned_value != EOF && string[0] != '^' && string[0] != '!' ) { if ( strcmp ( string, "I" ) == 0 ) type_category = 0; g_free ( string ); } } while ( string[0] != '^' && returned_value != EOF && string[0] != '!' ); /* get the category and create it if doesn't exist */ if (tab_str[0]) { tab_str[0] = g_strstrip ( tab_str[0] ); category_number = gsb_data_category_get_number_by_name ( tab_str[0], TRUE, type_category ); if (tab_str[1]) { tab_str[1] = g_strstrip ( tab_str[1] ); gsb_data_category_get_sub_category_number_by_name ( category_number, tab_str[1], TRUE ); } } g_strfreev(tab_str); } } while ( string[0] != '^' && returned_value != EOF && string[0] != '!' ); if ( string[0] == '!' ) { if ( last_header && strlen ( last_header ) ) g_free ( last_header ); last_header = g_strdup ( string ); } if ( returned_value != EOF && string[0] != '!' ) return 1; else if ( returned_value == EOF ) return EOF; else return 0; }
gint category_get_div_pointer_from_name ( const gchar * name, gboolean create ) { return (gsb_data_category_get_number_by_name ( name, create, 0 )); }