summaryrefslogtreecommitdiffstats
path: root/src/cc4group.c
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2020-04-23 15:55:03 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2020-04-23 15:59:48 +0200
commit340d597440f27ac7c7ad7a9493cc7cad46ba48c5 (patch)
treeaf746826786e26a96369381f6a427597e1270473 /src/cc4group.c
parent2288b901243d626b106fb45293d39d32006b04aa (diff)
downloadcc4group-340d597440f27ac7c7ad7a9493cc7cad46ba48c5.tar.gz
cc4group-340d597440f27ac7c7ad7a9493cc7cad46ba48c5.zip
Add cc4group.setEntryNameMatchingCallback
Diffstat (limited to 'src/cc4group.c')
-rw-r--r--src/cc4group.c11
1 files changed, 10 insertions, 1 deletions
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,