/* Header for composite sequence handler.
- Copyright (C) 1999 Electrotechnical Laboratory, JAPAN.
- Licensed to the Free Software Foundation.
+ Copyright (C) 2001, 2002, 2003, 2004, 2005,
+ 2006 Free Software Foundation, Inc.
+ Copyright (C) 1997
+ National Institute of Advanced Industrial Science and Technology (AIST)
+ Registration Number H14PRO021
This file is part of GNU Emacs.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA. */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA. */
#ifndef EMACS_COMPOSITE_H
#define EMACS_COMPOSITE_H
#define COMPOSITION_MODIFICATION_FUNC(prop) \
(COMPOSITION_REGISTERD_P (prop) \
? XCDR (XCDR (XCDR (prop))) \
- : XCDR (prop))
+ : CONSP (prop) ? XCDR (prop) : Qnil)
/* Return the method of composition. */
#define COMPOSITION_METHOD(prop) \
/* Return 1 iff the composition is valid. It is valid if length of
the composition equals to (END - START). */
-#define COMPOSITION_VALID_P(start, end, prop) \
- (CONSP (prop) \
- && (COMPOSITION_REGISTERD_P (prop) \
- ? (COMPOSITION_ID (prop) >= 0 \
- && COMPOSITION_ID (prop) <= n_compositions \
- && CONSP (XCDR (prop))) \
- : (composition_temp = XCAR (prop), \
- (CONSP (composition_temp) \
- && (composition_temp = XCDR (composition_temp), \
- (NILP (composition_temp) || STRINGP (composition_temp) \
- || VECTORP (composition_temp) || CONSP (composition_temp))))))\
+#define COMPOSITION_VALID_P(start, end, prop) \
+ (CONSP (prop) \
+ && (COMPOSITION_REGISTERD_P (prop) \
+ ? (COMPOSITION_ID (prop) >= 0 \
+ && COMPOSITION_ID (prop) <= n_compositions \
+ && CONSP (XCDR (prop))) \
+ : (composition_temp = XCAR (prop), \
+ (CONSP (composition_temp) \
+ && (composition_temp = XCDR (composition_temp), \
+ (NILP (composition_temp) \
+ || STRINGP (composition_temp) \
+ || VECTORP (composition_temp) \
+ || INTEGERP (composition_temp) \
+ || CONSP (composition_temp)))))) \
&& (end - start) == COMPOSITION_LENGTH (prop))
/* Return the Nth glyph of composition specified by CMP. CMP is a
When a composition is assigned an ID number (by
get_composition_id), this structure is allocated for the
- composition and linked in composition_table[ID].
+ composition and linked in composition_table[ID].
Identical compositions appearing at different places have the same
ID, and thus share the same instance of this structure. */
struct composition {
- /* How many columns the overall glyphs occupy on the screen. This
- gives an approximate value for column calculation in
- Fcurrent_column, and etc. */
- unsigned char width;
-
/* Number of glyphs of the composition components. */
- unsigned char glyph_len;
+ unsigned glyph_len;
/* Width, ascent, and descent pixels of the composition. */
short pixel_width, ascent, descent;
+ /* How many columns the overall glyphs occupy on the screen. This
+ gives an approximate value for column calculation in
+ Fcurrent_column, and etc. */
+ unsigned short width;
+
/* Method of the composition. */
enum composition_method method;
extern void make_composition_value_copy P_ ((Lisp_Object));
extern void compose_region P_ ((int, int, Lisp_Object, Lisp_Object,
Lisp_Object));
-extern void syms_of_composition P_ ((void));
+extern void syms_of_composite P_ ((void));
extern void compose_text P_ ((int, int, Lisp_Object, Lisp_Object,
Lisp_Object));
#endif /* not EMACS_COMPOSITE_H */
+
+/* arch-tag: 59524d89-c645-47bd-b5e6-65e861690118
+ (do not change this comment) */