aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenichi Handa1999-12-15 00:09:03 +0000
committerKenichi Handa1999-12-15 00:09:03 +0000
commita90fbbf691a03c1ddd34aa4b16d988d6e9fd502f (patch)
tree9ec3aa97331269a00e09852d14fda3dcca9d0893 /src
parente19c1eb40e018a2b587a85d29ce67fdc36f5dfe9 (diff)
downloademacs-a90fbbf691a03c1ddd34aa4b16d988d6e9fd502f.tar.gz
emacs-a90fbbf691a03c1ddd34aa4b16d988d6e9fd502f.zip
(enum glyph_type): New member COMPOSITE_GLYPH.
(struct glyph): Add new sub-structure cmp to the union `u'. (enum display_element_type): New member IT_COMPOSITION. (enum prop_idx): New member COMPOSITION_PROP_IDX. (struct it): New members cmp_id, cmp_len.
Diffstat (limited to 'src')
-rw-r--r--src/dispextern.h38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/dispextern.h b/src/dispextern.h
index 80679b83459..edd9a7c97be 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -207,6 +207,9 @@ enum glyph_type
207 /* Glyph describes a character. */ 207 /* Glyph describes a character. */
208 CHAR_GLYPH, 208 CHAR_GLYPH,
209 209
210 /* Glyph describes a composition sequence. */
211 COMPOSITE_GLYPH,
212
210 /* Glyph describes an image. */ 213 /* Glyph describes an image. */
211 IMAGE_GLYPH, 214 IMAGE_GLYPH,
212 215
@@ -280,6 +283,16 @@ struct glyph
280 } 283 }
281 ch; 284 ch;
282 285
286 /* Sub-struct for composition (type == COMPOSITION_GLYPH) */
287 struct
288 {
289 /* Composition identification number. */
290 unsigned id : 21;
291
292 /* This composition's face. */
293 unsigned face_id : 11;
294 }
295 cmp;
283 /* Sub-structure for image glyphs (type == IMAGE_GLYPH). */ 296 /* Sub-structure for image glyphs (type == IMAGE_GLYPH). */
284 struct 297 struct
285 { 298 {
@@ -1175,8 +1188,8 @@ struct face
1175 int font_info_id; 1188 int font_info_id;
1176 1189
1177 /* Fontset ID if this face uses a fontset, or -1. This is only >= 0 1190 /* Fontset ID if this face uses a fontset, or -1. This is only >= 0
1178 if the face was realized for CHARSET_COMPOSITION. For all other 1191 if the face was realized for a composition sequence.
1179 charsets, a specific font is loaded from the set of fonts 1192 Otherwise, a specific font is loaded from the set of fonts
1180 specified by the fontset given by the family attribute of the face. */ 1193 specified by the fontset given by the family attribute of the face. */
1181 int fontset; 1194 int fontset;
1182 1195
@@ -1206,10 +1219,10 @@ struct face
1206 unsigned hash; 1219 unsigned hash;
1207 1220
1208 /* The charset for which this face was realized if it was realized 1221 /* The charset for which this face was realized if it was realized
1209 for use in multibyte text. If fontset >= 0, this is 1222 for use in multibyte text. If fontset >= 0, this is the charset
1210 CHARSET_COMPOSITION. A value of charset < 0 means the face was 1223 of the first character of the composition sequence. A value of
1211 realized for use in unibyte text where the idea of Emacs 1224 charset < 0 means the face was realized for use in unibyte text
1212 charsets isn't applicable. */ 1225 where the idea of Emacs charsets isn't applicable. */
1213 int charset; 1226 int charset;
1214 1227
1215 /* Non-zero if text in this face should be underlined, overlined, 1228 /* Non-zero if text in this face should be underlined, overlined,
@@ -1403,6 +1416,9 @@ enum display_element_type
1403 /* A normal character. */ 1416 /* A normal character. */
1404 IT_CHARACTER, 1417 IT_CHARACTER,
1405 1418
1419 /* A composition sequence. */
1420 IT_COMPOSITION,
1421
1406 /* An image. */ 1422 /* An image. */
1407 IT_IMAGE, 1423 IT_IMAGE,
1408 1424
@@ -1431,6 +1447,7 @@ enum prop_idx
1431 FACE_PROP_IDX, 1447 FACE_PROP_IDX,
1432 INVISIBLE_PROP_IDX, 1448 INVISIBLE_PROP_IDX,
1433 DISPLAY_PROP_IDX, 1449 DISPLAY_PROP_IDX,
1450 COMPOSITION_PROP_IDX,
1434 1451
1435 /* Not a property. Used to indicate changes in overlays. */ 1452 /* Not a property. Used to indicate changes in overlays. */
1436 OVERLAY_PROP_IDX, 1453 OVERLAY_PROP_IDX,
@@ -1596,9 +1613,16 @@ struct it
1596 /* If what == IT_CHARACTER, character and length in bytes. This is 1613 /* If what == IT_CHARACTER, character and length in bytes. This is
1597 a character from a buffer or string. It may be different from 1614 a character from a buffer or string. It may be different from
1598 the character displayed in case that 1615 the character displayed in case that
1599 unibyte_display_via_language_environment is set. */ 1616 unibyte_display_via_language_environment is set.
1617
1618 If what == IT_COMPOSITION, the first component of a composition
1619 and length in bytes of the composition. */
1600 int c, len; 1620 int c, len;
1601 1621
1622 /* If what == IT_COMPOSITION, identification number and length in
1623 chars of a composition. */
1624 int cmp_id, cmp_len;
1625
1602 /* The character to display, possibly translated to multibyte 1626 /* The character to display, possibly translated to multibyte
1603 if unibyte_display_via_language_environment is set. This 1627 if unibyte_display_via_language_environment is set. This
1604 is set after x_produce_glyphs has been called. */ 1628 is set after x_produce_glyphs has been called. */