From: <var...@us...> - 2009-08-07 08:21:12
|
Revision: 7065 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7065&view=rev Author: vargenau Date: 2009-08-07 08:21:01 +0000 (Fri, 07 Aug 2009) Log Message: ----------- Make Help/LinkIcons work for Gforge Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-08-07 05:02:25 UTC (rev 7064) +++ trunk/lib/InlineParser.php 2009-08-07 08:21:01 UTC (rev 7065) @@ -1064,8 +1064,12 @@ // It's not a Mediawiki template, it's a Wikicreole image if (is_image($imagename)) { if ($imagename[0] == '/') { - // We should not hardcode "/phpwiki" - return LinkImage(SERVER_URL . "/phpwiki" . $imagename, $alt); + if (defined('GFORGE') and GFORGE) { + return LinkImage("/wiki" . $imagename, $alt); + } else { + // We should not hardcode "/phpwiki" + return LinkImage(SERVER_URL . "/phpwiki" . $imagename, $alt); + } } else { return LinkImage(getUploadDataPath() . $imagename, $alt); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ru...@us...> - 2009-08-24 12:22:21
|
Revision: 7082 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7082&view=rev Author: rurban Date: 2009-08-24 12:22:05 +0000 (Mon, 24 Aug 2009) Log Message: ----------- remove hardcoded image paths add Markup_mediawikitable_plugin and Markup_wikicreoletable_plugin Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-08-24 12:19:07 UTC (rev 7081) +++ trunk/lib/InlineParser.php 2009-08-24 12:22:05 UTC (rev 7082) @@ -1,7 +1,7 @@ <?php rcs_id('$Id$'); /* Copyright (C) 2002 Geoffrey T. Dairiki <da...@da...> - * Copyright (C) 2004-2008 Reini Urban + * Copyright (C) 2004-2009 Reini Urban * Copyright (C) 2008-2009 Marc-Etienne Vargenau, Alcatel-Lucent * * This file is part of PhpWiki. @@ -202,7 +202,7 @@ var_dump($regexps); if (_INLINE_OPTIMIZATION) var_dump($matched); - var_dump($matched_inc); + var_dump($matched_ind); } $_already_dumped = 1; PrintXML(HTML::dl(HTML::dt("input"), @@ -816,8 +816,7 @@ { //rurban: abbr|acronym need an optional title tag. //sf.net bug #728595 - // allowed attributes: title and lang - var $_start_regexp = "<(?: abbr|acronym )(?: [^>]*)?>"; + var $_start_regexp = "<(?: abbr|acronym )(?: [^>]*)?>"; function getEndRegexp ($match) { if (substr($match,1,4) == 'abbr') @@ -1045,11 +1044,7 @@ ); foreach ($predefinedicons as $ascii => $icon) { if (trim($page) == $ascii) { - if (defined('GFORGE') and GFORGE) { - return LinkImage("/wiki/themes/default/images/$icon", $page); - } else { - return LinkImage(SERVER_URL . "/phpwiki/themes/default/images/$icon", $page); - } + return LinkImage(DATA_PATH . "/themes/default/images/$icon", $page); } } @@ -1064,12 +1059,7 @@ // It's not a Mediawiki template, it's a Wikicreole image if (is_image($imagename)) { if ($imagename[0] == '/') { - if (defined('GFORGE') and GFORGE) { - return LinkImage("/wiki" . $imagename, $alt); - } else { - // We should not hardcode "/phpwiki" - return LinkImage(SERVER_URL . "/phpwiki" . $imagename, $alt); - } + return LinkImage(DATA_PATH . '/' . $imagename, $alt); } else { return LinkImage(getUploadDataPath() . $imagename, $alt); } @@ -1099,6 +1089,33 @@ } } +/** ENABLE_MARKUP_MEDIAWIKI_TABLE + * Table syntax similar to Mediawiki + * {| + * => <?plugin MediawikiTable + * |} + * => ?> + */ +class Markup_mediawikitable_plugin extends SimpleMarkup +{ + var $_match_regexp = '\{\|.*?\|\}'; + + function markup ($match) { + $s = '<'.'?plugin MediawikiTable ' . $match . '?'.'>'; + return new Cached_PluginInvocation($s); + } +} + +class Markup_wikicreoletable_plugin extends SimpleMarkup +{ + var $_match_regexp = '^\|=.*?\?>'; + + function markup ($match) { + $s = '<'.'?plugin WikicreoleTable ' . $match . '?'.'>'; + return new Cached_PluginInvocation($s); + } +} + // "..." => "…" browser specific display (not cached?) // Support some HTML::Entities: (C) for copy, --- for mdash, -- for ndash // TODO: "--" => "&emdash;" browser specific display (not cached?) @@ -1194,10 +1211,13 @@ $this->_addMarkup(new Markup_html_divspan); if (ENABLE_MARKUP_COLOR and !$non_default) $this->_addMarkup(new Markup_color); + $this->_addMarkup(new Markup_wikicreoletable_plugin); // Markup_wikicreole_preformatted must be before Markup_template_plugin $this->_addMarkup(new Markup_wikicreole_preformatted); if (ENABLE_MARKUP_TEMPLATE and !$non_default) $this->_addMarkup(new Markup_template_plugin); + if (ENABLE_MARKUP_MEDIAWIKI_TABLE) + $this->_addMarkup(new Markup_mediawikitable_plugin); // This does not work yet if (0 and PLUGIN_MARKUP_MAP and !$non_default) $this->_addMarkup(new Markup_xml_plugin); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-08-25 16:40:01
|
Revision: 7089 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7089&view=rev Author: vargenau Date: 2009-08-25 16:39:53 +0000 (Tue, 25 Aug 2009) Log Message: ----------- Partial revert from 7082: Wikicreole and Mediawiki tables belong to Block parser, not Inline parser Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-08-25 16:30:38 UTC (rev 7088) +++ trunk/lib/InlineParser.php 2009-08-25 16:39:53 UTC (rev 7089) @@ -1089,33 +1089,6 @@ } } -/** ENABLE_MARKUP_MEDIAWIKI_TABLE - * Table syntax similar to Mediawiki - * {| - * => <?plugin MediawikiTable - * |} - * => ?> - */ -class Markup_mediawikitable_plugin extends SimpleMarkup -{ - var $_match_regexp = '\{\|.*?\|\}'; - - function markup ($match) { - $s = '<'.'?plugin MediawikiTable ' . $match . '?'.'>'; - return new Cached_PluginInvocation($s); - } -} - -class Markup_wikicreoletable_plugin extends SimpleMarkup -{ - var $_match_regexp = '^\|=.*?\?>'; - - function markup ($match) { - $s = '<'.'?plugin WikicreoleTable ' . $match . '?'.'>'; - return new Cached_PluginInvocation($s); - } -} - // "..." => "…" browser specific display (not cached?) // Support some HTML::Entities: (C) for copy, --- for mdash, -- for ndash // TODO: "--" => "&emdash;" browser specific display (not cached?) @@ -1211,13 +1184,10 @@ $this->_addMarkup(new Markup_html_divspan); if (ENABLE_MARKUP_COLOR and !$non_default) $this->_addMarkup(new Markup_color); - $this->_addMarkup(new Markup_wikicreoletable_plugin); // Markup_wikicreole_preformatted must be before Markup_template_plugin $this->_addMarkup(new Markup_wikicreole_preformatted); if (ENABLE_MARKUP_TEMPLATE and !$non_default) $this->_addMarkup(new Markup_template_plugin); - if (ENABLE_MARKUP_MEDIAWIKI_TABLE) - $this->_addMarkup(new Markup_mediawikitable_plugin); // This does not work yet if (0 and PLUGIN_MARKUP_MAP and !$non_default) $this->_addMarkup(new Markup_xml_plugin); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-10-17 15:19:47
|
Revision: 7216 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7216&view=rev Author: vargenau Date: 2009-10-17 15:19:39 +0000 (Sat, 17 Oct 2009) Log Message: ----------- ENABLE_MARKUP_TEMPLATE removed, it had to be true so that Wikicreole syntax for images work Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-10-17 15:14:00 UTC (rev 7215) +++ trunk/lib/InlineParser.php 2009-10-17 15:19:39 UTC (rev 7216) @@ -1197,8 +1197,7 @@ $this->_addMarkup(new Markup_color); // Markup_wikicreole_preformatted must be before Markup_template_plugin $this->_addMarkup(new Markup_wikicreole_preformatted); - if (ENABLE_MARKUP_TEMPLATE and !$non_default) - $this->_addMarkup(new Markup_template_plugin); + $this->_addMarkup(new Markup_template_plugin); // This does not work yet if (0 and PLUGIN_MARKUP_MAP and !$non_default) $this->_addMarkup(new Markup_xml_plugin); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-10-29 10:44:14
|
Revision: 7245 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7245&view=rev Author: vargenau Date: 2009-10-29 10:44:06 +0000 (Thu, 29 Oct 2009) Log Message: ----------- Use empty alt for [[Upload:image.jpg]] Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-10-29 09:33:54 UTC (rev 7244) +++ trunk/lib/InlineParser.php 2009-10-29 10:44:06 UTC (rev 7245) @@ -311,7 +311,7 @@ /** * [image.jpg size=50% border=5], [image.jpg size=50x30] * Support for the following attributes: see stdlib.php:LinkImage() - * size=<precent>%, size=<width>x<height> + * size=<percent>%, size=<width>x<height> * border=n, align=\w+, hspace=n, vspace=n * width=n, height=n * title, lang, id, alt @@ -471,7 +471,7 @@ if (empty($label) and isImageLink($link)) { // if without label => inlined image [File:xx.gif] $imgurl = $intermap->link($link); - return LinkImage($imgurl->getAttr('href'), $link); + return LinkImage($imgurl->getAttr('href')); } return new Cached_InterwikiLink($link, $label); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2009-11-02 09:52:03
|
Revision: 7255 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7255&view=rev Author: vargenau Date: 2009-11-02 09:51:56 +0000 (Mon, 02 Nov 2009) Log Message: ----------- Fix isImageLink so that incorrect attributes are recognized Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2009-11-01 19:40:59 UTC (rev 7254) +++ trunk/lib/InlineParser.php 2009-11-02 09:51:56 UTC (rev 7255) @@ -319,8 +319,7 @@ function isImageLink($link) { if (!$link) return false; assert(defined('INLINE_IMAGES')); - return preg_match("/\\.(" . INLINE_IMAGES . ")$/i", $link) - or preg_match("/\\.(" . INLINE_IMAGES . ")\s+(size|border|align|hspace|vspace|type|data|width|height|title|lang|id|alt)=/i", $link); + return preg_match("/\\.(" . INLINE_IMAGES . ")/i", $link); } function LinkBracketLink($bracketlink) { @@ -458,7 +457,7 @@ * [File:my_image.gif] inlines the image, * File:my_image.gif shows a plain inter-wiki link, * [what a pic|File:my_image.gif] shows a named inter-wiki link to the gif - * [File:my_image.gif|what a pic] shows a inlimed image linked to the page "what a pic" + * [File:my_image.gif|what a pic] shows an inlined image linked to the page "what a pic" * * Note that for simplicity we will accept embedded object tags (non-images) * here also, and seperate them later in LinkImage() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ru...@us...> - 2010-06-07 10:55:58
|
Revision: 7472 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7472&view=rev Author: rurban Date: 2010-06-07 10:55:52 +0000 (Mon, 07 Jun 2010) Log Message: ----------- enable Markup_xml_plugin allow undefining ENABLE_MARKUP_TEMPLATE add link to LinkImage allow image attributes (again) Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-06-07 10:37:33 UTC (rev 7471) +++ trunk/lib/InlineParser.php 2010-06-07 10:55:52 UTC (rev 7472) @@ -34,7 +34,6 @@ */ define('ESCAPE_CHAR', '~'); -require_once(dirname(__FILE__).'/HtmlElement.php'); require_once('lib/CachedMarkup.php'); require_once(dirname(__FILE__).'/stdlib.php'); @@ -319,7 +318,8 @@ function isImageLink($link) { if (!$link) return false; assert(defined('INLINE_IMAGES')); - return preg_match("/\\.(" . INLINE_IMAGES . ")/i", $link); + return preg_match("/\\.(" . INLINE_IMAGES . ")$/i", $link) + or preg_match("/\\.(" . INLINE_IMAGES . ")\s+(size|border|align|hspace|vspace|type|data|width|height|title|lang|id|alt)=/i", $link); } function LinkBracketLink($bracketlink) { @@ -470,7 +470,7 @@ if (empty($label) and isImageLink($link)) { // if without label => inlined image [File:xx.gif] $imgurl = $intermap->link($link); - return LinkImage($imgurl->getAttr('href')); + return LinkImage($imgurl->getAttr('href'), $link); } return new Cached_InterwikiLink($link, $label); } else { @@ -936,6 +936,43 @@ } } +// Special version for plugins in xml syntax, mediawiki-style +// <name arg=value>body</name> or <name /> => < ? plugin pluginname arg=value body ? > +// PLUGIN_MARKUP_MAP = "html:RawHtml dot:GraphViz toc:CreateToc amath:AsciiMath richtable:RichTable include:IncludePage tex:TexToPng" +class Markup_xml_plugin extends BalancedMarkup +{ + //var $_start_regexp = "<(?: ".join('|',PLUGIN_MARKUP_MAP)." )(?: \s[^>]*)>"; + + function getStartRegexp () { + global $PLUGIN_MARKUP_MAP; + static $_start_regexp; + if ($_start_regexp) return $_start_regexp; + if (empty($PLUGIN_MARKUP_MAP)) + return ''; + //"<(?: html|dot|toc|amath|richtable|include|tex )(?: \s[^>]*)>" + $_start_regexp = "<(?: ".join('|',array_keys($PLUGIN_MARKUP_MAP))." )(?: \s[^>]* | / )>"; + return $_start_regexp; + } + function getEndRegexp ($match) { + return "<\\/" . $match . '>'; + } + function markup ($match, $body) { + global $PLUGIN_MARKUP_MAP; + $name = substr($match,2,-2); + $vars = ''; + if (preg_match('/^(\S+)\|(.*)$/', $name, $_m)) { + $name = $_m[1]; + $vars = $_m[2]; //str_replace(' ', '&', $_m[2]); + } + if (!isset($PLUGIN_MARKUP_MAP[$name])) { + trigger_error("No plugin for $name $vars defined.", E_USER_WARNING); + return ""; + } + $plugin = $PLUGIN_MARKUP_MAP[$name]; + return new Cached_PluginInvocation("<"."?plugin $plugin $vars $body ?".">"); + } +} + /** * Mediawiki <nowiki> * <nowiki>...</nowiki> @@ -965,7 +1002,7 @@ } } -/** +/** ENABLE_MARKUP_TEMPLATE * Template syntax similar to Mediawiki * {{template}} * => < ? plugin Template page=template ? > @@ -1157,7 +1194,11 @@ $this->_addMarkup(new Markup_color); // Markup_wikicreole_preformatted must be before Markup_template_plugin $this->_addMarkup(new Markup_wikicreole_preformatted); - $this->_addMarkup(new Markup_template_plugin); + if (ENABLE_MARKUP_TEMPLATE and !$non_default) + $this->_addMarkup(new Markup_template_plugin); + // This does not work yet + if (PLUGIN_MARKUP_MAP and !$non_default) + $this->_addMarkup(new Markup_xml_plugin); } function _addMarkup ($markup) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ru...@us...> - 2010-06-07 13:32:16
|
Revision: 7483 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7483&view=rev Author: rurban Date: 2010-06-07 13:32:07 +0000 (Mon, 07 Jun 2010) Log Message: ----------- fix nasty / escape in regexp Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-06-07 13:31:38 UTC (rev 7482) +++ trunk/lib/InlineParser.php 2010-06-07 13:32:07 UTC (rev 7483) @@ -947,10 +947,9 @@ global $PLUGIN_MARKUP_MAP; static $_start_regexp; if ($_start_regexp) return $_start_regexp; - if (empty($PLUGIN_MARKUP_MAP)) - return ''; - //"<(?: html|dot|toc|amath|richtable|include|tex )(?: \s[^>]*)>" - $_start_regexp = "<(?: ".join('|',array_keys($PLUGIN_MARKUP_MAP))." )(?: \s[^>]* | / )>"; + if (empty($PLUGIN_MARKUP_MAP)) return ''; + //"<(?: html|search|extsearch|dot|toc|math|richtable|include|tex )(?: \s[^>]*)>" + $_start_regexp = "<(?: ".join('|',array_keys($PLUGIN_MARKUP_MAP))." )(?: \s[^>]*|\\/ )>"; return $_start_regexp; } function getEndRegexp ($match) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2010-10-20 16:36:28
|
Revision: 7717 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7717&view=rev Author: vargenau Date: 2010-10-20 16:36:22 +0000 (Wed, 20 Oct 2010) Log Message: ----------- Allow {{ image.png}} (space before image name) Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-10-20 16:19:40 UTC (rev 7716) +++ trunk/lib/InlineParser.php 2010-10-20 16:36:22 UTC (rev 7717) @@ -2,7 +2,7 @@ // rcs_id('$Id$'); /* Copyright (C) 2002 Geoffrey T. Dairiki <da...@da...> * Copyright (C) 2004-2010 Reini Urban - * Copyright (C) 2008-2009 Marc-Etienne Vargenau, Alcatel-Lucent + * Copyright (C) 2008-2010 Marc-Etienne Vargenau, Alcatel-Lucent * * This file is part of PhpWiki. * @@ -1021,6 +1021,7 @@ function markup ($match) { $page = substr($match,2,-2); + $page = trim($page); // Check for predefined icons. $predefinedicons = array(":)" => "ic_smile.png", @@ -1046,7 +1047,7 @@ "(*y)" => "ic_yellowstar.png", ); foreach ($predefinedicons as $ascii => $icon) { - if (trim($page) == $ascii) { + if ($page == $ascii) { return LinkImage(DATA_PATH . "/themes/default/images/$icon", $page); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2010-11-04 18:20:48
|
Revision: 7723 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7723&view=rev Author: vargenau Date: 2010-11-04 18:20:41 +0000 (Thu, 04 Nov 2010) Log Message: ----------- Allow <br /> as well as <br>; allows spaces Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-11-02 20:45:12 UTC (rev 7722) +++ trunk/lib/InlineParser.php 2010-11-04 18:20:41 UTC (rev 7723) @@ -129,9 +129,9 @@ $match->regexp_ind += $prevMatch->regexp_ind + 1; return $match; } - + } - + // Failed. Look for match after current position. $repeat = sprintf('{%d,}?', $pos + 1); return $this->_match($text, $this->_regexps, $repeat); @@ -170,7 +170,7 @@ if (empty($matched)) return false; } $match = new RegexpSet_match; - + // Optimization: if the matches are only "$" and another, then omit "$" if (! _INLINE_OPTIMIZATION or count($matched) > 2) { assert(!empty($repeat)); @@ -189,7 +189,7 @@ } else { $match->regexp_ind = $regexp_ind; } - + $match->postmatch = substr($text, strlen($m[0])); $match->prematch = $m[1]; $match->match = $m[2]; @@ -270,7 +270,7 @@ function getStartRegexp () { return $this->_start_regexp; } - + /** Get the ending regexp for this rule. * * @param string $match The text which matched the starting regexp. @@ -300,7 +300,7 @@ function getMatchRegexp () { return ESCAPE_CHAR . '(?: [[:alnum:]]+ | .)'; } - + function markup ($match) { assert(strlen($match) >= 2); return substr($match, 1); @@ -326,7 +326,7 @@ // $bracketlink will start and end with brackets; in between will // be either a page name, a URL or both separated by a pipe. - + $wikicreolesyntax = false; if (string_starts_with($bracketlink, "[[") or string_starts_with($bracketlink, "#[[")) { @@ -405,7 +405,7 @@ $label = LinkImage(getUploadDataPath() . $img, $alt); } } else - + // [label|link] // If label looks like a url to an image or object, we want an image link. if (isImageLink($label)) { @@ -448,7 +448,7 @@ elseif (preg_match("/^ (\w+) (:[:=]) (.*) $/x", $link) and !isImageLink($link)) return new Cached_SemanticLink($link, $label); - /* Do not store the link */ + /* Do not store the link */ elseif (substr($link,0,1) == ':') return new Cached_WikiLink($link, $label); @@ -504,7 +504,7 @@ class Markup_bracketlink extends SimpleMarkup { var $_match_regexp = "\\#? \\[ .*? [^]\\s] .*? \\]"; - + function markup ($match) { $link = LinkBracketLink($match); assert($link->isInlineElement()); @@ -523,7 +523,7 @@ $words = array_keys($this->suggestions); return "(?<= \W ) (?:" . join('|', $words) . ") (?= \W )"; } - + function markup ($match) { if (empty($this->suggestions) or empty($this->suggestions[$match])) return $match; @@ -553,7 +553,7 @@ function getMatchRegexp () { return "(?<![[:alnum:]]) (?:" . ALLOWED_PROTOCOLS . ") : [^\s<>\"']+ (?<![ ,.?; \] \) ])"; } - + function markup ($match) { return new Cached_ExternalLink(UnWikiEscape($match)); } @@ -600,7 +600,7 @@ return new Cached_WikiLink($match); } - // FIXME: there's probably a more useful place to put these two functions + // FIXME: there's probably a more useful place to put these two functions function _isWikiUserPage ($page) { global $request; $dbi = $request->getDbh(); @@ -621,8 +621,7 @@ class Markup_linebreak extends SimpleMarkup { - //var $_match_regexp = "(?: (?<! %) %%% (?! %) | <(?:br|BR)> | <(?:br|BR) \/> )"; - var $_match_regexp = "(?: (?<! %) %%% (?! %) | \\\\\\\\ | <(?:br|BR)> )"; + var $_match_regexp = "(?: (?<! %) %%% (?! %) | \\\\\\\\ | <\s*(?:br|BR)\s*> | <\s*(?:br|BR)\s*\/\s*> )"; function markup ($match) { return HTML::br(); @@ -636,7 +635,7 @@ function getEndRegexp ($match) { return "\\/\\/"; } - + function markup ($match, $body) { $tag = 'em'; return new HtmlElement($tag, $body); @@ -650,7 +649,7 @@ function getEndRegexp ($match) { return "\\*\\*"; } - + function markup ($match, $body) { $tag = 'strong'; return new HtmlElement($tag, $body); @@ -664,7 +663,7 @@ function getEndRegexp ($match) { return "\\#\\#"; } - + function markup ($match, $body) { $tag = 'tt'; return new HtmlElement($tag, $body); @@ -678,7 +677,7 @@ function getEndRegexp ($match) { return "\\^\\^"; } - + function markup ($match, $body) { $tag = 'sup'; return new HtmlElement($tag, $body); @@ -692,7 +691,7 @@ function getEndRegexp ($match) { return $match; } - + function markup ($match, $body) { $tag = 'sub'; return new HtmlElement($tag, $body); @@ -706,7 +705,7 @@ function getEndRegexp ($match) { return $match; } - + function markup ($match, $body) { $tag = $match == "''" ? 'em' : 'strong'; return new HtmlElement($tag, $body); @@ -743,9 +742,9 @@ $start[] = "(?<= { ) ${any} (?! } )"; $start[] = "(?<= < ) ${any} (?! > )"; $start[] = "(?<= \\( ) ${any} (?! \\) )"; - + $start = "(?:" . join('|', $start) . ")"; - + // Any of the above must be immediately followed by non-whitespace. $start_regexp = $start . "(?= \S)"; } @@ -757,7 +756,7 @@ $chr = preg_quote($match); return "(?<= \S | ^ ) (?<! $chr) $chr (?! $chr) (?= \s | [-)}>\"'\\/:.,;!? _*=] | $)"; } - + function markup ($match, $body) { switch ($match) { case '*': return new HtmlElement('b', $body); @@ -775,7 +774,7 @@ function getEndRegexp ($match) { return "<\\/" . substr($match, 1); } - + function markup ($match, $body) { $tag = substr($match, 1, -1); return new HtmlElement($tag, $body); @@ -794,7 +793,7 @@ $tag = 'div'; return "<\\/" . $tag . '>'; } - + function markup ($match, $body) { if (substr($match,1,4) == 'span') $tag = 'span'; @@ -824,7 +823,7 @@ $tag = 'acronym'; return "<\\/" . $tag . '>'; } - + function markup ($match, $body) { if (substr($match,1,4) == 'abbr') $tag = 'abbr'; @@ -851,7 +850,7 @@ // %color=blue% blue text %% and back to normal var $_start_regexp = "%color=(?: [^%]*)%"; var $_end_regexp = "%%"; - + function markup ($match, $body) { $color = strtolower(substr($match, 7, -1)); @@ -1017,7 +1016,7 @@ { // patch #1732793: allow \n, mult. {{ }} in one line, and single letters var $_match_regexp = '\{\{.*?\}\}'; - + function markup ($match) { $page = substr($match,2,-2); @@ -1119,7 +1118,7 @@ join('|', array_map('preg_quote', array_keys($this->_entities))) . ' )'; } - + function markup ($match) { return HTML::Raw($this->_entities[$match]); } @@ -1127,7 +1126,7 @@ class Markup_isonumchars extends SimpleMarkup { var $_match_regexp = '\&\#\d{2,5};'; - + function markup ($match) { return HTML::Raw($match); } @@ -1136,7 +1135,7 @@ class Markup_isohexchars extends SimpleMarkup { // hexnums, like ¤ <=> ¤ var $_match_regexp = '\&\#x[0-9a-fA-F]{2,4};'; - + function markup ($match) { return HTML::Raw($match); } @@ -1148,7 +1147,7 @@ { var $_regexps = array(); var $_markup = array(); - + function InlineTransformer ($markup_types = false) { global $request; // We need to extend the inline parsers by certain actions, like SearchHighlight, @@ -1212,7 +1211,7 @@ $this->_regexps[] = $regexp; $this->_markup[] = $markup; } - + function parse (&$text, $end_regexps = array('$')) { $regexps = $this->_regexps; @@ -1220,12 +1219,12 @@ array_unshift($regexps, $end_regexps[0]); //array_push($regexps, $end_regexps[0]); $regexps = new RegexpSet($regexps); - + $input = $text; $output = new XmlContent; $match = $regexps->match($input); - + while ($match) { if ($match->regexp_ind == 0) { // No start pattern found before end pattern. @@ -1317,7 +1316,7 @@ if (empty($trfm) or $action == 'SpellCheck') { $trfm = new InlineTransformer; } - + if ($markup < 2.0) { $text = ConvertOldMarkup($text, 'inline'); } @@ -1330,7 +1329,7 @@ function TransformLinks($text, $markup = 2.0, $basepage = false) { static $trfm; - + if (empty($trfm)) { $trfm = new LinkTransformer; } @@ -1338,7 +1337,7 @@ if ($markup < 2.0) { $text = ConvertOldMarkup($text, 'links'); } - + if ($basepage) { return new CacheableMarkup($trfm->parse($text), $basepage); } @@ -1350,7 +1349,7 @@ */ function TransformInlineNowiki($text, $markup = 2.0, $basepage=false) { static $trfm; - + if (empty($trfm)) { $trfm = new NowikiTransformer; } @@ -1366,5 +1365,5 @@ // c-basic-offset: 4 // c-hanging-comment-ender-p: nil // indent-tabs-mode: nil -// End: +// End: ?> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2010-11-05 14:58:16
|
Revision: 7725 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7725&view=rev Author: vargenau Date: 2010-11-05 14:58:10 +0000 (Fri, 05 Nov 2010) Log Message: ----------- Allow "upload:", "image:" and "file:". Remove spaces before and after ":", if any. Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-11-04 19:40:50 UTC (rev 7724) +++ trunk/lib/InlineParser.php 2010-11-05 14:58:10 UTC (rev 7725) @@ -354,12 +354,21 @@ // Mediawiki compatibility: allow "Image:" and "File:" // as synonyms of "Upload:" - if (string_starts_with($rawlink, "Image:")) { - $rawlink = str_replace("Image:", "Upload:", $rawlink); + // Allow "upload:", "image:" and "file:" also + // Remove spaces before and after ":", if any + if (string_starts_with($rawlink, "Upload")) { + $rawlink = preg_replace("/^Upload\\s*:\\s*/", "Upload:", $rawlink); + } else if (string_starts_with($rawlink, "upload")) { + $rawlink = preg_replace("/^upload\\s*:\\s*/", "Upload:", $rawlink); + } else if (string_starts_with($rawlink, "Image")) { + $rawlink = preg_replace("/^Image\\s*:\\s*/", "Upload:", $rawlink); + } else if (string_starts_with($rawlink, "image")) { + $rawlink = preg_replace("/^image\\s*:\\s*/", "Upload:", $rawlink); + } else if (string_starts_with($rawlink, "File")) { + $rawlink = preg_replace("/^File\\s*:\\s*/", "Upload:", $rawlink); + } else if (string_starts_with($rawlink, "file")) { + $rawlink = preg_replace("/^file\\s*:\\s*/", "Upload:", $rawlink); } - if (string_starts_with($rawlink, "File:")) { - $rawlink = str_replace("File:", "Upload:", $rawlink); - } $label = UnWikiEscape($label); /* This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2010-11-05 15:02:18
|
Revision: 7726 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7726&view=rev Author: vargenau Date: 2010-11-05 15:02:12 +0000 (Fri, 05 Nov 2010) Log Message: ----------- Use empty alt for [[Upload:image.jpg]] Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2010-11-05 14:58:10 UTC (rev 7725) +++ trunk/lib/InlineParser.php 2010-11-05 15:02:12 UTC (rev 7726) @@ -479,7 +479,7 @@ if (empty($label) and isImageLink($link)) { // if without label => inlined image [File:xx.gif] $imgurl = $intermap->link($link); - return LinkImage($imgurl->getAttr('href'), $link); + return LinkImage($imgurl->getAttr('href')); } return new Cached_InterwikiLink($link, $label); } else { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2011-01-04 13:10:33
|
Revision: 7803 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=7803&view=rev Author: vargenau Date: 2011-01-04 13:10:27 +0000 (Tue, 04 Jan 2011) Log Message: ----------- Double underscore is underline in Wikicreole Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2011-01-04 11:38:12 UTC (rev 7802) +++ trunk/lib/InlineParser.php 2011-01-04 13:10:27 UTC (rev 7803) @@ -679,6 +679,20 @@ } } +class Markup_wikicreole_underline extends BalancedMarkup +{ + var $_start_regexp = "\\_\\_"; + + function getEndRegexp ($match) { + return "\\_\\_"; + } + + function markup ($match, $body) { + $tag = 'u'; + return new HtmlElement($tag, $body); + } +} + class Markup_wikicreole_superscript extends BalancedMarkup { var $_start_regexp = "\\^\\^"; @@ -709,14 +723,14 @@ class Markup_old_emphasis extends BalancedMarkup { - var $_start_regexp = "''|__"; + var $_start_regexp = "''"; function getEndRegexp ($match) { return $match; } function markup ($match, $body) { - $tag = $match == "''" ? 'em' : 'strong'; + $tag = 'em'; return new HtmlElement($tag, $body); } } @@ -1176,6 +1190,7 @@ 'wikicreole_subscript', 'wikicreole_italics', 'wikicreole_bold', 'wikicreole_monospace', + 'wikicreole_underline', 'old_emphasis', 'nestled_emphasis', 'html_emphasis', 'html_abbr', 'plugin', 'plugin_wikicreole', 'isonumchars', 'isohexchars', /*'html_entities'*/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2011-06-07 12:54:13
|
Revision: 8093 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8093&view=rev Author: vargenau Date: 2011-06-07 12:54:07 +0000 (Tue, 07 Jun 2011) Log Message: ----------- Fix bug with {{http://...}} image Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2011-06-01 14:08:09 UTC (rev 8092) +++ trunk/lib/InlineParser.php 2011-06-07 12:54:07 UTC (rev 8093) @@ -1084,7 +1084,9 @@ // It's not a Mediawiki template, it's a Wikicreole image if (is_image($imagename)) { - if ($imagename[0] == '/') { + if ((strpos($imagename, "http://") === 0) || (strpos($imagename, "https://") === 0)) { + return LinkImage($imagename, $alt); + } else if ($imagename[0] == '/') { return LinkImage(DATA_PATH . '/' . $imagename, $alt); } else { return LinkImage(getUploadDataPath() . $imagename, $alt); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2011-11-29 09:08:09
|
Revision: 8188 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8188&view=rev Author: vargenau Date: 2011-11-29 09:07:58 +0000 (Tue, 29 Nov 2011) Log Message: ----------- Check page length in LinkBracketLink Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2011-11-28 16:58:01 UTC (rev 8187) +++ trunk/lib/InlineParser.php 2011-11-29 09:07:58 UTC (rev 8188) @@ -387,8 +387,14 @@ if (preg_match("/%2F(%20)+\./i", $rawlink)) { $rawlink = preg_replace("/%2F(%20)+\./i","%2F.",$rawlink); } - } else + } else { + // Check page name lenght + if (strlen($rawlink) > MAX_PAGENAME_LENGTH) { + return HTML::span(array('class' => 'error'), + _('Page name too long')); + } $link = UnWikiEscape($rawlink); + } /* Relatives links by Joel Schaubert. * Recognize [../bla] or [/bla] as relative links, without needing http:// This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2011-11-29 10:07:12
|
Revision: 8194 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8194&view=rev Author: vargenau Date: 2011-11-29 10:07:03 +0000 (Tue, 29 Nov 2011) Log Message: ----------- Check illegal characters in page names in LinkBracketLink Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2011-11-29 09:54:59 UTC (rev 8193) +++ trunk/lib/InlineParser.php 2011-11-29 10:07:03 UTC (rev 8194) @@ -393,6 +393,12 @@ return HTML::span(array('class' => 'error'), _('Page name too long')); } + // Check illegal characters in page names: <>[]{}|" + if (preg_match("/[<\[\{\|\"\}\]>]/", $rawlink, $matches) > 0) { + return HTML::span(array('class' => 'error'), + sprintf(_("Illegal character '%s' in page name."), + $matches[0])); + } $link = UnWikiEscape($rawlink); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2012-04-10 12:38:07
|
Revision: 8263 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8263&view=rev Author: vargenau Date: 2012-04-10 12:37:58 +0000 (Tue, 10 Apr 2012) Log Message: ----------- Use class "tt" Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2012-04-10 12:17:12 UTC (rev 8262) +++ trunk/lib/InlineParser.php 2012-04-10 12:37:58 UTC (rev 8263) @@ -686,8 +686,7 @@ } function markup ($match, $body) { - $tag = 'tt'; - return new HtmlElement($tag, $body); + return new HtmlElement('span', array('class' => 'tt'), $body); } } @@ -795,7 +794,7 @@ function markup ($match, $body) { switch ($match) { case '*': return new HtmlElement('b', $body); - case '=': return new HtmlElement('tt', $body); + case '=': return new HtmlElement('span', array('class' => 'tt'), $body); case '_': return new HtmlElement('i', $body); } } @@ -1031,7 +1030,7 @@ function markup ($match) { // Remove {{{ and }}} - return new HtmlElement('tt', substr($match, 3, -3)); + return new HtmlElement('span', array('class' => 'tt'), substr($match, 3, -3)); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2012-06-11 08:55:07
|
Revision: 8270 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8270&view=rev Author: vargenau Date: 2012-06-11 08:54:58 +0000 (Mon, 11 Jun 2012) Log Message: ----------- Cannot create a link to an uploaded file with a very long name Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2012-05-31 08:31:46 UTC (rev 8269) +++ trunk/lib/InlineParser.php 2012-06-11 08:54:58 UTC (rev 8270) @@ -389,9 +389,11 @@ } } else { // Check page name lenght - if (strlen($rawlink) > MAX_PAGENAME_LENGTH) { - return HTML::span(array('class' => 'error'), - _('Page name too long')); + if (!string_starts_with($rawlink, "Upload:")) { + if (strlen($rawlink) > MAX_PAGENAME_LENGTH) { + return HTML::span(array('class' => 'error'), + _('Page name too long')); + } } // Check illegal characters in page names: <>[]{}|" if (preg_match("/[<\[\{\|\"\}\]>]/", $rawlink, $matches) > 0) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2012-12-03 12:43:26
|
Revision: 8589 http://phpwiki.svn.sourceforge.net/phpwiki/?rev=8589&view=rev Author: vargenau Date: 2012-12-03 12:43:20 +0000 (Mon, 03 Dec 2012) Log Message: ----------- Add "@" to avoid warning with "{{(*y)}}" Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2012-12-03 12:41:21 UTC (rev 8588) +++ trunk/lib/InlineParser.php 2012-12-03 12:43:20 UTC (rev 8589) @@ -1392,10 +1392,13 @@ function _parse_markup_body($markup, $match, &$text, $end_regexps) { - if (isa($markup, 'SimpleMarkup')) + if (isa($markup, 'SimpleMarkup')) { return true; // Done. SimpleMarkup is simple. + } - if (!is_object($markup)) return false; // Some error: Should assert + if (!is_object($markup)) { + return false; // Some error: Should assert + } array_unshift($end_regexps, $markup->getEndRegexp($match)); // Optimization: if no end pattern in text, we know the @@ -1403,8 +1406,9 @@ // e.g. when text is "*lots *of *start *delims *with // *no *matching *end *delims". $ends_pat = "/(?:" . join(").*(?:", $end_regexps) . ")/xs"; - if (!preg_match($ends_pat, $text)) + if (!@preg_match($ends_pat, $text)) { // Add "@" to avoid warning with "{{(*y)}}" return false; + } return $this->parse($text, $end_regexps); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-06-13 09:42:45
|
Revision: 8904 http://sourceforge.net/p/phpwiki/code/8904 Author: vargenau Date: 2014-06-13 09:42:38 +0000 (Fri, 13 Jun 2014) Log Message: ----------- No name attribute for HTML::a Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-06-13 09:28:23 UTC (rev 8903) +++ trunk/lib/InlineParser.php 2014-06-13 09:42:38 UTC (rev 8904) @@ -464,8 +464,7 @@ if ($hash) { // It's an anchor, not a link... $id = MangleXmlIdentifier($link); - return HTML::a(array('name' => $id, 'id' => $id), - $bar ? $label : $link); + return HTML::a(array('id' => $id), $bar ? $label : $link); } if (preg_match("#^(" . ALLOWED_PROTOCOLS . "):#", $link)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-06-13 12:02:01
|
Revision: 8905 http://sourceforge.net/p/phpwiki/code/8905 Author: vargenau Date: 2014-06-13 12:01:58 +0000 (Fri, 13 Jun 2014) Log Message: ----------- 'acronym' is deprecated in HTML 5, replace by 'abbr' Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-06-13 09:42:38 UTC (rev 8904) +++ trunk/lib/InlineParser.php 2014-06-13 12:01:58 UTC (rev 8905) @@ -911,10 +911,8 @@ function markup($match, $body) { - if (substr($match, 1, 4) == 'abbr') - $tag = 'abbr'; - else - $tag = 'acronym'; + // 'acronym' is deprecated in HTML 5, replace by 'abbr' + $tag = 'abbr'; $rest = substr($match, 1 + strlen($tag), -1); $attrs = parse_attributes($rest); // Remove attributes other than title and lang This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-06-19 15:38:02
|
Revision: 8919 http://sourceforge.net/p/phpwiki/code/8919 Author: vargenau Date: 2014-06-19 15:37:54 +0000 (Thu, 19 Jun 2014) Log Message: ----------- Use span with class for <big>, <strike> and <tt> Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-06-19 15:36:57 UTC (rev 8918) +++ trunk/lib/InlineParser.php 2014-06-19 15:37:54 UTC (rev 8919) @@ -860,6 +860,9 @@ function markup($match, $body) { $tag = substr($match, 1, -1); + if (($tag == 'big') || ($tag == 'strike') || ($tag == 'tt')) { + return new HtmlElement('span', array('class' => $tag), $body); + } return new HtmlElement($tag, $body); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-11-17 15:20:36
|
Revision: 9319 http://sourceforge.net/p/phpwiki/code/9319 Author: vargenau Date: 2014-11-17 15:20:33 +0000 (Mon, 17 Nov 2014) Log Message: ----------- Add return Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-11-17 14:57:05 UTC (rev 9318) +++ trunk/lib/InlineParser.php 2014-11-17 15:20:33 UTC (rev 9319) @@ -841,6 +841,7 @@ case '_': return new HtmlElement('i', $body); } + return null; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-11-17 15:30:48
|
Revision: 9321 http://sourceforge.net/p/phpwiki/code/9321 Author: vargenau Date: 2014-11-17 15:30:45 +0000 (Mon, 17 Nov 2014) Log Message: ----------- Use __construct Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-11-17 15:24:36 UTC (rev 9320) +++ trunk/lib/InlineParser.php 2014-11-17 15:30:45 UTC (rev 9321) @@ -1262,7 +1262,7 @@ public $_regexps = array(); public $_markup = array(); - function InlineTransformer($markup_types = false) + function __construct($markup_types = false) { global $request; // We need to extend the inline parsers by certain actions, like SearchHighlight, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <var...@us...> - 2014-11-19 14:33:45
|
Revision: 9340 http://sourceforge.net/p/phpwiki/code/9340 Author: vargenau Date: 2014-11-19 14:33:38 +0000 (Wed, 19 Nov 2014) Log Message: ----------- Remove comment Modified Paths: -------------- trunk/lib/InlineParser.php Modified: trunk/lib/InlineParser.php =================================================================== --- trunk/lib/InlineParser.php 2014-11-19 14:30:44 UTC (rev 9339) +++ trunk/lib/InlineParser.php 2014-11-19 14:33:38 UTC (rev 9340) @@ -347,7 +347,6 @@ preg_match('/(\#?) \[\s* (?: (.*?) \s* (?<!' . ESCAPE_CHAR . ')(\|) )? \s* (.+?) \s*\]/x', str_replace("\n", " ", $bracketlink), $matches); if (count($matches) < 4) { - // "[ personal\ninformation manager | PhpWiki:PersonalWiki ]" trigger_error(_("Invalid [] syntax ignored") . _(": ") . $bracketlink, E_USER_WARNING); return new Cached_Link; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |