namespace eval tty {
namespace export create
variable _xterm_fd {}
proc create {} {
variable _xterm_fd
destroy
set shcmd {/bin/sh -c 'exec 1>&7; tty; exec /bin/cat 0<&6'}
set fg [option get . foreground Foreground]
if {$fg == ""} then {
set fg black
}
set bg [. cget -background]
if {$bg == ""} then {
set bg [lindex [. configure -background] 3]
}
set xterm [list /bin/sh -c "exec xterm -T 'Gdb Child' -n Gdb -bg '$bg' -fg '$fg' -e $shcmd 6<&0 7>&1"]
set _xterm_fd [open "| $xterm" w+]
set tty [gets $_xterm_fd]
if {$tty != ""} {
gdb_cmd "tty $tty"
}
}
proc destroy {} {
variable _xterm_fd
if {$_xterm_fd != ""} then {
catch {close $_xterm_fd}
}
set _xterm_fd {}
}
}