aboutsummaryrefslogtreecommitdiffstats
path: root/commands/util.go
diff options
context:
space:
mode:
authorRobin Jarry <robin@jarry.cc>2023-12-22 15:51:14 +0100
committerRobin Jarry <robin@jarry.cc>2024-01-17 11:52:59 +0100
commit3622f7a99e91bfe38eab9e91dc982aafa00fe211 (patch)
tree071af82a070719d2b4f46dca430a892941f70214 /commands/util.go
parent765761c5bf49799e7d74535b9727062c869fc358 (diff)
downloadaerc-3622f7a99e91bfe38eab9e91dc982aafa00fe211.tar.gz
cd: fix completion of folders with a space
Folders that contain spaces are surrounded by quotes. They can never end with '/'. Hence they are never returned in the completion results. Update CompletePath with an additional onlyDirs argument to take care of this before quotes are inserted. Fixes: abe228b14d97 ("commands: use completion from go-opt") Fixes: https://todo.sr.ht/~rjarry/aerc/204 Reported-by: Bence Ferdinandy <bence@ferdinandy.com> Signed-off-by: Robin Jarry <robin@jarry.cc> Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Diffstat (limited to 'commands/util.go')
-rw-r--r--commands/util.go4
1 files changed, 3 insertions, 1 deletions
diff --git a/commands/util.go b/commands/util.go
index e7940017..af8d3dfa 100644
--- a/commands/util.go
+++ b/commands/util.go
@@ -71,7 +71,7 @@ func QuickTerm(args []string, stdin io.Reader) (*app.Terminal, error) {
}
// CompletePath provides filesystem completions given a starting path.
-func CompletePath(path string) []string {
+func CompletePath(path string, onlyDirs bool) []string {
if path == ".." || strings.HasSuffix(path, "/..") {
return []string{path + "/"}
}
@@ -93,6 +93,8 @@ func CompletePath(path string) []string {
for _, m := range matches {
if isDir(m) {
m += "/"
+ } else if onlyDirs {
+ continue
}
if strings.HasPrefix(filepath.Base(m), ".") && !includeHidden {
continue