mirror of
https://github.com/znc/znc.git
synced 2026-07-05 17:31:06 +02:00
Pulled in CString changes from my common repository to help facilitate the upcoming webmods changes
Changes include... - CString - Addition of LCString typedef to list<CString> Added four more args to CString::Token()... bool bAllowEmpty = false <-- This default of false is NOT backward compatible but seems way more intuitive const CString& sLeft = "" const CString& sRight = "" bool bTrimQuotes = true Added CString::OptionSplit() Added CString::QuoteSplit() Added two new args to CString::Split()... bool bTrimQuotes = true, bool bTrimWhiteSpace = false - CTemplate - Added new class CTemplateTagHandler to provide capability to add custom tags and vars Added var name pointer dereferencing in the form of <? VAR Name=*other_var ?> (use ** to start with a literal star) Added a list of paths that can be used to look for a given filename in multiple locations Added CTemplate::PrependPath() Added CTemplate::AppendPath() Added CTemplate::RemovePath() Added CTemplate::ClearPath() Added CTemplate::PrintString() for filling a CString& instead of a stream Added <? LT ?> which outputs a literal "<?" Added <? GT ?> which outputs a literal "?>" Added <? SETBLOCK ?> and <? ENDSETBLOCK ?> for setting a variable's value to the contents between the tags Added <? EXPAND ?> for expanding a filename to a path using the settable list of paths Added <? BREAK ?> and <? CONTINUE ?> inner loop tags Added <? EXIT ?> tag to stop processing Added <? DEBUG ?> tag for printing to DEBUG() Added REVERSE keyword to the <? LOOP ?> tag git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1537 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
+15
-3
@@ -13,12 +13,14 @@
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <list>
|
||||
#include <sys/types.h>
|
||||
|
||||
using std::map;
|
||||
using std::set;
|
||||
using std::string;
|
||||
using std::vector;
|
||||
using std::list;
|
||||
|
||||
#define _SQL(s) CString("'" + CString(s).Escape_n(CString::ESQL) + "'")
|
||||
#define _URL(s) CString("'" + CString(s).Escape_n(CString::EURL) + "'")
|
||||
@@ -29,6 +31,7 @@ class MCString;
|
||||
|
||||
typedef set<CString> SCString;
|
||||
typedef vector<CString> VCString;
|
||||
typedef list<CString> LCString;
|
||||
|
||||
static const unsigned char XX = 0xff;
|
||||
static const unsigned char base64_table[256] = {
|
||||
@@ -105,10 +108,19 @@ public:
|
||||
CString Right(unsigned int uCount) const;
|
||||
|
||||
CString FirstLine() const { return Token(0, false, "\n"); }
|
||||
CString Token(unsigned int uPos, bool bRest = false, const CString& sSep = " ") const;
|
||||
CString Token(unsigned int uPos, bool bRest = false, const CString& sSep = " ", bool bAllowEmpty = false, const CString& sLeft = "", const CString& sRight = "", bool bTrimQuotes = true) const;
|
||||
|
||||
unsigned int URLSplit(MCString& msRet) const;
|
||||
unsigned int Split(const CString& sDelim, VCString& vsRet, bool bAllowEmpty = true, const CString& sLeft = "", const CString& sRight = "") const;
|
||||
unsigned int Split(const CString& sDelim, SCString& ssRet, bool bAllowEmpty = true, const CString& sLeft = "", const CString& sRight = "") const;
|
||||
unsigned int OptionSplit(MCString& msRet, bool bUpperKeys = false) const;
|
||||
unsigned int QuoteSplit(VCString& vsRet) const;
|
||||
|
||||
unsigned int Split(const CString& sDelim, VCString& vsRet, bool bAllowEmpty = true,
|
||||
const CString& sLeft = "", const CString& sRight = "", bool bTrimQuotes = true,
|
||||
bool bTrimWhiteSpace = false) const;
|
||||
|
||||
unsigned int Split(const CString& sDelim, SCString& ssRet, bool bAllowEmpty = true,
|
||||
const CString& sLeft = "", const CString& sRight = "", bool bTrimQuotes = true,
|
||||
bool bTrimWhiteSpace = false) const;
|
||||
|
||||
static CString RandomString(unsigned int uLength);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user