Copyright (C) 1991, 1995 Free Software Foundation, Inc.
Copyright (C) 1995 Sun Microsystems, Inc.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2011,
- 2012, 2013 MORIOKA Tomohiko
+ 2012, 2013, 2016 MORIOKA Tomohiko
This file is part of XEmacs.
#include "mule-ccl.h"
#include "chartab.h"
#endif
-#ifdef HAVE_LIBCHISE
+#ifdef USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE
#include <cos.h>
#endif
#include "file-coding.h"
CODING_SYSTEM_ISO2022_INITIAL_CHARSET (codesys, 1) = value;
else if (EQ (key, Qcharset_g2))
CODING_SYSTEM_ISO2022_INITIAL_CHARSET (codesys, 2) = value;
+ else if (EQ (key, Qcharset_g3))
+ CODING_SYSTEM_ISO2022_INITIAL_CHARSET (codesys, 3) = value;
else
signal_simple_error ("Unrecognized property", key);
}
unsigned combined_char_count;
Emchar combined_chars[16];
-#ifdef HAVE_LIBCHISE
+#ifdef USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE
COS_object combining_table;
#else
Lisp_Object combining_table;
-#endif /* HAVE_LIBCHISE */
+#endif /* USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE */
#endif
struct detection_state decst;
};
str->bom_flag = 0;
str->er_counter = 0;
str->combined_char_count = 0;
-#ifdef HAVE_LIBCHISE
+#ifdef USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE
str->combining_table = COS_NIL;
#else
str->combining_table = Qnil;
-#endif /* HAVE_LIBCHISE */
+#endif /* USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE */
#endif
if (CODING_SYSTEM_TYPE (str->codesys) == CODESYS_AUTODETECT
|| CODING_SYSTEM_EOL_TYPE (str->codesys) == EOL_AUTODETECT)
for (i = 0; i < str->combined_char_count; i++)
decode_add_er_char (str, str->combined_chars[i], dst);
str->combined_char_count = 0;
-#ifdef HAVE_LIBCHISE
+#ifdef USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE
str->combining_table = COS_NIL;
#else
str->combining_table = Qnil;
-#endif /* HAVE_LIBCHISE */
+#endif /* USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE */
}
extern CONCORD_DS concord_current_env;
+#if 0
static int
concord_setup_env_maybe ()
{
}
return 0;
}
+#endif
void COMPOSE_ADD_CHAR (struct decoding_stream *str, Emchar character,
unsigned_char_dynarr* dst);
{
if (CODING_SYSTEM_DISABLE_COMPOSITION (str->codesys))
decode_add_er_char (str, character, dst);
-#ifdef HAVE_LIBCHISE
+#ifdef USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE
else if (!cos_cons_p (str->combining_table))
{
COS_object ret;
- concord_setup_env_maybe ();
- ret = concord_object_get_feature_value (cos_make_char (character),
+ /* concord_setup_env_maybe (); */
+ open_chise_data_source_maybe ();
+ ret = concord_object_get_attribute (cos_make_char (character),
COS_COMPOSITION);
if (!cos_cons_p (ret))
decode_add_er_char (str, character, dst);
else
{
- //cos_retain_object (ret);
str->combined_chars[0] = character;
str->combined_char_count = 1;
str->combining_table = ret;
= cos_cdr (cos_assoc (cos_make_char (character),
str->combining_table));
- //cos_release_object (str->combining_table);
if (cos_char_p (ret))
{
Emchar char2 = cos_char_id (ret);
COS_object ret2;
- concord_setup_env_maybe ();
- ret2 = concord_object_get_feature_value (ret, COS_COMPOSITION);
+ /* concord_setup_env_maybe (); */
+ open_chise_data_source_maybe ();
+ ret2 = concord_object_get_attribute (ret, COS_COMPOSITION);
if (!cos_cons_p (ret2))
{
}
else
{
- //cos_retain_object (ret2);
str->combined_chars[0] = char2;
str->combined_char_count = 1;
str->combining_table = ret2;
}
else
{
- concord_setup_env_maybe ();
- ret = concord_object_get_feature_value (cos_make_char (character),
+ /* concord_setup_env_maybe (); */
+ open_chise_data_source_maybe ();
+ ret = concord_object_get_attribute (cos_make_char (character),
COS_COMPOSITION);
COMPOSE_FLUSH_CHARS (str, dst);
decode_add_er_char (str, character, dst);
else
{
- //cos_retain_object (ret);
str->combined_chars[0] = character;
str->combined_char_count = 1;
str->combining_table = ret;
}
}
}
-#endif /* HAVE_LIBCHISE */
+#endif /* USE_CONCORD_OBJECT_SYSTEM_TO_COMPOSE */
}
#else /* not UTF2000 */
#define COMPOSE_FLUSH_CHARS(str, dst)
map, Qnil,
Qnil, Qnil)) )
code_point = XINT (ret);
+ else if ( !NILP (map =
+ CODING_SYSTEM_ISO2022_INITIAL_CHARSET
+ (str->codesys, 3))
+ && INTP (ret = Fchar_feature (make_char (ch),
+ map, Qnil,
+ Qnil, Qnil)) )
+ code_point = XINT (ret);
else if (CODING_SYSTEM_USE_ENTITY_REFERENCE (str->codesys))
{
char buf[18];