Menu

[r3]: / cmp / Interface / Interface.tcl  Maximize  Restore  History

Download this file

147 lines (114 with data), 3.1 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
##
## Compiler2 - ::Interface
##
## (C) IPN - Ingenieurbuero fuer Praezisionsnumerik
##
## Dipl.-Ing. Andreas Otto
## Ulmenstrasse 3
## D-34289 Zierenberg
##
## Alle Rechte vorbehalten
##
package require StdLib
package require System
package require Config
PkgProvide Interface
##
## ---------------------------------------------------------------
##
namespace eval ::IShell {
}
proc ::IShell::ErrorN { args } {
::StdLib::ErrorN {ISHELL ERROR} [ concat $args [ list {please check your environment} ] ]
}
proc ::IShell::Exec { Cmd Args } {
set EXEC [ auto_execok $Cmd ]
## is Cmd is available ?
if {$EXEC == {}} {
ErrorN "can't find executable \"$Cmd\""
}
## use the old TMakeLib "Exec" wich moved to StdLib
::StdLib::Push CHANNEL DEFAULT ERROR ERROR
if {[catch { ::StdLib::Exec [ concat $EXEC $Args ] } FH]} {
ErrorN "can't execute \"$Cmd $Args\"" $FH
}
::StdLib::Pop CHANNEL ERROR
}
proc ::IShell::DExec { Dir Cmd Args } {
::Dir::Push $Dir
Exec $Cmd $Args
::Dir::Pop
}
##
## ---------------------------------------------------------------
##
namespace eval ::ITclSh {
variable EXEC [ ::Env::Arch bin $::System::TCLSH ]
#variable EXEC /home/dev1usr/Project/Compiler2/src/OtTcl.tpkg/arch/linuxi386/bin/tclsh8.3
## test the executable
::Is::Executable $EXEC
variable NAME
append NAME C M P _ N _ I
}
proc ::ITclSh::Exec { { Args {} } } {
variable EXEC
variable NAME
::Env::Push $NAME 1
::StdLib::Exec [ concat [list $EXEC] $Args ]
::Env::Pop $NAME
}
proc ::ITclSh::Open { { Args {} } } {
variable EXEC
variable NAME
::Env::Push $NAME 1
set FH [ ::StdLib::Open [ concat [list $EXEC] $Args ] ]
::Env::Pop $NAME
return $FH
}
##
## ---------------------------------------------------------------
##
namespace eval ::ITclTest {
variable EXEC [ ::Env::Arch bin $::System::TCLTEST ]
# variable EXEC [list /home/dev1usr/Project/Compiler3/src/tcl8.3.4/unix/Start -t E]
## test the executable
::Is::Executable $EXEC
variable NAME
append NAME C M P _ N _ I
}
proc ::ITclTest::Exec { Args } {
variable EXEC
variable NAME
::Env::Push $NAME 1
::StdLib::Exec [ concat $EXEC $Args ]
::Env::Pop $NAME
}
##
## ---------------------------------------------------------------
##
## ACHTUNG! test auf "::Is::Executable" nach hinten verlegen da sonst Tcl-Only Distribution
## fehler produziert
##
namespace eval ::IWish {
variable EXEC [ ::Env::Arch bin $::System::WISH ]
set env(TK_LIBRARY) [ ::Env::Arch lib tk8.3 ]
variable NAME
append NAME C M P _ N _ I
}
proc ::IWish::Exec { Args } {
variable EXEC
variable NAME
::Is::Executable $EXEC
::Env::Push $NAME 1
::StdLib::Exec [ concat $EXEC $Args ]
::Env::Pop $NAME
}
proc ::IWish::Open { Args } {
variable EXEC
variable NAME
::Is::Executable $EXEC
::Env::Push $NAME 1
set RET [ ::StdLib::Open [ concat [ list $EXEC ] $Args ] ]
::Env::Pop $NAME
return $RET
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.