summary refs log tree commit diff stats
path: root/commands/cd.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/cd.go')
-rw-r--r--commands/cd.go16
1 files changed, 5 insertions, 11 deletions
diff --git a/commands/cd.go b/commands/cd.go
index 1d033e4..fa487e7 100644
--- a/commands/cd.go
+++ b/commands/cd.go
@@ -24,11 +24,7 @@ func (ChangeDirectory) Aliases() []string {
 }
 
 func (ChangeDirectory) Complete(aerc *widgets.Aerc, args []string) []string {
-	path := ""
-	if len(args) >= 1 {
-		path = args[0]
-	}
-
+	path := strings.Join(args, " ")
 	completions := CompletePath(path)
 
 	var dirs []string
@@ -43,24 +39,22 @@ func (ChangeDirectory) Complete(aerc *widgets.Aerc, args []string) []string {
 }
 
 func (ChangeDirectory) Execute(aerc *widgets.Aerc, args []string) error {
-	if len(args) < 1 || len(args) > 2 {
+	if len(args) < 1 {
 		return errors.New("Usage: cd [directory]")
 	}
 	cwd, err := os.Getwd()
 	if err != nil {
 		return err
 	}
-	var target string
-	if len(args) == 1 {
+	target := strings.Join(args[1:], " ")
+	if target == "" {
 		target = "~"
-	} else if args[1] == "-" {
+	} else if target == "-" {
 		if previousDir == "" {
 			return errors.New("No previous folder to return to")
 		} else {
 			target = previousDir
 		}
-	} else {
-		target = args[1]
 	}
 	target, err = homedir.Expand(target)
 	if err != nil {