Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArystanbek Dyussenov <arystan.d@gmail.com>2010-09-09 15:01:30 +0400
committerArystanbek Dyussenov <arystan.d@gmail.com>2010-09-09 15:01:30 +0400
commit7abf2faa20488877de24718ef830ec6ade81b08f (patch)
tree4fb22e152bac925adc60df09f09f11ffae30efb7
parentad48fd1db981ca9f9e9e02a5f1f4c136740ae877 (diff)
Bug #23715 in COLLADA exporter: prepend an '_' to the ID if it starts with an illegal character.
Pointed out by Tom Haines. Thanks!
-rw-r--r--source/blender/collada/DocumentExporter.cpp10
1 files changed, 8 insertions, 2 deletions
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]];
}