
###############################################################################
# ϐ
###############################################################################
# gcc CN[ht@C
if defined? MYCYGWINCOMPILE
    ENV['CPATH']= PROGRAM_HOME + "/include:" + PROGRAM_HOME + "/lib/ruby/1.8/i386-cygwin"
end

# gcc CupX
if defined? MYCYGWINCOMPILE
    ENV['LIBRARY_PATH'] = PROGRAM_HOME + "/lib:" + PROGRAM_HOME + "/lib/w32api"
end

# ꎞfBNg
ENV['TMPDIR']=ENV['TMP']

# py[Wݒ
if ENV['PAGER'] == nil || ENV['PAGER'] == ""
    if `which lv 2> /dev/null` != ""
        if `uname -s`.index("CYGWIN")
            ENV['PAGER'] = "lv -As"
        else
            ENV['PAGER'] = "lv"
        end
    elsif `which less 2> /dev/null` != ""
        ENV['PAGER'] = "less"
    else
        ENV['PAGER'] = "more"
    end
end

# pGfBb^
if ENV['EDITOR'] == nil || ENV['EDITOR'] == ""
    if `which vim 2> /dev/null` != ""
        ENV['EDITOR'] = "vim"
    else
        ENV['EDITOR'] = "vi"
    end
end

# pVF
if ENV['SHELL'] == nil || ENV['SHELL'] == "" 
    if `which zsh 2> /dev/null` != ""
        ENV['SHELL'] = "zsh"
    elsif `which bash 2> /dev/null` != ""
        ENV['SHELL'] = "bash"
    elsif `which tcsh 2> /dev/null` != ""
        ENV['SHELL'] = "tcsh"
     else
        ENV['SHELL'] = "sh"
    end
end

##############################################################################
# IvV
###############################################################################
$pageup_length = 7                                  # y[WAbvA_E̎̃J[\ړ̑傫
$option_scroll_type = "original"                    # XN[̃^Cv IWi
#$option_scroll_type = "fdclone"                    # fdcloneXN[
#$option_scroll_type = "afu"                        # ӕ̃XN[(J[\㉺ɂXN[[̕`ʃXs[h𑊓v܂)
$option_afu_copy = true                             # ӕ̃Rs[邩
$option_left_right_dir_up = false                   # EL[ŐefBNgɈړ邩
$option_enter_cursor_down = false                   # ENTERɂR}hsŎsJ[\邩

option_individual_cursor true                       # ẼfBNgŌʂɃJ[\ێ邩
option_check_delete_file true                       # t@C폜鎞ɊmF邩
option_check_copy_file false                        # t@CRs[鎞ɊmF邩
option_check_exit true                              # mfiler2I鎞ɊmF邩
option_remain_cursor false                          # efBNgŃJ[\ʒuێ邩
option_auto_rehash false                            # R}hCɓ鎞ɎI$PATH𑖍ăvOnbV邩idȂ܂)
option_remain_marks false                           # R}hs}[Nێ邩
option_read_dir_history true                        # mfiler2NɃfBNgǂݍނ
option_trashbox_path ENV["HOME"] + "/mtrashbox"     # ݔ̃fBNg
option_extension_icase true                         # L[oChŊgq̑啶ʂ邩
option_gnu_screen false                             # GNU screenŋNĂ邩
option_xterm false                                  # [s@\Iɂ邩

# X[p[CN^T[`ŌȂfBNg
if `uname -s`.index("Darwin")
    $sisearch_except_dir = ["/automount/", "/Network/", "/Volumes/"]
else
    $sisearch_except_dir = ["/media/", "/mnt/"]
end

sisearch_migemo false                               # X[p[CN^T[`migemoLɂ邩ǂ

sisearch_candidate_max_ascii 17                     # X[p[CN^T[`ASCIIt@C̕\␔
sisearch_candidate_max_migemo 1                     # X[p[CN^T[`migemot@C̕\␔


history_size 10000                                  # R}hCqXgŕۑR}h

