]> git.tdb.fi Git - libs/core.git/blobdiff - source/strings/format.cpp
Remove deprecated things
[libs/core.git] / source / strings / format.cpp
index dfd3800841033cbafba518b9b1417f193c30ab77..773eefac7fc30698bab7c8d6ebfca8fb1188de18 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of libmspstrings
-Copyright © 2006-2007 Mikko Rasa
-Distributed under the LGPL
-*/
-
 #include "format.h"
 
 using namespace std;
@@ -18,23 +11,28 @@ Formatter::Formatter(const string &f):
        advance();
 }
 
-/**
-Returns the result of the formatting operation.  Will throw if not enough
-values have been fed to the formatter.
-*/
+Formatter::Formatter(const Formatter &other):
+       fmt(other.fmt),
+       pos(fmt.begin()+(other.pos-other.fmt.begin())),
+       result(other.result)
+{ }
+
+Formatter &Formatter::operator=(const Formatter &other)
+{
+       fmt = other.fmt;
+       pos = fmt.begin()+(other.pos-other.fmt.begin());
+       result = other.result;
+       return *this;
+}
+
 const string &Formatter::str() const
 {
        if(pos!=fmt.end())
-               throw Exception("Too few arguments for format");
+               throw format_error("Too few arguments for format");
 
        return result;
 }
 
-/**
-Advances the pos iterator to the next conversion, adding literal characters to
-the result.  The iterator is left at the second character of the conversion
-(i.e. after the %).
-*/
 void Formatter::advance()
 {
        for(; pos!=fmt.end(); ++pos)
@@ -43,7 +41,7 @@ void Formatter::advance()
                {
                        ++pos;
                        if(pos==fmt.end())
-                               throw Exception("Malformed format string");
+                               throw format_error("Malformed format string");
                        if(*pos!='%')
                                break;
                }
@@ -52,14 +50,10 @@ void Formatter::advance()
        }
 }
 
-/**
-Reads the next conversion from the format string and returns a corresponding
-Fmt object.
-*/
 Fmt Formatter::get_conversion()
 {
        if(pos==fmt.end())
-               throw Exception("Too many arguments for format");
+               throw format_error("Too many arguments for format");
 
        string::iterator i = pos;
        for(; i!=fmt.end(); ++i)
@@ -67,7 +61,7 @@ Fmt Formatter::get_conversion()
                        break;
 
        if(i==fmt.end())
-               throw Exception("Malformed format string");
+               throw format_error("Malformed format string");
 
        ++i;
        string c(pos, i);