Robert Stone
-
2014-08-16
- assigned_to: Robert Stone
- Group: -->
Perl wrapper in director mode uses module name for an include guard,
which doesn't work for nested classname, viz #ifndef SWIG_Foo::Bar_WRAP_H_
Move up the underscore_module definition and use that instead.
Anthony
--- Source/Modules/perl5.cxx.Orig 2014-06-04 08:00:18.000000000 -0400 +++ Source/Modules/perl5.cxx 2014-08-08 21:16:16.547289933 -0400 @@ -342,11 +342,18 @@ Node *options = Getattr(mod, "options"); module = Copy(Getattr(n,"name")); + String *underscore_module = Copy(module); + Replaceall(underscore_module,":","_"); + + if (verbose > 0) { + fprintf(stdout, "top: using namespace_module: %s\n", Char(namespace_module)); + } + if (directorsEnabled()) { Swig_banner(f_directors_h); Printf(f_directors_h, "\n"); - Printf(f_directors_h, "#ifndef SWIG_%s_WRAP_H_\n", module); - Printf(f_directors_h, "#define SWIG_%s_WRAP_H_\n\n", module); + Printf(f_directors_h, "#ifndef SWIG_%s_WRAP_H_\n", underscore_module); + Printf(f_directors_h, "#define SWIG_%s_WRAP_H_\n\n", underscore_module); if (dirprot_mode()) { Printf(f_directors_h, "#include <map>\n"); Printf(f_directors_h, "#include <string>\n\n"); @@ -379,13 +386,6 @@ fprintf(stdout, "top: No package found\n"); } } - String *underscore_module = Copy(module); - Replaceall(underscore_module,":","_"); - - if (verbose > 0) { - fprintf(stdout, "top: using namespace_module: %s\n", Char(namespace_module)); - } - /* If we're in blessed mode, change the package name to "packagec" */ if (blessed) {