Mercurial > hg > xemacs-beta
comparison src/faces.c @ 5222:18c0b5909d16
Use keywords in structure syntax; new #define, NEED_TO_HANDLE_21_4_CODE 1
src/ChangeLog addition:
2010-05-31 Aidan Kehoe <kehoea@parhasard.net>
* rangetab.c (print_range_table, rangetab_instantiate)
(structure_type_create_rangetab):
* chartab.c (print_char_table, chartab_instantiate)
(structure_type_create_chartab):
* faces.c (syms_of_faces, print_face, face_validate):
Move structure syntax in these files to using keywords by default,
as is done in Common Lisp and GNU Emacs, accepting for the moment
the older non-keywords syntax too.
* glyphs.h: No need to have Q_data here.
* general-slots.h: Add Q_data, Q_type here.
* config.h.in (NEED_TO_HANDLE_21_4_CODE):
New #define, always 1 for the moment, replacing the previous
never-really-used NO_NEED_TO_HANDLE_21_4_CODE, and avoiding
confusing syntax.
* eval.c (Ffuncall): Wrap the hack that allows #'throw to be
funcalled in #ifdef NEED_TO_HANDLE_21_4_CODE.
* elhash.c (syms_of_elhash): Move Q_type, Q_data to
general-slots.h. Change to NEED_TO_HANDLE_21_4_CODE throughout
this file.
lisp/ChangeLog addition:
2010-05-31 Aidan Kehoe <kehoea@parhasard.net>
* specifier.el (current-display-table):
Use keywords in the structure syntax here, now we've moved to that
by default in C.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Mon, 31 May 2010 16:47:44 +0100 |
parents | 71ee43b8a74d |
children | 22c4e67a2e69 308d34e9f07d |
comparison
equal
deleted
inserted
replaced
5221:ac6846067766 | 5222:18c0b5909d16 |
---|---|
42 #include "window.h" | 42 #include "window.h" |
43 | 43 |
44 Lisp_Object Qfacep; | 44 Lisp_Object Qfacep; |
45 Lisp_Object Qforeground, Qbackground, Qdisplay_table; | 45 Lisp_Object Qforeground, Qbackground, Qdisplay_table; |
46 Lisp_Object Qbackground_pixmap, Qbackground_placement, Qunderline, Qdim; | 46 Lisp_Object Qbackground_pixmap, Qbackground_placement, Qunderline, Qdim; |
47 Lisp_Object Qblinking, Qstrikethru; | 47 Lisp_Object Qblinking, Qstrikethru, Q_name; |
48 | 48 |
49 Lisp_Object Qinit_face_from_resources; | 49 Lisp_Object Qinit_face_from_resources; |
50 Lisp_Object Qinit_frame_faces; | 50 Lisp_Object Qinit_frame_faces; |
51 Lisp_Object Qinit_device_faces; | 51 Lisp_Object Qinit_device_faces; |
52 Lisp_Object Qinit_global_faces; | 52 Lisp_Object Qinit_global_faces; |
130 { | 130 { |
131 Lisp_Face *face = XFACE (obj); | 131 Lisp_Face *face = XFACE (obj); |
132 | 132 |
133 if (print_readably) | 133 if (print_readably) |
134 { | 134 { |
135 write_fmt_string_lisp (printcharfun, "#s(face name %S)", 1, face->name); | 135 write_fmt_string_lisp (printcharfun, "#s(face :name %S)", 1, face->name); |
136 } | 136 } |
137 else | 137 else |
138 { | 138 { |
139 write_fmt_string_lisp (printcharfun, "#<face %S", 1, face->name); | 139 write_fmt_string_lisp (printcharfun, "#<face %S", 1, face->name); |
140 if (!NILP (face->doc_string)) | 140 if (!NILP (face->doc_string)) |
340 face_validate (Lisp_Object data, Error_Behavior errb) | 340 face_validate (Lisp_Object data, Error_Behavior errb) |
341 { | 341 { |
342 int name_seen = 0; | 342 int name_seen = 0; |
343 Lisp_Object valw = Qnil; | 343 Lisp_Object valw = Qnil; |
344 | 344 |
345 /* #### This syntax is very limited, given all the face properties that | |
346 actually exist. At least implement those in reset_face()! */ | |
345 data = Fcdr (data); /* skip over Qface */ | 347 data = Fcdr (data); /* skip over Qface */ |
346 while (!NILP (data)) | 348 while (!NILP (data)) |
347 { | 349 { |
348 Lisp_Object keyw = Fcar (data); | 350 Lisp_Object keyw = Fcar (data); |
349 | 351 |
350 data = Fcdr (data); | 352 data = Fcdr (data); |
351 valw = Fcar (data); | 353 valw = Fcar (data); |
352 data = Fcdr (data); | 354 data = Fcdr (data); |
353 if (EQ (keyw, Qname)) | 355 if (EQ (keyw, Qname) || EQ (keyw, Q_name)) |
354 name_seen = 1; | 356 name_seen = 1; |
355 else | 357 else |
356 ABORT (); | 358 ABORT (); |
357 } | 359 } |
358 | 360 |
2168 | 2170 |
2169 DEFSYMBOL (Qinit_face_from_resources); | 2171 DEFSYMBOL (Qinit_face_from_resources); |
2170 DEFSYMBOL (Qinit_global_faces); | 2172 DEFSYMBOL (Qinit_global_faces); |
2171 DEFSYMBOL (Qinit_device_faces); | 2173 DEFSYMBOL (Qinit_device_faces); |
2172 DEFSYMBOL (Qinit_frame_faces); | 2174 DEFSYMBOL (Qinit_frame_faces); |
2175 | |
2176 DEFKEYWORD (Q_name); | |
2173 } | 2177 } |
2174 | 2178 |
2175 void | 2179 void |
2176 structure_type_create_faces (void) | 2180 structure_type_create_faces (void) |
2177 { | 2181 { |
2178 struct structure_type *st; | 2182 struct structure_type *st; |
2179 | 2183 |
2180 st = define_structure_type (Qface, face_validate, face_instantiate); | 2184 st = define_structure_type (Qface, face_validate, face_instantiate); |
2181 | 2185 #ifdef NEED_TO_HANDLE_21_4_CODE |
2182 define_structure_type_keyword (st, Qname, face_name_validate); | 2186 define_structure_type_keyword (st, Qname, face_name_validate); |
2187 #endif | |
2188 define_structure_type_keyword (st, Q_name, face_name_validate); | |
2183 } | 2189 } |
2184 | 2190 |
2185 void | 2191 void |
2186 vars_of_faces (void) | 2192 vars_of_faces (void) |
2187 { | 2193 { |