#ident "$URL: svn://elmer/devel/SVN/SDDAS/trunk/libant/DefList.c $ %D% SwRI" /* DefList.c -- create definition list */ #include /* for free, etc. */ #include /* for string functions */ #include "ant.h" /* for LinkList,etc. */ /* DefListCreate */ LinkList DefListCreate( char* path, char* ext, LinkFilter fun) { LinkList DefList=0; /* list of definitions */ FILE *fp; /* to read definition files */ LinkList list; /* iterator for lists */ char dir[1000]; /* expand path */ /* get sorted list of definition files */ LinkList DefFiles; EnvExpand(dir,path); DefFiles=LinkSort(DirFilesByExt(dir,ext),(LinkFun) strcmp); /* read definition files, create definition list */ for (list=DefFiles; list; list = LinkNext(list)) if ((fp = PathFopen(path,(char *)LinkData(list),"r"))) DefList = LinkAppend(DefList,fun(fp)); /* cleanup list of definition files */ LinkApply(DefFiles, free); LinkListFree(DefFiles); return DefList; }