
	ף  ֣ ˤĤ



ףΥС󣴤ˤĤơС󣳤ѹ濴ˤޤȤ
ޤС󣴡ˤĤƽҤ٤ޤ줫ΥС
󥢥åפǤɤΤ褦ʤȤײ褵Ƥ뤫ȤäȤҤ٤ޤ

ѹϡˡΣĤΰʬޤ

(1) Ѵ  
(2)   
(3) 饤֥  
(4) ץꥱ

(1) Ѵ르ꥺβɤϡΥС󡦥åפ濴Ǥ
ޤǡףǤϡƬ졢졢ʤɤФޤ
ȤŦƤޤ褹뤿ˡΥСǤϡ
ʸȤǰƳƬ졢졢ʤɤΤȤʤʸ
碌ưĤʸȤߤʤѴԤʤޤˤĤƤϡǾ
Ҥ٤ޤ

(2) ˴ؤƤϡʲˤĤѹޤ
    ɤߤˡ2 Хȥɤ 
    Ωʻμ䤹
    桼ƥࡦδ֤κñϿǽɤ
α롣(ȼ̾⡢ϿǽȤ롣)
    ե롢٥ե˥ѥɤߤˤꡢ
٤ιǽʿͤ¤롣ˤꡢ礭ˤʤ
СϿǽΤߤѤƼδԤʤ褦ˤ롣
    atou, atos, utoa, stoa Ȥޥɤatod (ƥ to )
dtoa ( to ƥ) ˤޤȤᡢϿǽ򡢥ץ
ǹԤʤ
    Ѵѹȼѹ°եˤ廊롣
    °ե򥯥饤˻ꤹ뤳Ȥǽˤ롣    
     upload, download εǽä롣

(3) ޤǤΥ饤֥ϡǥ饤ȤѴξ֤򵭲
ƤΤǡϢʸѴ򤹤ס֤ʸμסʸ
ڤڤľѴԤʤס٤ιԤʤפȤäץ
ƥ֤ԽԤʤäƤޤϡѴήĸꤷ
Ƥ뤿ĥ˳ȻפޤºݤˡĤΥץꥱ
Ǥϡ󶡤ƤʳԤʤˡΥץߥƥ֤ξ
˿饤֥ȼ˺äơѤƤޤ
Ƥץߥƥ֤ĤѴήꤷŪⵡǽʤΤ
ʾ塢ɤƤ̵Ƥޤºݡ٤ιΤ˹Ԥʤ
ʤʤɤξ㳲ФƤƤޤ

ǡ
  򡢤ץߥƥ֤Ǥ롢ɤߤȤʤʸ
ФϢʸѴԤʤ֤סɤߤȤʤʸФñ
ʸѴԤʤ֤סɤߤȤʤʸФñʸѴ
ԤʤƤθ֤ס֤뼭񥨥ȥͤ򤢤ͤ˥å
פȤäʬ٥롦饤֥Ȥ󶡤롣
  ⵡǽϡ٥롦饤֥Ȥơ٥롦饤֥
Ѥƹå饤֥η󶡤롣Υ饤֥Ȱۤʤ
Ԥʤϡ٥롦饤֥ѤƼʬǥ饤֥
뤳Ȥǽˤ롣
Ȥˤǡ饤֥߷פ뤳Ȥˤޤ

  ޤѴѤ뼭񥻥åȡ°켭񡢥ѥ᡼ʤɤϡ
饤ȤȤ˻ĤΤǤϤʤˡִĶפȤΤߤ
ФԤʤȤˤꡢĤΥ饤ȤʣδĶ
ꡢĤδĶʣΥ饤ȤѤꤹ뤳Ȥǽˤޤ


  ѹˤꡢˡ饤ȤѴξ֡ξ
֤ʤɤɬפʤʤꡢФơȥ쥹ˤʤޤ

Ѵ르ꥺѹˤȤʤ饤֥֤ι¤ϡV3 
ʤۤʤäƤޤޤơ٥롢٥롦饤֥
ѤˤĤơˤդޤ

(4) ץꥱ
  ߤޤǤϡȯ¦Ѱդ륢ץꥱϡեȥɡ
åwnn ΤߤǤϡwnn СѤ˽񤭴 uum 
˲äơgmw ɥƥ椫顢ľܣףεǽѤ뤿
Σ Wnn 󥿡եӡѤ̾Ѵǽ
դΥȥ󥰡եʤ(ΥƥϡΤ WoG ȸƤФ
Ƥ)󶡤ޤuum ϡΥСǰΤΤ󶡤ޤ
WoG ϡ⤦ꤽǤ(ưΤϽƤ롣)



Ѵ르ꥺ

V4 Ѵ르ꥺϡV3 ξƱʸκǸ夫˸
ʸڤФȤܤȤʤޤκݡV3 ǤϡʸȤ


	ʸ := Ω + °Ϣ
	°Ϣ := °*
	(Ω°졢°°³
	ʸǺǸθϡʻν(ʸκǸ
	뤳ȤΤǤʻν)°Ƥ롣)


ȤƤޤǡΩϡեΥȥ
ꡢ줾μΩϡɤߡʬʻ졢Ѵʸ󡢤٤
äƤޤޤ°ϡ°եΥȥǤꡢɤߡ
ʬʻ졢ˤʻν(³٥ȥȸƤФ)äƤ
ޤ°ɤ³طӡ°ȼΩ³طϡ
³٥ȥˤäƥåޤ°줬äƤʤȤ
դƲ°줬äƤʤȤˤꡢ°Ϣɤ
褦ʻ°줫鹽Ƥ뤫ȤʤƤΤǡ
ʰפǡ®Ѵ르ꥺ¸뤳ȤǤΤǤ

  V3 βϤǤϡƬννϹԤʤäƤޤǤ
θϡΩȤưʸ뤳ȤˤƤ
Ƭ򤳤Τ褦˰ʸȤƼ갷äƤΤǤϡ
Ѵ¿ʤ뤳Ȥ򤱤ޤ㤨С̾ˤĤ֤פ
ֻפɾͤ⤤ˡ֤Ф䤷פѴȡ־ӻ
ȤʤȤäѴޤ⤷־ӡפ̾ǡ̾ˤϡֻ
֤פͥŪդȤ󤬤СμθѴϾʤ
뤳ȤǽȹͤޤΤ褦ʸѴ򾯤ʤˤϡʸ
ĥ뤫뤤ϸߤˡ򾯤ĥʸ֤ΤĤʤ
򸫤ˡȤ뤳ȤͤޤWnn Ver.4ǺѤˡϡξԤ
ƤȸΤǤ

  Wnn Ver.4Ǥϡʸפȡ־ʸפȸƤФ롢ĤΥ٥ʸ
ͤޤ־ʸפϡVer.3ˤʸפƱǤ
ꡢʸפϡʸǡ³Τޤ

ǡΩ졢°ȸƤФƤΤϡ桹ľŪ˼Ω졢°
Ȥ򤷤褿ΤȰۤʤޤǤϤ̾
ήѤˤޤ

	 	:= Ω | °
	ʸ 	:= Ω + °Ϣ    
	ʸ 	:= ʸ+              
	°Ϣ := °*

(ʸǡΩ°졢°°³
ʸǺǸθϡξʸμΩ³Ǹξʸ
κǸθϡʻν(ʸκǸ뤳ȤΤǤ
ν)°Ƥ롣ǽξʸμΩϡʻν
(ʸƬˤʤʻν)°Ƥ롣)


() ʸᡢʸ

     			 ʸ
