	ף  ֣ ˤĤ

ףΥС󣴤ˤĤơС󣳤ѹ濴ˤޤȤ
ޤѹϡˡΣĤΰʬޤ

(1) Ѵ  
(2)   
(3) 饤֥  

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

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

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

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

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


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

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


Ѵ르ꥺ

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


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


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

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

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

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

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

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


() ʸᡢʸ

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


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

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

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

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

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

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

	2456    ͸ϻ  ɴ޽ϻ  
	2456  སϻ

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

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




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

  Ωʻμϡޤ 32 Ĥ¤Ƥޤϡ256 
ޤǳĥޤ˲äơʣʻ̵ۤ¤뤳Ȥ
ǤޤΩʻϡФѤǤϤʤ
ƥȤ᤹뤤ϡ饤ȤñϿλʤɡ
ʥץǶͭǤ°ե񤯤ˤϡ
Ωʻ줬ɬפˤʤ뤳Ȥ¿Ǥ礦Ȥäơ˽񤭴
ƤϺΤǤ桼Ȥ˻Ƥ褦ˤФΤޤ
󤬡Ѥˡۤʤʻ򸵤˺줿򺮤ƻȤ
ȤϤǤʤᡢäƺ򤭤Ȥˤʤޤǡʻե
פĤѰդơΥեФƤϡȥɲäǧ
뤬¤ѤǧʤȤˤޤʻեϡʲ
褦ˡʻ졢ʣʻξ¤٤ñʹ¤򤷤Ƥޤ

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


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 ǥѥɤäե
ݸɤΤǤƱͤˡ٥եѥɤ
褦ˤʤäƤޤ

  ףǤϡ٥ե¾ˡˤ⡢پȻä
ޤپϡСǤϡ桼Ǥ٤Ȥơ
ƥǤϡ٥եνͤȤѤƤ
ʤ٥եäˤϡʬ
Ƥ򥳥ԡơ٤νͤȤƤޤǤϡ
򽸤ƥƥȷμ᤽Ȥˡͤνפ񤷤ʤ
ޤޤͤȤơȤȤͤȼʬȤä̡ͤ˸
׵⤢Ǥ礦ǡVer.4 Ǥϡ٥ե򿷤ä
ˤϡ٤Ƥιܤͤ  Ǥ褦٥եꡢ
ͤȤơͤ٥եͤ­ΤѤ뤳
ˤޤ
  ʬͤȤʤξ硢٥ե򼭽γ˺Τ̵
̤ǤޤʣοͤƱ٤Ѥˤ⡢٤ϼˤä
Ǥ礦櫓ǡ٥եꤻ˼Ѥ
ȡ٤Ѥ򹹿ƤޤǤ顢pubdic ʤ
ǽפ٤򡢸Ȥʤ٤ȤȿǤˡġΥ桼
եľʤƤ⡢٤򿷤ͤ˥åȤľƤС
ȤˤʤޤĤμФơ񳰤٥եäƻ
ѤȤˡȡ٤ѤȤˡʻѤΤϡ
̤ˤ˾ޤȤǤϤޤ󡣤Τ褦ʤȤɤˡ
ʬˤѥɤĤ뤳ȤǽˤʤäƤޤˤäơ
(ѥɤפʤ硢)٥եꤻˡ٤򹹿
⡼ɤǤμѤԲǽˤʤޤ

ïˤȤȤΤǤʤѥ(atod λդޤ)
ΡʬˤĤƤ硢

  	ʬ	

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

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

  ٤ˤĤƤϡͤѤƥȥΰŪԤʤ
Ȥǽˤޤʤͤ򤢤ͤ˥åȤСΥ
꡼ϡѴλѤʤȤΤǤΤͤϡ饤֥
Ǥ() -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 ϡɤߤν˥Ȥ줿ǽϤޤ

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

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

  򥯥饤Ȥ䤹뵡ǽդäޤ
ϡޤݡȤƤޤСˤϴ֤˹碌ͽ




 饤֥  

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"

