49 lines
2.0 KiB
C
49 lines
2.0 KiB
C
#ifndef VSF_LS_H
|
|
#define VSF_LS_H
|
|
|
|
struct mystr;
|
|
struct mystr_list;
|
|
struct vsf_sysutil_dir;
|
|
|
|
/* vsf_ls_populate_dir_list()
|
|
* PURPOSE
|
|
* Given a directory handle, populate a formatted directory entry list (/bin/ls
|
|
* format). Also optionally populate a list of subdirectories.
|
|
* PARAMETERS
|
|
* p_list - the string list object for the result list of entries
|
|
* p_subdir_list - the string list object for the result list of
|
|
* subdirectories. May be 0 if client is not interested.
|
|
* p_dir - the directory object to be listed
|
|
* p_base_dir_str - the directory name we are listing, relative to current
|
|
* p_option_str - the string of options given to the LIST/NLST command
|
|
* p_filter_str - the filter string given to LIST/NLST - e.g. "*.mp3"
|
|
* is_verbose - set to 1 for LIST, 0 for NLST
|
|
*/
|
|
void vsf_ls_populate_dir_list(struct mystr_list* p_list,
|
|
struct mystr_list* p_subdir_list,
|
|
struct vsf_sysutil_dir* p_dir,
|
|
const struct mystr* p_base_dir_str,
|
|
const struct mystr* p_option_str,
|
|
const struct mystr* p_filter_str,
|
|
int is_verbose);
|
|
|
|
/* vsf_filename_passes_filter()
|
|
* PURPOSE
|
|
* Determine whether the given filename is matched by the given filter string.
|
|
* The format of the filter string is a small subset of a regular expression.
|
|
* Currently, just * and ? are supported.
|
|
* PARAMETERS
|
|
* p_filename_str - the filename to match
|
|
* p_filter_str - the filter to match against
|
|
* iters - pointer to a zero-seeded int which prevents the match
|
|
* loop from running an excessive number of times
|
|
* RETURNS
|
|
* Returns 1 if there is a match, 0 otherwise.
|
|
*/
|
|
int vsf_filename_passes_filter(const struct mystr* p_filename_str,
|
|
const struct mystr* p_filter_str,
|
|
unsigned int* iters);
|
|
|
|
#endif /* VSF_LS_H */
|
|
|