set_change_terminal_title false                     # [̃^Cgς邩ǂ
set_isearch_option1 true                            # 擪CN^T[`s畔vCN^T[`

set_menu_scroll_cycle true                          # j[̃XN[z邩

$option_tab_remain_dir = false                      # tabɂPʂQʈڍsfBNgʒuۑ邩ǂ(falseȂ疈JgfBNgn܂)

set_cmdline_escape_key false                        # R}hCŃGXP[vL[ɂR}hCILɂ邩ǂ

set_escape_wait 150000                              # GXP[vL[Ă炱̒l̓͂҂(ex. Meta-fEscapeĂ玟f܂ł̑҂)

### J[ ###
# gpłJ[ MA_WHITE, MA_BLUE, MA_CYAN, MA_GREEN, MA_YELLOW, MA_MAGENTA, MA_RED

set_view_bold_exe true                  # st@C𑾎ɂ邩
set_view_bold_dir true                  # fBNg𑾎ɂ邩
set_view_color_mark MA_YELLOW           # }[Nt@C̃J[
set_view_color_dir MA_CYAN              # fBNg̃J[
set_view_color_link MA_MAGENTA          # ÑJ[

if `uname -s`.index("CYGWIN")
    set_view_color_exe MA_WHITE             # st@C̃J[
    option_visible_fname_execute false      # st@Cɐ邩ǂ
    option_refresh false                    # X[@\⑼[s@\ŃfBXN̍ēǂݍ݂sǂ
else
    set_view_color_exe MA_RED               # st@C̃J[                       
    option_visible_fname_execute true      # st@Cɐ邩ǂ
    option_refresh true                    # X[@\⑼[s@\ŃfBXN̍ēǂݍ݂sǂ
end

### R[h ###
if `uname -s`.index("CYGWIN") || ENV['LANG'] == "ja_JP.SJIS" || ENV['LANG'] == "ja_JP.sjis"
    set_kanjicode "sjis"
elsif ENV['LANG'] != nil && (ENV['LANG'].index("utf") || ENV['LANG'].index("UTF")) || `uname -s`.index("Darwin")
    set_kanjicode "utf8"
else
    set_kanjicode "eucjp"
end

if `uname -s`.index("Darwin")
    set_kanjicode_filename 'utf8-mac'        # OSX͒[̃GR[hutf8t@C̃GR[hutf8-mac
end

set_shell(ENV['SHELL'], `which #{ENV['SHELL']}`.chomp, "-c")       # gpOVF %Sw肳ꂽꍇAGNU screenA[s@\Ŏg܂

### [s@\ŎgpX[̐ݒ ###
# set_xterm X[̃vO, ^Cg, R}hs, ̑̈, Gnome TerminalȂ1(Gnome Terminal͈̏Ȃ̂łPKv)
if `uname -s`.index("CYGWIN")
    set_xterm("ck", "-title", "-e", "", 0)
elsif `which gnome-terminal 2> /dev/null` != ""
    set_xterm("gnome-terminal", "-t", "-e", "", 1)
elsif `which konsole 2> /dev/null` != ""
    set_xterm("konsole", "-T", "-e", "", 0)
elsif `which mlterm 2> /dev/null` != ""
    set_xterm("mlterm", "-T", "-e", "", 0)
elsif `which rxvt 2> /dev/null` != ""
    set_xterm("rxvt", "-T", "-e", "", 0)
elsif `which Eterm 2> /dev/null` != ""
    set_xterm("Eterm", "-T", "-e", "", 0)
elsif `which aterm 2> /dev/null` != ""
    set_xterm("aterm", "-T", "-e", "", 0)
elsif `which kterm 2> /dev/null` != ""
    set_xterm("kterm", "-T", "-e", "", 0)
else
    set_xterm("xterm", "-T", "-e", "", 0)
end

###############################################################################
# t@C[ʂ̃vvgJX^}CY (Ԃꂽ񂪕\܂)
###############################################################################
def cmdline_prompt()
    return "Minnu's Filer2 version #{version()} (c)D.Minato 2004-2008 <?> for help"
end

