/* $Id: utility.cpp,v 1.1.1.1 2005/07/07 15:05:59 oflebbe Exp $ Copyright (C) 2003 Olaf Flebbe, Science and Computing AG o.flebbe@science-computing.de This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program 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, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include #include #include "utility.h" mystring itos( int a) { std::wstringstream ostr; ostr << a; return ostr.str(); } mystring convertSlashes( const mystring& input) { mystring tmpInput = input; // replace / by \ - std::replace( tmpInput.begin(), tmpInput.end(), L'/', L'\\'); // collapse \\ to \ -- mystring::size_type a; while ((a = tmpInput.find( L"\\\\")) != mystring::npos) { tmpInput.replace( a, 2, L"\\"); } return tmpInput; } mystring searchAndReplace( const mystring& inputString, const mystring& registryKey, Registry ®, FILE *fp) { mystring tmpInputString = inputString; int i = 0; while (reg.exists( registryKey + itos( i))) { stringList searchReplace = reg.getValues( registryKey + itos( i)); if (searchReplace.size() != 2) { if (fp) { fprintf( fp, "registry key prependpath %d invalid\n", i); } continue; } mystring searchString = searchReplace.front(); searchReplace.pop_front(); mystring replaceString = searchReplace.front(); if (tmpInputString.size() < searchString.size()) continue; // check whether search matches if (std::equal( searchString.begin(), searchString.end(), tmpInputString.begin())) { tmpInputString.replace( 0, searchString.size(), replaceString); } i++; } return tmpInputString; }