#include "FilenameField.h" #include "nde.h" /* Mac OS X implementation of FilenameField only the equals operator will be case-sensitive. substring search, ends, starts, etc. will be case-insensitive, to make things like "filename ends .mp3" easier TODO: it'd be massive overhead, but it'd be more correct to check if the file system is actually case sensitive (for the path being searched) */ //--------------------------------------------------------------------------- FilenameField::FilenameField(CFStringRef Str) : StringField(Str) { Type = FIELD_FILENAME; } //--------------------------------------------------------------------------- FilenameField::FilenameField() { Type = FIELD_FILENAME; } //--------------------------------------------------------------------------- int FilenameField::Compare(Field *Entry) { if (!Entry) return -1; if (Entry->GetType() != GetType()) return 0; CFStringRef compareString = ((StringField*)Entry)->GetString(); if (!String && !compareString) return 0; if (!String && compareString) return 1; if (!compareString) return -1; return CFStringCompare(String, compareString, 0); } Field *FilenameField::Clone(Table *pTable) { FilenameField *clone = new FilenameField(String); clone->Pos = FIELD_CLONE; clone->ID = ID; clone->MaxSizeOnDisk = GetDataSize(); return clone; }