diff options
Diffstat (limited to 'src/texec')
-rw-r--r-- | src/texec/libtnsl.go | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/texec/libtnsl.go b/src/texec/libtnsl.go index bff8d48..000af7d 100644 --- a/src/texec/libtnsl.go +++ b/src/texec/libtnsl.go @@ -46,6 +46,8 @@ var ( tFile = TType{Pre: []string{}, T: TArtifact{Path: []string{"tnsl", "io"}, Name: "File"}, Post: []string{}} tString = TType{Pre: []string{"{}"}, T: TArtifact{Path: []string{}, Name:"charp"}, Post: []string{}} tInt = TType{Pre: []string{}, T: TArtifact{Path: []string{}, Name:"int"}, Post: []string{}} + tByte = TType{Pre: []string{}, T: TArtifact{Path: []string{}, Name:"uint8"}, Post: []string{}} + tByteArray = TType{Pre: []string{"{}"}, T: TArtifact{Path: []string{}, Name:"uint8"}, Post: []string{}} tFloat = TType{Pre: []string{}, T: TArtifact{Path: []string{}, Name:"float"}, Post: []string{}} tCharp = TType{Pre: []string{}, T: TArtifact{Path: []string{}, Name:"charp"}, Post: []string{}} tNull = TType{Pre: []string{}, T: TArtifact{Path: []string{}, Name: "null"}, Post: []string{}} @@ -143,10 +145,14 @@ func tfile_read(file TVariable) TVariable { // tnsl.io.File.write func tfile_write(file, in TVariable) { - b := []byte{0} - if equateType(file.Type, tFile) && (equateType(in.Type, tCharp) || equateType(in.Type, tInt)) { - b[0] = (in.Data).(byte) - (file.Data).(*os.File).Write(b) + if equateType(file.Type, tFile) { + if equateType(in.Type, tCharp) || equateType(in.Type, tByte) { + b := []byte{0} + b[0] = (in.Data).(byte) + (file.Data).(*os.File).Write(b) + } else if equateType(in.Type, tByteArray) { + (file.Data).(*os.File).Write((in.Data).([]byte)) + } } else { (file.Data).(*os.File).Close() panic(fmt.Sprintf("Failed to write to file, attempted to use unsupported type (%v)\n", in.Type)) |