diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/checkpatch.pl | 5 | ||||
-rw-r--r-- | scripts/coccinelle/err-bad-newline.cocci | 29 |
2 files changed, 33 insertions, 1 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index b7cb4ab478..9297087212 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -2514,11 +2514,14 @@ sub process { my $qemu_error_funcs = qr{error_setg| error_setg_errno| error_setg_win32| + error_setg_file_open| error_set| + error_prepend| + error_reportf_err| error_vreport| error_report}x; - if ($rawline =~ /\b(?:$qemu_error_funcs)\s*\(\s*\".*\\n/) { + if ($rawline =~ /\b(?:$qemu_error_funcs)\s*\(.*\".*\\n/) { WARN("Error messages should not contain newlines\n" . $herecurr); } diff --git a/scripts/coccinelle/err-bad-newline.cocci b/scripts/coccinelle/err-bad-newline.cocci new file mode 100644 index 0000000000..1316cc86a6 --- /dev/null +++ b/scripts/coccinelle/err-bad-newline.cocci @@ -0,0 +1,29 @@ +// Error messages should not contain newlines. This script finds +// messages that do. Fixing them is manual. +@r@ +expression errp, eno, cls, fmt; +position p; +@@ +( +error_report(fmt, ...)@p +| +error_setg(errp, fmt, ...)@p +| +error_setg_errno(errp, eno, fmt, ...)@p +| +error_setg_win32(errp, eno, cls, fmt, ...)@p +| +error_prepend(errp, fmt, ...)@p +| +error_setg_file_open(errp, eno, cls, fmt, ...)@p +| +error_reportf_err(errp, fmt, ...)@p +| +error_set(errp, cls, fmt, ...)@p +) +@script:python@ +fmt << r.fmt; +p << r.p; +@@ +if "\\n" in str(fmt): + print "%s:%s:%s:%s" % (p[0].file, p[0].line, p[0].column, fmt) |