From eb2783fcce54b0b8cc8776e21d90f860c5ef97a0 Mon Sep 17 00:00:00 2001 From: Andrey Nering Date: Mon, 8 Apr 2024 23:08:30 -0300 Subject: [PATCH] fix: fix bug for files with special chars `&()` (#1584) --- CHANGELOG.md | 5 +++++ internal/execext/exec.go | 3 +++ 2 files changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28cb95e0..41529ab3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## Unreleased + +- Fix error when a file or directory in the project contained a special char + like `&`, `(` or `)` (#1551, #1584 by @andreynering). + ## v3.36.0 - 2024-04-08 - Added support for diff --git a/internal/execext/exec.go b/internal/execext/exec.go index 925395fd..a04a7167 100644 --- a/internal/execext/exec.go +++ b/internal/execext/exec.go @@ -103,6 +103,9 @@ func IsExitError(err error) bool { func Expand(s string) (string, error) { s = filepath.ToSlash(s) s = strings.ReplaceAll(s, " ", `\ `) + s = strings.ReplaceAll(s, "&", `\&`) + s = strings.ReplaceAll(s, "(", `\(`) + s = strings.ReplaceAll(s, ")", `\)`) fields, err := shell.Fields(s, nil) if err != nil { return "", err