comparison src/symeval.h @ 1632:64eaceca611d

[xemacs-hg @ 2003-08-19 02:07:03 by james] Enable module building and running on Cygwin and MinGW.
author james
date Tue, 19 Aug 2003 02:07:16 +0000
parents 184461bc8de4
children 34abfb24e891
comparison
equal deleted inserted replaced
1631:1bf7b032a45d 1632:64eaceca611d
273 273
274 /* To define a Lisp primitive function using a C function `Fname', do this: 274 /* To define a Lisp primitive function using a C function `Fname', do this:
275 DEFUN ("name, Fname, ...); // at top level in foo.c 275 DEFUN ("name, Fname, ...); // at top level in foo.c
276 DEFSUBR (Fname); // in syms_of_foo(); 276 DEFSUBR (Fname); // in syms_of_foo();
277 */ 277 */
278 void defsubr (Lisp_Subr *); 278 MODULE_API void defsubr (Lisp_Subr *);
279 #define DEFSUBR(Fname) defsubr (&S##Fname) 279 #define DEFSUBR(Fname) defsubr (&S##Fname)
280 280
281 /* To define a Lisp primitive macro using a C function `Fname', do this: 281 /* To define a Lisp primitive macro using a C function `Fname', do this:
282 DEFUN ("name, Fname, ...); // at top level in foo.c 282 DEFUN ("name, Fname, ...); // at top level in foo.c
283 DEFSUBR_MACRO (Fname); // in syms_of_foo(); 283 DEFSUBR_MACRO (Fname); // in syms_of_foo();
284 */ 284 */
285 void defsubr_macro (Lisp_Subr *); 285 MODULE_API void defsubr_macro (Lisp_Subr *);
286 #define DEFSUBR_MACRO(Fname) defsubr_macro (&S##Fname) 286 #define DEFSUBR_MACRO(Fname) defsubr_macro (&S##Fname)
287 287
288 void defsymbol_massage_name (Lisp_Object *location, const char *name); 288 MODULE_API void defsymbol_massage_name (Lisp_Object *location,
289 void defsymbol_massage_name_nodump (Lisp_Object *location, const char *name); 289 const char *name);
290 void defsymbol_massage_multiword_predicate (Lisp_Object *location, 290 MODULE_API void defsymbol_massage_name_nodump (Lisp_Object *location,
291 const char *name); 291 const char *name);
292 void defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location, 292 MODULE_API void defsymbol_massage_multiword_predicate (Lisp_Object *location,
293 const char *name); 293 const char *name);
294 void defsymbol (Lisp_Object *location, const char *name); 294 MODULE_API void
295 void defsymbol_nodump (Lisp_Object *location, const char *name); 295 defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location,
296 const char *name);
297 MODULE_API void defsymbol (Lisp_Object *location, const char *name);
298 MODULE_API void defsymbol_nodump (Lisp_Object *location, const char *name);
296 299
297 /* Defining symbols: 300 /* Defining symbols:
298 301
299 (1) A standard symbol is defined with DEFSYMBOL. That means that 302 (1) A standard symbol is defined with DEFSYMBOL. That means that
300 the symbol's print name can be derived from the symbol's variable 303 the symbol's print name can be derived from the symbol's variable
325 #define DEFSYMBOL_MULTIWORD_PREDICATE(name) \ 328 #define DEFSYMBOL_MULTIWORD_PREDICATE(name) \
326 defsymbol_massage_multiword_predicate (&name, #name) 329 defsymbol_massage_multiword_predicate (&name, #name)
327 #define DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP(name) \ 330 #define DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP(name) \
328 defsymbol_massage_multiword_predicate_nodump (&name, #name) 331 defsymbol_massage_multiword_predicate_nodump (&name, #name)
329 332
330 void defkeyword (Lisp_Object *location, const char *name); 333 MODULE_API void defkeyword (Lisp_Object *location, const char *name);
331 void defkeyword_massage_name (Lisp_Object *location, const char *name); 334 MODULE_API void defkeyword_massage_name (Lisp_Object *location,
335 const char *name);
332 #define DEFKEYWORD(name) defkeyword_massage_name (&name, #name) 336 #define DEFKEYWORD(name) defkeyword_massage_name (&name, #name)
333 337
334 void deferror (Lisp_Object *symbol, const char *name, 338 MODULE_API void deferror (Lisp_Object *symbol, const char *name,
335 const char *message, Lisp_Object inherits_from); 339 const char *message, Lisp_Object inherits_from);
336 void deferror_massage_name (Lisp_Object *symbol, const char *name, 340 MODULE_API void deferror_massage_name (Lisp_Object *symbol, const char *name,
337 const char *message, Lisp_Object inherits_from); 341 const char *message,
338 void deferror_massage_name_and_message (Lisp_Object *symbol, const char *name, 342 Lisp_Object inherits_from);
339 Lisp_Object inherits_from); 343 MODULE_API void deferror_massage_name_and_message (Lisp_Object *symbol,
344 const char *name,
345 Lisp_Object inherits_from);
340 #define DEFERROR(name, message, inherits_from) \ 346 #define DEFERROR(name, message, inherits_from) \
341 deferror_massage_name (&name, #name, message, inherits_from) 347 deferror_massage_name (&name, #name, message, inherits_from)
342 /* In this case, the error message is the same as the name, modulo some 348 /* In this case, the error message is the same as the name, modulo some
343 prettifying */ 349 prettifying */
344 #define DEFERROR_STANDARD(name, inherits_from) \ 350 #define DEFERROR_STANDARD(name, inherits_from) \
345 deferror_massage_name_and_message (&name, #name, inherits_from) 351 deferror_massage_name_and_message (&name, #name, inherits_from)
346 352
347 /* Macros we use to define forwarded Lisp variables. 353 /* Macros we use to define forwarded Lisp variables.
348 These are used in the syms_of_FILENAME functions. */ 354 These are used in the syms_of_FILENAME functions. */
349 355
350 void defvar_magic (const char *symbol_name, 356 MODULE_API void defvar_magic (const char *symbol_name,
351 const struct symbol_value_forward *magic); 357 const struct symbol_value_forward *magic);
352 358
353 #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magicfun) \ 359 #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magicfun) \
354 do \ 360 do \
355 { \ 361 { \
356 static const struct symbol_value_forward I_hate_C = \ 362 static const struct symbol_value_forward I_hate_C = \