mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
cli: fix a panic and an infinite loop, when command flag descriptions have multiple lines (#17981)
This commit is contained in:
parent
a84fddbb91
commit
8445642567
25
vlib/cli/cli_test.v
Normal file
25
vlib/cli/cli_test.v
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
module main
|
||||||
|
|
||||||
|
import cli { Command, Flag }
|
||||||
|
|
||||||
|
fn test_long_description() {
|
||||||
|
mut cmd := Command{
|
||||||
|
name: 'cli'
|
||||||
|
description: 'An example of the cli library.'
|
||||||
|
version: '1.0.0'
|
||||||
|
}
|
||||||
|
mut greet_cmd := Command{
|
||||||
|
name: 'greet'
|
||||||
|
description: 'Prints greeting in different languages.'
|
||||||
|
usage: '<name>'
|
||||||
|
required_args: 1
|
||||||
|
}
|
||||||
|
greet_cmd.add_flag(Flag{
|
||||||
|
flag: .string_array
|
||||||
|
name: 'fun'
|
||||||
|
description: '\'{"uri":"mqtt://broker.emqx.io:1883","topic":"test_emq/1","filters":[{"producer_id":0,"trace_group":2,"string_id":3001},{"string_id":3002}]}\''
|
||||||
|
})
|
||||||
|
cmd.add_command(greet_cmd)
|
||||||
|
cmd.setup()
|
||||||
|
cmd.parse(['cli', 'greet', '-help'])
|
||||||
|
}
|
@ -153,8 +153,8 @@ fn pretty_description(s string, indent_len int) string {
|
|||||||
mut i := chars_per_line - 2
|
mut i := chars_per_line - 2
|
||||||
mut j := 0
|
mut j := 0
|
||||||
for ; i < line.len; i += chars_per_line - 2 {
|
for ; i < line.len; i += chars_per_line - 2 {
|
||||||
for line[i] != ` ` {
|
for j > 0 && line[j] != ` ` {
|
||||||
i--
|
j--
|
||||||
}
|
}
|
||||||
// indent was already done the first iteration
|
// indent was already done the first iteration
|
||||||
if j != 0 {
|
if j != 0 {
|
||||||
|
Loading…
Reference in New Issue
Block a user