--  --  ---- 			-- ------
       			      
------------			---------
    				    	


	            र餤	
	   --    ------     --------------
	   |	    |	     	|	
	   |        |      (+°)
	          |     
	(Ƭ) ()
	         
		
		     
		-- ----    ------
		   	      
		------	   ------
		  	     


ʸƱΤ³ϡǽҤ٤褦ˡξʸμΩξʸ
κǸθδ֤³ȤͿޤξϡ줾μΩ
äƤƤϾ̤礭᤮ΤǡΩʻ줴Ȥʻü٥ȥ
ȤƻĤΤȤޤΩʻü٥ȥϡǤϤʤ°
եͿޤϡ줾μ˸ͭʤΤǤϤʤ°
֤³ȶ˻ꤵ٤ΤǤΰ̣ǡ°ե
Ȥ̾Ŭڤǡ³եȤǤ̾Ѥ٤⤷
ޤ󤬡°եפΤۤߤäơ°ե
ꤹ饤֥ؿ̾Ǥ⡢set_fuzoku Ȥ̾狼䤹Τǡ
̾³ȤΤȤޤλľˤĤƤϡŪ 
Ver 3 ѤäƤޤ

ɤ줬ʸˤʤ뤫ϡ°եˤޤ˵󤲤ϡ
ȤäƤ°եˤΤǤǸФơĤʸ
ˤʤäߤ˾ͤ⤤Ǥ礦줫⡢ΤѴ
ܻؤơ°եƤϽ񤭴ƤǤ礦

ΩʻˤĤƤϡ³°ꤹȤȡ³
ʸꤹȤͤƤޤǤȤȤˤ
ƵޤѤ뤳ȤϤʤǤ礦...

  ޤǤΡʸפΤϡΡʸפǤ˽ä
ʸڤФϡŪˤϡVer.3 ƱͤԤʤޤ
ʤʸ n ڤФƤơɾͤ¤ʤΤ
ǸʸꤹȤưʸüޤǷ֤Τ
ޤʸɾͤ׻ƤȤʸפɾͤ׻
뤳ȤˤʤΤǤѥ᡼οϡ֣.3 ꤺä¿ʤꡢ
ѥ᡼빽ѤǡͶȬ줷Ƥޤѥ᡼
ǡʤɤѴ줽Ǥ
(̣Τϡѥ᡼򤤤äͷǲ)

ȡѴ˴ؤơ٤ѤäƤޤΤʤǤ
ФѴ򤤤Ǥ

ȤС2456פѴȡ2456 ֤äƤơȤơ

	2456    ͸ϻ  ɴ޽ϻ  
	2,456  སϻ

֤äƤޤǡɴ޽ϻ 򤹤ȡ 123 ʤɤο
Ѵˡɴ󽽻 ֤äƤȤˡɤηǰ
򤵤줿Ū˵Ƥޤޤʸ⡢a Ѵ 
 ֤äƤȤˡȾѡѴ֤Ѵ򥵥ݡȤƤޤ

(򤵤줿ͤΥåȤϡͤΥ饤֥ǹԤʤޤ)

ޤpubdic °եǤϡ(ߤΤȤ)ƱΤĤʤ
ʸ褦ˤʤäƤޤǤ顢֤夦ˡפѴȡ
ָ޽פȤʸˤʤޤ




  ޤǤϡˡɤߤȤƵʸλ郎ʤ¤Ƥ
ǡɤߤǤդΣХȥɤ褦ˤС̾
βǽФƤޤ̾ѴϡȤ߹碌Сʸ
Ρּưɤߤפ˱ѤǤޤޤեꥬʤĤꡢʤɤ
ɤߤν˥ȤꡢѴΤѴꡢ뤤ϡº
¸ߤʸϤХå٤򽸤᤿ꡢϰϤιѤǤ
  Ver.4 Ǥϡɤߤ  ХȤǰäƤޤäơɤߤʬȴ
ʬҤä֤뤳Ȥˤäơ̾ѴԤʤ
Ǥޤºݤ˴̾Ѵ˻ȤäƤߤ̤ǤϡʤΤǤ
Ѵޤ

˴ؤƤϡߡuum, WoG ʤɤϡʴѴѤδĶȡ
ѴѤδĶĤäơ줾ˤʴѴѴμ
ꤷơĶڤѤƤޤξ硢ʴѴμ
äˡѴμɲäɬפޤޤñϿ
ˤ⡢ѴѤμˤñϿɬפФƤޤ
ȤϡWoG ǤϡưŪ˹Ԥʤ褦˽Ƥޤuum Ϥޤǿ
ܤ˺äƤޤ󡣤Τ褦ˡȵѴδ֤ȤΤϡ
ǤˡȵѴδ֤٤ͭǤʤʤɤ
ޤ
ǡĤμˡɤߤΥǥåȴΥǥå
ξĤ褦Ȥײ褬ޤϡΥ礭ʤΤȡ
ѴΥԡɤȤȥ졼ɥդǤ֤С
ꤿȻפäƤޤ

  Ωʻμϡޤ 32 Ĥ¤Ƥޤϡ256 
ޤǳĥޤ˲äơʣʻ̵ۤ¤뤳Ȥ
Ǥޤʻ˴ؤϡʻե
(/usr/local/lib/wnn/hinsi.data)˽񤫤ƤޤΩʻϡ
ФѤǤϤʤƥȤ᤹ʤɤɬ
ˤʤǤޤ饤Ȥ⡢ñʻ˴ؤɽ
ñϿʻꤹʤɤɬפȤʤǤ
˴ؤϡ饤Ȥϡ饤֥ѤƥФʹ
Ȥˤޤatod, dtoa ʤɤμ桼ƥƥץ
ϡľʻեɤߤˤޤ

°ե񤯤ˤϡΩʻ줬ɬפˤʤ뤳Ȥ¿
Ǥ礦Ȥäơ˽񤭴ƤϺΤǤ桼
˻Ƥ褦ˤФΤޤ󤬡Ѥˡۤʤʻ
򸵤˺줿򺮤ƻȤȤϤǤʤᡢäƺ
ȤˤʤޤΤ褦ʣʤΤϡڤʤȻפޤ
ǡʻե(/usr/local/lib/wnn/hinsi.data)ϡ˰
Ĥ¸ߤȤȤˤޤʻեФƤϡȥ
ɲäǧ뤬¤ѤǧޤʻեϡʲΤ褦
ˡʻ졢ʣʻξ¤٤ñʹ¤򤷤Ƥޤ

....
....
̾		
̾		
̾		
̾/̾:̾	;̾, ̾
....
....


jserver ʣư뤤ϡե°ե
뤿ˡʻեƥȤǽѤƤȤͤȡʻ
եδϡĤβȤʤäƤǤޤatod, dtoa ʤ
ưȤȡʻե뤬path ¸ߤƤʤƤϤʤ餺
Ȥʤޤ(atod, dtoa jserver̿ΤΤޤ
)

  ǡߤΤȤ줾μե°եʻե
ξ褦Ȥײ褬ޤʻ̾ȡʻֹб
ϡƼե°ե뤬ޤơɤ߹
ˡjserver ֹбդԤʤäơˤ롢ʻֹʻ
̾Ȥбطΰ㤤ۼ褦ȤΤǤϡɤ߹
ν¿ʤäơ饤ȤΩ꤬٤ʤȤȡ
Υ礭ʤȤޤͭ˾ˡȻ
ޤΥ꡼ޤǤˤϡ¸ǽǤ


  ޤǤϡ桼ƥΣμѤƤޤ
