diff --git a/vala/clone_gee_iterator/clone_gee_iterator.vala b/vala/clone_gee_iterator/clone_gee_iterator.vala new file mode 100644 index 0000000..09533da --- /dev/null +++ b/vala/clone_gee_iterator/clone_gee_iterator.vala @@ -0,0 +1,18 @@ +void main () { + var l = new Gee.ArrayList (); + + for (var i = 0; i < 8; ++i) + l.add (i.to_string ()); + + var it = l.bidir_list_iterator (), + it2 = l.bidir_list_iterator (); + it2.first (); + for (var has_next = it.first (); has_next; has_next = it.next ()) { + it2 = it;//.set (it.index ()); + var it3 = it2.copy (); + stdout.printf ("%s", it2.get ()); + stdout.printf (" "); + stdout.printf ("%lu %lu", (ulong)it, (ulong)it2); + stdout.printf ("\n"); + } +} diff --git a/vala/construct/construct.vala b/vala/construct/construct.vala new file mode 100644 index 0000000..1b6c6df --- /dev/null +++ b/vala/construct/construct.vala @@ -0,0 +1,26 @@ +class Base : Object { + public int field; + + public Base () { + field = 5; + } +} + +class Child : Base { +} + +void main () { + var b = new Base (); + var c = new Child (); + stdout.printf ("%d\n", c.field); + + //Error *err; + //stdout.printf ("%s\n", err->message); + + string s = "Hello, world!"; + stdout.printf ("%s\n", s[7:s.length]); + for (var i = 0; s[i] != '\0' ; ++i) { + stdout.putc (s[i]); + } + stdout.putc ('\n'); +} diff --git a/vala/strdup/strdup.vala b/vala/strdup/strdup.vala new file mode 100644 index 0000000..df2b93a --- /dev/null +++ b/vala/strdup/strdup.vala @@ -0,0 +1,40 @@ +class Foo { + public unowned string s = ""; +} + +public int main () { + var s = "Hello, world!"; + + var foo = new Foo (); + + foo.s = s; + + //string tmps = s[0:5]; + unowned string tmps = (string)((char*)s + 3); + + ((char *)s)[3] = 'A'; + + stdout.printf ("%s\n", s); + stdout.printf ("%s\n", foo.s); + + stdout.printf ("%s\n", tmps); + + stdout.printf ("%s\n", tmps[0:1]); + stdout.printf ("%s\n", tmps.ndup (1)); + stdout.printf ("%s\n", tmps.substring (2, 3)); + stdout.printf ("%s\n", tmps[2:3]); + stdout.printf ("%s\n", tmps.chr (100, 'o')); + //stdout.printf ("%s\n", Posix.strchr (tmps, 'o')); + + print ("----\n"); + stdout.printf ("%s\n", tmps); + stdout.printf ("%s\n", tmps.offset (3)[0:-1]); + + for (var i = 0, max_i = tmps.length; i < max_i; ++i) + stdout.printf ("%c", tmps[i]); + stdout.printf ("\n"); + + stdout.printf ("%p = '%s'[%u]\n", tmps.offset (100), tmps.offset (100), tmps.offset (100).length); + + return 0; +} diff --git a/vala/switch_break/switch_break.vala b/vala/switch_break/switch_break.vala new file mode 100644 index 0000000..b9fa6f9 --- /dev/null +++ b/vala/switch_break/switch_break.vala @@ -0,0 +1,19 @@ +void main () { + var i = 5; + switch (i) { + case 5: + if (i == 5) { + stdout.printf ("first case\n"); + break; + } + stdout.printf ("after break\n"); + break; + + case 6: + stdout.printf ("second case\n"); + break; + + default: + break; + } +} diff --git a/vala/uninitialized/uninitialized.vala b/vala/uninitialized/uninitialized.vala new file mode 100644 index 0000000..f4ea9f1 --- /dev/null +++ b/vala/uninitialized/uninitialized.vala @@ -0,0 +1,65 @@ +class Foo { + public void f () { + stdout.printf ("Hello, world!\n"); + } +} + +Foo? newf () { + return new Foo (); +} + +void fff (string [] s) { + stdout.printf ("%s\n", s[0]); +} + +class AA11 { + public enum Enum1 { + E1 = 1, + E2 = 2 + } + + public uint i; + public string s { get; set; default = "AA11"; } + public Enum1 enum1 { get; set; default = Enum1.E2; } +} + +class BB11 { + public AA11 aa11 = new AA11 (); + public List list = new List (); + public Node node = new Node (); + public Gee.ArrayList alist { get; set; default = new Gee.ArrayList (); } +} + +void main () { + var foo = newf (); + + foo.f(); + + string [] s = {"Unowned string"}; + unowned string [] us = s; + fff (us); + + string str = "Hello, world!"; + stdout.printf ("%s\n", str.substring(3)); + + var a = new AA11 (); + stdout.printf ("-----------\n"); + stdout.printf ("%s, %u, %u\n", a.s, a.i, a.enum1); + + var b = new BB11 (); + stdout.printf ("-----------\n"); + stdout.printf ("%s, %u, %u\n", b.aa11.s, b.aa11.i, b.aa11.enum1); + b.list.append (3); + b.list.append (3); + b.list.append (3); + b.list.append (3); + b.node.insert (0, new Node (3)); + b.node.insert (0, new Node (3)); + stdout.printf ("%u\n", b.alist.size); + stdout.printf ("%u, %u\n", b.list.length(), b.node.n_nodes(TraverseFlags.ALL)); + + List l = new List (); + l.append (3); + + var tmp = ""; +}