しらいです。

 file & directory 管理ツール FDclone 2.07 の patch その 4
です。

Submitted-by: shirai@chandra2
Archive-name: FD-2.07.patch/part04

---- Cut Here and feed the following to sh ----
#!/bin/sh
# This is `FD-2.07.shar.04' (part 4 of FD-2.07.patch).
# Do not concatenate these parts, unpack them in order with `/bin/sh'.
# File `FD-2.07.patch' is being continued...
#
echo=echo
touch -am 1231235999 $$.touch >/dev/null 2>&1
if test ! -f 1231235999 && test -f $$.touch; then
  shar_touch=touch
else
  shar_touch=:
  echo
  $echo 'WARNING: not restoring timestamps.  Consider getting and'
  $echo "installing GNU \`touch', distributed in GNU File Utilities..."
  echo
fi
rm -f 1231235999 $$.touch
#
if test ! -r _sh01053/seq; then
  $echo 'Please unpack part 1 first!'
  exit 1
fi
shar_sequence=`cat _sh01053/seq`
if test "$shar_sequence" != 4; then
  $echo 'Please unpack part' "$shar_sequence" 'next!'
  exit 1
fi
if test ! -f _sh01053/new; then
  $echo 'x -' 'STILL SKIPPING' 'FD-2.07.patch'
