annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
404
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
1 /* Generate a unique dump-id for use with the portable dumper.
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
2 Copyright (C) 2000 Olivier Galibert, Martin Buchholz
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
3
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
4 This file is part of XEmacs.
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
5
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
9 later version.
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
10
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
14 for more details.
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
15
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
20
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
21 #include <config.h>
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
22 #include <stdio.h>
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
23 #include <stdlib.h>
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
24 #include "../src/systime.h"
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
25
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
26 /* Generates an (extremely) pseudo random number for the dump-id */
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
27 static unsigned int
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
28 generate_dump_id (void)
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
29 {
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
30 EMACS_TIME thyme;
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
31 EMACS_GET_TIME (thyme);
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
32
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
33 return (unsigned int) (EMACS_SECS (thyme) ^ EMACS_USECS (thyme));
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
34 }
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
35
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
36 int
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
37 main (int argc, char *argv[])
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
38 {
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
39 FILE *f;
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
40
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
41 if ((f = fopen ("dump-id.c", "w")) == NULL)
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
42 {
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
43 perror ("open dump-id.c");
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
44 return EXIT_FAILURE;
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
45 }
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
46
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
47 fprintf (f,
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
48 "#include <dump-id.h>\n"
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
49 "unsigned int dump_id = %uU;\n",
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
50 generate_dump_id ());
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
51
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
52 if ((fclose (f)) != 0)
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
53 {
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
54 perror ("close dump-id.c");
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
55 return EXIT_FAILURE;
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
56 }
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
57
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
58 return EXIT_SUCCESS;
2f8bb876ab1d Import from CVS: tag r21-2-32
cvs
parents:
diff changeset
59 }