89 lines
1.7 KiB
C++
Executable File
89 lines
1.7 KiB
C++
Executable File
/*
|
|
* This file is a part of CMSLU -- Content Management System like Unix
|
|
* and is not publicly distributed
|
|
*
|
|
* Copyright (c) 2010, Tomasz Sowa
|
|
* All rights reserved.
|
|
*
|
|
*/
|
|
|
|
|
|
#include "../core/data.h"
|
|
#include "../core/misc.h"
|
|
#include "misc.h"
|
|
|
|
|
|
namespace TemplatesMisc
|
|
{
|
|
|
|
// those functions from here are used in the second thread too
|
|
|
|
|
|
void Read(Patterns & patterns, size_t pat, LocaleFilter & locale_filter, const std::string & dir, const char * file, bool delete_white)
|
|
{
|
|
size_t i;
|
|
size_t len = patterns.size();
|
|
Locale::Lang old_lang = data.locale.GetLang();
|
|
|
|
|
|
for(i=0 ; i<len ; ++i)
|
|
{
|
|
if( pat < patterns[i].size() )
|
|
{
|
|
patterns[i][pat].delete_all_white = delete_white;
|
|
patterns[i][pat].Directory(dir);
|
|
patterns[i][pat].ParseFile(file);
|
|
|
|
Locale::Lang new_lang = static_cast<Locale::Lang>(i);
|
|
data.locale.SetLang(new_lang);
|
|
|
|
locale_filter.Filter(patterns[i][pat], data.locale);
|
|
|
|
log << "Read pattern: " << dir << "/" << file << " for lang: " << data.locale.LangToStr(new_lang) << logend;
|
|
}
|
|
}
|
|
|
|
data.locale.SetLang(old_lang);
|
|
}
|
|
|
|
|
|
|
|
void Read(Patterns & patterns, size_t pat, LocaleFilter & locale_filter, const char * file, bool delete_white)
|
|
{
|
|
std::string temp = data.templates_dir;
|
|
temp += '/';
|
|
temp += file;
|
|
|
|
|
|
if( IsFile(temp) )
|
|
{
|
|
Read(patterns, pat, locale_filter, data.templates_dir, file, delete_white);
|
|
}
|
|
else
|
|
{
|
|
Read(patterns, pat, locale_filter, data.templates_dir_default, file, delete_white);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void ClearPatterns(Patterns & patterns, size_t len)
|
|
{
|
|
size_t loc, pat;
|
|
|
|
patterns.resize(Locale::lang_unknown);
|
|
|
|
for(loc=0 ; loc < static_cast<size_t>(Locale::lang_unknown) ; ++loc)
|
|
{
|
|
patterns[loc].resize(len);
|
|
|
|
for(pat=0 ; pat<len ; ++pat)
|
|
patterns[loc][pat].Clear();
|
|
}
|
|
}
|
|
|
|
|
|
} // namespace TemplatesMisc
|
|
|
|
|