]>
git.saurik.com Git - wxWidgets.git/blob - src/stc/scintilla/include/PropSet.h
1 // Scintilla source code edit control
3 ** A Java style properties file module.
5 // Copyright 1998-2002 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
12 bool EqualCaseInsensitive(const char *a
, const char *b
);
14 bool isprefix(const char *target
, const char *prefix
);
21 Property() : hash(0), key(0), val(0), next(0) {}
28 enum { hashRoots
=31 };
29 Property
*props
[hashRoots
];
32 static unsigned int HashString(const char *s
, size_t len
) {
41 static bool IncludesVar(const char *value
, const char *key
);
46 void Set(const char *key
, const char *val
, int lenKey
=-1, int lenVal
=-1);
47 void Set(const char *keyVal
);
48 void SetMultiple(const char *s
);
49 SString
Get(const char *key
);
50 SString
GetExpanded(const char *key
);
51 SString
Expand(const char *withVars
, int maxExpands
=100);
52 int GetInt(const char *key
, int defaultValue
=0);
53 SString
GetWild(const char *keybase
, const char *filename
);
54 SString
GetNewExpand(const char *keybase
, const char *filename
="");
56 char *ToString(); // Caller must delete[] the return value
57 bool GetFirst(char **key
, char **val
);
58 bool GetNext(char **key
, char **val
);
65 // Each word contains at least one character - a empty word acts as sentinel at the end.
70 bool onlyLineEnds
; ///< Delimited by any white space or only line ends
73 WordList(bool onlyLineEnds_
= false) :
74 words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_
), sorted(false) {}
75 ~WordList() { Clear(); }
76 operator bool() { return len
? true : false; }
77 char *operator[](int ind
) { return words
[ind
]; }
79 void Set(const char *s
);
80 char *Allocate(int size
);
81 void SetFromAllocated();
82 bool InList(const char *s
);
83 const char *GetNearestWord(const char *wordStart
, int searchLen
= -1,
84 bool ignoreCase
= false, SString wordCharacters
="");
85 char *GetNearestWords(const char *wordStart
, int searchLen
=-1,
86 bool ignoreCase
=false, char otherSeparator
='\0');
89 inline bool IsAlphabetic(unsigned int ch
) {
90 return ((ch
>= 'A') && (ch
<= 'Z')) || ((ch
>= 'a') && (ch
<= 'z'));