#define FZK_FILE "pubdic/full.fzk"
#define KIHON_DIC "pubdic/kihon.dic"
#define SETTO_DIC "pubdic/setsuji.dic"

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, 0)) == 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,
				  WNN_DIC_ADD_NOR,1,WNN_DIC_RDONLY, 
				  WNN_DIC_RDONLY, NULL, NULL)) == -1)
	err();
    if((setto_dic_no=js_dic_add(env,setto_file,-1,
				WNN_DIC_ADD_NOR,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,KIHON_DIC)) == -1)
	err();
    if((rev_setto_file = js_file_read(rev_env,SETTO_DIC)) == -1)
	err();
    if(js_fuzokugo_set(rev_env,fzk_file) == -1)
	err();

    if((rev_dic_no = js_dic_add(rev_env,kihon_file,-1,
				WNN_DIC_ADD_REV,1,WNN_DIC_RDONLY,
				WNN_DIC_RDONLY, NULL, NULL)) == -1)
	err();
    if((rev_setto_dic_no = js_dic_add(rev_env,setto_file,-1,
				WNN_DIC_ADD_REV,1,WNN_DIC_RDONLY,
				WNN_DIC_RDONLY, NULL, NULL)) == -1)
	err();
    p_set(rev_env);

    henkan();
    js_close(js);	
}

