| @@ -1,14 +1,14 @@ | | | @@ -1,14 +1,14 @@ |
1 | /* $NetBSD: varpush.c,v 1.10 2009/05/25 23:34:50 dholland Exp $ */ | | 1 | /* $NetBSD: varpush.c,v 1.11 2011/08/26 09:01:07 tron Exp $ */ |
2 | | | 2 | |
3 | /* | | 3 | /* |
4 | * Copyright (c) 1982, 1993 | | 4 | * Copyright (c) 1982, 1993 |
5 | * The Regents of the University of California. All rights reserved. | | 5 | * The Regents of the University of California. All rights reserved. |
6 | * | | 6 | * |
7 | * Redistribution and use in source and binary forms, with or without | | 7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions | | 8 | * modification, are permitted provided that the following conditions |
9 | * are met: | | 9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright | | 10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. | | 11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright | | 12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the | | 13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. | | 14 | * documentation and/or other materials provided with the distribution. |
| @@ -24,27 +24,27 @@ | | | @@ -24,27 +24,27 @@ |
24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | | 24 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | | 25 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | | 26 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | | 27 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | | 28 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
29 | * SUCH DAMAGE. | | 29 | * SUCH DAMAGE. |
30 | */ | | 30 | */ |
31 | | | 31 | |
32 | #include <sys/cdefs.h> | | 32 | #include <sys/cdefs.h> |
33 | #ifndef lint | | 33 | #ifndef lint |
34 | #if 0 | | 34 | #if 0 |
35 | static char sccsid[] = "@(#)varpush.c 8.1 (Berkeley) 5/31/93"; | | 35 | static char sccsid[] = "@(#)varpush.c 8.1 (Berkeley) 5/31/93"; |
36 | #else | | 36 | #else |
37 | __RCSID("$NetBSD: varpush.c,v 1.10 2009/05/25 23:34:50 dholland Exp $"); | | 37 | __RCSID("$NetBSD: varpush.c,v 1.11 2011/08/26 09:01:07 tron Exp $"); |
38 | #endif | | 38 | #endif |
39 | #endif /* not lint */ | | 39 | #endif /* not lint */ |
40 | | | 40 | |
41 | #include <paths.h> | | 41 | #include <paths.h> |
42 | #include "mille.h" | | 42 | #include "mille.h" |
43 | | | 43 | |
44 | /* | | 44 | /* |
45 | * @(#)varpush.c 1.1 (Berkeley) 4/1/82 | | 45 | * @(#)varpush.c 1.1 (Berkeley) 4/1/82 |
46 | */ | | 46 | */ |
47 | | | 47 | |
48 | /* | | 48 | /* |
49 | * push variables around via the routine func() on the file | | 49 | * push variables around via the routine func() on the file |
50 | * channel file. func() is either read or write. | | 50 | * channel file. func() is either read or write. |
| @@ -60,45 +60,45 @@ varpush(int file, ssize_t (*func)(int, c | | | @@ -60,45 +60,45 @@ varpush(int file, ssize_t (*func)(int, c |
60 | { (void *) &End, sizeof End }, | | 60 | { (void *) &End, sizeof End }, |
61 | { (void *) &On_exit, sizeof On_exit }, | | 61 | { (void *) &On_exit, sizeof On_exit }, |
62 | { (void *) &Handstart, sizeof Handstart }, | | 62 | { (void *) &Handstart, sizeof Handstart }, |
63 | { (void *) &Numgos, sizeof Numgos }, | | 63 | { (void *) &Numgos, sizeof Numgos }, |
64 | { (void *) Numseen, sizeof Numseen }, | | 64 | { (void *) Numseen, sizeof Numseen }, |
65 | { (void *) &Play, sizeof Play }, | | 65 | { (void *) &Play, sizeof Play }, |
66 | { (void *) &Window, sizeof Window }, | | 66 | { (void *) &Window, sizeof Window }, |
67 | { (void *) Deck, sizeof Deck }, | | 67 | { (void *) Deck, sizeof Deck }, |
68 | { (void *) &Discard, sizeof Discard }, | | 68 | { (void *) &Discard, sizeof Discard }, |
69 | { (void *) Player, sizeof Player } | | 69 | { (void *) Player, sizeof Player } |
70 | }; | | 70 | }; |
71 | | | 71 | |
72 | if (((func)(file, vec, sizeof(vec) / sizeof(vec[0]))) < 0) { | | 72 | if (((func)(file, vec, sizeof(vec) / sizeof(vec[0]))) < 0) { |
73 | error(strerror(errno)); | | 73 | error("%s", strerror(errno)); |
74 | return FALSE; | | 74 | return FALSE; |
75 | } | | 75 | } |
76 | if (func == readv) { | | 76 | if (func == readv) { |
77 | if ((read(file, (void *) &temp, sizeof temp)) < 0) { | | 77 | if ((read(file, (void *) &temp, sizeof temp)) < 0) { |
78 | error(strerror(errno)); | | 78 | error("%s", strerror(errno)); |
79 | return FALSE; | | 79 | return FALSE; |
80 | } | | 80 | } |
81 | Topcard = &Deck[temp]; | | 81 | Topcard = &Deck[temp]; |
82 | #ifdef DEBUG | | 82 | #ifdef DEBUG |
83 | if (Debug) { | | 83 | if (Debug) { |
84 | char buf[80]; | | 84 | char buf[80]; |
85 | over: | | 85 | over: |
86 | printf("Debug file:"); | | 86 | printf("Debug file:"); |
87 | gets(buf); | | 87 | gets(buf); |
88 | if ((outf = fopen(buf, "w")) == NULL) { | | 88 | if ((outf = fopen(buf, "w")) == NULL) { |
89 | warn("%s", buf); | | 89 | warn("%s", buf); |
90 | goto over; | | 90 | goto over; |
91 | } | | 91 | } |
92 | if (strcmp(buf, _PATH_DEVNULL) != 0) | | 92 | if (strcmp(buf, _PATH_DEVNULL) != 0) |
93 | setbuf(outf, (char *)NULL); | | 93 | setbuf(outf, (char *)NULL); |
94 | } | | 94 | } |
95 | #endif | | 95 | #endif |
96 | } else { | | 96 | } else { |
97 | temp = Topcard - Deck; | | 97 | temp = Topcard - Deck; |
98 | if ((write(file, (void *) &temp, sizeof temp)) < 0) { | | 98 | if ((write(file, (void *) &temp, sizeof temp)) < 0) { |
99 | error(strerror(errno)); | | 99 | error("%s", strerror(errno)); |
100 | return FALSE; | | 100 | return FALSE; |
101 | } | | 101 | } |
102 | } | | 102 | } |
103 | return TRUE; | | 103 | return TRUE; |
104 | } | | 104 | } |