Show the ninja string that failed to parse in errors
So that it's easier to debug what the problem is.
Test: m nothing
Change-Id: I97e81f98f0365e981d34c6b8bec8528de1b7e514
diff --git a/ninja_strings.go b/ninja_strings.go
index 51a167d..0b783c3 100644
--- a/ninja_strings.go
+++ b/ninja_strings.go
@@ -118,7 +118,7 @@
r := rune(str[i])
state, err = state(parseState, i, r)
if err != nil {
- return nil, err
+ return nil, fmt.Errorf("error parsing ninja string %q: %s", str, err)
}
}
diff --git a/ninja_strings_test.go b/ninja_strings_test.go
index c1e05f7..f400074 100644
--- a/ninja_strings_test.go
+++ b/ninja_strings_test.go
@@ -87,7 +87,7 @@
strs: []string{"$ ", " "},
}, {
input: "foo $ bar",
- err: "invalid character after '$' at byte offset 5",
+ err: `error parsing ninja string "foo $ bar": invalid character after '$' at byte offset 5`,
},
{
input: "foo $",
@@ -95,11 +95,11 @@
},
{
input: "foo ${} bar",
- err: "empty variable name at byte offset 6",
+ err: `error parsing ninja string "foo ${} bar": empty variable name at byte offset 6`,
},
{
input: "foo ${abc!} bar",
- err: "invalid character in variable name at byte offset 9",
+ err: `error parsing ninja string "foo ${abc!} bar": invalid character in variable name at byte offset 9`,
},
{
input: "foo ${abc",