summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2014-05-24 01:29:11 +0200
committerKevin Chabowski <kevin@kch42.de>2014-05-24 01:29:11 +0200
commitfdbe2e9521aa54ec6e0b70c1cb0f532248e531e4 (patch)
tree9648d9b90650adcf250c93e14a194ebad0edb7cb
parent7a8dd0b67c207516ee6c4d597002e26574f5811f (diff)
downloadste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.tar.gz
ste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.tar.bz2
ste-fdbe2e9521aa54ec6e0b70c1cb0f532248e531e4.zip
Fixed ste:get
Didn't work at all before. The varname was not passed correctly. Also added the test case that showed this.
-rw-r--r--Transcompiler.php3
-rw-r--r--tests/test.php1
-rw-r--r--tests/test_getset/.gitignore3
-rw-r--r--tests/test_getset/code.php5
-rw-r--r--tests/test_getset/test.tpl5
-rw-r--r--tests/test_getset/want4
6 files changed, 19 insertions, 2 deletions
diff --git a/Transcompiler.php b/Transcompiler.php
index 26011f3..8b52fa2 100644
--- a/Transcompiler.php
+++ b/Transcompiler.php
@@ -342,8 +342,7 @@ class Transcompiler {
}
list($val, $pre) = self::_transcompile($ast->params["var"], true);
- $code .= $pre;
- return "\$outputstack[\$outputstack_i] .= \$ste->get_var_by_name(" . $val . ");";
+ return "$pre\$outputstack[\$outputstack_i] .= \$ste->get_var_by_name(" . $val . ");";
},
"calc" => function($ast) {
$code = "\$outputstack[] = '';\n\$outputstack_i++;\n";
diff --git a/tests/test.php b/tests/test.php
index c765fb4..79fb69d 100644
--- a/tests/test.php
+++ b/tests/test.php
@@ -19,5 +19,6 @@ class TestStorage implements \ste\StorageAccess {
}
$ste = new \ste\STECore(new TestStorage());
+$ste->mute_runtime_errors = false;
test_func($ste);
echo $ste->exectemplate("test.tpl");
diff --git a/tests/test_getset/.gitignore b/tests/test_getset/.gitignore
new file mode 100644
index 0000000..de2a41b
--- /dev/null
+++ b/tests/test_getset/.gitignore
@@ -0,0 +1,3 @@
+have
+*.ast
+*.transc.php
diff --git a/tests/test_getset/code.php b/tests/test_getset/code.php
new file mode 100644
index 0000000..19a7ecd
--- /dev/null
+++ b/tests/test_getset/code.php
@@ -0,0 +1,5 @@
+<?php
+
+function test_func($ste) {
+ $ste->vars["foo"] = "bar";
+}
diff --git a/tests/test_getset/test.tpl b/tests/test_getset/test.tpl
new file mode 100644
index 0000000..06f865a
--- /dev/null
+++ b/tests/test_getset/test.tpl
@@ -0,0 +1,5 @@
+\$foo = $foo
+\$foo = <ste:get var="foo" />
+<ste:set var="foo">baz</ste:set>
+\$foo = $foo
+\$foo = <ste:get var="foo" />
diff --git a/tests/test_getset/want b/tests/test_getset/want
new file mode 100644
index 0000000..567c753
--- /dev/null
+++ b/tests/test_getset/want
@@ -0,0 +1,4 @@
+$foo = bar
+$foo = bar
+$foo = baz
+$foo = baz