about summary refs log blame commit diff
path: root/stdio-common/bug13.c
blob: 1eca8185ca0d9f27a147209778722ee9413b3b80 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13











                                                                               
                                                                               














                                                                               
#include <stdio.h>



int
main (void)
{
  int res = 0;
  char buf[100];

#define TEST(nr, result, format, args...) \
  if (sprintf (buf, format, ## args) != result)				      \
    {									      \
      printf ("test %d failed (\"%s\",  %d)\n", nr, buf, result);	      \
      res = 1;								      \
    }

  TEST (1, 2, "%d", -1);
  TEST (2, 2, "% 2d", 1);
  TEST (3, 3, "%#x", 1);
  TEST (4, 2, "%+d", 1);
  TEST (5, 2, "% d", 1);
  TEST (6, 2, "%-d", -1);
  TEST (7, 2, "%- 2d", 1);
  TEST (8, 3, "%-#x", 1);
  TEST (9, 2, "%-+d", 1);
  TEST (10, 2, "%- d", 1);

  return res;
}