######################
## eff ݒt@C ##
######################

# y{ݒz
# Ey[W̐ݒBݒ肳ĂȂꍇ͓̂̂gpB
# @F
#	pager "qp.exe";
#
# EGfB^̐ݒBݒ肳ĂȂꍇ́Atedit.exe gpB
# @F
editor "jed.exe";
#
# Ewvt@C̎wB
#	u@v st@ĈfBNg
#	u~v z[fBNg
helpfile "@/eff.hlp";

# y\[gݒz
#	u-v \[gȂ	uiv啶E𖳎
#	utv Ń\[g	udvfBNg擪
#	urv t		uxvgqŃ\[gB
sort d; 

# yȐݒz
# @Ȃckk̃[h̃^C~Oݒ肷B
#	canna 2; c ŏ̈s͂̎(default)
#	canna 1; c N
#	canna 0; c ȂgpȂB
# 
canna 2;

# y\[hݒz
#	+c c Rg\B -c \ȂB
#	+h c Bt@C\B -h \ȂB
#	+w c ŌɎsR}ȟʂ̃R}hs܂ŎcB
#	      -w:ɏB
#	+p c y[W[ŉs}[N\B-p \ȂB
#	+l c .LONGNAME/TRANS.TBL t@C̑ɕ\B/ -l Ȃ
#	1 , 2 or 4 c ftHg̕\
print +c +h +w +p +l 1;

# yR}h֘Atz
#	$C c J[\s̃t@C
#	${`} c `vvgƂĕ\A͓eƒu
#	${`=xxx} c ${`} Ɠ xxx ftHglɐݒ肷B
#	$T c ̃EChE݂΁ÃfBNg
#  $C ȗƃftHgŖɕt

ext  ".inf"  exec "view";
ext  ".mp3"  exec "mpg123";
ext  ".gif"  open;

ext ".rb"    exec "${exec :=ruby $C }";
ext ".pl"    exec "${exec :=perl $C }";
ext ".awk"   exec "${exec :=awk -f $C }";
ext ".sh"    exec "${exec :=bash $C }";

ext  ".pi"
    ,".jpg"
    ,".mag"  exec "start /F water";

ext  ".html"
    ,".htm"  exec "w3m";

ext  ".exe"
    ,".cmd"  exec "${execute :=$C }";


# yy[W[ւ̊֘Atz
# @pageřɕ񂪂ꍇ́ÃvO(tB^[R}h)
# HĂǍʂy[Wŉ{B
#	$C c J[\s̃t@C
#	${`} c `vvgƂĕ\A͓eƒu
#	${`=xxx} c ${`} Ɠ xxx ftHglɐݒ肷B
#	$T c ̃EChE݂΁ÃfBNg
#	$P c J[\s̃t@CAɃt@C
#	      W͂󂯎邱ƂłB
#  $C,$P ̗ȂꍇAftHgŖ $C tB

ext  ""
    ,"txt"
    ,"doc"
    ,"cc"
    ,"h"
    ,"doc"
    ,"cc"
    ,"h" pager;

ext  "o"
    ,"a" pager "${see stdout of ? =nm $C}";

ext  "1"
    ,"1x"
    ,"2"
    ,"2x"
    ,"3"
    ,"3x" pager "tmf $P";


# yL[蓖āz
#
# bindkey ` exec ł͎̂悤ȃ}Ngpł܂B
#	$C cJ[\s֒u
#	$M c}[Nt@C֒u
#	${bZ[W[=ftHgl]} c L[{[h̓͂ɒu
#	$W c sAꎞ~
#	$T c ̃EChE

bindkey "ALT_P" exec "mmbrowse ${(mmbrowse) Wildcard :=*}";

