プラグインでエラーの発生時にUSAGE を返すものがありますが、& とエスケープせずに&をそのまま使っている物があります。
cvs:plugin/color.inc.php (1.22)
define('PLUGIN_COLOR_USAGE', '&color(foreground[,background]){text};');
cvs:plugin/edit.inc.php (1.46)
function plugin_edit_inline() { static $usage = '&edit(pagename#anchor[[,noicon],nolabel])[{label}];';
cvs:plugin/ruby.inc.php (1.6)
define('PLUGIN_RUBY_USAGE', '&ruby(pronunciation){words};');
cvs:plugin/size.inc.php (1.10)
define('PLUGIN_SIZE_USAGE', '&size(px){Text you want to change};');
追伸: edit.inc.php は、ついでにBugTrack2/260の件もお願いします。
define('PLUGIN_SIZE_REGEX', '/^(?:([0-9]+(?:px)?)|([0-9]+)%)$/i');となっていて、キャプチャする内容に'px' を含めているので、
define('PLUGIN_SIZE_REGEX', '/^(?:' . '([0-9]+(?:\.[0-9]+)?)(?: *px)?' . '|' . // Pixel (default) '([0-9.]+(?:\.[0-9]+)?) *%' . // Percentage ')$/i');パーセントの部分が「0~9 か.(ピリオド)が1つ以上続いた後に・・・」となっているので、&size(120.45.87..01%){word}; とピリオドをいくつ書いてもOK になっています。
plugin\counter.inc.php(31): return '&counter([total|today|yesterday]);'; plugin\dump.inc.php(85): $msg = 'dump & restore'; plugin\new.inc.php(35): if (func_num_args() > 2) return '&new([nodate]){date};'; plugin\new.inc.php(39): if ($timestamp === -1) return '&new([nodate]){date}: Invalid date string;'; plugin\new.inc.php(63): return '&new(pagename/[,nolink]): No such pages;'; plugin\new.inc.php(70): return '&new(pagename[,nolink]): No such page;'; plugin\newpage.inc.php(54): '?cmd=read&page=' . $r_page . '&refer=' . $r_refer); plugin\online.inc.php(58): $error = '&online: ' . $error . ';';
plugin\spam.inc.php(31): '<a href="'. $script . '&mode=pages' . '">Pages</a>' . "\n" plugin\spam.inc.php(45): $script = get_script_uri() . '?plugin=spam&mode=pages';