30 char *new_search_path = NULL;
31 char *old_search_path;
34 cp_str(&new_search_path, input);
36 mdb_thread_lock(&search_path_lock);
37 old_search_path = search_path;
38 search_path = new_search_path;
39 mdb_thread_unlock(&search_path_lock);
42 free(old_search_path);
58 char *pathList = NULL;
60 if (!filename || !strlen(filename))
64 char *localFilename = strdup(filename);
68 char *sddsTags = NULL;
70 if ((sddsTags = strchr(localFilename,
'='))) {
76 mdb_thread_lock(&search_path_lock);
77 if (search_path && strlen(search_path))
78 cp_str(&pathList, search_path);
79 mdb_thread_unlock(&search_path_lock);
84 size_t needed = strlen(localFilename) + strlen(path) + 2 +
85 (sddsTags ? strlen(sddsTags) + 2 : 0);
86 char *tmpName = malloc(needed);
87 sprintf(tmpName,
"%s/%s", path, localFilename);
92 strcat(tmpName, sddsTags);
105 result = strdup(filename);