Initial commit of newLISP.
[newlisp.git] / protos.h
blobf007e1fc0a284e159b01d002ed2fd1112dfca7f7
1 /* protos.h function prototypes fo6 newLISP
3 Copyright (C) 2008 Lutz Mueller
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <http://www.gnu.org/licenses/>.
19 CELL * addResult(CELL * * result, CELL * cell, CELL * new);
20 CELL * appendArray(CELL * cell, CELL * params);
21 CELL * appendNode(CELL * node, CELL * newNode);
22 CELL * appendString(CELL * cell, CELL * params, char * joint, size_t jointLen, int trailJoint, int evalFlag);
23 CELL * appendWriteFile(CELL * params, char * type);
24 CELL * arithmetikOp(CELL * params, int operand);
25 CELL * arrayList(CELL * params);
26 CELL * arrayTranspose(CELL * params);
27 CELL * collectSelect(CELL * head, CELL * params, int evalFlag);
28 CELL * compareOp(CELL * params, int operand);
29 CELL * copyCell(CELL * cell);
30 CELL * copyList(CELL * cell);
31 CELL * defineOrMacro(CELL * params, UINT type);
32 CELL * dolist(CELL * params, int argsFlag);
33 CELL * environment(void);
34 CELL * errorProc(int errorNumber);
35 CELL * errorProcExt(int errorNumber, CELL * expr);
36 CELL * errorProcExt2(int errorNumber, CELL * expr);
37 CELL * evalCheckProtected(CELL * cell, CELL * * sPtr);
38 CELL * evaluateBlock(CELL * cell);
39 CELL * evaluateExpression(CELL * cell);
40 CELL * evaluateExpressionSafe(CELL * cell, int * errNo);
41 CELL * evaluateLambda(CELL * lambda, CELL * arg, SYMBOL * newContext);
42 CELL * evaluateMacro(CELL * macro, CELL * arg, SYMBOL * newContext);
43 CELL * evaluateStream(STREAM * stream, UINT printDevice, int flag);
44 CELL * executeLibfunction(CELL * pcell, CELL * params);
45 CELL * expand(CELL * expr, SYMBOL * symbol);
46 CELL * explodeList(CELL * list, CELL * params);
47 CELL * floatOp(CELL * params, int operand);
48 CELL * functionFloat(CELL * params, int operand);
49 CELL * getCell(int type);
50 CELL * getFloat(CELL * params, double * floatNumber);
51 CELL * getInteger(CELL * params, UINT * number);
52 CELL * getInteger64(CELL * params, INT64 * number);
53 CELL * getIntegerExt(CELL * params, UINT * number, int evalFlag);
54 CELL * getListHead(CELL * params, CELL * * list);
55 CELL * getList(CELL * params, CELL * * result, int setFlag);
56 CELL * getPutPostDeleteUrl(char * url, CELL * params, int type, int timeout);
57 CELL * getServicePort(CELL * params, int * portNo, char * protocol);
58 CELL * getString(CELL * params, char * * stringPtr);
59 CELL * getStringSize(CELL * params, char * * stringPtr, size_t * size, int evalFlag);
60 CELL * getSymbol(CELL * params, SYMBOL * * symbol);
61 CELL * getContext(CELL * params, SYMBOL * * context);
62 CELL * ifUnless(CELL * params, int ifUnlessFlag);
63 CELL * incDec(CELL * params, int type);
64 CELL * isType(CELL * params, int operand);
65 CELL * isEmptyFunc(CELL * params);
66 CELL * loop(CELL * params, int flag);
67 CELL * implicitIndexArray(CELL * cell, CELL * params);
68 CELL * implicitIndexList (CELL * list, CELL * params);
69 CELL * implicitNrestSlice(CELL * num, CELL * params);
70 CELL * implicitIndexString(CELL * cell, CELL * params);
71 CELL * initArray(CELL * array, CELL * list, CELL * * next);
72 CELL * loadFile(char * fileName, UINT offset, int encryptFlag, SYMBOL * context);
73 CELL * makeArray(ssize_t * index, int p);
74 CELL * makePair(CELL * left, CELL * right);
75 CELL * makeElementNode(CELL * tagNode, CELL * attributesNode, CELL * childrenNode);
76 CELL * makeTextNode(int type, CELL * contents);
77 CELL * matScalar(CELL * params, char type);
78 CELL * mpdArithmetik(CELL * num, CELL * params, int op);
79 CELL * netError(int errorNo);
80 CELL * netPeerLocal(CELL * params, int peerLocalFlag);
81 CELL * subarray(CELL * array, ssize_t offset, ssize_t length);
82 CELL * transposeArray(CELL * array);
83 CELL * updateCell(CELL * cell, CELL * new);
84 CELL * p_XMLerror(CELL * params);
85 CELL * p_XMLparse(CELL * params);
86 CELL * p_XMLtypeTags(CELL * params);
87 CELL * p_abs(CELL * params);
88 CELL * p_acos(CELL * params);
89 CELL * p_add(CELL * params);
90 CELL * p_addFloat(CELL * params);
91 CELL * p_address(CELL * params);
92 CELL * p_amb(CELL * params);
93 CELL * p_and(CELL * params);
94 CELL * p_append(CELL * params);
95 CELL * p_appendFile(CELL * params);
96 CELL * p_apply(CELL * params);
97 CELL * p_args(CELL * params);
98 CELL * p_array(CELL * params);
99 CELL * p_arrayList(CELL * params);
100 CELL * p_asin(CELL * params);
101 CELL * p_assoc(CELL * params);
102 CELL * p_assocSet(CELL * params);
103 CELL * p_atan(CELL * params);
104 CELL * p_atan2(CELL * params);
105 CELL * p_base64Enc(CELL * params);
106 CELL * p_base64Dec(CELL * params);
107 CELL * p_bayesTrain(CELL * params);
108 CELL * p_bayesQuery(CELL * params);
109 CELL * p_beta(CELL * params);
110 CELL * p_betai(CELL * params);
111 CELL * p_bind(CELL * params);
112 CELL * p_binomial(CELL * params);
113 CELL * p_bitAnd(CELL * params);
114 CELL * p_bitNot(CELL * params);
115 CELL * p_bitOr(CELL * params);
116 CELL * p_bitXor(CELL * params);
117 CELL * p_callback(CELL * params);
118 CELL * p_case(CELL * params);
119 CELL * p_catch(CELL * params);
120 CELL * p_ceil(CELL * params);
121 CELL * p_changeDir(CELL * params);
122 CELL * p_char(CELL * params);
123 CELL * p_chop(CELL * params);
124 CELL * p_clean(CELL * params);
125 CELL * p_close(CELL * params);
126 CELL * p_colon(CELL * params);
127 CELL * p_commandLine(CELL * params);
128 CELL * p_condition(CELL * params);
129 CELL * p_cons(CELL * params);
130 CELL * p_constant(CELL * params);
131 CELL * p_context(CELL * params);
132 CELL * p_copyFile(CELL * params);
133 CELL * p_copyMemory(CELL * params);
134 CELL * p_cos(CELL * params);
135 CELL * p_cosh(CELL * params);
136 CELL * p_acosh(CELL * params);
137 CELL * p_count(CELL * params);
138 CELL * p_crc32(CELL * params);
139 CELL * p_criticalChi2(CELL * params);
140 CELL * p_criticalZ(CELL * params);
141 CELL * p_currentLine(CELL * params);
142 CELL * p_curry(CELL * params);
143 CELL * p_date(CELL * params);
144 CELL * p_dateValue(CELL * params);
145 CELL * p_debug(CELL * params);
146 CELL * p_decrement(CELL * params);
147 CELL * p_default(CELL * params);
148 CELL * p_define(CELL * params);
149 CELL * p_defineMacro(CELL * params);
150 CELL * p_defineNew(CELL * params);
151 CELL * p_deleteFile(CELL * params);
152 CELL * p_deleteSymbol(CELL * params);
153 CELL * p_destroyProcess(CELL * params);
154 CELL * p_determinant(CELL * params);
155 CELL * p_device(CELL * params);
156 CELL * p_difference(CELL * params);
157 CELL * p_directory(CELL * params);
158 CELL * p_divFloat(CELL * params);
159 CELL * p_divide(CELL * params);
160 CELL * p_doargs(CELL * params);
161 CELL * p_dolist(CELL * params);
162 CELL * p_dostring(CELL * params);
163 CELL * p_dotimes(CELL * params);
164 CELL * p_dotree(CELL * params);
165 CELL * p_doWhile(CELL * params);
166 CELL * p_doUntil(CELL * params);
167 CELL * p_dump(CELL * params);
168 CELL * p_dumpSymbol(CELL* params);
169 CELL * p_dup(CELL * params);
170 CELL * p_encrypt(CELL * params);
171 CELL * p_endsWith(CELL * params);
172 CELL * p_env(CELL * params);
173 CELL * p_equal(CELL * params);
174 CELL * p_erf(CELL * params);
175 CELL * p_errorEvent(CELL * params);
176 CELL * p_errorNumber(CELL * params);
177 CELL * p_errorText(CELL * params);
178 CELL * p_eval(CELL * params);
179 CELL * p_evalBlock(CELL * params);
180 CELL * p_evalString(CELL * params);
181 CELL * p_exec(CELL * params);
182 CELL * p_exists(CELL * params);
183 CELL * p_exit(CELL * params);
184 CELL * p_exp(CELL * params);
185 CELL * p_expand(CELL * params);
186 CELL * p_explode(CELL * params);
187 CELL * p_factor(CELL * params);
188 CELL * p_fft(CELL * params);
189 CELL * p_fileInfo(CELL * params);
190 CELL * p_filter(CELL * params);
191 CELL * p_find(CELL * params);
192 CELL * p_findAll(CELL * params);
193 CELL * p_first(CELL * params);
194 CELL * p_flat(CELL * params);
195 CELL * p_float(CELL * params);
196 CELL * p_flt(CELL * params);
197 CELL * p_floor(CELL * params);
198 CELL * p_for(CELL * params);
199 CELL * p_forAll(CELL * params);
200 CELL * p_fork(CELL * params);
201 CELL * p_format(CELL * params);
202 CELL * p_fv(CELL * params);
203 CELL * p_gammai(CELL * params);
204 CELL * p_gammaln(CELL * params);
205 CELL * p_gcd(CELL * params);
206 CELL * p_getChar(CELL * params);
207 CELL * p_getFloat(CELL * params);
208 CELL * p_getInteger(CELL * params);
209 CELL * p_getLong(CELL * params);
210 CELL * p_getString(CELL * params);
211 CELL * p_getUrl(CELL * params);
212 CELL * p_getenv(CELL * params);
213 CELL * p_global(CELL * params);
214 CELL * p_greater(CELL * params);
215 CELL * p_greaterEqual(CELL * params);
216 CELL * p_if(CELL * params);
217 CELL * p_ifft(CELL * params);
218 CELL * p_importLib(CELL * params);
219 CELL * p_increment(CELL * params);
220 CELL * p_index(CELL * params);
221 CELL * p_integer(CELL * params);
222 CELL * p_intersect(CELL * params);
223 CELL * p_irr(CELL * params);
224 CELL * p_isAtom(CELL * params);
225 CELL * p_isContext(CELL * params);
226 CELL * p_isGlobal(CELL * params);
227 CELL * p_isNil(CELL * params);
228 CELL * p_isNull(CELL * params);
229 CELL * p_isNumber(CELL * params);
230 CELL * p_isProtected(CELL * params);
231 CELL * p_isTrue(CELL * params);
232 CELL * p_isZero(CELL * params);
233 CELL * p_isDirectory(CELL * params);
234 CELL * p_isEmpty(CELL * params);
235 CELL * p_isFile(CELL * params);
236 CELL * p_isFloat(CELL * params);
237 CELL * p_isInteger(CELL * params);
238 CELL * p_isLambda(CELL * params);
239 CELL * p_isLegal(CELL * params);
240 CELL * p_isList(CELL * params);
241 CELL * p_isMacro(CELL * params);
242 CELL * p_isArray(CELL * params);
243 CELL * p_isPrimitive(CELL * params);
244 CELL * p_isQuote(CELL * params);
245 CELL * p_isString(CELL * params);
246 CELL * p_isSymbol(CELL * params);
247 CELL * p_isnan(CELL * params);
248 CELL * p_join(CELL * params);
249 CELL * p_last(CELL * params);
250 CELL * p_length(CELL * params);
251 CELL * p_less(CELL * params);
252 CELL * p_lessEqual(CELL * params);
253 CELL * p_let(CELL * params);
254 CELL * p_letn(CELL * params);
255 CELL * p_letExpand(CELL * params);
256 CELL * p_list(CELL * params);
257 CELL * p_load(CELL * params);
258 CELL * p_local(CELL * params);
259 CELL * p_log(CELL * params);
260 CELL * p_lookup(CELL * params);
261 CELL * p_lower(CELL * params);
262 CELL * p_mainArgs(CELL * params);
263 CELL * p_makeDir(CELL * params);
264 CELL * p_map(CELL * params);
265 CELL * p_matScalar(CELL * params);
266 CELL * p_matInvert(CELL * params);
267 CELL * p_matMultiply(CELL * params);
268 CELL * p_matTranspose(CELL * params);
269 CELL * p_match(CELL * params);
270 CELL * p_maxFloat(CELL * params);
271 CELL * p_member(CELL * params);
272 CELL * p_minFloat(CELL * params);
273 CELL * p_modFloat(CELL * params);
274 CELL * p_modulo(CELL * params);
275 CELL * p_mulFloat(CELL * params);
276 CELL * p_multiply(CELL * params);
277 CELL * p_name(CELL* params);
278 CELL * p_netAccept(CELL * params);
279 CELL * p_netClose(CELL * params);
280 CELL * p_netConnect(CELL * params);
281 CELL * p_netEval(CELL * params);
282 CELL * p_netLastError(CELL * params);
283 CELL * p_netListen(CELL * params);
284 CELL * p_netLocal(CELL * params);
285 CELL * p_netLookup(CELL * params);
286 CELL * p_netPeek(CELL * params);
287 CELL * p_netPeer(CELL * params);
288 CELL * p_netPing(CELL * params);
289 CELL * p_netReceive(CELL * params);
290 CELL * p_netReceiveFrom(CELL * params);
291 CELL * p_netReceiveUDP(CELL * params);
292 CELL * p_netSelect(CELL * params);
293 CELL * p_netSend(CELL * params);
294 CELL * p_netSendTo(CELL * params);
295 CELL * p_netSendUDP(CELL * params);
296 CELL * p_netService(CELL * params);
297 CELL * p_netSessions(CELL * params);
298 CELL * p_new(CELL * params);
299 CELL * p_normal(CELL * params);
300 CELL * p_not(CELL * params);
301 CELL * p_notEqual(CELL * params);
302 CELL * p_now(CELL * params);
303 CELL * p_nper(CELL * params);
304 CELL * p_npv(CELL * params);
305 CELL * p_nth(CELL * params);
306 CELL * p_nthSet(CELL * params);
307 CELL * p_open(CELL * params);
308 CELL * p_or(CELL * params);
309 CELL * p_pack(CELL * params);
310 CELL * p_parse(CELL * params);
311 CELL * p_parseDate(CELL * params);
312 CELL * p_peek(CELL * params);
313 CELL * p_pipe(CELL * params);
314 CELL * p_pmt(CELL * params);
315 CELL * p_pop(CELL * params);
316 CELL * p_popAssoc(CELL * params);
317 CELL * p_postUrl(CELL * params);
318 CELL * p_powFloat(CELL * params);
319 CELL * p_prettyPrint(CELL * params);
320 CELL * p_print(CELL * params);
321 CELL * p_println(CELL * params);
322 CELL * p_probabilityChi2(CELL * params);
323 CELL * p_probabilityZ(CELL * params);
324 CELL * p_process(CELL * params);
325 CELL * p_push(CELL * params);
326 CELL * p_putUrl(CELL * params);
327 CELL * p_deleteUrl(CELL * params);
328 CELL * p_pv(CELL * params);
329 CELL * p_quote(CELL * params);
330 CELL * p_rand(CELL * params);
331 CELL * p_random(CELL * params);
332 CELL * p_randomize(CELL * params);
333 CELL * p_readBuffer(CELL * params);
334 CELL * p_readChar(CELL * params);
335 CELL * p_readFile(CELL * params);
336 CELL * p_readKey(CELL * params);
337 CELL * p_readLine(CELL * params);
338 CELL * p_realpath(CELL * params);
339 CELL * p_ref(CELL * params);
340 CELL * p_refAll(CELL * params);
341 CELL * p_refSet(CELL * params);
342 CELL * p_regex(CELL * params);
343 CELL * p_remove(CELL * params);
344 CELL * p_removeDir(CELL * params);
345 CELL * p_renameFile(CELL * params);
346 CELL * p_replace(CELL * params);
347 CELL * p_replaceAssoc(CELL * params);
348 CELL * p_reset(CELL * params);
349 CELL * p_rest(CELL * params);
350 CELL * p_reverse(CELL * params);
351 CELL * p_rotate(CELL * params);
352 CELL * p_round(CELL * params);
353 CELL * p_save(CELL * params);
354 CELL * p_search(CELL * params);
355 CELL * p_seed(CELL * params);
356 CELL * p_seek(CELL * params);
357 CELL * p_select(CELL * params);
358 CELL * p_semaphore(CELL * params);
359 CELL * p_sequence(CELL * params);
360 CELL * p_series(CELL * params);
361 CELL * p_set(CELL * params);
362 CELL * p_setAssoc(CELL * params);
363 CELL * p_setlocale(CELL * params);
364 CELL * p_setNth(CELL * params);
365 CELL * p_setq(CELL * params);
366 CELL * p_setRef(CELL * params);
367 CELL * p_setRefAll(CELL * params);
368 CELL * p_sgn(CELL * params);
369 CELL * p_share(CELL * params);
370 CELL * p_shiftLeft(CELL * params);
371 CELL * p_shiftRight(CELL * params);
372 CELL * p_signal(CELL * params);
373 CELL * p_silent(CELL * params);
374 CELL * p_sin(CELL * params);
375 CELL * p_sinh(CELL * params);
376 CELL * p_asinh(CELL * params);
377 CELL * p_sleep(CELL * params);
378 CELL * p_slice(CELL * params);
379 CELL * p_sort(CELL * params);
380 CELL * p_sqrt(CELL * params);
381 CELL * p_startsWith(CELL * params);
382 CELL * p_string(CELL * params);
383 CELL * p_subFloat(CELL * params);
384 CELL * p_subtract(CELL * params);
385 CELL * p_swap(CELL * params);
386 CELL * p_symbol(CELL * params);
387 CELL * p_symbolSource(CELL * params);
388 CELL * p_symbols(CELL * params);
389 CELL * p_systemSymbol(CELL * params);
390 CELL * p_references(CELL * params);
391 CELL * p_system(CELL * params);
392 CELL * p_systemError(CELL * params);
393 CELL * p_systemInfo(CELL * params);
394 CELL * p_tan(CELL * params);
395 CELL * p_tanh(CELL * params);
396 CELL * p_atanh(CELL * params);
397 CELL * p_throw(CELL * params);
398 CELL * p_throwError(CELL * params);
399 CELL * p_time(CELL * params);
400 CELL * p_timeOfDay(CELL * params);
401 CELL * p_timerEvent(CELL * params);
402 CELL * p_title(CELL * params);
403 CELL * p_trace(CELL * params);
404 CELL * p_traceHighlight(CELL * params);
405 CELL * p_trim(CELL * params);
406 CELL * p_unique(CELL * params);
407 CELL * p_unicode(CELL * params);
408 CELL * p_unify(CELL * params);
409 CELL * p_unless(CELL * params);
410 CELL * p_unpack(CELL * params);
411 CELL * p_until(CELL * params);
412 CELL * p_upper(CELL * params);
413 CELL * p_utf8(CELL * params);
414 CELL * p_utf8len(CELL * params);
415 CELL * p_uuid(CELL * params);
416 CELL * p_waitpid(CELL * params);
417 CELL * p_when(CELL * params);
418 CELL * p_while(CELL * params);
419 CELL * p_writeBuffer(CELL * params);
420 CELL * p_writeChar(CELL * params);
421 CELL * p_writeFile(CELL * params);
422 CELL * p_writeLine(CELL * params);
423 CELL * parseAttributes(char * endSrc);
424 CELL * parseDoc(void);
425 CELL * parseNormalTag(char * endSrc, char * newSrc);
426 CELL * parseTag(char * closeTagStr);
427 CELL * patternMatchL(CELL * pattern, CELL * list, int flag);
428 CELL * patternMatchS(char * pattern, char * string);
429 CELL * ping(CELL * address, int timeout, int mode, int count, int option);
430 CELL * popString(CELL * str, CELL * params);
431 CELL * pushOnString(CELL * newStr, CELL * str, CELL * idx);
432 CELL * println(CELL * params, int flag);
433 CELL * readProcess(char * command);
434 CELL * repeat(CELL * params, int type);
435 CELL * setDefine(SYMBOL * symbol, CELL * params, int force);
436 CELL * setInterDiff(CELL * params, int mode);
437 CELL * setRef(CELL * params, int mode);
438 CELL * strUpperLower(CELL * params, int type);
439 CELL * stuffFloat(double * floatPtr);
440 CELL * stuffInteger(UINT contents);
441 #ifndef NEWLISP64
442 CELL * stuffInteger64(INT64 contents);
443 #endif
444 CELL * stuffIntegerList(int argc, ...);
445 CELL * stuffString(char * string);
446 CELL * stuffStringN(char * string, int len);
447 CELL * stuffSymbol(SYMBOL * sPtr);
448 CELL * sublist(CELL * list, ssize_t offset, ssize_t length);
449 CELL * substring(char * string, ssize_t slen, ssize_t offset, ssize_t len);
450 CELL * sysEvalString(char * str, CELL * errorProc, SYMBOL * context);
451 CELL * updateCell(CELL * cell, CELL * val);
452 CELL * whileUntil(CELL * params, int whileUntilFlag);
453 CELL * writeProcess(char * command, char * inp);
454 FILE * serverFD(int port, char * domain, int reconnect);
455 FILE * win32_fdopen(int handle, const char * mode);
456 SYMBOL * getCreateContext(CELL * params, int eval);
457 SYMBOL * getDynamicSymbol(CELL * cell);
458 SYMBOL * getSymbolCheckProtected(CELL * params);
459 SYMBOL * lookupSymbol(char * token, SYMBOL * context);
460 SYMBOL * translateCreateSymbol(char * token, int type, SYMBOL * context, int forceFlag);
461 size_t adjustNegativeIndex(ssize_t index, size_t length);
462 ssize_t searchBuffer(char * buffer, size_t length, char * string, size_t size, int caseFlag);
463 ssize_t searchBufferRegex(char * string, int offset, char * pattern, int length, int options, int * len);
464 INT64 fileSize(char * pathName);
465 char * getFormatType(char * fmt, int * type);
466 char * netLastError(void);
467 char * parsePackFormat(char * format, int * length, int * type);
468 char * prompt(void);
469 char * readStreamText(STREAM * stream, char * limit);
470 char * replaceString (char * keyStr, int keyLen, char * buff, size_t buffLen, CELL * exprCell,
471 UINT * cnt, int options, size_t * newLen);
472 char * win32_fgets(char * buffer, int size, FILE * fPtr);
473 char * win32_realpath(const char * filepath, char * realpath);
474 double getDirectFloat(CELL * param);
475 int compareArrays(CELL * left, CELL * right);
476 int compareCells(CELL * left, CELL * right);
477 int compareFloats(CELL * left, CELL * right);
478 int compareFunc(CELL * left, CELL * right, CELL * func);
479 int compareLists(CELL * left, CELL * right);
480 int compileExpression(STREAM * stream, CELL * cell);
481 int elmntInList(CELL * elmnt, CELL * listHead);
482 int evalHttpRequest(char * command, UINT outDevice);
483 int executeHTTPrequest(char * request, int type);
484 long executeSymbol(SYMBOL * symbol, CELL * params);
485 int find(char * key, char * source);
486 int getFlag(CELL * params);
487 int getToken(STREAM * stream, char * token, int * tklen);
488 int isLegalSymbol(char * source);
489 int in_cksum(unsigned short * addr, int len);
490 int isDir(char * fileName);
491 int isFile(char * fileName);
492 int main(int argc, char * argv[]);
493 int makeStreamFromFile(STREAM * stream, char * fileName, size_t size, size_t offset);
494 int milliSecTime(void);
495 int my_setenv(const char * varName, const char * varValue, int flag);
496 int my_strnicmp(char * s1, char * s2, ssize_t size);
497 int my_vasprintf(char * * buffer, const char * format, va_list argptr);
498 int netConnect(char * name, int port, int type, char * protocol, int ttl);
499 int netConnectLocal(char * path);
500 int netAccept(int listenSock);
501 int netListenLocal(char * name);
502 int netListenOrDatagram(int portNo, int type, char * ifAddr, char * mcAddr);
503 int openFile(char * fileName, char * accessMode, char * option);
504 int printCell(CELL * cell, UINT printFlag, UINT device);
505 int printExpression(CELL * cell, UINT device);
506 int process(char * command, int inpipe, int outpipe, int errpipe);
507 int sendall(int sock, char * buffer, int len);
508 int sortFunc(const void * left, const void *right);
509 int timediff(struct timeval end, struct timeval start);
510 int wait_ready(int sock, INT64 wait, int mode);
511 int win32_fclose(FILE * fPtr);
512 int win32_fgetc(FILE * fPtr);
513 int win32_fprintf(FILE * fPtr, char * buffer);
514 size_t listlen(CELL * listHead);
515 ssize_t convertNegativeOffset(ssize_t offset, CELL * list);
516 ssize_t readFile(char * fileName, char * * buffer);
517 unsigned int asciiIPtoLong(char *ptr);
519 void * allocMemory(size_t nbytes);
520 void * callocMemory(size_t nbytes);
521 void * reallocMemory(void * prevPtr, UINT size);
522 void allocBlock(void);
523 void cardioBeat(void);
524 void cleanupResults(int from);
525 void closeStrStream(STREAM * stream);
526 void closeTrace(void);
527 void collectGarbage(void);
528 void deleteArray(CELL * cell);
529 void deleteFreeSymbol(SYMBOL * sPtr);
530 void deleteList(CELL * cell);
531 void deleteTagStack(void);
532 void encryptPad(char * encrypted, char * data, char * key, size_t dataLen, size_t keyLen);
533 void executeCommandLine(char * command, int outDevice, STREAM * cmdStream);
534 void errorMissingPar(STREAM * stream);
535 void fatalError(int errorNumber, CELL * expr, int deleteFlag);
536 void initLocale(void);
537 void initStacks(void);
538 void initialize(void);
539 void linkCell(CELL * left, CELL * right, int linkFlag);
540 void makeContextFromSymbol(SYMBOL * symbol, SYMBOL * treePtr);
541 void makeStreamFromString(STREAM * stream, char * str);
542 void markArray(CELL * cell);
543 void markList(CELL * cell);
544 void markReferences(SYMBOL * sPtr);
545 void mySleep(int ms);
546 void openStrStream(STREAM * stream, size_t buffSize, int reopenFlag);
547 void openTrace(void);
548 void parseClosing(void);
549 void parseDTD(void);
550 void parseProcessingInstruction(void);
551 void prettyPrint(UINT device);
552 void printArray(CELL * array, UINT device);
553 void printArrayDimensions(CELL * array, UINT device);
554 void printErrorMessage(UINT errorNumber, CELL * expr, int deleteFlag);
555 void printLambda(SYMBOL * sPtr, UINT device);
556 void printString(char * str, UINT device, int size);
557 void printSymbol(SYMBOL * sPtr, UINT device);
558 void printSymbolName(UINT device, SYMBOL * sPtr);
559 void printSymbolNameExt(UINT device, SYMBOL * sPtr);
560 void recoverEnvironment(int idx);
561 void relinkCells(void);
562 void reset(void);
563 void saveContext(SYMBOL * sPtr, UINT device);
564 void saveSymbols(SYMBOL * sPtr, UINT device);
565 void serializeSymbols(CELL * params, UINT device);
566 void setupServer(int reconnect);
567 void setupAllSignals(void);
568 void signal_handler(int sig);
569 void swapEndian(char * data, int n);
570 void sweepGarbage(void);
571 void traceEntry(CELL * cell, CELL * pCell, CELL * args);
572 void traceExit(CELL * result, CELL * cell, CELL * pCell, CELL * args);
573 void varPrintf(UINT device, char *format, ...);
574 void writeLog(char * text, int newLine);
575 void writeStreamChar(STREAM * stream, char chr);
576 void writeStreamStr(STREAM * stream, char * buff, size_t length);
577 size_t appendCellString(CELL * cell, char * buffer, size_t size);
578 UINT * copyArray(CELL * params);
579 UINT seconds(void);
580 UINT64 timediff64(struct timeval end, struct timeval start);
582 #ifdef SUPPORT_UTF8
583 int utf8_1st_len(char * utf8str);
584 int utf8_wstr(int * unicode, char * utf8str, int maxwc);
585 int wstr_utf8(char * utf8str, int * unicode, int maxstr);
586 char * utf8_wchar(char * utf8str, int * chr);
587 size_t utf8_wlen(char * utf8str);
588 int wchar_utf8(int cvalue, char *buffer);
590 #ifdef USE_WIN_UTF16PATH
591 WCHAR * utf8_to_utf16(const char *utf8str);
592 int utf16_to_utf8ptr(const WCHAR *utf16str, char * utf8str, int size);
593 char * utf16_to_utf8(const WCHAR *utf16str);
594 char *win32_realpath(const char *filepath, char *realpath);
595 int rename_utf16(const char* a, const char* b);
596 int stat_utf16(const char* a, struct stat* b);
597 int chdir_utf16(const char* a);
598 int open_utf16(const char* a, int b, int c);
599 int mkdir_utf16(const char* a);
600 int rmdir_utf16(const char* a);
601 int unlink_utf16(const char* a);
602 _WDIR * opendir_utf16(const char* a);
603 #endif
604 #endif
606 /* eof */