henkan()
{
    w_char 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(fgets(yomi, sizeof yomi, stdin) == 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,
			WNN_VECT_BUNSETSU, &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)
w_char *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 <jserver ưƤ host-name>
yomi> ֤󤻤Ĥϡ礦֤󤻤ĤΤĤǡĤ礦ߤΤ
Ƥޤ

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

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

kanji> ʸϡʸǡ³Τޤ

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

- |פ- |ä- 줤- |-Ƥޤ |
> !

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

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

#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, 0)) == NULL)

ΰԤǡ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_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_hindo_file_create
		ꤵ줿ե id äե٥ե
		ꤵ줿ѥ̾Ǻ롣

js_dic_file_create
		ꤵ줿̾ǡ 0 Ͽǽμ롣

js_file_remove	Wnn Υեե륷ƥफä


ޤΤʤǡjs_hindo_file_create, js_dic_file_createϡ
jserver ΥȤ˺Τ饤ȡȤ˺Τǻ
ꤹ뤳ȤǤޤ(饤ȡȤϤޤݡȤƤʤ)

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

ϡfzk_file Ȥ file_id Ǽ줿ե env °ե
ȤꤷƤޤĶ js_connect Ǻ줿ˤϡδĶ
°եȤƤϡǥեȤ°ե뤬ꤵƤޤ
ǥեȤ°եϡjserverrc ǻꤷƤޤ

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

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

	js_dic_add(env, file_id, hfile_id, rev, prio, 
		rdonly, hrdonly, passwd_file, passwd_hfile)

ˤäơfile_id Ǽ줿եhfile_id Ǽ줿ե
٥եȤprio Ǽ줿ͥ٤ǡ٤줾 
rdonly, hrdonly Ǽ줿֤ env ɲä뤳Ȥ̣Ƥޤ
پȤƼեˤĤΤѤˤϡ軰
 -1 ꤷޤrev ˤϡѴԤʤɤꤷޤ
WNN_DIC_ADD_REV λѴWNN_DIC_ADD_NOR λ̾ѴǤޤ
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,KIHON_DIC)) == -1)
        err();
    if((rev_setto_file = js_file_read(rev_env,SETTO_DIC)) == -1)
        err();
    if(js_fuzokugo_set(rev_env,fzk_file) == -1)
        err();

    if((rev_dic_no = js_dic_add(rev_env,kihon_file,-1,
                                WNN_DIC_ADD_REV,1,WNN_DIC_RDONLY,
                                WNN_DIC_RDONLY, NULL, NULL)) == -1)
        err();
    if((rev_setto_dic_no = js_dic_add(rev_env,setto_file,-1,
                                WNN_DIC_ADD_REV,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,
                        WNN_VECT_BUNSETSU, &rb);

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

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

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


üˤĤƤϡ٥ȥ(ʻν)ֹ5,6˻ꤹ
뤳ȤˤꡢǸʸȤơΥ٥ȥü٥ȥȤƲ
̤֤ޤ5˻ꤷ٥ȥ³Τ
6˻ꤷ٥ȥ³Τꡢɾब⤯ʤޤ
6˻ꤹ٤٥ȥ뤬ʤϡWNN_VECT_NO ꤷޤ
ȥȤƤϡjslib.h  define Ƥ 4ĤΥ٥ȥ롢
WNN_VECT_KANRENWNN_VECT_KANTANWNN_VECT_KANZENWNN_VECT_BUNSETSU
ӡ Ϸ̤ȤƤ롢ƾʸü٥ȥ(ˤĤʤ
ȤΤǤ뾮ʸκǸʻ) ѤޤΥ٥ȥƤϡ
°եǻꤵޤ

7ˤϡϢʸѴǻȤ롢ʸڤܤΥ٥ȥ
ޤ̾ϡWNN_VECT_BUNSETSU ꤷޤ

ŪˡεɤΤ褦˻Ȥ뤫ޤ
[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]ȤĤʤäʸ褦Ѵ̤ޤ٥롦
饤֥ϡλʬǹԤʤʤƤ⡢Τ褦ѴԤ
褦˺Ƥޤ

Ǹʸʳʸνü٥ȥϡ7ǻꤷ٥ȥ뤬
Ѥޤ

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

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

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

	³ʸɾˡɤ뤫

ȤȤ򡢸ߵǤ

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

  ŪˤϡѴλˡξʸɾͤäƤäơ򸵤ˡ
³ʸɾͤ褦ˤ˵ʤǤ褦
Ǥ
  ޤüդƤ⡢Ǹʸ°Ϥ2Ԥü٥
ȥǤϤʤθʸɾͤäƤ뤳Ȥˤꡢʿ
ѴԤΤǤϤʤȤˤʤäƤƤޤ

ѴդƤϡ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_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_inspect(env, dic_No, entry, ret_buf)
	dic_No μ entry ܤ entry ˤĤơinspect Ԥ
		   
js_word_search_by_env(env,ɤ,ret_buf)
	ĶƤμΣФñ측Ԥ

js_who
	jserver λѼԤΰ롣

ޤ


٥롦饤֥

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

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

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

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



¾

(i) Υǥ쥯ȥѹ 

    С󣳤ǤμΥǥ쥯ȥϡ/usr/local/lib/dic/sys/*.sys
    ǤС󣴤Ǥϡ/var/dict/Wnn/sys/*.sys 
    ѹޤޤĶȽ뤿˥ѥ֥åޤ
    Ƥޤ( /var/dict/Wnn/pubdic/*.sys )
    桼ˤĤƤƱͤ /var/dict/Wnn/usr/桼̾/ud 
    ˥ǥ쥯ȥ꤬ѹƤޤ
    С󣳤ѤƤϡС󣳤Ѥ줿桼
    򼭽桼ƥƥѴ뤳ȤˤäơС󣴤Υ桼
    ȤƻѤ뤳ȤǤޤ
    [Ѵˡ]
	jdicutoa /usr/local/lib/dic/usr/桼̾/ud | oldatonewa
		| atod /var/dict/Wnn/usr/桼̾/ud [CR]

(ii) Ķѹ

    С󣳤ǤδĶեϡ/usr/local/lib/jd/wnnrc Ǥꡢ
    δĶեǡ°եʤɤ򤹤٤ꤷƤ
    С󣴤ǤϡĶե¿뤿
    /usr/local/lib/wnn/uumrc  /usr/local/lib/wnn/wnnenvrc Ȥʬ䤷
    Ƥޤܺ٤ϡƥեΥޥ˥奢򻲾ȤƲ
    
(iii) ޥ̾ѹ

    С󣳤Ǥϡưޥ̾ wnn ǤС󣴤Ǥϡ
    uum ѹƤޤ
    ( /usr/bin/wnn		/usr/local/bin/uum )

(iv) Хɽѹ

    С󣳤ǤϡХɽ wnnkey ǤС󣴤
    ϡuumkey ѹƤޤ
    ( /usr/local/lib/jd/wnnkey    /usr/local/lib/wnn/uumkey )


    ʲˡʥѹ򵭽Ҥޤ

		
	С    С   		ǽ        
	
	    ^W^G	       ^W^W	      ɽ   
	
	 ^W, ^N, 0x92	       ^N	  	ɽ      
	
		-	       ^Z 	  	ñѴ	
	
		-	       ^Z^Z	  ñɽ
	
		-       	 ^C	  	Ѵ	
	
	    0x96 	  ^^, 0x84, 0x96桼ƥƥ  
	
    
(9) 饤֥̾ѹ

    С󣳤Ǥϡ/usr/lib/libjd.a ǤС󣴤Ǥϡ
    /usr/local/lib/libwnn.a , /usr/local/lib/libgetopt.a ,
    /usr/local/lib/libwnn_m.a
    ѹƤޤ

    ޤ饤֥ؿѹޤ
    Υ饤֥ؿȤơjs ǤϤޤؿΥ饤֥
    ؿȤơjl ǤϤޤؿ򿷵ɲäޤ
    С󣳤Υ饤֥( jd ǤϤޤؿ )ѤƤ
    ϡС󣴤ˤơߴ饤֥꤬Ƥޤ
    θߴ饤֥ϡС󣳤Υ饤֥ؿ̾Υ饤
    ֥ؿ( js )ưޤ

          ףС󣳤ףС󣴤ؤѹ

     
          ףС	          ףС       	
     
      /usr/bin/wnn	              /usr/local/bin/uum      
     
      /usr/local/lib/jd/wnnrc       /usr/local/lib/wnn/uumrc     
     		     		      /usr/local/lib/wnn/wnnenvrc  
     
      /usr/local/lib/jd/wnnkey      /usr/local/lib/wnn/uumkey    
     
      /usr/local/lib/jd/dic/sys     /var/dict/Wnn/sys   
      		  	     	/var/dict/Wnn/pubdic
     
      /usr/local/lib/jd/dic/usr     /var/dict/Wnn/usr   
     
      /usr/lib/libjd.a	      /usr/lib/libjd.a	     
      			      /usr/lib/libwnn.a	     
      		  	     	/usr/lib/libwnn_m.a	     
      		  	     	/usr/lib/libgetopt.a	     
     
          	              			     
           ʸ		      ʸ ( Ver.3ʸƱ ) 
     				      ʸ ( ʸ )        
     
      ƥ༭	              	             
          kihon_1  (ܼ)	      pd-kihon.sys   (ܼ)    
          kihon_2  (ܼ)	      pd-tankan.sys  (ñ)    
          tankan_1 (ñ)	      pd-chimei.sys  (̾)    
          koyuu_1  (ͭ̾켭)   pd-jinmei.sys  (̾)    
          jim_1    (̳Ѹ켭)   pd-setsuji.sys               
          jyoho_1  ()  	             (Ƭ켭)
          			      pd-computer.sys()
     				      pd-koyuu.sys                 
     				       (̾̾ʳθͭ̾켭)
     				      pd-koyuu.sys                 
     				               (ΰ̸ƾμ)
     				      pd-special.sys (ü켭)  
     
      桼	              Ͽǽ             
     (٥ե˻Ƥʤ) (٥ե˻Ƥ) 
     
     		     		      ʻեؤΥȥ   
     				          ɲäϲǽ               
     				      (¤ѤԲ)       
     
      Ωʻ 32 	      Ωʻ 256 	     
     				          (ʣʻ ̵ۤ)    
     
     	桼ƥƥ	     				     
          atou  	              atod  -U                     
          atos		      atod  -S		     
          utoa  ,  stoa	      dtoa     		     
     				     
     		     		      wnnstat                      
     		     		      wnnkill                      
     		     		      wnntouch                     
     
      °եϥФ˰  Ķǽ	     
     
      饤֥ (jd)	              饤֥ (jd)              
     				      ٥饤֥ (js)      
     				      ٥饤֥ (jl)      
     
      ɤߤʸ¤  ɤߤ 2 Хȥɤǽ  
      		(256)	          (̾Ѵǽ)     
     
      ϥХޥˤ    饤ȤΥ¦   
          ֤ȤǤʤ	          ֤Ȥǽ           
     
     		     		      񥨥ȥΰŪǽ 
     				      (ͤ򤢤ͤ˥åȤ) 
     
     		     		      ,ʬ      
     				          ѥɤǽ     
     
     		     		      ,񥨥ȥ      
     				          Ȥǽ       
     
