diff options
| -rw-r--r-- | script.go | 11 | ||||
| -rw-r--r-- | script_example_test.go | 4 | ||||
| -rw-r--r-- | script_test.go | 26 | ||||
| -rw-r--r-- | testdata/script_joinStatements_test.data | 14 |
4 files changed, 37 insertions, 18 deletions
@@ -197,12 +197,13 @@ func joinStatements(in [][]byte) (out [][]byte) { continue } - stmt = bytes.TrimRight(stmt, "\\ \t") - stmt = append(stmt, ' ') + // Start joining multiline statement. + + stmt = bytes.TrimRight(stmt, "\\") y = x + 1 for ; y < len(in); y++ { - nextStmt = bytes.TrimSpace(in[y]) + nextStmt = in[y] if len(nextStmt) == 0 { in[y] = nil out[y] = nil @@ -213,10 +214,8 @@ func joinStatements(in [][]byte) (out [][]byte) { lastc = nextStmt[endc] if lastc == '\\' { - nextStmt = bytes.TrimRight(nextStmt, "\\ \t") - nextStmt = append(nextStmt, ' ') + nextStmt = bytes.TrimRight(nextStmt, "\\") } - stmt = append(stmt, nextStmt...) in[y] = nil diff --git a/script_example_test.go b/script_example_test.go index d53bf60..dbaa8be 100644 --- a/script_example_test.go +++ b/script_example_test.go @@ -18,8 +18,8 @@ key=value ` scriptContent = ` -multiline\ -command {{.Val "section::key"}};\ +multiline \ +command {{.Val "section::key"}}; \ end; ` diff --git a/script_test.go b/script_test.go index eb6432b..476bdab 100644 --- a/script_test.go +++ b/script_test.go @@ -49,24 +49,30 @@ func TestJoinStatements(t *testing.T) { exp [][]byte } + var ( + tdata *test.Data + err error + ) + + tdata, err = test.LoadData(`testdata/script_joinStatements_test.data`) + if err != nil { + t.Fatal(err) + } + var cases = []testCase{{ - in: bytes.Split([]byte(` -a -b \ -c -d \ -e \ -f -g`), []byte("\n")), + in: bytes.Split(tdata.Input[`case_0`], []byte("\n")), exp: [][]byte{ nil, []byte("a"), []byte("b c"), nil, - []byte("d e f"), + []byte("d e f"), + nil, + nil, + []byte(`gh,i`), nil, + []byte(`j k`), nil, - []byte("g"), }, }} diff --git a/testdata/script_joinStatements_test.data b/testdata/script_joinStatements_test.data new file mode 100644 index 0000000..67a36b9 --- /dev/null +++ b/testdata/script_joinStatements_test.data @@ -0,0 +1,14 @@ +Test data for script joinStatements. + +>>> case_0 + +a +b \ +c +d \ +e \ +f +g\ +h,i +j\ + k |