###############################################################################
# t@C̎ނƂɕ\J[ς
###############################################################################
$file_color = [
    [ /.+\.(zip|gz|tgz|tar|bz2|lzh)$/, MA_GREEN ],
    [ /.+\.exe$/, MA_RED ]
]

###############################################################################
# L[oCh
###############################################################################
#keycommand ^L[(ALTL[), ݒ肷L[R[h, gq, RubyR}h

# gq"*"Ŋgqw肵ȂA".c" gqc̃t@C ".dir"ƃfBNgA".execute"Ŏst@C ".link"symbolic linkA".mark"Ń}[Nt@CA".mark-c"Ŋgqc̃}[Nt@C "fname" fnamẽt@C̃t@C

# }N
# %f J[\̃t@C %F J[\̃t@CitpXj%x gq %X gqȊO 

# %d ANeBuȃfBNg %d2 ANeBuȃfBNg
# %D ANeBuȃfBNgtpX %D2 ANeBuȃfBNgtpX

# %m ANeBuȃfBNgŃ}[NĂt@C̗B}[NĂȂꍇ̓J[\̃t@C
# %m2 ANeBuȃfBNgŃ}[NĂt@C̗
# %M }[NĂt@C̗BtpX
# %M2 ANeBuȃfBNgŃ}[NĂt@C̗BtpX

# %r R}hrubyɓn
# %s mfilersystem֐ɓn
# %S OVFɓn
# %t [Ŏs
# %q R}hs҂Ȃ
# %Q R}hs҂ȂBcursesIɎs(ʂĕ`ʂȂ)
# %o R}hsĂ}[NNAȂ

# ruby mfiler2 API

# shell("R}h", "^Cg") R}hs
# cmdline("R}h", J[\ʒu) R}hCɈڍs J[\ʒu0Ŗ, -1ŖЂƂO 1Ő擪Bݒ肳Ă΃R}hsJ[\
# cmdline_c("R}h", "J[\ʒu", "R}hssrubyR}h")

# dir_move(fBNgԍ, "fBNg") fBNgɈړ fBNgԍ0ōfBNg 1ŉEfBNg ANeBuȃfBNg̔ԍadir(), ANeBułȂfBNg̔ԍsdir()œ܂

# defmenu j[̒`
# menu j[J

# ڂ̓}jAĂ

require "keybind_fdlike.rb"         # ʓIȃt@C[̃L[oCh[h
#require "keybind_mfiler2.rb"         # mfiler2(IWi)̃L[oCh[h

#keycommand NOMETA, KEY_e,      "*",     "shell('%Q gvim %f &', '%f')"
#keycommand NOMETA, KEY_F4,     "*",     "shell('%Q gvim %f &', '%f')"

#keycommand NOMETA, KEY_ENTER,  ".c",          "cmdline('gcc -o test %f', 0)"
#keycommand NOMETA, KEY_ENTER,  ".mark-c",     "cmdline('gcc -o test %m', 0)"
#keycommand NOMETA, KEY_ENTER,  "makefile",   "cmdline('%q%S make -f %f  2>&1| $PAGER', -13)"

###############################################################################
# ENTERɂgqʃR}hs̐ݒ
###############################################################################

keycommand NOMETA, KEY_ENTER, ".sh",   "cmdline('sh %f ', 0)"
keycommand NOMETA, KEY_ENTER, ".pl",   "cmdline('perl %f ', 0)"
keycommand NOMETA, KEY_ENTER, ".py",   "cmdline('python %f ', 0)"
keycommand NOMETA, KEY_ENTER, ".rb",   "cmdline('ruby %f ', 0)"
keycommand NOMETA, KEY_ENTER, ".class","cmdline('java %X ', 0)"

defmenu("playlist",
    "(1) relative path", KEY_1, "playlist_start cursor_path",
    "(2) absolute path", KEY_2, "playlist_start2 cursor_path"
)

keycommand NOMETA, KEY_ENTER, ".list", "menu('playlist')"

