Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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;
}
Ejemplo n.º 3
0
gint category_get_div_pointer_from_name ( const gchar * name, gboolean create )
{
    return (gsb_data_category_get_number_by_name ( name, create, 0 ));
}