X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Floadcanvas.cpp;h=6edf4e58c7fb408e17082836e7ffbf3d50cd753f;hb=75635270584b5775982adbd70250a0ebc7e3e76b;hp=9a02faac92d4c38c390e6e21672fa4825c7ed2a7;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/loadcanvas.cpp b/synfig-core/trunk/src/synfig/loadcanvas.cpp index 9a02faa..6edf4e5 100644 --- a/synfig-core/trunk/src/synfig/loadcanvas.cpp +++ b/synfig-core/trunk/src/synfig/loadcanvas.cpp @@ -5,16 +5,17 @@ ** $Id: loadcanvas.cpp,v 1.3 2005/01/04 23:40:44 darco Exp $ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -316,13 +317,7 @@ CanvasParser::parse_vector(xmlpp::Element *element,Canvas::Handle canvas) error(element, "Undefined value in "); return Vector(); } - xmlpp::TextNode *text=dynamic_cast(child->get_children().front()); - if(!text) - { - error(element,"I need a number, not an element!"); - return Vector(); - } - vect[0]=atof(text->get_content().c_str()); + vect[0]=atof(child->get_child_text()->get_content().c_str()); } else if(child->get_name()=="y") @@ -332,13 +327,7 @@ CanvasParser::parse_vector(xmlpp::Element *element,Canvas::Handle canvas) error(element, "Undefined value in "); return Vector(); } - xmlpp::TextNode *text=dynamic_cast(child->get_children().front()); - if(!text) - { - error(element,"I need a number, not an element!"); - return Vector(); - } - vect[1]=atof(text->get_content().c_str()); + vect[1]=atof(child->get_child_text()->get_content().c_str()); } else error_unexpected_element(child,child->get_name()); @@ -2254,11 +2243,15 @@ CanvasParser::parse_from_file(const String &file) } Canvas::Handle -CanvasParser::parse_from_file_as(const String &file,const String &as) +CanvasParser::parse_from_file_as(const String &file_,const String &as_) { CHECK_EXPIRE_TIME(); try { + ChangeLocale change_locale(LC_NUMERIC, "C"); + String file(unix_to_local_path(file_)); + String as(unix_to_local_path(as_)); + if(get_open_canvas_map().count(etl::absolute_path(as))) return get_open_canvas_map()[etl::absolute_path(as)]; @@ -2317,6 +2310,7 @@ CanvasParser::parse_from_string(const String &data) try { + ChangeLocale change_locale(LC_NUMERIC, "C"); filename=_(""); total_warnings_=0; xmlpp::DomParser parser;