bindkey "ALT_Z" rexx "
    /* zipɂɊւ鑀
     *   ALT-Z <ɖ> A : ɂ쐬B
     *   ALT-Z <ɖ> M : ɂ쐬̂Ãt@C폜B
     */
    if viewtype() <> 'DIRECTORY' then do
	call println '{R}h̓t@Cꗗ\ł̂ݎgp\ł.'
	exit 0
    end
    call RxFuncAdd 'SysGetKey','RexxUtil','SysGetKey'
    call print 'a) Pk  m) ɂֈړ  ) LZ ?'
    key = translate(SysGetKey('ECHO'))
    if key <> 'A' & key <> 'Z' then
	exit 0
    call println
    call print 'ɖ:'
    arcname = readline()
    if length(arcname) <= 0 then do
	call println 'LZ܂B'
	exit 0
    end
    select
	/* k̂ */
	when key='A' then do
	    cmds = 'zip' arcname 
	    do i=1 to arg()
		cmds = cmds arg(i)
	    end
	    address cmd cmds
	end
	/* k̃t@C̍폜 */
	when key='M' then do
	    cmds = 'zip -m' arcname
	    do i=1 to arg()
		cmds = cmds arg(i)
	    end
	    address cmd cmds
	end
	/* Ȃ */
	otherwise do
	    nop
	end
    end
";


bindkey "ALT_A" rexx "
    /* t@CɊւ鑮̕ύX
     *   ALT-A A c ʑύX
     *   ALT-A T c ^CX^vύX
     * ƂɃlCeBuR}ĥ݂ŁA폜\ (^^;
     */
    if viewtype() <> 'DIRECTORY' then do
	call print '{R}h̓t@Cꗗ\ł̂ݎgp\ł.'
	exit 0
    end
    call RxFuncAdd 'SysFileTree','RexxUtil','SysFileTree'
    call RxFuncAdd 'SysGetKey','RexxUtil','SysGetKey'
    call print 'a) ύX  t) ^CX^v'
    key = translate(SysGetKey('NOECHO'))
    select
	when key = 'A' then do
	    if arg() = 1 then do
		/* Pt@C̏ꍇ */
		call SysFileTree  ARG(1) , stem
		parse var stem.1 . . . attr .
		if substr(attr,4,1) = 'R' then
		    attrib='+R'
		else
		    attrib='-R'
		if substr(attr,5,1) = 'S' then
		    attrib=attrib '+S'
		else
		    attrib=attrib '-S'
		attrib = attrib '-H'
		if left(attr,1) = 'A' then
		    attrib=attrib '+A'
		else
		    attrib=attrib '-A'
		call print ARG(1)'̐V ? '
	    end
	    else do
		/* ̃t@C̏ꍇ */
		attrib='*A *R *H *S'
		call print ARG(),
		    'files'' new attribute(''*'' means no change) :'
	    end
	    attrib = readline(attrib)
	    parse var attrib w x y z .
	    attrib = ''
	    if length(w) >= 2 & left(w,1) <> '*' then
		attrib = w
	    if length(x) >= 2 & left(x,1) <> '*' then
		attrib = attrib x
	    if length(y) >= 2 & left(y,1) <> '*' then
		attrib = attrib y
	    if length(z) >= 2 & left(z,1) <> '*' then
		attrib = attrib z

	    do i=1 to arg()
		address cmd 'attrib' attrib ARG(i)
	    end
	end
	/* ^CX^vύXR}h */
	when key = 'T' then do
	    rc = SysFileTree(ARG(1),stem,'T')
	    parse var stem.1  YY '/' MM '/' DD '/' HH '/' MI .
	    if YY >= 80 then
		YYYY = 1900 + YY
	    else
		YYYY = 2000 + YY
	    call print ARG(1),'̃^CX^vύX :'
	    newTimeStamp = readline(YYYY'/'MM'/'DD HH':'MI)
	    if newTimeStamp = '' then
		exit 0
	    parse var newTimeStamp YYYY '/' MM '/' DD HH ':' MI
	    if length(YYYY) < 4 | length(MM) < 2 | length(DD) < 2 | ,
	       length(HH) < 2 | length(MI) < 2 then do
		    call print newTimeStamp ': Bad TimeStamp format'
		    exit
	    end
	    address cmd 'touch -t' MM||DD||HH||MI||YYYY ARG(1)
	end
	otherwise
	    nop
    end
