comparison src/symeval.h @ 5125:b5df3737028a ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Wed, 24 Feb 2010 01:58:04 -0600
parents d1247f3cc363 bcdf496e49d0
children a9c41067dd88
comparison
equal deleted inserted replaced
5124:623d57b7fbe8 5125:b5df3737028a
324 MODULE_API void defsubr_macro (Lisp_Subr *); 324 MODULE_API void defsubr_macro (Lisp_Subr *);
325 #define DEFSUBR_MACRO(Fname) defsubr_macro (&S##Fname) 325 #define DEFSUBR_MACRO(Fname) defsubr_macro (&S##Fname)
326 #endif /* not NEW_GC */ 326 #endif /* not NEW_GC */
327 327
328 MODULE_API void defsymbol_massage_name (Lisp_Object *location, 328 MODULE_API void defsymbol_massage_name (Lisp_Object *location,
329 const char *name); 329 const Ascbyte *name);
330 MODULE_API void defsymbol_massage_name_nodump (Lisp_Object *location, 330 MODULE_API void defsymbol_massage_name_nodump (Lisp_Object *location,
331 const char *name); 331 const Ascbyte *name);
332 MODULE_API void defsymbol_massage_multiword_predicate (Lisp_Object *location, 332 MODULE_API void defsymbol_massage_multiword_predicate (Lisp_Object *location,
333 const char *name); 333 const Ascbyte *name);
334 MODULE_API void 334 MODULE_API void
335 defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location, 335 defsymbol_massage_multiword_predicate_nodump (Lisp_Object *location,
336 const char *name); 336 const Ascbyte *name);
337 MODULE_API void defsymbol (Lisp_Object *location, const char *name); 337 MODULE_API void defsymbol (Lisp_Object *location, const Ascbyte *name);
338 MODULE_API void defsymbol_nodump (Lisp_Object *location, const char *name); 338 MODULE_API void defsymbol_nodump (Lisp_Object *location, const Ascbyte *name);
339 339
340 /* Defining symbols: 340 /* Defining symbols:
341 341
342 (1) A standard symbol is defined with DEFSYMBOL. That means that 342 (1) A standard symbol is defined with DEFSYMBOL. That means that
343 the symbol's print name can be derived from the symbol's variable 343 the symbol's print name can be derived from the symbol's variable
368 #define DEFSYMBOL_MULTIWORD_PREDICATE(name) \ 368 #define DEFSYMBOL_MULTIWORD_PREDICATE(name) \
369 defsymbol_massage_multiword_predicate (&name, #name) 369 defsymbol_massage_multiword_predicate (&name, #name)
370 #define DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP(name) \ 370 #define DEFSYMBOL_MULTIWORD_PREDICATE_NO_DUMP(name) \
371 defsymbol_massage_multiword_predicate_nodump (&name, #name) 371 defsymbol_massage_multiword_predicate_nodump (&name, #name)
372 372
373 MODULE_API void defkeyword (Lisp_Object *location, const char *name); 373 MODULE_API void defkeyword (Lisp_Object *location, const Ascbyte *name);
374 MODULE_API void defkeyword_massage_name (Lisp_Object *location, 374 MODULE_API void defkeyword_massage_name (Lisp_Object *location,
375 const char *name); 375 const Ascbyte *name);
376 #define DEFKEYWORD(name) defkeyword_massage_name (&name, #name) 376 #define DEFKEYWORD(name) defkeyword_massage_name (&name, #name)
377 377
378 MODULE_API void deferror (Lisp_Object *symbol, const char *name, 378 MODULE_API void deferror (Lisp_Object *symbol, const Ascbyte *name,
379 const char *message, Lisp_Object inherits_from); 379 const Ascbyte *message, Lisp_Object inherits_from);
380 MODULE_API void deferror_massage_name (Lisp_Object *symbol, const char *name, 380 MODULE_API void deferror_massage_name (Lisp_Object *symbol, const Ascbyte *name,
381 const char *message, 381 const Ascbyte *message,
382 Lisp_Object inherits_from); 382 Lisp_Object inherits_from);
383 MODULE_API void deferror_massage_name_and_message (Lisp_Object *symbol, 383 MODULE_API void deferror_massage_name_and_message (Lisp_Object *symbol,
384 const char *name, 384 const Ascbyte *name,
385 Lisp_Object inherits_from); 385 Lisp_Object inherits_from);
386 #define DEFERROR(name, message, inherits_from) \ 386 #define DEFERROR(name, message, inherits_from) \
387 deferror_massage_name (&name, #name, message, inherits_from) 387 deferror_massage_name (&name, #name, message, inherits_from)
388 /* In this case, the error message is the same as the name, modulo some 388 /* In this case, the error message is the same as the name, modulo some
389 prettifying */ 389 prettifying */
391 deferror_massage_name_and_message (&name, #name, inherits_from) 391 deferror_massage_name_and_message (&name, #name, inherits_from)
392 392
393 /* Macros we use to define forwarded Lisp variables. 393 /* Macros we use to define forwarded Lisp variables.
394 These are used in the syms_of_FILENAME functions. */ 394 These are used in the syms_of_FILENAME functions. */
395 395
396 MODULE_API void defvar_magic (const char *symbol_name, 396 MODULE_API void defvar_magic (const Ascbyte *symbol_name,
397 const struct symbol_value_forward *magic); 397 const struct symbol_value_forward *magic);
398 398
399 #ifdef NEW_GC 399 #ifdef NEW_GC
400 #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magic_fun) \ 400 #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magic_fun) \
401 do \ 401 do \
457 do \ 457 do \
458 { \ 458 { \
459 DEFVAR_SYMVAL_FWD (lname, c_location, forward_type, magicfun); \ 459 DEFVAR_SYMVAL_FWD (lname, c_location, forward_type, magicfun); \
460 { \ 460 { \
461 Lisp_Object *DSF_location = c_location; /* Type check */ \ 461 Lisp_Object *DSF_location = c_location; /* Type check */ \
462 staticpro (DSF_location); \ 462 staticpro_1 (DSF_location, lname); \
463 if (EQ (*DSF_location, Qnull_pointer)) *DSF_location = Qnil; \ 463 if (EQ (*DSF_location, Qnull_pointer)) *DSF_location = Qnil; \
464 } \ 464 } \
465 } while (0) 465 } while (0)
466 466
467 #define DEFVAR_LISP(lname, c_location) \ 467 #define DEFVAR_LISP(lname, c_location) \