From f7d2c07c102d940727b0f053864c04ed32a76ff8 Mon Sep 17 00:00:00 2001 From: Kirill Volinsky Date: Sat, 13 Oct 2012 09:49:24 +0000 Subject: Quotes: folders restructurization git-svn-id: http://svn.miranda-ng.org/main/trunk@1905 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Quotes/src/CreateFilePath.cpp | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 protocols/Quotes/src/CreateFilePath.cpp (limited to 'protocols/Quotes/src/CreateFilePath.cpp') diff --git a/protocols/Quotes/src/CreateFilePath.cpp b/protocols/Quotes/src/CreateFilePath.cpp new file mode 100644 index 0000000000..23c0c345b0 --- /dev/null +++ b/protocols/Quotes/src/CreateFilePath.cpp @@ -0,0 +1,45 @@ +#include "StdAfx.h" +#include "CreateFilePath.h" + +#include +#include "ModuleInfo.h" + +namespace +{ + TCHAR replace_invalid_symbol(TCHAR chr) + { + TCHAR InvaliSymbols[] = {_T('\\'),_T('/'),_T(':'),_T('*'),_T('?'),_T('"'),_T('<'),_T('>'),_T('|')}; + for(int i = 0; i < sizeof(InvaliSymbols)/sizeof(InvaliSymbols[0]);++i) + { + if(chr == InvaliSymbols[i]) + { + return _T('_'); + } + } + + return chr; + } + + void prepare_name(tstring& rsName) + { + std::transform(rsName.begin(),rsName.end(),rsName.begin(),boost::bind(replace_invalid_symbol,_1)); + } +} + +tstring CreateFilePath(const tstring& rsName) +{ + TCHAR szPath[_MAX_PATH]; + ::GetModuleFileName(g_hInstance,szPath,_MAX_PATH); + + TCHAR* p = _tcsrchr(szPath,_T('\\')); + if(p) + { + *p = 0; + } + + tstring s(rsName); + prepare_name(s); + tostringstream o; + o << szPath << _T("\\Quotes\\") << s; + return o.str(); +} \ No newline at end of file -- cgit v1.2.3