Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions ad-code-manager.php
Original file line number Diff line number Diff line change
Expand Up @@ -849,6 +849,11 @@ function action_acm_tag( $tag_id, $echo = true ) {
return;

$code_to_display = $this->get_matching_ad_code( $tag_id );

// get_matching_ad_code can return an empty value.
if ( empty( $code_to_display ) ) {
return;
}

// Run $url aganist a whitelist to make sure it's a safe URL
if ( !$this->validate_script_url( $code_to_display['url'] ) )
Expand Down
35 changes: 19 additions & 16 deletions common/lib/markdown.php
Original file line number Diff line number Diff line change
Expand Up @@ -786,7 +786,7 @@ function _doHeaders_callback_setext( $matches ) {
if ( $matches[2] == '-' && preg_match( '{^-(?: |$)}', $matches[1] ) )
return $matches[0];

$level = $matches[2]{0} == '=' ? 1 : 2;
$level = $matches[2][0] == '=' ? 1 : 2;
$block = "<h$level>".$this->runSpanGamut( $matches[1] )."</h$level>";
return "\n" . $this->hashBlock( $block ) . "\n\n";
}
Expand Down Expand Up @@ -1081,7 +1081,7 @@ function doItalicsAndBold( $text ) {
} else {
// Other closing marker: close one em or strong and
// change current token state to match the other
$token_stack[0] = str_repeat( $token{0}, 3-$token_len );
$token_stack[0] = str_repeat( $token[0], 3-$token_len );
$tag = $token_len == 2 ? "strong" : "em";
$span = $text_stack[0];
$span = $this->runSpanGamut( $span );
Expand All @@ -1106,7 +1106,7 @@ function doItalicsAndBold( $text ) {
} else {
// Reached opening three-char emphasis marker. Push on token
// stack; will be handled by the special condition above.
$em = $token{0};
$em = $token[0];
$strong = "$em$em";
array_unshift( $token_stack, $token );
array_unshift( $text_stack, '' );
Expand Down Expand Up @@ -1435,9 +1435,9 @@ function handleSpanToken( $token, &$str ) {
// Handle $token provided by parseSpan by determining its nature and
// returning the corresponding value that should replace it.
//
switch ( $token{0} ) {
switch ( $token[0] ) {
case "\\":
return $this->hashPart( "&#". ord( $token{1} ). ";" );
return $this->hashPart( "&#". ord( $token[1] ). ";" );
case "`":
// Search for end marker in remaining text.
if ( preg_match( '/^(.*?[^`])'.preg_quote( $token ).'(?!`)(.*)$/sm',
Expand Down Expand Up @@ -1505,10 +1505,13 @@ function _initDetab() {
if ( function_exists( $this->utf8_strlen ) ) return;
$this->utf8_strlen = function( $text ) {
return preg_match_all(
"/[\\\\x00-\\\\xBF]|[\\\\xC0-\\\\xFF][\\\\x80-\\\\xBF]*/", $text, $m );
"/[\\x00-\\xBF]|[\\xC0-\\xFF][\\x80-\\xBF]*/",
$text, $m
);
};
}


function unhash( $text ) {
//
// Swap back in all the tags hashed by _HashHTMLBlocks.
Expand Down Expand Up @@ -1782,7 +1785,7 @@ function _hashHTMLBlocks_inMarkdown( $text, $indent = 0,
//
// Check for: Code span marker
//
if ( $tag{0} == "`" ) {
if ( $tag[0] == "`" ) {
// Find corresponding end marker.
$tag_re = preg_quote( $tag );
if ( preg_match( '{^(?>.+?|\n(?!\n))*?(?<!`)'.$tag_re.'(?!`)}',
Expand Down Expand Up @@ -1816,7 +1819,7 @@ function _hashHTMLBlocks_inMarkdown( $text, $indent = 0,
//
// Check for: Indented code block.
//
else if ( $tag{0} == "\n" || $tag{0} == " " ) {
else if ( $tag[0] == "\n" || $tag[0] == " " ) {
// Indented code block: pass it unchanged, will be handled
// later.
$parsed .= $tag;
Expand All @@ -1843,7 +1846,7 @@ function _hashHTMLBlocks_inMarkdown( $text, $indent = 0,
// HTML Comments, processing instructions.
//
else if ( preg_match( '{^<(?:'.$this->clean_tags_re.')\b}', $tag ) ||
$tag{1} == '!' || $tag{1} == '?' ) {
$tag[1] == '!' || $tag[1] == '?' ) {
// Need to parse tag and following text using the HTML parser.
// (don't check for markdown attribute)
list( $block_text, $text ) =
Expand All @@ -1860,8 +1863,8 @@ function _hashHTMLBlocks_inMarkdown( $text, $indent = 0,
//
// Increase/decrease nested tag count.
//
if ( $tag{1} == '/' ) $depth--;
else if ( $tag{strlen( $tag )-2} != '/' ) $depth++;
if ( $tag[1] == '/' ) $depth--;
else if ( $tag[strlen( $tag )-2] != '/' ) $depth++;

if ( $depth < 0 ) {
//
Expand Down Expand Up @@ -1965,7 +1968,7 @@ function _hashHTMLBlocks_inHTML( $text, $hash_method, $md_attr ) {
// first character as filtered to prevent an infinite loop in the
// parent function.
//
return array( $original_text{0}, substr( $original_text, 1 ) );
return array( $original_text[0], substr( $original_text, 1 ) );
}

$block_text .= $parts[0]; // Text before current tag.
Expand All @@ -1977,7 +1980,7 @@ function _hashHTMLBlocks_inHTML( $text, $hash_method, $md_attr ) {
// Comments and Processing Instructions.
//
if ( preg_match( '{^</?(?:'.$this->auto_close_tags_re.')\b}', $tag ) ||
$tag{1} == '!' || $tag{1} == '?' ) {
$tag[1] == '!' || $tag[1] == '?' ) {
// Just add the tag to the block as if it was text.
$block_text .= $tag;
}
Expand All @@ -1987,8 +1990,8 @@ function _hashHTMLBlocks_inHTML( $text, $hash_method, $md_attr ) {
// the tag's name match base tag's.
//
if ( preg_match( '{^</?'.$base_tag_name_re.'\b}', $tag ) ) {
if ( $tag{1} == '/' ) $depth--;
else if ( $tag{strlen( $tag )-2} != '/' ) $depth++;
if ( $tag[1] == '/' ) $depth--;
else if ( $tag[strlen( $tag )-2] != '/' ) $depth++;
}

//
Expand Down Expand Up @@ -2111,7 +2114,7 @@ function _doHeaders_attr( $attr ) {
function _doHeaders_callback_setext( $matches ) {
if ( $matches[3] == '-' && preg_match( '{^- }', $matches[1] ) )
return $matches[0];
$level = $matches[3]{0} == '=' ? 1 : 2;
$level = $matches[3][0] == '=' ? 1 : 2;
$attr = $this->_doHeaders_attr( $id =& $matches[2] );
$block = "<h$level$attr>".$this->runSpanGamut( $matches[1] )."</h$level>";
return "\n" . $this->hashBlock( $block ) . "\n\n";
Expand Down