lint does not understand the %m format, leading to false positives. The
too few format args is one of the important ones, IMO, so we should try to
make it accurate.
The diff below teaches lint that %m does not consume arguments.
Index: lint2/chk.c
===================================================================
RCS file: /home/tedu/cvs/src/usr.bin/xlint/lint2/chk.c,v
retrieving revision 1.18
diff -u -r1.18 chk.c
--- lint2/chk.c 27 Jul 2010 20:07:56 -0000 1.18
+++ lint2/chk.c 18 Jun 2011 04:38:30 -0000
@@ -812,6 +812,11 @@
break;
}
+ if (fc == 'm') {
+ fc = *fp++;
+ continue;
+ }
+
if ((tp = *ap++) == NULL) {
tofewarg(hte, call);
break;