]> git.cameronkatri.com Git - bsdgames-darwin.git/blob - warp/util.h
Reset CVS keywords
[bsdgames-darwin.git] / warp / util.h
1 /* Header: util.h,v 7.0 86/10/08 15:14:37 lwall Exp */
2
3 /* Log: util.h,v
4 * Revision 7.0 86/10/08 15:14:37 lwall
5 * Split into separate files. Added amoebas and pirates.
6 *
7 */
8
9 #if RANDBITS < 15 || defined(lint)
10 #define rand_mod(m) getpid()
11 #define RANDRAND 0.0
12 #define HALFRAND 0
13 #define myrand() getpid()
14 #else
15 #if RANDBITS == 15 /* 15 bits of rand()? */
16 #define RANDRAND 268435456.0 /* that's 2**28 */
17 #define HALFRAND 0x4000 /* that's 2**14 */
18 int rand();
19 #define myrand() (rand()&32767)
20 #define rand_mod(m) ((int)((double)myrand() / 32768.0 * ((double)(m))))
21 /* pick number in 0..m-1 */
22
23 #else
24
25 #if RANDBITS < 31 /* 16 bits of rand()? */
26 #define RANDRAND 1073741824.0 /* that's 2**30 */
27 #define HALFRAND 0x8000 /* that's 2**15 */
28 unsigned rand();
29 #define myrand() (rand()&65535)
30 #define rand_mod(m) ((int)((double)myrand() / 65536.0 * ((double)(m))))
31 /* pick number in 0..m-1 */
32
33 #else /* assume 31 bits */
34 #define RANDRAND 1152921504606846976.0 /* that's 2**60 */
35 #define HALFRAND 0x40000000 /* that's 2**30 */
36 long rand();
37 #define myrand() rand()
38 #define rand_mod(m) ((myrand() / 37) % (m)) /* pick number in 0..m-1 */
39 /*
40 * The reason for the /37 above is that our random number generator yields
41 * successive evens and odds, for some reason. This makes strange star maps.
42 */
43 #endif
44 #endif
45 #endif
46
47
48 /* we get fractions of seconds from calling ftime on timebuf */
49
50 EXT struct timeb timebuf;
51 #define roundsleep(x) (ftime(&timebuf),sleep(timebuf.millitm > 500?x+1:x))
52
53 void movc3();
54 void no_can_do();
55 int exdis();
56
57 EXT bool waiting INIT(FALSE); /* are we waiting for subprocess (in doshell)? */
58
59 #ifdef NOTDEF
60 EXT int len_last_line_got INIT(0);
61 /* strlen of some_buf after */
62 /* some_buf = get_a_line(bufptr,buffersize,fp) */
63 #endif
64
65 #ifdef NOTDEF
66 /* is the string for makedir a directory name or a filename? */
67
68 #define MD_DIR 0
69 #define MD_FILE 1
70 #endif
71
72 void util_init();
73 char *safemalloc();
74 char *safecpy();
75 char *cpytill();
76 char *instr();
77 #ifdef SETUIDGID
78 int eaccess();
79 #endif
80 char *getwd();
81 void cat();
82 void prexit();
83 char *savestr();
84 char *getval();