diff --git a/Source/Modules/scilab.cxx b/Source/Modules/scilab.cxx index cb657a813..1b28fd78c 100644 --- a/Source/Modules/scilab.cxx +++ b/Source/Modules/scilab.cxx @@ -158,6 +158,7 @@ public: // Add builder header code if (generateBuilder) { + createBuilderFile(); startBuilderCode(moduleName, outputFilename); } @@ -189,7 +190,7 @@ public: // Add Builder footer code and save if (generateBuilder) { terminateBuilderCode(); - saveBuilder(); + saveBuilderFile(); } // Add initialization function to init section @@ -222,6 +223,15 @@ public: return SWIG_OK; } + /* ------------------------------------------------------------------------ + * emitWrapper() + * ----------------------------------------------------------------------*/ + void emitBanner(File *f) { + Printf(f, "// ----------------------------------------------------------------------------\n"); + Swig_banner_target_lang(f, "// "); + Printf(f, "// ----------------------------------------------------------------------------- */\n\n"); + } + /* ------------------------------------------------------------------------ * functionWrapper() * ----------------------------------------------------------------------*/ @@ -643,6 +653,16 @@ public: return Language::enumvalueDeclaration(node); } + void createBuilderFile() { + String *builderFilename = NewStringf("%sbuilder.sce", SWIG_output_directory()); + builderFile = NewFile(builderFilename, "w", SWIG_output_files()); + if (!builderFile) { + FileErrorDisplay(builderFilename); + SWIG_exit(EXIT_FAILURE); + } + emitBanner(builderFile); + } + void startBuilderCode(String *moduleName, String *outputFilename) { builderFunctionCount = 0; builderCode = NewString(""); @@ -709,14 +729,8 @@ public: Printf(builderCode, "exit(ret)"); } - void saveBuilder() { + void saveBuilderFile() { // Save builder - String *builderFilename = NewStringf("%sbuilder.sce", SWIG_output_directory()); - builderFile = NewFile(builderFilename, "w", SWIG_output_files()); - if (!builderFile) { - FileErrorDisplay(builderFilename); - SWIG_exit(EXIT_FAILURE); - } Printv(builderFile, builderCode, NIL); Delete(builderFile); }