/*
* synergy -- mouse and keyboard sharing utility
* Copyright (C) 2014 Bolton Software Ltd.
*
* This package is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* found in the file COPYING that should have accompanied this file.
*
* This package is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
#include "base/String.h"
#include
#include
void
find_replace_all(
CString& subject,
const CString& find,
const CString& replace)
{
size_t pos = 0;
while ((pos = subject.find(find, pos)) != CString::npos) {
subject.replace(pos, find.length(), replace);
pos += replace.length();
}
}
CString
string_format(const std::string fmt, ...)
{
int size = 100;
std::string str;
va_list ap;
while (true) {
str.resize(size);
va_start(ap, fmt);
int n = vsnprintf((char *)str.c_str(), size, fmt.c_str(), ap);
va_end(ap);
if (n > -1 && n < size) {
str.resize(n);
return str;
}
if (n > -1) {
size = n + 1;
}
else {
size *= 2;
}
}
return str;
}