# $Id: Portfile 93057 2012-05-14 14:31:48Z jmr@macports.org $

PortSystem 1.0

name            screen
version         4.0.3
revision        3
homepage        http://www.gnu.org/software/screen/
description     Screen manager with VT100/ANSI terminal emulation
long_description    Screen is a full-screen window manager that multiplexes a physical \
                terminal between several processes (typically interactive shells). \
                Each virtual terminal provides the functions of a DEC VT100 terminal \
                and, in addition, several control functions from the ANSI X3.64 (ISO \
                6429) and ISO 2022 standards (e.g. insert/delete line and support for \
                multiple character sets). There is a scrollback history buffer for each \
                virtual terminal and a copy-and-paste mechanism that allows moving text \
                regions between windows.
categories      sysutils
license         GPL-2+
platforms       darwin
maintainers     nomaintainer
master_sites    http://fresh.t-systems-sfr.com/unix/src/misc/ \
                ftp://ftp.uni-erlangen.de/pub/utilities/screen/ \
                http://www.cis.nctu.edu.tw/~is85005/dports/screen/:encoding \
                http://www.cis.nctu.edu.tw/~is85005/dports/screen/r23776/:launchd_priv_header

# The file '18' above is a fix for UTF8-to-Big5HKSCS encoding translation.
# Reference: http://freebsd.sinica.edu.tw/~statue/index.php?file=20020513
distfiles-append 18:encoding

checksums       ${distname}${extract.suffix} md5 8506fd205028a96c741e4037de6e3c42 \
                18 md5 e5c53546a5c4968bd7e807c88e6b2198 \
                vproc_priv.h md5 50800817fa688e7e6ae379cd599f15ca
patchfiles      patch-maxargs patch-windowsize patch-Makefile.in
depends_lib     port:ncurses

extract.only    ${distname}${extract.suffix}
post-extract    { file copy ${distpath}/18 ${workpath} }
configure.args  --mandir=${prefix}/share/man \
                --infodir=${prefix}/share/info \
                --enable-locale \
                --enable-telnet \
                --enable-colors256 \
                --enable-rxvt_osc
configure.env   LIBS=-lncurses

post-destroot {
    xinstall -m 644 ${workpath}/18 ${destroot}${prefix}/share/${name}/utf8encodings
    xinstall -m 644 ${worksrcpath}/etc/etcscreenrc ${destroot}${prefix}/etc/screenrc
    xinstall -m 644 ${worksrcpath}/terminfo/screencap ${destroot}${prefix}/etc/termcap
    system "tic ${worksrcpath}/terminfo/screeninfo.src"
}

platform darwin 9 {
    post-patch {
        reinplace s|^deflogin|#deflogin| ${worksrcpath}/etc/etcscreenrc
    }

    # These patches are based on http://www.opensource.apple.com/darwinsource/10.5.6/screen-12/patches/
    # The vproc_priv.h is the private header from launchd, used in Apple's 10.5 screen patches
    # We copied the header file from http://launchd.macosforge.org/trac/browser/trunk/launchd/src/vproc_priv.h, r23776 
    distfiles-append    vproc_priv.h:launchd_priv_header
    post-extract        { file copy ${distpath}/vproc_priv.h ${worksrcpath} }
    patchfiles-append   patch-config.h.in patch-configure patch-pty.c patch-window.c patch-screen.c-leopard
}

platform darwin 10 {
    # These patches are based on http://www.opensource.apple.com/source/screen/screen-16/patches/
    # The vproc_priv.h is the private header from launchd, used in Apple's 10.6 screen patches
    # We copied the header file from http://launchd.macosforge.org/trac/browser/trunk/launchd/src/vproc_priv.h, r23776 
    distfiles-append    vproc_priv.h:launchd_priv_header
    post-extract        { file copy ${distpath}/vproc_priv.h ${worksrcpath} }
    patchfiles-append   patch-config.h.in patch-configure patch-pty.c patch-window.c patch-screen.c patch-process.c
}

platform darwin 11 {
    # These patches are based on http://www.opensource.apple.com/source/screen/screen-16/patches/
    # The vproc_priv.h is the private header from launchd, used in Apple's 10.6 screen patches
    # We copied the header file from http://launchd.macosforge.org/trac/browser/trunk/launchd/src/vproc_priv.h, r23776 
    distfiles-append    vproc_priv.h:launchd_priv_header
    post-extract        { file copy ${distpath}/vproc_priv.h ${worksrcpath} }
    patchfiles-append   patch-config.h.in patch-configure patch-pty.c patch-window.c patch-screen.c patch-process.c
}

variant vertical_split description {Apply vertical split patch} {
    patchfiles-append patch-wrp_vertical_split
}

default_variants +vertical_split

notes "
Any screens running before upgrading, will not be available, post-install.
"
