Skip to content

Commit

Permalink
Merge pull request #879 from saschagrunert/escape-single-quotes
Browse files Browse the repository at this point in the history
Escape single quotes in fish shell completion
  • Loading branch information
AudriusButkevicius committed Aug 30, 2019
2 parents 38a6c56 + 4bbff84 commit 3eca109
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 7 deletions.
2 changes: 1 addition & 1 deletion docs_test.go
Expand Up @@ -11,7 +11,7 @@ func testApp() *App {
app.Flags = []Flag{
StringFlag{
Name: "socket, s",
Usage: "some usage text",
Usage: "some 'usage' text",
Value: "value",
TakesFile: true,
},
Expand Down
10 changes: 8 additions & 2 deletions fish.go
Expand Up @@ -78,7 +78,8 @@ func (a *App) prepareFishCommands(commands []Command, allCommands *[]string, pre
))

if command.Usage != "" {
completion.WriteString(fmt.Sprintf(" -d '%s'", command.Usage))
completion.WriteString(fmt.Sprintf(" -d '%s'",
escapeSingleQuotes(command.Usage)))
}

if !command.HideHelp {
Expand Down Expand Up @@ -144,7 +145,8 @@ func (a *App) prepareFishFlags(flags []Flag, previousCommands []string) []string
}

if flag.GetUsage() != "" {
completion.WriteString(fmt.Sprintf(" -d '%s'", flag.GetUsage()))
completion.WriteString(fmt.Sprintf(" -d '%s'",
escapeSingleQuotes(flag.GetUsage())))
}

completions = append(completions, completion.String())
Expand Down Expand Up @@ -182,3 +184,7 @@ func (a *App) fishSubcommandHelper(allCommands []string) string {
return fishHelper

}

func escapeSingleQuotes(input string) string {
return strings.Replace(input, `'`, `\'`, -1)
}
2 changes: 1 addition & 1 deletion testdata/expected-doc-full.man
Expand Up @@ -49,7 +49,7 @@ greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
\fB\-\-flag, \-\-fl, \-f\fP="":

.PP
\fB\-\-socket, \-s\fP="": some usage text (default: value)
\fB\-\-socket, \-s\fP="": some 'usage' text (default: value)


.SH COMMANDS
Expand Down
2 changes: 1 addition & 1 deletion testdata/expected-doc-full.md
Expand Up @@ -32,7 +32,7 @@ greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

**--flag, --fl, -f**="":

**--socket, -s**="": some usage text (default: value)
**--socket, -s**="": some 'usage' text (default: value)


# COMMANDS
Expand Down
2 changes: 1 addition & 1 deletion testdata/expected-doc-no-commands.md
Expand Up @@ -32,5 +32,5 @@ greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

**--flag, --fl, -f**="":

**--socket, -s**="": some usage text (default: value)
**--socket, -s**="": some 'usage' text (default: value)

2 changes: 1 addition & 1 deletion testdata/expected-fish-full.fish
Expand Up @@ -9,7 +9,7 @@ function __fish_greet_no_subcommand --description 'Test if there has been any su
return 0
end

complete -c greet -n '__fish_greet_no_subcommand' -l socket -s s -r -d 'some usage text'
complete -c greet -n '__fish_greet_no_subcommand' -l socket -s s -r -d 'some \'usage\' text'
complete -c greet -n '__fish_greet_no_subcommand' -f -l flag -s fl -s f -r
complete -c greet -n '__fish_greet_no_subcommand' -f -l another-flag -s b -d 'another usage text'
complete -c greet -n '__fish_greet_no_subcommand' -f -l help -s h -d 'show help'
Expand Down

0 comments on commit 3eca109

Please sign in to comment.