forked from enlightenment/efl
If each all using ecore_config themes calls this with PACKAGE_DATA_DIR "/themes/" or similar then the search path should be all encompassing
SVN revision: 10533
This commit is contained in:
parent
e1ea47b82e
commit
e1704a29b5
|
@ -353,6 +353,47 @@ ecore_config_theme_search_path_get(void)
|
||||||
return search_path;
|
return search_path;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds to the search path used to find themes. The current path is found and
|
||||||
|
* searches for occurrences of the appending item. If this item is not found it
|
||||||
|
* is appended to the search path wich is then saved back into the property
|
||||||
|
* "/e/themes/search_path".
|
||||||
|
* Note: This should be called after ecore_config_load() to allow a users
|
||||||
|
* overriding the default search path to be read.
|
||||||
|
* @return On success ECORE_CONFIG_ERR_SUCC, on fail ECORE_CONFIG_ERR_FAIL
|
||||||
|
* (appending item already in search path) or on NULL being passed in
|
||||||
|
* ECORE_CONFIG_ERR_NODATA
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
ecore_config_theme_search_path_append(char *path)
|
||||||
|
{
|
||||||
|
char *search_path, *loc, *new_search_path;
|
||||||
|
int len, search_len;
|
||||||
|
|
||||||
|
if (!path)
|
||||||
|
return ECORE_CONFIG_ERR_NODATA;
|
||||||
|
search_path = ecore_config_theme_search_path_get();
|
||||||
|
|
||||||
|
loc = strstr(search_path, path);
|
||||||
|
len = strlen(path);
|
||||||
|
search_len = strlen(search_path);
|
||||||
|
|
||||||
|
if (loc == NULL || (loc != search_path && *(loc - 1) != '|') ||
|
||||||
|
(loc != (search_len - len) && *(loc + len - 1) != '|'))
|
||||||
|
{
|
||||||
|
new_search_path = malloc(search_len + len + 2); /* 2 = \0 + | */
|
||||||
|
strcpy(new_search_path, search_path);
|
||||||
|
strncat(new_search_path, "|", 1);
|
||||||
|
strncat(new_search_path, path, len);
|
||||||
|
|
||||||
|
ecore_config_string_set("/e/themes/search_path", new_search_path);
|
||||||
|
free(new_search_path);
|
||||||
|
|
||||||
|
return ECORE_CONFIG_ERR_SUCC;
|
||||||
|
}
|
||||||
|
return ECORE_CONFIG_ERR_FAIL;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a theme files full path, as it is found according to the search path.
|
* Get a theme files full path, as it is found according to the search path.
|
||||||
* The theme searched for is @name (e.g. "winter").
|
* The theme searched for is @name (e.g. "winter").
|
||||||
|
@ -383,8 +424,9 @@ ecore_config_theme_with_path_from_name_get(char *name)
|
||||||
|
|
||||||
file = malloc(strlen(search_path_tmp) + strlen(name) + 6);
|
file = malloc(strlen(search_path_tmp) + strlen(name) + 6);
|
||||||
/* 6 = / + .eet + \0 */
|
/* 6 = / + .eet + \0 */
|
||||||
|
|
||||||
snprintf(file, strlen(search_path_tmp) + strlen(name) + 6,
|
snprintf(file, strlen(search_path_tmp) + strlen(name) + 6,
|
||||||
"%s/%s.eet", search_path_tmp, name);
|
"%s/%s.eet", search_path_tmp, name);
|
||||||
|
|
||||||
if (stat(file, &st) == 0)
|
if (stat(file, &st) == 0)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue