Skip to content

Commit

Permalink
fix println, add tests
Browse files Browse the repository at this point in the history
  • Loading branch information
PabstMirror committed Nov 4, 2024
1 parent 672fa82 commit 7c9ba8d
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 2 deletions.
4 changes: 3 additions & 1 deletion libs/sqf/src/analyze/lints/s08_format_args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,9 @@ fn get_format_problem(input: &str, extra_args: usize) -> Option<String> {
.unwrap_or_default();
tokens.push(token_value);
} else if c != '%' {
println!("format string: non-escaped \"%\" [at index {token_start}]");
return Some(format!(
"format string: non-escaped \"%\" [at index {token_start}]"
));
}
}
if !token_active && c == '%' && outside_token {
Expand Down
6 changes: 5 additions & 1 deletion libs/sqf/tests/lints/s08_format_args.sqf
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@ format ["%1%2", 1]; // undefined tokens
format ["%5", 1, 2 ,3 ,4, 5]; // skipped tokens
formatText ["me too %1"];


format ["%1%%", 100];
format ["%%%1%%", 100];
format ["%%%%%%%%%%%%%%%%"];
format ["this code is 99% bug free"]; // non-escaped
format ["%1%"]; // non-escaped (prioity over unused)
format ["%%1", 1]; // unused args
format ["%%%1", 1];
format ["%%%1%%%2 %% %%%3%%%%", 1, 2, 3];
21 changes: 21 additions & 0 deletions libs/sqf/tests/snapshots/lints__simple_s08_format_args.snap
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,24 @@ expression: lint(stringify! (s08_format_args))
│
9 │ formatText ["me too %1"];
│ ^^^^^^^^^^^^^^^^^^^^^^^ format string: undefined tokens [used "%1", passed 0]


error[L-S08]: format string: non-escaped "%" [at index 16]
┌─ s08_format_args.sqf:14:1
│
14 │ format ["this code is 99% bug free"]; // non-escaped
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ format string: non-escaped "%" [at index 16]


error[L-S08]: format string: non-escaped "%" [at index 3]
┌─ s08_format_args.sqf:15:1
│
15 │ format ["%1%"]; // non-escaped (prioity over unused)
│ ^^^^^^^^^^^^^ format string: non-escaped "%" [at index 3]


error[L-S08]: format string: unused args [used "%0", passed 1]
┌─ s08_format_args.sqf:16:1
│
16 │ format ["%%1", 1]; // unused args
│ ^^^^^^^^^^^^^^^^ format string: unused args [used "%0", passed 1]

0 comments on commit 7c9ba8d

Please sign in to comment.