On Fri, Jan 16, 2015 at 11:27:00PM -0800, Alan Coopersmith wrote: > Drops needless NULL arguments and enables printf format checking. > > Gets rid of gcc 4.8 warning: > ico.c: In function ‘icoFatal’: > ico.c:265:2: warning: format not a string literal, argument types not checked > [-Wformat-nonliteral] > fprintf(stderr, fmt, a0); > ^ > > Signed-off-by: Alan Coopersmith <[email protected]>
it's like the future is already here! can I have my flying car now? Reviewed-by: Peter Hutterer <[email protected]> Cheers, Peter > --- > ico.c | 23 +++++++++++++---------- > 1 file changed, 13 insertions(+), 10 deletions(-) > > diff --git a/ico.c b/ico.c > index 832ec16..785f3bf 100644 > --- a/ico.c > +++ b/ico.c > @@ -87,6 +87,7 @@ SOFTWARE. > #include <X11/Xfuncs.h> > #include <X11/keysym.h> > #include <stdio.h> > +#include <stdarg.h> > #ifdef MULTIBUFFER > #include <X11/extensions/multibuf.h> > #endif /* MULTIBUFFER */ > @@ -256,13 +257,15 @@ static xcondition_rec count_cond;/* Xthreads doesn't > define an equivalent to > > *****************************************************************************/ > > > -static void icoFatal (const char *fmt, const char *a0) _X_NORETURN; > - > -static void > -icoFatal(const char *fmt, const char *a0) > +static void _X_NORETURN _X_ATTRIBUTE_PRINTF(1, 2) > +icoFatal(const char *fmt, ...) > { > + va_list args; > + > fprintf(stderr, "%s: ", ProgramName); > - fprintf(stderr, fmt, a0); > + va_start(args, fmt); > + vfprintf(stderr, fmt, args); > + va_end(args); > fprintf(stderr, "\n"); > exit(1); > } > @@ -754,7 +757,7 @@ initDBufs(struct closure *closure, unsigned long fg, > unsigned long bg, > closure->plane_masks,closure->totalplanes, > closure->pixels,1); > /* allocate color planes */ > if (t==0) { > - icoFatal("can't allocate enough color planes", NULL); > + icoFatal("can't allocate enough color planes"); > } > } > > @@ -847,7 +850,7 @@ do_ico_window(void *ptr) > #endif > closure->cmap = XDefaultColormap(dpy,DefaultScreen(dpy)); > if (!closure->cmap) { > - icoFatal("no default colormap!", NULL); > + icoFatal("no default colormap!"); > } > > fg = WhitePixel(dpy, DefaultScreen(dpy)); > @@ -930,7 +933,7 @@ do_ico_window(void *ptr) > printf("thread %x got Expose\n", xthread_self()); > #endif > if (XGetWindowAttributes(dpy,closure->draw_window,&xwa)==0) { > - icoFatal("cannot get window attributes (size)", NULL); > + icoFatal("cannot get window attributes (size)"); > } > closure->winW = xwa.width; > closure->winH = xwa.height; > @@ -967,7 +970,7 @@ do_ico_window(void *ptr) > 0, 0, closure->winW, closure->winH, 0, 0); > closure->win = closure->multibuffers[1]; > } else > - icoFatal ("unable to obtain 2 buffers", NULL); > + icoFatal ("unable to obtain 2 buffers"); > } > #endif /* MULTIBUFFER */ > if (closure->win == None) closure->win = closure->draw_window; > @@ -1288,7 +1291,7 @@ int main(int argc, const char **argv) > } > > if (!dofaces && !doedges) > - icoFatal("nothing to draw", NULL); > + icoFatal("nothing to draw"); > > #ifdef MULTITHREAD > XInitThreads(); > -- > 1.7.9.2 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
