From 22d73d987c665896f80e134154ea04833d28d8c9 Mon Sep 17 00:00:00 2001 From: Elmar Ludwig <elmar.ludwig@uni-osnabrueck.de> Date: Thu, 2 Mar 2023 11:45:22 +0100 Subject: [PATCH] also trigger escaping on ~ and *, fixes #186 --- exercises/cloze_exercise.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/exercises/cloze_exercise.php b/exercises/cloze_exercise.php index 3fceddf..de795c8 100644 --- a/exercises/cloze_exercise.php +++ b/exercises/cloze_exercise.php @@ -355,14 +355,18 @@ class cloze_exercise extends Exercise $select = $this->isSelect($blank, false) ? ':' : ''; foreach ($this->task['answers'][$blank] as $answer) { + $answer_text = $answer['text']; + + if (preg_match('/^([":*~]|$)/', $answer_text)) { + $answer_text = '"' . $answer_text . '"'; + } + if ($answer['score'] == 0) { - $answers[] = '*' . $answer['text']; + $answers[] = '*' . $answer_text; } else if ($answer['score'] == 0.5) { - $answers[] = '~' . $answer['text']; - } else if (preg_match('/^([":*~]|$)/', $answer['text'])) { - $answers[] = '"' . $answer['text'] . '"'; + $answers[] = '~' . $answer_text; } else { - $answers[] = $answer['text']; + $answers[] = $answer_text; } } -- GitLab