-bool EqualCaseInsensitive(const char *a, const char *b);
-
-bool isprefix(const char *target, const char *prefix);
-
-struct Property {
- unsigned int hash;
- char *key;
- char *val;
- Property *next;
- Property() : hash(0), key(0), val(0), next(0) {}
-};
-
-/**
- */
-class PropSet {
-private:
- enum { hashRoots=31 };
- Property *props[hashRoots];
- Property *enumnext;
- int enumhash;
-public:
- PropSet *superPS;
- PropSet();
- ~PropSet();
- void Set(const char *key, const char *val, int lenKey=-1, int lenVal=-1);
- void Set(const char *keyVal);
- void SetMultiple(const char *s);
- SString Get(const char *key);
- SString GetExpanded(const char *key);
- SString Expand(const char *withVars);
- int GetInt(const char *key, int defaultValue=0);
- SString GetWild(const char *keybase, const char *filename);
- SString GetNewExpand(const char *keybase, const char *filename="");
- void Clear();
- char *ToString(); // Caller must delete[] the return value
- bool GetFirst(char **key, char **val);
- bool GetNext(char **key, char **val);
-};