update.
[chise/concord.git] / symbol.c
index bf6f2ce..96d1fee 100644 (file)
--- a/symbol.c
+++ b/symbol.c
@@ -53,6 +53,20 @@ COS_Symbol_ent cos_symbol_ent_t = { {COS_OBJECT_PREFIX_OBJECT,
 COS_Symbol cos_Qt = &cos_symbol_ent_t;
 
 
+COS_String_ent cos_string_ent_composition = { {COS_OBJECT_PREFIX_OBJECT,
+                                              COS_Object_Type_String,
+                                              1},
+                                             3, "composition"};
+
+COS_Symbol_ent cos_symbol_ent_composition = { {COS_OBJECT_PREFIX_OBJECT,
+                                              COS_Object_Type_Symbol,
+                                              1},
+                                             &cos_string_ent_composition,
+                                             NULL};
+
+COS_Symbol cos_Qcomposition = &cos_symbol_ent_composition;
+
+
 COS_Symbol_Table cos_default_symbol_table = NULL;
 
 
@@ -84,6 +98,10 @@ cos_release_symbol (COS_Object obj)
   if (obj == NULL)
     return 0;
 
+  if ( (obj == cos_Qnil) || (obj == cos_Qt) ||
+       (obj == cos_Qcomposition) )
+    return 0;
+
   if ( ((COS_Symbol)obj)->value != NULL)
     cos_release_object (((COS_Symbol)obj)->value);
 
@@ -247,6 +265,7 @@ cos_intern (COS_object name)
       cos_default_symbol_table = cos_make_symbol_table();
       cos_symbol_table_set (cos_default_symbol_table, cos_Qnil);
       cos_symbol_table_set (cos_default_symbol_table, cos_Qt);
+      cos_symbol_table_set (cos_default_symbol_table, cos_Qcomposition);
     }
   return cos_symbol_table_intern (cos_default_symbol_table, name);
 }