3.5     ȥޥȥʣʡԡ

3.5.1Ϥ
ȥޥȥϡʴѴեȥɥץå uum ʤ (ʸ塢ñ
uum ȸƤ) Υ޻Ѵ¸Ƥ뵡ǽǡѴƤꤷ
ɽ (ѴɽȸƤ) Ѥ뤳ȤǤդѴˤ뤳ȤǤ롣ޤ
ƥˤϡƱεǽäȥޥȥ饤֥ (ܸ
饤֥ (libwnn)  romkan_ ǻϤޤؿ) ꡢ¿¿ͤѴץ
˱ѤǤ롣


3.5.2ǽ  
ȥޥȥϡѴɽ˽äľ˷Ф줿ĤѴ (ˡ
ܽȸƤ) Ԥκǽ̤Ϥ롣Ĥνϡ
줾Ѵɽ˴ŤѴԤ롣ޤȥޥȥϡ⡼ɵ
ǽġ⡼ɤڤؤ뤳ȤˤꡢĤνǻѤɽȤ߹
碌ưŪѹǤ롣Υ⡼ɤꡢڤؤɤѴɽ
ǹԤ

ѴɽƥȥեǤ뤿ᡢɽưפѹǤǤդ
ɽѹǤ롣ޤĤѴԤä塢ѴԤޤǤϡ BS
(Хåڡ) ˤѴΣξ֤᤹ȤǤ롣
    
uum Υ޻ѴǤϡܽǡֱʸҤ餬ʡפѴ
ԤʤǡֱʸʸסֱѾʸʸפڤ
ؤޤǤϡ֤Ҥ餬ʢҤ餬ʡס֤Ҥ餬ʢʡס֤Ҥ
ʢȾѥʡפڤؤԤȤˤꡢ޻Ѵϡ
ϤοΥн褷Ƥ롣
 
			ȥޥȥ󨡨		
			      	          
	        
	    Ϩ    ʸʸ              
	        Ѵ               
	    (Ⱦ)      
	   硦ʸ               	   
			 ܽ 
			 ʸҤ餬ʨ             
			 ɽ˴ŤѴ  
			  
			                      	 
			  	
			  Ҥ餬ʤɬפ           
			  ƥʤ      Ϩ 
			  ȾѥʤѴ        
			      
			

3.5.3Ѵɽ
ȥޥȥϡѴɽȤƼɽѤ롣


		ʣ˥⡼ɽ
		                ⡼Ѥбɽꤹɽ
		                ե̾ "mode" Ǥ롣     
		
		
	Ѵɽ               
				 ɽ ... ǻѤбɽ    
						'1'ǻϤޤե̾
				 
				
		ʣбɽ   ܽɽ ... ܽǻѤбɽ
						'2'ǻϤޤե̾
				
				
				 ɽ ... ǻѤбɽ
						'3'ǻϤޤե̾
					     
					ܽǤ줾
					ǤդοбɽѤǤ롣 


⡼ɽˤϡ⡼ɤƥ⡼ɤǻѤбɽȤ߹碌
Ȥη구§򵭽Ҥ롣

бɽˤϡϥɤȽϥɤȤбҤ롣бɽϡ
ܡΣĤʬ졢줾졢ǤդοɽѤǤ롣

uum ϡ⡼ɽʲν֤õ

1. uum Υץ -r ˤꡣ

2. uum ե uumrc  setrkfile ȥˤꡣ

3. ե̾ /usr/local/lib/wnn/rk/mode


ɽεˡΤ

 	ϡʾη֤
 	ϡʾη֤
[   ]	ϡάǽ

򡢤줾ɽ魯

3.5.4⡼ɽ
⡼ɽˤϡ⡼ƥ⡼ɤǻѤбɽȤ߹碌
η구§⡼ɽʸ󤬵Ҥ롣
⡼ɽϡ (1),(2),(3),(4) ǹ롣ԤƬ
ޤ϶ʸ (֤ޤ) ³⥨פƤʤ
ޤǤʸϡʸȤư롣

(1) üʸ

