]>
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 bool caseSensitiveFilenames
; 
  33         static unsigned int HashString(const char *s
, size_t len
) { 
  42         static bool IncludesVar(const char *value
, const char *key
); 
  48         void Set(const char *key
, const char *val
, int lenKey
=-1, int lenVal
=-1); 
  49         void Set(const char *keyVal
); 
  50         void Unset(const char *key
, int lenKey
=-1); 
  51         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
=""); 
  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_
; 
  67         // copy-value semantics not implemented 
  68         PropSet(const PropSet 
©
); 
  69         void operator=(const PropSet 
&assign
); 
  76         // 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 
  85         WordList(bool onlyLineEnds_ 
= false) : 
  86                 words(0), wordsNoCase(0), list(0), len(0), onlyLineEnds(onlyLineEnds_
), 
  87                 sorted(false), sortedNoCase(false) {} 
  88         ~WordList() { Clear(); } 
  89         operator bool() { return len 
? true : false; } 
  90         char *operator[](int ind
) { return words
[ind
]; } 
  92         void Set(const char *s
); 
  93         char *Allocate(int size
); 
  94         void SetFromAllocated(); 
  95         bool InList(const char *s
); 
  96         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 inline bool IsAlphabetic(unsigned int ch
) { 
 104         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. 
 111 #pragma warning(disable: 4511 4512)