annotate extra/engine/engif.c @ 0:6b33357c7561 octave-forge

Initial revision
author pkienzle
date Wed, 10 Oct 2001 19:54:49 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
1 #include <stdio.h>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
2
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
3 #include <sys/time.h>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
4 #include <sys/types.h>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
5 #include <unistd.h>
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
6
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
7 #include "engine.h"
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
8 #include "engif.h"
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
9
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
10 int pfd1[2];
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
11 int pfd2[2];
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
12 int outcnt;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
13
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
14 extern Engine matengine;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
15 extern int matopen;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
16 extern char *matbufptr;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
17 extern int matbufcnt;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
18
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
19 static int savechar( int outdest, char dat );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
20
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
21 int openpipes( void )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
22 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
23 int retval = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
24
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
25 if( pipe( pfd1 ) == -1 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
26 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
27 perror("pipe");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
28 retval = -1;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
29 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
30 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
31 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
32 if( pipe( pfd2 ) == -1 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
33 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
34 perror("pipe");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
35 close( pfd1[0] ); /* Needs some error checking */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
36 close( pfd1[1] ); /* Needs some error checking */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
37 retval = -1;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
38 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
39 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
40 return retval;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
41 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
42
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
43
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
44 int closepipes( void )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
45 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
46 int retval = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
47
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
48 /* Needs some error checking */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
49
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
50 close( pfd1[0] );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
51 close( pfd1[1] );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
52 close( pfd2[0] );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
53 close( pfd2[1] );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
54
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
55 return retval;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
56 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
57
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
58
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
59 int plumbpipes( void )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
60 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
61 int retval = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
62
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
63 /* Needs some error checking */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
64
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
65 close(0); /* close normal stdin */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
66 dup(pfd2[0]); /* make stdin same as pfd2[0] */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
67 close(1); /* close normal stdout */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
68 dup(pfd1[1]); /* make stdout same as pfd1[1] */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
69
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
70 return retval;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
71 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
72
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
73
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
74 void cleanhouse( void )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
75 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
76 if( matopen )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
77 engClose( &matengine );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
78 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
79
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
80
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
81 int getline( char* buf )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
82 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
83 int i;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
84
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
85 /* Read a line into buf */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
86 i = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
87 do
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
88 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
89 read( pfd1[0], &buf[i], 1 );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
90 i++;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
91 if( i == BUFMAX-1 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
92 buf[i-1] = '\n';
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
93 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
94 while( buf[i-1] != '\n' );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
95 buf[i] = '\0';
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
96
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
97 #ifdef DEBUGAPI
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
98 printf( "getline: %s", buf );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
99 #endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
100
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
101 return 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
102 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
103
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
104
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
105 int putline( char* buf )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
106 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
107 int count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
108
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
109 /* Write a line from buf */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
110 count = write( pfd2[1], buf, strlen(buf) );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
111
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
112 #ifdef DEBUGAPI
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
113 printf( "putline: %s", buf );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
114 #endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
115
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
116 return count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
117 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
118
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
119 int flushjunk( void )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
120 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
121 #ifdef DEBUGAPI
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
122 char temp;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
123 int count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
124 fd_set rfds;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
125 struct timeval tv;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
126 int retval;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
127
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
128 printf( "flushjunk: " );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
129
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
130 count = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
131 do
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
132 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
133 /* Check the Octave pipe to see if it has input. */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
134 FD_ZERO(&rfds);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
135 FD_SET(pfd1[0], &rfds);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
136 /* Wait up to two seconds. */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
137 tv.tv_sec = 2;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
138 tv.tv_usec = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
139
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
140 retval = select(pfd1[0]+1, &rfds, NULL, NULL, &tv);
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
141 /* Don't rely on the value of tv now! */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
142
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
143 if (retval)
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
144 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
145 count++;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
146 read( pfd1[0], &temp, 1 );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
147 printf( "%c", temp );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
148 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
149 } while( retval );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
150
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
151 printf("\n");
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
152 return count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
153 #else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
154 return 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
155 #endif
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
156 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
157
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
158
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
159 int flushprompt( int outkey )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
160 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
161 char temp;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
162 int test, count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
163
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
164 /* If outkey=1 : write all engine output to the output buffer */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
165 /* outkey=2 : write all engine output to stdout */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
166 /* otherwise : discard all output from the engine */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
167
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
168 count = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
169 outcnt = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
170
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
171 /* printf( "flushprompt: " ); */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
172
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
173 test = 1;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
174 while( test != 4 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
175 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
176 read( pfd1[0], &temp, 1 );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
177 switch( test )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
178 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
179 case 0:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
180 if( temp == '\n' )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
181 test = 1;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
182 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
183 test = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
184 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
185 case 1:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
186 if( temp == '\n' )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
187 test = 1;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
188 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
189 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
190 if( temp == '>' )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
191 test = 2;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
192 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
193 test = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
194 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
195 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
196 case 2:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
197 if( temp == '>' )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
198 test = 3;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
199 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
200 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
201 test = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
202 savechar( outkey, '>' ); /* Save the current ">" char */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
203 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
204 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
205 case 3:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
206 if( temp == ' ' )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
207 test = 4;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
208 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
209 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
210 test = 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
211 savechar( outkey, '>' ); /* Save the previous ">" char */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
212 savechar( outkey, '>' ); /* Save the current ">" char */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
213 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
214 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
215 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
216 if( test < 2 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
217 savechar( outkey, temp );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
218 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
219 if( outkey == 2 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
220 printf( ">> " );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
221 else
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
222 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
223 if( outkey == 1 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
224 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
225 /* Add terminating NULL to output buffer */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
226 if( matbufptr != NULL )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
227 if( outcnt < matbufcnt )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
228 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
229 matbufptr[outcnt] = '\0';
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
230 outcnt++;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
231 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
232 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
233 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
234
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
235 return count;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
236 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
237
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
238
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
239 static int savechar( int outdest, char dat )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
240 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
241 /* If outdest=1 : write all engine output to the output buffer */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
242 /* outdest=2 : write all engine output to stdout */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
243 /* otherwise : discard all output from the engine */
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
244
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
245 switch( outdest )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
246 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
247 case 0:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
248 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
249 case 1:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
250 if( matbufptr != NULL )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
251 if( outcnt < matbufcnt-1 )
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
252 {
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
253 matbufptr[outcnt] = dat;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
254 outcnt++;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
255 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
256 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
257 case 2:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
258 putchar( dat );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
259 break;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
260 default:
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
261 fprintf( stderr, "Engine: unknown output destination specified\n" );
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
262 }
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
263
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
264 return 0;
6b33357c7561 Initial revision
pkienzle
parents:
diff changeset
265 }