123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #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;
- }
|