aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/PropSet.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/PropSet.h')
-rw-r--r--include/PropSet.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/include/PropSet.h b/include/PropSet.h
index a5473915c..9766aa861 100644
--- a/include/PropSet.h
+++ b/include/PropSet.h
@@ -8,6 +8,11 @@
bool EqualCaseInsensitive(const char *a, const char *b);
+#if PLAT_WIN
+#define strcasecmp stricmp
+#define strncasecmp strnicmp
+#endif
+
// Define another string class.
// While it would be 'better' to use std::string, that doubles the executable size.
@@ -207,13 +212,14 @@ class WordList {
public:
// Each word contains at least one character - a empty word acts as sentinal 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), list(0), len(0), onlyLineEnds(onlyLineEnds_), sorted(false) {}
+ words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_), sorted(false) {}
~WordList() { Clear(); }
operator bool() { return words ? true : false; }
const char *operator[](int ind) { return words[ind]; }
@@ -222,6 +228,12 @@ public:
char *Allocate(int size);
void SetFromAllocated();
bool InList(const char *s);
+ const char *GetNearestWord(const char *wordStart, int searchLen = -1, bool ignoreCase = false);
+ char *GetNearestWords(const char *wordStart, int searchLen = -1, bool ignoreCase = false);
};
+inline bool nonFuncChar(char ch) {
+ return strchr("\t\n\r !\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~", ch) != NULL;
+}
+
#endif