Skip to content

Commit c09b7a9

Browse files
committed
writer-json-sarif: write endLine/endColumn unconditionally
... paired with each startLine/startColumn to be compatible with `shellcheck-sarif` and `sarif-fmt`. Resolves: #136 Closes: #167
1 parent 874b5a5 commit c09b7a9

8 files changed

+12871
-5802
lines changed

src/lib/writer-json-sarif.cc

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,16 +230,14 @@ static void sarifEncodeLoc(object *pLoc, const Defect &def, unsigned idx)
230230

231231
// line start/end
232232
object reg = {
233-
{ "startLine", evt.line }
233+
{ "startLine", evt.line },
234+
{ "endLine", evt.line + evt.vSize }
234235
};
235-
if (0 < evt.vSize)
236-
reg["endLine"] = evt.line + evt.vSize;
237236

238237
// column start/end
239238
if (evt.column) {
240239
reg["startColumn"] = evt.column;
241-
if (0 < evt.hSize)
242-
reg["endColumn"] = evt.column + evt.hSize;
240+
reg["endColumn"] = evt.column + evt.hSize;
243241
}
244242

245243
locPhy["region"] = std::move(reg);

tests/csgrep/0080-sarif-writer-stdout.txt

Lines changed: 1020 additions & 340 deletions
Large diffs are not rendered by default.

tests/csgrep/0081-sarif-writer-stdout.txt

Lines changed: 8778 additions & 4389 deletions
Large diffs are not rendered by default.

tests/csgrep/0085-sarif-writer-stdout.txt

Lines changed: 330 additions & 154 deletions
Large diffs are not rendered by default.

tests/csgrep/0090-sarif-writer-illegal-utf8-sequence-stdout.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@
3232
"uri": "test.c"
3333
},
3434
"region": {
35-
"startLine": 0
35+
"startLine": 0,
36+
"endLine": 0
3637
}
3738
}
3839
}
@@ -53,7 +54,8 @@
5354
"uri": "test.c"
5455
},
5556
"region": {
56-
"startLine": 0
57+
"startLine": 0,
58+
"endLine": 0
5759
}
5860
},
5961
"message": {

tests/csgrep/0096-sarif-levels-stdout.txt

Lines changed: 1362 additions & 454 deletions
Large diffs are not rendered by default.

tests/csgrep/0097-sarif-set-tool-stdout.txt

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@
6060
},
6161
"region": {
6262
"startLine": 6,
63-
"startColumn": 1
63+
"endLine": 6,
64+
"startColumn": 1,
65+
"endColumn": 1
6466
}
6567
}
6668
}
@@ -82,7 +84,9 @@
8284
},
8385
"region": {
8486
"startLine": 6,
85-
"startColumn": 1
87+
"endLine": 6,
88+
"startColumn": 1,
89+
"endColumn": 1
8690
}
8791
},
8892
"message": {
@@ -112,7 +116,9 @@
112116
},
113117
"region": {
114118
"startLine": 4,
115-
"startColumn": 7
119+
"endLine": 4,
120+
"startColumn": 7,
121+
"endColumn": 7
116122
}
117123
}
118124
}
@@ -134,7 +140,9 @@
134140
},
135141
"region": {
136142
"startLine": 4,
137-
"startColumn": 7
143+
"endLine": 4,
144+
"startColumn": 7,
145+
"endColumn": 7
138146
}
139147
},
140148
"message": {

tests/csgrep/0109-shellcheck-sarif-cwe-stdout.txt

Lines changed: 1362 additions & 454 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)