From 7abf2faa20488877de24718ef830ec6ade81b08f Mon Sep 17 00:00:00 2001 From: Arystanbek Dyussenov Date: Thu, 9 Sep 2010 11:01:30 +0000 Subject: Bug #23715 in COLLADA exporter: prepend an '_' to the ID if it starts with an illegal character. Pointed out by Tom Haines. Thanks! --- source/blender/collada/DocumentExporter.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'source/blender/collada/DocumentExporter.cpp') diff --git a/source/blender/collada/DocumentExporter.cpp b/source/blender/collada/DocumentExporter.cpp index ae00942b89d..a5b4b1423bf 100644 --- a/source/blender/collada/DocumentExporter.cpp +++ b/source/blender/collada/DocumentExporter.cpp @@ -236,8 +236,14 @@ static std::string translate_id(const std::string &id) if (id.size() == 0) { return id; } std::string id_translated = id; - id_translated[0] = translate_start_name_map[(unsigned int)id_translated[0]]; - for (unsigned int i=1; i < id_translated.size(); i++) + int offset = 0; + // prepend '_' if the first character is illegal and not '_' already + if (id[0] != '_' && translate_start_name_map[(unsigned int)id[0]] == '_') + { + id_translated.insert(0, 1, '_'); + offset = 1; + } + for (unsigned int i=offset; i < id_translated.size(); i++) { id_translated[i] = translate_name_map[(unsigned int)id_translated[i]]; } -- cgit v1.2.3