2006-09-02 Marcus Brinkmann <marcus@g10code.de>
[gnupg.git] / tools / mk-tdata.c
blob833875d281b6d0829b5fe5f49fa703a739253736
1 /* mk-tdata.c - Create some simple random testdata
2 * Copyright (C) 1998, 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
4 * This file is free software; as a special exception the author gives
5 * unlimited permission to copy and/or distribute it, with or without
6 * modifications, as long as this notice is preserved.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
10 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 #include <config.h>
14 #include <stdio.h>
15 #include <stdlib.h>
16 #include <string.h>
17 #include <unistd.h>
20 #ifndef RAND_MAX /* for SunOS */
21 #define RAND_MAX 32767
22 #endif
24 int
25 main(int argc, char **argv)
27 int i, c = 0;
28 int limit =0;
29 int char_mode = 0;
31 if (argc)
33 argc--;
34 argv++;
37 /* Check for option --char N */
38 if (argc > 1 && !strcmp (argv[0], "--char"))
40 char_mode = 1;
41 c = strtol (argv[1], NULL, 0);
42 argc -= 2;
43 argv += 2;
46 limit = argc ? atoi(argv[0]) : 0;
48 srand(getpid());
50 for (i=0; !limit || i < limit; i++ )
52 if (char_mode)
54 putchar (c);
56 else
58 #ifdef HAVE_RAND
59 c = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
60 #else
61 c = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
62 #endif
63 putchar (c);
66 return 0;