mirror of
https://github.com/anope/anope.git
synced 2026-06-28 13:16:38 +02:00
Merge commit 'cbx/anopeng-config' into anopeng-config
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@1429 5417fbe8-f217-4b02-8779-1006273d7864
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Copyright (C) 2002-2008 InspIRCd Development Team
|
||||
* Copyright (C) 2008 Anope Team <info@anope.org>
|
||||
*
|
||||
* Please read COPYING and README for further details.
|
||||
*
|
||||
* These classes have been copied from InspIRCd and modified
|
||||
* for use in Anope.
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hashcomp.h"
|
||||
|
||||
sepstream::sepstream(const std::string &source, char seperator) : tokens(source), sep(seperator)
|
||||
{
|
||||
last_starting_position = n = tokens.begin();
|
||||
}
|
||||
|
||||
bool sepstream::GetToken(std::string &token)
|
||||
{
|
||||
std::string::iterator lsp = last_starting_position;
|
||||
|
||||
while (n != tokens.end())
|
||||
{
|
||||
if (*n == sep || n + 1 == tokens.end())
|
||||
{
|
||||
last_starting_position = n + 1;
|
||||
token = std::string(lsp, n + 1 == tokens.end() ? n + 1 : ++n);
|
||||
|
||||
while (token.length() && token.find_last_of(sep) == token.length() - 1)
|
||||
token.erase(token.end() - 1);
|
||||
|
||||
if (token.empty())
|
||||
++n;
|
||||
|
||||
return n == tokens.end() ? false : true;
|
||||
}
|
||||
|
||||
++n;
|
||||
}
|
||||
|
||||
token = "";
|
||||
return false;
|
||||
}
|
||||
|
||||
const std::string sepstream::GetRemaining()
|
||||
{
|
||||
return std::string(n, tokens.end());
|
||||
}
|
||||
|
||||
bool sepstream::StreamEnd()
|
||||
{
|
||||
return n + 1 == tokens.end();
|
||||
}
|
||||
Reference in New Issue
Block a user