
                CygTerm  -  yet another Cygwin console

                $B%?!<%_%J%k!&%(%_%e%l!<%?$G(B Cygwin $B$r;H$&!#(B

                Copyright (C) 2000-2004 NSym

                nsym@dd.iij4u.or.jp

      (English) http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/index-e.html

     (Japanese) http://www.dd.iij4u.or.jp/~nsym/cygwin/cygterm/index.html


// $B$O(B $B$8(B $B$a(B $B$K(B //

    Cygwin$B%3%s%=!<%k$G$"$k(BDOS$BAk$r%?!<%_%J%k!&%(%_%e%l!<%?$GCV$-BX$($F$_$h$&!"(B
    $B$H$$$&;n$_$G$9!#(B $B$?$@$7!X%j%b!<%H%m%0%$%s$N$7$/$_$rMxMQ$;$:$K!Y$H$$$&(B
    $BA0Ds$G$9!#(B $B$7$?$,$C$F(B inetd $B$H$+(B in.telnetd $B$H$+(B login $BEy$O;HMQ$7$^$;$s!#(B

// $B9M(B $B$((B $BJ}(B //

    $B%?!<%_%J%k!&%(%_%e%l!<%?$H(BCygwin$B>e$N%7%'%k$r5/F0$7!"N><T$rCf7Q$9$k!#(B
    $B$3$l$r9T$&%W%m%0%i%`$r:n$l$P$h$$!#(B

// $B;E(B $BMM(B //

    1. $B$3$N%W%m%0%i%`$r<B9T$9$k$H!"%?!<%_%J%k!&%(%_%e%l!<%?$,N)$A>e$,$j!"(B
       $B$=$3$K%7%'%k$N%W%m%s%W%H$,8=$l!"(BCygwin$B%3%s%=!<%k$H$7$F;H$($k$3$H!#(B

    2. $B5/F0$9$k%?!<%_%J%k!&%(%_%e%l!<%?$H%7%'%k$OA*Br2DG=$G$"$k$3$H!#(B

    3. $B%7%'%kB&$N2hLL@)8f$,@5>o$KF0:n$7!"%?!<%_%J%k!&%(%_%e%l!<%?B&$N(B
       $B2hLL%5%$%:JQ99$K$bDI?o$9$k$3$H!#(B

// $B@_(B $B7W(B //

    cygterm.exe $B=hM}>\:Y(B

      [1] TELNET$B@\B3$rBT$A<u$1$k%j%9%J!<%=%1%C%H$rMQ0U$9$k!#(B
          $B%=%1%C%H$K3d$jEv$F$kL$;HMQ%]!<%HHV9f$O;XDjHO0OFb$+$iC5$7=P$9!#(B

      [2] $BJL%9%l%C%I$G%?!<%_%J%k!&%(%_%e%l!<%?$r5/F0$9$k!#(B
          $B$3$N$H$-5/F00z?t$K(B IP$B%"%I%l%9(B 127.0.0.1 $B$H(B [1]$B$N%]!<%HHV9f$r;XDj$9$k!#(B

      [3] $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i$N@\B3$r<u$1F~$l$k!#(B
          $B%;%-%e%j%F%#!<>e(B 127.0.0.1 $B0J30$+$i$N@\B3$O5Q2<$9$k!#(B

      [4] fork()$B$7$?;R%W%m%;%9>e!"(BPTY($B5<;wC<Kv(B)$B%9%l!<%VB&$G%7%'%k$r5/F0$9$k!#(B

      [5] [3]$B$N(B TELNET$B@\B3%=%1%C%H$H(B [4]$B$N(B PTY$B%^%9%?!<B&$NF~=PNO$r66EO$7$9$k!#(B

    TELNET$B%W%m%H%3%k$X$NBP1~(B (option negotiation)

        $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i%?!<%_%J%k%?%$%W$NDLCN$r<u$1!"(B
        $B%7%'%k>e(B TERM $B4D6-JQ?t$K%;%C%H$9$k!#(B

        $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i%?!<%_%J%k%5%$%:$NDLCN$r<u$1!"(B
        PTY$B$N%&%#%s%I%&%5%$%:$rF1%5%$%:$KJQ99$9$k!#(B

        [$B;2>H(B: RFC854 TELNET PROTOCOL SPECIFICATION]

    cygterm.exe $B$O%&%#%s%I%&$r;}$?$J$$(B Win32$B%"%W%j$H$7$F<BAu$9$k!#(B

// $B%=(B $B!<(B $B%9(B //

    README-j     -  $B$3$N%U%!%$%k(B
    README       -  README-j$B1QLu(B
    Makefile     -  $B%a%$%/%U%!%$%k(B
    cygterm.cc   -  $B%=!<%9%3!<%I(B
    cygterm.cfg  -  $B@_Dj%U%!%$%k(B

    $B"((B Free Software Foundation $BH/9T(B GNU General Public License (GPL)
       $B$K=`5r$9$k%U%j!<%=%U%H%&%'%"$H$7$FG[I[$7$^$9!#(B
       http://www.gnu.org/copyleft/gpl.html $B;2>H!#(B

       $BJdB-(B: $BB>%W%m%0%i%`$,(B CygTerm$B<B9T7A<0(B(cygterm.exe)$B$r5/F0$7DL?.$7$F(B
             $B;HMQ$9$k$3$H$O!"$=$l$,Hs(BGPL$B%W%m%0%i%`$N>l9g$G$b5v2D$5$l$^$9!#(B 

// $B%$(B $B%s(B $B%9(B $B%H(B $B!<(B $B%k(B //

    Cygwin$B4D6-2<$G(B make install $B$r<B9T$7$^$9!#(B

    $B"((B $B%$%s%9%H!<%k@h%G%#%l%/%H%j$O(B Makefile $BCf(B BINDIR $B$G@_Dj$7$F$*$-$^$9!#(B
       BINDIR $B$K(B cygterm.exe $B$H(B cygterm.cfg $B$,%$%s%9%H!<%k$5$l$^$9!#(B
       cygterm.cfg $B$O>e=q$-$5$l$^$;$s!#(B

// $B@_(B $BDj(B $B%U(B $B%!(B $B%$(B $B%k(B //

    cygterm.cfg $B$O@_Dj%U%!%$%k$G$9!#(B $B;HMQ$9$kC<Kv%(%_%e%l!<%?$N%3%^%s%I%i%$%s(B
    $B$d5/F0$9$k%7%'%k$N%3%^%s%I%i%$%sEy$r@_Dj$7$^$9!#(B
    cygterm.cfg $B$O(B cygterm.exe $B$HF1$8%G%#%l%/%H%j$K$J$$$H$$$1$^$;$s!#(B

      cygterm.cfg $B$NNc(B
      +-----------------------------------------------------------------------
      | TERM = C:\program files\ttermpro\ttermpro.exe %s %d /KR=SJIS /KT=SJIS
      | TERM_TYPE = vt100
      | PORT_START = 20000
      | PORT_RANGE = 40
      | SHELL = /bin/bash
      | ENV_1 = MAKE_MODE=unix
      | ENV_2 = HOME=/home
      |   :         :

    TERM
    ----
        $B%?!<%_%J%k!&%(%_%e%l!<%?$N5/F0%3%^%s%I%i%$%s$G$9!#(B
        $B%3%^%s%IL>$O(B Windows$B4D6-$G%Q%9$,DL$C$F$J$1$l$P%U%k%Q%9$G=q$-$^$9!#(B
        $B%[%9%H;XDj$N$H$3$m$O(B %s $B$H$7!"%]!<%H;XDj$N$H$3$m$O(B %d $B$H$7$^$9!#(B

    TERM_TYPE
    ---------
        $B%?!<%_%J%k!&%(%_%e%l!<%?$,%?!<%_%J%k%?%$%W$rM?$($F$/$l$J$+$C$?(B
        $B>l9g$K:NMQ$9$k%?!<%_%J%k%?%$%W$G$9!#(B ($B%G%U%)%k%H(B:vt100)
        $B%7%'%k>e!"4D6-JQ?t(B TERM $B$K%;%C%H$5$l$^$9!#(B

    PORT_START
    ----------
        $B;H$$;O$a$k(B ($B;H$C$F$h$$:G>.$N(B) $B%]!<%HHV9f$G$9!#(B ($B%G%U%)%k%H(B:20000)

    PORT_RANGE
    ----------
        $B;H$C$F$h$$%]!<%HHV9f$N8D?t$G$9!#(B ($B%G%U%)%k%H(B:40)

        PORT_START $B!A(B PORT_START+PORT_RANGE $B$NHO0O$G6u$-%]!<%H$rC5$7$^$9!#(B
        $B$3$N?t$@$1F1;~<B9T$G$-$k$3$H$K$J$j$^$9!#(B

    SHELL
    -----
        Cygwin$BB&%7%'%k(B ($BDL>o(B /bin/bash) $B$N5/F0%3%^%s%I%i%$%s$G$9!#(B
        $B%3%^%s%IL>$O%U%k%Q%9$G$J$1$l$P$$$1$^$;$s!#(B

    ENV_X
    -----
        $B%7%'%k5/F0;~$K@_Dj$7$F$*$-$?$$4D6-JQ?t$G$9!#!VJQ?tL>(B=$BCM!W$N7A<0(B
        (putenv$B7A<0(B) $B$G5-=R$7$^$9!#(B ENV_ $B$G;O$a$l$P$$$/$D$G$b5-=R$G$-$^$9!#(B

// $B5/(B $BF0(B $BJ}(B $BK!(B //

    $B%3%^%s%I%i%$%s!&%*%W%7%g%s(B

        cygterm.exe [-t 'terminal-emulator'] [-p port-number] [-dumb]
                    [-s 'shell'] [-v 'env-var' ...]

        -t 'terminal-emulator'
                $B%?!<%_%J%k!&%(%_%e%l!<%?$r;XDj$7$^$9!#(B
                $B;XDj7A<0$O@_Dj%U%!%$%k$N(B TERM $B$HF1$8$G$9!#(B
                $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B

        -p port-number
                $B%?!<%_%J%k!&%(%_%e%l!<%?$r5/F0$9$k$N$G$O$J$/!"(B
                $B%m!<%+%k%[%9%H$N$3$N%]!<%HHV9f$X$N@\B3$r;n$_$^$9!#(B
                $BB>$N%"%W%j%1!<%7%g%s!&%W%m%0%i%`$,(B -p $B%*%W%7%g%s$r;H$C$F!"(B
                cygterm.exe $B7PM3$G(B Cygwin$B$rMxMQ$9$k!"Ey$,9M$($i$l$^$9!#(B

        -dumb
                TELNET$B%*%W%7%g%s!&%M%4%7%(!<%7%g%s$r9T$$$^$;$s!#(B
                $B$5$i$K(B TELNET$B%3%^%s%I$,Aw?.$5$l$F$-$F$bL5;k$7$^$9!#(B
                $B%7%'%kB&$N4D6-JQ?t(B TERM $B$O(B 'dumb' $B$H$J$j$^$9!#(B

        -s 'shell'
                Cygwin$B>e$N%7%'%k$r;XDj$7$^$9!#(B
                $B;XDj7A<0$O@_Dj%U%!%$%k$N(B SHELL $B$HF1$8$G$9!#(B
                $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B
                $BI,$:$7$b%7%'%k%3%^%s%I$G$"$kI,MW$O$"$j$^$;$s!#(B

        -v 'env-var'
                $B%7%'%k5/F0;~$K@_Dj$7$F$*$-$?$$4D6-JQ?t$r;XDj$7$^$9!#(B
                $B;XDj7A<0$O@_Dj%U%!%$%k$N(B ENV_X $B$HF1$8$G$9!#(B
                $B6uGrJ8;z$r4^$`>l9g$OI,$:%/%)!<%H$G0O$_$^$9!#(B
                -v $B%*%W%7%g%s$O$$$/$D$G$b;XDj$G$-$^$9!#(B

    $B%?!<%_%J%k!&%(%_%e%l!<%?$b$7$/$O@\B3@h%]!<%HHV9f!"$H(B Cygwin$BB&%7%'%k$N(B
    $B;XDj$,:GDcI,MW$H$J$j$^$9!#(B $B$3$l$i$,%3%^%s%I%i%$%s!&%*%W%7%g%s$K$h$C$F(B
    $BM?$($i$l$k$J$i$P!"@_Dj%U%!%$%k(B cygterm.cfg $B$,L5$/$F$b<B9T$G$-$^$9!#(B

    cygterm.exe $B$O(B cygwin1.dll $B$rMxMQ$9$k(B Win32$B%"%W%j%1!<%7%g%s$G$9!#(B
    Cygwin$B>e$+$i<B9T$9$k$3$H$b!"(BWindows$B>e$N%7%g!<%H%+%C%H$+$i<B9T$9$k$3$H$b(B
    $B$G$-$^$9!#(B

    $B"((B Windows$B>e$+$i<B9T$9$k$K$O(B cygwin1.dll $B$N%G%#%l%/%H%j%Q%9$,(B
       Windows$B4D6-JQ?t(B PATH $B$KDI2C$5$l$F$$$kI,MW$,$"$j$^$9!#(B
       ($BDL>o(B Cygwin$B%k!<%H%G%#%l%/%H%j(B\bin)

// $BCm(B $B0U(B $B;v(B $B9`(B //

    * TeraTerm$B;HMQ;~$NCm0U(B

    $B%?!<%_%J%k!&%(%_%e%l!<%?$,(B TeraTerm $B$N>l9g!"(Bcygterm.exe $B$+$i5/F0$5$l$?(B
    $B>uBV$G@_DjJ]B8(B [Setup][Save setup] $B$r9T$o$J$$$h$&Cm0U$7$F$/$@$5$$!#(B
    TCP/IP$B@_Dj$N(B Telnet$B%]!<%HHV9f$,(B 23 $B0J30$GJ]B8$5$l!"DL>o$N(B Telnet$BL\E*$N(B
    $B<B9T;~$K@\B3$G$-$:!"92$F$k$3$H$K$J$C$F$7$^$$$^$9!#(B
    TCP/IP Port# $B$K(B 23 $B$r;XDj$7$F@_DjJ]B8$7D>$;$P85$KLa$j$^$9!#(B

// $BF0(B $B:n(B $B3N(B $BG'(B //

    2004$BG/(B 1$B7n8=:_!"0J2<$N4D6-$GF0:n$,3NG'$G$-$F$$$^$9!#(B

        Windows 2000 SP4 + Cygwin 1.5.5(0.94/3/2)

        $B%?!<%_%J%k%(%_%e%l!<%?(B
                Windows 2000 telnet.exe
                TeraTermPro 2.3
        $B%7%'%k(B
                bash 2.05b
                zsh 4.1.1

// $BJQ(B $B99(B $BMz(B $BNr(B //
v1.06_02 2006/02/09 (by babydamons@yahoo.co.jp)
        * CygTerm$B$N%"%$%3%s$,:n@.$5$l$^$7$?!#!J(B"DotWork 2.50"$B$K$F:n@.!K(B
          "DotWork 2.50" $B$O1&5-$N(BURL$B$h$jF~<j2DG=$G$9!#(B http://www5a.biglobe.ne.jp/~suuta.
          $B$9$P$i$7$$%=%U%H%&%'%"$r8x3+$7$F$$$?$@$-!"(B
          "suuta at hamal dot freemal dot ne dot jp"$B$K46<UCW$7$^$9!#(B

        * Makefile$B$,=$@5$5$l$^$7$?!#(B"clean"$B%?!<%2%C%H$G(Bcygterm.ico$B$r:o=|$7$J$$$h$&$K!#(B

v1.06_01 2006/02/08 (by babydamons@yahoo.co.jp)
        * $B0J2<$N@_Dj%U%!%$%k$NFI$_9~$_$r%5%]!<%H(B:
            + /etc/cygterm.conf
            + ~/.cygtermrc

        * $B%7%'%k$,%f!<%6$N%[!<%`%G%#%l%/%H%j$G5/F0$5$l$k$h$&$K!#(B

        * $B%"%+%&%s%H$N@_Dj>pJs$r(B/etc/passwd$B$+$i(Bgetpwnam(3)$B$GFI$_9~$`$h$&$K!#(B
          $B%"%+%&%s%HL>$O4D6-JQ?t(BUSERNAME$B$+$i(Bgetenv(3)$B$G<hF@$7$F$^$9!#(B

        * Makefile$B=$@5!'%G%#%U%)%k%H$G%"%$%3%s$D$-$N(B.exe$B$r%S%k%I$7$^$9!#(B

v1.06 2004/01/24
        * $B%3%^%s%I%i%$%s!&%*%W%7%g%s$rDI2C!#(B
            -t 'terminal-emulator' ($B%?!<%_%J%k!&%(%_%e%l!<%?;XDj(B)
            -p port-number ($B@\B3@h%]!<%HHV9f;XDj(B)
            -dumb ($B%@%`%?!<%_%J%k;XDj(B)
            -s 'shell' ($B%7%'%k;XDj(B)
            -v 'env-var' ($B4D6-JQ?t;XDj(B)

        * Makefile$B=$@5(B
          make install $B$G(B BINDIR $B$,B8:_$7$J$1$l$P%(%i!<$K$J$k$h$&$K!#(B

        * $B%=!<%9%U%!%$%k1QJ82=(B (cygterm.cc, README.txt)

v1.05 2003/01/14
        * Ctrl+SPACE(NUL)$B$,Aw?.$G$-$k$h$&$K=$@5!#(B
          $B2~9T%3!<%I(B CR+NUL $B$r=hM}$9$kJ}K!$H$7$FC1=c$K(B NUL$BJ8;z$rL5;k$7$F$$$?(B              $B$?$a!"(BCtrl+SPACE $B2!2<;~$G$b(B NUL $B$,Aw?.$5$l$J$+$C$?!#(B

v1.04 2002/12/08
        * $B%?!<%_%J%k!&%(%_%e%l!<%?$*$h$S%7%'%k$N5/F0$K<:GT$7$?$H$-$K(B
          $B%(%i!<%a%C%;!<%8$rI=<($9$k$h$&$K$7$?!#(B

        * Makefile$B=$@5(B
          make install $B$G(B cygterm.cfg $B$r>e=q$-$7$J$$$h$&$K!#(B
          gcc$B%*%W%7%g%s$K(B -fno-exceptions $B$rDI2C!"(BGCC-3$B$N%j%s%/%(%i!<2sHr!#(B

v1.03 2002/07/24
        * $B%?!<%_%J%k!&%(%_%e%l!<%?$,DLCN$7$F$/$k%?!<%_%J%k%?%$%W$K!"BgJ8;z$,(B
          $B4^$^$l$F$$$l$P!"$=$l$r>.J8;z$KJQ49$9$k$h$&$K=$@5!#(B
          $B%?!<%_%J%k!&%(%_%e%l!<%?$K$h$C$F$O4D6-JQ?t(B TERM $B$NCM$,(B 'ANSI' 'VT100'
          $B$N$h$&$KBgJ8;z$K$j(B terminfo $B$K%^%C%A$7$J$$$?$a!#(B
          (Windows 2000 telnet.exe $BEy(B)

v1.02 2002/07/22
        * $B%?!<%_%J%k!&%(%_%e%l!<%?$,%3%s%=!<%k!&%"%W%j%1!<%7%g%s$N$H$-$K5/F0(B
          $B$G$-$J$+$C$?$N$r=$@5!#(B(Windows 2000 telnet.exe $BEy(B)
          CreateProcess()$B8F=P$7%_%9!#(B

        * $B%?!<%_%J%k!&%(%_%e%l!<%?$+$i(B CR+LF $B$,Aw$i$l$F$-$?$i(B LF $B$OE>Aw$7$J$$(B
          $B$h$&$K$7!"2~9T$,#22sH/@8$9$k$N$r=$@5!#(B(Windows 98 telnet.exe $BEy(B)

        * $B%P!<%8%g%sHV9f$r(B cygterm.exe $B$KKd$a9~$`$h$&$K$7$?!#(B
          $B3NG'J}K!$O(B $ strings cygterm.exe | grep version

v1.01 2002/07/19
        * zsh, tcsh $B$GF0:n$7$J$+$C$?$N$r=$@5!#5<;wC<Kv$N%*!<%W%sJ}K!$,0-$/!"(B
          zsh, tcsh $B$G$O5/F0$H$H$b$KF~NO$,%V%m%C%/$5$l$?!#(B

v1.00 2000/12/17
        * $B=i4|%P!<%8%g%s40@.(B

