Provided by: allegro5-doc_5.2.3.0-1_all bug

NAME

       al_for_each_fs_entry - Allegro 5 API

SYNOPSIS

              #include <allegro5/allegro.h>

              int al_for_each_fs_entry(ALLEGRO_FS_ENTRY *dir,
                                       int (*callback)(ALLEGRO_FS_ENTRY *dir, void *extra),
                                       void *extra)

DESCRIPTION

       This  function takes the ALLEGRO_FS_ENTRY(3alleg5) dir, which should represent a directory, and looks for
       any other file system entries that are in it.   This  function  will  then  call  the  callback  function
       callback once for every filesystem entry in the directory dir.

       The callback callback must be of type int callback(ALLEGRO_FS_ENTRY * entry, void * extra).  The callback
       will be called with a pointer to an ALLEGRO_FS_ENTRY(3alleg5) that matches one file or directory in  dir,
       and the pointer passed in the extra parameter to al_for_each_fs_entry(3alleg5).

       When  callback  returns ALLEGRO_FOR_EACH_FS_ENTRY_STOP or ALLEGRO_FOR_EACH_FS_ENTRY_ERROR, iteration will
       stop immediately and al_for_each_fs_entry(3alleg5) will return the value the callback returned.

       When  callback  returns  ALLEGRO_FOR_EACH_FS_ENTRY_OK  iteration  will  continue  normally,  and  if  the
       ALLEGRO_FS_ENTRY(3alleg5)  parameter  of callback is a directory, al_for_each_fs_entry(3alleg5) will call
       itself on that directory.  Therefore the function will recusively descend into that directory.

       However,  when   callback   returns   ALLEGRO_FOR_EACH_FS_ENTRY_SKIP   iteration   will   continue,   but
       al_for_each_fs_entry(3alleg5)  will  NOT recurse into the ALLEGRO_FS_ENTRY(3alleg5) parameter of callback
       even if it is a directory.

       This function will skip any files or directories named . or .. which may exist on certain  platforms  and
       may  signify  the  current  and  the  parent  directory.   The  callback  will not be called for files or
       directories with such a name.

       Returns ALLEGRO_FOR_EACH_FS_ENTRY_OK if sucessful, or ALLEGRO_FOR_EACH_FS_ENTRY_ERROR if  something  went
       wrong  in  processing the directory.  In that case it will use al_set_errno(3alleg5) to indicate the type
       of error which occurred.  This function returns  ALLEGRO_FOR_EACH_FS_ENTRY_STOP  in  case  iteration  was
       stopped by making callback return that value.  In this case, al_set_errno(3alleg5) will not be used.

SEE ALSO

       ALLEGRO_FOR_EACH_FS_ENTRY_RESULT(3alleg5)

SINCE

       5.1.9