|
|
1.1 ! root 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();
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.