else
  $echo 'x -' 'continuing file' 'FD-2.07.patch'
  sed 's/^X//' << 'SHAR_EOF' >> FD-2.07.patch &&
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.obj: func.h
X unixemu.obj: dosdisk.h
X unixemu.obj: unixdisk.h unixemu.h
+pty.obj: fd.h
+pty.obj: machine.h config.h types.h
+pty.obj: printf.h kctype.h
+pty.obj: pathname.h term.h
+pty.obj: termio.h
+termemu.obj: fd.h
+termemu.obj: machine.h config.h
+termemu.obj: types.h
+termemu.obj: printf.h
+termemu.obj: kctype.h
+termemu.obj: pathname.h term.h
+termemu.obj: func.h
+termemu.obj: dosdisk.h kanji.h termemu.h system.h
+termemu.obj: termio.h
+termemu.obj: wait.h
+frontend.obj: fd.h
+frontend.obj: machine.h config.h
+frontend.obj: types.h
+frontend.obj: printf.h
+frontend.obj: kctype.h
+frontend.obj: pathname.h term.h func.h
+frontend.obj: dosdisk.h kanji.h termemu.h system.h
+frontend.obj: termio.h
+frontend.obj: wait.h
+backend.obj: fd.h
+backend.obj: machine.h config.h
+backend.obj: types.h
+backend.obj: printf.h
+backend.obj: kctype.h
+backend.obj: pathname.h term.h
+backend.obj: termio.h
+backend.obj: func.h
+backend.obj: dosdisk.h
+backend.obj: termemu.h
X libc.obj: fd.h
X libc.obj: machine.h config.h types.h
X libc.obj: printf.h
@@ -560,6 +609,7 @@
X libc.obj: pathname.h term.h func.h
X libc.obj: dosdisk.h kanji.h system.h termio.h
X libc.obj: wait.h
+libc.obj: termemu.h
X file.obj: fd.h
X file.obj: machine.h config.h types.h
X file.obj: printf.h
@@ -590,6 +640,7 @@
X builtin.obj: dosdisk.h funcno.h kanji.h system.h
X builtin.obj: termio.h
X builtin.obj: wait.h
+builtin.obj: termemu.h
X shell.obj: fd.h
X shell.obj: machine.h config.h
X shell.obj: types.h
@@ -598,6 +649,7 @@
X shell.obj: func.h
X shell.obj: dosdisk.h kanji.h system.h termio.h
X shell.obj: wait.h
+shell.obj: termemu.h
X kanji.obj: machine.h config.h
X kanji.obj: kctype.h pathname.h
X kanji.obj: term.h
@@ -652,14 +704,14 @@
X command.obj: dosdisk.h funcno.h kanji.h system.h
X command.obj: termio.h
X command.obj: wait.h
-command.obj: functabl.h
+command.obj: termemu.h functabl.h
X browse.obj: fd.h
X browse.obj: machine.h config.h
X browse.obj: types.h
X browse.obj: printf.h kctype.h
X browse.obj: pathname.h term.h
X browse.obj: func.h
-browse.obj: dosdisk.h funcno.h kanji.h
+browse.obj: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.obj: machine.h config.h
X mkfuncno.obj: fd.h
X mkfuncno.obj: machine.h config.h
diff -urNP ../FD-2.06d/makefile.d98 ./makefile.d98
--- ../FD-2.06d/makefile.d98    Tue May 10 00:00:00 2005
+++ ./makefile.d98      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.o printf.o termio.o term.o \
X       pathname.o system.o posixsh.o doscom.o
X OBJ2  = dosdisk.o unixemu.o unixdisk.o \
+       pty.o termemu.o frontend.o backend.o \
X       libc.o file.o apply.o \
X       parse.o builtin.o shell.o
X OBJ3  = kanji.o input.o \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.o: func.h
X unixemu.o: dosdisk.h
X unixemu.o: unixdisk.h unixemu.h
+pty.o: fd.h
+pty.o: machine.h config.h types.h
+pty.o: printf.h kctype.h
+pty.o: pathname.h term.h
+pty.o: termio.h
+termemu.o: fd.h
+termemu.o: machine.h config.h
+termemu.o: types.h
+termemu.o: printf.h
+termemu.o: kctype.h
+termemu.o: pathname.h term.h
+termemu.o: func.h
+termemu.o: dosdisk.h kanji.h termemu.h system.h
+termemu.o: termio.h
+termemu.o: wait.h
+frontend.o: fd.h
+frontend.o: machine.h config.h
+frontend.o: types.h
+frontend.o: printf.h
+frontend.o: kctype.h
+frontend.o: pathname.h term.h func.h
+frontend.o: dosdisk.h kanji.h termemu.h system.h
+frontend.o: termio.h
+frontend.o: wait.h
+backend.o: fd.h
+backend.o: machine.h config.h
+backend.o: types.h
+backend.o: printf.h
+backend.o: kctype.h
+backend.o: pathname.h term.h
+backend.o: termio.h
+backend.o: func.h
+backend.o: dosdisk.h
+backend.o: termemu.h
X libc.o: fd.h
X libc.o: machine.h config.h types.h
X libc.o: printf.h
@@ -560,6 +609,7 @@
X libc.o: pathname.h term.h func.h
X libc.o: dosdisk.h kanji.h system.h termio.h
X libc.o: wait.h
+libc.o: termemu.h
X file.o: fd.h
X file.o: machine.h config.h types.h
X file.o: printf.h
@@ -590,6 +640,7 @@
X builtin.o: dosdisk.h funcno.h kanji.h system.h
X builtin.o: termio.h
X builtin.o: wait.h
+builtin.o: termemu.h
X shell.o: fd.h
X shell.o: machine.h config.h
X shell.o: types.h
@@ -598,6 +649,7 @@
X shell.o: func.h
X shell.o: dosdisk.h kanji.h system.h termio.h
X shell.o: wait.h
+shell.o: termemu.h
X kanji.o: machine.h config.h
X kanji.o: kctype.h pathname.h
X kanji.o: term.h
@@ -652,14 +704,14 @@
X command.o: dosdisk.h funcno.h kanji.h system.h
X command.o: termio.h
X command.o: wait.h
-command.o: functabl.h
+command.o: termemu.h functabl.h
X browse.o: fd.h
X browse.o: machine.h config.h
X browse.o: types.h
X browse.o: printf.h kctype.h
X browse.o: pathname.h term.h
X browse.o: func.h
-browse.o: dosdisk.h funcno.h kanji.h
+browse.o: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.o: machine.h config.h
X mkfuncno.o: fd.h
X mkfuncno.o: machine.h config.h
diff -urNP ../FD-2.06d/makefile.dpc ./makefile.dpc
--- ../FD-2.06d/makefile.dpc    Tue May 10 00:00:00 2005
+++ ./makefile.dpc      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.o printf.o termio.o term.o \
X       pathname.o system.o posixsh.o doscom.o
X OBJ2  = dosdisk.o unixemu.o unixdisk.o \
+       pty.o termemu.o frontend.o backend.o \
X       libc.o file.o apply.o \
X       parse.o builtin.o shell.o
X OBJ3  = kanji.o input.o \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.o: func.h
X unixemu.o: dosdisk.h
X unixemu.o: unixdisk.h unixemu.h
+pty.o: fd.h
+pty.o: machine.h config.h types.h
+pty.o: printf.h kctype.h
+pty.o: pathname.h term.h
+pty.o: termio.h
+termemu.o: fd.h
+termemu.o: machine.h config.h
+termemu.o: types.h
+termemu.o: printf.h
+termemu.o: kctype.h
+termemu.o: pathname.h term.h
+termemu.o: func.h
+termemu.o: dosdisk.h kanji.h termemu.h system.h
+termemu.o: termio.h
+termemu.o: wait.h
+frontend.o: fd.h
+frontend.o: machine.h config.h
+frontend.o: types.h
+frontend.o: printf.h
+frontend.o: kctype.h
+frontend.o: pathname.h term.h func.h
+frontend.o: dosdisk.h kanji.h termemu.h system.h
+frontend.o: termio.h
+frontend.o: wait.h
+backend.o: fd.h
+backend.o: machine.h config.h
+backend.o: types.h
+backend.o: printf.h
+backend.o: kctype.h
+backend.o: pathname.h term.h
+backend.o: termio.h
+backend.o: func.h
+backend.o: dosdisk.h
+backend.o: termemu.h
X libc.o: fd.h
X libc.o: machine.h config.h types.h
X libc.o: printf.h
@@ -560,6 +609,7 @@
X libc.o: pathname.h term.h func.h
X libc.o: dosdisk.h kanji.h system.h termio.h
X libc.o: wait.h
+libc.o: termemu.h
X file.o: fd.h
X file.o: machine.h config.h types.h
X file.o: printf.h
@@ -590,6 +640,7 @@
X builtin.o: dosdisk.h funcno.h kanji.h system.h
X builtin.o: termio.h
X builtin.o: wait.h
+builtin.o: termemu.h
X shell.o: fd.h
X shell.o: machine.h config.h
X shell.o: types.h
@@ -598,6 +649,7 @@
X shell.o: func.h
X shell.o: dosdisk.h kanji.h system.h termio.h
X shell.o: wait.h
+shell.o: termemu.h
X kanji.o: machine.h config.h
X kanji.o: kctype.h pathname.h
X kanji.o: term.h
@@ -652,14 +704,14 @@
X command.o: dosdisk.h funcno.h kanji.h system.h
X command.o: termio.h
X command.o: wait.h
-command.o: functabl.h
+command.o: termemu.h functabl.h
X browse.o: fd.h
X browse.o: machine.h config.h
X browse.o: types.h
X browse.o: printf.h kctype.h
X browse.o: pathname.h term.h
X browse.o: func.h
-browse.o: dosdisk.h funcno.h kanji.h
+browse.o: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.o: machine.h config.h
X mkfuncno.o: fd.h
X mkfuncno.o: machine.h config.h
diff -urNP ../FD-2.06d/makefile.g98 ./makefile.g98
--- ../FD-2.06d/makefile.g98    Tue May 10 00:00:00 2005
+++ ./makefile.g98      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.o printf.o termio.o term.o \
X       pathname.o system.o posixsh.o doscom.o
X OBJ2  = dosdisk.o unixemu.o unixdisk.o \
+       pty.o termemu.o frontend.o backend.o \
X       libc.o file.o apply.o \
X       parse.o builtin.o shell.o
X OBJ3  = kanji.o input.o \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.o: func.h
X unixemu.o: dosdisk.h
X unixemu.o: unixdisk.h unixemu.h
+pty.o: fd.h
+pty.o: machine.h config.h types.h
+pty.o: printf.h kctype.h
+pty.o: pathname.h term.h
+pty.o: termio.h
+termemu.o: fd.h
+termemu.o: machine.h config.h
+termemu.o: types.h
+termemu.o: printf.h
+termemu.o: kctype.h
+termemu.o: pathname.h term.h
+termemu.o: func.h
+termemu.o: dosdisk.h kanji.h termemu.h system.h
+termemu.o: termio.h
+termemu.o: wait.h
+frontend.o: fd.h
+frontend.o: machine.h config.h
+frontend.o: types.h
+frontend.o: printf.h
+frontend.o: kctype.h
+frontend.o: pathname.h term.h func.h
+frontend.o: dosdisk.h kanji.h termemu.h system.h
+frontend.o: termio.h
+frontend.o: wait.h
+backend.o: fd.h
+backend.o: machine.h config.h
+backend.o: types.h
+backend.o: printf.h
+backend.o: kctype.h
+backend.o: pathname.h term.h
+backend.o: termio.h
+backend.o: func.h
+backend.o: dosdisk.h
+backend.o: termemu.h
X libc.o: fd.h
X libc.o: machine.h config.h types.h
X libc.o: printf.h
@@ -560,6 +609,7 @@
X libc.o: pathname.h term.h func.h
X libc.o: dosdisk.h kanji.h system.h termio.h
X libc.o: wait.h
+libc.o: termemu.h
X file.o: fd.h
X file.o: machine.h config.h types.h
X file.o: printf.h
@@ -590,6 +640,7 @@
X builtin.o: dosdisk.h funcno.h kanji.h system.h
X builtin.o: termio.h
X builtin.o: wait.h
+builtin.o: termemu.h
X shell.o: fd.h
X shell.o: machine.h config.h
X shell.o: types.h
@@ -598,6 +649,7 @@
X shell.o: func.h
X shell.o: dosdisk.h kanji.h system.h termio.h
X shell.o: wait.h
+shell.o: termemu.h
X kanji.o: machine.h config.h
X kanji.o: kctype.h pathname.h
X kanji.o: term.h
@@ -652,14 +704,14 @@
X command.o: dosdisk.h funcno.h kanji.h system.h
X command.o: termio.h
X command.o: wait.h
-command.o: functabl.h
+command.o: termemu.h functabl.h
X browse.o: fd.h
X browse.o: machine.h config.h
X browse.o: types.h
X browse.o: printf.h kctype.h
X browse.o: pathname.h term.h
X browse.o: func.h
-browse.o: dosdisk.h funcno.h kanji.h
+browse.o: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.o: machine.h config.h
X mkfuncno.o: fd.h
X mkfuncno.o: machine.h config.h
diff -urNP ../FD-2.06d/makefile.gpc ./makefile.gpc
--- ../FD-2.06d/makefile.gpc    Tue May 10 00:00:00 2005
+++ ./makefile.gpc      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.o printf.o termio.o term.o \
X       pathname.o system.o posixsh.o doscom.o
X OBJ2  = dosdisk.o unixemu.o unixdisk.o \
+       pty.o termemu.o frontend.o backend.o \
X       libc.o file.o apply.o \
X       parse.o builtin.o shell.o
X OBJ3  = kanji.o input.o \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.o: func.h
X unixemu.o: dosdisk.h
X unixemu.o: unixdisk.h unixemu.h
+pty.o: fd.h
+pty.o: machine.h config.h types.h
+pty.o: printf.h kctype.h
+pty.o: pathname.h term.h
+pty.o: termio.h
+termemu.o: fd.h
+termemu.o: machine.h config.h
+termemu.o: types.h
+termemu.o: printf.h
+termemu.o: kctype.h
+termemu.o: pathname.h term.h
+termemu.o: func.h
+termemu.o: dosdisk.h kanji.h termemu.h system.h
+termemu.o: termio.h
+termemu.o: wait.h
+frontend.o: fd.h
+frontend.o: machine.h config.h
+frontend.o: types.h
+frontend.o: printf.h
+frontend.o: kctype.h
+frontend.o: pathname.h term.h func.h
+frontend.o: dosdisk.h kanji.h termemu.h system.h
+frontend.o: termio.h
+frontend.o: wait.h
+backend.o: fd.h
+backend.o: machine.h config.h
+backend.o: types.h
+backend.o: printf.h
+backend.o: kctype.h
+backend.o: pathname.h term.h
+backend.o: termio.h
+backend.o: func.h
+backend.o: dosdisk.h
+backend.o: termemu.h
X libc.o: fd.h
X libc.o: machine.h config.h types.h
X libc.o: printf.h
@@ -560,6 +609,7 @@
X libc.o: pathname.h term.h func.h
X libc.o: dosdisk.h kanji.h system.h termio.h
X libc.o: wait.h
+libc.o: termemu.h
X file.o: fd.h
X file.o: machine.h config.h types.h
X file.o: printf.h
@@ -590,6 +640,7 @@
X builtin.o: dosdisk.h funcno.h kanji.h system.h
X builtin.o: termio.h
X builtin.o: wait.h
+builtin.o: termemu.h
X shell.o: fd.h
X shell.o: machine.h config.h
X shell.o: types.h
@@ -598,6 +649,7 @@
X shell.o: func.h
X shell.o: dosdisk.h kanji.h system.h termio.h
X shell.o: wait.h
+shell.o: termemu.h
X kanji.o: machine.h config.h
X kanji.o: kctype.h pathname.h
X kanji.o: term.h
@@ -652,14 +704,14 @@
X command.o: dosdisk.h funcno.h kanji.h system.h
X command.o: termio.h
X command.o: wait.h
-command.o: functabl.h
+command.o: termemu.h functabl.h
X browse.o: fd.h
X browse.o: machine.h config.h
X browse.o: types.h
X browse.o: printf.h kctype.h
X browse.o: pathname.h term.h
X browse.o: func.h
-browse.o: dosdisk.h funcno.h kanji.h
+browse.o: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.o: machine.h config.h
X mkfuncno.o: fd.h
X mkfuncno.o: machine.h config.h
diff -urNP ../FD-2.06d/makefile.l98 ./makefile.l98
--- ../FD-2.06d/makefile.l98    Tue May 10 00:00:00 2005
+++ ./makefile.l98      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.obj printf.obj termio.obj term.obj \
X       pathname.obj system.obj posixsh.obj doscom.obj
X OBJ2  = dosdisk.obj unixemu.obj unixdisk.obj \
+       pty.obj termemu.obj frontend.obj backend.obj \
X       libc.obj file.obj apply.obj \
X       parse.obj builtin.obj shell.obj
X OBJ3  = kanji.obj input.obj \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.obj: func.h
X unixemu.obj: dosdisk.h
X unixemu.obj: unixdisk.h unixemu.h
+pty.obj: fd.h
+pty.obj: machine.h config.h types.h
+pty.obj: printf.h kctype.h
+pty.obj: pathname.h term.h
+pty.obj: termio.h
+termemu.obj: fd.h
+termemu.obj: machine.h config.h
+termemu.obj: types.h
+termemu.obj: printf.h
+termemu.obj: kctype.h
+termemu.obj: pathname.h term.h
+termemu.obj: func.h
+termemu.obj: dosdisk.h kanji.h termemu.h system.h
+termemu.obj: termio.h
+termemu.obj: wait.h
+frontend.obj: fd.h
+frontend.obj: machine.h config.h
+frontend.obj: types.h
+frontend.obj: printf.h
+frontend.obj: kctype.h
+frontend.obj: pathname.h term.h func.h
+frontend.obj: dosdisk.h kanji.h termemu.h system.h
+frontend.obj: termio.h
+frontend.obj: wait.h
+backend.obj: fd.h
+backend.obj: machine.h config.h
+backend.obj: types.h
+backend.obj: printf.h
+backend.obj: kctype.h
+backend.obj: pathname.h term.h
+backend.obj: termio.h
+backend.obj: func.h
+backend.obj: dosdisk.h
+backend.obj: termemu.h
X libc.obj: fd.h
X libc.obj: machine.h config.h types.h
X libc.obj: printf.h
@@ -560,6 +609,7 @@
X libc.obj: pathname.h term.h func.h
X libc.obj: dosdisk.h kanji.h system.h termio.h
X libc.obj: wait.h
+libc.obj: termemu.h
X file.obj: fd.h
X file.obj: machine.h config.h types.h
X file.obj: printf.h
@@ -590,6 +640,7 @@
X builtin.obj: dosdisk.h funcno.h kanji.h system.h
X builtin.obj: termio.h
X builtin.obj: wait.h
+builtin.obj: termemu.h
X shell.obj: fd.h
X shell.obj: machine.h config.h
X shell.obj: types.h
@@ -598,6 +649,7 @@
X shell.obj: func.h
X shell.obj: dosdisk.h kanji.h system.h termio.h
X shell.obj: wait.h
+shell.obj: termemu.h
X kanji.obj: machine.h config.h
X kanji.obj: kctype.h pathname.h
X kanji.obj: term.h
@@ -652,14 +704,14 @@
X command.obj: dosdisk.h funcno.h kanji.h system.h
X command.obj: termio.h
X command.obj: wait.h
-command.obj: functabl.h
+command.obj: termemu.h functabl.h
X browse.obj: fd.h
X browse.obj: machine.h config.h
X browse.obj: types.h
X browse.obj: printf.h kctype.h
X browse.obj: pathname.h term.h
X browse.obj: func.h
-browse.obj: dosdisk.h funcno.h kanji.h
+browse.obj: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.obj: machine.h config.h
X mkfuncno.obj: fd.h
X mkfuncno.obj: machine.h config.h
diff -urNP ../FD-2.06d/makefile.lpc ./makefile.lpc
--- ../FD-2.06d/makefile.lpc    Tue May 10 00:00:00 2005
+++ ./makefile.lpc      Thu May 26 00:00:00 2005
@@ -4,7 +4,7 @@
X 
X TITLE = FD-
X VERSION       = 2
-VER    = 2.06d
+VER    = 2.07
X PREFIX        = 
X CONFDIR       = 
X BUILD =
@@ -28,6 +28,7 @@
X       system.c posixsh.c doscom.c \
X       dosdisk.c dosemu.c mkunitbl.c \
X       unixdisk.c unixemu.c \
+       pty.c termemu.c frontend.c backend.c \
X       libc.c file.c apply.c \
X       parse.c builtin.c shell.c \
X       kanji.c input.c \
@@ -39,6 +40,7 @@
X       wait.h system.h \
X       dosdisk.h \
X       unixdisk.h unixemu.h \
+       termemu.h \
X       func.h functabl.h
X 
X DOC   = README.eng HISTORY.eng FAQ.eng TECHKNOW.eng \
@@ -90,6 +92,7 @@
X OBJ1  = main.obj printf.obj termio.obj term.obj \
X       pathname.obj system.obj posixsh.obj doscom.obj
X OBJ2  = dosdisk.obj unixemu.obj unixdisk.obj \
+       pty.obj termemu.obj frontend.obj backend.obj \
X       libc.obj file.obj apply.obj \
X       parse.obj builtin.obj shell.obj
X OBJ3  = kanji.obj input.obj \
@@ -217,8 +220,14 @@
X       $(CHMOD) a+rx $(BINDIR)\$(ALIAS)$(EXE)
X       $(INSTALL) $(PROGRAM).$(MANSEC) $(JMANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JMANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JMANDIR)\$(PROGRAM).$(MANSEC) $(JMANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JMANDIR)\$(ALIAS).$(MANSEC)
X       $(INSTALL) $(MANSRC) $(MANDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(MANDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(MANDIR)\$(PROGRAM).$(MANSEC) $(MANDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(MANDIR)\$(ALIAS).$(MANSEC)
X       -if [ -f $(RUNCOM) ]; then \
X               $(INSTALL) $(RUNCOM) $(BLDRC); \
X               $(CHMOD) a+r-x $(BLDRC); \
@@ -231,30 +240,54 @@
X catman: $(MANCAT)
X       $(INSTALL) $(MANCAT) $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X catman-b: $(PROGRAM).eng
X       $(INSTALL) $(PROGRAM).eng $(CATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC) $(CATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(CATDIR)\$(ALIAS).$(MANSEC)
X 
X compman: catman
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X compman-b: catman-b
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(CATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(CATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(CATDIR)\$(PROGRAM).$(MANSEC).Z $(CATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcatman: catman $(PROGRAM).$(MANSEC)c
X       $(INSTALL) $(PROGRAM).$(MANSEC)c $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcatman-b: catman-b $(PROGRAM).doc
X       $(INSTALL) $(PROGRAM).doc $(JCATDIR)\$(PROGRAM).$(MANSEC)
X       $(CHMOD) a+r-x $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC) $(JCATDIR)\$(ALIAS).$(MANSEC)
+       $(CHMOD) a+r-x $(JCATDIR)\$(ALIAS).$(MANSEC)
X 
X jcompman: compman jcatman
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X jcompman-b: compman-b jcatman-b
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC)
X       compress -f $(JCATDIR)\$(PROGRAM).$(MANSEC)
+       -$(RM) $(JCATDIR)\$(ALIAS).$(MANSEC).Z
+       $(LN) $(JCATDIR)\$(PROGRAM).$(MANSEC).Z $(JCATDIR)\$(ALIAS).$(MANSEC).Z
X 
X 
X ############################################################
@@ -426,33 +459,15 @@
X               -e '}' \
X               -e '$$ {' \
X               -e  'a \' \
-               -e  'if [ " $$TERM" = " vt100" ]; then' \
+               -e  'if [ " $$TERM" = " vt100" -a " $$CONSOLE" = " \dev\console" ]; then' \
X               -e  'a \' \
-               -e  '   if [ " $$CONSOLE" = " \dev\console" ]; then' \
+               -e  '   keymap BS       "^?"' \
X               -e  'a \' \
-               -e  '           keymap BS       "^?"' \
+               -e  '   keymap DEL      "\\033[3~"' \
X               -e  'a \' \
-               -e  '           keymap INS      "\\033[2~"' \
+               -e  '   keymap HOME     "\\033[H"' \
X               -e  'a \' \
-               -e  '           keymap DEL      "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[5~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[H"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[F"' \
-               -e  'a \' \
-               -e  '   else' \
-               -e  'a \' \
-               -e  '           keymap INS      "\\033[1~"' \
-               -e  'a \' \
-               -e  '           keymap HOME     "\\033[2~"' \
-               -e  'a \' \
-               -e  '           keymap PPAGE    "\\033[3~"' \
-               -e  'a \' \
-               -e  '           keymap END      "\\033[5~"' \
-               -e  'a \' \
-               -e  '   fi' \
+               -e  '   keymap END      "\\033[F"' \
X               -e  'a \' \
X               -e  'fi' \
X               -e '}' \
@@ -553,6 +568,40 @@
X unixemu.obj: func.h
X unixemu.obj: dosdisk.h
X unixemu.obj: unixdisk.h unixemu.h
+pty.obj: fd.h
+pty.obj: machine.h config.h types.h
+pty.obj: printf.h kctype.h
+pty.obj: pathname.h term.h
+pty.obj: termio.h
+termemu.obj: fd.h
+termemu.obj: machine.h config.h
+termemu.obj: types.h
+termemu.obj: printf.h
+termemu.obj: kctype.h
+termemu.obj: pathname.h term.h
+termemu.obj: func.h
+termemu.obj: dosdisk.h kanji.h termemu.h system.h
+termemu.obj: termio.h
+termemu.obj: wait.h
+frontend.obj: fd.h
+frontend.obj: machine.h config.h
+frontend.obj: types.h
+frontend.obj: printf.h
+frontend.obj: kctype.h
+frontend.obj: pathname.h term.h func.h
+frontend.obj: dosdisk.h kanji.h termemu.h system.h
+frontend.obj: termio.h
+frontend.obj: wait.h
+backend.obj: fd.h
+backend.obj: machine.h config.h
+backend.obj: types.h
+backend.obj: printf.h
+backend.obj: kctype.h
+backend.obj: pathname.h term.h
+backend.obj: termio.h
+backend.obj: func.h
+backend.obj: dosdisk.h
+backend.obj: termemu.h
X libc.obj: fd.h
X libc.obj: machine.h config.h types.h
X libc.obj: printf.h
@@ -560,6 +609,7 @@
X libc.obj: pathname.h term.h func.h
X libc.obj: dosdisk.h kanji.h system.h termio.h
X libc.obj: wait.h
+libc.obj: termemu.h
X file.obj: fd.h
X file.obj: machine.h config.h types.h
X file.obj: printf.h
@@ -590,6 +640,7 @@
X builtin.obj: dosdisk.h funcno.h kanji.h system.h
X builtin.obj: termio.h
X builtin.obj: wait.h
+builtin.obj: termemu.h
X shell.obj: fd.h
X shell.obj: machine.h config.h
X shell.obj: types.h
@@ -598,6 +649,7 @@
X shell.obj: func.h
X shell.obj: dosdisk.h kanji.h system.h termio.h
X shell.obj: wait.h
+shell.obj: termemu.h
X kanji.obj: machine.h config.h
X kanji.obj: kctype.h pathname.h
X kanji.obj: term.h
@@ -652,14 +704,14 @@
X command.obj: dosdisk.h funcno.h kanji.h system.h
X command.obj: termio.h
X command.obj: wait.h
-command.obj: functabl.h
+command.obj: termemu.h functabl.h
X browse.obj: fd.h
X browse.obj: machine.h config.h
X browse.obj: types.h
X browse.obj: printf.h kctype.h
X browse.obj: pathname.h term.h
X browse.obj: func.h
-browse.obj: dosdisk.h funcno.h kanji.h
+browse.obj: dosdisk.h funcno.h kanji.h termemu.h
X kanjicnv.obj: machine.h config.h
X mkfuncno.obj: fd.h
X mkfuncno.obj: machine.h config.h
diff -urNP ../FD-2.06d/pathname.c ./pathname.c
--- ../FD-2.06d/pathname.c      Tue May 10 00:00:00 2005
+++ ./pathname.c        Thu May 26 00:00:00 2005
@@ -2033,13 +2033,14 @@
X       DIR *dirp;
X       struct dirent *dp;
X       char *cp, *new, path[MAXPATHLEN];
-       int d, size;
+       int d, size, dirok;
X 
X       if (dlen >= MAXPATHLEN - 2) return(argc);
X       strncpy2(path, dir, dlen);
X       if (!(dirp = Xopendir(path))) return(argc);
X       cp = strcatdelim(path);
X 
+       dirok = (exe <= 1) ? 1 : 0;
X       while ((dp = Xreaddir(dirp))) {
X               if ((!len && isdotdir(dp -> d_name))
X               || strnpathcmp(file, dp -> d_name, len))
@@ -2048,7 +2049,7 @@
X               if (size + (cp - path) >= MAXPATHLEN) continue;
X               strncpy2(cp, dp -> d_name, size);
X 
-               if ((d = isexecute(path, 1, exe)) < 0) continue;
+               if ((d = isexecute(path, dirok, exe)) < 0) continue;
X 
X               new = malloc2(size + 1 + 1);
X               strncpy(new, dp -> d_name, size);
@@ -2077,7 +2078,7 @@
X       int dlen;
X 
X # ifdef       CWDINPATH
-       argc = completefile(file, len, argc, argvp, ".", 1, 1);
+       argc = completefile(file, len, argc, argvp, ".", 1, 2);
X # endif
X       if (!(next = getconstvar("PATH"))) return(argc);
X       for (cp = next; cp; cp = next) {
@@ -2089,7 +2090,7 @@
X               dlen = (next) ? (next++) - cp : strlen(cp);
X               tmp = _evalpath(cp, cp + dlen, 0);
X               dlen = strlen(tmp);
-               argc = completefile(file, len, argc, argvp, tmp, dlen, 1);
+               argc = completefile(file, len, argc, argvp, tmp, dlen, 2);
X               free(tmp);
X       }
X 
diff -urNP ../FD-2.06d/pathname.h ./pathname.h
--- ../FD-2.06d/pathname.h      Tue May 10 00:00:00 2005
+++ ./pathname.h        Thu May 26 00:00:00 2005
@@ -294,4 +294,4 @@
X extern int pathignorecase;
X #endif
X 
-#endif /* __PATHNAME_H_ */
+#endif /* !__PATHNAME_H_ */
diff -urNP ../FD-2.06d/posixsh.c ./posixsh.c
--- ../FD-2.06d/posixsh.c       Tue May 10 00:00:00 2005
+++ ./posixsh.c Thu May 26 00:00:00 2005
@@ -41,6 +41,10 @@
X extern int Xstat __P_((char *, struct stat *));
X extern int Xlstat __P_((char *, struct stat *));
X extern int Xaccess __P_((char *, int));
+# ifndef       _NOPTY
+#include "termemu.h"
+extern VOID sendparent __P_((int, ...));
+# endif
X #else /* !FD */
X extern int ttyio;
X extern FILE *ttyout;
@@ -482,6 +486,9 @@
X 
X       shellalias[i].ident = ident;
X       shellalias[i].comm = comm;
+# if   defined (FD) && !defined (_NOPTY)
+       sendparent(TE_ADDALIAS, ident, comm);
+# endif
X 
X       return(0);
X }
@@ -509,6 +516,9 @@
X       }
X       if (re) regexp_free(re);
X       if (!n) return(-1);
+# if   defined (FD) && !defined (_NOPTY)
+       sendparent(TE_DELETEALIAS, ident);
+# endif
X 
X       return(0);
X }
diff -urNP ../FD-2.06d/printf.h ./printf.h
--- ../FD-2.06d/printf.h        Tue May 10 00:00:00 2005
+++ ./printf.h  Thu May 26 00:00:00 2005
@@ -77,4 +77,4 @@
X #define       kanjifputs      fputs
X #endif
X 
-#endif /* __PRINTF_H_ */
+#endif /* !__PRINTF_H_ */
diff -urNP ../FD-2.06d/pty.c ./pty.c
--- ../FD-2.06d/pty.c   Thu Jan  1 09:00:00 1970
+++ ./pty.c     Thu May 26 00:00:00 2005
@@ -0,0 +1,299 @@
+/*
+ *     pty.c
+ *
+ *     pseudo terminal access
+ */
+
+#include "fd.h"
+
+#ifndef        _NOPTY
+
+#include <fcntl.h>
+#include <sys/param.h>
+#include <grp.h>
+#include "termio.h"
+
+#ifdef SYSV
+#include <sys/stropts.h>
+#endif
+
+#ifdef GETPGRPVOID
+#define        getpgroup       getpgrp
+#else
+#define        getpgroup()     getpgrp(0)
+#endif
+#ifdef USESETPGID
+#define        setpgroup       setpgid
+#else
+#define        setpgroup       setpgrp
+#endif
+
+#define        Xopen(p,f,m,e)          open(p, f, m)
+#define        Xclose(f,p)             VOID_C close(f)
+#define        Xread(f,b,s,t,p)        sureread(f, b, s)
+#define        Xwrite(f,b,s,t,p)       surewrite(f, b, s)
+#define        Xdup2(o,n,p)            dup2(o, n)
+#define        Xpipe                   pipe
+#define        term_safeclose(f,p)     safeclose(f)
+#define        term_loadtermio         loadtermio
+
+#define        TTY_GROUP       "tty"
+#ifndef        _PATH_DEVNULL
+#define        _PATH_DEVNULL   "/dev/null"
+#endif
+#ifndef        _PATH_PTY
+#define        _PATH_PTY       "/dev/pty"
+#endif
+#ifndef        _PATH_DEVPTMX
+#define        _PATH_DEVPTMX   "/dev/ptmx"
+#endif
+#ifndef        _PATH_DEVPTS
+#define        _PATH_DEVPTS    "/dev/pts"
+#endif
+#ifndef        O_NOCTTY
+#define        O_NOCTTY        0
+#endif
+
+#ifndef        USEDEVPTMX
+static char pty_char1[] = "pqrstuvwxyzPQRST";
+static char pty_char2[] = "0123456789abcdefghijklmnopqrstuv";
+#endif
+
+static p_id_t NEAR Xsetsid __P_((VOID_A));
+static VOID NEAR Xgrantpt __P_((int, char *));
+static VOID NEAR Xunlockpt __P_((int, char *));
+static int NEAR Xptsname __P_((int, char *, char *, ALLOC_T));
+
+
+static p_id_t NEAR Xsetsid(VOID_A)
+{
+#ifdef USESETSID
+       return(setsid());
+#else  /* USESETSID */
+# ifdef        TIOCNOTTY
+       int fd;
+# endif
+       p_id_t pid;
+
+       pid = getpid();
+       if (pid == getpgroup()) {
+               errno = EPERM;
+               return((p_id_t)-1);
+       }
+       if (setpgroup(0, pid) < 0) return((p_id_t)-1);
+
+# ifdef        TIOCNOTTY
+       if ((fd = Xopen(_PATH_TTY, O_RDWR, 0, XF_IGNOREERR)) >= 0) {
+               VOID_C Xioctl(fd, TIOCNOTTY, NULL);
+               term_safeclose(fd, _PATH_TTY);
+       }
+# else
+       if ((fd = Xopen(_PATH_DEVNULL, O_RDWR, 0, XF_IGNOREERR)) >= 0) {
SHAR_EOF
  : || $echo 'restore of' 'FD-2.07.patch' 'failed'
fi
$echo 'End of' 'FD-2.07.patch' 'part' '4'
$echo 'File' 'FD-2.07.patch' 'is continued in part' '5'
echo 5 > _sh01053/seq
exit 0
-- 
                                               しらい たかし