üʸȤƤϡʲ˼Τ롣

	@HOME		Ķѿ HOME ɽ魯
	@MODEDIR	⡼ɽ¸ߤǥ쥯ȥɽ魯
	@LIBDIR		ɸ꤬ƤѴɽ¸ߤǥ쥯ȥ
			(/usr/local/lib/wnn/)

	~user		user 桼̾ʤСΥ桼Υǥ
			쥯ȥ̾ɽ魯user λ꤬ʤСʬ
			Υ󡦥ǥ쥯ȥ̾ɽ魯

(2) ⡼

⡼ν񼰤ϡΤȤꡣ

	(defmode  ⡼̾ [])

	⡼̾ϡѿʤʸǤ롣
	֤ϡon ޤ off ꤹ롣 άϡoff Ǥ롣
	⡼ϡΥ⡼ɤѤ˹Ԥ

(3) бɽΥ

бɽΥν񼰤ϡΤȤꡣ

	(searchǥ쥯ȥ̾   )

	⡼ɽǻꤵ줿бɽ⡼ɽƱǥ쥯ȥ
	ʤ硢õˤǥ쥯ȥ̾ꤹ롣

	ǥ쥯ȥ̾ϡǶڤäʣǤ롣

	search ϡбɽλ˻ꤵƤʤФʤʤ

	(pathǥ쥯ȥ̾   )
	      
	бɽ򥵡뤿˴˳ǼƤǥ쥯ȥ̾
	˻ꤵ줿ǥ쥯ȥ̾Ǽ롣

	ǥ쥯ȥ̾ϡǶڤäʣǤ롣

	search ϡбɽλ˻ꤵƤʤФʤʤ
	      
(4) бɽȥ⡼ɽʸλ

ˡϡΣĤ롣

	[1] бɽΥե̾ޤϥ⡼ɽʸ  ġ

	[2] (if   Ｐ  бɽλޤϥ⡼ɽʸ  )

	[3] (when  Ｐ  бɽλޤϥ⡼ɽʸ  )

бɽ '1''2''3' Τɤ줫ǻϤޤե̾ꤹ롣
ѥˤǤ롣
⡼ɽʸϡΤȤΥ⡼ɤɽ " " ǰϤʸ
    Ǥ롣

	(a) " "  		Ѵ ON ΤȤΥ⡼ɽʸɽ魯 

	(b) (on_dispmode " ")	Ѵ ON ΤȤΥ⡼ɽʸɽ魯 

	(c) (off_dispmode " ")	Ѵ OFF ΤȤΥ⡼ɽʸɽ魯 

	(d) (on_unchg)		Ѵ ON ΤȤΥ⡼ɽʸ⡼
				󥸤Ʊ⡼ɽʸɽ魯
 
	(e) (off_unchg)		Ѵ OFF ΤȤΥ⡼ɽʸ⡼
				󥸤Ʊ⡼ɽʸɽ魯

uum Ǥϡʸ󤬥⡼ɽ˻Ѥ롣

ȥޥȥ󡦥饤֥ romkan_dispmode() ˤäơʸ
    ФȤǤ롣⡼ɽˤ⡼ɻΥ⡼ɽ
    ʸʣ褦˵ҤƤ硢ǸΤΤͭǤ
    롣

[2][3] ϡˤä򤹤бɽѤȤ˻Ѥ롣
[2]  if ʸ ϡξＰη̤ʤС if ʸλ򻲾
    if ʸμλϻȤʤＰʤС if ʸȴФ
     if ʸμλ򻲾Ȥ롣

[3]  when ʸϡξＰη̤ʤСʸλ򻲾
    ʤлȤʤif ʸȰۤʤꡢＰοˤ餺
    when ʸμλ򻲾Ȥ롣

ʤ[2][3] бɽꤹˤϡ[2] ޤ [3] 
    ŪǤ롣


Ｐˤϼ⣱Ĥ򵭽Ҥ롣

	⡼̾		⡼ɤξ֤ on ΤȤ
	(and  Ｐ  Ｐ)	2ĤξＰΤȤ
	(or   Ｐ  Ｐ)	ɤ餫ξＰΤȤ
	(not  Ｐ)		ＰΤȤ
	(false)			˵
	(true)			˿
   
㤨С( ⡼ (defmode  kana)  (defmode  romajikana) 
    Ȥ) (and  kana  romajikana)ϡΥ⡼ɤ on ΤȤˤʤ롣

