hugor: convert live ebuild to also handle releases, copy to 0.9, remove 0.8
[gentoo-interactive-fiction.git] / dev-games / glkloader / files / glkloader-0.3.2-dynamic-blorb-dispa.patch
blob78fe3e70bfec6f49478c34d721b7d649fb2218df
1 Source: dleverton
2 Upstream: submitted
3 Reason: use the real Glk library's copies of the blorb and dispatch
4 layer rather than our own; in the case of the dispatch layer
5 at least, this in theory might allow for better errors when
6 the game calls a function not present in this version of Glk
8 --- glkloader-0.3.2/blorbfuncs.c~ 2001-03-14 03:07:58.000000000 +0000
9 +++ glkloader-0.3.2/blorbfuncs.c 2007-12-09 11:28:31.000000000 +0000
10 @@ -71,3 +71,109 @@
12 return (*funcPtr)();
15 +giblorb_err_t giblorb_create_map(strid_t file, giblorb_map_t **newmap)
17 + giblorb_err_t (*funcPtr)(strid_t file, giblorb_map_t **newmap);
18 + char * errBuf = NULL;
20 + funcPtr = loadSymbol(gGlkLib, "giblorb_create_map", &errBuf);
21 + if (NULL != errBuf) {
22 + fprintf(stderr, "%s\n", errBuf);
23 + exit(1);
24 + }
26 + return (*funcPtr)(file, newmap);
29 +giblorb_err_t giblorb_destroy_map(giblorb_map_t *map)
31 + giblorb_err_t (*funcPtr)(giblorb_map_t *map);
32 + char * errBuf = NULL;
34 + funcPtr = loadSymbol(gGlkLib, "giblorb_destroy_map", &errBuf);
35 + if (NULL != errBuf) {
36 + fprintf(stderr, "%s\n", errBuf);
37 + exit(1);
38 + }
40 + return (*funcPtr)(map);
43 +giblorb_err_t giblorb_load_chunk_by_type(giblorb_map_t *map,
44 + glui32 method, giblorb_result_t *res, glui32 chunktype, glui32 count)
46 + giblorb_err_t (*funcPtr)(giblorb_map_t *map,
47 + glui32 method, giblorb_result_t *res, glui32 chunktype, glui32 count);
48 + char * errBuf = NULL;
50 + funcPtr = loadSymbol(gGlkLib, "giblorb_load_chunk_by_type", &errBuf);
51 + if (NULL != errBuf) {
52 + fprintf(stderr, "%s\n", errBuf);
53 + exit(1);
54 + }
56 + return (*funcPtr)(map, method, res, chunktype, count);
59 +giblorb_err_t giblorb_load_chunk_by_number(giblorb_map_t *map,
60 + glui32 method, giblorb_result_t *res, glui32 chunknum)
62 + giblorb_err_t (*funcPtr)(giblorb_map_t *map,
63 + glui32 method, giblorb_result_t *res, glui32 chunknum);
64 + char * errBuf = NULL;
66 + funcPtr = loadSymbol(gGlkLib, "giblorb_load_chunk_by_number", &errBuf);
67 + if (NULL != errBuf) {
68 + fprintf(stderr, "%s\n", errBuf);
69 + exit(1);
70 + }
72 + return (*funcPtr)(map, method, res, chunknum);
75 +giblorb_err_t giblorb_unload_chunk(giblorb_map_t *map, glui32 chunknum)
77 + giblorb_err_t (*funcPtr)(giblorb_map_t *map, glui32 chunknum);
78 + char * errBuf = NULL;
80 + funcPtr = loadSymbol(gGlkLib, "giblorb_unload_chunk", &errBuf);
81 + if (NULL != errBuf) {
82 + fprintf(stderr, "%s\n", errBuf);
83 + exit(1);
84 + }
86 + return (*funcPtr)(map, chunknum);
89 +giblorb_err_t giblorb_load_resource(giblorb_map_t *map,
90 + glui32 method, giblorb_result_t *res, glui32 usage, glui32 resnum)
92 + giblorb_err_t (*funcPtr)(giblorb_map_t *map,
93 + glui32 method, giblorb_result_t *res, glui32 usage, glui32 resnum);
94 + char * errBuf = NULL;
96 + funcPtr = loadSymbol(gGlkLib, "giblorb_load_resource", &errBuf);
97 + if (NULL != errBuf) {
98 + fprintf(stderr, "%s\n", errBuf);
99 + exit(1);
102 + return (*funcPtr)(map, method, res, usage, resnum);
105 +giblorb_err_t giblorb_count_resources(giblorb_map_t *map,
106 + glui32 usage, glui32 *num, glui32 *min, glui32 *max)
108 + giblorb_err_t (*funcPtr)(giblorb_map_t *map,
109 + glui32 usage, glui32 *num, glui32 *min, glui32 *max);
110 + char * errBuf = NULL;
112 + funcPtr = loadSymbol(gGlkLib, "giblorb_count_resources", &errBuf);
113 + if (NULL != errBuf) {
114 + fprintf(stderr, "%s\n", errBuf);
115 + exit(1);
118 + return (*funcPtr)(map, usage, num, min, max);
120 --- glkloader-0.3.2/Makefile~ 2007-12-09 11:18:08.000000000 +0000
121 +++ glkloader-0.3.2/Makefile 2007-12-09 11:28:40.000000000 +0000
122 @@ -31,7 +31,7 @@
124 OBJS = \
125 glkloader.o glkfuncs.o blorbfuncs.o dispafuncs.o unixfuncs.o \
126 - linux_defines.o gi_blorb.o gi_dispa.o
127 + linux_defines.o
129 HEADERS = \
130 defines.h linux_defines.h
131 --- glkloader-0.3.2/dispafuncs.c~ 2001-03-14 03:07:59.000000000 +0000
132 +++ glkloader-0.3.2/dispafuncs.c 2007-12-09 11:30:51.000000000 +0000
133 @@ -95,3 +95,129 @@
135 return (*funcPtr)(regi, unregi);
138 +void gidispatch_call(glui32 funcnum, glui32 numargs, gluniversal_t *arglist)
140 + void (*funcPtr)(glui32 funcnum, glui32 numargs, gluniversal_t *arglist);
141 + char * errBuf = NULL;
143 + funcPtr = loadSymbol(gGlkLib, "gidispatch_call", &errBuf);
144 + if (NULL != errBuf) {
145 + fprintf(stderr, "%s\n", errBuf);
146 + exit(1);
149 + return (*funcPtr)(funcnum, numargs, arglist);
152 +char *gidispatch_prototype(glui32 funcnum)
154 + char * (*funcPtr)(glui32 funcnum);
155 + char * errBuf = NULL;
157 + funcPtr = loadSymbol(gGlkLib, "gidispatch_prototype", &errBuf);
158 + if (NULL != errBuf) {
159 + fprintf(stderr, "%s\n", errBuf);
160 + exit(1);
163 + return (*funcPtr)(funcnum);
166 +glui32 gidispatch_count_classes(void)
168 + glui32 (*funcPtr)(void);
169 + char * errBuf = NULL;
171 + funcPtr = loadSymbol(gGlkLib, "gidispatch_count_classes", &errBuf);
172 + if (NULL != errBuf) {
173 + fprintf(stderr, "%s\n", errBuf);
174 + exit(1);
177 + return (*funcPtr)();
180 +gidispatch_intconst_t *gidispatch_get_class(glui32 index)
182 + gidispatch_intconst_t * (*funcPtr)(glui32 index);
183 + char * errBuf = NULL;
185 + funcPtr = loadSymbol(gGlkLib, "gidispatch_get_class", &errBuf);
186 + if (NULL != errBuf) {
187 + fprintf(stderr, "%s\n", errBuf);
188 + exit(1);
191 + return (*funcPtr)(index);
194 +glui32 gidispatch_count_intconst(void)
196 + glui32 (*funcPtr)(void);
197 + char * errBuf = NULL;
199 + funcPtr = loadSymbol(gGlkLib, "gidispatch_count_intconst", &errBuf);
200 + if (NULL != errBuf) {
201 + fprintf(stderr, "%s\n", errBuf);
202 + exit(1);
205 + return (*funcPtr)();
208 +gidispatch_intconst_t *gidispatch_get_intconst(glui32 index)
210 + gidispatch_intconst_t * (*funcPtr)(glui32 index);
211 + char * errBuf = NULL;
213 + funcPtr = loadSymbol(gGlkLib, "gidispatch_get_intconst", &errBuf);
214 + if (NULL != errBuf) {
215 + fprintf(stderr, "%s\n", errBuf);
216 + exit(1);
219 + return (*funcPtr)(index);
222 +glui32 gidispatch_count_functions(void)
224 + glui32 (*funcPtr)(void);
225 + char * errBuf = NULL;
227 + funcPtr = loadSymbol(gGlkLib, "gidispatch_count_functions", &errBuf);
228 + if (NULL != errBuf) {
229 + fprintf(stderr, "%s\n", errBuf);
230 + exit(1);
233 + return (*funcPtr)();
236 +gidispatch_function_t *gidispatch_get_function(glui32 index)
238 + gidispatch_function_t * (*funcPtr)(glui32 index);
239 + char * errBuf = NULL;
241 + funcPtr = loadSymbol(gGlkLib, "gidispatch_get_function", &errBuf);
242 + if (NULL != errBuf) {
243 + fprintf(stderr, "%s\n", errBuf);
244 + exit(1);
247 + return (*funcPtr)(index);
250 +gidispatch_function_t *gidispatch_get_function_by_id(glui32 id)
252 + gidispatch_function_t * (*funcPtr)(glui32 id);
253 + char * errBuf = NULL;
255 + funcPtr = loadSymbol(gGlkLib, "gidispatch_get_function_by_id", &errBuf);
256 + if (NULL != errBuf) {
257 + fprintf(stderr, "%s\n", errBuf);
258 + exit(1);
261 + return (*funcPtr)(id);