1
// Scintilla source code edit control
1
/* Scintilla source code edit control */
3
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.
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. */
49
51
void Set(const char *keyVal);
50
52
void Unset(const char *key, int lenKey=-1);
51
53
void SetMultiple(const char *s);
52
SString Get(const char *key);
53
SString GetExpanded(const char *key);
54
SString Expand(const char *withVars, int maxExpands=100);
55
int GetInt(const char *key, int defaultValue=0);
56
SString GetWild(const char *keybase, const char *filename);
57
SString GetNewExpand(const char *keybase, const char *filename="");
54
SString Get(const char *key) const;
55
SString GetExpanded(const char *key) const;
56
SString Expand(const char *withVars, int maxExpands=100) const;
57
int GetInt(const char *key, int defaultValue=0) const;
59
char *ToString(); // Caller must delete[] the return value
60
bool GetFirst(char **key, char **val);
61
bool GetNext(char **key, char **val);
62
static void SetCaseSensitiveFilenames(bool caseSensitiveFilenames_) {
63
caseSensitiveFilenames = caseSensitiveFilenames_;
59
char *ToString() const; /* Caller must delete[] the return value */
67
// copy-value semantics not implemented
62
/* copy-value semantics not implemented */
68
63
PropSet(const PropSet ©);
69
64
void operator=(const PropSet &assign);
76
// Each word contains at least one character - a empty word acts as sentinel at the end.
71
/* Each word contains at least one character - a empty word acts as sentinel at the end. */
81
bool onlyLineEnds; ///< Delimited by any white space or only line ends
75
bool onlyLineEnds; /**< Delimited by any white space or only line ends */
85
78
WordList(bool onlyLineEnds_ = false) :
86
words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_),
87
sorted(false), sortedNoCase(false) {}
79
words(0), list(0), len(0), onlyLineEnds(onlyLineEnds_),
88
82
~WordList() { Clear(); }
89
83
operator bool() { return len ? true : false; }
90
char *operator[](int ind) { return words[ind]; }
92
85
void Set(const char *s);
93
char *Allocate(int size);
94
void SetFromAllocated();
95
86
bool InList(const char *s);
96
87
bool InListAbbreviated(const char *s, const char marker);
97
const char *GetNearestWord(const char *wordStart, int searchLen,
98
bool ignoreCase = false, SString wordCharacters="", int wordIndex = -1);
99
char *GetNearestWords(const char *wordStart, int searchLen,
100
bool ignoreCase=false, char otherSeparator='\0', bool exactLen=false);
103
90
inline bool IsAlphabetic(unsigned int ch) {
104
91
return ((ch >= 'A') && (ch <= 'Z')) || ((ch >= 'a') && (ch <= 'z'));
109
// Visual C++ doesn't like the private copy idiom for disabling
110
// the default copy constructor and operator=, but it's fine.
99
/* Visual C++ doesn't like the private copy idiom for disabling
100
* the default copy constructor and operator=, but it's fine. */
111
101
#pragma warning(disable: 4511 4512)