diff options
author | LemonBoy <thatlemon@gmail.com> | 2017-08-29 21:03:42 +0200 |
---|---|---|
committer | LemonBoy <thatlemon@gmail.com> | 2017-08-29 21:03:42 +0200 |
commit | 7086eae650a616615bc81e688cdfa44d444463e0 (patch) | |
tree | 30845e69690dc699463ef7a5b2a3c4f5730ef25c /src/fe-common/core | |
parent | 13471013f31be1e2f459dfce9bc7425800b2824b (diff) | |
download | irssi-7086eae650a616615bc81e688cdfa44d444463e0.zip |
Complete filenames ending with a slash
Diffstat (limited to 'src/fe-common/core')
-rw-r--r-- | src/fe-common/core/completion.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/fe-common/core/completion.c b/src/fe-common/core/completion.c index 78b1b24b..e78fe7d5 100644 --- a/src/fe-common/core/completion.c +++ b/src/fe-common/core/completion.c @@ -321,6 +321,10 @@ GList *filename_complete(const char *path, const char *default_path) g_return_val_if_fail(path != NULL, NULL); + if (path[0] == '\0') { + return NULL; + } + list = NULL; /* get directory part of the path - expand ~/ */ @@ -350,7 +354,14 @@ GList *filename_complete(const char *path, const char *default_path) g_free_and_null(dir); } - basename = g_path_get_basename(path); + len = strlen(path); + /* g_path_get_basename() returns the component before the last slash if + * the path ends with a directory separator, that's not what we want */ + if (len > 0 && path[len - 1] == G_DIR_SEPARATOR) { + basename = g_strdup(""); + } else { + basename = g_path_get_basename(path); + } len = strlen(basename); /* add all files in directory to completion list */ |