php-markdown/php-markdown-php74.patch
Remi Collet b50ae60684 drop old classic version
use git snapshot as next version will have test suite
add patch for PHP 7.4, adapted for 1.8.0 from
  https://github.com/michelf/php-markdown/pull/316
2019-07-26 15:21:56 +02:00

137 lines
5.4 KiB
Diff

diff -up Michelf/MarkdownExtra.php.php74 Michelf/MarkdownExtra.php
--- Michelf/MarkdownExtra.php.php74 2019-07-26 15:03:52.000000000 +0200
+++ Michelf/MarkdownExtra.php 2019-07-26 15:07:25.255088870 +0200
@@ -212,9 +212,9 @@ class MarkdownExtra extends \Michelf\Mar
$attributes = array();
$id = false;
foreach ($elements as $element) {
- if ($element{0} == '.') {
+ if ($element[0] == '.') {
$classes[] = substr($element, 1);
- } else if ($element{0} == '#') {
+ } else if ($element[0] == '#') {
if ($id === false) $id = substr($element, 1);
} else if (strpos($element, '=') > 0) {
$parts = explode('=', $element, 2);
@@ -508,14 +508,14 @@ class MarkdownExtra extends \Michelf\Mar
}
}
// 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;
}
// Check for: Code span marker
// Note: need to check this after backtick fenced code blocks
- else if ($tag{0} == "`") {
+ else if ($tag[0] == "`") {
// Find corresponding end marker.
$tag_re = preg_quote($tag);
if (preg_match('{^(?>.+?|\n(?!\n))*?(?<!`)' . $tag_re . '(?!`)}',
@@ -549,7 +549,7 @@ class MarkdownExtra extends \Michelf\Mar
// Check for: Clean tag (like script, math)
// 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)
@@ -564,7 +564,7 @@ class MarkdownExtra extends \Michelf\Mar
preg_match('{^</?(?:' . $enclosing_tag_re . ')\b}', $tag))
{
// Increase/decrease nested tag count.
- if ($tag{1} == '/') $depth--;
+ if ($tag[1] == '/') $depth--;
else if ($tag{strlen($tag)-2} != '/') $depth++;
if ($depth < 0) {
@@ -664,7 +664,7 @@ class MarkdownExtra extends \Michelf\Mar
// In that case, we return original text unchanged and pass the
// 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.
@@ -674,7 +674,7 @@ class MarkdownExtra extends \Michelf\Mar
// Check for: Auto-close tag (like <hr/>)
// 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;
@@ -683,7 +683,7 @@ class MarkdownExtra extends \Michelf\Mar
// Increase/decrease nested tag count. Only do so if
// the tag's name match base tag's.
if (preg_match('{^</?' . $base_tag_name_re . '\b}', $tag)) {
- if ($tag{1} == '/') $depth--;
+ if ($tag[1] == '/') $depth--;
else if ($tag{strlen($tag)-2} != '/') $depth++;
}
@@ -1071,7 +1071,7 @@ class MarkdownExtra extends \Michelf\Mar
return $matches[0];
}
- $level = $matches[3]{0} == '=' ? 1 : 2;
+ $level = $matches[3][0] == '=' ? 1 : 2;
$defaultId = is_callable($this->header_id_func) ? call_user_func($this->header_id_func, $matches[1]) : null;
@@ -1466,7 +1466,7 @@ class MarkdownExtra extends \Michelf\Mar
$classes = array();
if ($classname != "") {
- if ($classname{0} == '.')
+ if ($classname[0] == '.')
$classname = substr($classname, 1);
$classes[] = $this->code_class_prefix . $classname;
}
diff -up Michelf/Markdown.php.php74 Michelf/Markdown.php
--- Michelf/Markdown.php.php74 2019-07-26 15:03:52.000000000 +0200
+++ Michelf/Markdown.php 2019-07-26 15:06:27.924736197 +0200
@@ -952,7 +952,7 @@ class Markdown implements MarkdownInterf
return $matches[0];
}
- $level = $matches[2]{0} == '=' ? 1 : 2;
+ $level = $matches[2][0] == '=' ? 1 : 2;
// ID attribute generation
$idAtt = $this->_generateIdFromHeaderValue($matches[1]);
@@ -1358,7 +1358,7 @@ class Markdown implements MarkdownInterf
} 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);
@@ -1383,7 +1383,7 @@ class Markdown implements MarkdownInterf
} 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, '');
@@ -1796,9 +1796,9 @@ class Markdown implements MarkdownInterf
* @return string
*/
protected function handleSpanToken($token, &$str) {
- 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',