forked from RepoMirrors/bemenu
Cleanup init.
This commit is contained in:
parent
2294ff46e5
commit
660f832fad
@ -43,9 +43,13 @@ load(const char *file, struct bm_renderer *renderer)
|
|||||||
if (strcmp(renderer->api.version, BM_PLUGIN_VERSION))
|
if (strcmp(renderer->api.version, BM_PLUGIN_VERSION))
|
||||||
goto mismatch_fail;
|
goto mismatch_fail;
|
||||||
|
|
||||||
|
if (!renderer->name)
|
||||||
|
renderer->name = bm_strdup(name);
|
||||||
|
|
||||||
|
if (!renderer->file)
|
||||||
|
renderer->file = bm_strdup(file);
|
||||||
|
|
||||||
renderer->handle = handle;
|
renderer->handle = handle;
|
||||||
renderer->name = bm_strdup(name);
|
|
||||||
renderer->file = bm_strdup(file);
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
load_fail:
|
load_fail:
|
||||||
@ -77,6 +81,7 @@ load_to_list(const char *file)
|
|||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
chckDlUnload(renderer->handle);
|
chckDlUnload(renderer->handle);
|
||||||
|
renderer->handle = NULL;
|
||||||
|
|
||||||
if (!list_add_item(&renderers, renderer))
|
if (!list_add_item(&renderers, renderer))
|
||||||
goto fail;
|
goto fail;
|
||||||
@ -114,8 +119,10 @@ fail:
|
|||||||
bool
|
bool
|
||||||
bm_init(void)
|
bm_init(void)
|
||||||
{
|
{
|
||||||
static const char *rpath = INSTALL_PREFIX "/lib/bemenu";
|
if (renderers.count > 0)
|
||||||
|
return true;
|
||||||
|
|
||||||
|
static const char *rpath = INSTALL_PREFIX "/lib/bemenu";
|
||||||
const char *path = getenv("BEMENU_RENDERER");
|
const char *path = getenv("BEMENU_RENDERER");
|
||||||
|
|
||||||
if (path)
|
if (path)
|
||||||
@ -130,7 +137,6 @@ bm_init(void)
|
|||||||
if (tinydir_open(&dir, path) == -1)
|
if (tinydir_open(&dir, path) == -1)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
size_t registered = 0;
|
|
||||||
while (dir.has_next) {
|
while (dir.has_next) {
|
||||||
tinydir_file file;
|
tinydir_file file;
|
||||||
memset(&file, 0, sizeof(file));
|
memset(&file, 0, sizeof(file));
|
||||||
@ -139,9 +145,7 @@ bm_init(void)
|
|||||||
if (!file.is_dir && !strncmp(file.name, "bemenu-renderer-", strlen("bemenu-renderer-"))) {
|
if (!file.is_dir && !strncmp(file.name, "bemenu-renderer-", strlen("bemenu-renderer-"))) {
|
||||||
char *fpath;
|
char *fpath;
|
||||||
if ((fpath = bm_dprintf("%s/%s", path, file.name))) {
|
if ((fpath = bm_dprintf("%s/%s", path, file.name))) {
|
||||||
if (load_to_list(fpath))
|
load_to_list(fpath);
|
||||||
registered++;
|
|
||||||
|
|
||||||
free(fpath);
|
free(fpath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,7 +154,7 @@ bm_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
tinydir_close(&dir);
|
tinydir_close(&dir);
|
||||||
return (registered > 0 ? true : false);
|
return (renderers.count > 0 ? true : false);
|
||||||
|
|
||||||
fail:
|
fail:
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user