comparison src/symbols.c @ 284:558f606b08ae r21-0b40

Import from CVS: tag r21-0b40
author cvs
date Mon, 13 Aug 2007 10:34:13 +0200
parents 7df0dd720c89
children 8bec6624d99b
comparison
equal deleted inserted replaced
283:fa3d41851a08 284:558f606b08ae
531 case SYMVAL_CONST_FIXNUM_FORWARD: 531 case SYMVAL_CONST_FIXNUM_FORWARD:
532 case SYMVAL_CONST_BOOLEAN_FORWARD: 532 case SYMVAL_CONST_BOOLEAN_FORWARD:
533 case SYMVAL_CONST_CURRENT_BUFFER_FORWARD: 533 case SYMVAL_CONST_CURRENT_BUFFER_FORWARD:
534 case SYMVAL_CONST_SELECTED_CONSOLE_FORWARD: 534 case SYMVAL_CONST_SELECTED_CONSOLE_FORWARD:
535 return 1; 535 return 1;
536 default: break; /* Warning suppression */
536 } 537 }
537 538
538 /* We don't return true for keywords here because they are handled 539 /* We don't return true for keywords here because they are handled
539 specially by reject_constant_symbols(). */ 540 specially by reject_constant_symbols(). */
540 return 0; 541 return 0;
587 /* #### It's theoretically possible for it to be reasonable 588 /* #### It's theoretically possible for it to be reasonable
588 to have both console-local and buffer-local variables, 589 to have both console-local and buffer-local variables,
589 but I don't want to consider that right now. */ 590 but I don't want to consider that right now. */
590 case SYMVAL_SELECTED_CONSOLE_FORWARD: 591 case SYMVAL_SELECTED_CONSOLE_FORWARD:
591 goto not_ok; 592 goto not_ok;
593 default: break; /* Warning suppression */
592 } 594 }
593 595
594 return; 596 return;
595 597
596 not_ok: 598 not_ok:
713 and retrieving its value doesn't just set or retrieve the raw 715 and retrieving its value doesn't just set or retrieve the raw
714 contents of the value cell. None of these objects can escape to 716 contents of the value cell. None of these objects can escape to
715 the user level, so there is no loss of generality. 717 the user level, so there is no loss of generality.
716 718
717 If a symbol is "unbound", then the contents of its value cell is 719 If a symbol is "unbound", then the contents of its value cell is
718 Qunbound. Despite appearances, this is *not* a symbol, but is 720 Qunbound. Despite appearances, this is *not* a symbol, but is a
719 a symbol-value-forward object. 721 symbol-value-forward object. This is so that printing it results
722 in "INTERNAL EMACS BUG", in case it leaks to Lisp, somehow.
720 723
721 Logically all of the following objects are "symbol-value-magic" 724 Logically all of the following objects are "symbol-value-magic"
722 objects, and there are some games played w.r.t. this (#### this 725 objects, and there are some games played w.r.t. this (#### this
723 should be cleaned up). SYMBOL_VALUE_MAGIC_P is true for all of 726 should be cleaned up). SYMBOL_VALUE_MAGIC_P is true for all of
724 the object types. XSYMBOL_VALUE_MAGIC_TYPE returns the type of 727 the object types. XSYMBOL_VALUE_MAGIC_TYPE returns the type of
887 the symbol that this variable is aliased to. 890 the symbol that this variable is aliased to.
888 symbol-value-varalias objects cannot occur anywhere within 891 symbol-value-varalias objects cannot occur anywhere within
889 a symbol-value-buffer-local object, and most of the 892 a symbol-value-buffer-local object, and most of the
890 low-level functions below do not accept them; you need 893 low-level functions below do not accept them; you need
891 to call follow_varalias_pointers to get the actual 894 to call follow_varalias_pointers to get the actual
892 symbol to operate on. 895 symbol to operate on. */
893 */
894 896
895 static Lisp_Object 897 static Lisp_Object
896 mark_symbol_value_buffer_local (Lisp_Object obj, 898 mark_symbol_value_buffer_local (Lisp_Object obj,
897 void (*markobj) (Lisp_Object)) 899 void (*markobj) (Lisp_Object))
898 { 900 {