Mercurial > hg > xemacs-beta
comparison src/symbols.c @ 80:1ce6082ce73f r20-0b90
Import from CVS: tag r20-0b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:06:37 +0200 |
parents | 131b0175ea99 |
children | 6a378aca36af |
comparison
equal
deleted
inserted
replaced
79:5b0a5bbffab6 | 80:1ce6082ce73f |
---|---|
474 { | 474 { |
475 /* #### - I wonder if it would be better to just have a new magic value | 475 /* #### - I wonder if it would be better to just have a new magic value |
476 type and make nil, t, and all keywords have that same magic | 476 type and make nil, t, and all keywords have that same magic |
477 constant_symbol value. This test is awfully specific about what is | 477 constant_symbol value. This test is awfully specific about what is |
478 constant and what isn't. --Stig */ | 478 constant and what isn't. --Stig */ |
479 return (NILP (sym) || EQ (sym, Qt) | 479 return |
480 || (SYMBOL_VALUE_MAGIC_P (val) | 480 NILP (sym) || |
481 && (XSYMBOL_VALUE_MAGIC_TYPE (val) == | 481 EQ (sym, Qt) || |
482 SYMVAL_CONST_OBJECT_FORWARD || | 482 (SYMBOL_VALUE_MAGIC_P (val) && |
483 XSYMBOL_VALUE_MAGIC_TYPE (val) == | 483 (XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_OBJECT_FORWARD || |
484 SYMVAL_CONST_SPECIFIER_FORWARD || | 484 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_SPECIFIER_FORWARD || |
485 XSYMBOL_VALUE_MAGIC_TYPE (val) == | 485 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_FIXNUM_FORWARD || |
486 SYMVAL_CONST_FIXNUM_FORWARD || | 486 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_BOOLEAN_FORWARD || |
487 XSYMBOL_VALUE_MAGIC_TYPE (val) == | 487 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_CURRENT_BUFFER_FORWARD || |
488 SYMVAL_CONST_BOOLEAN_FORWARD || | 488 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_SELECTED_CONSOLE_FORWARD)) |
489 XSYMBOL_VALUE_MAGIC_TYPE (val) == | |
490 SYMVAL_CONST_CURRENT_BUFFER_FORWARD || | |
491 XSYMBOL_VALUE_MAGIC_TYPE (val) == | |
492 SYMVAL_CONST_SELECTED_CONSOLE_FORWARD)) | |
493 #if 0 | 489 #if 0 |
494 /* #### - This is disabled until a new magic symbol_value for | 490 /* #### - This is disabled until a new magic symbol_value for |
495 constants is added */ | 491 constants is added */ |
496 || SYMBOL_IS_KEYWORD (sym) | 492 || SYMBOL_IS_KEYWORD (sym) |
497 #endif | 493 #endif |
498 ); | 494 ; |
499 } | 495 } |
500 | 496 |
501 /* We are setting SYM's value slot (or function slot, if FUNCTION_P is | 497 /* We are setting SYM's value slot (or function slot, if FUNCTION_P is |
502 non-zero) to NEWVAL. Make sure this is allowed. NEWVAL is only | 498 non-zero) to NEWVAL. Make sure this is allowed. NEWVAL is only |
503 used in the error message. FOLLOW_PAST_LISP_MAGIC specifies | 499 used in the error message. FOLLOW_PAST_LISP_MAGIC specifies |
511 Lisp_Object val = | 507 Lisp_Object val = |
512 (function_p ? XSYMBOL (sym)->function | 508 (function_p ? XSYMBOL (sym)->function |
513 : fetch_value_maybe_past_magic (sym, follow_past_lisp_magic)); | 509 : fetch_value_maybe_past_magic (sym, follow_past_lisp_magic)); |
514 | 510 |
515 if (SYMBOL_VALUE_MAGIC_P (val) && | 511 if (SYMBOL_VALUE_MAGIC_P (val) && |
516 XSYMBOL_VALUE_MAGIC_TYPE (val) == | 512 XSYMBOL_VALUE_MAGIC_TYPE (val) == SYMVAL_CONST_SPECIFIER_FORWARD) |
517 SYMVAL_CONST_SPECIFIER_FORWARD) | |
518 signal_simple_error ("Use `set-specifier' to change a specifier's value", | 513 signal_simple_error ("Use `set-specifier' to change a specifier's value", |
519 sym); | 514 sym); |
520 | 515 |
521 if (symbol_is_constant (sym, val)) | 516 if (symbol_is_constant (sym, val)) |
522 { | 517 signal_error (Qsetting_constant, |
523 signal_error (Qsetting_constant, | 518 UNBOUNDP (newval) ? list1 (sym) : list2 (sym, newval)); |
524 ((UNBOUNDP (newval)) | |
525 ? list1 (sym) | |
526 : list2 (sym, newval))); | |
527 } | |
528 } | 519 } |
529 | 520 |
530 /* Verify that it's ok to make SYM buffer-local. This rejects | 521 /* Verify that it's ok to make SYM buffer-local. This rejects |
531 constants and default-buffer-local variables. FOLLOW_PAST_LISP_MAGIC | 522 constants and default-buffer-local variables. FOLLOW_PAST_LISP_MAGIC |
532 specifies whether we delve into symbol-value-lisp-magic objects. | 523 specifies whether we delve into symbol-value-lisp-magic objects. |