diff options
author | Christian Schneider | 2018-05-03 17:48:27 +0200 |
---|---|---|
committer | Christian Schneider | 2018-05-03 17:48:27 +0200 |
commit | 49cb7482b57046d69c15eea7737716229ba08ef8 (patch) | |
tree | 609e0b701b793719d6f4a9687b89ed53a8bee182 | |
parent | e649b1a12fe4b43063753e482a47fcda0cbeb9d7 (diff) | |
download | itools-49cb7482b57046d69c15eea7737716229ba08ef8.tar.gz itools-49cb7482b57046d69c15eea7737716229ba08ef8.tar.bz2 itools-49cb7482b57046d69c15eea7737716229ba08ef8.zip |
Generate it::error when trying to redefine function for a tag
-rw-r--r-- | it_html.class | 3 | ||||
-rwxr-xr-x | tests/it_html.t | 10 |
2 files changed, 8 insertions, 5 deletions
diff --git a/it_html.class b/it_html.class index e410816..5828438 100644 --- a/it_html.class +++ b/it_html.class @@ -88,6 +88,7 @@ function __construct($p = array()) 'title' => '', # HTML title (default: no title added) 'use_it_state' => false, # If true, generate code needed by state.js (aka 'history iframe') 'srclines' => $GLOBALS['debug_srclines'], # append stackdump to each tag + 'error_on_redefine' => true, # Generate it::error when trying to redefine function for a tag ); $this->p['notexported'] = trim($p['notexported'] . ',configure,sanitize,comment', ','); @@ -111,6 +112,8 @@ function __construct($p = array()) { if (!function_exists($func) && $func) $code[$func] = "function $func() { \$args = func_get_args(); return \$GLOBALS['{$this->p['name']}']->_tag('$func', \$args); }"; + else if ($this->p['error_on_redefine']) + it::error("Trying to redefine existing function '$func' in it_html"); } # Create global functions for it_html methods diff --git a/tests/it_html.t b/tests/it_html.t index 6d55319..d18afdc 100755 --- a/tests/it_html.t +++ b/tests/it_html.t @@ -7,7 +7,7 @@ it::getopt(""); #handle possible --debug parameter # Traditional html5 generation ini_set('default_charset', "utf-8"); -new it_html(array('htmltype' => "html5", 'prettyprint' => false)); +new it_html(array('htmltype' => "html5", 'prettyprint' => false, 'error_on_redefine' => false)); is( a(array('href' => "&foo", 'true' => true, 'false' => false, 'null' => null, 'empty' => ""), "bar"), @@ -110,13 +110,13 @@ is( foreach (array('html5' => "<br flag>", 'html' => "<br flag>", 'xhtml' => "<br flag=\"flag\" />", 'xhtml-mobile' => "<br flag=\"flag\" />") as $type => $value) { unset($GLOBALS['it_html']); - new it_html(array('htmltype' => $type)); + new it_html(array('htmltype' => $type, 'error_on_redefine' => false)); is (trim(br(array('flag' => true))), $value, "Check empty tag and attribute for $type"); } # XHTML generation unset($GLOBALS['it_html']); -new it_html(array('htmltype' => "xhtml", 'tags' => "script")); +new it_html(array('htmltype' => "xhtml", 'tags' => "script", 'error_on_redefine' => false)); is( script(), @@ -139,7 +139,7 @@ is( # XML generation unset($GLOBALS['it_html']); -new it_html(array('htmltype' => "xml", 'name' => 'it_html', 'tags' => "xmltest")); +new it_html(array('htmltype' => "xml", 'name' => 'it_html', 'tags' => "xmltest", 'error_on_redefine' => false)); is( xmltest(), @@ -194,7 +194,7 @@ function overriddentag($args) } unset($GLOBALS['it_html']); -new myhtml(array('htmltype' => "html")); +new myhtml(array('htmltype' => "html", 'error_on_redefine' => false)); is( myimg(['src' => "foo.gif", 'alt' => "foo"]), |