";


bindkey "ALT_B" rexx "
    /* bzip2 ɂ鈳k or WJ */
    if viewtype() <> 'DIRECTORY' then do
	call print '{R}h̓fBNg\ł̂ݗLł.'
	exit 0
    end
    if translate(right(arg(1),4))='.BZ2' then
	cmds = 'bzip2 -d' /* WJ */
    else
	cmds = 'bzip2' /* k */

    do i=1 to arg()
	address cmd cmds arg(i)
    end
";

bindkey "ALT_S" rexx "
    /* t@CR}h(  ׂ) */
    if viewtype() <> 'DIRECTORY' then do
	call print '{R}h̓fBNg\ł̂ݗLł.'
	exit 0
    end
    do i=1 to arg()
	newname = translate(arg(i),xrange('a','z'),xrange('A','Z'))
	address cmd 'ren' arg(i) newname
    end
";

bindkey "ALT_U" rexx "
    /* t@C啶R}h(  ׂ) */
    if viewtype() <> 'DIRECTORY' then do
	call print '{R}h̓fBNg\ł̂ݗLł.'
	exit 0
    end
    do i=1 to arg()
	newname = translate(arg(i),xrange('A','Z'),xrange('a','z'))
	address cmd 'ren' arg(i) newname
    end
";


# yɉ{@\ݒz
# @ ell ̐ݒBarchivéAell.cfg ƌ݊B

# tarn

archive "*.tar" {
	extract="tar xvf" ,		list="tar tvf" ,
	print="tar xOf" ,		delete="tar --delete -vf" ,
	fnamepos=8 ,
}
archive "*tar.gz","*.tgz","*.taz","*tar.Z" {
	extract="tar zxvf" ,
	list="tar ztvf" ,
	print="tar zxOf" ,
	fnamepos=8
}

archive "*tar.bz2","*.tb2","*.tbz" {
	extract="bzip2 -dc $A 2>nul | tar xvf - $F 2>nul",
	list="bzip2 -dc $A 2>nul | tar tvf - 2>nul",
	print="bzip2 -dc $A 2>nul | tar xvOf - $F 2>nul",
	fnamepos=8
}

# zipn

archive	  "*.zip"
	, "*.exe" ("PKSFX",0,2047)
	, "*.exe" ("pksfx",0,2047)
	, "*.exe" ("PKSFX",14000,16000)
	, "*.exe" ("UNZIPSFX",0,2047)
	, "*.exe" ("unzipsfx",0,2047)
	, "*.exe" ("PKLITE",0,2047)
	, "*.exe" ("PK",-2048,-1)
{
	extract="unzip" ,		list="unzip -l -U" ,
	print="unzip -p" ,		delete="zip -d" ,
	fnamepos=-1 ,			start="-----" ,
	end="-----",			junk="unzip -j",
}

# lha n

# DOS/WINŎȉLHAB
# UNIXł LHA(lha6.exeƃl[Kv)𗘗pB
archive "*.lh6","*.exe"("LHA",0,2047) {
	extract="lha6 x ",
	list="lha6 l",
	print="lha6 pq2",
	delete="lha6 d ",
	start="-----",
	end="-----",
	linecount=1,
        fnamepos=-1,
	rootchar="/",
}


# LHA (s\Ȃ̂ŁAgq LH2 ɂĂ)
archive "*.lh2","*.exe"("LH/2",0,2047) {
	extract="lh32 X /s",		list="lh32 L /o",
	delete="lh32 D",		start="-----",
	end="-----",			fnamepos=3,
}
# YLHA(ŁFftHg)
archive "*.lzh" {
	extract="lha e -rxip",		list="lha v",
	print="lha p -pn2",		delete="lha d -p",
	start="-----",			end="-----",
	linecount=2,
	format="{17,26,2} {38,69,2}  {1,79,1}",
	junk="lha e -ip",		fnamepos=0,
}
# DOSŎȉLHAB
# ł LHA(lha2.exeƃl[Kv)𗘗pB
archive "*.exe"  ("LHA's SFX",0,2047) {
	extract="lha2 e -rxip",		list="lha2 v",
	print="lha2 p -pn2",		delete="lha2 d -p",
	start="-----",			end="-----",
	linecount=2,			
	junk="lha2 e -ip",		fnamepos=0,
}



