Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
last version of tesh
[simgrid.git] / tools / tesh2 / src / directories.c
index 83726a7..3afc543 100644 (file)
@@ -29,6 +29,18 @@ directories_get_size(directories_t directories)
        return vector_get_size(directories->items);
 }
 
+int
+directories_is_empty(directories_t directories)
+{
+       if(!directories)
+       {
+               errno = EINVAL;
+               return -1;
+       }
+       
+       return vector_is_empty(directories->items);
+}
+
 int
 directories_add(directories_t directories, directory_t directory)
 {
@@ -71,48 +83,11 @@ directories_contains(directories_t directories, directory_t directory)
        return 0;
 }
 
-directory_t
-directories_search_fstream_directory(directories_t directories, const char* name)
-{
-       
-       struct stat buffer = {0};
-       char* prev;
-       directory_t directory;
-       
-       if(!directories)
-       {
-               errno = EINVAL;
-               return NULL;
-       }
-       
-       prev = getcwd(NULL, 0);
-       
-       vector_rewind(directories->items);
-       
-       while((directory = vector_get(directories->items)))
-       {
-               chdir(directory->name);
-               
-               if(!stat(name, &buffer) || S_ISREG(buffer.st_mode))
-               {
-                       chdir(prev);
-                       free(prev);
-                       return directory;
-               }
-               
-               vector_move_next(directories->items);
-       }
-       
-       chdir(prev);
-       free(prev);
-       errno = ESRCH;
-       return NULL;    
-}
-
 int
 directories_load(directories_t directories, fstreams_t fstreams, lstrings_t suffixes)
 {
        directory_t directory;
+       int rv;
        
        if(!directories || !fstreams || !suffixes)
                return EINVAL;
@@ -121,21 +96,14 @@ directories_load(directories_t directories, fstreams_t fstreams, lstrings_t suff
        
        while((directory = vector_get(directories->items)))
        {
-               if(directory->load)
-               {
-                       if((errno = directory_open(directory)))
-                               return errno;
-                       
-                       chdir(directory->name);
-                       
-                       if((errno = directory_load(directory, fstreams, suffixes)))
-                               return errno;
-                               
-                       if((errno = directory_close(directory)))
-                               return errno;
+               if((rv = directory_open(directory)))
+                       return rv;
+               
+               if((rv = directory_load(directory, fstreams, suffixes)))
+                       return rv;
                        
-                       chdir(root_directory->name);
-               }
+               if((rv = directory_close(directory)))
+                       return rv;
                        
                vector_move_next(directories->items);
                
@@ -145,51 +113,16 @@ directories_load(directories_t directories, fstreams_t fstreams, lstrings_t suff
        return 0;
 }
 
-int
-directories_has_directories_to_load(directories_t directories)
-{
-       directory_t directory;
-       
-       if(!directories)
-       {
-               errno = EINVAL;
-               return 0;
-       }
-       
-       vector_rewind(directories->items);
-       
-       while((directory = vector_get(directories->items)))
-       {
-               if(directory->load)
-                       return 1;
-                       
-               vector_move_next(directories->items);
-               
-       }
-       
-       return 0;
-}
-
-directory_t
-directories_get_back(directories_t directories)
-{
-       if(!directories)
-       {
-               errno = EINVAL;
-               return NULL;
-       }
-       
-       return vector_get_back(directories->items);     
-}
-
 int
 directories_free(void** directoriesptr)
 {
+       int rv;
+       
        if(!(*directoriesptr))
                return EINVAL;
                
-       if((errno = vector_free(&((*((directories_t*)directoriesptr))->items))))
-               return errno;
+       if((rv = vector_free(&((*((directories_t*)directoriesptr))->items))))
+               return rv;
        
        free(*directoriesptr);
        *directoriesptr = NULL;