From 5ca02d3f98c37df5f440514411b59810c9f0da98 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 9 Jun 2018 06:20:32 -0700 Subject: [PATCH] SCP: Add missing case independent string compare in expressions --- scp.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/scp.c b/scp.c index e17ed424..eac55440 100644 --- a/scp.c +++ b/scp.c @@ -13666,35 +13666,40 @@ static t_svalue _op_gt (t_svalue data1, t_svalue data2) return data2 > data1; } +static int _i_strcmp (const char *s1, const char *s2) +{ +return ((sim_switches & SWMASK('I')) ? strcasecmp (s2, s1) : strcmp (s2, s1)); +} + static t_svalue _op_str_eq (const char *str1, const char *str2) { -return (0 == strcmp (str2, str1)); + +return (0 == _i_strcmp (str2, str1)); } static t_svalue _op_str_ne (const char *str1, const char *str2) { -return (0 != strcmp (str2, str1)); +return (0 != _i_strcmp (str2, str1)); } - static t_svalue _op_str_le (const char *str1, const char *str2) { -return (0 > strcmp (str2, str1)); +return (0 > _i_strcmp (str2, str1)); } static t_svalue _op_str_lt (const char *str1, const char *str2) { -return (0 >= strcmp (str2, str1)); +return (0 >= _i_strcmp (str2, str1)); } static t_svalue _op_str_ge (const char *str1, const char *str2) { -return (0 < strcmp (str2, str1)); +return (0 < _i_strcmp (str2, str1)); } static t_svalue _op_str_gt (const char *str1, const char *str2) { -return (0 <= strcmp (str2, str1)); +return (0 <= _i_strcmp (str2, str1)); } /*