.\" Automatically generated by Pandoc 2.2.1 .\" .TH "al_for_each_fs_entry" "3alleg5" "" "Allegro reference manual" "" .hy .SH NAME .PP al_for_each_fs_entry \- Allegro 5 API .SH SYNOPSIS .IP .nf \f[C] #include\ int\ al_for_each_fs_entry(ALLEGRO_FS_ENTRY\ *dir, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ int\ (*callback)(ALLEGRO_FS_ENTRY\ *dir,\ void\ *extra), \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ void\ *extra) \f[] .fi .SH DESCRIPTION .PP This function takes the ALLEGRO_FS_ENTRY(3alleg5) \f[C]dir\f[], 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 \f[C]callback\f[] once for every filesystem entry in the directory \f[C]dir\f[]. .PP The callback \f[C]callback\f[] must be of type \f[C]int\ callback(ALLEGRO_FS_ENTRY\ *\ entry,\ void\ *\ extra)\f[]. The \f[C]callback\f[] will be called with a pointer to an ALLEGRO_FS_ENTRY(3alleg5) that matches one file or directory in \f[C]dir\f[], and the pointer passed in the \f[C]extra\f[] parameter to al_for_each_fs_entry(3alleg5). .PP When \f[C]callback\f[] returns \f[C]ALLEGRO_FOR_EACH_FS_ENTRY_STOP\f[] or \f[C]ALLEGRO_FOR_EACH_FS_ENTRY_ERROR\f[], iteration will stop immediately and al_for_each_fs_entry(3alleg5) will return the value the \f[C]callback\f[] returned. .PP When \f[C]callback\f[] returns \f[C]ALLEGRO_FOR_EACH_FS_ENTRY_OK\f[] iteration will continue normally, and if the ALLEGRO_FS_ENTRY(3alleg5) parameter of \f[C]callback\f[] is a directory, al_for_each_fs_entry(3alleg5) will call itself on that directory. Therefore the function will recusively descend into that directory. .PP However, when \f[C]callback\f[] returns \f[C]ALLEGRO_FOR_EACH_FS_ENTRY_SKIP\f[] iteration will continue, but al_for_each_fs_entry(3alleg5) will NOT recurse into the ALLEGRO_FS_ENTRY(3alleg5) parameter of \f[C]callback\f[] even if it is a directory. .PP This function will skip any files or directories named \f[C]\&.\f[] or \f[C]\&..\f[] which may exist on certain platforms and may signify the current and the parent directory. The \f[C]callback\f[] will not be called for files or directories with such a name. .PP Returns ALLEGRO_FOR_EACH_FS_ENTRY_OK if successful, 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 \f[C]callback\f[] return that value. In this case, al_set_errno(3alleg5) will not be used. .SH SEE ALSO .PP ALLEGRO_FOR_EACH_FS_ENTRY_RESULT(3alleg5) .SH SINCE .PP 5.1.9