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
);
442 CELL
* stuffInteger64(INT64 contents
);
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
);
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);
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);
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
);
580 UINT64
timediff64(struct timeval end
, struct timeval start
);
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
);