ޤ㤨С(ǤϡＰɽѴɽ̾£á
    ɽȤ§ΤȤ)

	      (when   (if   )  ) (if   ) 
   
Ƚ񤫤Ƥ롣ơＰΩäƤȤ
  롣¤Ӥǽ餫鸫Ƥޤ(when   (if  ) )
   ǤϡΩĤΤǡ֣ (if  ) áפȤ¤Ӥ򸫤롣
  Ϥˡɽ򤹤롣

    ˡ(if   )ơΩĤΤǡɽ¤򤹤롣
  ʸifʸǡＰΩäƤΤǡܤƤ¤
  ֣(if  )áפΤĤʬϸʤƤ褤ǡ֣(if  )
  áפȤ¤Ӥ򸫽Ȥˤʤ뤬¤ӤޤǤΤϡwhen
  ʸʤΤǡˡ(when   (if   )) (if  ) šפȤ¤
  ΡĤʬ򸫤ˤ

  ˽񤫤ƤΤϡ(if  )Ǥ롣ΩĤΤǡɽĤ
  뤬ifʸʤΤǡ(when   (if   )  ) (if   ) šפ
  ¤ӤΤĤʬϸʤƤ褤ơɽ¡Ĥ
  򤵤롣



ˡuum Ѥ⡼ɽȤƼ

Υ⡼ɽǤϡΥ⡼ɤƤ롣θ 2A
  _CTRL ǸޤǤѤбɽȥ⡼ɽʸλǤ롣
  ⡼ɤѤ뤴Ȥˡɽ򸫤ơ嵭Τ褦ˤƻѤɽ
  Ԥ

	  (defmode romkan)
	  (defmode katakana)
	  (defmode zenkaku)

	  2A_CTRL
	  (if romkan
		  1B_TOUPPER
		  2B_ROMKANA 2B_JIS
		  (if (not katakana) "[r]")
		  (if zenkaku 3B_KATAKANA "[r]")
		  3B_HANKATA "[r]")

	  2B_DAKUTEN
	  (if (not katakana)
		  1B_ZENHIRA
		  (if zenkaku 3B_ZENKAKU "[ ]")
		  "[A]")
	  (if zenkaku
		  1B_ZENKATA
		  3B_ZENKAKU
		  "[ ]")
	  "[A]"
								
֤ϡromkankatakanazenkaku Υ⡼Ƥ off Ǥ롣
  ΤȤɽϡϤ 2A_CTRL 򤹤롣romkan  off ʤΤǡ
   ifʸϻȤʤơ2B_DAKUTEN 򤹤롣 ifʸξ
  Ｐ (not katakana) ϡkatakana off ΤǿȤʤ롣 ifʸ
  򻲾Ȥ1B_ZENHIRA 򤹤롣 ifʸ ifʸ򻲾Ȥ롣
  ifʸǤ zenkaku  off ˤʤäƤ뤿ＰȤʤ롣äơ
   if ʸϻȤʤ
ˡ⡼ɽʸ "[A]" 򤹤롣ơĤѴɽ¤
ϸʤ

3.5.5бɽ
бɽˤϡܡΤ줾줬ԤѴǡ (ϥɤȽ
ϥɤȤб) Ҥ롣

ϡܽȤդʤƤ롣ΤȤ顢
бɽˤϼ¤ݤ롣

ɽ (2) εҤǤʤ
	ޤ(1) ϥɡϥɤˤϡ줾ɾʸ
	    ˤʤ뼰Ĥ񤱤롣ХåեĤˤϽ񤱤ʤ

ɽ嵭 (2) εҤǤʤ
	ޤ(1) ϥɤˤϡɾʸˤʤ뼰Ĥ
	    񤱤롣ХåեĤˤϽ񤱤ʤ

бɽιԤΤԤϼ (1)(3) ΤĤޤ϶ԤǤ롣
η֤бɽ롣

	(1)    ϥ     [ϥ     [ХåեĤ]]

	(2)    ϥ     ǽ

	(3)    ѿ    

