summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2024-08-13 18:51:02 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2024-08-13 18:51:02 +0900
commite215e2daf3ae0f68e45482958c7d348652b86688 (patch)
treee002c998f9739cdb7f8ac934a307c5718ac5af3b /src
parente28f5aa45baf20ffdba469e11a998d3016c8cb42 (diff)
downloadfzf-e215e2daf3ae0f68e45482958c7d348652b86688.tar.gz
Allow comments in $FZF_DEFAULT_OPTS and $FZF_DEFAULT_OPTS_FILE
Close #3961
Diffstat (limited to 'src')
-rw-r--r--src/options.go12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/options.go b/src/options.go
index 1593d6f8..0f903df6 100644
--- a/src/options.go
+++ b/src/options.go
@@ -12,7 +12,7 @@ import (
"github.com/junegunn/fzf/src/algo"
"github.com/junegunn/fzf/src/tui"
- "github.com/mattn/go-shellwords"
+ "github.com/junegunn/go-shellwords"
"github.com/rivo/uniseg"
)
@@ -2915,6 +2915,12 @@ func postProcessOptions(opts *Options) error {
return processScheme(opts)
}
+func parseShellWords(str string) ([]string, error) {
+ parser := shellwords.NewParser()
+ parser.ParseComment = true
+ return parser.Parse(str)
+}
+
// ParseOptions parses command-line options
func ParseOptions(useDefaults bool, args []string) (*Options, error) {
opts := defaultOptions()
@@ -2928,7 +2934,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) {
return nil, errors.New("$FZF_DEFAULT_OPTS_FILE: " + err.Error())
}
- words, parseErr := shellwords.Parse(string(bytes))
+ words, parseErr := parseShellWords(string(bytes))
if parseErr != nil {
return nil, errors.New(path + ": " + parseErr.Error())
}
@@ -2940,7 +2946,7 @@ func ParseOptions(useDefaults bool, args []string) (*Options, error) {
}
// 2. Options from $FZF_DEFAULT_OPTS string
- words, parseErr := shellwords.Parse(os.Getenv("FZF_DEFAULT_OPTS"))
+ words, parseErr := parseShellWords(os.Getenv("FZF_DEFAULT_OPTS"))
if parseErr != nil {
return nil, errors.New("$FZF_DEFAULT_OPTS: " + parseErr.Error())
}