Merge branch 'MDL-75473-master' of https://github.com/davewoloszyn/moodle

This commit is contained in:
Andrew Nicols 2022-10-09 13:18:21 +08:00
commit 052c705b08
4 changed files with 40 additions and 3 deletions

View file

@ -19,4 +19,10 @@ been already applied upstream for the release being used, can be removed
from the list. If still not available upstream, they will need to be re-applied. from the list. If still not available upstream, they will need to be re-applied.
1) If the relevant pull request has not been accepted yet, apply the following commit, so we are able to disable unnecessary rendering: 1) If the relevant pull request has not been accepted yet, apply the following commit, so we are able to disable unnecessary rendering:
https://github.com/bobthecow/mustache.php/pull/402/commits/db771014c7e346438f68077813ebdda3fdae12df# https://github.com/bobthecow/mustache.php/pull/402/commits/db771014c7e346438f68077813ebdda3fdae12df#
This can be achieved by:
a) Download the patch from
https://github.com/bobthecow/mustache.php/pull/402/commits/db771014c7e346438f68077813ebdda3fdae12df.patch
b) In terminal, navigate to lib/mustache/src/Mustache
c) Run the following: patch --directory . < ~/path/to/patch.patch
d) We do not need the unit test, so run rm DisableLambdaRenderingTest.php

View file

@ -23,7 +23,7 @@
*/ */
class Mustache_Engine class Mustache_Engine
{ {
const VERSION = '2.14.1'; const VERSION = '2.14.2';
const SPEC_VERSION = '1.2.2'; const SPEC_VERSION = '1.2.2';
const PRAGMA_FILTERS = 'FILTERS'; const PRAGMA_FILTERS = 'FILTERS';

View file

@ -215,6 +215,10 @@ class Mustache_Tokenizer
} }
} }
if ($this->state !== self::IN_TEXT) {
$this->throwUnclosedTagException();
}
$this->flushBuffer(); $this->flushBuffer();
// Restore the user's encoding... // Restore the user's encoding...
@ -279,6 +283,10 @@ class Mustache_Tokenizer
$close = '=' . $this->ctag; $close = '=' . $this->ctag;
$closeIndex = strpos($text, $close, $index); $closeIndex = strpos($text, $close, $index);
if ($closeIndex === false) {
$this->throwUnclosedTagException();
}
$token = array( $token = array(
self::TYPE => self::T_DELIM_CHANGE, self::TYPE => self::T_DELIM_CHANGE,
self::LINE => $this->line, self::LINE => $this->line,
@ -333,6 +341,10 @@ class Mustache_Tokenizer
private function addPragma($text, $index) private function addPragma($text, $index)
{ {
$end = strpos($text, $this->ctag, $index); $end = strpos($text, $this->ctag, $index);
if ($end === false) {
$this->throwUnclosedTagException();
}
$pragma = trim(substr($text, $index + 2, $end - $index - 2)); $pragma = trim(substr($text, $index + 2, $end - $index - 2));
// Pragmas are hoisted to the front of the template. // Pragmas are hoisted to the front of the template.
@ -344,4 +356,23 @@ class Mustache_Tokenizer
return $end + $this->ctagLen - 1; return $end + $this->ctagLen - 1;
} }
private function throwUnclosedTagException()
{
$name = trim($this->buffer);
if ($name !== '') {
$msg = sprintf('Unclosed tag: %s on line %d', $name, $this->line);
} else {
$msg = sprintf('Unclosed tag on line %d', $this->line);
}
throw new Mustache_Exception_SyntaxException($msg, array(
self::TYPE => $this->tagType,
self::NAME => $name,
self::OTAG => $this->otag,
self::CTAG => $this->ctag,
self::LINE => $this->line,
self::INDEX => $this->seenTag - $this->otagLen,
));
}
} }

View file

@ -308,7 +308,7 @@ All rights reserved.</copyright>
<location>mustache</location> <location>mustache</location>
<name>Mustache</name> <name>Mustache</name>
<description>PHP library for displaying mustache templates.</description> <description>PHP library for displaying mustache templates.</description>
<version>2.14.1</version> <version>2.14.2</version>
<license>MIT</license> <license>MIT</license>
<repository>https://github.com/bobthecow/mustache.php</repository> <repository>https://github.com/bobthecow/mustache.php</repository>
<copyrights> <copyrights>