- Implement PFX_NTC_CASE_MATCH deletions in RtlRemoveUnicodePrefix Modified: trunk/reactos/lib/rtl/unicodeprefix.c _____
Modified: trunk/reactos/lib/rtl/unicodeprefix.c --- trunk/reactos/lib/rtl/unicodeprefix.c 2005-11-07 01:01:29 UTC (rev 19033) +++ trunk/reactos/lib/rtl/unicodeprefix.c 2005-11-07 04:23:28 UTC (rev 19034) @@ -175,7 +175,28 @@
RtlRemoveUnicodePrefix(PUNICODE_PREFIX_TABLE PrefixTable, PUNICODE_PREFIX_TABLE_ENTRY PrefixTableEntry) { - UNIMPLEMENTED; + PUNICODE_PREFIX_TABLE_ENTRY Entry; + + /* Erase the last entry */ + PrefixTable->LastNextEntry = NULL; + + /* Check if this was a Case Match Entry */ + if (PrefixTableEntry->NodeTypeCode == PFX_NTC_CASE_MATCH) + { + /* Get the case match entry */ + Entry = PrefixTableEntry->CaseMatch; + + /* Now loop until we find the one matching what the caller sent */ + while (Entry->CaseMatch != PrefixTableEntry) Entry = Entry->CaseMatch; + + /* We found the entry that was sent, link them to delete this entry */ + Entry->CaseMatch = PrefixTableEntry->CaseMatch; + } + else if ((PrefixTableEntry->NodeTypeCode == PFX_NTC_ROOT) || + (PrefixTableEntry->NodeTypeCode == PFX_NTC_CHILD)) + { + /* FIXME */ + } }
/* EOF */