򣲹ԤϤäƵҤƤϤʤʤޤԤޤ϶ʸ(
֤ޤ) ³⥨פƤʤ ; ޤǤʸϡ
ʸȤư롣
ϥɤξάӥХåեĤξάϥ̥륹ȥ󥰤ʸȤ
롣
ϥɡϥɡӥХåեĤ˵ҤǤΤϡɾ
ʸˤʤ뼰פȡɾʸˤʤ뼰פʤ¤٤Τ
롣
ǡɾʸޤʸˤʤ뼰Ȥϡμˤäʸ
뤤ʸ֤롢Τ褦ʼΤȤǤ롣



ɾʸˤʤ뼰ˤϡΤΤ롣

(1) ʸɽ

ʸɽ򲼵˼(ɾʸˤʤ뼰פʸɽȤϰۤ
    )

ʸ	(ס)ס'ס"ס\ס;ס פ

'ʸ'	μǤʸ'ס\ס^פϽ롣

'^ʸ'	ȥʸɽʸ ASCII 32126 ʸ
		ޤϱѾʸ
		^?פϡDELɤɽ魯

'\ʸ'	\פμʸɽμǤʸϿ
		odx Ͻ롣
		'\n','\t','\b','\r','\f' ϣøΥƱ
		'\e','\E'  ESCɤɽ魯

'\ʥ  '	Σʥɤʸɽ

'\oʥ  '	Σʥɤʸɽ

'\d10ʥ  '	10ʥɤʸɽ

'\x16ʥ  '	16ʥɤʸɽ

(2) (ؿ̾  ɾʸˤʤ뼰)  

ؿ̾			  ǽ

toupper		 ASCII ѾʸʤʸѤ롣
				(toupper  a)  A 

tolower		 ASCII ʸʤоʸѤ롣
				(tolower  A)  a  

toupdown		 ASCII Ѿ()ʸʤ()ʸѤ롣  
				(toupdown  a)  A 
				(toupdown  A)  a 

tozenalpha	 ASCII ʸʤбʸѤ롣
				(tozenalpha  A)  

tohira		ѥʤʤФҤ餬ʤѤ롣
				(tohira  )  

tokata		Ҥ餬ʤʤѥʤѤ롣
				(tokata  )  

tozenhira		ȾѥʤʤФҤ餬ʤѤ롣
				(tozenhira  )  

tozenkata		ȾѥʤʤѥʤѤ롣
				(tozenkata  )  

value		ʸɤºݤοͤˤ롣
				(value  0)  '\x0'
				(value  A)  '\xA'
				(value  F)  '\xf'

(3) (ؿ̾  ɾʸˤʤ뼰  ɾʸˤʤ뼰)

ؿ̾			  ǽ

	+		¤ͤˤ롣 

	-		κͤˤ롣

	*		Ѥͤˤ롣

	/		ξͤˤ롣
				(+    '\d256' )  
				(+  0  (value 3))  3

(4) (ѿ̾)

ؿ̾ǽ̾ (defvar) ȤפʤѻǻϤޤ
ʤʸ(ѿι໲ȡ)
'_' ѻȤߤʤ


ɾʸˤʤ뼰ˤϡΤΤ롣

(1) "ʸɽ  "

ʸɽ򲼵˼(ɾʸˤʤ뼰פʸɽȤϰۤ
    )

ʸ	"ס^ס\פ

^ʸ	ȥʸɽʸ ASCII  32126 ʸ
		ޤϱѾʸ^?פϡDELɤɽ魯

\ʸ	ʸϿ odx 
		'\n','\t','\b','\r','\f' ϣøΥƱ
		'\e','\E'  ESCɤɽ魯

\ʥ   []	Σʥɤʸɽ
				˿³֡פɬס     

\oʥ  []	Σʥɤʸɽ
				˿³֡פɬס     

\d10ʥ  []	10ʥɤʸɽ
				˿³֡פɬס     

\x16ʥ  []	16ʥɤʸɽ
				˿³֡פɬס     

"" (ʸɽξά)ϥ̥륹ȥ󥰤ɽ

(2) (ؿ̾  ɾʸˤʤ뼰)

	ؿ̾                  ǽ
tohankata		ѤҤ餬ʡѥʤʤȾѥ
			ʤѤ롣
				(tohankata  )  

