Mercurial > emacs
comparison src/lisp.h @ 83507:81f2d90dee68
Merged from
Patches applied:
* emacs@sv.gnu.org/emacs--devo--0--patch-188
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-189
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-190
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-191
Undo incorrect merge of etc/images/README from Gnus 5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-192
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-193
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-194
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-195
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-196
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-197
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-198
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-199
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-200
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-201
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-202
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-203
Merge from gnus--rel--5.10
* emacs@sv.gnu.org/emacs--devo--0--patch-204
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-205
Update from CVS
* emacs@sv.gnu.org/emacs--devo--0--patch-206
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-73
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-74
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-75
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-76
Update from CVS: README: Addition from 5.10.6 tar ball.
* emacs@sv.gnu.org/gnus--rel--5.10--patch-77
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-78
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-79
Update from CVS
* emacs@sv.gnu.org/gnus--rel--5.10--patch-80
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-547
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Mon, 10 Apr 2006 14:52:24 +0000 |
parents | 0cdee8b991e1 618ce5655fc3 |
children | 24cf4bf418dc |
comparison
equal
deleted
inserted
replaced
83506:9905fc171253 | 83507:81f2d90dee68 |
---|---|
295 emacs.c. */ | 295 emacs.c. */ |
296 PVEC_FLAG = PSEUDOVECTOR_FLAG | 296 PVEC_FLAG = PSEUDOVECTOR_FLAG |
297 #endif | 297 #endif |
298 }; | 298 }; |
299 | 299 |
300 /* For convenience, we also store the number of elements in these bits. */ | 300 /* For convenience, we also store the number of elements in these bits. |
301 Note that this size is not necessarily the memory-footprint size, but | |
302 only the number of Lisp_Object fields (that need to be traced by the GC). | |
303 The distinction is used e.g. by Lisp_Process which places extra | |
304 non-Lisp_Object fields at the end of the structure. */ | |
301 #define PSEUDOVECTOR_SIZE_MASK 0x1ff | 305 #define PSEUDOVECTOR_SIZE_MASK 0x1ff |
302 | 306 |
303 /* Number of bits to put in each character in the internal representation | 307 /* Number of bits to put in each character in the internal representation |
304 of bool vectors. This should not vary across implementations. */ | 308 of bool vectors. This should not vary across implementations. */ |
305 #define BOOL_VECTOR_BITS_PER_CHAR 8 | 309 #define BOOL_VECTOR_BITS_PER_CHAR 8 |
700 EMACS_INT size_byte; | 704 EMACS_INT size_byte; |
701 INTERVAL intervals; /* text properties in this string */ | 705 INTERVAL intervals; /* text properties in this string */ |
702 unsigned char *data; | 706 unsigned char *data; |
703 }; | 707 }; |
704 | 708 |
709 #ifdef offsetof | |
710 #define OFFSETOF(type,field) offsetof(type,field) | |
711 #else | |
712 #define OFFSETOF(type,field) \ | |
713 ((int)((char*)&((type*)0)->field - (char*)0)) | |
714 #endif | |
715 | |
716 struct Lisp_Vector | |
717 { | |
718 EMACS_INT size; | |
719 struct Lisp_Vector *next; | |
720 Lisp_Object contents[1]; | |
721 }; | |
722 | |
705 /* If a struct is made to look like a vector, this macro returns the length | 723 /* If a struct is made to look like a vector, this macro returns the length |
706 of the shortest vector that would hold that struct. */ | 724 of the shortest vector that would hold that struct. */ |
707 #define VECSIZE(type) ((sizeof (type) - (sizeof (struct Lisp_Vector) \ | 725 #define VECSIZE(type) ((sizeof (type) - (sizeof (struct Lisp_Vector) \ |
708 - sizeof (Lisp_Object)) \ | 726 - sizeof (Lisp_Object)) \ |
709 + sizeof(Lisp_Object) - 1) /* round up */ \ | 727 + sizeof(Lisp_Object) - 1) /* round up */ \ |
710 / sizeof (Lisp_Object)) | 728 / sizeof (Lisp_Object)) |
711 | 729 |
712 struct Lisp_Vector | 730 /* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields |
713 { | 731 at the end and we need to compute the number of Lisp_Object fields (the |
714 EMACS_INT size; | 732 ones that the GC needs to trace). */ |
715 struct Lisp_Vector *next; | 733 #define PSEUDOVECSIZE(type, nonlispfield) \ |
716 Lisp_Object contents[1]; | 734 ((OFFSETOF(type, nonlispfield) - OFFSETOF(struct Lisp_Vector, contents[0])) \ |
717 }; | 735 / sizeof (Lisp_Object)) |
718 | 736 |
719 /* A char table is a kind of vectorlike, with contents are like a | 737 /* A char table is a kind of vectorlike, with contents are like a |
720 vector but with a few other slots. For some purposes, it makes | 738 vector but with a few other slots. For some purposes, it makes |
721 sense to handle a chartable with type struct Lisp_Vector. An | 739 sense to handle a chartable with type struct Lisp_Vector. An |
722 element of a char table can be any Lisp objects, but if it is a sub | 740 element of a char table can be any Lisp objects, but if it is a sub |
2223 EXFUN (Fmake_variable_buffer_local, 1); | 2241 EXFUN (Fmake_variable_buffer_local, 1); |
2224 | 2242 |
2225 extern Lisp_Object indirect_variable P_ ((Lisp_Object)); | 2243 extern Lisp_Object indirect_variable P_ ((Lisp_Object)); |
2226 extern Lisp_Object long_to_cons P_ ((unsigned long)); | 2244 extern Lisp_Object long_to_cons P_ ((unsigned long)); |
2227 extern unsigned long cons_to_long P_ ((Lisp_Object)); | 2245 extern unsigned long cons_to_long P_ ((Lisp_Object)); |
2228 extern void args_out_of_range P_ ((Lisp_Object, Lisp_Object)); | 2246 extern void args_out_of_range P_ ((Lisp_Object, Lisp_Object)) NO_RETURN; |
2229 extern void args_out_of_range_3 P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); | 2247 extern void args_out_of_range_3 P_ ((Lisp_Object, Lisp_Object, |
2248 Lisp_Object)) NO_RETURN; | |
2230 extern Lisp_Object wrong_type_argument P_ ((Lisp_Object, Lisp_Object)); | 2249 extern Lisp_Object wrong_type_argument P_ ((Lisp_Object, Lisp_Object)); |
2231 extern void store_symval_forwarding P_ ((Lisp_Object, Lisp_Object, | 2250 extern void store_symval_forwarding P_ ((Lisp_Object, Lisp_Object, |
2232 Lisp_Object, struct buffer *)); | 2251 Lisp_Object, struct buffer *)); |
2233 extern Lisp_Object do_symval_forwarding P_ ((Lisp_Object)); | 2252 extern Lisp_Object do_symval_forwarding P_ ((Lisp_Object)); |
2234 extern Lisp_Object set_internal P_ ((Lisp_Object, Lisp_Object, struct buffer *, int)); | 2253 extern Lisp_Object set_internal P_ ((Lisp_Object, Lisp_Object, struct buffer *, int)); |
2842 EXFUN (Fwrite_region, 7); | 2861 EXFUN (Fwrite_region, 7); |
2843 EXFUN (Ffile_readable_p, 1); | 2862 EXFUN (Ffile_readable_p, 1); |
2844 EXFUN (Ffile_executable_p, 1); | 2863 EXFUN (Ffile_executable_p, 1); |
2845 EXFUN (Fread_file_name, 6); | 2864 EXFUN (Fread_file_name, 6); |
2846 extern Lisp_Object close_file_unwind P_ ((Lisp_Object)); | 2865 extern Lisp_Object close_file_unwind P_ ((Lisp_Object)); |
2847 extern void report_file_error P_ ((const char *, Lisp_Object)); | 2866 extern void report_file_error P_ ((const char *, Lisp_Object)) NO_RETURN; |
2848 extern int internal_delete_file P_ ((Lisp_Object)); | 2867 extern int internal_delete_file P_ ((Lisp_Object)); |
2849 extern void syms_of_fileio P_ ((void)); | 2868 extern void syms_of_fileio P_ ((void)); |
2850 extern void init_fileio_once P_ ((void)); | 2869 extern void init_fileio_once P_ ((void)); |
2851 extern Lisp_Object make_temp_name P_ ((Lisp_Object, int)); | 2870 extern Lisp_Object make_temp_name P_ ((Lisp_Object, int)); |
2852 EXFUN (Fmake_symbolic_link, 3); | 2871 EXFUN (Fmake_symbolic_link, 3); |