Пример #1
0
static void card_test_array( int *passed, int *failed, plugin_log *log )
{
    dyn_array *array = card_to_pairs( c1 );
    if ( array != NULL )
    {
        int i;
        card *c = c1;
        for ( i=0;i<dyn_array_size(array);i++,
            c=card_right(c) )
        {
            pair *p = dyn_array_get(array,i);
            if ( p != card_pair(c) )
            {
                (*failed)++;
                fprintf(stderr,
                    "card: list to array failed 1\n");
                break;
            }
        }
        if ( c != NULL )
        {
            (*failed)++;
            fprintf(stderr,"card: list to array failed 2\n");
        }
        dyn_array_dispose( array );
    }
    else
    {
        fprintf(stderr,"card: list to array failed 3\n");
        (*failed)++;
    }
}
Пример #2
0
/**
 * Find deepest level of the match that has a queue
 * @param m the first in a chain of matches
 * @return the topmost match with a queue
 */
static match *match_deepest_queued( match *m )
{
    int i;
    if ( m->next != NULL )
    {
        dyn_array *da = dyn_array_create( 5 );
        if ( da != NULL )
        {
            match *temp = m;
            while ( temp != NULL )
            {
                dyn_array_add( da, temp );
                temp = temp->next;
            }
            for ( i=dyn_array_size(da)-1;i>=0;i-- )
            {
                match *n = dyn_array_get(da,i);
                if ( n->queue != NULL )
                {
                    m = n;
                    // clean up any non-queued matches
                    if ( m->next != NULL )
                        match_dispose( m->next );
                    m->next = NULL;
                    break;
                }
            }
            dyn_array_dispose( da );
        }
    }
    return m;
}
Пример #3
0
/**
 * Write out the pairs
 * @param root the document root
 * @param mvd the mvd we are writing to
 * @param encoding the XML encoding
 * @return 1 if it worked else 0
 */
static int write_pairs( dom_item *root, MVD *mvd, char *encoding )
{
    int res = 1;
    dom_item *p_parent = dom_array_create( "pairs" );
    if ( p_parent != NULL )
    {
        hashmap *parents = hashmap_create( 12, 0 );
        hashmap *orphans = hashmap_create( 12, 0 );
        if ( parents != NULL && orphans != NULL )
        {
            int i,id = 1;
            dyn_array *pairs = mvd_get_pairs( mvd );
            for ( i=0; i<dyn_array_size(pairs); i++ )
            {
                pair *p = dyn_array_get( pairs, i );
                res = write_one_pair( p, p_parent, parents, orphans, &id );
                if ( !res )
                    break;
            }
            hashmap_dispose( parents, NULL );
            hashmap_dispose( orphans, NULL );
        }
    }
    // attach pairs node to its parent node
    if ( res )
        res = dom_add_child( root, p_parent );
    return res;
}
Пример #4
0
int main(int argc, char **argv) {
    ls(NULL);
    ls("test.c");
    ls("../../");
    cat("test.c");
    dyn_array_t *strings = tokenizer("bob,sue,fred", ",");
    size_t end = dyn_array_size(strings);
    for (size_t i = 0; i < end; ++i) {
        printf("%s\n", *((char **) dyn_array_at(strings, i)));
    }
    dyn_array_destroy(strings);
    return 0;
}
Пример #5
0
bool dyn_array_empty(const dyn_array_t *const dyn_array) {
    return dyn_array_size(dyn_array) == 0;
}