gpg: Fix buglet in the check_all_keysigs function.
[gnupg.git] / tools / mk-tdata.c
index dcfa859..0aca035 100644 (file)
@@ -1,5 +1,5 @@
 /* mk-tdata.c -  Create some simple random testdata
- * Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ * Copyright (C) 1998, 1999, 2000, 2001, 2006 Free Software Foundation, Inc.
  *
  * This file is free software; as a special exception the author gives
  * unlimited permission to copy and/or distribute it, with or without
  * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  */
 
+#ifdef HAVE_CONFIG_H
 #include <config.h>
+#endif
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
+#include <fcntl.h>
 
 
 #ifndef RAND_MAX   /* for SunOS */
-  #define RAND_MAX 32767
+#define RAND_MAX 32767
 #endif
 
 int
 main(int argc, char **argv)
 {
-    int i, c;
-    int limit =0;
+  int i, c = 0;
+  int limit =0;
+  int char_mode = 0;
 
-    limit = argc > 1 ? atoi(argv[1]) : 0;
+#if HAVE_W32_SYSTEM
+  if (setmode (fileno (stdout), O_BINARY) == -1)
+    perror ("setmode");
+#endif
 
-    srand(getpid());
+  if (argc)
+    {
+      argc--;
+      argv++;
+    }
 
-    for(i=0; !limit || i < limit; i++ ) {
-      #ifdef HAVE_RAND
-       c = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
-      #else
-       c = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
-      #endif
-       putchar(c);
+  /* Check for option --char N */
+  if (argc > 1 && !strcmp (argv[0], "--char"))
+    {
+      char_mode = 1;
+      c = strtol (argv[1], NULL, 0);
+      argc -= 2;
+      argv += 2;
     }
-    return 0;
-}
 
+  limit = argc ? atoi(argv[0]) : 0;
+
+  srand(getpid());
+
+  for (i=0; !limit || i < limit; i++ )
+    {
+      if (char_mode)
+        {
+          putchar (c);
+        }
+      else
+        {
+#ifdef HAVE_RAND
+          c = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
+#else
+          c = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
+#endif
+          putchar (c);
+        }
+    }
+  return 0;
+}