last=		Ǹ˥ޥåʸκǸʸȴؿΰ
			(ɾʸˤʤ뼰) פ뤫פ
			ʤ (last= ɾʸˤʤ뼰) ϶ʸ
			ˤʤ롣
				 (last=  A)     

			 last= ϡϥɤˤΤߵҤǤ롣

todigit		Ϳ줿ɤΥɤ
			ˡοѴ롣

dakuadd		θդ롣

handakuadd	θȾդ롣 


(3) (ؿ̾  ⡼̾)

⡼̾ϥ⡼ɽ줿ΤǤϤʤƤϤʤʤ

	ؿ̾		  ǽ

if	Ǥ⡼ɤ on ʤ(if  ⡼̾)϶ʸ
		ˤʤ롣 
			(if  katakana)VU     

unless	Ǥ⡼ɤ off ʤ(unless  ⡼̾) 
		ʸˤʤ롣 
			(unless  katakana)VU     

on	Ǥ⡼ɤ on ˤ롣
			(on  katakana)

off	Ǥ⡼ɤ off ˤ롣
			(off  katakana)

switch	Ǥ⡼ɤ on ʤ off ˡ off ʤ on 
		롣
			(switch  katakana) 

if,unless ϡϥɤˤΤߵҤǤ롣
ޤon,off,switch ϡܽɽνϥɤˤΤߵҤǤ롣


(4) (ؿ̾)

ܽɽνϥɤˤΤߵҤǤ롣

	ؿ̾                  ǽ

allon                 ƤΥ⡼ɤ on ˤ롣

alloff                ƤΥ⡼ɤ off ˤ롣



  ǽ

ǽˤϲΣĤꡢ줾ñȤѤ롣

(error) 	ϥɤʬΥɤϤ줿饨顼Ȥߤʤ

(restart)	Υ⡼ɽɤ߹Ѵκ
		
		Ѵɽ˥顼Х顼åɽ
		塢Ѵɽ᤹



ѿ

	(defvar   ѿɽ   (list ʸɽ   ))
	(defvar   ѿɽ   (all))

ɾʸˤʤ뼰ȤƻѤѿȤѰԤ
ϡ嵭ˡǹԤ
ѿɽϡѿ̾ ޤ (ѿ̾   ) Ǥ롣
ʸɽϡɾʸˤʤ뼰פʸɽƱ
list ϡΰʸѰȤ롣
all ϡƤʸѰȤ롣
ѿι໲ȡ




ؿλѾ

ؿɾʸޤʸˤʤ뼰Ǥ뤿ᡢ
	(toupper (tolower Y))
Ƚ񤱤롣Τ褦ɾʸˤʤؿ¾δؿΰ
  ˤǤʤ
	(toupper (tohankata ))

3.5.6ѿ
ѿƱѥѴ̤⤢˸̤ȯ롣
㤨С

	
	  (defvar   a1   (list  K S T H Y R W G Z D B P)) 
	  (a1)(a1)     (a1)                             
	

ΣԤϼεҤƱѴ롣
ϥ޻Ѵˤ¥Ǥ롣

	
	  KK        K   
	  SS        S        
	  TT        T       
	              
	             
	  (     ά   )  
	  PP        P    
	  
   
ѿϡѿ (defvar) ǹԤäѰʸͤȤ롣


ѿѾջ

  (1) ѤѿϤɽˤ defvar ʤФʤ
      

  (2) ѿϤɽΤͭǤ롣
      Ĥɽa1Ȥѿ̤ɽa1Ȥѿͤ
      Ƥ⤫ޤʤ
      ΣĤa1̤ѿȤư롣
      ΤȤդˣĤɽƱ̾ѿ defvar 뤳ȤϤǤ
      

  (3) бɽΣԤǤϡƱ̾ѿϾƱͤġ

	(defvar  a1  (list    ))
	(a1)(tolower (a1))   

