int cardmanager_search_replay_readers(cardmanager_t *cm) { a_string_t* fn; struct dirent **namelist; const char* log_folder = path_config_get_string(PATH_CONFIG_FOLDER_REPLAY); int count,n; n = scandir(log_folder,&namelist,select_clf,alphasort); if (n<=0) return 0; count=0; cm->readers=(char **)realloc(cm->readers,sizeof(char*)*(cm->readers_count+n)); while (n--) { count++; fn = a_strnew(NULL); a_sprintf(fn,"replay://%s",namelist[n]->d_name); cm->readers[cm->readers_count++]=a_strfinalize(fn); free(namelist[n]); } free(namelist); return count; }
char* cardtree_to_xml(cardtree_t* ct, const char *path) { a_string_t *res; GtkTreeIter iter; gboolean path_exists; if (path==NULL) path_exists = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ct->_store),&iter); else path_exists = gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(ct->_store),&iter,path); if (!path_exists) return NULL; res = a_strnew("<?xml version=\"1.0\"?>\n"); a_strcat(res,"<cardtree>\n"); node_to_xml(res,GTK_TREE_MODEL(ct->_store),&iter,1); a_strcat(res,"</cardtree>\n"); return a_strfinalize(res); }