X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8e54aaedb5329a49ffd9c5d50071f9c8cdd5c59e..eea4d01c65f9b29baa1193db762b4c6b8144af24:/src/stc/scintilla/include/PropSet.h diff --git a/src/stc/scintilla/include/PropSet.h b/src/stc/scintilla/include/PropSet.h index 62cd5da3a9..c95202174f 100644 --- a/src/stc/scintilla/include/PropSet.h +++ b/src/stc/scintilla/include/PropSet.h @@ -1,93 +1,26 @@ // Scintilla source code edit control /** @file PropSet.h - ** A Java style properties file module. + ** An interface to the methods needed for access to property sets inside lexers. **/ -// Copyright 1998-2002 by Neil Hodgson +// Copyright 1998-2009 by Neil Hodgson // The License.txt file describes the conditions under which this software may be distributed. #ifndef PROPSET_H #define PROPSET_H -#include "SString.h" -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 { -protected: - enum { hashRoots=31 }; - Property *props[hashRoots]; - Property *enumnext; - int enumhash; - static unsigned int HashString(const char *s, size_t len) { - unsigned int ret = 0; - while (len--) { - ret <<= 4; - ret ^= *s; - s++; - } - return ret; - } - static bool IncludesVar(const char *value, const char *key); -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 maxExpands=100); - 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); -}; +#ifdef SCI_NAMESPACE +namespace Scintilla { +#endif -/** - */ -class WordList { +class PropertyGet { public: - // Each word contains at least one character - a empty word acts as sentinel at the end. - char **words; - char **wordsNoCase; - char *list; - int len; - bool onlyLineEnds; ///< Delimited by any white space or only line ends - bool sorted; - int starts[256]; - WordList(bool onlyLineEnds_ = false) : - words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_), sorted(false) {} - ~WordList() { Clear(); } - operator bool() { return len ? true : false; } - char *operator[](int ind) { return words[ind]; } - void Clear(); - void Set(const char *s); - char *Allocate(int size); - void SetFromAllocated(); - bool InList(const char *s); - const char *GetNearestWord(const char *wordStart, int searchLen = -1, - bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1); - char *GetNearestWords(const char *wordStart, int searchLen=-1, - bool ignoreCase=false, char otherSeparator='\0'); + virtual char *ToString() const=0; // Caller must delete[] the return value + virtual int GetInt(const char *key, int defaultValue=0) const=0; + virtual ~PropertyGet() {} }; -inline bool IsAlphabetic(unsigned int ch) { - return ((ch >= 'A') && (ch <= 'Z')) || ((ch >= 'a') && (ch <= 'z')); +#ifdef SCI_NAMESPACE } +#endif #endif