comparison src/mule-charset.h @ 280:7df0dd720c89 r21-0b38

Import from CVS: tag r21-0b38
author cvs
date Mon, 13 Aug 2007 10:32:22 +0200
parents c5d627a313b1
children 70ad99077275
comparison
equal deleted inserted replaced
279:c20b2fb5bb0a 280:7df0dd720c89
450 450
451 Lisp_Object reverse_direction_charset; 451 Lisp_Object reverse_direction_charset;
452 452
453 Lisp_Object ccl_program; 453 Lisp_Object ccl_program;
454 454
455 unsigned int leading_byte :8; 455 Bufbyte leading_byte;
456
457 /* Final byte of this character set in ISO2022 designating escape sequence */
458 Bufbyte final;
456 459
457 /* Number of bytes (1 - 4) required in the internal representation 460 /* Number of bytes (1 - 4) required in the internal representation
458 for characters in this character set. This is *not* the 461 for characters in this character set. This is *not* the
459 same as the number of bytes used in the encoding (i.e. 462 same as the dimension of the character set). */
460 the "dimension" of the character set). That value can 463 unsigned int rep_bytes;
461 be derived from the TYPE. */
462 unsigned int rep_bytes :3;
463 464
464 /* Number of columns a character in this charset takes up, on TTY 465 /* Number of columns a character in this charset takes up, on TTY
465 devices. Not used for X devices. */ 466 devices. Not used for X devices. */
466 unsigned int columns :2; 467 unsigned int columns;
468
467 /* Direction of this character set */ 469 /* Direction of this character set */
468 unsigned int direction :1; 470 unsigned int direction;
469 471
470 /* Type of this character set (94, 96, 94x94, 96x96) */ 472 /* Type of this character set (94, 96, 94x94, 96x96) */
471 unsigned int type :2; 473 unsigned int type;
474
475 /* Number of bytes used in encoding of this character set (1 or 2) */
476 unsigned int dimension;
477
478 /* Number of chars in each dimension (usually 94 or 96) */
479 unsigned int chars;
472 480
473 /* Which half of font to be used to display this character set */ 481 /* Which half of font to be used to display this character set */
474 unsigned int graphic :2; 482 unsigned int graphic;
475
476 /* Final byte of this character set in ISO2022 designating escape sequence */
477 Bufbyte final;
478 }; 483 };
479 484
480 DECLARE_LRECORD (charset, struct Lisp_Charset); 485 DECLARE_LRECORD (charset, struct Lisp_Charset);
481 #define XCHARSET(x) XRECORD (x, charset, struct Lisp_Charset) 486 #define XCHARSET(x) XRECORD (x, charset, struct Lisp_Charset)
482 #define XSETCHARSET(x, p) XSETRECORD (x, p, charset) 487 #define XSETCHARSET(x, p) XSETRECORD (x, p, charset)
503 #define CHARSET_DIRECTION(cs) ((cs)->direction) 508 #define CHARSET_DIRECTION(cs) ((cs)->direction)
504 #define CHARSET_FINAL(cs) ((cs)->final) 509 #define CHARSET_FINAL(cs) ((cs)->final)
505 #define CHARSET_DOC_STRING(cs) ((cs)->doc_string) 510 #define CHARSET_DOC_STRING(cs) ((cs)->doc_string)
506 #define CHARSET_REGISTRY(cs) ((cs)->registry) 511 #define CHARSET_REGISTRY(cs) ((cs)->registry)
507 #define CHARSET_CCL_PROGRAM(cs) ((cs)->ccl_program) 512 #define CHARSET_CCL_PROGRAM(cs) ((cs)->ccl_program)
513 #define CHARSET_DIMENSION(cs) ((cs)->dimension)
514 #define CHARSET_CHARS(cs) ((cs)->chars)
508 #define CHARSET_REVERSE_DIRECTION_CHARSET(cs) ((cs)->reverse_direction_charset) 515 #define CHARSET_REVERSE_DIRECTION_CHARSET(cs) ((cs)->reverse_direction_charset)
509 516
510 /* Optimized using inside knowledge of CHARSET_TYPE values */
511 #define CHARSET_DIMENSION(cs) ((CHARSET_TYPE (cs) <= CHARSET_TYPE_96) ? 1 : 2)
512 #define CHARSET_CHARS(cs) ((CHARSET_TYPE (cs) & 0x1) ? 96 : 94)
513 517
514 #define CHARSET_PRIVATE_P(cs) LEADING_BYTE_PRIVATE_P (CHARSET_LEADING_BYTE (cs)) 518 #define CHARSET_PRIVATE_P(cs) LEADING_BYTE_PRIVATE_P (CHARSET_LEADING_BYTE (cs))
515 519
516 #define XCHARSET_ID(cs) CHARSET_ID (XCHARSET (cs)) 520 #define XCHARSET_ID(cs) CHARSET_ID (XCHARSET (cs))
517 #define XCHARSET_NAME(cs) CHARSET_NAME (XCHARSET (cs)) 521 #define XCHARSET_NAME(cs) CHARSET_NAME (XCHARSET (cs))