summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/fe-common/core/fe-help.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/fe-common/core/fe-help.c b/src/fe-common/core/fe-help.c
index c087771b..84a76352 100644
--- a/src/fe-common/core/fe-help.c
+++ b/src/fe-common/core/fe-help.c
@@ -117,16 +117,27 @@ static void help_category(GSList *cmdlist, int items)
static int show_help_file(const char *file)
{
const char *helppath;
- char tmpbuf[1024], *str, *path;
+ char tmpbuf[1024], *str, *path, **paths, **tmp;
LINEBUF_REC *buffer = NULL;
int f, ret, recvlen;
helppath = settings_get_str("help_path");
- /* helpdir/command or helpdir/category/command */
- path = g_strdup_printf("%s/%s", helppath, file);
- f = open(path, O_RDONLY);
- g_free(path);
+ paths = g_strsplit(helppath, ":", -1);
+
+ f = -1;
+ for (tmp = paths; *tmp != NULL; tmp++) {
+ /* helpdir/command or helpdir/category/command */
+ path = g_strdup_printf("%s/%s", *tmp, file);
+ f = open(path, O_RDONLY);
+ g_free(path);
+
+ if (f != -1)
+ break;
+
+ }
+
+ g_strfreev(paths);
if (f == -1)
return FALSE;