From 90661dbd11a1b2e0b7738426c86cb8a2f9d60f6f Mon Sep 17 00:00:00 2001 From: djsrv Date: Sun, 19 Apr 2020 14:25:12 -0400 Subject: [PATCH] DIRECTOR: LINGO: Ignore diacritics in = operator --- engines/director/lingo/lingo.cpp | 5 ++++- engines/director/lingo/tests/strings.lingo | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/engines/director/lingo/lingo.cpp b/engines/director/lingo/lingo.cpp index 564d9ce08b2..3816c4edd67 100644 --- a/engines/director/lingo/lingo.cpp +++ b/engines/director/lingo/lingo.cpp @@ -31,6 +31,7 @@ #include "director/frame.h" #include "director/score.h" #include "director/sprite.h" +#include "director/util.h" namespace Director { @@ -601,7 +602,9 @@ int Datum::compareTo(Datum d) { int Datum::compareToIgnoreCase(Datum d) { if (type == STRING && d.type == STRING) { - return u.s->compareToIgnoreCase(*d.u.s); + Common::String *s1 = toLowercaseMac(u.s); + Common::String *s2 = toLowercaseMac(d.u.s); + return s1->compareTo(*s2); } return compareTo(d); } diff --git a/engines/director/lingo/tests/strings.lingo b/engines/director/lingo/tests/strings.lingo index a59109206fa..f45fafe4b18 100644 --- a/engines/director/lingo/tests/strings.lingo +++ b/engines/director/lingo/tests/strings.lingo @@ -11,6 +11,11 @@ if z1 contains "Me else put "Doesn't contain" end if +if "meow" = "MeÍW" then + put "Equals" +else + put "Doesn't equal" +end if put "That is the last line of the file." & return & "Click Done to exit." && return && "foo"