diff options
| author | Ginger Bill <bill@gingerbill.org> | 2017-01-20 00:21:40 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2017-01-20 00:21:40 +0000 |
| commit | 6d93aa429faba96415a7be135eb7296e69fb70a9 (patch) | |
| tree | 4b0120f4161185545fbb0b3dca2329802285da5e /code | |
| parent | 3f023509a7184a9146853e23b189c1a079323143 (diff) | |
Fix issue #10
Diffstat (limited to 'code')
| -rw-r--r-- | code/demo.odin | 140 |
1 files changed, 82 insertions, 58 deletions
diff --git a/code/demo.odin b/code/demo.odin index a4081e139..eacc512a2 100644 --- a/code/demo.odin +++ b/code/demo.odin @@ -1,61 +1,85 @@ -#import "atomic.odin"; #import "fmt.odin"; -#import "hash.odin"; -#import "math.odin"; -#import "mem.odin"; -#import "opengl.odin"; #import "os.odin"; -#import win32 "sys/windows.odin"; -#import "sync.odin"; -#import "utf8.odin"; - -T :: struct { x, y: int }; -thread_local t: T; - -main :: proc() { - immutable using t := T{123, 321}; - fmt.println(t); - - - // foo :: proc(x: ^i32) -> (int, int) { - // fmt.println("^int"); - // return 123, int(x^); - // } - // foo :: proc(x: rawptr) { - // fmt.println("rawptr"); - // } - - // THINGI :: 14451; - // THINGF :: 14451.1; - - // a: i32 = 111111; - // b: f32; - // c: rawptr; - // fmt.println(foo(^a)); - // foo(^b); - // foo(c); - // // foo(nil); - // atomic.store(^a, 1); - - // foo :: proc() { - // fmt.printf("Zero args\n"); - // } - // foo :: proc(i: int) { - // fmt.printf("int arg, i=%d\n", i); - // } - // foo :: proc(f: f64) { - // i := int(f); - // fmt.printf("f64 arg, f=%d\n", i); - // } - - // foo(); - // // foo(THINGI); - // foo(THINGF); - // foo(int(THINGI)); - // fmt.println(THINGI); - // fmt.println(THINGF); - - // f: proc(); - // f = foo; - // f(); + +fgetc :: proc(fd : os.Handle) -> ?byte +{ + c : [1]byte; + + if bytes_read, _ := os.read(fd, c[:]); bytes_read == 0 + { + return nil; + } + + return c[0]; +} + +main :: proc () +{ + b := fgetc(os.stdin); + + if bv, ok := b?; ok + { + fmt.println(b); + } } +// #import "atomic.odin"; +// #import "fmt.odin"; +// #import "hash.odin"; +// #import "math.odin"; +// #import "mem.odin"; +// #import "opengl.odin"; +// #import "os.odin"; +// #import win32 "sys/windows.odin"; +// #import "sync.odin"; +// #import "utf8.odin"; + +// T :: struct { x, y: int }; +// thread_local t: T; + +// main :: proc() { +// immutable using t := T{123, 321}; +// fmt.println(t); + + +// // foo :: proc(x: ^i32) -> (int, int) { +// // fmt.println("^int"); +// // return 123, int(x^); +// // } +// // foo :: proc(x: rawptr) { +// // fmt.println("rawptr"); +// // } + +// // THINGI :: 14451; +// // THINGF :: 14451.1; + +// // a: i32 = 111111; +// // b: f32; +// // c: rawptr; +// // fmt.println(foo(^a)); +// // foo(^b); +// // foo(c); +// // // foo(nil); +// // atomic.store(^a, 1); + +// // foo :: proc() { +// // fmt.printf("Zero args\n"); +// // } +// // foo :: proc(i: int) { +// // fmt.printf("int arg, i=%d\n", i); +// // } +// // foo :: proc(f: f64) { +// // i := int(f); +// // fmt.printf("f64 arg, f=%d\n", i); +// // } + +// // foo(); +// // // foo(THINGI); +// // foo(THINGF); +// // foo(int(THINGI)); +// // fmt.println(THINGI); +// // fmt.println(THINGF); + +// // f: proc(); +// // f = foo; +// // f(); +// } |