GeSHi / geshi-1.1

Next generation of Generic Syntax Highlighter for PHP
http://qbnz.com/highlighter/
67 stars 13 forks source link

Fix XML renderer crash #4

Open Sei-Lisa opened 10 years ago

Sei-Lisa commented 10 years ago

The XML renderer crashed because two styler properties it expected to be public are now private. Fixed by adding the corresponding getXXX functions to the styler.

Sei-Lisa commented 10 years ago

Test case:

<?php
include('class.geshi.php');
require_once GESHI_CLASSES_ROOT.'class.geshirenderer.php';
require_once GESHI_RENDERERS_ROOT.'class.geshirendererxml.php';

$geshi = new GeSHi('var a = 1.0;
// comment
function x() {
  var b = Math.PI;
  var c = "string\\n" + \'string\';
  return b;
}
', 'javascript');
$geshi->setRenderer(new GeSHiRendererXML);
echo $geshi->parseCode();

Without patch:

Fatal error: Cannot access private property GeSHiStyler::$language in /<path>/geshi/classes/renderers/class.geshirendererxml.php on line 129

With patch, output is generated but it includes css="Array" everywhere in the output, as expected as per issue #3.