# ------------ RAR ` --------------

archive   "*.rar"
	, "*.exe" ("RAR",0,2047)
	, "*.exe" ("RSFX",0,2047)
	, "*.exe" ("Rar!",24000,72000)
{
	extract="rar e",	list="rar l",	print="rar p",
	start="------------------------",
	end="-------------------------",
}

# ----------- ACE ` -------------
#  unace ́AWo͂ւ̉ y ʃt@C̉𓀂
# T|[gĂȂ̂ŁAgpł܂III
#
# тł unace KvłB
#     http://www.ipc.shizuoka.ac.jp/~sctokab/UNOFF/INDEX.HTM
# 肭B( >> т)

archive "*.ace",
        "*.exe" ("CE-SFX",0,2047)
{
        extract="unace x",
        junk="unace e",
        list="unace v",
        print="unace p",
        fnamepos=5 ,
        start="------------",
        end="------------",
}

# ----------- ARJ ` -------------
#  unarj ́AWo͂ւ̉𓀂T|[gĂȂ̂ŁA
# gpł܂B
#
# тł unarj KvłB
#     http://www.ipc.shizuoka.ac.jp/~sctokab/UNOFF/INDEX.HTM
# 肭B( >> т)
archive  "*.arj", 
         "*.exe" ("ARJSFX",0,2047),
         "*.exe" ("RJSX",0,2047)
{
	extract="unarj x",
	junk="unarj e",
	list="unarj l",
	print="unarj p",
	start="------------",
	end="------------",
}

# ---------- uEUŃZ[u Nifty ̉cO -------
# nifell.cmd KvBgzip,bzip2 ňkĂĂIbP[

archive "f*.log","f*.log.gz","f*.log.bz2" 
{
	print="nifell.cmd p",
	list="nifell.cmd l",
	fnamepos=1,
}

# --------- Pilot-link Ń_E[h PalmPilot ̃f[^ --------
# elwakt.exe Kv

archive  "*.pdb" {
	fnamepos=2,
	list="elwakt v",
	print="elwakt p",
}

# ---------- RPM pbP[W -----------
# 񋟂c΂Ɋ!!
# unrpm.cmd R}h
#	http://www2s.biglobe.ne.jp/~vtgf3mpr/linux/unrpm.zip
# _E[hł܂B

archive "*.rpm" {
	extract="unrpm.cmd -epf",
	print="unrpm.cmd -o",
	rootchar="/",
	list="unrpm.cmd -l", 
	fnamepos=1
#@	list="unrpm.cmd -ll", 
#@	fnamepos=8
}


# ----- Debian GNU/Linux dpkg-deb ňpbP[Wt@C -----
# 񋟂c Ɋ!!
# dpkg-deb.exe  ar.exe Kv

archive "*.deb" {
# If you have install OS/2 ported `dpkg-deb.exe' do this
#	extract="undeb.cmd -ep",
#	print="undeb.cmd -o",
#	rootchar="/",
#	list="dpkg-deb -c",
#	fnamepos=8
#
# If you have `ar.exe' and not have dpkg*.exe
	list="ar t",
	fnamepos=1,
	extract="ar x",
	print="ar p",
	delete="ar d"
}

color {
## _\LN^[̎w
##	horizon_char = { LN^[R[h or '' }
## Ǝw肷B
#
	horizon_char	= 0x06 ,
# or
#	horizon_char	= '=',
}

# Ot@C荞݁F
#     ΃pX̋N_ JgfBNgȂ̂ŁA_eff 
#     z[fBNgɒuĂꍇ́At@C̑O
#     u~/vtKvB

# u[obNʂɂꍇA̕Lɂ(u#vO)
# include "blueback.eff";

# L[oCh FileNova ۂꍇA̕Lɂ(u#vO)
# include "filenova.eff";