### Mac OS X #################################################################
if `uname -s`.index("Darwin")
    keycommand NOMETA, KEY_ENTER, "configure",  "cmdline('./configure ', 0)"

    defmenu("run_or_insert_directory",
        "(r)un app", KEY_r, "shell('%Q open %f', '%f')",
        "(i)nsert directory", KEY_i, "dir_move(adir(), cursor_name())"
    )
    keycommand NOMETA, KEY_ENTER, ".app",           "menu('run_or_insert_directory')"
    keycommand NOMETA, KEY_ENTER, ".xcodeproj",     "menu('run_or_insert_directory')"


    keycommand NOMETA, KEY_ENTER, "*",          "cmdline('%Q open  %f', 9)"

### cygwin ###################################################################
elsif `uname -s`.index("CYGWIN")
    keycommand NOMETA, KEY_ENTER, "configure",  "cmdline('./configure ', 0)"
    
    #keycommand NOMETA, KEY_ENTER, ".jpg",  "key_enter_win_program2('gv')"
    
    keycommand NOMETA, KEY_ENTER, ".mark-mp3",  "key_enter_mark_win_program('wmplayer /Add')"
    keycommand NOMETA, KEY_ENTER, ".mark-wav",  "key_enter_mark_win_program('wmplayer /Add')"
    keycommand NOMETA, KEY_ENTER, ".mark-mid",  "key_enter_mark_win_program('wmplayer /Add')"
    keycommand NOMETA, KEY_ENTER, ".mark-mpg",  "key_enter_mark_win_program('wmplayer /Add')"
    keycommand NOMETA, KEY_ENTER, ".mark-mpeg", "key_enter_mark_win_program('wmplayer /Add')"
    
    keycommand NOMETA, KEY_ENTER, ".mark-doc",  "key_enter_mark_win_program('WINWORD')"

    keycommand NOMETA, KEY_ENTER, ".exe",       "cmdline('%Q ./%f  &', -2)"
    keycommand NOMETA, KEY_ENTER, "*",          "shell('%Q cygstart %f > /dev/null 2> /dev/null', '%f'); enter_cursor_down()"
    
### unix #######################################################################
else
    keycommand NOMETA, KEY_ENTER, ".execute",   "cmdline('./%f ', 0)"
    keycommand NOMETA, KEY_ENTER, "*",          "shell('%q $PAGER %f', '%f'); enter_cursor_down()"
end

###############################################################################
# GCAXiGCAX͂ł邾啶Őݒ肷邱Ƃ߂܂)
###############################################################################
#malias "GCAX", ̐, "R}h"  #0, #1, #2,...,#9ɓWJ

#malias "L", 0, "| $PAGER"
#malias "PSG", 1, "ps auxw | grep #0 | grep -v grep"

###############################################################################
# IWiR}h̗(yŋN)
###############################################################################

#}[Nt@C̃t@C̐擪Ƀ\[g2̔ԍt
def set_number_at_head()
    if adir_mark().size() > 99          # adir_mark() --> }[Nt@C̔z
        return
    end
    
    i = 1
    adir_mark().each do |fname|           # }[Nt@Cꂼfnameɓ
        if i < 10                       # 0-9ڂȂ
            File.rename(fname, "0" + i.to_s + fname)    # t@C 0?fnameɉ
        else
            File.rename(fname, i.to_s + fname)          # t@C ??fnameɉ
        end
        
        i += 1
    end

    reread()            # fBXN̍ēǂݍ
end

#}[Nt@C̃t@C̐擪2̔ԍ
def del_number_at_head()
    adir_mark().each do |fname|
        if fname[0] >= "0"[0] && fname[0] <= "9"[0] && fname[1] >= "0"[0] && fname[1] <= "9"[0]
            File.rename(fname, fname[2..-1])
        end
    end

    reread()
end

defmenu("my_commands",
   "(1) set_number_at_head",  KEY_1, "set_number_at_head()",
   "(2) del_number_at_head",  KEY_2, "del_number_at_head()"
   );

keycommand NOMETA, KEY_y,            "*",     "menu('my_commands')"

