Initial git import
[sxemacs] / lib-src / make-dump-id.c
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 SXEmacs.
5
6 SXEmacs is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 SXEmacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program.  If not, see <http://www.gnu.org/licenses/>. */
18
19 #include <config.h>
20 #include <stdio.h>
21 #include <stdlib.h>
22 #include "../src/systime.h"
23
24 /* Generates an (extremely) pseudo random number for the dump-id */
25 static unsigned int generate_dump_id(void)
26 {
27         EMACS_TIME thyme;
28         EMACS_GET_TIME(thyme);
29
30         return (unsigned int)(EMACS_SECS(thyme) ^ EMACS_USECS(thyme));
31 }
32
33 int main(int argc, char *argv[])
34 {
35         FILE *f;
36
37         if ((f = fopen("dump-id.c", "w")) == NULL) {
38                 perror("open dump-id.c");
39                 return EXIT_FAILURE;
40         }
41
42         fprintf(f, "unsigned int dump_id = %uU;\n", generate_dump_id());
43
44         if ((fclose(f)) != 0) {
45                 perror("close dump-id.c");
46                 return EXIT_FAILURE;
47         }
48
49         return EXIT_SUCCESS;
50 }