ԤϡñϿǽɡ٥ե˻ĤȤǤʤǡ
ԤϡñϿϤǤʤɡ٥ե˻ĤȤǤ
Ʊξ硢򾮤뤳ȤǤǤ桼
μ٥ե˻ĤȤǽˤΤϵŪ˷褷
񤷤ǤϤʤ뤳Ȥˤꡢ礭Ūˤʤ
ʤȤǤϡηȤƤϺޤǥ桼μȸƤФƤ
ΣǺѤ褦ˤʤޤǡVer.4 Ǥϡޤǥ桼
μȸƤФƤΤФơ٥ե˻ĤȤ
ޤ

  ʤȡ桼ƥȤ̾ŬڤǤǡ
ޤǥ桼ȸƤФƤΤϿǽƥȸƤ
ƤΤϸ̾ޤ桼μ񤬹Ȥ
뤳Ȥͤ⡢Τ᤯ʤ褦ѹ
Ƥޤޤޤ¸ߤʤɤФ¤ϤۤȤɤޤ
ʸ(UJIS)255ХȰȤ¤ϻĤäƤޤ

礭ϡޤǤȤۤȤѤäƤʤȻפޤ

	kihon_1   		59,717
	
	ƥȷ		1,567,388
	桼		1,783,214
	쥷ƥ		  956,294
	Ͽǽ		1,735,680
			1,190,742


  Ͽǽμ򳧤Ƕͭ뤳ȤˤꡢƤˡ֥Хפ
ˡưŪ˥Х뤳ȤǤޤޤǤȡöƥȷ
ľơХľơƤӥ󥹥ȡ뤹Ȥ³Ƨ
ʤƤϤʤ餺ݤʤФ꤫򤹤ȡޤǸĿͤäƤ
٥ե뤬٤ƻȤʤʤȤؤʾ֤ˤä櫓Ǥ

  ʼݤĤˤϡïǤñϿԤʤΤ
꤬ޤǡ˥ѥɤĤ뤳Ȥˤޤ
ˤäơΥƥʥ󥹤򤹤ʳοְͤäơ뤤ϰŪ
˼񤭴ȤȤɤȤǤޤΥѥɤϡ
񤭴ΤɤǡѴѤ뤳Ȥ¤ΤǤ
ޤ
  󡢸ġΥ桼ʬμ˥ѥɤĤѤ뤳Ȥ
ǽǤλȤ٤˥ѥɤǤΤǤϤäƤ
󡣤ǡ٥롦饤֥ǤϡեμΤȤ
ǥѥɤäƤե̾ꤹ뤳Ȥˤꡢ饤֥꤬
Υեɤǡѥɤ򥵡Ф褦ˤʤäƤޤϡ
UNIX ե륷ƥ read permission ǥѥɤäե
ݸɤΤǤƱͤˡ٥եѥɤդ
褦ˤʤäƤޤѥɤäե̾ϡ٥롦饤
ǤϡV3  wnnrc ΤѡơʤɤΤν
򤹤Τ¸ߤΤǤνեǡѥɥե
̾Ǥ褦ˤʤäƤޤǤ顢uum Ǥϡ̾λѤ
ϡѥɤϤɬפޤ

ΥѥɤˤĤƤϡȴ뤿ˤɬפ
ȻפäƤĤޤºݤˤϡʤɤïȤʤ
礦:-)

  ףǤϡ٥ե¾ˡˤ⡢پȻä
ޤپϡСǤϡ桼Ǥ٤Ȥơ
ƥǤϡ٥եνͤȤѤƤ
ʤ٥եäˤϡʬ
Ƥ򥳥ԡơ٤νͤȤƤޤǤϡ
򽸤ƥƥȷμ᤽Ȥˡͤνפ񤷤ʤ
ޤޤͤȤơȤȤͤȼʬȤä̡ͤ˸
׵⤢Ǥ礦ǡVer.4 Ǥϡ٥ե򿷤ä
ˤϡ٤Ƥιܤͤ  Ǥ褦٥եꡢ
ͤȤơͤ٥եͤ­ΤѤ뤳
ˤޤ
  ʬͤȤʤξ硢٥ե򼭽γ˺Τ̵
̤ǤޤʣοͤƱ٤Ѥˤ⡢٤ϼˤä
Ǥ礦櫓ǡ٥եꤻ˼Ѥ
ȡ٤Ѥ򹹿褦ˤʤäƤޤǥ
̤­ʤʤɤͳǡ٥եͭˡڤˤʤޤ

ޤpubdic ʤɤǽפ٤򡢸Ȥʤ٤ȤȿǤˡ
ġΥ桼٥եľʤƤ⡢٤Ѥ֤
ɤ߹ǡѹΥ饤֥Ȥäͤ򿷤ͤ˥
ȤľȤǽˤʤޤĤμФơ񳰤٥ե
äƻѤȤˡȡ٤ѤȤˡʻ
Τϡ̤ˤ˾ޤȤǤϤޤ󡣤Τ褦ʤȤɤ
ˡʬˤѥɤĤ뤳ȤǽˤʤäƤޤ
ˤäơ(ѥɤפʤ硢)٥եꤻˡ
٤򹹿⡼ɤǤμѤԲǽˤʤޤ

 pubdic ץȤWnn V4 ǡɤΤ褦ʷ֤ǼƤ
ΤϡΤޤ

ïˤȤȤΤǤʤѥ(ˡatod -n -N ǻ
ޤ)ΡʬˤĤƤ硢

  	ʬ	

  ѥͭ	ѥͭ     ٥եѤϿǽ
  ѥ̵	ѥͭ     ٥եѤïǤϿǽ
  ѥͭ	ѥ̵     ٤϶ͭϿϤǤʤ
  ѥ̵	ѥ̵     ٤϶ͭïǤϿǽ

ȤäȤǤ礦ʬ˥ѥɤĤƤʤ
⡢٥ե򼭽˺äƼѤ뤳ȤϲǽǤѥ
ɤ̵Ǥ⡢ޤǤȤꡢΡ뤤ʬ꡼ɡ
꡼Ѥ뤳ȤǤޤ

  ٤ˤĤƤϡͤѤƥȥΰŪԤʤ
Ȥǽˤޤʤͤ򤢤ͤ˥åȤСΥ
꡼ϡѴλѤʤȤΤǤΤͤϡ饤֥
Ǥ() -1(WNN_ENTRY_NO_USE) ˤʤäƤޤ٥եꤷ
ƤʤˤϡͤͤʤСޤꤷƤ
ϡ٥եͤ⤷ϼͤΤɤ餫ͤʤСΥ
ȥϡ줿ȤˤʤޤˤäơǶͭƻ
Ƥ뼭˼ʬˤȤäŬñ줬¸ߤƤˡѴ
оݤ뤳ȤǤޤƥȷǤϡ줿ȥ
٤ʬ "-" Ǽޤƥȷǡȥäˡ
ȥȤʤɤˡǼºݤ˾äƤޤȡatod ǼäƤ
 dtoa ǺƤӥƥȤᤷˡȥ꡼äƤޤޤ
ʬ "-" ˤˤäȥϡºݤ˾ä櫓ǤϤ
ޤ󤫤顢ƤԽˡǤ٥롦饤֥
ϡȥΰΤΥ饤֥ؿѰդƤޤ

  Ver.4 Ǥϡ˥Ȥդ뤳Ȥ褦ˤʤäƤޤ
