|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that: (1) source distributions retain this entire copyright ! 7: * notice and comment, and (2) distributions including binaries display ! 8: * the following acknowledgement: ``This product includes software ! 9: * developed by the University of California, Berkeley and its contributors'' ! 10: * in the documentation or other materials provided with the distribution ! 11: * and in all advertising materials mentioning features or use of this ! 12: * software. Neither the name of the University nor the names of its ! 13: * contributors may be used to endorse or promote products derived ! 14: * from this software without specific prior written permission. ! 15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 17: * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 18: */ ! 19: ! 20: #ifndef lint ! 21: static char sccsid[] = "@(#)varpush.c 5.6 (Berkeley) 6/1/90"; ! 22: #endif /* not lint */ ! 23: ! 24: # include <paths.h> ! 25: # include "mille.h" ! 26: ! 27: /* ! 28: * @(#)varpush.c 1.1 (Berkeley) 4/1/82 ! 29: */ ! 30: ! 31: int read(), write(); ! 32: ! 33: /* ! 34: * push variables around via the routine func() on the file ! 35: * channel file. func() is either read or write. ! 36: */ ! 37: varpush(file, func) ! 38: reg int file; ! 39: reg int (*func)(); { ! 40: ! 41: int temp; ! 42: ! 43: (*func)(file, (char *) &Debug, sizeof Debug); ! 44: (*func)(file, (char *) &Finished, sizeof Finished); ! 45: (*func)(file, (char *) &Order, sizeof Order); ! 46: (*func)(file, (char *) &End, sizeof End); ! 47: (*func)(file, (char *) &On_exit, sizeof On_exit); ! 48: (*func)(file, (char *) &Handstart, sizeof Handstart); ! 49: (*func)(file, (char *) &Numgos, sizeof Numgos); ! 50: (*func)(file, (char *) Numseen, sizeof Numseen); ! 51: (*func)(file, (char *) &Play, sizeof Play); ! 52: (*func)(file, (char *) &Window, sizeof Window); ! 53: (*func)(file, (char *) Deck, sizeof Deck); ! 54: (*func)(file, (char *) &Discard, sizeof Discard); ! 55: (*func)(file, (char *) Player, sizeof Player); ! 56: if (func == read) { ! 57: read(file, (char *) &temp, sizeof temp); ! 58: Topcard = &Deck[temp]; ! 59: #ifdef DEBUG ! 60: if (Debug) { ! 61: char buf[80]; ! 62: over: ! 63: printf("Debug file:"); ! 64: gets(buf); ! 65: if ((outf = fopen(buf, "w")) == NULL) { ! 66: perror(buf); ! 67: goto over; ! 68: } ! 69: if (strcmp(buf, _PATH_DEVNULL) != 0) ! 70: setbuf(outf, (char *)NULL); ! 71: } ! 72: #endif ! 73: } ! 74: else { ! 75: temp = Topcard - Deck; ! 76: write(file, (char *) &temp, sizeof temp); ! 77: } ! 78: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.