Merge branch 'master' into javascript
* master:
Fix some typos
[PHP] The generated __isset() method now returns true for read-only properties.
Eliminate needless casting away const from string constants
Fix typos
Fix missing ")" in code example
Fix comment typos
Fix m4 quoting of checks for yodl2man and yodl2html versions
Fixed errors from previous commit.
Removed all unnecessary asserts
Remove unused variable
Another go html fix
Fix intgosize arg documentation
Optimize metamethods inheritance resolving
Updating documentation
Whitespace cleanup of Example Makefiles
.gitignore: ignore Lib/swigwarn.swg
Fixing unused variable warnings
Finish implementation with proxy functions
Remove duplicate declarations of strtoimax and strtoumax in inttypes.i
Ignored enum fixes.
Further shift operator regression fixes
Fix use of shift operators in expressions regression since 3.0.0
Fix seg fault with extra ) brackets and >>
More efficient end of template bracket (>>) handling
beautify scanner.c
Tidy up scanner.c
DOH readme correction
Fix typo in -lua -help output
Remove extra </div>
Update documentation for deprecation and removal of Close()
Fix segfault when there are too many closing round brackets in parsed code
Refix operator<< definition giving a syntax error
Fix regression in 3.0.0 where legal code following an operator<< definition might give a syntax error.
Remove unnecessary block from PHP version of SWIG_exception macro
[PHP] Fix wrapping director constructors with default parameters with a ZTS-enabled build of PHP.
Fix potential bugs found by Coverity analysis
Eliminate unused parameter from SWIG_Php_GetModule()
Fix comment typo
Fix compiler warnings in generated Lua code
[PHP] Pass the ZTS context we already have to avoid needing to call TSRMLS_FETCH, which is relatively expensive.
[PHP] Pass ZTS context through to t_output_helper() so it works with a ZTS-enabled build of PHP. Reported by Pierre Labastie in github PR#155.
Lua test-suite can now be run out of source
Fix out of source test-suite runs for Octave
Add runtime test for commit 7a96fba836
Add C++11 constexpr runtime test
This commit is contained in:
commit
f51be1ca5c
150 changed files with 935 additions and 410 deletions
|
|
@ -20,7 +20,7 @@
|
|||
// #define ALLEGROCL_TYPE_DEBUG
|
||||
// #define ALLEGROCL_CLASS_DEBUG
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Allegro CL Options (available with -allegrocl)\n\
|
||||
-identifier-converter <type or funcname> - \n\
|
||||
Specifies the type of conversion to do on C identifiers to convert\n\
|
||||
|
|
|
|||
|
|
@ -714,7 +714,7 @@ Allocate():
|
|||
|
||||
/* Check if base classes allow smart pointers, but might be hidden */
|
||||
if (!Getattr(n, "allocate:smartpointer")) {
|
||||
Node *sp = Swig_symbol_clookup((char *) "operator ->", 0);
|
||||
Node *sp = Swig_symbol_clookup("operator ->", 0);
|
||||
if (sp) {
|
||||
/* Look for parent */
|
||||
Node *p = parentNode(sp);
|
||||
|
|
@ -833,7 +833,7 @@ Allocate():
|
|||
or reference. We're going to chase it to see if another operator->()
|
||||
can be found */
|
||||
if ((SwigType_check_decl(type, "")) || (SwigType_check_decl(type, "r."))) {
|
||||
Node *nn = Swig_symbol_clookup((char *) "operator ->", Getattr(sc, "symtab"));
|
||||
Node *nn = Swig_symbol_clookup("operator ->", Getattr(sc, "symtab"));
|
||||
if (nn) {
|
||||
Delete(base);
|
||||
Delete(type);
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
//#define CFFI_DEBUG
|
||||
//#define CFFI_WRAP_DEBUG
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
CFFI Options (available with -cffi)\n\
|
||||
-generate-typedef - Use defctype to generate shortcuts according to the\n\
|
||||
typedefs in the input.\n\
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
\
|
||||
CHICKEN Options (available with -chicken)\n\
|
||||
-closprefix <prefix> - Prepend <prefix> to all clos identifiers\n\
|
||||
|
|
@ -29,7 +29,7 @@ CHICKEN Options (available with -chicken)\n\
|
|||
\n";
|
||||
|
||||
static char *module = 0;
|
||||
static char *chicken_path = (char *) "chicken";
|
||||
static const char *chicken_path = "chicken";
|
||||
static int num_methods = 0;
|
||||
|
||||
static File *f_begin = 0;
|
||||
|
|
@ -620,7 +620,7 @@ int CHICKEN::functionWrapper(Node *n) {
|
|||
if (in_class)
|
||||
clos_name = NewString(member_name);
|
||||
else
|
||||
clos_name = chickenNameMapping(scmname, (char *) "");
|
||||
clos_name = chickenNameMapping(scmname, "");
|
||||
|
||||
if (!any_specialized_arg) {
|
||||
method_def = NewString("");
|
||||
|
|
@ -775,7 +775,7 @@ int CHICKEN::variableWrapper(Node *n) {
|
|||
if (in_class)
|
||||
clos_name = NewString(member_name);
|
||||
else
|
||||
clos_name = chickenNameMapping(scmname, (char *) "");
|
||||
clos_name = chickenNameMapping(scmname, "");
|
||||
|
||||
Node *class_node = classLookup(t);
|
||||
String *clos_code = Getattr(n, "tmap:varin:closcode");
|
||||
|
|
@ -942,7 +942,7 @@ int CHICKEN::constantWrapper(Node *n) {
|
|||
if (in_class)
|
||||
clos_name = NewString(member_name);
|
||||
else
|
||||
clos_name = chickenNameMapping(scmname, (char *) "");
|
||||
clos_name = chickenNameMapping(scmname, "");
|
||||
if (GetFlag(n, "feature:constasvar")) {
|
||||
Printv(clos_methods, "(define ", clos_name, " (", chickenPrimitiveName(scmname), "))\n", NIL);
|
||||
Printv(scm_const_defs, "(set! ", scmname, " (", scmname, "))\n", NIL);
|
||||
|
|
@ -1372,7 +1372,7 @@ void CHICKEN::dispatchFunction(Node *n) {
|
|||
} else if (in_class)
|
||||
clos_name = NewString(member_name);
|
||||
else
|
||||
clos_name = chickenNameMapping(scmname, (char *) "");
|
||||
clos_name = chickenNameMapping(scmname, "");
|
||||
|
||||
Iterator f;
|
||||
List *prev = 0;
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
#include "swigmod.h"
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
CLISP Options (available with -clisp)\n\
|
||||
-extern-all - Create clisp definitions for all the functions and\n\
|
||||
global variables otherwise only definitions for\n\
|
||||
|
|
|
|||
|
|
@ -3175,8 +3175,8 @@ public:
|
|||
if (anonymous_enum) {
|
||||
replacementname = NewString("int");
|
||||
} else {
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition)
|
||||
replacementname = SwigType_base(classnametype);
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition) or an ignored enum
|
||||
replacementname = NewStringf("SWIGTYPE%s", SwigType_manglestr(classnametype));
|
||||
Replace(replacementname, "enum ", "", DOH_REPLACE_ANY);
|
||||
Setattr(swig_types_hash, replacementname, classnametype);
|
||||
}
|
||||
|
|
@ -4303,7 +4303,7 @@ extern "C" Language *swig_csharp(void) {
|
|||
* Static member variables
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
const char *CSHARP::usage = (char *) "\
|
||||
const char *CSHARP::usage = "\
|
||||
C# Options (available with -csharp)\n\
|
||||
-dllimport <dl> - Override DllImport attribute name to <dl>\n\
|
||||
-namespace <nm> - Generate wrappers into C# namespace <nm>\n\
|
||||
|
|
|
|||
|
|
@ -4649,7 +4649,7 @@ extern "C" Language *swig_d(void) {
|
|||
/* -----------------------------------------------------------------------------
|
||||
* Usage information displayed at the command line.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
const char *D::usage = (char *) "\
|
||||
const char *D::usage = "\
|
||||
D Options (available with -d)\n\
|
||||
-d2 - Generate code for D2/Phobos (default: D1/Tango)\n\
|
||||
-package <pkg> - Write generated D modules into package <pkg>\n\
|
||||
|
|
|
|||
|
|
@ -4514,10 +4514,12 @@ private:
|
|||
} else if (Strcmp(t, "enum ") == 0) {
|
||||
ret = NewString("int");
|
||||
} else {
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition)
|
||||
ret = SwigType_base(t);
|
||||
Replace(ret, "enum ", "", DOH_REPLACE_ANY);
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition) or an ignored enum
|
||||
String *tt = Copy(t);
|
||||
Replace(tt, "enum ", "", DOH_REPLACE_ANY);
|
||||
ret = exportedName(tt);
|
||||
Setattr(undefined_enum_types, t, ret);
|
||||
Delete(tt);
|
||||
}
|
||||
} else if (SwigType_isfunctionpointer(type) || SwigType_isfunction(type)) {
|
||||
ret = NewString("_swig_fnptr");
|
||||
|
|
@ -5017,7 +5019,7 @@ extern "C" Language *swig_go(void) {
|
|||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
// Usage message.
|
||||
const char * const GO::usage = (char *) "\
|
||||
const char * const GO::usage = "\
|
||||
Go Options (available with -go)\n\
|
||||
-gccgo - Generate code for gccgo rather than 6g/8g\n\
|
||||
-go-pkgpath <p> - Like gccgo -fgo-pkgpath option\n\
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
#include <ctype.h>
|
||||
|
||||
// Note string broken in half for compilers that can't handle long strings
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Guile Options (available with -guile)\n\
|
||||
-emitsetters - Emit procedures-with-setters for variables\n\
|
||||
and structure slots.\n\
|
||||
|
|
@ -1018,7 +1018,7 @@ public:
|
|||
if (in_class)
|
||||
goops_name = NewString(memberfunction_name);
|
||||
else
|
||||
goops_name = goopsNameMapping(proc_name, (char *) "");
|
||||
goops_name = goopsNameMapping(proc_name, "");
|
||||
String *primitive_name = NewString("");
|
||||
if (primRenamer)
|
||||
Printv(primitive_name, "primitive:", proc_name, NIL);
|
||||
|
|
@ -1204,7 +1204,7 @@ public:
|
|||
// export wrapper into goops file
|
||||
if (!in_class) { // only if the variable is not part of a class
|
||||
String *class_name = SwigType_typedef_resolve_all(SwigType_base(t));
|
||||
String *goops_name = goopsNameMapping(proc_name, (char *) "");
|
||||
String *goops_name = goopsNameMapping(proc_name, "");
|
||||
String *primitive_name = NewString("");
|
||||
if (primRenamer)
|
||||
Printv(primitive_name, "primitive:", NIL);
|
||||
|
|
|
|||
|
|
@ -3090,8 +3090,8 @@ public:
|
|||
if (anonymous_enum) {
|
||||
replacementname = NewString("int");
|
||||
} else {
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition)
|
||||
replacementname = SwigType_base(classnametype);
|
||||
// An unknown enum - one that has not been parsed (neither a C enum forward reference nor a definition) or an ignored enum
|
||||
replacementname = NewStringf("SWIGTYPE%s", SwigType_manglestr(classnametype));
|
||||
Replace(replacementname, "enum ", "", DOH_REPLACE_ANY);
|
||||
Setattr(swig_types_hash, replacementname, classnametype);
|
||||
}
|
||||
|
|
@ -4643,7 +4643,7 @@ extern "C" Language *swig_java(void) {
|
|||
* Static member variables
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
const char *JAVA::usage = (char *) "\
|
||||
const char *JAVA::usage = "\
|
||||
Java Options (available with -java)\n\
|
||||
-nopgcpp - Suppress premature garbage collection prevention parameter\n\
|
||||
-noproxy - Generate the low-level functional interface instead\n\
|
||||
|
|
|
|||
|
|
@ -86,11 +86,11 @@ extern "C"
|
|||
you can add new ones here
|
||||
(though for now I have not bothered)
|
||||
NEW LANGUAGE NOTE:END ************************************************/
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Lua Options (available with -lua)\n\
|
||||
-elua - Generates LTR compatible wrappers for smaller devices running elua\n\
|
||||
-eluac - LTR compatible wrappers in \"crass compress\" mode for elua\n\
|
||||
-elua-emulate - Emulates behaviour of eLua. Usefull only for testing.\n\
|
||||
-elua-emulate - Emulates behaviour of eLua. Useful only for testing.\n\
|
||||
Incompatible with -elua/-eluac options.\n\
|
||||
-nomoduleglobal - Do not register the module name as a global variable \n\
|
||||
but return the module table from calls to require.\n\
|
||||
|
|
@ -205,7 +205,7 @@ public:
|
|||
}
|
||||
|
||||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
This is called to initalise the system & read any command line args
|
||||
This is called to initialise the system & read any command line args
|
||||
most of this is boilerplate code, except the command line args
|
||||
which depends upon what args your code supports
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
|
|
@ -380,7 +380,7 @@ public:
|
|||
Dump(f_header, f_begin);
|
||||
Dump(f_wrappers, f_begin);
|
||||
Dump(f_initbeforefunc, f_begin);
|
||||
/* for the Lua code it needs to be properly excaped to be added into the C/C++ code */
|
||||
/* for the Lua code it needs to be properly escaped to be added into the C/C++ code */
|
||||
escapeCode(s_luacode);
|
||||
Printf(f_begin, "const char* SWIG_LUACODE=\n \"%s\";\n\n", s_luacode);
|
||||
Wrapper_pretty_print(f_init, f_begin);
|
||||
|
|
@ -436,9 +436,9 @@ public:
|
|||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
This is it!
|
||||
you get this one right, and most of your work is done
|
||||
but its going to take soem file to get it working right
|
||||
but its going to take some file to get it working right
|
||||
quite a bit of this is generally boilerplate code
|
||||
(or stuff I dont understand)
|
||||
(or stuff I don't understand)
|
||||
that which matters will have extra added comments
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
/* ---------------------------------------------------------------------
|
||||
|
|
@ -534,7 +534,7 @@ public:
|
|||
}
|
||||
|
||||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
the wrapper object holds all the wrappering code
|
||||
the wrapper object holds all the wrapper code
|
||||
we need to add a couple of local variables
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
Wrapper *f = NewWrapper();
|
||||
|
|
@ -554,7 +554,7 @@ public:
|
|||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
the format of a lua fn is:
|
||||
static int wrap_XXX(lua_State* L){...}
|
||||
this line adds this into the wrappering code
|
||||
this line adds this into the wrapper code
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
Printv(f->def, "static int ", wname, "(lua_State* L) {", NIL);
|
||||
|
||||
|
|
@ -657,7 +657,7 @@ public:
|
|||
continue;
|
||||
} else {
|
||||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
// why is this code not called when I dont have a typemap?
|
||||
// why is this code not called when I don't have a typemap?
|
||||
// instead of giving a warning, no code is generated
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
Swig_warning(WARN_TYPEMAP_IN_UNDEF, input_file, line_number, "Unable to use type %s as a function argument.\n", SwigType_str(pt, 0));
|
||||
|
|
@ -792,7 +792,7 @@ public:
|
|||
Replaceall(f->code, "$result", Swig_cresult_name());
|
||||
|
||||
/* Dump the function out */
|
||||
/* in Lua we will not emit the destructor as a wrappered function,
|
||||
/* in Lua we will not emit the destructor as a wrapper function,
|
||||
Lua will automatically call the destructor when the object is free'd
|
||||
However: you cannot just skip this function as it will not emit
|
||||
any custom destructor (using %extend), as you need to call emit_action()
|
||||
|
|
@ -835,7 +835,7 @@ public:
|
|||
/* NEW LANGUAGE NOTE:***********************************************
|
||||
This is an extra function used for overloading of functions
|
||||
it checks the args & then calls the relevant fn
|
||||
nost of the real work in again typemaps:
|
||||
most of the real work in again typemaps:
|
||||
look for %typecheck(SWIG_TYPECHECK_*) in the .swg file
|
||||
NEW LANGUAGE NOTE:END *********************************************** */
|
||||
int dispatchFunction(Node *n) {
|
||||
|
|
@ -1958,6 +1958,10 @@ public:
|
|||
|
||||
SetFlag(carrays_hash, "lua:closed");
|
||||
|
||||
// Do arrays describe class instance part or class static part
|
||||
const int is_instance = GetFlag(carrays_hash, "lua:class_instance");
|
||||
|
||||
|
||||
String *attr_tab = Getattr(carrays_hash, "attributes");
|
||||
Printf(attr_tab, " {0,0,0}\n};\n");
|
||||
Printv(output, attr_tab, NIL);
|
||||
|
|
@ -1968,7 +1972,17 @@ public:
|
|||
Printv(const_tab, tab4, "{LNILKEY, LNILVAL}\n", "};\n", NIL);
|
||||
else
|
||||
Printf(const_tab, " {0,0,0,0,0,0}\n};\n");
|
||||
Printv(output, const_tab, NIL);
|
||||
|
||||
// For the sake of compiling with -Wall -Werror we print constants
|
||||
// only when necessary
|
||||
int need_constants = 0;
|
||||
if ( (elua_ltr || eluac_ltr) && (old_metatable_bindings) )
|
||||
need_constants = 1;
|
||||
else if (!is_instance) // static part need constants tab
|
||||
need_constants = 1;
|
||||
|
||||
if (need_constants)
|
||||
Printv(output, const_tab, NIL);
|
||||
|
||||
if (elua_ltr) {
|
||||
// Put forward declaration of metatable array
|
||||
|
|
@ -2009,7 +2023,18 @@ public:
|
|||
Printv(output, set_tab, NIL);
|
||||
}
|
||||
|
||||
if (!eluac_ltr) {
|
||||
// Heuristic whether we need to print metatable or not.
|
||||
// For the sake of compiling with -Wall -Werror we don't print
|
||||
// metatable for static part.
|
||||
int need_metatable = 0;
|
||||
if (eluac_ltr)
|
||||
need_metatable = 0;
|
||||
else if(!is_instance)
|
||||
need_metatable = 0;
|
||||
else
|
||||
need_metatable = 1;
|
||||
|
||||
if (need_metatable) {
|
||||
String *metatable_tab = Getattr(carrays_hash, "metatable");
|
||||
assert(metatable_tab);
|
||||
if (elua_ltr) {
|
||||
|
|
|
|||
|
|
@ -160,9 +160,9 @@ static String *SwigLib = 0; // Library directory
|
|||
static String *SwigLibWinUnix = 0; // Extra library directory on Windows
|
||||
static int freeze = 0;
|
||||
static String *lang_config = 0;
|
||||
static char *hpp_extension = (char *) "h";
|
||||
static char *cpp_extension = (char *) "cxx";
|
||||
static char *depends_extension = (char *) "d";
|
||||
static const char *hpp_extension = "h";
|
||||
static const char *cpp_extension = "cxx";
|
||||
static const char *depends_extension = "d";
|
||||
static String *outdir = 0;
|
||||
static String *xmlout = 0;
|
||||
static int outcurrentdir = 0;
|
||||
|
|
@ -324,7 +324,7 @@ const String *SWIG_output_directory() {
|
|||
}
|
||||
|
||||
void SWIG_config_cppext(const char *ext) {
|
||||
cpp_extension = (char *) ext;
|
||||
cpp_extension = ext;
|
||||
}
|
||||
|
||||
List *SWIG_output_files() {
|
||||
|
|
@ -465,7 +465,7 @@ void SWIG_getoptions(int argc, char *argv[]) {
|
|||
Swig_mark_arg(i);
|
||||
} else if (strncmp(argv[i], "-D", 2) == 0) {
|
||||
String *d = NewString(argv[i] + 2);
|
||||
Replace(d, (char *) "=", (char *) " ", DOH_REPLACE_ANY | DOH_REPLACE_FIRST);
|
||||
Replace(d, "=", " ", DOH_REPLACE_ANY | DOH_REPLACE_FIRST);
|
||||
Preprocessor_define((DOH *) d, 0);
|
||||
Delete(d);
|
||||
// Create a symbol
|
||||
|
|
|
|||
|
|
@ -3956,7 +3956,7 @@ extern "C" Language *swig_modula3(void) {
|
|||
* Static member variables
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
const char *MODULA3::usage = (char *) "\
|
||||
const char *MODULA3::usage = "\
|
||||
Modula 3 Options (available with -modula3)\n\
|
||||
-generateconst <file> - Generate code for computing numeric values of constants\n\
|
||||
-generaterename <file> - Generate suggestions for %rename\n\
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Mzscheme Options (available with -mzscheme)\n\
|
||||
-declaremodule - Create extension that declares a module\n\
|
||||
-dynamic-load <library>,[library,...] - Do not link with these libraries, dynamic load\n\
|
||||
|
|
@ -36,7 +36,7 @@ static bool declaremodule = false;
|
|||
static bool noinit = false;
|
||||
static String *load_libraries = NULL;
|
||||
static String *module = 0;
|
||||
static char *mzscheme_path = (char *) "mzscheme";
|
||||
static const char *mzscheme_path = "mzscheme";
|
||||
static String *init_func_def = 0;
|
||||
|
||||
static File *f_begin = 0;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Ocaml Options (available with -ocaml)\n\
|
||||
-oldvarnames - Old intermediary method names for variable wrappers\n\
|
||||
-prefix <name> - Set a prefix <name> to be prepended to all names\n\
|
||||
|
|
@ -29,7 +29,7 @@ static int const_enum = 0;
|
|||
static int static_member_function = 0;
|
||||
static int generate_sizeof = 0;
|
||||
static String *prefix = 0;
|
||||
static char *ocaml_path = (char *) "ocaml";
|
||||
static const char *ocaml_path = "ocaml";
|
||||
static bool old_variable_names = false;
|
||||
static String *classname = 0;
|
||||
static String *module = 0;
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
static String *global_name = 0;
|
||||
static String *op_prefix = 0;
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Octave Options (available with -octave)\n\
|
||||
-globals <name> - Set <name> used to access C global variables [default: 'cvar']\n\
|
||||
Use '.' to load C global variables into module namespace\n\
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ static int treduce = SWIG_cparse_template_reduce(0);
|
|||
|
||||
#include <ctype.h>
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Perl5 Options (available with -perl5)\n\
|
||||
-compat - Compatibility mode\n\
|
||||
-const - Wrap constants as constants and not variables (implies -proxy)\n\
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@
|
|||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
PHP Options (available with -php)\n\
|
||||
-cppext <ext> - Change C++ file extension to <ext> (default is cpp)\n\
|
||||
-noproxy - Don't generate proxy classes.\n\
|
||||
|
|
@ -414,10 +414,9 @@ public:
|
|||
* which has to be dynamically generated as it depends on the module name.
|
||||
*/
|
||||
Append(s_header, "#ifdef __GNUC__\n");
|
||||
Append(s_header, "static void SWIG_FAIL() __attribute__ ((__noreturn__));\n");
|
||||
Append(s_header, "static void SWIG_FAIL(TSRMLS_D) __attribute__ ((__noreturn__));\n");
|
||||
Append(s_header, "#endif\n\n");
|
||||
Append(s_header, "static void SWIG_FAIL() {\n");
|
||||
Append(s_header, " TSRMLS_FETCH();\n");
|
||||
Append(s_header, "static void SWIG_FAIL(TSRMLS_D) {\n");
|
||||
Append(s_header, " zend_error(SWIG_ErrorCode(), \"%s\", SWIG_ErrorMsg());\n");
|
||||
// zend_error() should never return with the parameters we pass, but if it
|
||||
// does, we really don't want to let SWIG_FAIL() return. This also avoids
|
||||
|
|
@ -433,8 +432,7 @@ public:
|
|||
Printf(s_header, "static void %s_destroy_globals(zend_%s_globals * globals) { (void)globals; }\n", module, module);
|
||||
|
||||
Printf(s_header, "\n");
|
||||
Printf(s_header, "static void SWIG_ResetError() {\n");
|
||||
Printf(s_header, " TSRMLS_FETCH();\n");
|
||||
Printf(s_header, "static void SWIG_ResetError(TSRMLS_D) {\n");
|
||||
Printf(s_header, " SWIG_ErrorMsg() = default_error_msg;\n");
|
||||
Printf(s_header, " SWIG_ErrorCode() = default_error_code;\n");
|
||||
Printf(s_header, "}\n");
|
||||
|
|
@ -445,7 +443,7 @@ public:
|
|||
Append(s_header, " swig_object_wrapper *value;\n");
|
||||
Append(s_header, " int type;\n");
|
||||
Append(s_header, "\n");
|
||||
Append(s_header, " SWIG_ResetError();\n");
|
||||
Append(s_header, " SWIG_ResetError(TSRMLS_C);\n");
|
||||
Append(s_header, " if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_array_ex(2, args) != SUCCESS) {\n");
|
||||
Append(s_header, " WRONG_PARAM_COUNT;\n");
|
||||
Append(s_header, " }\n");
|
||||
|
|
@ -460,7 +458,7 @@ public:
|
|||
Append(s_header, " swig_object_wrapper *value;\n");
|
||||
Append(s_header, " int type;\n");
|
||||
Append(s_header, "\n");
|
||||
Append(s_header, " SWIG_ResetError();\n");
|
||||
Append(s_header, " SWIG_ResetError(TSRMLS_C);\n");
|
||||
Append(s_header, " if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_array_ex(1, args) != SUCCESS) {\n");
|
||||
Append(s_header, " WRONG_PARAM_COUNT;\n");
|
||||
Append(s_header, " }\n");
|
||||
|
|
@ -736,7 +734,7 @@ public:
|
|||
|
||||
Printf(f->code, "SWIG_ErrorCode() = E_ERROR;\n");
|
||||
Printf(f->code, "SWIG_ErrorMsg() = \"No matching function for overloaded '%s'\";\n", symname);
|
||||
Printv(f->code, "SWIG_FAIL();\n", NIL);
|
||||
Printv(f->code, "SWIG_FAIL(TSRMLS_C);\n", NIL);
|
||||
|
||||
Printv(f->code, "}\n", NIL);
|
||||
Wrapper_print(f, s_wrappers);
|
||||
|
|
@ -854,7 +852,7 @@ public:
|
|||
|
||||
// NOTE: possible we ignore this_ptr as a param for native constructor
|
||||
|
||||
Printf(f->code, "SWIG_ResetError();\n");
|
||||
Printf(f->code, "SWIG_ResetError(TSRMLS_C);\n");
|
||||
|
||||
if (numopt > 0) { // membervariable wrappers do not have optional args
|
||||
Wrapper_add_local(f, "arg_count", "int arg_count");
|
||||
|
|
@ -1019,7 +1017,7 @@ public:
|
|||
/* Error handling code */
|
||||
Printf(f->code, "fail:\n");
|
||||
Printv(f->code, cleanup, NIL);
|
||||
Append(f->code, "SWIG_FAIL();\n");
|
||||
Append(f->code, "SWIG_FAIL(TSRMLS_C);\n");
|
||||
|
||||
Printf(f->code, "}\n");
|
||||
|
||||
|
|
@ -2056,7 +2054,6 @@ done:
|
|||
|
||||
// Write property SET handlers
|
||||
ki = First(shadow_set_vars);
|
||||
|
||||
if (ki.key) {
|
||||
// This class has setters.
|
||||
Printf(s_phpclasses, "\n\tfunction __set($var,$value) {\n");
|
||||
|
|
@ -2079,17 +2076,6 @@ done:
|
|||
Printf(s_phpclasses, "\t\t$this->%s[$var] = $value;\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
|
||||
/* Create __isset for PHP 5.1 and later; PHP 5.0 will just ignore it. */
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif (function_exists('%s_'.$var.'_set')) return true;\n", shadow_classname);
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
} else {
|
||||
Printf(s_phpclasses, "\n\tfunction __set($var,$value) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return swig_%s_alter_newobject($this->%s,$value);\n", module, SWIG_PTR);
|
||||
|
|
@ -2099,18 +2085,10 @@ done:
|
|||
Printf(s_phpclasses, "\t\t$this->%s[$var] = $value;\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
}
|
||||
|
||||
// Write property GET handlers
|
||||
ki = First(shadow_get_vars);
|
||||
|
||||
if (ki.key) {
|
||||
// This class has getters.
|
||||
Printf(s_phpclasses, "\n\tfunction __get($var) {\n");
|
||||
|
|
@ -2146,6 +2124,19 @@ done:
|
|||
Printf(s_phpclasses, "\t\treturn $this->%s[$var];\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
|
||||
/* Create __isset for PHP 5.1 and later; PHP 5.0 will just ignore it. */
|
||||
/* __isset() should return true for read-only properties, so check for
|
||||
* *_get() not *_set(). */
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif (function_exists('%s_'.$var.'_get')) return true;\n", shadow_classname);
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
} else {
|
||||
Printf(s_phpclasses, "\n\tfunction __get($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return swig_%s_get_newobject($this->%s);\n", module, SWIG_PTR);
|
||||
|
|
@ -2155,6 +2146,14 @@ done:
|
|||
Printf(s_phpclasses, "\t\treturn $this->%s[$var];\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
Printf(s_phpclasses, "\n\tfunction __isset($var) {\n");
|
||||
Printf(s_phpclasses, "\t\tif ($var === 'thisown') return true;\n");
|
||||
if (baseclass) {
|
||||
Printf(s_phpclasses, "\t\treturn %s%s::__isset($var);\n", prefix, baseclass);
|
||||
} else {
|
||||
Printf(s_phpclasses, "\t\treturn array_key_exists($var, $this->%s);\n", SWIG_DATA);
|
||||
}
|
||||
Printf(s_phpclasses, "\t}\n");
|
||||
}
|
||||
|
||||
if (!class_has_ctor) {
|
||||
|
|
@ -2274,8 +2273,8 @@ done:
|
|||
if (i) {
|
||||
Insert(args, 0, ", ");
|
||||
}
|
||||
Printf(director_ctor_code, "} else {\n %s = (%s *)new SwigDirector_%s(arg0%s TSRMLS_CC);\n}\n", Swig_cresult_name(), ctype, sname, args);
|
||||
Printf(director_prot_ctor_code, "} else {\n %s = (%s *)new SwigDirector_%s(arg0%s TSRMLS_CC);\n}\n", Swig_cresult_name(), ctype, sname, args);
|
||||
Printf(director_ctor_code, "} else {\n %s = (%s *)new SwigDirector_%s(arg0 TSRMLS_CC%s);\n}\n", Swig_cresult_name(), ctype, sname, args);
|
||||
Printf(director_prot_ctor_code, "} else {\n %s = (%s *)new SwigDirector_%s(arg0 TSRMLS_CC%s);\n}\n", Swig_cresult_name(), ctype, sname, args);
|
||||
Delete(args);
|
||||
|
||||
wrapperType = directorconstructor;
|
||||
|
|
@ -2336,7 +2335,7 @@ done:
|
|||
|
||||
Append(f->code, "return;\n");
|
||||
Append(f->code, "fail:\n");
|
||||
Append(f->code, "SWIG_FAIL();\n");
|
||||
Append(f->code, "SWIG_FAIL(TSRMLS_C);\n");
|
||||
Printf(f->code, "}\n");
|
||||
|
||||
Wrapper_print(f, s_wrappers);
|
||||
|
|
@ -2387,17 +2386,23 @@ done:
|
|||
parms = p;
|
||||
|
||||
if (!Getattr(n, "defaultargs")) {
|
||||
// There should always be a "self" parameter first.
|
||||
assert(ParmList_len(parms) > 0);
|
||||
|
||||
/* constructor */
|
||||
{
|
||||
Wrapper *w = NewWrapper();
|
||||
String *call;
|
||||
String *basetype = Getattr(parent, "classtype");
|
||||
|
||||
// We put TSRMLS_DC after the self parameter in order to cope with
|
||||
// any default parameters.
|
||||
String *target = Swig_method_decl(0, decl, classname, parms, 0, 0);
|
||||
if (((const char *)Char(target))[Len(target) - 2] == '(') {
|
||||
Insert(target, Len(target) - 1, "TSRMLS_D");
|
||||
} else {
|
||||
Insert(target, Len(target) - 1, " TSRMLS_DC");
|
||||
}
|
||||
const char * p = Char(target);
|
||||
const char * comma = strchr(p, ',');
|
||||
size_t ins = comma ? comma - p : Len(target) - 1;
|
||||
Insert(target, ins, " TSRMLS_DC");
|
||||
|
||||
call = Swig_csuperclass_call(0, basetype, superparms);
|
||||
Printf(w->def, "%s::%s: %s, Swig::Director(self TSRMLS_CC) {", classname, target, call);
|
||||
Append(w->def, "}");
|
||||
|
|
@ -2409,12 +2414,14 @@ done:
|
|||
|
||||
/* constructor header */
|
||||
{
|
||||
// We put TSRMLS_DC after the self parameter in order to cope with
|
||||
// any default parameters.
|
||||
String *target = Swig_method_decl(0, decl, classname, parms, 0, 1);
|
||||
if (((const char *)Char(target))[Len(target) - 2] == '(') {
|
||||
Insert(target, Len(target) - 1, "TSRMLS_D");
|
||||
} else {
|
||||
Insert(target, Len(target) - 1, " TSRMLS_DC");
|
||||
}
|
||||
const char * p = Char(target);
|
||||
const char * comma = strchr(p, ',');
|
||||
size_t ins = comma ? comma - p : Len(target) - 1;
|
||||
Insert(target, ins, " TSRMLS_DC");
|
||||
|
||||
Printf(f_directors_h, " %s;\n", target);
|
||||
Delete(target);
|
||||
}
|
||||
|
|
@ -2700,7 +2707,7 @@ done:
|
|||
}
|
||||
|
||||
Append(w->code, "fail:\n");
|
||||
Append(w->code, "SWIG_FAIL();\n");
|
||||
Append(w->code, "SWIG_FAIL(TSRMLS_C);\n");
|
||||
Append(w->code, "}\n");
|
||||
|
||||
// We expose protected methods via an extra public inline method which makes a straight call to the wrapped class' method
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
#include <ctype.h> // for isalnum()
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Pike Options (available with -pike)\n\
|
||||
[no additional options]\n\
|
||||
\n";
|
||||
|
|
|
|||
|
|
@ -107,7 +107,7 @@ enum autodoc_t {
|
|||
};
|
||||
|
||||
|
||||
static const char *usage1 = (char *) "\
|
||||
static const char *usage1 = "\
|
||||
Python Options (available with -python)\n\
|
||||
-aliasobj0 - Alias obj0 when using fastunpack, needed for some old typemaps \n\
|
||||
-buildnone - Use Py_BuildValue(" ") to obtain Py_None (default in Windows)\n\
|
||||
|
|
@ -127,7 +127,7 @@ Python Options (available with -python)\n\
|
|||
-keyword - Use keyword arguments\n\
|
||||
-modern - Use modern python features only, without compatibility code\n\
|
||||
-modernargs - Use \"modern\" args mechanism to pack/unpack the function arguments\n";
|
||||
static const char *usage2 = (char *) "\
|
||||
static const char *usage2 = "\
|
||||
-newrepr - Use more informative version of __repr__ in proxy classes (default) \n\
|
||||
-newvwm - New value wrapper mode, use only when everything else fails \n\
|
||||
-noaliasobj0 - Don't generate an obj0 alias when using fastunpack (default) \n\
|
||||
|
|
@ -144,7 +144,7 @@ static const char *usage2 = (char *) "\
|
|||
-noh - Don't generate the output header file\n\
|
||||
-nomodern - Don't use modern python features which are not backwards compatible \n\
|
||||
-nomodernargs - Use classic ParseTuple/CallFunction methods to pack/unpack the function arguments (default) \n";
|
||||
static const char *usage3 = (char *) "\
|
||||
static const char *usage3 = "\
|
||||
-noolddefs - Don't emit the old method definitions even when using fastproxy (default) \n\
|
||||
-nooutputtuple - Use a PyList for appending output values (default) \n\
|
||||
-noproxy - Don't generate proxy classes \n\
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
#include "swigmod.h"
|
||||
|
||||
static const double DEFAULT_NUMBER = .0000123456712312312323;
|
||||
static const int MAX_OVERLOAD_ARGS = 5;
|
||||
|
||||
static String* replaceInitialDash(const String *name)
|
||||
{
|
||||
|
|
@ -206,7 +205,7 @@ static void writeListByLine(List *l, File *out, bool quote = 0) {
|
|||
}
|
||||
|
||||
|
||||
static const char *usage = (char *)"\
|
||||
static const char *usage = "\
|
||||
R Options (available with -r)\n\
|
||||
-copystruct - Emit R code to copy C structs (on by default)\n\
|
||||
-cppcast - Enable C++ casting operators (default) \n\
|
||||
|
|
@ -2161,7 +2160,7 @@ int R::functionWrapper(Node *n) {
|
|||
/* If we are dealing with a method in an C++ class, then
|
||||
add the name of the R function and its definition.
|
||||
XXX need to figure out how to store the Wrapper if possible in the hash/list.
|
||||
Would like to be able to do this so that we can potentialy insert
|
||||
Would like to be able to do this so that we can potentially insert
|
||||
*/
|
||||
if(processing_member_access_function || processing_class_member_function) {
|
||||
addAccessor(member_name, sfun, iname);
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ enum autodoc_t {
|
|||
AUTODOC_NONE
|
||||
};
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Ruby Options (available with -ruby)\n\
|
||||
-autorename - Enable renaming of classes and methods to follow Ruby coding standards\n\
|
||||
-cppcast - Enable C++ casting operators (default)\n\
|
||||
|
|
@ -1111,7 +1111,7 @@ public:
|
|||
/* typedef void *VALUE */
|
||||
SwigType *value = NewSwigType(T_VOID);
|
||||
SwigType_add_pointer(value);
|
||||
SwigType_typedef(value, (char *) "VALUE");
|
||||
SwigType_typedef(value, "VALUE");
|
||||
Delete(value);
|
||||
|
||||
/* Set module name */
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
#include "cparse.h"
|
||||
static int treduce = SWIG_cparse_template_reduce(0);
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
Tcl 8 Options (available with -tcl)\n\
|
||||
-itcl - Enable ITcl support\n\
|
||||
-nosafe - Leave out SafeInit module function.\n\
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
#include "swigmod.h"
|
||||
|
||||
static const char *usage = (char *) "\
|
||||
static const char *usage = "\
|
||||
UFFI Options (available with -uffi)\n\
|
||||
-identifier-converter <type or funcname> - \n\
|
||||
Specifies the type of conversion to do on C identifiers\n\
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue