	v  uS ɂ

ṽo[WSɂāAo[WR̕ύX_𒆐Sɂ܂Ƃ߂
܂BύX_́AɁÂR̗̈ɕ܂B

(1) ϊ  
(2)   
(3) Cu  

(1) ϊASỶǂ́Ão[WEAbv̒SۑłB
܂ŁAvł́AړAڔAȂǂɑ΂鏈܂
ƂwEĂ܂B邽߂ɁÃo[Wł́A
߂ƂTO𓱓AړAڔAȂǂA{̂ƂȂ镶߂
킹Ĉ̑啶߂Ƃ݂ȂĕϊsȂ܂BɂẮAŏ
qׂ܂B

(2) ɊւẮAȉ̓_ɂĕύX܂B
    ̓ǂ݂ɁA2 oCgR[hB 
    ̕i̎ނ𑝂₷B
    [UE`AVXeE`̊Ԃ̍APo^\ǂ
̓_ɗ߂B(ɔAOAo^\`AŒ`ƂB)
    t@CApxt@CɃpX[h݂鎖ɂAAp
x̍XV\Ȑl𐧌BɂȂ傫ɂȂ
΁Ao^\`݂̂pĎ̊ǗsȂ悤ɂB
    atou, atos, utoa, stoa ƂR}hAatod (eLXg to )A
dtoa ( to eLXg) ɂ܂Ƃ߁Ao^\`AŒ`̑IAIvV
ōsȂB
    ϊ̕ύXɔύXAtt@Cɂ킦B
    tt@CNCAgɎw肷邱Ƃ\ɂB    
     upload, download ̋@\B

(3) ܂ł̃CúAT[oŃNCAg̕ϊ̏ԂL
Ă̂ŁAuAߕϊvAu镶߂̎vAu߂
؂؂蒼ĕϊsȂvAupx̍XVsȂvƂv~
eBuŕҏWsȂĂ܂BÁAϊ̗Œ肵
Ă邽ߊgɖRƎv܂BۂɁA̃AvP[V
ł́AŒ񋟂ĂȊȎsȂ߂ɁÃv~eBȕ
ɐVCuƎɍāApĂ܂BAŒ
Ăv~eBu̕ϊ̗肵rI@\Ȃ̂
ȏAǂĂĂ܂BہApx̍XVmɍsȂ
ȂȂǂ̏QoĂĂ܂B

ŁA
  ̑Av~eBuȑłAuǂ݂ƂȂ镶
΂ĘAߕϊsȂԂvAuǂ݂ƂȂ镶ɑ΂ĒP
ߕϊsȂԂvAuǂ݂ƂȂ镶ɑ΂ĒPߕϊ
sȂSĂ̌ԂvAu鎫Gg̕pxllɃZbg
vƂɕA჌xECuƂĒ񋟂B
  荂@\ȑ́AxECuƂāA჌xECu
pč\AbCǔ`Œ񋟂B̃CuƈقȂ鑀
sȂꍇ́A჌xECupĎŃCu
邱Ƃ\ɂB
ƂjŁACu݌v邱Ƃɂ܂B

  ܂Aϊɗp鎫ZbgAtꎫAp[^[Ȃǂ̐ݒ́A
NCAgƂɎ̂ł͂ȂAT[oɁuvƂ݂̂A
ɑ΂ĐݒsȂƂɂA̃NCAg̊p
A̊𕡐̃NCAgp肷邱Ƃ\ɂ܂
B

  ̕ύXɂAT[oɁANCAg̕ϊ̏ԁȀ
ԂȂǂKvȂȂAT[oXe[gXɂȂ܂B

ϊASY̕ύXɂƂȂACu̕Ԃ̍\́AV3 
ȂقȂĂ܂B̓_܂߂āA჌xAxECu
p鎞̒ӓ_ɂāAɂӂ܂B


PDϊASY

V4 ̕ϊASÝAV3 ̏ꍇƓA̍ŌォOɌ
ĕ߂؂oƂ{ƂȂ܂B̍ہAV3 ł́A߂̒`Ƃ


	 :=  + tA
	tA := t*
	(AƕtAtƕt͐ڑ𖞂A
	ߓōŌ̌́A̕ȉW(߂̍Ō
	邱Ƃ̂łȉW)ɑĂB)


Ƃ`Ă܂BŁÁAt@C̃Gg
Aꂼ̎́Aǂ݁A̕iAϊ㕶Aɕpx
Ă܂B܂At́Att@C̃GgłAǂ݁A
̕iAɑOɂȉW(O[xNgƌĂ΂)Ă
܂Btǂ̐ڑ֌WAсAtƎ̐ڑ֌ẂA
ڑxNgɂă`FbN܂BtꂪĂȂƂ
ӂĉBtꂪĂȂƂɂAtAǂ
悤ȕi̕tꂩ\Ă邩ƂȂĂ̂ŁA
ȈՂŁAȕϊASY邱Ƃł̂łB

  ̉͂ł́Aړڔ̏Ȁ͍sȂĂ܂B
̌́AƂĈꕶ߂\邱Ƃɂ菈Ă܂B
Aړڔ̂悤Ɉꕶ߂ƂĎ舵Ă̂ł́Aϊ
Ȃ邱Ƃ͔܂BႦ΁AlɂڔuvuOv
̕]lɁAu΂₵vϊƁuюOvƂȂ
ϊ܂BAuсvlŁAlɂ́uOvu
vDIɕtƂ񂪂΁A̎̌ϊ͏Ȃ邱Ƃ
\ƍl܂B̂悤ȌϊȂɂ́A߂̒`g
邩A邢݂͌̕@gAߊԂ̂Ȃ
@Ƃ邱Ƃl܂BWnn Ver.4ō̗p@́A҂̐ܒĂƌ
̂łB

  Wnn Ver.4ł́Au啶߁vƁu߁vƌĂ΂A̃x̕
l܂Bu߁v̒`́AVer.3ɂu߁v̒`Ɠł
Au啶߁v́A߂̗ŁAڑ𖞂̂ƒ`܂B

ŁAAtƌĂ΂Ă̂́AXIɎAt
Ƃėė̂ƈقȂ܂BAł̖͂O
p鎖ɂ܂B

	 	:=  | t
	 	:=  + tA    
	啶 	:= *              
	tA := t*

(AߓŁAƕtAtƕt͐ڑ𖞂A
ߓōŌ̌́Ȁ߂̎Ɛڑ𖞂BŌ̏
߂̍Ō̌́A̕ȉW(啶߂̍Ōɗ邱Ƃ̂łi
̏W)ɑĂBŏ̏߂̎́A̕ȉWɑ
ĂB)


() ߁A啶߂̗

  Q   			 ߂
--  --  ---- 			-- ------
       			      
------------			---------
    				    	


	       PQR     O炢	
	   --    ------     --------------
	   |	    |	     	|	
	   |        |      (+t)
	          |     
	(ړ) ()
	         
		
		 H    
		-- ----    ------
		   	      
		------	   ------
		  	     

ߓm̐ڑ́Aŏqׂ悤ɁȀ߂̎ƑȌ
̍Ō̌̊Ԃ̐ڑƂė^܂B̏́Aꂼ̎ꖈ
ĂĂ͏ʂ傫߂̂ŁAiƂɕȋO[xNg
ƂĎ̂Ƃ܂BȋO[xNǵAł͂ȂAt
t@Cɗ^܂B́Aꂼ̎ɌŗLȂ̂ł͂ȂAt
Ԃ̐ڑƋɎw肳ׂ̂łB̈ӖŁAtt@
CƂO͕sK؂ŁAڑt@CƂłOςׂ
܂񂪁Autt@Cv̂ق݂āAtt@C
w肷郉Cu֐łAset_fuzoku ƂO킩₷̂ŁA
̖OĝƂ܂B̎ɂẮA{I 
Ver 3 ƕςĂ܂B

ǂꂪ߂ɂȂ邩́Att@Cɂ܂Bɋ́A
gĂtt@Cɂ̂łBŌ̗ɑ΂āA̑啶
ɂȂė~Ɨv]lł傤BꂩARŐmȕϊ
ڎwāAtt@C̓e͏Ăł傤B

  ܂ł́u߁vɓ̂́Áu啶߁vłB̒`ɏ]
啶߂؂óA{Iɂ́AVer.3 ƓlȑsȂ܂B
Ȃ킿A啶߂ n ؂oĂāA̕]l̘aőȂ̂
Ō̑啶߂m肷ƂȂO[ɗ܂ŌJԂ̂
B܂ŕ߂̕]lvZĂƂ낪Au啶߁v̕]lvZ
邱ƂɂȂ̂łAp[^̐́Au.3 肸ƑȂA
p[^̒ߕ\ςŁAlꔪꂵĂ܂BAp[^
̒ߕŁAȂǂϊꂻłB

ƁAϊɊւāAׂ_FXςĂ܂ÂȂł
ɑ΂ϊAʔłB

Ƃ΁Au2456vϊƁA2456 ԂĂāAƂāA

	2456  QSTU  lܘZ  lS܏\Z  QCSTU
	2A456  蔎l虌ޏEZ

ԂĂ܂BŁAlS܏\Z IƁA 123 Ȃǂ̐
ϊɁAS\O ԂĂƂɁAǂ̌`ňȑOI
ꂽIɋLĂ܂B܂AAXLAa ϊ 
 ԂĂƂɁApASpԂ̕ϊT|[gĂ܂B

(ȑOIꂽl̃ZbǵApxl̐ݒ̃CuōsȂ܂B)


QD

  ܂ł́AɁAǂ݂Ƃċ镶̎킪Ȃ萧Ă
BŁAǂ݂ɔCӂ̂QoCgR[h悤ɂ΁A
̉\oĂ܂BΐAƑgݍ킹΁A
́uǂ݂vɉpł܂B܂AtKiAȂǂ
ǂ݂̏Ƀ\[gAxϊ̂ĕϊA邢́A
ɑ݂镶͂ob`ɕpxW߂Ap͈͂̍LZpłB
  Ver.4 ł́Aǂ݂ Q oCgňĂ܂BāAǂ݂̕Ɗ
̕ЂԂ邱ƂɂāAϊsȂ
ł܂BۂɊϊɎgĂ݂ʂł́AȂ̐mł
ϊ܂B

  i̎ނ́A܂ 32 ɐĂ܂ÁA256 
܂Ŋg܂BɉāAiقږɒ`邱Ƃ
ł܂B̕íAT[op邾ł͂ȂA鎞A
eLXgɖ߂A邢́ANCAg̒Po^̎ȂǁAFX
ȃvOŋLłBtt@C߂ɂ́AV
iKvɂȂ邱ƂXł傤BƂāAɏ
Ă͍̂łB[UƂɎĂ悤ɂ΂m܂
񂪁Ap鎞ɁAقȂiɍꂽĎg
Ƃ͂łȂ߁AčƂɂȂ܂BŁAuit@
CvpӂāÃt@Cɑ΂ẮAGg̒ǉ͔F
߂邪A폜Aוς͔F߂ȂƂɂ܂Bit@ĆAȉ
悤ɁAiAȉׂPȍ\Ă܂B

....
....
		
l		
n		
ln/l:n	;l, n
....
....


jserver 𕡐A邢́Att@CقȂTCg
ŏɏĂƂlƁAit@C̊Ǘ́A̉ۑ
ƂȂĂłBȂAit@C̏̓RlNV𒣂ɁA
jserver NCAgvOփ_EE[hĂ̂ŁAN
CAgvOit@CڌKv͂܂BNC
AgEvO炱̏ɃANZX郉Cu݂܂B

  ܂ł́A[U`AVXe`̂Qނ̎pĂ܂B
O҂́APo^\ǁApxt@COɎƂłȂ`
ŁA҂́APo^͂łȂǁApxt@COɎƂ
Aꐔ̏ꍇA邱Ƃł`łBA[
U[`̎pxt@COɎƂ\ɂ̂͋ZpIɌ
ēł͂ȂA邱ƂɂȂ傫rI
ȂȂTCgł́Ǎ`ƂĂ͂Pނōςނ悤ɂȂ܂B
ŁAVer.4 ł́A܂Ń[U`̎ƌĂ΂Ă̂ɑ΂āAp
xt@COɎƂ܂B

  ȂƁA[U`AVXe`ƂO͕sK؂łBŁA
܂Ń[U`ƌĂ΂Ă͓̂o^\`AVXe`ƌĂ
Ă̂͌Œ`ƖO߂܂B[U`̎Lg
邱ƂlA̓`ÂȂ悤ȕύX
Ă܂B܂A܂ő݂ꐔȂǂɑ΂鐧͂قƂǂ܂B
A(OUJIS)255oCgȓƂ͎cĂ܂B

̑傫́A܂łƂقƂǕςĂȂƎv܂B

	kihon_1  ꐔ 		59,717
	
	eLXg`		1,567,388
	[U`		1,783,214
	VXe`		  956,294
	o^\`		1,735,680
	Œ`		1,190,742


  o^\`̎FŋL邱ƂɂA̓eɁuoOv
ɁAIɃoOC邱Ƃł܂B܂łƁAUeLXg`
ɒāAoO𒼂āAĂуCXg[Ƃ葱𓥂
ȂĂ͂Ȃ炸Aʓ|Ȃ΂肩AƁA܂ŌlĂp
xt@CׂĎgȂȂƂɕsւȏԂɂ킯łB

  A̕iۂ߂ɂ́ANłP̓o^A폜sȂ̂
͖肪܂BŁAɃpX[h邱Ƃɂ܂B
ɂāÃeiXȊO̐lAԈāA邢͈ӓI
ɎƂƂhƂł܂B̃pX[h́A
̂hŁAϊɗp邱Ƃ𐧌̂ł
܂B
  AX̃[U̎ɃpX[hėp邱Ƃ
\łB̎AgxɃpX[hłނ̂ł͂Ă
܂BŁAxECuł́At@C̎ŵ
ŃpX[h̓Ăt@Cw肷邱ƂɂACu
̃t@CǂŁApX[hT[oɑ悤ɂȂĂ܂B
́AUNIX t@CVXe read permission ŃpX[h̓t@
Cی삷Ηǂ̂łBƓlɁApxt@CpX[ht
悤ɂȂĂ܂B

  vł́Apxt@C̑ɁA̓ɂApxg
܂B̕px́Ao[Wł́A[U`ł͕pxƂāA
VXe`ł́Apxt@C鎞̏lƂėpĂ
BȂ킿AVpxt@Cɂ́A̕px̓
eRs[āApx̏lƂĂ܂BAł́Aŕpx
W߂ăeLXg`̎ɖ߂ƂɁApxl̏WvȂ
܂B܂ApxlƂāAƂƂ̒lƎglƕʁXɌ
vł傤BŁAVer.4 ł́Apxt@CV
ɂ́AׂĂ̍ڂ̕pxl O ł悤ȕpxt@CApx
lƂāA̕pxlƕpxt@C̕pxl𑫂̂p邱
ɂ܂B
  lgȂ̏ꍇApxt@C̊Oɍ͖̂
ʂłB܂A̐lœpxpꍇɂApx͎ɂ
ł傤B킯ŁApxt@Cw肹Ɏp
ƁA̕pxpAXVĂ܂BłApubdic Ȃ
ŏWvpxAƂȂpxƂĔfꍇɁAX̃[U̕px
t@C蒼ȂĂApxVlɃZbgĂ΁A
ƂɂȂ܂B̎ɑ΂āAOɕpxt@CĎg
pƂgp@ƁA̕pxpƂgp@𕹗p̂́A
ʂɂ͖]܂gł͂܂B̂悤ȂƂh߂ɁA
̕pxɂpX[h邱Ƃ\ɂȂĂ܂BɂāA
(pX[hvȂꍇA)pxt@Cw肹ɁApxXV
[hł̎gp鎖s\ɂȂ܂B

NɂgƂ̂łȂpX[h(atod ̎ɕt鎖o܂)
{́ApxɂĂꍇA

  {	px	

  pX[hL	pX[hL     pxt@CpAo^s\
  pX[h	pX[hL     pxt@CpANło^\
  pX[hL	pX[h     px͋LAo^͂łȂ
  pX[h	pX[h     px͋LANło^\

ƂƂł傤BApxɃpX[hĂȂ
Apxt@COɍĎp邱Ƃ͉\łApX[
h̖łA܂łƂA{́A邢͕px[hEI
[ŗp邱Ƃł܂B

  pxɂẮAVApxlpăGg̈ꎞI폜sȂ
Ƃ\ɂ܂BȂ킿ApxllɃZbg΁ÃGg
[́Aϊ̎ɗpȂƂ̂łB̂ĺACu
ł(px) -1(WNN_ENTRY_NO_USE) ɂȂĂ܂Bpxt@Cw肵
ĂȂꍇɂ́Apxl̒lȂ΁A܂Aw肵Ăꍇ
́Apxt@Cl͎pxl̂ǂ炩̒lȂ΁ÃG
ǵAꎞ폜ꂽƂɂȂ܂BɂāAFŋLĎgp
Ă鎫ɎɂƂĕsKȒPꂪ݂ĂꍇɁAϊ
̑Ώۂ珜O邱Ƃł܂BeLXg`ł́A폜ꂽGg
͕px̕ "-" Ŏ܂BeLXg`ŁAGgɁA
RgAEgȂǂ̕@ŎۂɏĂ܂ƁAatod ŎĂ
 dtoa ōĂуeLXgɖ߂ɁAGg[Ă܂܂Bp
x "-" ɂ鎖ɂGǵAۂɏ킯ł͂
܂񂩂A̓eҏW鎞ɁA֗łBxECu
́AGg̈ꎞ폜̂߂̃Cu֐pӂĂ܂B

  Ver.4 ł́AɃRgt邱Ƃo悤ɂȂĂ܂B
(RgƂAjbNl[ƌm܂juum
́AAPo^Ȃǂ̎̎̎wɗp悤ɂĂ܂B
usr/pubdic/pd-chimei ƂȂo^鎫IԂA
unvƂjbNl[Ȃo^鎫Iׂ֗
Ȃ̂́AĂł傤B

܂ARǵAeGgɂ邱Ƃ\ƂȂĂ܂B
́AeLXg`ɒĎҏW鎞܂̂ŁA̕ҏW
֗Ǝv܂B

̃pX[hARgȂǂ͎̍쐬Ɏw肵܂Ałɑ
鎫ɑ΂āA̕R}hpӂĂ܂B
́ÂƂAœ悤ɍĂ܂Aʂ̒[p
̂̂ꂩKvł傤B

  ܂܂ atou, atos, utoa, stoa ƌĂ΂ĂR}h́Aatod (eL
Xg to )Adtoa ( to eLXg) ̓ɂ܂Ƃ߂Ă܂Bo
^\`AŒ`̑ÍAatod ̃IvVōsȂ܂B

  ̃eLXg`ɑ΂ĂA₷̊ϓ_ύXĂ
Bi͐ł͂ȂAi܂BpxlƂāAkꂽl
͂ȂAۂ̎gppx(ɋ߂ljo܂Batod sȂɎ
\[ĝŁAeLXg`̎쐬鎞ɂ́Aڂ͂ǂ̂
ȏł\܂BɂAeLXg`̎̕ҏW₷
܂Bdtoa ́Aǂ݂̏Ƀ\[gꂽ`ŏo͂܂B

  tt@ĆA Ɉ݂̂ł͂ȂA
ݒł悤ɂȂ܂BɂẮACu̍QƂĉB

ϊ̕ύXɂƂȂAtt@C̓eAсAR}
hύX󂯂Ă܂B̂ƂɂẮAł͏ȗ܂B

  NCAg炕@\t܂B
́A܂AT|[gĂ܂Bo[Wɂ͊Ԃɍ킹\
B



RD Cu  

Ver.4 ł́ACuƂāAjserver Ƃ̒ʐMƊ{IɂP΂PɑΉ
Ă჌x()CuƁACupčꂽAx
()Cu܂B

჌xECúAׂv~eBu\AxEC
úAϊ̗ɉx̏Ă܂B
΁AϊɊւẮACuł́A
	ǂ݂ɑ΂āAAߕϊԂ(kanren)
	ǂ݂ɑ΂āAPߕϊԂ(kantan_dai, kantan_sho)
	ǂ݂ɑ΂āAPߕϊSԂ  (kanzen_dai, kanzen_sho)
	Gg̕pxllɃZbg(hindo_set)
Ƃ֐{ƂȂ܂B

ɑ΂āACúAϊ̗𕶐߂̗ƂĎĂA
	ǂ݂^āAAߕϊ(ren_conv)
	߂̋؂ςĕϊ(nobi_conv)
	镶߂̎ԂB(zenkouho, zenkouho_dai)
	(ϊ̗ɊÂ)pxl̍XVsȂ(update_hindo)
Ƃ֐{ƂȂ܂B

჌xECů֐́Ajs_ ł͂܂閼OĂAxE
Ců֐́Ajl_ ł͂܂閼OĂ܂Bł́A܂A
჌xECuɂĐǍɁAxECuɂ
Đ܂B


RDP@჌xECu

܂A჌xECuɂĎgpȉ̊TOɂāA܂Ƃ
Ă܂B

	NCAg
	
	t@C
	mD

NCAg
  jserver ƒʐMHAvP[VEvÔƂNCA
gƌĂт܂B̌vZ@ jserver Ă鎞ɁA̃vO
́A jserver ̃NCAgɓɂȂ邱Ƃo܂B


  ϊ̎sʂ́Agp鎫ƕpxt@CAgpt
t@CA邢́Aϊp[^̐ݒƂ̂ɂāAς
܂B̐ݒ́Ajserver ɁuvƌĂ΂̂A
ɑ΂čsȂ܂BāAϊ̑́AƂēǂ݂̕ƋɁA
w肵čsȂ܂B
  ̃NCAǵAjserver ɕ̊Aϊ̓xɈقȂ
p邱Ƃł܂B܂A̊𕡐̃NCAgԂŋ
L邱Ƃ\łB̎ɂ́Åɑ΂鎫ǉȂǂ̑́A
̊gpĂ鑼̃NCAgɂf܂B

   jserver ɍ̂łAjs_Cuł́Ajserver id 
  jserver ̊ id̃yAƂĂ܂BłA
̎ẃAϊsȂ jserver ̎w܂ł܂B

t@C
  Wnn ɂẮAt@CȂǂ̃t@C jserver ɓǂݍޓ
ƁAt@CƂėpȂǂƂt@C̎gpJn铮
́AʂĂ܂B́Ajserver pt@Cɂ́At@
CApxt@CAtt@CƂނAނƂɎgp
@͈قȂ̂łAt@CƂĂ̓(ւ̓ǂݍ݁A
AgpĂȂt@Cォ̂Ă)́Aǂ̎ނ̃t@C
łĂʂłBɁAt@C̓ǂݍ݁AoɊւ
́Ajserver ڍsꍇƁANCAgǂݍ jserver ɑM
(邢́AtɁAjserver MăNCAg̃t@CVXe
ɏ)ꍇ܂BNCAg̃[J̑MAT[
o[̃t@CVXe̓ǂݍ݂t@C̎ނƂɁAt@C
̎gpJnɎw肷̂At@C̓ǂݍ݁AM̃v~eB
uƂm낤Ƃ|łB

Cuł́At@C̍쐬Ɠǂݍ݂Ǝgpɂ܂Ƃ߂
Cu֐QpӂĂ܂B

mD
  ́Apxt@Cw肵Ďgp邱ƂAw肹Ɏgp邱
ł܂BłAɃZbĝ́Aƕpxt@C̑gA
́AłBɎZbg鎖ɂ ID Ԃ܂A
 ID  mDƌĂт܂B
  mDɕtƂāAt@CApxt@C̑ɁA
̃vCIeBAenable/disableAApx̏݋̏
܂B

ȒPȗʂ჌xECu̐

ȉAȊϊAyсAȕϊsȂȒPȃvOƂ
āA჌xECu̎g܂B
#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(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,
			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);
}

-------------------------------------------------
̃vO̎sĂ܂B

% kankana <jserver ̓Ă host-name>
yomi> Ԃ񂹂́A傤Ԃ񂹂̂ŁA傤݂̂
Ă܂B

- -́A |- - |-ŁA |ڑ- |- |- |- |`-
܂B |
yomi> ̂Ղ낮ނ̂ꂢ߂Ă܂B

- |vO- |s- - |-Ă܂B |
yomi> @

kanji> 啶߂́A߂̗ŁAڑ𖞂̂ƒ`܂B

- Ԃ񂹂-́A |- Ԃ񂹂- |-ŁA |- |傤- |
- |- |Ă-܂B |
kanji> ̃vO̎sĂ܂B

- |Ղ낮- |- ꂢ- |-Ă܂B |
> !

-------------------------------------------------
vO̐

̃vOpŁA჌xECu̎gɂĐ܂B

#include "jslib.h"

include/jslib.h ɂ́ACuŗp\́A}NȂǂ̒`
ȂĂ܂BCuŒ񋟂֐A\̖A}ŃA
"js_*" ܂́A"wnn_*" (xECuł "jl_") ƂO
Ă܂̂ŁAȌՓ˂NȂ悤ɒӂĉB

static struct wnn_ret_buf rb = {0, NULL};

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

܂ł̃Cuł́AϊȂǂ̕ϒl̈́ACuĂ
ŗpӂÄ̗ɓ؂Ȃꍇɂ́AG[ɂȂ܂BʂɁA
Cup鑤ŁAǂꂾ̗̈悪Kv͂킩Ȃ̂ŁA傫
ƂȂ܂BŁAVer.4 ł́AKv΁ACȗ
reallocsȂƂdlɂȂĂ܂Bs蒷̕ϒlԂ֐́A
(struct wnn_ret_buf *) ̈܂B̃|C^̐ɂ́Amalloc 
܂ realloc Ŏꂽ̈ƁȂ傫̃yA^Kv
܂B

	if((js=js_open(mname, 0)) == NULL)

̈sŁAjserver Ƃ̒ʐMHݗAjserver ̃NCAgɂȂ
Bmname Ƃ̂́Ajserver ݂̑vZ@łBvZ@Ƃ
kEXgO^ꂽɂ́AUNIX hC̒ʐMsȂ܂B
js_open ́AԒlƂāAjserver_id Ԃ܂B̒ʐMH́Ajs_close 
ɂĖIɐؒf邩AvOI܂ŗLłB

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

ɁAjs_connect ɂA jserver ɍ܂Bǂ jserver 
Ɋ邩́A jserver_id nƂɂw肵܂B
"kana" ́AłBjs_connect ́A jserver 
݂鎞ɂ͂ id ԂȊO̎ɂ͐V jserver 
ɍA id Ԃ܂B́ÃvZXň̊L
邽߂ɗp܂BȂ킿ÃvZX "kana" Ƃ
Ƃjs_connect Ă񂾏ꍇÂƂ́A
ꂽ̂ƓłB̃vZXƋL邱Ƃ̖(ԈāA
LꂽȂ)肽ꍇ܂Ȁꍇɂ́A
Ƃċ󕶎nĂ܂BɂAjserver ͏ɐV
AԂ܂B̏ꍇAԂĂAL邱
͂܂B

̎gpIɂ́Ajs_disconnect p܂B܂AʐMH
ɂ͎IɊ̎gpI܂B́ÅpĂN
CAgȂȂɁAjserver ȂȂ܂Bȉ̃Cu
֐ł͊Ƃ݂̂܂Å́A
js_connect ł̃vZX󂯎̂łKv܂B́A
̃vZXɏɊɑ΂ăANZX邱Ƃh߂łB

    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();

ŁAtt@CAю jserver ɓǂݍł܂B
js_file_read ́Ãt@C jserver ɑ݂Ȃɂ́At@C 
jserver ɓǂݍ݂ Fid(t@C ID) ԂAjserver Ɋɑ
Ă鎞ɂ͂ id Ԃ܂B܂Ajs_file_send ́ANCAgE
TCg̃t@Cǂݍނ̂Ɏgp܂Bjserver ́At@C̓ꐫ
̃`FbNɍsȂĂ܂̂ŁANCAgƃT[o瓯̃t@
Cǂݍ񂾂ƂĂÃt@C[ɓȏ㑶݂
Ƃ͂܂Bjs_file_read, js_file_send sȂƂɂAt@
C͊ɐڑ܂BFid ́Ajserver Ńj[Nɑ݂̂
Ãt@Cɑ΂ăANZX邽߂ɂ́At@Cڑꂽ
ĂKv܂Bjs_file_send, js_file_receive ́A݂
o[Wł́A܂T|[gĂ܂B

jserver ̃TCg̃pX̎ẃAtpXŎw肷邩AJSERVER_DIR 
ƌĂ΂fBNg̑΂Ŏw肷邩܂BJSERVER_DIR ́A
jserverrc ̒Ŏw肳Ă܂B

  jserver ɓǂݍ܂ꂽt@ĆAjs_file_discard ɂāA
؂藣܂B܂Aɏł΁AIɂ̊؂
܂BāAt@Cɑ΂ĐڑĂȂA
̃t@C jserver ł܂Bt@CɂẮAjserver 
ǂݍłԂɓeXVĂ邽߁A̍XVꂽet@C
EVXeɏ߂KvoĂ܂BsȂ̂Ajs_file_write,
js_file_receive łB

  ̑ɁAt@CɊւ郉CuƂẮAjs_file_list (ɐ
Ăt@C̏ꗗ𓾂)Ajs_file_list_all (jserver ɓ
ݍ܂Ăt@C̏ꗗ𓾂)Ajs_file_info (̃t@C
ɂĂ̏𓾂B)܂B

܂AAvP[V߂ɂ́Ajserver ̂TCg̃t@CE
VXeɊւ𓾂KvĂ܂B̂߂ɁAjserver TC
gł̃pXƂĎ郉CuƂ

js_access	w肳ꂽt@C(jserver ɑ΂)ANZX𒲂ׂB

js_file_stat	w肳ꂽt@C̓e(Apxt@CBtt@C
		̕ʁAt@CɕtĂRg)𓾂
		
js_file_loaded	w肳ꂽpX̃t@C jserver 
		ǂݍ܂Ă邩ǂׂB

t@CVXeɊւāAn߂ăAvP[Vgl̂߂̃[U
pxt@CKv܂B̂߂̃CuƂāA

js_mkdir	w肳ꂽÕfBNgB
		΃pX́AJSERVER_DIR ̑΂Ŏw肷B
		w肳ꂽƂɂǂłĂ܂̂ŁA
		jserver ɋ^Ă͂ȂB
		(root ő炷ȂǂĂ̂قB)

js_hindo_file_create
		w肳ꂽt@C id t@C̕pxt@C
		w肳ꂽpXōB

js_dic_file_create
		w肳ꂽOŁAꐔ 0 ̓o^\`̎B

js_file_remove	Wnn ̃t@Ct@CVXeB


܂B̂ȂŁAjs_hindo_file_create, js_dic_file_creatéA
jserver ̃TCgɍ̂ANCAgETCgɍ̂AŎw
肷邱Ƃł܂B(NCAgETCg͂܂T|[gĂȂ)

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

́Afzk_file Ƃ file_id Ŏꂽt@C env ̕tt@
CƂĐݒ肵Ă܂B js_connect ōꂽɂ́Å
̕tt@CƂẮAftHg̕tt@Cݒ肳Ă܂B
ftHg̕tt@ĆAjserverrc ̒Ŏw肵Ă܂B

    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();

́Akihon_file, setto_file Ƃ file_id Ŏꂽt@C 
env̎ƂĐݒ肵Ă܂B

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

ɂāAfile_id Ŏꂽt@CAhfile_id Ŏꂽt@C
pxt@CƂAprio ŎꂽDxŁAApxꂼ 
rdonly, hrdonly ŎꂽԂ env ɒǉ邱ƂӖĂ܂B
pxƂĎt@C̓ɂ̂gpꍇɂ́AO
 -1 ݒ肵܂Brev ɂ́AtϊsȂǂݒ肵܂B
WNN_DIC_ADD_REV ̎AtϊWNN_DIC_ADD_NOR ̎Aʏ̕ϊłB܂A
rdonly  WNN_DIC_RW ̎Aǂݏ\AWNN_DIC_RDONLY ̎XVs\
ӖĂ܂B܂Aɂ́ApX[hĂ邱Ƃ܂
(Q)BpX[h̎ApxA[hEI[łȂԂŗp
ɂ́Aꂼ̃t@C̃pX[h攪AƂė^
Kv܂Bdic_add ́AԒlƂāAmDԂ܂Bȍ~
̎Apxt@Cւ鑀́A dic_No pčsȂ܂Bt
t@C͊ɑ΂Ĉ݂̂łÁA̊ɕ
ݒ肵ĂSĂϊɗp܂Bł́A̎ݒ肵Ă
܂B

ɐݒ肳Ă mDɊւ𓾂郉CuƂāA
js_dic_list ܂B܂AmD疳ɁAꎞIɖ
ɂ邽߂̃Cu (js_dic_use)܂B

  mDOɂ́Ajs_dic_del p܂B

  ɑ΂ݒƂẮAAtt@C̑ɁAϊp[^[
܂Bϊp[^ɊւẮAjs_param_set ɂĐݒs
Ajs_param_get ɂČ݂̐ݒ̏Ԃ𓾂܂Bϊp[^Ɋ
ĂAftHgl jserverrc ɏĂāA js_connect 
ꂽɂ́A̐ݒ肪p܂B

    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();


L̂Ȋϊp̊Ƃ͕ʂɁAAȕϊp̊
Aɑ΂ĐݒsȂĂ܂BŁAfzk_fileƂẮAt@
CIDԂĂ͂łAfzk_file Ɋ֌Wfile_read ēxsȂ
Ă邱ƂɒӂĉBqׂ悤ɁÅɑ΂
file_readɍsȂĂȂƁÃt@C̊ŎgȂłB

    henkan();

henkan ̒ǵA䗗̂悤ɁAǂݕ𓾂āA UJIS R[hɕ
āAϊsȂAʂ\Ƃ̂łBjserver 
̒ʐḾA{̃R[hƂāASē UJIS pčsȂ܂B

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

́AAߕϊsȂCu֐łBɐʂAϊ
̊֐́ASāA(c_env)ƁAǂ(u), ʂ̈ւ̃|C^
(&rb)ƂĎ܂B̂T̈́Aϊʂɉe^
p[^ƂȂ̂łB
RAŚAϊ̐擪ɊւݒA
T́Aϊ̏I[ɊւݒłB

Oɂqׂ悤ɁAVer.4 ł́A啶߂Ə߂܂BAߕϊ
́Aϊ̌ʕԂĂ̂͑啶߂̗łAw̎dɂẮA
擪̑啶߂эŌ̑啶߂́ASȑ啶߂ł͂ȂA啶߂̕
Ԃ邱Ƃ\łBɂāAO[ƏI[ɐڑ̐
^ĕϊsȂƂł܂B

̓Iɂ́AO[̐ݒɂẮA鏬߂̎̕iƕt
3A4Ŏw肷邱ƂɂA擪̑啶߂ƂāȀ߂ƂȂ
đ啶߂\鏬ߗ𓾂邱Ƃł܂BO[̐ݒsȂ
ɂ́AWNN_BUN_SENTOU RƂĎw肷΁AO[啶߂̑O[
Ȃ悤ɕϊs܂BWNN_ALL_HINSI RƂĎw肷΁A
O[߂̑O[ƂȂ悤ɕϊs܂B̏ꍇɂ́A擪̑啶
߂͋[IȂ̂ƂȂ܂B


I[̐ݒɂẮAxNg(ȉW)̔ԍ5,6Ɏw肷
邱ƂɂAŌ̑啶߂ƂāÃxNgI[xNgƂĉ
ʂԂ܂B5Ɏw肵xNgɐڑ̂̕A
6Ɏw肵xNgɐڑ̂A]Ȃ܂B
6Ɏw肷ׂxNgȂꍇ́AWNN_VECT_NO w肵܂Bx
NgƂẮAjslib.h  define Ă 4̃xNgA
WNN_VECT_KANRENAWNN_VECT_KANTANAWNN_VECT_KANZENAWNN_VECT_BUNSETSUA
сA ͌ʂƂĂAe߂̑O[xNg(OɂȂ
Ƃ̂ł鏬߂̍Ō̕i) p܂B̃xNg̓éA
tt@CŎw肳܂B

7ɂ́AAߕϊ̓rŎgA߂̐؂ڂ̃xNgw
܂Bʏ́AWNN_VECT_BUNSETSU w肵܂B

̓IɁA̋@\ǂ̂悤Ɏg邩܂B
e[i]߂ƂAa 啶߂̋؂Ƃ܂Bŏ̕ϊŁA

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

ƂʂꂽƂ܂BŁA[1],[2],сA[7]ȍ~͐
ϊĂāA[3]  [6] ͓ǂ݂ԈႦ߂ɌϊN
ĂƂ܂Bɑ΂āA[3]  [6] ܂ł̕߂ēǂ݂
ĕϊƂ܂B̎A[2] ̕߂̏3A4Ƃ
ė^A[7]̏߂̑O[xNg5Ƃė^A[3]  [6] 
ł̓ǂ݂^邱ƂɂāAႦ

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

ƂߗŁA[3']  [1],[2] ƂȂđ啶߂\A[6']  
[7]ƂȂđ啶߂\悤ȕϊʂ܂BxE
CúAO̎wōsȂȂĂÂ悤ȕϊs
悤ɍĂ܂B

Ō̑啶߈ȊȎ啶߂̏I[xNǵA7Ŏw肵xNg
p܂B

O[̐ڑw肵ĕϊsɁA̐ڑ𖞂̂
ꍇɂ́A啶߂̐擪ƂȂ悤ȌʂԂ܂B݂
Ȃꍇɂ́A߂̐擪ƂȂ̂Ԃ܂B̏ꍇɂ́A
Ă̂́A[Iȑ啶߂łB

ꂼ̏߂́A status ƂāAOւ̐ڑ󋵂Ă܂B
status WNN_CONNECT Ȃ΁AȌ߂ɐڑĂA
WNN_SENTOU ȂA啶߂̐擪łB
WNN_NOT_CONNECT ȂA啶߂̐擪łȂAOɐڑȂ??? (Ӗs)
WNN_GIJI ȂA[߂łB

́Aڑ󋵂̐ݒ́A啶߂Ƃ̂lKvł͂܂A
XłBɁA

	Oɐڑ镶߂̕]@ǂ邩B

ƂƂA݋c_łB

݂̏A̖ɕtẮAOɐڑ镶ߗ́A]lQ{Ƃ
]i߂邱ƂɂAD悵ďo悤ɂA啶߂̐擪ƂȂ
߂擪Ƃĉ͂Iɂ́A̕ߗ̕]lP^Q
āA啶߂̐擪ƂȂ̂D悳悤ɂĂ܂BAO[
Ƃ WNN_BUN_SENTOU w肵ĕϊɂ́AO҂͍̏s킸A
WNN_ALL_HINSI w肵ĕϊɂ́Ȁs܂B

  Iɂ́Aϊ̎ɁAȌߗ̕]lĂāAɁA
Oɐڑ镶ߗ̕]l߂悤ɂɋc_ił悤
łB
  ܂AI[ɕtĂAŌ̕߂͕t͂2sAI[xN
gł͂ȂǍ̕ߗ̕]lĂ邱ƂɂA
ȕϊŝł͂ȂƂɂȂĂĂ܂B

ϊɕtẮAjs_kanren ̑ɁAkantan, kanzen ܂A
O[AI[̐ڑw肵ĕϊs܂B

kantan, kanzen ɂẮAkantan_dai, kantan_syo Akanzen_dai,
kanzen_syo Ƃʂ܂Bkantan_sho, kanzen_sho ́A^ꂽ
񂪈̏߂𐬂̂Ƃĕϊs܂Bkantan_dai,
kanzen_dai ́A^ꂽ񂪈̑啶߂̕𐬂߂̗
̂Ƃĕϊs܂B

px̍XVɕtẮAjs_hindo_set(env,dic_No,entry,ima,hindo) (鎫
̂Gg̕pxAgrbg̒llɃZbgB) 
p܂BŁA^pxńApxl(jserver ̒ňkĎ
Ălł͂ȂAۂɎgꂽ) łBgrbgApx̒l
́AʁXɎw肵Aǂ炩̒lωȂɂ́A̒l
WNN_HINDO_NOP ƂĂ܂BpxɕtẮAlw肵ăZbg
ł͂ȂAWNN_HINDO_INC (pxPグ) WNN_HINDO_DEL (pxP
)܂BWNN_HINDO_INC ĂAIɂ͕px͈kĎ
Ă̂ŁAKオƂ͌܂B̑ɁAWNN_ENTRY_NO_USE
w肷ƁÃGǵAȍ~̕ϊŗpȂȂ܂B
(}CiXɃZbgƂł傤B)

js_close(js);	

ŌɁAjs_close ĂŁARlNVؒfĂ܂BRlNV
ؒf邱ƂɂÃRlNVNSĂ̊́ÃN
CAgƋLĂȂȂȂÅœǂݍ񂾃t@C
ŁÅǂݍ܂ĂȂ̂͑Să[ォJ
B

̑̒჌xECuƂāA

js_dic_info(env,dic_No,ret)
	dic_No ̎ɕtĂ̏𓾂B

js_word_add(env,dic_No,ǂ,,i)
	dic_No ̎No. ɁAPo^B

js_word_delete(env,dic_No,Yomi,jisho_entry)
	dic_No ̎P폜B

js_word_search(env,dic_No,ǂ,ret_buf)
	dic_No ̎ɒPꌟsB

js_word_inspect(env, dic_No, entry, ret_buf)
	dic_No ̎ entry Ԗڂ entry ɂāAinspect sB
		   
js_word_search_by_env(env,ǂ,ret_buf)
	̑SĂ̎mDɑ΂ĒPꌟsB

js_who
	jserver ̎gp҂̈ꗗ𓾂B

܂B


RDQ@xECu

xECuł́A[U̕ϊ̗uobt@vɎcƂɂA
	ꂼ̕ϊs̑O[A[̐ڑȂǂ̐ݒsB
	pxXV鎞ɁAIȂɑ΂grbg𗎂ƂB
Ƃ܂B܂A
	A̒̐ݒ̕֋Xv܂B
鎞ɂ́Aŏ̕ϊŕԂĂ̐擪ɎĂA
₪dȂ悤ɂȂǂ̏Ȃ܂B

uobt@v͕Ƃo܂B̎AsKvɂȂA
jserver Ƃ̒ʐMH̔jȂǂ̖ʓ|܂B

Ver.4 ł́AuvAut@CvAu啶߁vƂGȊTO
܂AxCuł͂̊TOɂĒmȂĂC
upvOg߂悤ɂȂĂ܂BA啶߁A
Ȃǂ𒼐ڈꍇɂ́AƂo܂B

܂A
	Ɋւ鏉ݒsB
	T[oˑR񂾎ɐڑB
	ǉ̎A݂ȂApxt@C̍쐬
Ƃs܂B



̑

(i) ̃fBNg̕ύX 

    o[WRł̎̃fBNǵA/usr/local/lib/dic/sys/*.sys
    łAo[WSł́A/usr/local/lib/wnn/dic/sys/*.sys 
    ύX܂B܂Ag[邽߂ɃpubN܂
    Ă܂B( /usr/local/lib/wnn/dic/pubdic/*.sys )
    [UɂĂl /usr/local/lib/wnn/dic/usr/[U/ud 
    ɃfBNgύXĂ܂B
    o[WRgpẮAo[WRŒ~ςꂽ[U
    [eBeBŕϊ邱ƂɂāAo[WS̃[U
    ƂĎgp邱Ƃł܂B
    [ϊ@]
	jdicutoa /usr/local/lib/dic/usr/[U/ud | oldatonewa
		| atod /usr/local/lib/wnn/dic/usr/[U/ud [CR]

(ii) ̕ύX

    o[WRł̊t@ĆA/usr/local/lib/jd/wnnrc łA
    ̊t@C̒ŁAtt@CȂǂׂĐݒ肵Ă
    Ao[WSł́At@Cɔėp𑽂邽߂
    /usr/local/lib/wnn/uumrc  /usr/local/lib/wnn/wnnenvrc Ƃɕ
    Ă܂Bڍׂ́Aet@C̃}jAQƂĉB
    
(iii) R}h̕ύX

    o[WRł́ANR}h wnn łAo[WSł́A
    uum ɕύXĂ܂B
    ( /usr/bin/wnn		/usr/local/bin/Wnn4/uum )

(iv) L[oCh\̕ύX

    o[WRł́AL[oCh\ wnnkey łAo[WS
    ́Auumkey ɕύXĂ܂B
    ( /usr/local/lib/jd/wnnkey    /usr/local/lib/wnn/uumkey )


    ȉɁAȃL[̕ύX_Lq܂B

		
	o[WR    o[WS   	@	\        
	
	    ^W^G	       ^W^W	      ꗗ\   
	
	 ^W, ^N, 0x92	       ^N	  	\      
	
		-	       ^Z 	  	Pϊ	
	
		-	       ^Z^Z	  Pꗗ\
	
		-       	 ^C	  	ȕϊ	
	
	    0x96 	  ^^, 0x84, 0x96[eBeB  
	
    
(9) Cu̕ύX

    o[WRł́A/usr/lib/libjd.a łAo[WSł́A
    /usr/local/lib/libwnn.a , /usr/local/lib/libgetopt.a ,
    /usr/local/lib/libwnn_m.a
    ɕύXĂ܂B

    ܂ACu֐啝ɕύX܂B
    ᐅ̃Cu֐ƂāAjs ł͂܂֐ÃCu
    ֐ƂāAjl ł͂܂֐VKǉ܂B
    o[WR̃Cu( jd ł͂܂֐ )gpĂ
    ́Ao[WSɂāA݊CuĂ܂B
    ̌݊CúAo[WR̃Cu֐Œᐅ̃C
    u֐( js )N܂B

          vo[WRvo[WSւ̕ύX_ꗗ

     
          vo[WR	          vo[WS       	
     
      /usr/bin/wnn	              /usr/local/bin/Wnn4/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     /usr/local/lib/wnn/dic/sys   
      		  	     	/usr/local/lib/wnn/dic/pubdic
     
      /usr/local/lib/jd/dic/usr     /usr/local/lib/wnn/dic/usr   
     
      /usr/lib/libjd.a	      /usr/lib/libjd.a	     
      			      /usr/lib/libwnn.a	     
      		  	     	/usr/lib/libwnn_m.a	     
      		  	     	/usr/lib/libgetopt.a	     
     
          	              			     
           		       ( Ver.3̕߂Ɠ ) 
     				      啶 ( ߂̗ )        
     
      VXe	              Œ`	             
          kihon_1  ({)	      pd-kihon.sys   ({)    
          kihon_2  ({)	      pd-tankan.sys  (P)    
          tankan_1 (P)	      pd-chimei.sys  (n)    
          koyuu_1  (ŗL)   pd-jinmei.sys  (l)    
          jim_1    (pꎫ)   pd-setsuji.sys               
          jyoho_1  (񏈗)  	             (ړڔꎫ)
          			      pd-computer.sys(񏈗)
     				      pd-koyuu.sys                 
     				       (lnȊǑŗL)
     				      pd-koyuu.sys                 
     				               (L̈ʌď̎)
     				      pd-special.sys (ꎫ)  
     
      [U	              o^\`             
     (pxt@COɎĂȂ) (pxt@COɎĂ) 
     
     		     		      it@Cւ̃Gg   
     				          ǉ͉\               
     				      (폜Aוς͕s)       
     
      i 32 	      i 256 	     
     				          (i قږ)    
     
     	[eBeB	     				     
          atou  	              atod  -U                     
          atos		      atod  -S		     
          utoa  ,  stoa	      dtoa     		     
     				     
     		     		      wnnstat                      
     		     		      wnnkill                      
     		     		      wnntouch                     
     
      tt@C̓T[oɈ  ɐݒ\	     
     
      Cu (jd)	              Cu (jd)              
     				      ჌xCu (js)      
     				      xCu (jl)      
     
      ̓ǂ݂̕ɐ  ǂ݂ 2 oCgR[h\  
      		(256)	          (ϊ\)     
     
      ̓T[o}Vɂ    NCAg̃[J   
          uƂłȂ	          uƂ\           
     
     		     		      Gg̈ꎞI폜\ 
     				      (pxllɃZbg) 
     
     		     		      {,px      
     				          pX[hݒ\     
     
     		     		      {,Gg      
     				          Rgݒ\       
     
