comparison lib-src/make-dump-id.c @ 442:abe6d1db359e r21-2-36

Import from CVS: tag r21-2-36
author cvs
date Mon, 13 Aug 2007 11:35:02 +0200
parents
children 223736d75acb
comparison
equal deleted inserted replaced
441:72a7cfa4a488 442:abe6d1db359e
1 /* Generate a unique dump-id for use with the portable dumper.
2 Copyright (C) 2000 Olivier Galibert, Martin Buchholz
3
4 This file is part of XEmacs.
5
6 XEmacs is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
10
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 #include <config.h>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include "../src/systime.h"
25
26 #ifdef WIN32_NATIVE
27 #include <sys/timeb.h>
28
29 /* Emulate gettimeofday (Ulrich Leodolter, 1/11/95). */
30 void
31 gettimeofday (struct timeval *tv, struct timezone *tz)
32 {
33 struct _timeb tb;
34 _ftime (&tb);
35
36 tv->tv_sec = tb.time;
37 tv->tv_usec = tb.millitm * 1000L;
38 if (tz)
39 {
40 tz->tz_minuteswest = tb.timezone; /* minutes west of Greenwich */
41 tz->tz_dsttime = tb.dstflag; /* type of dst correction */
42 }
43 }
44 #endif
45
46 /* Generates an (extremely) pseudo random number for the dump-id */
47 static unsigned int
48 generate_dump_id (void)
49 {
50 EMACS_TIME thyme;
51 EMACS_GET_TIME (thyme);
52
53 return (unsigned int) (EMACS_SECS (thyme) ^ EMACS_USECS (thyme));
54 }
55
56 int
57 main (int argc, char *argv[])
58 {
59 FILE *f;
60
61 if ((f = fopen ("dump-id.c", "w")) == NULL)
62 {
63 perror ("open dump-id.c");
64 return EXIT_FAILURE;
65 }
66
67 fprintf (f,
68 "#include <dump-id.h>\n"
69 "unsigned int dump_id = %uU;\n",
70 generate_dump_id ());
71
72 if ((fclose (f)) != 0)
73 {
74 perror ("close dump-id.c");
75 return EXIT_FAILURE;
76 }
77
78 return EXIT_SUCCESS;
79 }