X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fconcord.c;h=e3680066f42139d195a10762c384fe5640db8ca4;hb=3c4c858f69a05483db13c071cbb53eab6f63bd08;hp=6d8c212aeaeb7479e6fbb2eb82040465cf5f51fd;hpb=a2d4561e1667228109199a009446a8c72d37661b;p=chise%2Fxemacs-chise.git- diff --git a/src/concord.c b/src/concord.c index 6d8c212..e368006 100644 --- a/src/concord.c +++ b/src/concord.c @@ -1,5 +1,5 @@ /* XEmacs routines to deal with CONCORD. - Copyright (C) 2005,2006,2008 MORIOKA Tomohiko + Copyright (C) 2005,2006,2008,2010 MORIOKA Tomohiko This file is part of XEmacs. @@ -28,6 +28,9 @@ Boston, MA 02111-1307, USA. */ #include "buffer.h" #include #include +#ifdef HAVE_LIBCHISE +# include +#endif EXFUN (Fread_from_string, 3); @@ -40,6 +43,10 @@ EXFUN (Fconcord_object_get, 2); Lisp_Object Qconcord; Lisp_Object Qconcord_object; Lisp_Object Qgenre, Q_id; +#ifdef HAVE_LIBCHISE +Lisp_Object Qcharacter; +Lisp_Object Qfeature; +#endif Lisp_Object Vconcord_ds_hash_table; Lisp_Object Vconcord_genre_hash_table; @@ -519,6 +526,15 @@ Return an id of Concord-object OBJECT. return XCONCORD_OBJECT_ID (object); } +DEFUN ("concord-object-genre", Fconcord_object_genre, 1, 1, 0, /* +Return genre of Concord-object OBJECT. +*/ + (object)) +{ + CHECK_CONCORD_OBJECT (object); + return intern (concord_genre_get_name (XCONCORD_OBJECT_GENRE (object))); +} + DEFUN ("concord-decode-object", Fconcord_decode_object, 2, 4, 0, /* Make and return a Concord-object from FEATURE and VALUE. Optional argument GENRE specifies the GENRE of the object. @@ -1093,6 +1109,10 @@ syms_of_concord (void) defsymbol (&Qconcord_object, "concord-object"); defsymbol (&Qgenre, "genre"); defsymbol (&Q_id, "=id"); +#ifdef HAVE_LIBCHISE + defsymbol (&Qcharacter, "character"); + defsymbol (&Qfeature, "feature"); +#endif DEFSUBR (Fconcord_open_ds); DEFSUBR (Fconcord_ds_p); @@ -1107,6 +1127,7 @@ syms_of_concord (void) DEFSUBR (Fconcord_make_object); DEFSUBR (Fconcord_object_p); DEFSUBR (Fconcord_object_id); + DEFSUBR (Fconcord_object_genre); DEFSUBR (Fconcord_decode_object); DEFSUBR (Fconcord_object_get); DEFSUBR (Fconcord_object_put); @@ -1145,3 +1166,14 @@ vars_of_concord (void) Vconcord_genre_object_hash_table = make_lisp_hash_table (16, HASH_TABLE_NON_WEAK, HASH_TABLE_EQ); } + +void +complex_vars_of_concord (void) +{ +#ifdef HAVE_LIBCHISE + Lisp_Object dir = build_string(chise_system_db_dir); + + Fconcord_assign_genre (Qcharacter, dir); + Fconcord_assign_genre (Qfeature, dir); +#endif +}