abiosoft / ishell

Library for creating interactive cli applications.
MIT License
1.69k stars 195 forks source link

Extraneous space for multiline args #132

Open bwhaley opened 4 years ago

bwhaley commented 4 years ago

First and foremost, thanks for this project! I've been using it successfully in my AWS Parameter Store shell project.

I've noticed that an extraneous space is added in values with new lines. Here's a reproducible example:

package main

import (
    "github.com/abiosoft/ishell"
)

func main() {
    shell := ishell.New()
    shell.AddCmd(&ishell.Cmd{
        Name: "test",
        Func: func(c *ishell.Context) {
            shell.Printf("Got: '%x'\n", c.Args[0])
        },
    })
    shell.Run()
}
>>> test "foo\
... bar"
Got: '666f6f200a626172'

In the hex output we see:

666f6f - foo
200a - <space><newline>
626172 - bar

The space here is unexpected. I did start looking through the code here but ran out of time before I figured out where it was happening.