X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Flisp%2Fwriter.cpp;h=63c5aa78101eaaa75252d9436c742faae1f34ed6;hb=c01aff7fe4229fe6677993dca8a3b075e7752382;hp=d2c7b1c5eef23a66aaa4e281b83a1b9a374e2a6d;hpb=308c84160b07024eed2d26f5c89e4ba3954193d8;p=supertux.git diff --git a/src/lisp/writer.cpp b/src/lisp/writer.cpp index d2c7b1c5e..63c5aa781 100644 --- a/src/lisp/writer.cpp +++ b/src/lisp/writer.cpp @@ -1,12 +1,10 @@ -// $Id$ -// // SuperTux // Copyright (C) 2006 Matthias Braun // -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -14,21 +12,20 @@ // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#include +// along with this program. If not, see . -#include +#include "lisp/writer.hpp" -#include "writer.hpp" -#include "physfs/physfs_stream.hpp" -#include "log.hpp" +#include "physfs/ofile_stream.hpp" +#include "util/log.hpp" -namespace lisp -{ +namespace lisp { -Writer::Writer(const std::string& filename) +Writer::Writer(const std::string& filename) : + out(), + out_owned(), + indent_depth(), + lists() { out = new OFileStream(filename); out_owned = true; @@ -36,7 +33,11 @@ Writer::Writer(const std::string& filename) out->precision(10); } -Writer::Writer(std::ostream* newout) +Writer::Writer(std::ostream* newout) : + out(), + out_owned(), + indent_depth(), + lists() { out = newout; out_owned = false; @@ -93,22 +94,22 @@ Writer::end_list(const std::string& listname) } void -Writer::write_int(const std::string& name, int value) +Writer::write(const std::string& name, int value) { indent(); *out << '(' << name << ' ' << value << ")\n"; } void -Writer::write_float(const std::string& name, float value) +Writer::write(const std::string& name, float value) { indent(); *out << '(' << name << ' ' << value << ")\n"; } void -Writer::write_string(const std::string& name, const std::string& value, - bool translatable) +Writer::write(const std::string& name, const std::string& value, + bool translatable) { indent(); *out << '(' << name; @@ -124,15 +125,15 @@ Writer::write_string(const std::string& name, const std::string& value, } void -Writer::write_bool(const std::string& name, bool value) +Writer::write(const std::string& name, bool value) { indent(); *out << '(' << name << ' ' << (value ? "#t" : "#f") << ")\n"; } void -Writer::write_int_vector(const std::string& name, - const std::vector& value) +Writer::write(const std::string& name, + const std::vector& value) { indent(); *out << '(' << name; @@ -142,8 +143,8 @@ Writer::write_int_vector(const std::string& name, } void -Writer::write_int_vector(const std::string& name, - const std::vector& value) +Writer::write(const std::string& name, + const std::vector& value) { indent(); *out << '(' << name; @@ -153,8 +154,8 @@ Writer::write_int_vector(const std::string& name, } void -Writer::write_float_vector(const std::string& name, - const std::vector& value) +Writer::write(const std::string& name, + const std::vector& value) { indent(); *out << '(' << name; @@ -164,6 +165,19 @@ Writer::write_float_vector(const std::string& name, } void +Writer::write(const std::string& name, + const std::vector& value) +{ + indent(); + *out << '(' << name; + for(std::vector::const_iterator i = value.begin(); i != value.end(); ++i) { + *out << " "; + write_escaped_string(*i); + } + *out << ")\n"; +} + +void Writer::write_escaped_string(const std::string& str) { *out << '"'; @@ -186,3 +200,5 @@ Writer::indent() } } // end of namespace lisp + +/* EOF */