(ȤȤꡢ˥å͡ȸäΤޤuum
ϡñϿʤɤλμ̾λѤ褦ˤƤޤ
usr/pubdic/pd-chimei Ȥä̾򸫤ʤϿ뼭֤⡢
̾פȤä˥å͡򸫤ʤϿ뼭٤
ʤΤϡ򤷤ƤǤ礦

ޤȤϡƼ񥨥ȥˤĤ뤳ȤǽȤʤäƤޤ
ϡƥȷľƼԽ⸫ޤΤǡԽ
Ȼפޤ

ΥѥɡȤʤɤϼκ˻ꤷޤǤ¸
뼭Фơʬ񤭴륳ޥɤѰդƤޤ
ϡΤȤСΣư褦˺äƤޤ

  ޤޤ atou, atos, utoa, stoa ȸƤФƤޥɤϡatod (ƥ
 to )dtoa ( to ƥ) ĤˤޤȤƤޤ
Ͽǽϡatod ΥץǹԤʤޤ

  ΥƥȷФƤ⡢䤹δѹäƤ
ʻϿǤϤʤʻ̾ޤͤȤơ̤줿ͤ
Ϥʤºݤλ(˶ᤤ͡ˤФޤatod Ԥʤ˼
ȤľΤǡƥȷμˤϡܤϤɤΤ
ʽǤ⹽ޤ󡣤ˤꡢƥȷμԽ䤹
ޤdtoa ϡɤߤν˥Ȥ줿ǽϤޤ

  °եϡ ˰¸ߤΤǤϤʤĶ
Ǥ褦ˤʤޤĶˤĤƤϡ饤֥ι򻲾Ȥ


ˤäơ̾ʤɤϤƤˤ°줬Ĥʤʤ褦
֤ϤȤʸϤƤˤۤʤɤθ
°եѤȤä꤬ǽˤʤޤǰʤ顢
 uum  WoG ǤϡεǽñѤǤ褦ˤϤʤäƤޤ
ؤβǤ

ѴѹˤȤʤ°եơӡ楳ޥ
ɤѹƤޤΤȤˤĤƤϡǤϾάޤ

  򥯥饤Ȥ䡢䤹뵡ǽդ
ޤˤꡢ桼θĿͤμ٥ե򡢼ʬΥۡ
ǥ쥯ȥβ֤ȤǽǤjserver ϡեƱ
å򸷤äƤΤǡnfs ǥޥȤ줿ƱμĤ
׻ upload Ƥ⡢jserver ǤϰĤΥեȤưޤ

 WoG ǤϡǥեȤǡ桼Υۡǥ쥯ȥβ˥桼
μ٥ե֤褦ˤʤäƤޤ





 饤֥  

Ver.4 Ǥϡ饤֥Ȥơjserver Ȥ̿ȴŪˣУб
Ƥ٥()饤֥ȡ饤֥Ѥƺ줿
()饤֥꤬ޤ

٥롦饤֥ϡ٤ץߥƥ֤鹽졢٥롦饤
֥ϡ̾Ѵή˱ä٥ν¸Ƥޤ
СѴ˴ؤƤϡ饤֥Ǥϡ
	ɤߤФơϢʸѴ򤷤֤(kanren)
	ɤߤФơñʸѴ򤷤֤(kantan_dai, kantan_sho)
	ɤߤФơñʸѴ򤷤֤  (kanzen_dai, kanzen_sho)
	륨ȥͤ򤢤ͤ˥åȤ(hindo_set)
ȤäؿܤȤʤޤ

Фơ饤֥ϡѴʸȤƻäƤꡢ
	ɤߤͿơϢʸѴ򤹤(ren_conv)
	ʸζڤѤѴľ(nobi_conv)
	ʸμ֤(zenkouho, zenkouho_dai)
	(Ѵ˴Ť)ͤιԤʤ(update_hindo)
ȤäؿܤȤʤޤ

٥롦饤֥δؿϡjs_ ǤϤޤ̾äƤꡢ٥롦
饤֥δؿϡjl_ ǤϤޤ̾äƤޤǤϡޤ
٥롦饤֥ˤĤθˡ٥롦饤֥ˤ
ޤ


٥롦饤֥

ޤ٥롦饤֥ˤƻѤʲγǰˤĤơޤȤ
Ƥޤ

	饤
	Ķ
	ե
	Σ

饤
  jserver ̿ϩĥץꥱ󡦥ץΤȤ򥯥饤
ȤȸƤӤޤʣη׻ jserver ưƤˡĤΥץ
ϡʣ jserver Υ饤ȤƱˤʤ뤳Ȥޤ

Ķ
  ̾Ѵμ¹Է̤ϡѤ뼭٥ե롢Ѥ°
ե롢뤤ϡѴѥ᡼ȤäΤˤäơѤä
ޤϡjserver ˡִĶפȸƤФΤꡢ
ФƹԤʤޤơѴϡȤɤߤʸȶˡ
ĶꤷƹԤʤޤ
  ĤΥ饤Ȥϡjserver ʣδĶꡢѴ٤˰ۤʤ
ĶѤ뤳ȤǤޤޤĤδĶʣΥ饤ȴ֤Ƕ
ͭ뤳ȤǽǤλˤϡδĶФ뼭ɲäʤɤϡ
δĶѤƤ¾Υ饤ȤˤȿǤޤ

  Ķ jserver ˺ΤǤjs_饤֥Ǥϡjserver id 
  jserver δĶ idΥڥĶȤƤޤǤ顢Ķ
λϡѴԤʤ jserver λޤǤޤ

ե
  Wnn ˤƤϡեʤɤΥե jserver ɤ߹ư
ȡե򼭽ȤѤʤɤȤäեλѤ򳫻Ϥư
ϡ̤Ƥޤϡjserver Ѥեˤϡե
롢٥ե롢°եȤäबꡢऴȤ˻
ˡϰۤʤΤǤեȤƤư(ؤɤ߹ߡ񤭤
ѤƤʤե夫ΤƤ)ϡɤμΥե
ǤäƤⶦ̤Ǥäˡեɤ߹ߡ񤭽Ф˴ؤ
ϡjserver ľܹԤȡ饤Ȥɤ߹ jserver 
(뤤ϡդˡjserver ƥ饤ȤΥե륷
˽񤭹)礬ޤ饤ȤΥ뤫
СΥե륷ƥफɤ߹ߤեμऴȤˡե
λѳϻ˻ꤹΤꡢեɤ߹ߡĤΥץߥƥ
֤ȤΤȤݤǤ

饤֥Ǥϡեκɤ߹ߤȻѤĤˤޤȤ᤿
֥ؿѰդƤޤ

Σ
  ϡ٥եꤷƻѤ뤳Ȥ⡢ꤻ˻Ѥ뤳
ǤޤǤ顢Ķ˥åȤΤϡ٥եȡ
ϡǤĶ˼򥻥åȤˤä ID ֤ޤ
 ID  ΣȸƤӤޤ
  Σտ魯Ȥơե롢٥ե¾ˡ
Υץ饤ƥenable/disable٤ν񤭹ߵĤξ
ޤ

ñ̤٥롦饤֥

ʲʴѴڤӡѴԤʤñʥץȤ
ơ٥롦饤֥λȤޤ

ѴطΥ饤֥ΰ䡢ѥ᡼θĿϡ۳ϤޤǤ
ѹ뤫⤷ʤΤǡΤޤޤǤϡưʤ⤷ޤ

-------------------------------------------------
#include <stdio.h>
#include "jslib.h"
/*#include "commonheader.h" */

#define FZK_FILE "/var/dict/Wnn/pubdic/full.fzk"
#define KIHON_DIC "/var/dict/Wnn/pubdic/pd-kihon.sys"
#define SETTO_DIC "/var/dict/Wnn/pubdic/pd-setsuji.sys"
#define REV_DIC "/var/dict/Wnn/pubdic/pd-kihon.sysR"
#define REV_DIC_SETTO "/var/dict/Wnn/pubdic/pd-setsuji.sysR"

WNN_JSERVER_ID	*js;
struct wnn_env *env, *rev_env;
static struct wnn_ret_buf rb = {0, NULL};

int	dcnt,scnt;

char yomi[1024];
char kanji[5000];

int kihon_file, setto_file, rev_file, fzk_file, rev_setto_file;
int kihon_dic_no, setto_dic_no, rev_dic_no, rev_setto_dic_no;

main(argc, argv)
int argc;
char **argv;
{
    char *mname = "";
    rb.buf = (char *)malloc((unsigned)(rb.size = 0));
    if(argc > 1) mname = argv[1];

    if((js=js_open(mname)) == NULL) err();

    if((env=js_connect(js, "kana")) == NULL) err(); 
    if((fzk_file = js_file_read(env,FZK_FILE)) == -1) err();
    if((kihon_file = js_file_read(env,KIHON_DIC)) == -1) err();
    if((setto_file = js_file_read(env,SETTO_DIC)) == -1) err();

    if(js_fuzokugo_set(env,fzk_file) == -1) err();
    if((kihon_dic_no = js_dic_add(env,kihon_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();
    if((setto_dic_no=js_dic_add(env,setto_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();
    p_set(env);

    if((rev_env=js_connect(js, "kanji")) == NULL) err();

    if((fzk_file = js_file_read(rev_env,FZK_FILE)) == -1) err();
    if((rev_file = js_file_read(rev_env,REV_DIC)) == -1) err();
    if((rev_setto_file = js_file_read(rev_env,REV_DIC_SETTO)) == -1) err();

    if(js_fuzokugo_set(rev_env,fzk_file) == -1) err();
    if((rev_dic_no = js_dic_add(rev_env,rev_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();
    if((rev_setto_dic_no = js_dic_add(rev_env,rev_setto_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();
    p_set(rev_env);

#ifdef DEBUG
printf("Now discard file push any key\n");
getchar();
    js_file_discard(rev_env, rev_file);
printf("Now discard file\n");
#endif

    henkan();
    js_close(js);	
}

henkan()
{
    wchar u[1024];
    struct wnn_env *c_env = env;
    struct wnn_dai_bunsetsu *dp;

    for(;;){
	if(c_env == env){printf("yomi> ");fflush(stdout);}
	else {printf("kanji> ");fflush(stdout);}
	if(gets(yomi) == NULL)return;
	if(yomi[0] == '!')return;
	if(yomi[0] == '@'){
	    c_env = (c_env == env)? rev_env:env;
	    continue;
	}
	strtows(u,yomi);
	dcnt =js_kanren(c_env,u,WNN_BUN_SENTOU, NULL, WNN_VECT_KANREN, WNN_VECT_NO,&rb);
	dp = (struct wnn_dai_bunsetsu *)rb.buf;
	print_kanji(dp,dcnt );
    }
}

print_kanji(dlist, cnt)
struct wnn_dai_bunsetsu	*dlist;
int	cnt;
{
    int i;
    struct wnn_sho_bunsetsu  *sbn;

    if (dlist == 0) return;
    putchar('\n');
    for ( ; cnt > 0; dlist++, cnt --) {
	sbn = dlist->sbn;
	for (i = dlist->sbncnt; i > 0; i--) {
	    putws(sbn->kanji); printf("-"); 
	    putws(sbn->fuzoku); printf(" ");
	    sbn++;
	}
	printf("|"); 
    }
    putchar('\n');
    fflush(stdout);
}

p_set(env1)
struct wnn_env *env1;
{
struct wnn_param pa;
	pa.n= 2;		/* n_bun */
	pa.nsho = 10;	/* nshobun */
	pa.p1 = 2;	/* hindoval */
	pa.p2 = 40;	/* lenval */
	pa.p3 = 0;	/* jirival */
	pa.p4 = 100;	/* flagval */
	pa.p5 = 5;	/* jishoval */
	pa.p6 = 1;	/* sbn_val */
	pa.p7 = 15;	/* dbn_len_val */
	pa.p8 = -20;	/* sbn_cnt_val */
	pa.p9 = 0;	/* kan_len_val */

 js_param_set(env1,&pa);
}


putwchar(x)
unsigned short x;
{
    putchar( x >> 8);
    putchar( x );
}

putws(s)
unsigned short *s;
{
    while(*s) putwchar(*s++);
}

strtows(u,e)
wchar *u;
unsigned char *e;
{int x;
 for(;*e;){
	x= *e++;
	if(x & 0x80) x = (x << 8)  | *e++;
	*u++= x;
 }
 *u=0;
}

err()
{
    printf(wnn_perror());
    printf("\n bye.\n");
    exit(1);
}

Υץμ¹򼨤Ƥޤ

% kankana
yomi> ֤󤻤Ĥϡ礦֤󤻤ĤΤĤǡĤ礦ߤΤ
Ƥޤ

- ʸ-ϡ |- ʸ- |-ǡ |³- |- |- |- |-
ޤ |
yomi> ΤפΤä줤򤷤ᤷƤޤ

- |ץ- |¹- - |-Ƥޤ |
yomi> @

kanji> ʸϡʸǡ³Τޤ

- ֤󤻤-ϡ |- ֤󤻤- |-ǡ |Ĥ- |礦- |
- |- |Ƥ-ޤ |
kanji> Υץμ¹򼨤Ƥޤ

- |פ- |ä- 줤- |-Ƥޤ |
> ^D

-------------------------------------------------
ץ

ΥץѤǡ٥롦饤֥λȤˤĤޤ

#include "jslib.h"

include/jslib.h ˤϡ饤֥Ѥ빽¤Ρޥʤɤ
ʤƤޤ饤֥󶡤ؿ̾¤̾ޥ̾ϡ
"js_*" ޤϡ"wnn_*" (٥롦饤֥Ǥ "jl_") Ȥ̾
ƤޤΤǡ̾ξͤʤ褦դƲ

static struct wnn_ret_buf rb = {0, NULL};

    rb.buf = (char *)malloc((unsigned)(rb.size = 0));

ޤǤΥ饤֥ǤϡѴʤɤͤΰϡ饤֥Ƥ
¦Ѱդΰڤʤˤϡ顼ˤʤޤ̤ˡ
饤֥Ѥ¦ǡɤΰ褬ɬפϤ狼ʤΤǡ礭
ȤʤޤǡVer.4 ǤϡɬפС饤֥¦
reallocԤʤȤͤˤʤäƤޤĹ֤ͤؿϡ
(struct wnn_ret_buf *) ΰޤΥݥ󥿤ˤϡmalloc 
ޤ realloc Ǽ줿ΰȡ礭ΥڥͿɬפ
ޤ

    if((js=js_open(mname)) == NULL) err();

ΰԤǡjserver Ȥ̿ϩΩjserver Υ饤Ȥˤʤ
mname ˤϡjserver ¸ߤ׻̾Ϳޤ׻̾Ȥ
̥롦ȥ󥰤Ϳ줿ˤϡUNIX ɥᥤ̿Ԥʤޤ
js_open ϡͤȤơjserver_id ֤ޤ̿ϩϡjs_close 
ˤäŪǤ뤫ץबλޤͭǤ

    if((env=js_connect(js, "kana")) == NULL) err(); 

ˡjs_connect ˤꡢĶ jserver ˺ޤɤ jserver 
˴Ķ뤫ϡ jserver_id ϤȤˤꤷޤ
"kana" ϡĶ̾Ǥjs_connect ϡƱĶ̾ĴĶ jserver 
¸ߤˤϤ id ֤ʳλˤϿĶ jserver 
˺ꡢ id ֤ޤĶ̾ϡʣΥץǰĤδĶͭ
뤿Ѥޤʤ¾ΥץƱ "kana" ȤĶ̾
Ȥjs_connect Ƥ硢ΤȤĶϡ
줿ΤƱǤ¾Υץȶͭ뤳Ȥ̵Ķ(ְäơ
ͭ줿ʤĶ)ꤿ礬ޤξˤϡ
ȤƶʸϤƤޤˤꡢjserver Ͼ˿
ꡢ֤ޤξ硢֤ƤĶͭ뤳
Ϥޤ

ĶλѤ򽪤ˤϡjs_disconnect Ѥޤޤ̿ϩĤ
ˤϼưŪ˴ĶλѤ򽪤ޤĶϡδĶѤƤ륯
Ȥʤʤäˡjserver ⤫ʤʤޤʲΥ饤֥
ؿǤϴĶȤΤ¿¸ߤޤδĶϡ
js_connect ǤΥץäΤǤɬפޤϡ
¾Υץ˾˴ĶФƥ뤳ȤɤǤ

    if((fzk_file = js_file_read(env,FZK_FILE)) == -1) err();
    if((kihon_file = js_file_read(env,KIHON_DIC)) == -1) err();
    if((setto_file = js_file_read(env,SETTO_DIC)) == -1) err();

ǡ°ե롢Ӽ jserver ɤ߹Ǥޤ
js_file_read ϡΥե뤬 jserver ¸ߤʤˤϡե 
jserver ɤ߹ߤ Fid(ե ID) ֤jserver ˴¸
ƤˤϤ id ֤ޤޤjs_file_send ϡ饤ȡ
ȤΥեɤ߹Τ˻Ѥޤjserver ϡեƱ
Υå̩˹ԤʤäƤޤΤǡ饤ȤȥФƱΥե
ɤ߹ȤƤ⡢ƱΥե뤬꡼İʾ¸ߤ
ȤϤޤjs_file_read, js_file_send ԤʤȤˤꡢե
ϴĶ³ޤFid ϡjserver ǥˡ¸ߤΤ
ΥեФƥ뤿ˤϡե뤬³줿
äƤɬפޤjs_file_send, js_file_receive ϡߤ
СǤϡޤݡȤƤޤ

jserver ΥȾΥѥ̾λϡեѥǻꤹ뤫JSERVER_DIR 
ȸƤФǥ쥯ȥ꤫Фǻꤹ뤫ޤJSERVER_DIR ϡ
jserverrc ǻꤵƤޤ

  jserver ɤ߹ޤ줿եϡjs_file_discard ˤäơĶ
ڤΥޤޤĶ˾ǤСưŪˤδĶڤ
ΥޤơեФ³ƤĶ̵ʤä
Υե jserver ⤫ǤޤեˤäƤϡjserver 
ɤ߹Ǥ֤ƤƤ뤿ᡢι줿Ƥե
롦ƥ˽᤹ɬפФƤޤԤʤΤjs_file_write,
js_file_receive Ǥ

js_file_write, js_file_receive ǡɤ߹եȰۤʤե
˽񤭽ФȤǽǤξˤϡե뤬Ǥ¸ߤƤС
줬 wnn ΥեξΤߡ񤭤ޤ

 js_file_write, receive Ū˸ƤФ줿ʳˡե뤬
jserverʤǤ˼ưŪ˽ᤷԤʤäƤϤɤȤ
⤢ä饤ȡȤΥեξˤԲǽʤΤǡ
ʤ

  ¾ˡե˴ؤ饤֥ȤƤϡjs_file_list (Ķ
³Ƥեξ)js_file_list_all (jserver 
߹ޤƤեξ)js_file_info (Υե
ˤĤƤξ롣)ޤ

ޤץꥱ񤯤ˤϡjserver Τ륵ȤΥե롦
ƥ˴ؤɬפƤޤΤˡjserver 
ȾǤΥѥ̾ȤƼ饤֥Ȥ

js_access	ꤵ줿ե(jserver Ф)Ĵ٤롣

js_file_stat	ꤵ줿ե(٥ե롣°ե
		̡եդƤ륳)
		
js_file_loaded	ꤵ줿ѥ̾Υե뤬 jserver 
		ɤ߹ޤƤ뤫ɤĴ٤롣

ե륷ƥ˴ؤơϤƥץꥱȤͤΤΥ桼
٥եɬפޤΤΥ饤֥Ȥơ

js_mkdir	ꤵ줿̾Υǥ쥯ȥ롣
		ХѥϡJSERVER_DIR Фǻꤹ롣
		ꤵ줿ȤˤɤǤäƤޤΤǡ
		jserver ˶¤ͿƤϤʤ
		(root 餹ʤɤäƤΤۤ)

js_dic_file_create
		ꤵ줿̾ǡ 0 Ͽǽμ롣

js_hindo_file_create
		ꤵ줿ե id äե٥ե
		ꤵ줿ѥ̾Ǻ롣

js_dic_file_create_client
		ꤵ줿̾ǡ 0 Ͽǽμ򥯥饤
		ȥȤ˺롣
	
js_hindo_file_create_client
		ꤵ줿ե id äե٥ե
		ꤵ줿ѥ̾ǡ饤ȥȤ˺롣

js_file_remove	Wnn Υեե륷ƥफä


ޤ

    if(js_fuzokugo_set(env,fzk_file) == -1) err();

ϡfzk_file Ȥ file_id Ǽ줿ե env °ե
ȤꤷƤޤ

    if((kihon_dic_no = js_dic_add(env,kihon_file,-1,1,1,-1,NULL, NULL)) == -1) err();
    if((setto_dic_no=js_dic_add(env,setto_file,-1,1,0,0,-1,NULL, NULL)) == -1) err();

  ϡkihon_file, setto_file Ȥ file_id Ǽ줿ե 
envμȤꤷƤޤ

	js_dicadd(env, file_id, hfile_id, prio,
		rdonly, hrdonly, passwd_file, passwd_hfile)

ˤäơfile_id Ǽ
եhfile_id Ǽ줿ե٥եȤprio Ǽ
줿ͥ٤ǡ٤줾 rdonly, hrdonly Ǽ줿֤ 
env ɲä뤳Ȥ̣ƤޤپȤƼե
ĤΤѤˤϡ軰 -1 ꤷޤޤrdonly 
 WNN_DIC_RW λɤ߽񤭲ǽWNN_DIC_RDONLY λǽ̣
ƤޤޤˤϡѥɤĤƤ뤳Ȥޤ()
ѥɤĤμ٤򡢥꡼ɡ꡼Ǥʤ֤Ѥ
ϡ줾ΥեΥѥɤȬȤͿɬפ
ޤdic_add ϡͤȤơΣ֤ޤʹߤμ
٥եؤϡ dic_No ѤƹԤʤޤ°ե
ϴĶФư¸ߤΤǤϡĤδĶʣꤷ
ƤƤѴѤޤǤϡĤμꤷƤޤ

ĶꤵƤ Σ˴ؤ饤֥Ȥơ
js_dic_list ޤޤΣĶ̵ˡŪ̵
ˤ뤿Υ饤֥ (js_dic_use)ޤ

  ΣĶ鳰ˤϡjs_dic_del Ѥޤ

  ĶФȤƤϡ°ե¾ˡѴѥ᡼
ޤѴѥ᡼˴ؤƤϡjs_param_set ˤäԤ
js_param_get ˤäƸߤξ֤ޤѴѥ᡼˴
Ƥϡǥեͤ jserverrc ˽񤫤ƤơĶ js_connect 
줿ˤϡ꤬Ѥޤ

    if((rev_env=js_connect(js, "kanji")) == NULL) err();
    if((fzk_file = js_file_read(rev_env,FZK_FILE)) == -1) err();
    if((rev_file = js_file_read(rev_env,REV_DIC)) == -1) err();
    if((rev_setto_file = js_file_read(rev_env,REV_DIC_SETTO)) == -1) err();

    if(js_fuzokugo_set(rev_env,fzk_file) == -1) err();
    if((rev_dic_no = js_dic_add(rev_env,rev_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();
    if((rev_setto_dic_no = js_dic_add(rev_env,rev_setto_file,-1,1,WNN_DIC_RDONLY, WNN_DIC_RDONLY, NULL, NULL)) == -1) err();


嵭ΤʴѴѤδĶȤ̤ˡ⤦ġѴѤδĶ
ꡢФԤʤäƤޤǡfzk_fileȤƤϡƱե
ID֤äƤϤǤfzk_file ˴طfile_read ٹԤʤ
Ƥ뤳ȤդƲҤ٤褦ˡδĶФ
file_read˹ԤʤäƤʤȡΥե뤬δĶǻȤʤǤ

    henkan();

henkan ȤϡΤ褦ˡɤʸơ UJIS ɤ
ơ̾ѴԤʤ̤ɽȤΤǤjserver 
̿ϡܸΥɤȤơ UJIS ѤƹԤʤޤ

dcnt =js_kanren(c_env,u,WNN_BUN_SENTOU, NULL, WNN_VECT_KANREN, WNN_VECT_NO,&rb);

ϡϢʸѴԤʤ饤֥ؿǤ̤ꡢѴ
δؿϡơĶ(c_env)ȡɤ(u), ̤ΰؤΥݥ
(&rb)ȤƻޤΣĤΰϡѴ̤˱ƶͿ
ѥ᡼ȤʤΤǤ
裳ϡѴʸƬ˴ؤꡢ
裵裶ϡѴʸνü˴ؤǤ

ˤҤ٤褦ˡVer.4 ǤϡʸȾʸ򰷤ޤϢʸѴ
ϡѴη֤ƤΤʸǤλˤäƤϡ
ƬʸᤪӺǸʸϡʸǤϤʤʸʬ
֤뤳ȤǽǤˤäơüȽü³
ͿѴԤʤȤǤޤ

ŪˤϡüˤĤƤϡ뾮ʸμΩʻ°
34ǻꤹ뤳ȤˤꡢƬʸȤơξʸȤĤʤ
ʸ뾮ʸ뤳ȤǤޤüԤʤ
ˤϡWNN_BUN_SENTOU 裳ȤƻꤹСüʸü
ʤ褦ѴԤޤWNN_ALL_HINSI 裳ȤƻꤹС
üʸüȤʤ褦ѴԤޤξˤϡƬʸ
ϵŪʤΤȤʤޤ

üˤĤƤϡ٥ȥ(ʻν)ֹ裵裶˻
뤳ȤˤꡢǸʸȤơΥ٥ȥü٥ȥȤƲ
Ϥ̤֤ޤ裵ǻꤵ줿٥ȥ뤬ͥ褵õ졢
6ǻꤵ줿Τϡ㤤ɾͤȤƷ׻ޤ
褦ˡĥ٥ȥꤹΤϡʤɤˡ֤ʻ
ʸ줬¸ߤʤˤϡ¾ʻΤΤǤ褤פ
Ȥ뤫Ǥ٥ȥȤƤϡjslib.h  define Ƥ
 ĤΥ٥ȥ롢WNN_VECT_KANRENWNN_VECT_KANTANWNN_VECT_KANZEN
ӡ Ϸ̤ȤƤ롢ƾʸü٥ȥ(ˤĤʤ
ȤΤǤ뾮ʸκǸʻ) ѤޤΥ٥ȥƤϡ
°եǻꤵޤޤWNN_VECT_NO 裶˻ꤹȡ
Υ٥ȥ̵뤵ޤ

ŪˡεɤΤ褦˻Ȥ뤫ޤ
[i]ʸȤ ʸζڤȤޤǽѴǡ

[1][2][3][4][5][6][7][8][9]

Ȥ̤줿Ȥޤǡ[1],[2],ӡ[7]ʹߤ
ѴƤơ[3]  [6] ɤߤְ㤨˸Ѵ
ƤȤޤФơ[3]  [6] ޤǤʸɤߤ
ľѴľȤޤλ[2] ʸξ34Ȥ
Ϳ[7]ξʸü٥ȥ5ȤͿ[3]  [6] 
ǤɤߤͿ뤳Ȥˤäơ㤨

	[3'][4'][5'][6']

Ȥäʸǡ[3']  [1],[2] ȤĤʤäʸ[6']  
[7]ȤĤʤäʸ褦Ѵ̤ޤ٥롦
饤֥ϡλʬǹԤʤʤƤ⡢Τ褦ѴԤ
褦˺Ƥޤ

Ǹʸʳʸνü٥ȥϡWNN_VECT_KANREN Ѥ


ü³ꤷѴԤäˡ³Τ̵
ˤϡʸƬȤʤ褦ʷ̤֤ޤ¸ߤ
ʤˤϡʸƬȤʤΤ֤ޤξˤϡ
ƤΤϡŪʸǤ

줾ξʸϡ status Ȥơؤ³äƤޤ
status WNN_CONNECT ʤСξʸ³Ƥ롢
WNN_SENTOU ʤ顢ʸƬǤ롣
WNN_NOT_CONNECT ʤ顢ʸƬǤʤ³⤷ʤ
WNN_GIJI ʤ顢ʸǤ

Ρ³ϡʸȤΤͤ¤ɬפǤϤޤ
桹񤷤Ǥäˡ

ߤΤȤüʸ᤬³ӡüʸ᤬
³Ρʸɾͤη빽øǤޤʸ
ɾͤη⡢ʤꤤøʤȤޤǡ
ʸɾͤηѹ褦Ȥײ褬äơ
꡼ˤϡǤˡѹƤ뤫⤷ޤ

ߤνꡢԤդƤϡ³ʸϡɾͤܤȤ
ɾʤ뤳Ȥˤꡢͥ褷ƽФ褦ˤʸƬȤʤ
ʤʸƬȤƲϤλˤϡʸɾͤ򣱡
ˤơʸƬȤʤΤͥ褵褦ˤƤޤ
üȤ WNN_BUN_SENTOU ꤷѴˤϡԤνϹԤ
WNN_ALL_HINSI ꤷѴˤϡξνԤޤ

ŪˤϡѴλˡѴʸξʸɾͤäƤäơ
򸵤ˡ³ʸɾͤ褦ˤ˵
Ǥޤ
ޤüդƤ⡢ƱͤǤ

ѴդƤϡjs_kanren ¾ˡkantan, kanzen ޤ
üü³ꤷѴԤޤ

kantan, kanzen ˤĤƤϡkantan_dai, kantan_syo kanzen_dai,
kanzen_syo Ȥ̤ޤkantan_sho, kanzen_sho ϡͿ줿
ʸ󤬰ĤξʸΤȤѴԤޤkantan_dai,
kanzen_dai ϡĤʸʬʸ
֤褦ѴԤޤ

٤ιդƤϡjs_hindo_set(env,dic_No,entry,ima,hindo) (뼭
Τ륨ȥ١ȤäӥåȤͤ򤢤ͤ˥åȤ롣) 
ѤޤǡͿϤϡ(jserver ǰ̤ƻ
ƤͤǤϤʤºݤ˻Ȥ줿) ǤȤäӥåȡ٤
ϡ̡˻ꤷɤ餫ͤѲʤˤϡ⤦
WNN_HINDO_NOP ȤƤޤ٤դƤϡͤꤷƥåȤ
ǤϤʤWNN_HINDO_INC (٤򣱾夲) WNN_HINDO_DEL (٤
)ޤWNN_HINDO_INC 򤷤Ƥ⡢Ūˤ٤ϰ̤ƻ
ƤΤǡɬ夬Ȥϸ¤ޤ󡣤¾ˡWNN_ENTRY_NO_USE
ꤹȡΥȥϡʹߤѴѤʤʤޤ
(ޥʥ̵˥åȤȤǤ礦)

js_close(js);	

Ǹˡjs_close ƤǡͥǤƤޤͥ
Ǥ뤳ȤˤꡢΥͥ󤫤鵯ƤδĶϡ¾Υ
饤ȤȶͭƤʤ¤ʤʤꡢδĶɤ߹ե
ǡ¾δĶɤ߹ޤƤʤΤƥ꡼夫鳫


¾٥롦饤֥ȤơʻطΤΤޤʻ
ϡʻեǡŪʬवƤޤؤ˰֤
ΤϡʻνɽΡɤǡ꡼դΤʻǤ
ξϡñϿˡʻ򤹤ΤѤޤ

ߺƤ
ʻեǤϡΤ褦ˤʤäƤޤ

------------------------------------------------------------

/|̾/:ͭ̾/:ư/:üư/:ưʳѸ/\
	:¾Ω/:Ƭ,/:ñ:ʻ/

̾/|̾:()&̾:&̾:ư&̾:
ͭ̾/|̾:̾:̾&̾:ͭ̾

ư/|:&̾\
	:Ը:Ը:Ը:Ը:ʹԸ\
	:йԸ:޹Ը:Ը:Ը\
	:():()&̾:()
üư/|(Ԥ):()\
	:():():():():():()
ưʳѸ/|ƻ:ư:ư&̾:ư()

¾Ω/|:Ϣλ:³,ư

Ƭ,/|Ƭ::̾:Ƭ̾:̾\
	:Ƭ::Ƭ:\
	:ư첽:()&̾첽:ư:ƻ첽ư\
	:Ƭ()

ʻ/|::ѿ::ĳ::°
------------------------------------------------------------

ʻ˴ؤ饤֥ϡʲΣĤޤ

js_hinsi_list	Ρ̾ˤȤꡢΥΡɤ°ʻ̾ΰ롣

js_hinsi_name   ʻֹ椫̾롣

js_hinsi_number         ʻ̾ʻֹѴ롣


¾Υ饤֥ˤĤƤϡ

js_dic_info(env,dic_No,ret)
	dic_No μդƤξ롣

js_word_add(env,dic_No,ɤ,,ʻ)
	dic_No μNo. ˡñϿ롣

js_word_delete(env,dic_No,Yomi,jisho_entry)
	dic_No μ񤫤ñ롣

js_word_search(env,dic_No,ɤ,ret_buf)
	dic_No μñ측Ԥ

js_word_search_by_env(env,ɤ,ret_buf)
	ĶƤμΣФñ측Ԥ

js_word_info(env, dic_No, entry, ret_buf)
	dic_No μ entry ܤ entry ˤĤơ٤롣
		   
js_who
	jserver λѼԤΰ롣

js_kill
	jserver λѼԤʤˡjserver λ롣

ʤɤޤ

饤֥ΰϡΥɥȤ񤤤ѹƤ뤫
⤷ʤΤǡޥ˥奢򸫤ƲޤǶĤää饤
֥ˤĤƤϡǤϽҤ٤Ƥޤ



٥롦饤֥

٥롦饤֥Ǥϡ桼Ѵ֥Хåեפ˻ĤȤˤꡢ
	줾ѴԤüü³ʤɤԤ
	ٹˡ򤵤ʤäФȤäӥåȤȤ
Ȥä򤷤ޤޤ
	Ĥꡢ椫صפޤ
ˤϡǽѴ֤äƤ򼡸Ƭ˻äƤ
Ʊ䤬ʣʤ褦ˤʤɤν򤪤ʤޤ

֥ХåեפʣĤȤޤλɬפˤʤäĶ
jserver Ȥ̿ϩ˲ʤɤݤ⸫ޤ

Ver.4 ǤϡִĶס֥եסʸפȤäʣʳǰ¸
ޤ٥饤֥ǤϤγǰˤĤΤʤƤ饤
֥ѤץबȤ褦ˤʤäƤޤʸᡢ
ĶʤɤľܰˤϡȤޤ

ޤ
	Ķ˴ؤԤ
	ɲäλ¸ߤʤ٥եκ
ȤäԤޤ


ץꥱ

 uum
 uum ϡС󣳤 wnn ȸƤФƤΤȡۤȤƱǤ
ʤȤϿ꤬äƤޤ礭ʰ㤤ϡ
	ʸȿžʸˤäɽ
	ʸФǽˤ롣(ǥեȤȤ)
	inspect, ñ측񸡺β̤顢ñ伭
	Ѥѹλ꤬Ԥʤ褦ˤʤäƤ롣
	ʸбޤǤŪʥХɤǥեȤȤ롣
ȤäȤǤ礦

uum ǤϡʸФŪϡʸФƹԤʤޤ
ŪȤϡ䡢ФʤɤǤ
ʸˤĤƤԽԤʤȤ⤢ȹͤΤǡ
ΤΥХɤԤʤäƤޤ
(ʸΰưˤĤƤϡʸñ̤ΤΤǥեȤˤʤͽǤ
ȤʸΤΤϡΤ˺Ƥ)

(ǥեȤΥХɤϡޤޤǤ꤫ʤŪʤΤȤʤäƤޤ)

uum Τ⤦ĤħȤơinspect β(ǥեȤǤϡCtrl_V˥
ɤȻפޤ)椫顢ñκñѤǤ
Ȥޤñκ Ctrl_DѤǤ Ctrl_U ˥ǥե
ǥХɤȻפޤˤꡢ֤ñ줬ˤ뤫
ʤפȻפäˡñޤྮʸΤȤ˥
äƤäơCtrl_Z + Ctrl_U򤹤뤳Ȥˤꡢʹߤñ
ѴѤʤʤޤ

ޤñ측β̤Ǥ⡢ Ctrl_DCtrl_U ñμ񤫤κñ
λѾ֤ѹ(ʤѴ˻ȤƤΤλѤǤꡢ
ѤǤƤΤλѤƳ)ǽˤʤäƤޤ(
ǤƤñϡñ측ˡ٤ "---" ɽƤޤ)

ˡ񸡺β̤⡢κѾ֤ѹ Ctrl_D,
Ctrl_U ǽ褦ˤʤäƤޤ

