assimp_cmd: fix possible crash in assimp export if the file can be imported, cosmetic fixes.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@935 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2011-04-03 11:57:57 +00:00
parent f8add9bb22
commit d85c16b52f
2 changed files with 14 additions and 11 deletions

View File

@ -128,7 +128,7 @@ int Assimp_Export(const char* const* params, unsigned int num)
if (outfi == SIZE_MAX) { if (outfi == SIZE_MAX) {
// still no match -> failure // still no match -> failure
printf("assimp export: no output format specified and I failed to guess it"); printf("assimp export: no output format specified and I failed to guess it\n");
return -23; return -23;
} }
} }
@ -152,6 +152,9 @@ int Assimp_Export(const char* const* params, unsigned int num)
// import the model // import the model
const aiScene* scene = ImportModel(import,in); const aiScene* scene = ImportModel(import,in);
if (!scene) {
return -39;
}
// derive the final file name // derive the final file name
out += "."+outext; out += "."+outext;
@ -160,7 +163,7 @@ int Assimp_Export(const char* const* params, unsigned int num)
if(!ExportModel(scene, import, out,e->id)) { if(!ExportModel(scene, import, out,e->id)) {
return -25; return -25;
} }
printf("assimp export: wrote output file: %s",out.c_str()); printf("assimp export: wrote output file: %s\n",out.c_str());
return 0; return 0;
} }

View File

@ -62,14 +62,13 @@ const char* AICMD_MSG_HELP =
#ifndef ASSIMP_BUILD_NO_EXPORT #ifndef ASSIMP_BUILD_NO_EXPORT
" \texport - Export a file to one of the supported output formats\n" " \texport - Export a file to one of the supported output formats\n"
" \tlistexport - List all supported export formats\n" " \tlistexport - List all supported export formats\n"
" \tknowexport - Check whether a particular export format is supported\n"
" \texportinfo - Show basic information on a specific export format\n" " \texportinfo - Show basic information on a specific export format\n"
#endif #endif
" \textract - Extract embedded texture images\n" " \textract - Extract embedded texture images\n"
" \tdump - Convert models to a binary or textual dump (ASSBIN/ASSXML)\n" " \tdump - Convert models to a binary or textual dump (ASSBIN/ASSXML)\n"
" \tcmpdump - Compare dumps created using \'assimp dump <file> -s ...\'\n" " \tcmpdump - Compare dumps created using \'assimp dump <file> -s ...\'\n"
" \tversion - Display Assimp version\n" " \tversion - Display Assimp version\n"
"\n\n Use \'assimp <verb> --help\' for detailed help on a command.\n" "\n Use \'assimp <verb> --help\' for detailed help on a command.\n"
; ;
/*extern*/ Assimp::Importer* globalImporter = NULL; /*extern*/ Assimp::Importer* globalImporter = NULL;
@ -135,7 +134,7 @@ int main (int argc, char* argv[])
aiString s; aiString s;
imp.GetExtensionList(s); imp.GetExtensionList(s);
printf("%s",s.data); printf("%s\n",s.data);
return 0; return 0;
} }
@ -153,29 +152,30 @@ int main (int argc, char* argv[])
} }
} }
printf("%s",s.data); printf("%s\n",s.data);
return 0; return 0;
} }
// assimp exportinfo // assimp exportinfo
// stat an export format // stat an export format
if (! strcmp(argv[1], "exportinfo")) { if (! strcmp(argv[1], "exportinfo")) {
aiString s; aiString s;
if (argc<3) { if (argc<3) {
printf("Expected file format id"); printf("Expected file format id\n");
return -11; return -11;
} }
for(size_t i = 0, end = exp.GetExportFormatCount(); i < end; ++i) { for(size_t i = 0, end = exp.GetExportFormatCount(); i < end; ++i) {
const aiExportFormatDesc* const e = exp.GetExportFormatDescription(i); const aiExportFormatDesc* const e = exp.GetExportFormatDescription(i);
if (!strcmp(e->id,argv[2])) { if (!strcmp(e->id,argv[2])) {
printf("%s\n%s\n%s",e->id,e->fileExtension,e->description); printf("%s\n%s\n%s\n",e->id,e->fileExtension,e->description);
return 0; return 0;
} }
} }
printf("Unknown file format id: %s",argv[2]); printf("Unknown file format id: \'%s\'\n",argv[2]);
return -12; return -12;
} }
@ -195,7 +195,7 @@ int main (int argc, char* argv[])
return -10; return -10;
} }
const bool b = imp.IsExtensionSupported(argv[2]); const bool b = imp.IsExtensionSupported(argv[2]);
printf("File extension %s is %sknown",argv[2],(b?"":"not ")); printf("File extension \'%s\' is %sknown\n",argv[2],(b?"":"not "));
return b?0:-1; return b?0:-1;
} }