From 340d597440f27ac7c7ad7a9493cc7cad46ba48c5 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Thu, 23 Apr 2020 15:55:03 +0200 Subject: Add cc4group.setEntryNameMatchingCallback --- src/cc4group.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/cc4group.c') diff --git a/src/cc4group.c b/src/cc4group.c index cb37064..ad840f0 100644 --- a/src/cc4group.c +++ b/src/cc4group.c @@ -266,6 +266,9 @@ static void cc4group_copyErrorInformation(const CC4Group* const src, CC4Group* c static const CC4Group_WarningCallback cc4group_defaultWarningCallback = cc4group_printToStderrWarningCallback; static CC4Group_WarningCallback cc4group_warn = cc4group_defaultWarningCallback; +static const CC4Group_EntryNameMatchingCallback cc4group_defaultEntryNameMatchingCallback = strcmp; +static CC4Group_EntryNameMatchingCallback cc4group_namecmp = cc4group_defaultEntryNameMatchingCallback; + #define AddCleanUpJob(func, data) CleanUpJobListPrepend(this->cleanupJobs, (CC4Group_CleanupJob){(CC4Group_CleanupFunc)func, data}); static void memScrambleHeader(uint8_t* const data) @@ -1958,7 +1961,7 @@ static GroupEntryListEntry* cc4group_getChildListEntryByPath(CC4Group* const thi bool found = false; ForeachGroupEntry(children) { - if(strcmp(entry->value.core.FileName, part) == 0) + if(cc4group_namecmp(part, entry->value.core.FileName) == 0) { currentParent = &entry->value; listEntry = entry; @@ -2296,6 +2299,11 @@ static void cc4group_setWarningCallback(const CC4Group_WarningCallback warningCa cc4group_warn = (warningCallback == NULL) ? cc4group_defaultWarningCallback : warningCallback; } +static void cc4group_setEntryNameMatchingCallback(const CC4Group_EntryNameMatchingCallback matchingCallback) +{ + cc4group_namecmp = (matchingCallback == NULL) ? cc4group_defaultEntryNameMatchingCallback : matchingCallback; +} + static const char* cc4group_getErrorMessage(CC4Group* const this) { assert(this); @@ -3450,6 +3458,7 @@ CC4Group_API cc4group = { .setTmpMemoryStrategy = cc4group_setTmpMemoryStrategy, .setWarningCallback = cc4group_setWarningCallback, + .setEntryNameMatchingCallback = cc4group_setEntryNameMatchingCallback, .new = cc4group_new, -- cgit v1.2.3-54-g00ecf