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)++; } }
/** * 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; }
/** * 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; }
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; }
bool dyn_array_empty(const dyn_array_t *const dyn_array) { return dyn_array_size(dyn_array) == 0; }