aboutsummaryrefslogtreecommitdiff
path: root/scripts/coccinelle
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2016-08-03 13:37:51 +0200
committerMarkus Armbruster <armbru@redhat.com>2016-08-08 09:00:44 +0200
commitdf3c286c53ac51e7267f2761c7a0c62e11b6e815 (patch)
tree3871ea9f31a2b17dd3d5b146c20fe09a00fe2f63 /scripts/coccinelle
parent51009170d8fc263cfdcd5a60fe3ba213daa3d15b (diff)
downloadqemu-df3c286c53ac51e7267f2761c7a0c62e11b6e815.zip
qemu-df3c286c53ac51e7267f2761c7a0c62e11b6e815.tar.gz
qemu-df3c286c53ac51e7267f2761c7a0c62e11b6e815.tar.bz2
error: Strip trailing '\n' from error string arguments (again)
Commit 9af9e0f, 6daf194d, be62a2eb and 312fd5f got rid of a bunch, but they keep coming back. checkpatch.pl tries to flag them since commit 5d596c2, but it's not very good at it. Offenders tracked down with Coccinelle script scripts/coccinelle/err-bad-newline.cocci, an updated version of the script from commit 312fd5f. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1470224274-31522-2-git-send-email-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'scripts/coccinelle')
-rw-r--r--scripts/coccinelle/err-bad-newline.cocci29
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/coccinelle/err-bad-newline.cocci b/scripts/coccinelle/err-bad-newline.cocci
new file mode 100644
index 0000000..1316cc8
--- /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)