]> git.tdb.fi Git - libs/core.git/blobdiff - source/fmt.cpp
Move files around to prepare for assimilation into core
[libs/core.git] / source / fmt.cpp
diff --git a/source/fmt.cpp b/source/fmt.cpp
deleted file mode 100644 (file)
index e06f71a..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* $Id$
-
-This file is part of libmspstrings
-Copyright © 2006-2008 Mikko Rasa
-Distributed under the LGPL
-*/
-
-#include <msp/core/except.h>
-#include "fmt.h"
-
-using namespace std;
-
-namespace Msp {
-
-void Fmt::parse(const char *f)
-{
-       if(*f=='%') ++f;
-
-       for(; *f; ++f)
-       {
-               if(*f=='#')
-               {
-                       sbase = true;
-                       spoint = true;
-               }
-               else if(*f=='0')
-                       fillc = '0';
-               else if(*f=='-')
-                       align = LEFT;
-               else if(*f=='+')
-                       spos = true;
-               else
-                       break;
-       }
-
-       wd = 0;
-       for(; *f; ++f)
-       {
-               if(*f>='0' && *f<='9')
-                       wd = wd*10+(*f-'0');
-               else
-                       break;
-       }
-
-       if(*f=='.')
-       {
-               ++f;
-               prec = 0;
-               for(; *f; ++f)
-               {
-                       if(*f>='0' && *f<='9')
-                               prec = prec*10+(*f-'0');
-                       else
-                               break;
-               }
-       }
-
-       type = NUM;
-       if(*f=='d' || *f=='u')
-               base = DEC;
-       else if(*f=='x' || *f=='X')
-               base = HEX;
-       else if(*f=='o')
-               base = OCT;
-       else if(*f=='b')
-               base = BIN;
-       else if(*f=='e' || *f=='E')
-               fmode = SCI;
-       else if(*f=='f' || *f=='F')
-               fmode = FIXED;
-       else if(*f=='g' || *f=='G')
-               fmode = AUTOFLT;
-       else if(*f=='p' || *f=='P')
-       {
-               base = HEX;
-               sbase = true;
-       }
-       else if(*f=='c')
-               type = CHAR;
-       else if(*f=='s')
-               type = STR;
-       else if(*f=='i')
-               base = AUTOBASE;
-       else
-               throw InvalidParameterValue("Invalid conversion specifier");
-
-       if(*f=='E' || *f=='F' || *f=='G' || *f=='X' || *f=='P')
-               ucase = true;
-
-       ++f;
-
-       if(*f)
-               throw InvalidParameterValue("Extra characters in conversion specification");
-}
-
-Fmt &Fmt::reset()
-{
-       wd = 0;
-       prec = 6;
-       spos = false;
-       fillc = ' ';
-       base = DEC;
-       sbase = false;
-       fmode = AUTOFLT;
-       spoint = false;
-       align = RIGHT;
-       ucase = false;
-       type = STR;
-
-       return *this;
-}
-
-void Fmt::apply(ostream &out) const
-{
-       out.flags(((base==HEX) ? ios_base::hex : (base==OCT) ? ios_base::oct : ios_base::dec)
-               | ((fmode==SCI) ? ios_base::scientific : (fmode==FIXED) ? ios_base::fixed : ios_base::fmtflags(0))
-               | (fillc=='0' ? ios_base::internal : (align==LEFT) ? ios_base::left : ios_base::right)
-               | (sbase ? ios_base::showbase : ios_base::fmtflags(0))
-               | (spoint ? ios_base::showpoint : ios_base::fmtflags(0))
-               | (spos ? ios_base::showpos : ios_base::fmtflags(0))
-               | (ucase ? ios_base::uppercase : ios_base::fmtflags(0)));
-       out.fill(fillc);
-       out.width(wd);
-       out.precision(prec);
-}
-
-} // namespace Msp