Fixed bug 2694067.

git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@1138 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
rich_sposato 2011-10-04 23:42:48 +00:00
parent c8216caa6c
commit 88ba6e783c
2 changed files with 54 additions and 6 deletions

View file

@ -66,27 +66,51 @@ namespace Loki
PrintfState<std::FILE*, char> Printf(const char* format) {
return PrintfState<std::FILE*, char>(stdout, format);
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format );
::std::fwrite( buffer.c_str(), 1, buffer.size(), stdout );
PrintfState< std::FILE *, char > printState2 = state1.ChangeDevice( stdout );
return printState2;
}
PrintfState<std::FILE*, char> Printf(const std::string& format) {
return PrintfState<std::FILE*, char>(stdout, format.c_str());
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format.c_str() );
::std::fwrite( buffer.c_str(), 1, buffer.size(), stdout );
PrintfState< std::FILE *, char > printState2 = state1.ChangeDevice( stdout );
return printState2;
}
PrintfState<std::FILE*, char> FPrintf(std::FILE* f, const char* format) {
return PrintfState<std::FILE*, char>(f, format);
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format );
::std::fwrite( buffer.c_str(), 1, buffer.size(), f );
PrintfState< std::FILE *, char > printState2 = state1.ChangeDevice( f );
return printState2;
}
PrintfState<std::FILE*, char> FPrintf(std::FILE* f, const std::string& format) {
return PrintfState<std::FILE*, char>(f, format.c_str());
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format.c_str() );
::std::fwrite( buffer.c_str(), 1, buffer.size(), f );
PrintfState< std::FILE *, char > printState2 = state1.ChangeDevice( f );
return printState2;
}
PrintfState<std::ostream&, char> FPrintf(std::ostream& f, const char* format) {
return PrintfState<std::ostream&, char>(f, format);
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format );
f.write( buffer.c_str(), buffer.size() );
PrintfState< ::std::ostream &, char > printState2 = state1.ChangeDevice< ::std::ostream & >( f );
return printState2;
}
PrintfState<std::ostream&, char> FPrintf(std::ostream& f, const std::string& format) {
return PrintfState<std::ostream&, char>(f, format.c_str());
::std::string buffer;
const PrintfState< ::std::string &, char > state1( buffer, format.c_str() );
f.write( buffer.c_str(), buffer.size() );
PrintfState< std::ostream &, char > printState2 = state1.ChangeDevice< ::std::ostream & >( f );
return printState2;
}
PrintfState<std::string&, char> SPrintf(std::string& s, const char* format) {