diff lib-src/make-dump-id.c @ 404:2f8bb876ab1d r21-2-32

Import from CVS: tag r21-2-32
author cvs
date Mon, 13 Aug 2007 11:16:07 +0200
parents
children b8cc9ab3f761
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib-src/make-dump-id.c	Mon Aug 13 11:16:07 2007 +0200
@@ -0,0 +1,59 @@
+/* Generate a unique dump-id for use with the portable dumper.
+   Copyright (C) 2000 Olivier Galibert, Martin Buchholz
+
+This file is part of XEmacs.
+
+XEmacs is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the
+Free Software Foundation; either version 2, or (at your option) any
+later version.
+
+XEmacs is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with XEmacs; see the file COPYING.  If not, write to
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "../src/systime.h"
+
+/* Generates an (extremely) pseudo random number for the dump-id */
+static unsigned int
+generate_dump_id (void)
+{
+  EMACS_TIME thyme;
+  EMACS_GET_TIME (thyme);
+
+  return (unsigned int) (EMACS_SECS (thyme) ^ EMACS_USECS (thyme));
+}
+
+int
+main (int argc, char *argv[])
+{
+  FILE *f;
+
+  if ((f = fopen ("dump-id.c", "w")) == NULL)
+    {
+      perror ("open dump-id.c");
+      return EXIT_FAILURE;
+    }
+
+  fprintf (f,
+	   "#include <dump-id.h>\n"
+	   "unsigned int dump_id = %uU;\n",
+	   generate_dump_id ());
+
+  if ((fclose (f)) != 0)
+    {
+      perror ("close dump-id.c");
+      return EXIT_FAILURE;
+    }
+
+  return EXIT_SUCCESS;
+}