# apply KaoriYa's patches and enable migemo
# see http://2xup.org/log/2006/09/13-0220
#     http://kimuraw.txt-nifty.com/d/2006/11/vim_portfile.html
set kaoriya_patch   vim72-20090321-kaoriya-w32j.exe
set kaoriya_path    ${worksrcpath}/vim72-kaoriya-w32j

#depends_lib-append  lib:libmigemo:cmigemo
master_sites-append http://www.kaoriya.net/dist/:kaoriya
distfiles-append    ${kaoriya_patch}:kaoriya
checksums-append    ${kaoriya_patch} md5 8c59bb9cb13d43548ca729097ccbb245
depends_build-append bin:7za:p7zip
post-patch {
    system "7za x ${distpath}/${kaoriya_patch}"
    if {[variant_isset cocoa]} {
        file delete ${kaoriya_path}/patches/0016-transparency_option.diff
    }
    system "cat ${kaoriya_path}/patches/*| patch -p0"
    system "cat ${portpath}/${filesdir}/patch-fileio.c| patch -p0"
    system "cat ${portpath}/${filesdir}/vimrc >> ${kaoriya_path}/vimrc"
    system "cat ${portpath}/${filesdir}/gvimrc >> ${kaoriya_path}/gvimrc"
}

pre-configure {
    system "cd src; make autoconf"
}
configure.args-append --enable-migemo

variant aqua conflicts cocoa {
    configure.args-append --enable-gui=carbon
    post-patch {
        # http://iplab.naist.jp/member/mio-su/dist/vim/inline0.2.diff
        # http://wiki.macvim.org/wiki/VimPatches/Transparency
        foreach file {configure.in gui_mac.c gvimrc mbyte.c option.c syntax.c vim.h} {
            system "cat ${portpath}/${filesdir}/patch-${file}| patch -p0"
        }
    }
}

variant cocoa conflicts aqua {
    configure.args-append --enable-gui=cocoa
    post-patch {
        system "gnutar xvfj ${filespath}/vim-cocoa-mac-20081128.tbz2 -C ${worksrcpath}/src/"
        system "cat ${portpath}/${filesdir}/patch-vim-cocoa-20081128 | patch -p1"
        foreach file {configure.in Makefile gui_mac.m gvimrc mbyte.c option.c option-cocoa.c syntax.c vim.h vimrc} {
            system "cat ${portpath}/${filesdir}/patch-${file}| patch -p0"
        }
    }
    pre-build {
        system "cd ${worksrcpath}/src/mac/PSMTabBarControl; xcodebuild"
    }
}

if {![variant_isset aqua] && ![variant_isset cocoa]} {default_variants +aqua}

post-destroot {
    set runtimePath \
        "${destroot}${applications_dir}/Vim.app/Contents/Resources/vim/runtime"
    xinstall -m 644 ${kaoriya_path}/vimrc ${kaoriya_path}/gvimrc \
        ${destroot}${applications_dir}/Vim.app/Contents/Resources/vim
    xinstall -d ${runtimePath}/lang/ja/LC_MESSAGES
    set scripts { \
        encode_japan.vim \
        keymap/azik_cp932.vim \
        keymap/japanese_cp932.vim \
        keymap/tcode_cp932.vim \
        keymap/tutcode_cp932.vim \
        lang/ja/LC_MESSAGES/vim.mo \
        plugin/autodate.vim \
        plugin/cmdex.vim \
        plugin/dicwin.vim \
        plugin/format.vim \
        plugin/hz_ja.vim \
        plugin/scrnmode.vim \
        plugin/verifyenc.vim \
    }
    system "gnutar -C ${kaoriya_path}/runtime/ -cf - ${scripts} | \
        gnutar -C ${runtimePath} -xvf -"
    foreach f ${scripts} {
        file attributes ${runtimePath}/${f} -permissions 0644
    }
    file copy ${prefix}/share/migemo/tools/migemo.vim \
        ${runtimePath}/plugin/migemo.vim
    reinplace "s|dict/migemo-dict|dict/\".\\&encoding.\"/migemo-dict|" \
        ${runtimePath}/plugin/migemo.vim
    file mkdir ${runtimePath}/dict
    set dicts {migemo-dict han2zen.dat hira2kata.dat roma2hira.dat zen2han.dat}
    foreach encodePath [glob ${prefix}/share/migemo/*] {
        set encode [file tail $encodePath]
        if {${encode} != "tools"} {
            file mkdir ${runtimePath}/dict/${encode}
            foreach dict ${dicts} {
                file link -hard ${runtimePath}/dict/${encode}/${dict} \
                    ${encodePath}/${dict}
            }
        }
    }
}
