X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=blobdiff_plain;f=src%2Fchartab.h;h=a0c5bd6eb86a27e98a418b55c94bdab6c0836d38;hp=c2b7ccdca6f3d6b9df2f7dc6d9dd66daef4c801f;hb=8ba3626da629f1b4ecafae24c85f3d0cb3bf8b8e;hpb=3de5b114eb1c35d7909ebab314bcea1e49c68269 diff --git a/src/chartab.h b/src/chartab.h index c2b7ccd..a0c5bd6 100644 --- a/src/chartab.h +++ b/src/chartab.h @@ -1,7 +1,8 @@ /* Declarations having to do with Mule char tables. Copyright (C) 1992 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. - Copyright (C) 1999,2000,2001,2002,2003 MORIOKA Tomohiko + Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006, 2010, 2013, 2016 + MORIOKA Tomohiko This file is part of XEmacs. @@ -37,6 +38,8 @@ Boston, MA 02111-1307, USA. */ # else /* HAVE_LIBCHISE */ # include "database.h" # endif /* not HAVE_LIBCHISE */ +# define USE_CONCORD_OBJECT_SYSTEM 1 +# define USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE 1 #endif EXFUN (Fmake_char, 3); @@ -44,6 +47,8 @@ EXFUN (Fdecode_char, 4); EXFUN (Fput_char_attribute, 3); +EXFUN (Fdefine_char, 1); + EXFUN (Ffind_char, 1); extern Lisp_Object Qdowncase, Qflippedcase, Q_lowercase, Q_uppercase; @@ -54,6 +59,17 @@ extern CHISE_DS *default_chise_data_source; int open_chise_data_source_maybe (void); #endif +#if defined(UTF2000) || defined(HAVE_CONCORD) +extern Lisp_Object Q_denotational; +extern Lisp_Object Q_denotational_from; +extern Lisp_Object Q_subsumptive; +extern Lisp_Object Q_subsumptive_from; +#endif + +#ifdef HAVE_CONCORD +extern Lisp_Object Vchise_system_db_directory; +#endif + /************************************************************************/ /* Char-ID Tables */ /************************************************************************/ @@ -363,6 +379,10 @@ put_char_id_table_0 (Lisp_Char_Table* cit, Emchar code, Lisp_Object value) #ifdef HAVE_CHISE Lisp_Object load_char_attribute_maybe (Lisp_Char_Table* cit, Emchar ch); +#ifdef USE_CONCORD_OBJECT_SYSTEM +COS_object load_char_attribute_maybe_cos (Lisp_Char_Table* cit, Emchar ch); +#endif + #ifndef HAVE_LIBCHISE extern Lisp_Object Qsystem_char_id; @@ -407,6 +427,35 @@ get_char_id_table (Lisp_Char_Table* cit, Emchar ch) return val; } +#ifdef USE_CONCORD_OBJECT_SYSTEM +INLINE_HEADER Lisp_Object +get_char_id_table_ce (Lisp_Char_Table* cit, Emchar ch); +INLINE_HEADER Lisp_Object +get_char_id_table_ce (Lisp_Char_Table* cit, Emchar ch) +{ + Lisp_Object val = get_char_id_table_0 (cit, ch); + + if (EQ (val, Qunloaded)) + { +#if 0 + val = load_char_attribute_maybe (cit, ch); +#else + COS_object ret = load_char_attribute_maybe_cos (cit, ch); + if ( ret == NULL ) + return cit->default_value; + else + return ret; +#endif + } + if (UNBOUNDP (val)) + return cit->default_value; + else + return val; +} +#else +#define get_char_id_table_ce(cit, ch) get_char_id_table(cit, ch) +#endif + void decode_char_table_range (Lisp_Object range, struct chartab_range *outrange); @@ -425,6 +474,7 @@ put_char_id_table (Lisp_Char_Table* table, EXFUN (Fget_char_attribute, 3); +EXFUN (Fchar_feature, 5); #endif