&& $this->mText[$this->mPos+1] == "'" )
{
$queueToken["type"] .= "'";
+ $queueToken["pos"] = $this->mPos;
$this->mPos ++;
}
}
break;
case "\n": // for block levels, actually, only "----" is handled.
- case "\r":
+ case "\r": // headings are detected to close any unbalanced em or strong tags in a section
if ( $this->continues( "----" ) )
{
$queueToken["type"] = "----";
$this->mPos ++;
}
break 2;
+ } else if (
+ $this->continues( "<h" ) and (
+ $this->continues( "<h1" ) or
+ $this->continues( "<h2" ) or
+ $this->continues( "<h3" ) or
+ $this->continues( "<h4" ) or
+ $this->continues( "<h5" ) or
+ $this->continues( "<h6" )
+ )
+ ) { // heading
+ $queueToken["type"] = "h";
+ $queueToken["text"] = "";
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos ++;
+ break 2; // switch + while
}
break;
case "!": // French spacing rules have a space before exclamation
break 2; // switch + while
}
break;
+ case "&": //extensions like <timeline>, since HTML stripping has already been done,
+ //those look like <timeline>
+ if ( $this->continues( "lt;timeline>" ) )
+ {
+ $queueToken["type"] = "<timeline>";
+ $queueToken["text"] = "<timeline>";
+ $this->mQueuedToken[] = $queueToken;
+ $this->mPos += 16;
+ break 2; // switch + while
+ }
+ break;
} /* switch */
$token["text"].=$ch;
return false;
return ( 0 == strcmp( $prec, substr($this->mText, $this->mPos-$len, $len) ) );
}
+
+ function readAllUntil( $border )
+ {
+ $n = strpos( $this->mText, $border, $this->mPos );
+ if ( $n === false )
+ return "";
+ $ret = substr( $this->mText, $this->mPos, $n - $this->mPos );
+ $this->mPos = $n + strlen( $border ) + 1;
+ return $ret;
+ }
+
}