X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fdatetime.cpp;h=f2d85e906a3566b50528f0acf41e1338e54b708a;hb=4430e7762844c66428b6f822288beb71b7f82b95;hp=7d3d4affedccf593a3ed3e4cca22cb09af654700;hpb=d8f51eac91f86a1e00a05a5058a8fa9eb8732464;p=fms.git diff --git a/src/datetime.cpp b/src/datetime.cpp index 7d3d4af..f2d85e9 100644 --- a/src/datetime.cpp +++ b/src/datetime.cpp @@ -14,7 +14,7 @@ DateTime::DateTime() DateTime::DateTime(const time_t &timet) { - Set(timet); + SetT(timet); } DateTime::DateTime(const struct tm *stm) @@ -36,19 +36,11 @@ void DateTime::Add(const int seconds, const int minutes, const int hours, const std::string DateTime::Format(const std::string &formatstring) const { - std::string returnval=""; - char *str=new char[512]; - memset(str,0,512); + std::vector str(256,0); - strftime(str,511,formatstring.c_str(),&m_tm); + size_t len=strftime(&str[0],str.size()-1,formatstring.c_str(),&m_tm); - if(str) - { - returnval=str; - delete [] str; - } - - return returnval; + return std::string(str.begin(),str.begin()+len); } void DateTime::Normalize() @@ -207,7 +199,7 @@ void DateTime::Set(const int year, const int month, const int day, const int hou Normalize(); } -void DateTime::Set(const time_t &timet) +void DateTime::SetT(const time_t &timet) { m_timet=timet; @@ -226,7 +218,7 @@ void DateTime::Set(const std::string &datestring) { int year,month,day,hour,minute,second; std::vector tokens; - int vecpos; + std::vector::size_type vecpos; int tempint; year=month=day=hour=minute=second=-1;