Beispiel #1
0
void	search_for_file(udf_t *p_udf, udf_dirent_t *p_udf_dirent, const char *path, const char *target)
{
	while (udf_readdir(p_udf_dirent))
	{
		const char *dirname = udf_get_filename(p_udf_dirent);
		if (udf_is_dir(p_udf_dirent))
		{
			udf_dirent_t *p_udf_dirent2 = udf_opendir(p_udf_dirent);
			if (p_udf_dirent2)
			{
				const unsigned int i_newlen=2 + strlen(path) + strlen(dirname);
				char *newpath = (char *)calloc(1, sizeof(char)*i_newlen);

				snprintf(newpath, i_newlen, "%s%s/", path, dirname);
				search_for_file(p_udf, p_udf_dirent2, newpath, target);
				free(newpath);
			}
		}
		else if (strcmp(dirname, target) == 0)
		{
			const unsigned int i_newlen=2 + strlen(path) + strlen(dirname);
			char *newpath = (char *)calloc(1, sizeof(char)*i_newlen);

			snprintf(newpath, i_newlen, "%s%s", path, dirname);
			//print_file_info(p_udf_dirent, newpath);
			printf("%s\n", newpath);
		}
	}
}
Beispiel #2
0
bool search_for_file( const std::string &base_path,
						const std::string &base_name,
						const char **valid_exts,
						std::string &result )
{
	std::vector<std::string> result_list;
	std::vector<std::string> ignore_list;

	if ( get_filename_from_base(
		result_list, ignore_list, base_path, base_name, valid_exts )  )
	{
		result = result_list.front();
		return true;
	}

	std::vector<std::string> subs;
	get_subdirectories( subs, base_path );

	std::vector<std::string>::iterator itr;
	for ( itr = subs.begin(); itr != subs.end(); ++itr )
	{

		if ( search_for_file(
				base_path + (*itr) + "/",
				base_name,
				valid_exts,
				result ) )
		{
			return true;
		}
	}

	return false;
}
Beispiel #3
0
int do_init(                        /* INITIALIZATION FOR THE HELP PROCESS     */
    char **helpfilenames,           /* - list of help file names               */
    HelpSrchPathItem *srchlist )    /* - list of places to look for help files */
{
    int                 count;
    char                **fname;
    char                fullpath[_MAX_PATH];

    count = 0;
    while( HelpFiles[count].name != NULL && count < MAX_HELP_FILES - 1 ) {
        HelpMemFree( HelpFiles[count].name );
        HelpFiles[count].name = NULL;
        count += 1;
    }
    fname = helpfilenames;
    count = 0;
    while( *fname != NULL  &&  count < MAX_HELP_FILES-1 ) {
        if( search_for_file( fullpath, *fname, srchlist ) ) {
            HelpFiles[count].name = HelpMemAlloc( strlen( fullpath ) + 1 );
            strcpy( HelpFiles[count].name, fullpath );
            HelpFiles[count].f = 0;
            count += 1;
        }
        ++fname;
    }
    HelpFiles[count].name = NULL;
    HelpFiles[count].f = 0;
    return( count );
}