0
|
1 /*
|
|
2 * $Id: jslib.h,v 1.5 2005/04/10 15:26:37 aonoto Exp $
|
|
3 */
|
|
4
|
|
5 /*
|
|
6 * FreeWnn is a network-extensible Kana-to-Kanji conversion system.
|
|
7 * This file is part of FreeWnn.
|
|
8 *
|
|
9 * Copyright Kyoto University Research Institute for Mathematical Sciences
|
|
10 * 1987, 1988, 1989, 1990, 1991, 1992
|
|
11 * Copyright OMRON Corporation. 1987, 1988, 1989, 1990, 1991, 1992, 1999
|
|
12 * Copyright ASTEC, Inc. 1987, 1988, 1989, 1990, 1991, 1992
|
|
13 * Copyright FreeWnn Project 1999, 2000
|
|
14 *
|
|
15 * Maintainer: FreeWnn Project <freewnn@tomo.gr.jp>
|
|
16 *
|
|
17 * This library is free software; you can redistribute it and/or
|
|
18 * modify it under the terms of the GNU Lesser General Public
|
|
19 * License as published by the Free Software Foundation; either
|
|
20 * version 2 of the License, or (at your option) any later version.
|
|
21 *
|
|
22 * This library is distributed in the hope that it will be useful,
|
|
23 * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
24 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
25 * Lesser General Public License for more details.
|
|
26 *
|
|
27 * You should have received a copy of the GNU Lesser General Public
|
|
28 * License along with this library; if not, write to the
|
|
29 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
30 * Boston, MA 02111-1307, USA.
|
|
31 */
|
|
32
|
|
33 /*
|
|
34 * Nihongo Henkan Library Header File
|
|
35 */
|
|
36
|
|
37 #ifndef WNN_JSLIB_H
|
|
38 #define WNN_JSLIB_H
|
|
39
|
|
40 #ifndef _WNN_SETJMP
|
|
41 #define _WNN_SETJMP
|
|
42 #include <setjmp.h>
|
|
43 #endif
|
|
44
|
|
45 #define JLIB_VERSION 0x4003
|
|
46
|
|
47 #ifndef w_char
|
|
48 #define w_char unsigned short
|
|
49 #endif /* w_char */
|
|
50
|
|
51 /* 前端ベクタ(品詞番号)の定義 */
|
|
52 #define WNN_BUN_SENTOU -1 /* 大文節の先頭になれる奴 */
|
|
53 #define WNN_ALL_HINSI -2 /* なんでもええよ */
|
|
54 /* 終端ベクタの定義 */
|
|
55 #define WNN_VECT_KANREN 0 /* 連文節変換の終端ベクター */
|
|
56 #define WNN_VECT_KANTAN 1 /* 単文節変換の終端ベクター */
|
|
57 #define WNN_VECT_KANZEN 1 /* 全候補取出しの終端ベクター
|
|
58 単文節変換時のものと等しい。 */
|
|
59 #define WNN_VECT_BUNSETSU 2 /* 連文節変換時の、各文節の終端ベクター */
|
|
60 #define WNN_VECT_NO -1 /* 終端ベクタ1 無し */
|
|
61 /* 文節の終端の接続情報 */
|
|
62 #define WNN_CONNECT_BK 1 /* 指定された終端ベクターに接続できた。 */
|
|
63 #define WNN_NOT_CONNECT_BK 0 /* */
|
|
64 /* 文節の前端の接続情報 */
|
|
65 #define WNN_CONNECT 1 /* 指定された(品詞、付属語)に接続できた。 */
|
|
66 #define WNN_SENTOU 2 /* 大文節の先頭 */
|
|
67 #define WNN_NOT_CONNECT 3 /* 先頭になれないし、前に接続できない */
|
|
68 #define WNN_GIJI 4 /* 疑似文節を作った。 */
|
|
69
|
|
70 /* 疑似文節の直前に選択した候補 */
|
|
71 #define WNN_HIRAGANA -1 /* ひらがな */ /* 読みのまま */
|
|
72 #define WNN_KATAKANA -11 /* カタカナ */
|
|
73 /* 数字 */
|
|
74 #define WNN_NUM_HAN -2 /* 半角数字 */ /* 読みのまま */
|
|
75 #define WNN_NUM_ZEN -12 /* 全角数字 */ /* 123 */
|
|
76 #define WNN_NUM_KAN -13 /* 漢数字 */ /* 一二三 */
|
|
77 #define WNN_NUM_KANSUUJI -15 /* 漢数字 */ /* 百二十三 */
|
|
78 #define WNN_NUM_KANOLD -16 /* 漢数字 */ /* 壱百弐拾参 */
|
|
79 #define WNN_NUM_HANCAN -17 /* 半角数字 */ /* 1,234 */
|
|
80 #define WNN_NUM_ZENCAN -18 /* 全角数字 */ /* 1,234 */
|
|
81 /* 英数 */
|
|
82 #define WNN_ALP_HAN -4 /* 半角 */ /* 読みのまま */
|
|
83 #define WNN_ALP_ZEN -30 /* 全角 */
|
|
84 /* 記号 */
|
|
85 #define WNN_KIG_HAN -5 /* 半角 */ /* 読みのまま */
|
|
86 #define WNN_KIG_JIS -40 /* 全角(JIS) */
|
|
87 #define WNN_KIG_ASC -41 /* 全角(ASC) */
|
|
88
|
|
89 #define WNN_FT_DICT_FILE 1
|
|
90 #define WNN_FT_HINDO_FILE 2
|
|
91 #define WNN_FT_FUZOKUGO_FILE 3
|
|
92
|
|
93 #define WNN_STATIC_DICT 1 /* static dict */
|
|
94 #define WNN_UD_DICT 2 /* updatable dict */
|
|
95 #define WNN_REV_DICT 3 /* Updatable Dictonary with Reverse Index */
|
|
96 #define WNN_REG_DICT 4 /* Regular Expressino Dictonary */
|
|
97
|
|
98 /* for CHINESE PIN-IN : with Si Sheng (四声) */
|
|
99 #define CWNN_REV_DICT 0x103 /* Updatable with Reverse Index */
|
|
100
|
|
101 /* for CHINESE: Bi Xing (筆形) */
|
|
102 #define BWNN_REV_DICT 0x203 /* Updatable with Reverse Index */
|
|
103
|
|
104 #define WNN_DIC_RDONLY 1
|
|
105 #define WNN_DIC_RW 0
|
|
106
|
|
107 #define WNN_DIC_ADD_REV 1 /* 逆変換 */
|
|
108 #define WNN_DIC_ADD_NOR 0 /* 通常の変換 */
|
|
109
|
|
110 /* header file for dic_syurui */
|
|
111 #define WNN_FILE_NOT_EXIST -1
|
|
112 #define WNN_NOT_A_JISHO 0
|
|
113 /* KURI
|
|
114 #define WNN_USER_DIC 1
|
|
115 #define WNN_SYSTEM_DIC 3
|
|
116 */
|
|
117 #define WNN_HINDO_FILE 4
|
|
118 #define WNN_FUZOKUGO_FILE 5
|
|
119
|
|
120 /* set_hindo operation */
|
|
121 #define WNN_HINDO_NOP -2
|
|
122 #define WNN_IMA_ON -3
|
|
123 #define WNN_IMA_OFF -4
|
|
124 #define WNN_HINDO_INC -3
|
|
125 #define WNN_HINDO_DECL -4
|
|
126 #define WNN_ENTRY_NO_USE -1
|
|
127
|
|
128 /* Wnn constant
|
|
129 */
|
|
130 #define WNN_HOSTLEN 16
|
|
131 #define WNN_ENVNAME_LEN 32
|
|
132
|
|
133 /* js_who */
|
|
134 #define WNN_MAX_ENV_OF_A_CLIENT 32
|
|
135
|
|
136 struct wnn_jwho
|
|
137 {
|
|
138 int sd; /* jserver 内のソケットディスクリプタ */
|
|
139 char user_name[64]; /* ユーザ名 */
|
|
140 char host_name[64]; /* ホスト名 */
|
|
141 int env[WNN_MAX_ENV_OF_A_CLIENT]; /* このクライアントが使用している
|
|
142 環境番号の列。空いているところには、-1 が入る */
|
|
143 };
|
|
144 typedef struct wnn_jwho WNN_JWHO;
|
|
145
|
|
146 /* js_env_list */
|
|
147 #define WNN_MAX_JISHO_OF_AN_ENV 30
|
|
148 #define WNN_MAX_FILE_OF_AN_ENV 60
|
|
149
|
|
150 struct wnn_env_info
|
|
151 {
|
|
152 int env_id; /* 環境番号 */
|
|
153 char env_name[WNN_ENVNAME_LEN]; /* 環境名 */
|
|
154 int ref_count; /* 参照数 */
|
|
155 /* struct wnn_param; */
|
|
156 int fzk_fid; /* 付属語のファイル番号 */
|
|
157 int jishomax; /* 使用している辞書の個数 */
|
|
158 int jisho[WNN_MAX_JISHO_OF_AN_ENV]; /* 使用している辞書の辞書番号。
|
|
159 最初のjishomax個だけ意味がある */
|
|
160 int file[WNN_MAX_FILE_OF_AN_ENV]; /* この環境につながっている
|
|
161 ファイル番号(空いているところには、-1 が入る) */
|
|
162 };
|
|
163 typedef struct wnn_env_info WNN_ENV_INFO;
|
|
164
|
|
165 #define WNN_COMMENT_LEN 512 /* jisho no comment no nagasa */
|
|
166 #define WNN_F_NAMELEN 100
|
|
167 #define WNN_PASSWD_LEN 16 /* File Passwd Length */
|
|
168
|
|
169
|
|
170 struct wnn_dic_info
|
|
171 {
|
|
172 int dic_no; /* 辞書番号 */
|
|
173 int body; /* 辞書本体のファイル番号 */
|
|
174 int hindo; /* 頻度のファイル番号 */
|
|
175 int rw; /* 辞書が登録可能かどうか
|
|
176 (WNN_DIC_RW, WNN_DIC_RDONLY) */
|
|
177 int hindo_rw; /* 頻度が更新可能かどうか
|
|
178 (WNN_DIC_RW, WNN_DIC_RDONLY) */
|
|
179 int enablef; /* 辞書が使用中かどうか
|
|
180 (1 = 使用中, 0 = 使用中断) */
|
|
181 int nice; /* 辞書の変換時の優先度 */
|
|
182 int rev; /* 逆変換か、どうか(1 = 逆変換, 0 = 正変換) */
|
|
183 /* added H.T */
|
|
184 w_char comment[WNN_COMMENT_LEN]; /* 辞書のコメント */
|
|
185 char fname[WNN_F_NAMELEN]; /* 辞書のファイル名 */
|
|
186 char hfname[WNN_F_NAMELEN]; /* 頻度のファイル名 */
|
|
187 char passwd[WNN_PASSWD_LEN]; /* 辞書のパスワード */
|
|
188 char hpasswd[WNN_PASSWD_LEN]; /* 頻度のパスワード */
|
|
189 int type; /* 辞書の種類(WNN_UD_DICT,WNN_STATIC_DICT) */
|
|
190 int gosuu; /* 辞書の語数 */
|
|
191 int localf;
|
|
192 int hlocalf;
|
|
193 };
|
|
194
|
|
195 typedef struct wnn_dic_info WNN_DIC_INFO;
|
|
196
|
|
197 struct wnn_file_stat
|
|
198 {
|
|
199 int type; /* ファイルの種類
|
|
200 WNN_STATIC_DICT 固定形式辞書
|
|
201 WNN_UD_DICT 登録可能形式辞書
|
|
202 WNN_HINDO_FILE 頻度ファイル
|
|
203 WNN_FUZOKUGO_FILE 付属語ファイル
|
|
204 WNN_NOT_A_JISHO その他 */
|
|
205 };
|
|
206
|
|
207 typedef struct wnn_file_stat WNN_FILE_STAT;
|
|
208
|
|
209 /* */
|
|
210 extern int wnn_errorno; /* Wnnのエラーはこの変数に報告される */
|
|
211
|
|
212 extern char *wnn_dic_types[]; /* "固定","登録","逆変換","正規" */
|
|
213
|
|
214 extern char *cwnn_dic_types[]; /* "固定","登録","逆変換","正規" */
|
|
215 extern char *bwnn_dic_types[]; /* "固定","登録","逆変換","正規" */
|
|
216
|
|
217 #define FILE_ALREADY_READ -2
|
|
218
|
|
219 /* この構造体は、ライブラリ内部で用いられる */
|
|
220 struct wnn_jserver_id
|
|
221 {
|
|
222 int sd;
|
|
223 char js_name[40];
|
|
224 int js_dead;
|
|
225 jmp_buf js_dead_env; /* サーバが死んだ時に飛んでいくenv */
|
|
226 int js_dead_env_flg; /* jd_server_dead_envが有効か否か */
|
|
227 };
|
|
228
|
|
229 typedef struct wnn_jserver_id WNN_JSERVER_ID;
|
|
230
|
|
231 /* この構造体は、ライブラリ内部で用いられる */
|
|
232 struct wnn_env
|
|
233 {
|
|
234 int env_id;
|
|
235 WNN_JSERVER_ID *js_id;
|
|
236 char lang[16]; /* for exsample "ja_JP" */
|
|
237 };
|
|
238
|
|
239 typedef struct wnn_env WNN_ENV;
|
|
240
|
|
241 struct wnn_param
|
|
242 {
|
|
243 int n; /* N(大)文節解析のN */
|
|
244 int nsho; /* 大文節中の小文節の最大数 */
|
|
245 int p1; /* 自立語の頻度のパラメータ */
|
|
246 int p2; /* 小文節長のパラメータ */
|
|
247 int p3; /* 自立語長のパラメータ */
|
|
248 int p4; /* 今使ったよビットのパラメータ */
|
|
249 int p5; /* 辞書のパラメータ */
|
|
250 int p6; /* 小文節の評価値のパラメータ */
|
|
251 int p7; /* 大文節長のパラメータ */
|
|
252 int p8; /* 小文節数のパラメータ */
|
|
253 int p9; /* 疑似品詞 数字の頻度 */
|
|
254 int p10; /* 疑似品詞 カナの頻度 *//* CWNN:英数の頻度 */
|
|
255 int p11; /* 疑似品詞 英数の頻度 *//* CWNN:記号の頻度 */
|
|
256 int p12; /* 疑似品詞 記号の頻度 *//* CWNN:開括弧の頻度 */
|
|
257 int p13; /* 疑似品詞 閉括弧の頻度 *//* CWNN:閉括弧の頻度 */
|
|
258 int p14; /* 疑似品詞 付属語の頻度 *//* BWNN:No of koho */
|
|
259 int p15; /* 疑似品詞 開括弧の頻度 *//* CWNN:Not used */
|
|
260 };
|
|
261
|
|
262 #ifdef nodef
|
|
263 struct wnn_dic_info_struct
|
|
264 {
|
|
265 int body_fid;
|
|
266 int hindo_fid;
|
|
267 int enablef;
|
|
268 int rw;
|
|
269 int hindo_rw;
|
|
270 int nice;
|
|
271 };
|
|
272
|
|
273 typedef struct wnn_dic_info_struct WNN_DIC_INFO_STRUCT;
|
|
274 #endif
|
|
275
|
|
276 struct wnn_file_info_struct
|
|
277 {
|
|
278 int fid; /* ファイル番号 */
|
|
279 char name[WNN_F_NAMELEN]; /* ファイル名 */
|
|
280 int localf; /* サーバ・サイトのファイルかどうか
|
|
281 1: サーバ・サイト
|
|
282 0: クライアント・サイト */
|
|
283 int type; /* ファイルの種類 */
|
|
284 int ref_count; /* (環境からの)参照数 */
|
|
285 };
|
|
286
|
|
287 typedef struct wnn_file_info_struct WNN_FILE_INFO_STRUCT;
|
|
288
|
|
289 #define WNN_VECT_L ((256+8*4-1)/(8*4) + 5) /***** !!!!! ****/
|
|
290
|
|
291 struct wnn_sho_bunsetsu
|
|
292 {
|
|
293 int end; /* 候補文節の end char index */
|
|
294 int start; /* 候補文節の top char index */
|
|
295 int jiriend; /* 候補文節の自立語 end char index */
|
|
296 int dic_no; /* 自立語の辞書内のエントリ番号 */
|
|
297 int entry; /* 候補文節の自立語辞書 entry */
|
|
298
|
|
299 int hinsi; /* 自立語品詞 */
|
|
300 int status; /* 大文節の先頭か */
|
|
301 int status_bkwd; /* usiro の文節に接続できるか */
|
|
302 int hindo; /* 候補自立語の頻度 */
|
|
303 int ima; /* 候補自立語の今使ったよビット */
|
|
304 int kangovect; /* 接続ベクトルテーブルへのポインタ */
|
|
305 int hyoka; /* 小文節評価値 */
|
|
306 w_char *kanji; /* 自立語文字列 */
|
|
307 w_char *yomi; /* 自立語の読み文字列 */
|
|
308 w_char *fuzoku; /* 付属語文字列 */
|
|
309 /*
|
|
310 *頻度については、頻度ファイルが指定されている時は、
|
|
311 *hindo = 頻度ファイルの(実)頻度値 + 辞書内の(実)頻度値
|
|
312 *ima = 頻度ファイルの今使ったよビット
|
|
313 *
|
|
314 *頻度ファイルが指定されていない時には、
|
|
315 *hindo = 辞書内の(実)頻度値、ima = 辞書内の今使ったよビット
|
|
316 *である。ここで、実頻度値とは、計算機内で7ビットに圧縮された値である。
|
|
317 *仮想頻度値ではなく実頻度値を返すのは、変換結果のデバッグのためである。
|
|
318 */
|
|
319 };
|
|
320
|
|
321 struct wnn_dai_bunsetsu
|
|
322 {
|
|
323 int end; /* 候補文節の end char index */
|
|
324 int start; /* 候補文節の top char index */
|
|
325 struct wnn_sho_bunsetsu *sbn; /* 小文節解析結果へのポインタ */
|
|
326 int hyoka; /* 大文節評価値 */
|
|
327 int sbncnt; /* 小文節数 (次候補の場合は、次候補数)
|
|
328 DSD_SBNは、*sbn から sbncnt だけある */
|
|
329 };
|
|
330
|
|
331 struct wnn_jdata
|
|
332 {
|
|
333 int dic_no; /* 辞書番号 */
|
|
334 int serial; /* 辞書内のエントリ番号 */
|
|
335 int hinshi; /* 品詞番号(品詞番号と品詞名の対応は、manual/etc
|
|
336 の下を参照) */
|
|
337 int hindo; /* 頻度 */
|
|
338 int ima; /* 今使ったよビット */
|
|
339 int int_hindo; /* 辞書内頻度 */
|
|
340 int int_ima; /* 辞書内、今使ったよビット */
|
|
341 w_char *yomi; /* 読みの文字列 */
|
|
342 w_char *kanji; /* 漢字文字列 */
|
|
343 w_char *com; /* エントリのコメント文字列 */
|
|
344 /*
|
|
345 *頻度については、頻度ファイルが指定されている時は、
|
|
346 *hindo = 頻度ファイルの(仮想)頻度値、ima = 頻度ファイルの今使ったよビット
|
|
347 *int_hindo = 辞書内の(仮想)頻度値、int_ima = 辞書内の今使ったよビット
|
|
348 *
|
|
349 *頻度ファイルが指定されていない時には、
|
|
350 *hindo = 辞書内の(仮想)頻度値、ima = 辞書内の今使ったよビット
|
|
351 *int_hindo = -1、int_ima = -1
|
|
352 *
|
|
353 *ただし、どちらの場合でも、エントリが使用中止の状態の時には、
|
|
354 *hindo = -1, ima = 0 あるいは、
|
|
355 *int_hindo = -1, int_ima = 0 となる。
|
|
356 *ここで、(仮想)頻度値とは、計算機内で7ビットに圧縮された頻度値から、
|
|
357 *実際の値を想定した値である。
|
|
358 */
|
|
359 };
|
|
360
|
|
361 struct wnn_ret_buf
|
|
362 {
|
|
363 int size; /* buf から alloc されている大きさ */
|
|
364 char *buf; /* malloc などでとられた領域 */
|
|
365 };
|
|
366
|
|
367
|
|
368 #define WNN_F_UNIQ_LEN (sizeof(struct wnn_file_uniq))
|
|
369
|
|
370 /* この構造体は、ライブラリ内部で用いられる */
|
|
371 struct wnn_file_head
|
|
372 {
|
|
373 struct wnn_file_uniq
|
|
374 {
|
|
375 int time;
|
|
376 int dev;
|
|
377 int inode;
|
|
378 char createhost[WNN_HOSTLEN];
|
|
379 }
|
|
380 file_uniq;
|
|
381 struct wnn_file_uniq file_uniq_org;
|
|
382 int file_type;
|
|
383 char file_passwd[WNN_PASSWD_LEN];
|
|
384 };
|
|
385
|
|
386 #define WNN_HINSI_NAME_LEN 64
|
|
387
|
|
388 #define WNN_FILE_HEADER_LEN (WNN_PASSWD_LEN + 8 + WNN_FILE_STRING_LEN + \
|
|
389 sizeof(struct wnn_file_uniq) * 2 + 4)
|
|
390 /*
|
|
391 8 is for future use
|
|
392 4 is for file_type.
|
|
393 */
|
|
394
|
|
395 #ifndef JSERVER
|
|
396 /*
|
|
397 JSLIB function declaration
|
|
398 */
|
|
399 #define js_open(server, timeout) js_open_lang(server, "ja_JP", timeout)
|
|
400 #define js_connect(server,env_name) js_connect_lang(server, env_name, "ja_JP")
|
|
401
|
|
402 extern WNN_JSERVER_ID *js_open_lang ();
|
|
403 extern int js_close ();
|
|
404 extern WNN_JSERVER_ID *js_change_current_jserver ();
|
|
405 extern struct wnn_env *js_connect_lang ();
|
|
406 extern int js_disconnect ();
|
|
407 extern int js_env_list ();
|
|
408 extern int js_param_set ();
|
|
409 extern int js_param_get ();
|
|
410 extern char *js_get_lang ();
|
|
411 /**************************************/
|
|
412 extern int js_access ();
|
|
413 extern int js_dic_add ();
|
|
414 extern int js_dic_delete ();
|
|
415 extern int js_dic_file_create ();
|
|
416 extern int js_dic_file_create_client ();
|
|
417 extern int js_dic_info ();
|
|
418 extern int js_dic_list ();
|
|
419 extern int js_dic_list_all ();
|
|
420 extern int js_dic_use ();
|
|
421 extern int js_env_exist ();
|
|
422 extern int js_env_sticky ();
|
|
423 extern int js_env_un_sticky ();
|
|
424 extern int js_file_comment_set ();
|
|
425 extern int js_file_discard ();
|
|
426 extern int js_file_info ();
|
|
427 extern int js_file_list ();
|
|
428 extern int js_file_list_all ();
|
|
429 extern int js_file_loaded ();
|
|
430 extern int js_file_loaded_local ();
|
|
431 extern int js_file_password_set ();
|
|
432 extern int js_file_read ();
|
|
433 extern int js_file_receive ();
|
|
434 extern int js_file_remove ();
|
|
435 extern int js_file_remove_client ();
|
|
436 extern int js_file_send ();
|
|
437 extern int js_file_stat ();
|
|
438 extern int js_file_write ();
|
|
439 extern void js_flush ();
|
|
440 extern int js_fuzokugo_get ();
|
|
441 extern int js_fuzokugo_set ();
|
|
442 extern int js_hindo_file_create ();
|
|
443 extern int js_hindo_file_create_client ();
|
|
444 extern int js_hindo_set ();
|
|
445 extern int js_hinsi_dicts ();
|
|
446 extern int js_hinsi_list ();
|
|
447 extern int js_hinsi_name ();
|
|
448 extern int js_hinsi_number ();
|
|
449 extern int js_hinsi_table_set ();
|
|
450 extern int js_isconnect ();
|
|
451 extern int js_kanren ();
|
|
452 extern int js_kantan_dai ();
|
|
453 extern int js_kantan_sho ();
|
|
454 extern int js_kanzen_dai ();
|
|
455 extern int js_kanzen_sho ();
|
|
456 extern int js_kill ();
|
|
457 extern int js_mkdir ();
|
|
458 extern int js_version ();
|
|
459 extern int js_who ();
|
|
460 extern int js_word_add ();
|
|
461 extern int js_word_comment_set ();
|
|
462 extern int js_word_delete ();
|
|
463 extern int js_word_info ();
|
|
464 extern int js_word_search ();
|
|
465 extern int js_word_search_by_env ();
|
|
466
|
|
467 #endif
|
|
468 #endif /* WNN_JSLIB_H */
|