From f66410042be43fa61b0f7b96758b39521b6f9ebf Mon Sep 17 00:00:00 2001 From: Mario Fink Date: Thu, 9 May 2019 10:35:31 +0200 Subject: [PATCH] channel-name case (in)sensitive lookup --- lib/tdm_ripper.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/tdm_ripper.hpp b/lib/tdm_ripper.hpp index c69dbb8..ab8ce72 100644 --- a/lib/tdm_ripper.hpp +++ b/lib/tdm_ripper.hpp @@ -225,7 +225,7 @@ public: int channelid = -1; for ( int i = 0; i < num_channels_group_[groupid]; i++) { - if ( channel_name_[obtain_channel_id(groupid,i)].compare(channel_name) == 0 ) + if ( comparestrings(channel_name_[obtain_channel_id(groupid,i)],channel_name) ) { channelid = i; } @@ -233,6 +233,20 @@ public: return channelid; } + bool comparestrings(std::string s1, std::string s2, bool case_sensitive = false) + { + if ( case_sensitive ) + { + return ( s1.compare(s2) == 0 ); + } + else + { + std::transform( s1.begin(), s1.end(), s1.begin(), ::tolower); + std::transform( s2.begin(), s2.end(), s2.begin(), ::tolower); + return ( s1.compare(s2) == 0 ); + } + } + void list_datatypes(); // convert array of chars to single integer or floating point double