ξ硢Aa,BbפȤʸ󤬡֣פѴ롣
     Ab,BaפѴʤ

  (4) ϥɤɽϥȤΥޥå󥰤ϺԤ롣Τᡢ
      ɽϥ򺸤鸫ƤäȤѿʸ˥ޥå
      ˴ؿΰȤƸƤϤʤ

	(defvar  a1  (list    ))
	(toupper (a1))(a1)   

      ξAaפϤȡ֣פѴƤ줽˻פ뤬ºݤ
      Ϻޥå褦Ȥơ֣פ (toupper (a1)) Υޥå󥰤
      ߤƤ⡢ޤͤʤѿa1 toupper ΰˤʤäƤΤǵ
      ʤ
      Τ褦ϡɽɤ߹߻˥å롣

  (5) ѿϥХåեĤ˽񤯾⡢ϥ˸
(ĤޤꡢϥɤȤΥޥå󥰤ǲ餫ͤ) ѿǤ
      Фʤʤ

	(defvar  a1  (list    ))
	(defvar  a2  (list  ))
	(a1)(a1)   (a2)    (a1) 

      ξ硢ϥǥޥå󥰤Ԥʤѿ a2 ϥ
      ˸ƤΤǵ§ȿǤ롣

3.5.7    Ѵ
ޤϤ륳ɤʸñ̤ˤޤȤ (Хȥɤʸ
ʸȤư)ϥɤȤϡܡΣ
ƺǽϤȤʤ롣ǤϡϥɣĤФƽϥɣĤ
դ롣νϥɤܽɤϥɤˤʤ롣

ɽΤ߻ѤƤɽϥɤʬ夫˸
ǽ˼ºݤϥɤȹפȤǡιԤνϥɤ
ʬ˽񤫤ƤΤϤ롣ɽʣ򤵤ƤȤϡ
⡼ɽ˻Ȥ줿Τ鸫Ƥޤºݤϥɤ
פΤɽˤʤȤ (ɽĤ򤵤ʤޤ) ϡϥ
ɤΤޤ޽Ϥ롣ϡܽˤƤƱͤǤ롣

ܽǤϡϥɤɽϥɤʬȹפǽ (
ϥɤʬƬ鲿ʸϰפƤ) ¤ꡢϥɤϡ
Хåեɲä롣Хåեϥɤɲä뤴Ȥˡܽɽ
ϥɤʬ夫˸ƤäƥХåեӤ롣ǡ
ХåեƤɽϥɤʬκĹΤΤȹפǽ (
ɤʬƬ鲿ʸϰפƤ) СѴ̤
ȤȽǤΤȤˡѴԤ鷺˼ϥɤԤġ

̽ʤɤԹ塢ХåեΥɤ̤ʸȤƽ
Ϥ롣¾ϥ顼⡼ѹʤɤΤ餻륳ɤϤ롣

νϥɤνϥɤȤ϶̤졢ϹԤʤ
(ܺ٤ϡ饤֥ romkan_getc(3J_T) 򻲾)

ХåեƤɽϥɤʬκĹΤΤȹפ (ƱĹ
ΤΤ˸ĤäΤȹפ)νϥɤϤ
롣ХåեĤʬʤХХåեιפʬä졢
СХåեιפʬؤꡢʾ֤롣

ɽ˹פǽΤΤĤʤä硢ХåեƬ
ʸΤޤ޽Ϥ롣פΤνϥɤʬ⡼ɤξ
֤Ѥؿ (on,off,switch ʤ) Ǥ硢Ѥбɽ⡼
ɽεҤˤäѹ롣Υ⡼ɤѤؿϡ
ɤξ (on, off) ˴طʤ䤨Ѥɽ˵ҤƤ
ޤǽ (restart) ϥɤʬ˹פϡ⡼
ɽΤΤκɤ߹ߤԤ롣Υ⡼ɽƱ
եǤ롣εǽȤȤǡȥޥȥλ˽
Ѵɽ (⡼ɽޤ) 򡢥ȥޥȥ򽪤ˤѴƤ
뤳ȤǤ롣

ǤϡĤϥɤФƣİʾνϥɤǽϤ
ƽϤ롣ϥɤİʾϤ뤳ȤƱ
Ǥ롣

ǤϡLsפޤϡLSפϤ줿Ȥls -la ԡפ
롣


	ɽ
	      
	        (defvar   a1   (list s))  
	        (a1)      (toupper (a1))  
	        

	ܽɽ
	      
	         LS        "LS -la\n"          
	        

	ɽ
	      
	         (defvar   a1   (all))    
	         (a1)      (tolower (a1))                
	        
