# HG changeset patch # User Richard M. Stallman # Date 1072696951 0 # Node ID 35a817bb4c0dad1640e5e08d6717fc764edbcc0d # Parent b5fb2115d4824e65577aafb315ee563c66b256b0 Comment change. diff -r b5fb2115d482 -r 35a817bb4c0d src/buffer.h --- a/src/buffer.h Mon Dec 29 11:22:19 2003 +0000 +++ b/src/buffer.h Mon Dec 29 11:22:31 2003 +0000 @@ -906,8 +906,26 @@ (B)->local_flags[IDX] = (VAL); \ } while (0) -/* Return the index of the per-buffer variable at offset OFFSET in the - buffer structure. */ +/* Return the index value of the per-buffer variable at offset OFFSET + in the buffer structure. + + If the slot OFFSET has a corresponding default value in + buffer_defaults, the index value is positive and has only one + nonzero bit. When a buffer has its own local value for a slot, the + bit for that slot (found in the same slot in this structure) is + turned on in the buffer's local_flags array. + + If the index value is -1, even though there may be a + DEFVAR_PER_BUFFER for the slot, there is no default value for it; + and the corresponding slot in buffer_defaults is not used. + + If the index value is -2, then there is no DEFVAR_PER_BUFFER for + the slot, but there is a default value which is copied into each + new buffer. + + If a slot in this structure corresponding to a DEFVAR_PER_BUFFER is + zero, that is a bug */ + #define PER_BUFFER_IDX(OFFSET) \ XINT (*(Lisp_Object *)((OFFSET) + (char *) &buffer_local_flags)) diff -r b5fb2115d482 -r 35a817bb4c0d src/eval.c --- a/src/eval.c Mon Dec 29 11:22:19 2003 +0000 +++ b/src/eval.c Mon Dec 29 11:22:31 2003 +0000 @@ -2641,6 +2641,8 @@ #endif /* not NO_ARG_ARRAY */ } +/* The caller should GCPRO all the elements of ARGS. */ + DEFUN ("funcall", Ffuncall, Sfuncall, 1, MANY, 0, doc: /* Call first argument as a function, passing remaining arguments to it. Return the value that function returns.