diff options
Diffstat (limited to 'Source/Swig')
-rw-r--r-- | Source/Swig/cwrap.c | 53 | ||||
-rw-r--r-- | Source/Swig/error.c | 10 | ||||
-rw-r--r-- | Source/Swig/getopt.c | 2 | ||||
-rw-r--r-- | Source/Swig/include.c | 57 | ||||
-rw-r--r-- | Source/Swig/misc.c | 95 | ||||
-rw-r--r-- | Source/Swig/naming.c | 32 | ||||
-rw-r--r-- | Source/Swig/parms.c | 2 | ||||
-rw-r--r-- | Source/Swig/scanner.c | 25 | ||||
-rw-r--r-- | Source/Swig/stype.c | 8 | ||||
-rw-r--r-- | Source/Swig/swig.h | 137 | ||||
-rw-r--r-- | Source/Swig/swigfile.h | 31 | ||||
-rw-r--r-- | Source/Swig/swigopt.h | 2 | ||||
-rw-r--r-- | Source/Swig/swigparm.h | 2 | ||||
-rw-r--r-- | Source/Swig/swigscan.h | 4 | ||||
-rw-r--r-- | Source/Swig/swigtree.h | 2 | ||||
-rw-r--r-- | Source/Swig/swigwrap.h | 12 | ||||
-rw-r--r-- | Source/Swig/symbol.c | 34 | ||||
-rw-r--r-- | Source/Swig/tree.c | 2 | ||||
-rw-r--r-- | Source/Swig/typemap.c | 30 | ||||
-rw-r--r-- | Source/Swig/typeobj.c | 10 | ||||
-rw-r--r-- | Source/Swig/typesys.c | 15 | ||||
-rw-r--r-- | Source/Swig/wrapfunc.c | 12 |
22 files changed, 330 insertions, 247 deletions
diff --git a/Source/Swig/cwrap.c b/Source/Swig/cwrap.c index 18920ecc2..7c6837a2b 100644 --- a/Source/Swig/cwrap.c +++ b/Source/Swig/cwrap.c @@ -45,7 +45,7 @@ String *Swig_cparm_name(Parm *p, int i) { * and user defined types to pointers. * ----------------------------------------------------------------------------- */ -static String *Swig_clocal(SwigType *t, const String_or_char *name, const String_or_char *value) { +static String *Swig_clocal(SwigType *t, const_String_or_char_ptr name, const_String_or_char_ptr value) { String *decl; decl = NewStringEmpty(); @@ -147,7 +147,7 @@ String *Swig_wrapped_member_var_type(SwigType *t, int varcref) { } -static String *Swig_wrapped_var_deref(SwigType *t, String_or_char *name, int varcref) { +static String *Swig_wrapped_var_deref(SwigType *t, const_String_or_char_ptr name, int varcref) { if (SwigType_isclass(t)) { if (varcref) { if (cparse_cplusplus) { @@ -163,7 +163,7 @@ static String *Swig_wrapped_var_deref(SwigType *t, String_or_char *name, int var } } -static String *Swig_wrapped_var_assign(SwigType *t, const String_or_char *name, int varcref) { +static String *Swig_wrapped_var_assign(SwigType *t, const_String_or_char_ptr name, int varcref) { if (SwigType_isclass(t)) { if (varcref) { return NewStringf("%s", name); @@ -251,7 +251,7 @@ int Swig_cargs(Wrapper *w, ParmList *p) { * function call. * ----------------------------------------------------------------------------- */ -String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_char *decl) { +String *Swig_cresult(SwigType *t, const_String_or_char_ptr name, const_String_or_char_ptr decl) { String *fcall; fcall = NewStringEmpty(); @@ -260,10 +260,9 @@ String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_ch break; case T_REFERENCE: { - String *str = SwigType_str(t, "_result_ref"); - Printf(fcall, "{\n"); - Printf(fcall, "%s = ", str); - Delete(str); + String *lstr = SwigType_lstr(t, 0); + Printf(fcall, "%s = (%s) &", name, lstr); + Delete(lstr); } break; case T_USER: @@ -290,12 +289,6 @@ String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_ch Append(fcall, ";"); } - if (SwigType_type(t) == T_REFERENCE) { - String *lstr = SwigType_lstr(t, 0); - Printf(fcall, "\n%s = (%s) &_result_ref;\n", name, lstr); - Append(fcall, "}"); - Delete(lstr); - } return fcall; } @@ -309,7 +302,7 @@ String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_ch * * ----------------------------------------------------------------------------- */ -String *Swig_cfunction_call(String_or_char *name, ParmList *parms) { +String *Swig_cfunction_call(const_String_or_char_ptr name, ParmList *parms) { String *func; int i = 0; int comma = 0; @@ -376,7 +369,7 @@ String *Swig_cfunction_call(String_or_char *name, ParmList *parms) { * set to "(*this)->" or some similar sequence. * ----------------------------------------------------------------------------- */ -static String *Swig_cmethod_call(String_or_char *name, ParmList *parms, String_or_char *self, String *explicit_qualifier, SwigType *director_type) { +static String *Swig_cmethod_call(const_String_or_char_ptr name, ParmList *parms, const_String_or_char_ptr self, String *explicit_qualifier, SwigType *director_type) { String *func, *nname; int i = 0; Parm *p = parms; @@ -468,7 +461,7 @@ static String *Swig_cmethod_call(String_or_char *name, ParmList *parms, String_o * calloc(1,sizeof(name)); * ----------------------------------------------------------------------------- */ -String *Swig_cconstructor_call(String_or_char *name) { +String *Swig_cconstructor_call(const_String_or_char_ptr name) { DOH *func; func = NewStringEmpty(); @@ -487,7 +480,7 @@ String *Swig_cconstructor_call(String_or_char *name) { * * ----------------------------------------------------------------------------- */ -String *Swig_cppconstructor_base_call(String_or_char *name, ParmList *parms, int skip_self) { +String *Swig_cppconstructor_base_call(const_String_or_char_ptr name, ParmList *parms, int skip_self) { String *func; String *nname; int i = 0; @@ -532,15 +525,15 @@ String *Swig_cppconstructor_base_call(String_or_char *name, ParmList *parms, int return func; } -String *Swig_cppconstructor_call(String_or_char *name, ParmList *parms) { +String *Swig_cppconstructor_call(const_String_or_char_ptr name, ParmList *parms) { return Swig_cppconstructor_base_call(name, parms, 0); } -String *Swig_cppconstructor_nodirector_call(String_or_char *name, ParmList *parms) { +String *Swig_cppconstructor_nodirector_call(const_String_or_char_ptr name, ParmList *parms) { return Swig_cppconstructor_base_call(name, parms, 1); } -String *Swig_cppconstructor_director_call(String_or_char *name, ParmList *parms) { +String *Swig_cppconstructor_director_call(const_String_or_char_ptr name, ParmList *parms) { return Swig_cppconstructor_base_call(name, parms, 0); } @@ -683,7 +676,7 @@ String *Swig_cppdestructor_call(Node *n) { * * ----------------------------------------------------------------------------- */ -String *Swig_cmemberset_call(String_or_char *name, SwigType *type, String_or_char *self, int varcref) { +String *Swig_cmemberset_call(const_String_or_char_ptr name, SwigType *type, String *self, int varcref) { String *func; String *pname0 = Swig_cparm_name(0, 0); String *pname1 = Swig_cparm_name(0, 1); @@ -718,7 +711,7 @@ String *Swig_cmemberset_call(String_or_char *name, SwigType *type, String_or_cha * * ----------------------------------------------------------------------------- */ -String *Swig_cmemberget_call(const String_or_char *name, SwigType *t, String_or_char *self, int varcref) { +String *Swig_cmemberget_call(const_String_or_char_ptr name, SwigType *t, String *self, int varcref) { String *func; String *call; String *pname0 = Swig_cparm_name(0, 0); @@ -1210,7 +1203,7 @@ int Swig_DestructorToFunction(Node *n, String *classname, int cplus, int flags) * This function creates a C wrapper for setting a structure member. * ----------------------------------------------------------------------------- */ -int Swig_MembersetToFunction(Node *n, String *classname, int flags) { +int Swig_MembersetToFunction(Node *n, String *classname, int flags, String **call) { String *name; ParmList *parms; Parm *p; @@ -1258,23 +1251,21 @@ int Swig_MembersetToFunction(Node *n, String *classname, int flags) { Delete(p); if (flags & CWRAP_EXTEND) { - String *call; String *cres; String *code = Getattr(n, "code"); if (code) { /* I don't think this ever gets run - WSF */ Swig_add_extension_code(n, mangled, parms, void_type, code, cparse_cplusplus, "self"); } - call = Swig_cfunction_call(mangled, parms); - cres = NewStringf("%s;", call); + *call = Swig_cfunction_call(mangled, parms); + cres = NewStringf("%s;", *call); Setattr(n, "wrap:action", cres); - Delete(call); Delete(cres); } else { - String *call = Swig_cmemberset_call(name, type, self, varcref); - String *cres = NewStringf("%s;", call); + String *cres; + *call = Swig_cmemberset_call(name, type, self, varcref); + cres = NewStringf("%s;", *call); Setattr(n, "wrap:action", cres); - Delete(call); Delete(cres); } Setattr(n, "type", void_type); diff --git a/Source/Swig/error.c b/Source/Swig/error.c index 1eaba1f17..156fe06a7 100644 --- a/Source/Swig/error.c +++ b/Source/Swig/error.c @@ -50,7 +50,7 @@ static char wrn_nnum_fmt[64]; static char err_line_fmt[64]; static char err_eof_fmt[64]; -static String *format_filename(const String_or_char *filename); +static String *format_filename(const_String_or_char_ptr filename); /* ----------------------------------------------------------------------------- * Swig_warning() @@ -58,7 +58,7 @@ static String *format_filename(const String_or_char *filename); * Issue a warning message * ----------------------------------------------------------------------------- */ -void Swig_warning(int wnum, const String_or_char *filename, int line, const char *fmt, ...) { +void Swig_warning(int wnum, const_String_or_char_ptr filename, int line, const char *fmt, ...) { String *out; char *msg; int wrn = 1; @@ -121,7 +121,7 @@ void Swig_warning(int wnum, const String_or_char *filename, int line, const char * Issue an error message * ----------------------------------------------------------------------------- */ -void Swig_error(const String_or_char *filename, int line, const char *fmt, ...) { +void Swig_error(const_String_or_char_ptr filename, int line, const char *fmt, ...) { va_list ap; String *formatted_filename = NULL; @@ -170,7 +170,7 @@ void Swig_error_silent(int s) { * Takes a comma separate list of warning numbers and puts in the filter. * ----------------------------------------------------------------------------- */ -void Swig_warnfilter(const String_or_char *wlist, int add) { +void Swig_warnfilter(const_String_or_char_ptr wlist, int add) { char *c; char *cw; String *s; @@ -268,7 +268,7 @@ void Swig_error_msg_format(ErrorMessageFormat format) { * * Remove double backslashes in Windows filename paths for display * ----------------------------------------------------------------------------- */ -static String *format_filename(const String_or_char *filename) { +static String *format_filename(const_String_or_char_ptr filename) { String *formatted_filename = NewString(filename); #if defined(_WIN32) Replaceall(formatted_filename, "\\\\", "\\"); diff --git a/Source/Swig/getopt.c b/Source/Swig/getopt.c index 87b0f7c9d..cbd051d9f 100644 --- a/Source/Swig/getopt.c +++ b/Source/Swig/getopt.c @@ -100,7 +100,7 @@ void Swig_check_options(int check_input) { * Generates a generic error message and exits. * ----------------------------------------------------------------------------- */ -void Swig_arg_error() { +void Swig_arg_error(void) { Printf(stderr, "SWIG : Unable to parse command line options.\n"); Printf(stderr, "Use 'swig -help' for available options.\n"); exit(1); diff --git a/Source/Swig/include.c b/Source/Swig/include.c index 3f47be15b..f42eb5d45 100644 --- a/Source/Swig/include.c +++ b/Source/Swig/include.c @@ -33,7 +33,7 @@ int Swig_get_push_dir(void) { * Adds a directory to the SWIG search path. * ----------------------------------------------------------------------------- */ -List *Swig_add_directory(const String_or_char *dirname) { +List *Swig_add_directory(const_String_or_char_ptr dirname) { String *adirname; if (!directories) directories = NewList(); @@ -53,7 +53,7 @@ List *Swig_add_directory(const String_or_char *dirname) { * the preprocessor to grab files in the same directory as other included files. * ----------------------------------------------------------------------------- */ -void Swig_push_directory(const String_or_char *dirname) { +void Swig_push_directory(const_String_or_char_ptr dirname) { String *pdirname; if (!Swig_get_push_dir()) return; @@ -73,7 +73,7 @@ void Swig_push_directory(const String_or_char *dirname) { * the preprocessor. * ----------------------------------------------------------------------------- */ -void Swig_pop_directory() { +void Swig_pop_directory(void) { if (!Swig_get_push_dir()) return; if (!pdirectories) @@ -87,13 +87,13 @@ void Swig_pop_directory() { * Returns the full pathname of the last file opened. * ----------------------------------------------------------------------------- */ -String *Swig_last_file() { +String *Swig_last_file(void) { assert(lastpath); return lastpath; } /* ----------------------------------------------------------------------------- - * Swig_search_path() + * Swig_search_path_any() * * Returns a list of the current search paths. * ----------------------------------------------------------------------------- */ @@ -151,10 +151,11 @@ List *Swig_search_path() { /* ----------------------------------------------------------------------------- * Swig_open() * - * Looks for a file and open it. Returns an open FILE * on success. + * open a file, optionally looking for it in the include path. Returns an open + * FILE * on success. * ----------------------------------------------------------------------------- */ -static FILE *Swig_open_any(const String_or_char *name, int sysfile) { +static FILE *Swig_open_file(const_String_or_char_ptr name, int sysfile, int use_include_path) { FILE *f; String *filename; List *spath = 0; @@ -169,7 +170,7 @@ static FILE *Swig_open_any(const String_or_char *name, int sysfile) { filename = NewString(cname); assert(filename); f = fopen(Char(filename), "r"); - if (!f) { + if (!f && use_include_path) { spath = Swig_search_path_any(sysfile); ilen = Len(spath); for (i = 0; i < ilen; i++) { @@ -182,19 +183,21 @@ static FILE *Swig_open_any(const String_or_char *name, int sysfile) { Delete(spath); } if (f) { -#if defined(_WIN32) /* Note not on Cygwin else filename is displayed with double '/' */ - Replaceall(filename, "\\\\", "\\"); /* remove double '\' in case any already present */ - Replaceall(filename, "\\", "\\\\"); -#endif Delete(lastpath); - lastpath = Copy(filename); + lastpath = Swig_filename_escape(filename); } Delete(filename); return f; } -FILE *Swig_open(const String_or_char *name) { - return Swig_open_any(name, 0); +/* Open a file - searching the include paths to find it */ +FILE *Swig_include_open(const_String_or_char_ptr name) { + return Swig_open_file(name, 0, 1); +} + +/* Open a file - does not use include paths to find it */ +FILE *Swig_open(const_String_or_char_ptr name) { + return Swig_open_file(name, 0, 0); } @@ -230,12 +233,12 @@ String *Swig_read_file(FILE *f) { * Opens a file and returns it as a string. * ----------------------------------------------------------------------------- */ -static String *Swig_include_any(const String_or_char *name, int sysfile) { +static String *Swig_include_any(const_String_or_char_ptr name, int sysfile) { FILE *f; String *str; String *file; - f = Swig_open_any(name, sysfile); + f = Swig_open_file(name, sysfile, 1); if (!f) return 0; str = Swig_read_file(f); @@ -248,11 +251,11 @@ static String *Swig_include_any(const String_or_char *name, int sysfile) { return str; } -String *Swig_include(const String_or_char *name) { +String *Swig_include(const_String_or_char_ptr name) { return Swig_include_any(name, 0); } -String *Swig_include_sys(const String_or_char *name) { +String *Swig_include_sys(const_String_or_char_ptr name) { return Swig_include_any(name, 1); } @@ -262,10 +265,10 @@ String *Swig_include_sys(const String_or_char *name) { * Copies the contents of a file into another file * ----------------------------------------------------------------------------- */ -int Swig_insert_file(const String_or_char *filename, File *outfile) { +int Swig_insert_file(const_String_or_char_ptr filename, File *outfile) { char buffer[4096]; int nbytes; - FILE *f = Swig_open(filename); + FILE *f = Swig_include_open(filename); if (!f) return -1; @@ -286,7 +289,7 @@ int Swig_insert_file(const String_or_char *filename, File *outfile) { static Hash *named_files = 0; -void Swig_register_filebyname(const String_or_char *filename, File *outfile) { +void Swig_register_filebyname(const_String_or_char_ptr filename, File *outfile) { if (!named_files) named_files = NewHash(); Setattr(named_files, filename, outfile); @@ -298,7 +301,7 @@ void Swig_register_filebyname(const String_or_char *filename, File *outfile) { * Get a named file * ----------------------------------------------------------------------------- */ -File *Swig_filebyname(const String_or_char *filename) { +File *Swig_filebyname(const_String_or_char_ptr filename) { if (!named_files) return 0; return Getattr(named_files, filename); @@ -310,7 +313,7 @@ File *Swig_filebyname(const String_or_char *filename) { * Returns the suffix of a file * ----------------------------------------------------------------------------- */ -char *Swig_file_suffix(const String_or_char *filename) { +char *Swig_file_suffix(const_String_or_char_ptr filename) { char *d; char *c = Char(filename); int len = Len(filename); @@ -332,7 +335,7 @@ char *Swig_file_suffix(const String_or_char *filename) { * Returns the filename with no suffix attached. * ----------------------------------------------------------------------------- */ -char *Swig_file_basename(const String_or_char *filename) { +char *Swig_file_basename(const_String_or_char_ptr filename) { static char tmp[1024]; char *c; strcpy(tmp, Char(filename)); @@ -346,7 +349,7 @@ char *Swig_file_basename(const String_or_char *filename) { * * Return the file with any leading path stripped off * ----------------------------------------------------------------------------- */ -char *Swig_file_filename(const String_or_char *filename) { +char *Swig_file_filename(const_String_or_char_ptr filename) { static char tmp[1024]; const char *delim = SWIG_FILE_DELIMITER; char *c; @@ -364,7 +367,7 @@ char *Swig_file_filename(const String_or_char *filename) { * * Return the name of the directory associated with a file * ----------------------------------------------------------------------------- */ -char *Swig_file_dirname(const String_or_char *filename) { +char *Swig_file_dirname(const_String_or_char_ptr filename) { static char tmp[1024]; const char *delim = SWIG_FILE_DELIMITER; char *c; diff --git a/Source/Swig/misc.c b/Source/Swig/misc.c index d29250517..050e5357a 100644 --- a/Source/Swig/misc.c +++ b/Source/Swig/misc.c @@ -54,7 +54,7 @@ const char *Swig_package_version(void) { /* ----------------------------------------------------------------------------- * Swig_banner() * - * Emits the SWIG identifying banner. + * Emits the SWIG identifying banner for the C/C++ wrapper file. * ----------------------------------------------------------------------------- */ void Swig_banner(File *f) { @@ -67,11 +67,25 @@ void Swig_banner(File *f) { * changes to this file unless you know what you are doing--modify the SWIG \n\ * interface file instead. \n", Swig_package_version()); /* String too long for ISO compliance */ - Printf(f, " * ----------------------------------------------------------------------------- */\n\n"); + Printf(f, " * ----------------------------------------------------------------------------- */\n"); } /* ----------------------------------------------------------------------------- + * Swig_banner_target_lang() + * + * Emits a SWIG identifying banner in the target language + * ----------------------------------------------------------------------------- */ + +void Swig_banner_target_lang(File *f, const_String_or_char_ptr commentchar) { + Printf(f, "%s This file was automatically generated by SWIG (http://www.swig.org).\n", commentchar); + Printf(f, "%s Version %s\n", commentchar, Swig_package_version()); + Printf(f, "%s\n", commentchar); + Printf(f, "%s Do not make changes to this file unless you know what you are doing--modify\n", commentchar); + Printf(f, "%s the SWIG interface file instead.\n", commentchar); +} + +/* ----------------------------------------------------------------------------- * Swig_strip_c_comments() * * Return a new string with C comments stripped from the input string. Null is @@ -118,6 +132,39 @@ String *Swig_strip_c_comments(const String *s) { /* ----------------------------------------------------------------------------- + * Swig_filename_correct() + * + * Corrects filenames on non-unix systems + * ----------------------------------------------------------------------------- */ + +void Swig_filename_correct(String *filename) { + (void)filename; +#if defined(_WIN32) || defined(MACSWIG) + /* accept Unix path separator on non-Unix systems */ + Replaceall(filename, "/", SWIG_FILE_DELIMITER); +#endif +#if defined(__CYGWIN__) + /* accept Windows path separator in addition to Unix path separator */ + Replaceall(filename, "\\", SWIG_FILE_DELIMITER); +#endif +} + +/* ----------------------------------------------------------------------------- + * Swig_filename_escape() + * + * Escapes backslashes in filename - for Windows + * ----------------------------------------------------------------------------- */ + +String *Swig_filename_escape(String *filename) { + String *adjusted_filename = Copy(filename); +#if defined(_WIN32) /* Note not on Cygwin else filename is displayed with double '/' */ + Replaceall(adjusted_filename, "\\\\", "\\"); /* remove double '\' in case any already present */ + Replaceall(adjusted_filename, "\\", "\\\\"); +#endif + return adjusted_filename; +} + +/* ----------------------------------------------------------------------------- * Swig_string_escape() * * Takes a string object and produces a string with escape codes added to it. @@ -604,7 +651,7 @@ String *Swig_string_emangle(String *s) { * In this case, "A::B". Returns NULL if there is no base. * ----------------------------------------------------------------------------- */ -void Swig_scopename_split(String *s, String **rprefix, String **rlast) { +void Swig_scopename_split(const String *s, String **rprefix, String **rlast) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -658,7 +705,7 @@ void Swig_scopename_split(String *s, String **rprefix, String **rlast) { } -String *Swig_scopename_prefix(String *s) { +String *Swig_scopename_prefix(const String *s) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -710,7 +757,7 @@ String *Swig_scopename_prefix(String *s) { * case, "C". * ----------------------------------------------------------------------------- */ -String *Swig_scopename_last(String *s) { +String *Swig_scopename_last(const String *s) { char *tmp = Char(s); char *c = tmp; char *cc = c; @@ -754,7 +801,7 @@ String *Swig_scopename_last(String *s) { * In this case, "A". Returns NULL if there is no base. * ----------------------------------------------------------------------------- */ -String *Swig_scopename_first(String *s) { +String *Swig_scopename_first(const String *s) { char *tmp = Char(s); char *c = tmp; char *co = 0; @@ -804,7 +851,7 @@ String *Swig_scopename_first(String *s) { * In this case, "B::C". Returns NULL if there is no suffix. * ----------------------------------------------------------------------------- */ -String *Swig_scopename_suffix(String *s) { +String *Swig_scopename_suffix(const String *s) { char *tmp = Char(s); char *c = tmp; char *co = 0; @@ -848,7 +895,7 @@ String *Swig_scopename_suffix(String *s) { * Checks to see if a name is qualified with a scope name * ----------------------------------------------------------------------------- */ -int Swig_scopename_check(String *s) { +int Swig_scopename_check(const String *s) { char *c = Char(s); char *co = strstr(c, "operator "); @@ -927,6 +974,37 @@ String *Swig_string_command(String *s) { /* ----------------------------------------------------------------------------- + * Swig_string_strip() + * + * Strip given prefix from identifiers + * + * Printf(stderr,"%(strip:[wx])s","wxHello") -> Hello + * ----------------------------------------------------------------------------- */ + +String *Swig_string_strip(String *s) { + String *ns; + if (!Len(s)) { + ns = NewString(s); + } else { + const char *cs = Char(s); + const char *ce = Strchr(cs, ']'); + if (*cs != '[' || ce == NULL) { + ns = NewString(s); + } else { + String *fmt = NewStringf("%%.%ds", ce-cs-1); + String *prefix = NewStringf(fmt, cs+1); + if (0 == Strncmp(ce+1, prefix, Len(prefix))) { + ns = NewString(ce+1+Len(prefix)); + } else { + ns = NewString(ce+1); + } + } + } + return ns; +} + + +/* ----------------------------------------------------------------------------- * Swig_string_rxspencer() * * Executes a regexp substitution via the RxSpencer library. For example: @@ -1053,6 +1131,7 @@ void Swig_init() { DohEncoding("command", Swig_string_command); DohEncoding("rxspencer", Swig_string_rxspencer); DohEncoding("schemify", Swig_string_schemify); + DohEncoding("strip", Swig_string_strip); /* aliases for the case encoders */ DohEncoding("uppercase", Swig_string_upper); diff --git a/Source/Swig/naming.c b/Source/Swig/naming.c index f34a24612..013ce5929 100644 --- a/Source/Swig/naming.c +++ b/Source/Swig/naming.c @@ -27,13 +27,13 @@ static Hash *naming_hash = 0; * Register a new naming format. * ----------------------------------------------------------------------------- */ -void Swig_name_register(const String_or_char *method, const String_or_char *format) { +void Swig_name_register(const_String_or_char_ptr method, const_String_or_char_ptr format) { if (!naming_hash) naming_hash = NewHash(); Setattr(naming_hash, method, format); } -void Swig_name_unregister(const String_or_char *method) { +void Swig_name_unregister(const_String_or_char_ptr method) { if (naming_hash) { Delattr(naming_hash, method); } @@ -127,7 +127,7 @@ static int name_mangle(String *r) { * Converts all of the non-identifier characters of a string to underscores. * ----------------------------------------------------------------------------- */ -String *Swig_name_mangle(const String_or_char *s) { +String *Swig_name_mangle(const_String_or_char_ptr s) { #if 0 String *r = NewString(s); name_mangle(r); @@ -143,7 +143,7 @@ String *Swig_name_mangle(const String_or_char *s) { * Returns the name of a wrapper function. * ----------------------------------------------------------------------------- */ -String *Swig_name_wrapper(const String_or_char *fname) { +String *Swig_name_wrapper(const_String_or_char_ptr fname) { String *r; String *f; @@ -168,7 +168,7 @@ String *Swig_name_wrapper(const String_or_char *fname) { * Returns the name of a class method. * ----------------------------------------------------------------------------- */ -String *Swig_name_member(const String_or_char *classname, const String_or_char *mname) { +String *Swig_name_member(const_String_or_char_ptr classname, const_String_or_char_ptr mname) { String *r; String *f; String *rclassname; @@ -201,7 +201,7 @@ String *Swig_name_member(const String_or_char *classname, const String_or_char * * Returns the name of the accessor function used to get a variable. * ----------------------------------------------------------------------------- */ -String *Swig_name_get(const String_or_char *vname) { +String *Swig_name_get(const_String_or_char_ptr vname) { String *r; String *f; @@ -229,7 +229,7 @@ String *Swig_name_get(const String_or_char *vname) { * Returns the name of the accessor function used to set a variable. * ----------------------------------------------------------------------------- */ -String *Swig_name_set(const String_or_char *vname) { +String *Swig_name_set(const_String_or_char_ptr vname) { String *r; String *f; @@ -253,7 +253,7 @@ String *Swig_name_set(const String_or_char *vname) { * Returns the name of the accessor function used to create an object. * ----------------------------------------------------------------------------- */ -String *Swig_name_construct(const String_or_char *classname) { +String *Swig_name_construct(const_String_or_char_ptr classname) { String *r; String *f; String *rclassname; @@ -286,7 +286,7 @@ String *Swig_name_construct(const String_or_char *classname) { * Returns the name of the accessor function used to copy an object. * ----------------------------------------------------------------------------- */ -String *Swig_name_copyconstructor(const String_or_char *classname) { +String *Swig_name_copyconstructor(const_String_or_char_ptr classname) { String *r; String *f; String *rclassname; @@ -319,7 +319,7 @@ String *Swig_name_copyconstructor(const String_or_char *classname) { * Returns the name of the accessor function used to destroy an object. * ----------------------------------------------------------------------------- */ -String *Swig_name_destroy(const String_or_char *classname) { +String *Swig_name_destroy(const_String_or_char_ptr classname) { String *r; String *f; String *rclassname; @@ -351,7 +351,7 @@ String *Swig_name_destroy(const String_or_char *classname) { * Returns the name of the accessor function used to disown an object. * ----------------------------------------------------------------------------- */ -String *Swig_name_disown(const String_or_char *classname) { +String *Swig_name_disown(const_String_or_char_ptr classname) { String *r; String *f; String *rclassname; @@ -600,7 +600,7 @@ static void merge_features(Hash *features, Node *n) { * ----------------------------------------------------------------------------- */ static -void features_get(Hash *features, String *tname, SwigType *decl, SwigType *ncdecl, Node *node) { +void features_get(Hash *features, const String *tname, SwigType *decl, SwigType *ncdecl, Node *node) { Node *n = Getattr(features, tname); #ifdef SWIG_DEBUG Printf(stdout, " features_get: %s\n", tname); @@ -655,7 +655,7 @@ void Swig_features_get(Hash *features, String *prefix, String *name, SwigType *d } #ifdef SWIG_DEBUG - Printf(stdout, "Swig_features_get: %s %s %s\n", prefix, name, decl); + Printf(stdout, "Swig_features_get: '%s' '%s' '%s'\n", prefix, name, decl); #endif /* Global features */ @@ -727,12 +727,12 @@ void Swig_features_get(Hash *features, String *prefix, String *name, SwigType *d * concatenating the feature name plus ':' plus the attribute name. * ----------------------------------------------------------------------------- */ -void Swig_feature_set(Hash *features, const String_or_char *name, SwigType *decl, const String_or_char *featurename, String *value, Hash *featureattribs) { +void Swig_feature_set(Hash *features, const_String_or_char_ptr name, SwigType *decl, const_String_or_char_ptr featurename, String *value, Hash *featureattribs) { Hash *n; Hash *fhash; #ifdef SWIG_DEBUG - Printf(stdout, "Swig_feature_set: %s %s %s %s\n", name, decl, featurename, value); + Printf(stdout, "Swig_feature_set: '%s' '%s' '%s' '%s'\n", name, decl, featurename, value); #endif n = Getattr(features, name); @@ -1436,7 +1436,7 @@ static String *apply_rename(String *newname, int fullname, String *prefix, Strin * * ----------------------------------------------------------------------------- */ -String *Swig_name_make(Node *n, String *prefix, String_or_char *cname, SwigType *decl, String *oldname) { +String *Swig_name_make(Node *n, String *prefix, const_String_or_char_ptr cname, SwigType *decl, String *oldname) { String *nname = 0; String *result = 0; String *name = NewString(cname); diff --git a/Source/Swig/parms.c b/Source/Swig/parms.c index baa1dfbf3..9b58f5fcb 100644 --- a/Source/Swig/parms.c +++ b/Source/Swig/parms.c @@ -17,7 +17,7 @@ char cvsroot_parms_c[] = "$Id$"; * Create a new parameter from datatype 'type' and name 'name'. * ------------------------------------------------------------------------ */ -Parm *NewParm(SwigType *type, const String_or_char *name) { +Parm *NewParm(SwigType *type, const_String_or_char_ptr name) { Parm *p = NewHash(); set_nodeType(p, "parm"); if (type) { diff --git a/Source/Swig/scanner.c b/Source/Swig/scanner.c index 06e78db37..53f1ad4a0 100644 --- a/Source/Swig/scanner.c +++ b/Source/Swig/scanner.c @@ -15,6 +15,9 @@ char cvsroot_scanner_c[] = "$Id$"; #include "swig.h" #include <ctype.h> +extern String *cparse_file; +extern int cparse_start_line; + struct Scanner { String *text; /* Current token value */ List *scanobjs; /* Objects being scanned */ @@ -36,7 +39,7 @@ struct Scanner { * Create a new scanner object * ----------------------------------------------------------------------------- */ -Scanner *NewScanner() { +Scanner *NewScanner(void) { Scanner *s; s = (Scanner *) malloc(sizeof(Scanner)); s->line = 1; @@ -115,11 +118,11 @@ void Scanner_push(Scanner * s, String *txt) { * call to Scanner_token(). * ----------------------------------------------------------------------------- */ -void Scanner_pushtoken(Scanner * s, int nt, const String_or_char *val) { +void Scanner_pushtoken(Scanner * s, int nt, const_String_or_char_ptr val) { assert(s); assert((nt >= 0) && (nt < SWIG_MAXTOKENS)); s->nexttoken = nt; - if (val != s->text) { + if ( Char(val) != Char(s->text) ) { Clear(s->text); Append(s->text,val); } @@ -209,7 +212,7 @@ static char nextchar(Scanner * s) { * Sets error information on the scanner. * ----------------------------------------------------------------------------- */ -static void set_error(Scanner *s, int line, String_or_char *msg) { +static void set_error(Scanner *s, int line, const_String_or_char_ptr msg) { s->error_line = line; s->error = NewString(msg); } @@ -536,7 +539,7 @@ static int look(Scanner * s) { break; case 10: /* C++ style comment */ if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated comment"); + Swig_error(cparse_file, cparse_start_line, "Unterminated comment\n"); return SWIG_TOKEN_ERROR; } if (c == '\n') { @@ -548,7 +551,7 @@ static int look(Scanner * s) { break; case 11: /* C style comment block */ if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated comment"); + Swig_error(cparse_file, cparse_start_line, "Unterminated comment\n"); return SWIG_TOKEN_ERROR; } if (c == '*') { @@ -559,7 +562,7 @@ static int look(Scanner * s) { break; case 12: /* Still in C style comment */ if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated comment"); + Swig_error(cparse_file, cparse_start_line, "Unterminated comment\n"); return SWIG_TOKEN_ERROR; } if (c == '*') { @@ -573,7 +576,7 @@ static int look(Scanner * s) { case 2: /* Processing a string */ if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line, "Unterminated string"); + Swig_error(cparse_file, cparse_start_line, "Unterminated string\n"); return SWIG_TOKEN_ERROR; } if (c == '\"') { @@ -656,7 +659,7 @@ static int look(Scanner * s) { case 40: /* Process an include block */ if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated code block"); + Swig_error(cparse_file, cparse_start_line, "Unterminated block\n"); return SWIG_TOKEN_ERROR; } if (c == '%') @@ -933,7 +936,7 @@ static int look(Scanner * s) { /* A character constant */ case 9: if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated character constant"); + Swig_error(cparse_file, cparse_start_line, "Unterminated character constant\n"); return SWIG_TOKEN_ERROR; } if (c == '\'') { @@ -1048,7 +1051,7 @@ static int look(Scanner * s) { /* Reverse string */ case 900: if ((c = nextchar(s)) == 0) { - set_error(s,s->start_line,"Unterminated character constant"); + Swig_error(cparse_file, cparse_start_line, "Unterminated character constant\n"); return SWIG_TOKEN_ERROR; } if (c == '`') { diff --git a/Source/Swig/stype.c b/Source/Swig/stype.c index 5ffd28eec..8a7700bec 100644 --- a/Source/Swig/stype.c +++ b/Source/Swig/stype.c @@ -537,7 +537,7 @@ String *SwigType_namestr(const SwigType *t) { * Create a C string representation of a datatype. * ----------------------------------------------------------------------------- */ -String *SwigType_str(SwigType *s, const String_or_char *id) { +String *SwigType_str(SwigType *s, const_String_or_char_ptr id) { String *result; String *element = 0, *nextelement; List *elements; @@ -732,7 +732,7 @@ SwigType *SwigType_ltype(SwigType *s) { * with an equivalent assignable version. * -------------------------------------------------------------------- */ -String *SwigType_lstr(SwigType *s, const String_or_char *id) { +String *SwigType_lstr(SwigType *s, const_String_or_char_ptr id) { String *result; SwigType *tc; @@ -749,7 +749,7 @@ String *SwigType_lstr(SwigType *s, const String_or_char *id) { * datatype printed by str(). * ----------------------------------------------------------------------------- */ -String *SwigType_rcaststr(SwigType *s, const String_or_char *name) { +String *SwigType_rcaststr(SwigType *s, const_String_or_char_ptr name) { String *result, *cast; String *element = 0, *nextelement; SwigType *td, *rs, *tc = 0; @@ -892,7 +892,7 @@ String *SwigType_rcaststr(SwigType *s, const String_or_char *name) { * Casts a variable from the real type to the local datatype. * ----------------------------------------------------------------------------- */ -String *SwigType_lcaststr(SwigType *s, const String_or_char *name) { +String *SwigType_lcaststr(SwigType *s, const_String_or_char_ptr name) { String *result; result = NewStringEmpty(); diff --git a/Source/Swig/swig.h b/Source/Swig/swig.h index 451de86c4..2b2c797c9 100644 --- a/Source/Swig/swig.h +++ b/Source/Swig/swig.h @@ -110,15 +110,15 @@ extern "C" { extern SwigType *NewSwigType(int typecode); extern SwigType *SwigType_del_element(SwigType *t); extern SwigType *SwigType_add_pointer(SwigType *t); - extern SwigType *SwigType_add_memberpointer(SwigType *t, const String_or_char *qual); + extern SwigType *SwigType_add_memberpointer(SwigType *t, const_String_or_char_ptr qual); extern SwigType *SwigType_del_memberpointer(SwigType *t); extern SwigType *SwigType_del_pointer(SwigType *t); - extern SwigType *SwigType_add_array(SwigType *t, const String_or_char *size); + extern SwigType *SwigType_add_array(SwigType *t, const_String_or_char_ptr size); extern SwigType *SwigType_del_array(SwigType *t); extern SwigType *SwigType_pop_arrays(SwigType *t); extern SwigType *SwigType_add_reference(SwigType *t); extern SwigType *SwigType_del_reference(SwigType *t); - extern SwigType *SwigType_add_qualifier(SwigType *t, const String_or_char *qual); + extern SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual); extern SwigType *SwigType_del_qualifier(SwigType *t); extern SwigType *SwigType_add_function(SwigType *t, ParmList *parms); extern SwigType *SwigType_add_template(SwigType *t, ParmList *parms); @@ -129,10 +129,10 @@ extern "C" { extern void SwigType_push(SwigType *t, SwigType *s); extern List *SwigType_parmlist(const SwigType *p); extern String *SwigType_parm(String *p); - extern String *SwigType_str(SwigType *s, const String_or_char *id); - extern String *SwigType_lstr(SwigType *s, const String_or_char *id); - extern String *SwigType_rcaststr(SwigType *s, const String_or_char *id); - extern String *SwigType_lcaststr(SwigType *s, const String_or_char *id); + extern String *SwigType_str(SwigType *s, const_String_or_char_ptr id); + extern String *SwigType_lstr(SwigType *s, const_String_or_char_ptr id); + extern String *SwigType_rcaststr(SwigType *s, const_String_or_char_ptr id); + extern String *SwigType_lcaststr(SwigType *s, const_String_or_char_ptr id); extern String *SwigType_manglestr(SwigType *t); extern SwigType *SwigType_ltype(SwigType *t); extern int SwigType_ispointer(SwigType *t); @@ -151,7 +151,7 @@ extern "C" { extern int SwigType_isvarargs(const SwigType *t); extern int SwigType_istemplate(const SwigType *t); extern int SwigType_isenum(SwigType *t); - extern int SwigType_check_decl(SwigType *t, const String_or_char *decl); + extern int SwigType_check_decl(SwigType *t, const_String_or_char_ptr decl); extern SwigType *SwigType_strip_qualifiers(SwigType *t); extern SwigType *SwigType_functionpointer_decompose(SwigType *t); extern String *SwigType_base(const SwigType *t); @@ -162,7 +162,7 @@ extern "C" { extern String *SwigType_prefix(const SwigType *t); extern int SwigType_array_ndim(SwigType *t); extern String *SwigType_array_getdim(SwigType *t, int n); - extern void SwigType_array_setdim(SwigType *t, int n, const String_or_char *rep); + extern void SwigType_array_setdim(SwigType *t, int n, const_String_or_char_ptr rep); extern SwigType *SwigType_array_type(SwigType *t); extern String *SwigType_default(SwigType *t); extern void SwigType_typename_replace(SwigType *t, String *pat, String *rep); @@ -173,27 +173,27 @@ extern "C" { /* --- Type-system managment --- */ extern void SwigType_typesystem_init(void); - extern int SwigType_typedef(SwigType *type, String_or_char *name); - extern int SwigType_typedef_class(String_or_char *name); - extern int SwigType_typedef_using(String_or_char *qname); + extern int SwigType_typedef(SwigType *type, const_String_or_char_ptr name); + extern int SwigType_typedef_class(const_String_or_char_ptr name); + extern int SwigType_typedef_using(const_String_or_char_ptr qname); extern void SwigType_inherit(String *subclass, String *baseclass, String *cast, String *conversioncode); extern int SwigType_issubtype(SwigType *subtype, SwigType *basetype); extern void SwigType_scope_alias(String *aliasname, Typetab *t); extern void SwigType_using_scope(Typetab *t); - extern void SwigType_new_scope(const String_or_char *name); + extern void SwigType_new_scope(const_String_or_char_ptr name); extern void SwigType_inherit_scope(Typetab *scope); extern Typetab *SwigType_pop_scope(void); extern Typetab *SwigType_set_scope(Typetab *h); extern void SwigType_print_scope(Typetab *t); - extern SwigType *SwigType_typedef_resolve(SwigType *t); + extern SwigType *SwigType_typedef_resolve(const SwigType *t); extern SwigType *SwigType_typedef_resolve_all(SwigType *t); extern SwigType *SwigType_typedef_qualified(SwigType *t); extern int SwigType_istypedef(SwigType *t); extern int SwigType_isclass(SwigType *t); extern void SwigType_attach_symtab(Symtab *syms); extern void SwigType_remember(SwigType *t); - extern void SwigType_remember_clientdata(SwigType *t, const String_or_char *clientdata); - extern void SwigType_remember_mangleddata(String *mangled, const String_or_char *clientdata); + extern void SwigType_remember_clientdata(SwigType *t, const_String_or_char_ptr clientdata); + extern void SwigType_remember_mangleddata(String *mangled, const_String_or_char_ptr clientdata); extern void (*SwigType_remember_trace(void (*tf) (SwigType *, String *, String *))) (SwigType *, String *, String *); extern void SwigType_emit_type_table(File *f_headers, File *f_table); extern int SwigType_type(SwigType *t); @@ -201,25 +201,25 @@ extern "C" { /* --- Symbol table module --- */ extern void Swig_symbol_init(void); - extern void Swig_symbol_setscopename(const String_or_char *name); + extern void Swig_symbol_setscopename(const_String_or_char_ptr name); extern String *Swig_symbol_getscopename(void); extern String *Swig_symbol_qualifiedscopename(Symtab *symtab); extern Symtab *Swig_symbol_newscope(void); extern Symtab *Swig_symbol_setscope(Symtab *); - extern Symtab *Swig_symbol_getscope(const String_or_char *symname); + extern Symtab *Swig_symbol_getscope(const_String_or_char_ptr symname); extern Symtab *Swig_symbol_current(void); extern Symtab *Swig_symbol_popscope(void); - extern Node *Swig_symbol_add(String_or_char *symname, Node *node); - extern void Swig_symbol_cadd(String_or_char *symname, Node *node); - extern Node *Swig_symbol_clookup(String_or_char *symname, Symtab *tab); - extern Node *Swig_symbol_clookup_check(String_or_char *symname, Symtab *tab, int (*check) (Node *)); - extern Symtab *Swig_symbol_cscope(String_or_char *symname, Symtab *tab); - extern Node *Swig_symbol_clookup_local(String_or_char *symname, Symtab *tab); - extern Node *Swig_symbol_clookup_local_check(String_or_char *symname, Symtab *tab, int (*check) (Node *)); + extern Node *Swig_symbol_add(const_String_or_char_ptr symname, Node *node); + extern void Swig_symbol_cadd(const_String_or_char_ptr symname, Node *node); + extern Node *Swig_symbol_clookup(const_String_or_char_ptr symname, Symtab *tab); + extern Node *Swig_symbol_clookup_check(const_String_or_char_ptr symname, Symtab *tab, int (*check) (Node *)); + extern Symtab *Swig_symbol_cscope(const_String_or_char_ptr symname, Symtab *tab); + extern Node *Swig_symbol_clookup_local(const_String_or_char_ptr symname, Symtab *tab); + extern Node *Swig_symbol_clookup_local_check(const_String_or_char_ptr symname, Symtab *tab, int (*check) (Node *)); extern String *Swig_symbol_qualified(Node *node); extern Node *Swig_symbol_isoverloaded(Node *node); extern void Swig_symbol_remove(Node *node); - extern void Swig_symbol_alias(String_or_char *aliasname, Symtab *tab); + extern void Swig_symbol_alias(const_String_or_char_ptr aliasname, Symtab *tab); extern void Swig_symbol_inherit(Symtab *tab); extern SwigType *Swig_symbol_type_qualify(const SwigType *ty, Symtab *tab); extern String *Swig_symbol_string_qualify(String *s, Symtab *tab); @@ -246,17 +246,17 @@ extern int ParmList_is_compactdefargs(ParmList *p); /* --- Naming functions --- */ - extern void Swig_name_register(const String_or_char *method, const String_or_char *format); - extern void Swig_name_unregister(const String_or_char *method); - extern String *Swig_name_mangle(const String_or_char *s); - extern String *Swig_name_wrapper(const String_or_char *fname); - extern String *Swig_name_member(const String_or_char *classname, const String_or_char *mname); - extern String *Swig_name_get(const String_or_char *vname); - extern String *Swig_name_set(const String_or_char *vname); - extern String *Swig_name_construct(const String_or_char *classname); - extern String *Swig_name_copyconstructor(const String_or_char *classname); - extern String *Swig_name_destroy(const String_or_char *classname); - extern String *Swig_name_disown(const String_or_char *classname); + extern void Swig_name_register(const_String_or_char_ptr method, const_String_or_char_ptr format); + extern void Swig_name_unregister(const_String_or_char_ptr method); + extern String *Swig_name_mangle(const_String_or_char_ptr s); + extern String *Swig_name_wrapper(const_String_or_char_ptr fname); + extern String *Swig_name_member(const_String_or_char_ptr classname, const_String_or_char_ptr mname); + extern String *Swig_name_get(const_String_or_char_ptr vname); + extern String *Swig_name_set(const_String_or_char_ptr vname); + extern String *Swig_name_construct(const_String_or_char_ptr classname); + extern String *Swig_name_copyconstructor(const_String_or_char_ptr classname); + extern String *Swig_name_destroy(const_String_or_char_ptr classname); + extern String *Swig_name_disown(const_String_or_char_ptr classname); extern void Swig_naming_init(void); extern void Swig_name_namewarn_add(String *prefix, String *name, SwigType *decl, Hash *namewrn); @@ -267,33 +267,36 @@ extern int ParmList_is_compactdefargs(ParmList *p); extern int Swig_need_name_warning(Node *n); extern int Swig_need_redefined_warn(Node *a, Node *b, int InClass); - extern String *Swig_name_make(Node *n, String *prefix, String_or_char *cname, SwigType *decl, String *oldname); + extern String *Swig_name_make(Node *n, String *prefix, const_String_or_char_ptr cname, SwigType *decl, String *oldname); extern String *Swig_name_warning(Node *n, String *prefix, String *name, SwigType *decl); extern String *Swig_name_decl(Node *n); extern String *Swig_name_fulldecl(Node *n); /* --- parameterized rename functions --- */ - extern void Swig_name_object_set(Hash *namehash, String_or_char *name, SwigType *decl, DOH *object); - extern DOH *Swig_name_object_get(Hash *namehash, String_or_char *prefix, String_or_char *name, SwigType *decl); + extern void Swig_name_object_set(Hash *namehash, String *name, SwigType *decl, DOH *object); + extern DOH *Swig_name_object_get(Hash *namehash, String *prefix, String *name, SwigType *decl); extern void Swig_name_object_inherit(Hash *namehash, String *base, String *derived); - extern void Swig_features_get(Hash *features, String_or_char *prefix, String_or_char *name, SwigType *decl, Node *n); - extern void Swig_feature_set(Hash *features, const String_or_char *name, SwigType *decl, const String_or_char *featurename, String *value, Hash *featureattribs); + extern void Swig_features_get(Hash *features, String *prefix, String *name, SwigType *decl, Node *n); + extern void Swig_feature_set(Hash *features, const_String_or_char_ptr name, SwigType *decl, const_String_or_char_ptr featurename, String *value, Hash *featureattribs); /* --- Misc --- */ extern char *Swig_copy_string(const char *c); extern void Swig_set_fakeversion(const char *version); extern const char *Swig_package_version(void); extern void Swig_banner(File *f); + extern void Swig_banner_target_lang(File *f, const_String_or_char_ptr commentchar); extern String *Swig_strip_c_comments(const String *s); + extern String *Swig_filename_escape(String *filename); + extern void Swig_filename_correct(String *filename); extern String *Swig_string_escape(String *s); extern String *Swig_string_mangle(const String *s); - extern void Swig_scopename_split(String *s, String **prefix, String **last); - extern String *Swig_scopename_prefix(String *s); - extern String *Swig_scopename_last(String *s); - extern String *Swig_scopename_first(String *s); - extern String *Swig_scopename_suffix(String *s); - extern int Swig_scopename_check(String *s); + extern void Swig_scopename_split(const String *s, String **prefix, String **last); + extern String *Swig_scopename_prefix(const String *s); + extern String *Swig_scopename_last(const String *s); + extern String *Swig_scopename_first(const String *s); + extern String *Swig_scopename_suffix(const String *s); + extern int Swig_scopename_check(const String *s); extern String *Swig_string_lower(String *s); extern String *Swig_string_upper(String *s); extern String *Swig_string_title(String *s); @@ -308,11 +311,11 @@ extern int ParmList_is_compactdefargs(ParmList *p); typedef enum { EMF_STANDARD, EMF_MICROSOFT } ErrorMessageFormat; - extern void Swig_warning(int num, const String_or_char *filename, int line, const char *fmt, ...); - extern void Swig_error(const String_or_char *filename, int line, const char *fmt, ...); + extern void Swig_warning(int num, const_String_or_char_ptr filename, int line, const char *fmt, ...); + extern void Swig_error(const_String_or_char_ptr filename, int line, const char *fmt, ...); extern int Swig_error_count(void); extern void Swig_error_silent(int s); - extern void Swig_warnfilter(const String_or_char *wlist, int val); + extern void Swig_warnfilter(const_String_or_char_ptr wlist, int val); extern void Swig_warnall(void); extern int Swig_warn_count(void); extern void Swig_error_msg_format(ErrorMessageFormat format); @@ -321,17 +324,17 @@ extern int ParmList_is_compactdefargs(ParmList *p); extern String *Swig_cparm_name(Parm *p, int i); extern String *Swig_wrapped_var_type(SwigType *t, int varcref); extern int Swig_cargs(Wrapper *w, ParmList *l); - extern String *Swig_cresult(SwigType *t, const String_or_char *name, const String_or_char *decl); + extern String *Swig_cresult(SwigType *t, const_String_or_char_ptr name, const_String_or_char_ptr decl); - extern String *Swig_cfunction_call(String_or_char *name, ParmList *parms); - extern String *Swig_cconstructor_call(String_or_char *name); - extern String *Swig_cppconstructor_call(String_or_char *name, ParmList *parms); + extern String *Swig_cfunction_call(const_String_or_char_ptr name, ParmList *parms); + extern String *Swig_cconstructor_call(const_String_or_char_ptr name); + extern String *Swig_cppconstructor_call(const_String_or_char_ptr name, ParmList *parms); extern String *Swig_unref_call(Node *n); extern String *Swig_ref_call(Node *n, const String *lname); extern String *Swig_cdestructor_call(Node *n); extern String *Swig_cppdestructor_call(Node *n); - extern String *Swig_cmemberset_call(String_or_char *name, SwigType *type, String_or_char *self, int varcref); - extern String *Swig_cmemberget_call(const String_or_char *name, SwigType *t, String_or_char *self, int varcref); + extern String *Swig_cmemberset_call(const_String_or_char_ptr name, SwigType *type, String *self, int varcref); + extern String *Swig_cmemberget_call(const_String_or_char_ptr name, SwigType *t, String *self, int varcref); extern int Swig_add_extension_code(Node *n, const String *function_name, ParmList *parms, SwigType *return_type, const String *code, int cplusplus, const String *self); @@ -340,7 +343,7 @@ extern int ParmList_is_compactdefargs(ParmList *p); extern int Swig_MethodToFunction(Node *n, String *classname, int flags, SwigType *director_type, int is_director); extern int Swig_ConstructorToFunction(Node *n, String *classname, String *none_comparison, String *director_ctor, int cplus, int flags); extern int Swig_DestructorToFunction(Node *n, String *classname, int cplus, int flags); - extern int Swig_MembersetToFunction(Node *n, String *classname, int flags); + extern int Swig_MembersetToFunction(Node *n, String *classname, int flags, String **call); extern int Swig_MembergetToFunction(Node *n, String *classname, int flags); extern int Swig_VargetToFunction(Node *n, int flags); extern int Swig_VarsetToFunction(Node *n, int flags); @@ -360,22 +363,22 @@ extern int ParmList_is_compactdefargs(ParmList *p); /* --- Legacy Typemap API (somewhat simplified, ha!) --- */ extern void Swig_typemap_init(void); - extern void Swig_typemap_register(const String_or_char *op, ParmList *pattern, String_or_char *code, ParmList *locals, ParmList *kwargs); - extern int Swig_typemap_copy(const String_or_char *op, ParmList *srcpattern, ParmList *pattern); - extern void Swig_typemap_clear(const String_or_char *op, ParmList *pattern); + extern void Swig_typemap_register(const_String_or_char_ptr op, ParmList *pattern, const_String_or_char_ptr code, ParmList *locals, ParmList *kwargs); + extern int Swig_typemap_copy(const_String_or_char_ptr op, ParmList *srcpattern, ParmList *pattern); + extern void Swig_typemap_clear(const_String_or_char_ptr op, ParmList *pattern); extern int Swig_typemap_apply(ParmList *srcpat, ParmList *destpat); extern void Swig_typemap_clear_apply(ParmList *pattern); extern void Swig_typemap_debug(void); - extern Hash *Swig_typemap_search(const String_or_char *op, SwigType *type, const String_or_char *pname, SwigType **matchtype); - extern Hash *Swig_typemap_search_multi(const String_or_char *op, ParmList *parms, int *nmatch); - extern String *Swig_typemap_lookup(const String_or_char *op, Node *n, const String_or_char *lname, Wrapper *f); - extern String *Swig_typemap_lookup_out(const String_or_char *op, Node *n, const String_or_char *lname, Wrapper *f, String *actioncode); - extern void Swig_typemap_attach_kwargs(Hash *tm, const String_or_char *op, Parm *p); + extern Hash *Swig_typemap_search(const_String_or_char_ptr op, SwigType *type, const_String_or_char_ptr pname, SwigType **matchtype); + extern Hash *Swig_typemap_search_multi(const_String_or_char_ptr op, ParmList *parms, int *nmatch); + extern String *Swig_typemap_lookup(const_String_or_char_ptr op, Node *n, const_String_or_char_ptr lname, Wrapper *f); + extern String *Swig_typemap_lookup_out(const_String_or_char_ptr op, Node *n, const_String_or_char_ptr lname, Wrapper *f, String *actioncode); + extern void Swig_typemap_attach_kwargs(Hash *tm, const_String_or_char_ptr op, Parm *p); extern void Swig_typemap_new_scope(void); extern Hash *Swig_typemap_pop_scope(void); - extern void Swig_typemap_attach_parms(const String_or_char *op, ParmList *parms, Wrapper *f); + extern void Swig_typemap_attach_parms(const_String_or_char_ptr op, ParmList *parms, Wrapper *f); /* --- Code fragment support --- */ diff --git a/Source/Swig/swigfile.h b/Source/Swig/swigfile.h index c945fb1ac..92c7945e6 100644 --- a/Source/Swig/swigfile.h +++ b/Source/Swig/swigfile.h @@ -9,24 +9,25 @@ /* $Id: swig.h 9603 2006-12-05 21:47:01Z beazley $ */ -extern List *Swig_add_directory(const String_or_char *dirname); -extern void Swig_push_directory(const String_or_char *dirname); -extern void Swig_pop_directory(); -extern String *Swig_last_file(); -extern List *Swig_search_path(); -extern FILE *Swig_open(const String_or_char *name); +extern List *Swig_add_directory(const_String_or_char_ptr dirname); +extern void Swig_push_directory(const_String_or_char_ptr dirname); +extern void Swig_pop_directory(void); +extern String *Swig_last_file(void); +extern List *Swig_search_path(void); +extern FILE *Swig_include_open(const_String_or_char_ptr name); +extern FILE *Swig_open(const_String_or_char_ptr name); extern String *Swig_read_file(FILE *f); -extern String *Swig_include(const String_or_char *name); -extern String *Swig_include_sys(const String_or_char *name); -extern int Swig_insert_file(const String_or_char *name, File *outfile); +extern String *Swig_include(const_String_or_char_ptr name); +extern String *Swig_include_sys(const_String_or_char_ptr name); +extern int Swig_insert_file(const_String_or_char_ptr name, File *outfile); extern void Swig_set_push_dir(int dopush); extern int Swig_get_push_dir(void); -extern void Swig_register_filebyname(const String_or_char *filename, File *outfile); -extern File *Swig_filebyname(const String_or_char *filename); -extern char *Swig_file_suffix(const String_or_char *filename); -extern char *Swig_file_basename(const String_or_char *filename); -extern char *Swig_file_filename(const String_or_char *filename); -extern char *Swig_file_dirname(const String_or_char *filename); +extern void Swig_register_filebyname(const_String_or_char_ptr filename, File *outfile); +extern File *Swig_filebyname(const_String_or_char_ptr filename); +extern char *Swig_file_suffix(const_String_or_char_ptr filename); +extern char *Swig_file_basename(const_String_or_char_ptr filename); +extern char *Swig_file_filename(const_String_or_char_ptr filename); +extern char *Swig_file_dirname(const_String_or_char_ptr filename); /* Delimiter used in accessing files and directories */ diff --git a/Source/Swig/swigopt.h b/Source/Swig/swigopt.h index 428d90dce..11eb5ba99 100644 --- a/Source/Swig/swigopt.h +++ b/Source/Swig/swigopt.h @@ -13,4 +13,4 @@ extern void Swig_mark_arg(int n); extern int Swig_check_marked(int n); extern void Swig_check_options(int check_input); - extern void Swig_arg_error(); + extern void Swig_arg_error(void); diff --git a/Source/Swig/swigparm.h b/Source/Swig/swigparm.h index 529438bae..49ae7992e 100644 --- a/Source/Swig/swigparm.h +++ b/Source/Swig/swigparm.h @@ -11,7 +11,7 @@ /* $Id: swig.h 9629 2006-12-30 18:27:47Z beazley $ */ /* Individual parameters */ -extern Parm *NewParm(SwigType *type, const String_or_char *name); +extern Parm *NewParm(SwigType *type, const_String_or_char_ptr name); extern Parm *CopyParm(Parm *p); /* Parameter lists */ diff --git a/Source/Swig/swigscan.h b/Source/Swig/swigscan.h index 2486286a9..3403098df 100644 --- a/Source/Swig/swigscan.h +++ b/Source/Swig/swigscan.h @@ -11,11 +11,11 @@ typedef struct Scanner Scanner; -extern Scanner *NewScanner(); +extern Scanner *NewScanner(void); extern void DelScanner(Scanner *); extern void Scanner_clear(Scanner *); extern void Scanner_push(Scanner *, String *); -extern void Scanner_pushtoken(Scanner *, int, const String_or_char *value); +extern void Scanner_pushtoken(Scanner *, int, const_String_or_char_ptr value); extern int Scanner_token(Scanner *); extern String *Scanner_text(Scanner *); extern void Scanner_skip_line(Scanner *); diff --git a/Source/Swig/swigtree.h b/Source/Swig/swigtree.h index 2e5c4da36..5b43006a9 100644 --- a/Source/Swig/swigtree.h +++ b/Source/Swig/swigtree.h @@ -31,7 +31,7 @@ /* Utility functions */ -extern int checkAttribute(Node *obj, const String_or_char *name, const String_or_char *value); +extern int checkAttribute(Node *obj, const_String_or_char_ptr name, const_String_or_char_ptr value); extern void appendChild(Node *node, Node *child); extern void prependChild(Node *node, Node *child); extern void removeNode(Node *node); diff --git a/Source/Swig/swigwrap.h b/Source/Swig/swigwrap.h index 25eeb6f7f..0dcf88059 100644 --- a/Source/Swig/swigwrap.h +++ b/Source/Swig/swigwrap.h @@ -16,14 +16,14 @@ typedef struct Wrapper { String *code; } Wrapper; -extern Wrapper *NewWrapper(); +extern Wrapper *NewWrapper(void); extern void DelWrapper(Wrapper *w); extern void Wrapper_compact_print_mode_set(int flag); extern void Wrapper_pretty_print(String *str, File *f); extern void Wrapper_compact_print(String *str, File *f); extern void Wrapper_print(Wrapper *w, File *f); -extern int Wrapper_add_local(Wrapper *w, const String_or_char *name, const String_or_char *decl); -extern int Wrapper_add_localv(Wrapper *w, const String_or_char *name, ...); -extern int Wrapper_check_local(Wrapper *w, const String_or_char *name); -extern char *Wrapper_new_local(Wrapper *w, const String_or_char *name, const String_or_char *decl); -extern char *Wrapper_new_localv(Wrapper *w, const String_or_char *name, ...); +extern int Wrapper_add_local(Wrapper *w, const_String_or_char_ptr name, const_String_or_char_ptr decl); +extern int Wrapper_add_localv(Wrapper *w, const_String_or_char_ptr name, ...); +extern int Wrapper_check_local(Wrapper *w, const_String_or_char_ptr name); +extern char *Wrapper_new_local(Wrapper *w, const_String_or_char_ptr name, const_String_or_char_ptr decl); +extern char *Wrapper_new_localv(Wrapper *w, const_String_or_char_ptr name, ...); diff --git a/Source/Swig/symbol.c b/Source/Swig/symbol.c index c9691fa54..055af854f 100644 --- a/Source/Swig/symbol.c +++ b/Source/Swig/symbol.c @@ -220,7 +220,7 @@ void Swig_symbol_init() { * Set the C scopename of the current symbol table. * ----------------------------------------------------------------------------- */ -void Swig_symbol_setscopename(const String_or_char *name) { +void Swig_symbol_setscopename(const_String_or_char_ptr name) { String *qname; /* assert(!Getattr(current_symtab,"name")); */ Setattr(current_symtab, "name", name); @@ -250,10 +250,10 @@ String *Swig_symbol_getscopename() { * Given a fully qualified C scopename, this function returns a symbol table * ----------------------------------------------------------------------------- */ -Symtab *Swig_symbol_getscope(const String_or_char *name) { +Symtab *Swig_symbol_getscope(const_String_or_char_ptr name) { if (!symtabs) return 0; - if (Equal("::", (String_or_char *) name)) + if (Equal("::", (const_String_or_char_ptr ) name)) name = ""; return Getattr(symtabs, name); } @@ -373,7 +373,7 @@ Symtab *Swig_symbol_current() { * Makes an alias for a symbol in the global symbol table. * ----------------------------------------------------------------------------- */ -void Swig_symbol_alias(String_or_char *aliasname, Symtab *s) { +void Swig_symbol_alias(const_String_or_char_ptr aliasname, Symtab *s) { String *qname = Swig_symbol_qualifiedscopename(current_symtab); if (qname) { Printf(qname, "::%s", aliasname); @@ -421,7 +421,7 @@ void Swig_symbol_inherit(Symtab *s) { * Adds a node to the C symbol table only. * ----------------------------------------------------------------------------- */ -void Swig_symbol_cadd(String_or_char *name, Node *n) { +void Swig_symbol_cadd(const_String_or_char_ptr name, Node *n) { Node *append = 0; Node *cn; @@ -594,7 +594,7 @@ void Swig_symbol_cadd(String_or_char *name, Node *n) { * for namespace support, type resolution, and other issues. * ----------------------------------------------------------------------------- */ -Node *Swig_symbol_add(String_or_char *symname, Node *n) { +Node *Swig_symbol_add(const_String_or_char_ptr symname, Node *n) { Hash *c, *cn, *cl = 0; SwigType *decl, *ndecl; String *cstorage, *nstorage; @@ -827,7 +827,7 @@ Node *Swig_symbol_add(String_or_char *symname, Node *n) { * verifying that a class hierarchy implements all pure virtual methods. * ----------------------------------------------------------------------------- */ -static Node *_symbol_lookup(String *name, Symtab *symtab, int (*check) (Node *n)) { +static Node *_symbol_lookup(const String *name, Symtab *symtab, int (*check) (Node *n)) { Node *n; List *inherit; Hash *sym = Getattr(symtab, "csymtab"); @@ -890,7 +890,7 @@ static Node *_symbol_lookup(String *name, Symtab *symtab, int (*check) (Node *n) return 0; } -static Node *symbol_lookup(String_or_char *name, Symtab *symtab, int (*check) (Node *n)) { +static Node *symbol_lookup(const_String_or_char_ptr name, Symtab *symtab, int (*check) (Node *n)) { Node *n = 0; if (DohCheck(name)) { n = _symbol_lookup(name, symtab, check); @@ -908,7 +908,7 @@ static Node *symbol_lookup(String_or_char *name, Symtab *symtab, int (*check) (N * symbol_lookup_qualified() * ----------------------------------------------------------------------------- */ -static Node *symbol_lookup_qualified(String_or_char *name, Symtab *symtab, String *prefix, int local, int (*checkfunc) (Node *n)) { +static Node *symbol_lookup_qualified(const_String_or_char_ptr name, Symtab *symtab, const String *prefix, int local, int (*checkfunc) (Node *n)) { /* This is a little funky, we search by fully qualified names */ if (!symtab) @@ -928,6 +928,7 @@ static Node *symbol_lookup_qualified(String_or_char *name, Symtab *symtab, Strin /* Make qualified name of current scope */ String *qalloc = 0; String *qname = Swig_symbol_qualifiedscopename(symtab); + const String *cqname; if (qname) { if (Len(qname)) { if (prefix && Len(prefix)) { @@ -937,10 +938,11 @@ static Node *symbol_lookup_qualified(String_or_char *name, Symtab *symtab, Strin Append(qname, prefix); } qalloc = qname; + cqname = qname; } else { - qname = prefix; + cqname = prefix; } - st = Getattr(symtabs, qname); + st = Getattr(symtabs, cqname); /* Found a scope match */ if (st) { if (!name) { @@ -974,7 +976,7 @@ static Node *symbol_lookup_qualified(String_or_char *name, Symtab *symtab, Strin * to get the real node. * ----------------------------------------------------------------------------- */ -Node *Swig_symbol_clookup(String_or_char *name, Symtab *n) { +Node *Swig_symbol_clookup(const_String_or_char_ptr name, Symtab *n) { Hash *hsym = 0; Node *s = 0; @@ -1046,7 +1048,7 @@ Node *Swig_symbol_clookup(String_or_char *name, Symtab *n) { * inheritance hierarchy. * ----------------------------------------------------------------------------- */ -Node *Swig_symbol_clookup_check(String_or_char *name, Symtab *n, int (*checkfunc) (Node *n)) { +Node *Swig_symbol_clookup_check(const_String_or_char_ptr name, Symtab *n, int (*checkfunc) (Node *n)) { Hash *hsym = 0; Node *s = 0; @@ -1110,7 +1112,7 @@ Node *Swig_symbol_clookup_check(String_or_char *name, Symtab *n, int (*checkfunc * Swig_symbol_clookup_local() * ----------------------------------------------------------------------------- */ -Node *Swig_symbol_clookup_local(String_or_char *name, Symtab *n) { +Node *Swig_symbol_clookup_local(const_String_or_char_ptr name, Symtab *n) { Hash *h, *hsym; Node *s = 0; @@ -1158,7 +1160,7 @@ Node *Swig_symbol_clookup_local(String_or_char *name, Symtab *n) { * Swig_symbol_clookup_local_check() * ----------------------------------------------------------------------------- */ -Node *Swig_symbol_clookup_local_check(String_or_char *name, Symtab *n, int (*checkfunc) (Node *)) { +Node *Swig_symbol_clookup_local_check(const_String_or_char_ptr name, Symtab *n, int (*checkfunc) (Node *)) { Hash *h, *hsym; Node *s = 0; @@ -1209,7 +1211,7 @@ Node *Swig_symbol_clookup_local_check(String_or_char *name, Symtab *n, int (*che * Look up a scope name. * ----------------------------------------------------------------------------- */ -Symtab *Swig_symbol_cscope(String_or_char *name, Symtab *symtab) { +Symtab *Swig_symbol_cscope(const_String_or_char_ptr name, Symtab *symtab) { char *cname = Char(name); if (strncmp(cname, "::", 2) == 0) return symbol_lookup_qualified(0, global_scope, name, 0, 0); diff --git a/Source/Swig/tree.c b/Source/Swig/tree.c index 61dca8353..14d231afa 100644 --- a/Source/Swig/tree.c +++ b/Source/Swig/tree.c @@ -229,7 +229,7 @@ Node *copyNode(Node *n) { * checkAttribute() * ----------------------------------------------------------------------------- */ -int checkAttribute(Node *n, const String_or_char *name, const String_or_char *value) { +int checkAttribute(Node *n, const_String_or_char_ptr name, const_String_or_char_ptr value) { String *v = Getattr(n, name); return v ? Equal(v, value) : 0; } diff --git a/Source/Swig/typemap.c b/Source/Swig/typemap.c index 6cbeb67ea..401a99801 100644 --- a/Source/Swig/typemap.c +++ b/Source/Swig/typemap.c @@ -107,7 +107,7 @@ void Swig_typemap_init() { tm_scope = 0; } -static String *tmop_name(const String_or_char *op) { +static String *tmop_name(const_String_or_char_ptr op) { static Hash *names = 0; String *s; /* Due to "interesting" object-identity semantics of DOH, @@ -164,7 +164,7 @@ Hash *Swig_typemap_pop_scope() { * Add a new multi-valued typemap * ----------------------------------------------------------------------------- */ -void Swig_typemap_register(const String_or_char *op, ParmList *parms, String_or_char *code, ParmList *locals, ParmList *kwargs) { +void Swig_typemap_register(const_String_or_char_ptr op, ParmList *parms, const_String_or_char_ptr code, ParmList *locals, ParmList *kwargs) { Hash *tm; Hash *tm1; Hash *tm2; @@ -270,7 +270,7 @@ void Swig_typemap_register(const String_or_char *op, ParmList *parms, String_or_ * Retrieve typemap information from current scope. * ----------------------------------------------------------------------------- */ -static Hash *Swig_typemap_get(SwigType *type, String_or_char *name, int scope) { +static Hash *Swig_typemap_get(SwigType *type, const_String_or_char_ptr name, int scope) { Hash *tm, *tm1; /* See if this type has been seen before */ if ((scope < 0) || (scope > tm_scope)) @@ -292,7 +292,7 @@ static Hash *Swig_typemap_get(SwigType *type, String_or_char *name, int scope) { * Copy a typemap * ----------------------------------------------------------------------------- */ -int Swig_typemap_copy(const String_or_char *op, ParmList *srcparms, ParmList *parms) { +int Swig_typemap_copy(const_String_or_char_ptr op, ParmList *srcparms, ParmList *parms) { Hash *tm = 0; String *tmop; Parm *p; @@ -347,7 +347,7 @@ int Swig_typemap_copy(const String_or_char *op, ParmList *srcparms, ParmList *pa * Delete a multi-valued typemap * ----------------------------------------------------------------------------- */ -void Swig_typemap_clear(const String_or_char *op, ParmList *parms) { +void Swig_typemap_clear(const_String_or_char_ptr op, ParmList *parms) { SwigType *type; String *name; Parm *p; @@ -590,7 +590,7 @@ static SwigType *strip_arrays(SwigType *type) { * that includes a 'code' attribute. * ----------------------------------------------------------------------------- */ -Hash *Swig_typemap_search(const String_or_char *op, SwigType *type, const String_or_char *name, SwigType **matchtype) { +Hash *Swig_typemap_search(const_String_or_char_ptr op, SwigType *type, const_String_or_char_ptr name, SwigType **matchtype) { Hash *result = 0, *tm, *tm1, *tma; Hash *backup = 0; SwigType *noarrays = 0; @@ -737,7 +737,7 @@ ret_result: * Search for a multi-valued typemap. * ----------------------------------------------------------------------------- */ -Hash *Swig_typemap_search_multi(const String_or_char *op, ParmList *parms, int *nmatch) { +Hash *Swig_typemap_search_multi(const_String_or_char_ptr op, ParmList *parms, int *nmatch) { SwigType *type; SwigType *mtype = 0; String *name; @@ -1173,7 +1173,7 @@ static void typemap_locals(DOHString * s, ParmList *l, Wrapper *f, int argnum) { * $1 in the out typemap will be replaced by the code in actioncode. * ----------------------------------------------------------------------------- */ -static String *Swig_typemap_lookup_impl(const String_or_char *op, Node *node, const String_or_char *lname, Wrapper *f, String *actioncode) { +static String *Swig_typemap_lookup_impl(const_String_or_char_ptr op, Node *node, const_String_or_char_ptr lname, Wrapper *f, String *actioncode) { SwigType *type; SwigType *mtype = 0; String *pname; @@ -1384,13 +1384,13 @@ static String *Swig_typemap_lookup_impl(const String_or_char *op, Node *node, co return s; } -String *Swig_typemap_lookup_out(const String_or_char *op, Node *node, const String_or_char *lname, Wrapper *f, String *actioncode) { +String *Swig_typemap_lookup_out(const_String_or_char_ptr op, Node *node, const_String_or_char_ptr lname, Wrapper *f, String *actioncode) { assert(actioncode); assert(Cmp(op, "out") == 0); return Swig_typemap_lookup_impl(op, node, lname, f, actioncode); } -String *Swig_typemap_lookup(const String_or_char *op, Node *node, const String_or_char *lname, Wrapper *f) { +String *Swig_typemap_lookup(const_String_or_char_ptr op, Node *node, const_String_or_char_ptr lname, Wrapper *f) { return Swig_typemap_lookup_impl(op, node, lname, f, 0); } @@ -1406,7 +1406,7 @@ String *Swig_typemap_lookup(const String_or_char *op, Node *node, const String_o * A new attribute called "tmap:in:foo" with value "xyz" is attached to p. * ----------------------------------------------------------------------------- */ -void Swig_typemap_attach_kwargs(Hash *tm, const String_or_char *op, Parm *p) { +void Swig_typemap_attach_kwargs(Hash *tm, const_String_or_char_ptr op, Parm *p) { String *temp = NewStringEmpty(); Parm *kw = Getattr(tm, "kwargs"); while (kw) { @@ -1438,7 +1438,7 @@ void Swig_typemap_attach_kwargs(Hash *tm, const String_or_char *op, Parm *p) { * attribute, print that warning message. * ----------------------------------------------------------------------------- */ -static void Swig_typemap_warn(const String_or_char *op, Parm *p) { +static void Swig_typemap_warn(const_String_or_char_ptr op, Parm *p) { String *temp = NewStringf("%s:warning", op); String *w = Getattr(p, tmop_name(temp)); Delete(temp); @@ -1447,7 +1447,7 @@ static void Swig_typemap_warn(const String_or_char *op, Parm *p) { } } -static void Swig_typemap_emit_code_fragments(const String_or_char *op, Parm *p) { +static void Swig_typemap_emit_code_fragments(const_String_or_char_ptr op, Parm *p) { String *temp = NewStringf("%s:fragment", op); String *f = Getattr(p, tmop_name(temp)); if (f) { @@ -1467,7 +1467,7 @@ static void Swig_typemap_emit_code_fragments(const String_or_char *op, Parm *p) * given typemap type * ----------------------------------------------------------------------------- */ -String *Swig_typemap_get_option(Hash *tm, String *name) { +String *Swig_typemap_get_option(Hash *tm, const_String_or_char_ptr name) { Parm *kw = Getattr(tm, "kwargs"); while (kw) { String *kname = Getattr(kw, "name"); @@ -1479,7 +1479,7 @@ String *Swig_typemap_get_option(Hash *tm, String *name) { return 0; } -void Swig_typemap_attach_parms(const String_or_char *op, ParmList *parms, Wrapper *f) { +void Swig_typemap_attach_parms(const_String_or_char_ptr op, ParmList *parms, Wrapper *f) { Parm *p, *firstp; Hash *tm; int nmatch = 0; diff --git a/Source/Swig/typeobj.c b/Source/Swig/typeobj.c index 18d1b2304..8ff31bc0b 100644 --- a/Source/Swig/typeobj.c +++ b/Source/Swig/typeobj.c @@ -110,7 +110,7 @@ char cvsroot_typeobj_c[] = "$Id$"; * ----------------------------------------------------------------------------- */ #ifdef NEW -SwigType *NewSwigType(const String_or_char *initial) { +SwigType *NewSwigType(const_String_or_char_ptr initial) { return NewString(initial); } @@ -419,7 +419,7 @@ int SwigType_isreference(SwigType *t) { * stored in exactly the same way as "q(const volatile)". * ----------------------------------------------------------------------------- */ -SwigType *SwigType_add_qualifier(SwigType *t, const String_or_char *qual) { +SwigType *SwigType_add_qualifier(SwigType *t, const_String_or_char_ptr qual) { char temp[256], newq[256]; int sz, added = 0; char *q, *cqual; @@ -537,7 +537,7 @@ SwigType *SwigType_functionpointer_decompose(SwigType *t) { * Add, remove, and test for C++ pointer to members. * ----------------------------------------------------------------------------- */ -SwigType *SwigType_add_memberpointer(SwigType *t, const String_or_char *name) { +SwigType *SwigType_add_memberpointer(SwigType *t, const_String_or_char_ptr name) { String *temp = NewStringf("m(%s).", name); Insert(t, 0, temp); Delete(temp); @@ -579,7 +579,7 @@ int SwigType_ismemberpointer(SwigType *t) { * SwigType_pop_arrays() - Remove all arrays * ----------------------------------------------------------------------------- */ -SwigType *SwigType_add_array(SwigType *t, const String_or_char *size) { +SwigType *SwigType_add_array(SwigType *t, const_String_or_char_ptr size) { char temp[512]; strcpy(temp, "a("); strcat(temp, Char(size)); @@ -673,7 +673,7 @@ String *SwigType_array_getdim(SwigType *t, int n) { } /* Replace nth array dimension */ -void SwigType_array_setdim(SwigType *t, int n, const String_or_char *rep) { +void SwigType_array_setdim(SwigType *t, int n, const_String_or_char_ptr rep) { String *result = 0; char temp; char *start; diff --git a/Source/Swig/typesys.c b/Source/Swig/typesys.c index a9e2898bd..2562e12f8 100644 --- a/Source/Swig/typesys.c +++ b/Source/Swig/typesys.c @@ -163,7 +163,7 @@ void SwigType_typesystem_init() { * already defined. * ----------------------------------------------------------------------------- */ -int SwigType_typedef(SwigType *type, String_or_char *name) { +int SwigType_typedef(SwigType *type, const_String_or_char_ptr name) { if (Getattr(current_typetab, name)) return -1; /* Already defined */ if (Strcmp(type, name) == 0) { /* Can't typedef a name to itself */ @@ -193,7 +193,7 @@ int SwigType_typedef(SwigType *type, String_or_char *name) { * Defines a class in the current scope. * ----------------------------------------------------------------------------- */ -int SwigType_typedef_class(String_or_char *name) { +int SwigType_typedef_class(const_String_or_char_ptr name) { String *cname; /* Printf(stdout,"class : '%s'\n", name); */ if (Getattr(current_typetab, name)) @@ -232,7 +232,7 @@ String *SwigType_scope_name(Typetab *ttab) { * Creates a new scope * ----------------------------------------------------------------------------- */ -void SwigType_new_scope(const String_or_char *name) { +void SwigType_new_scope(const_String_or_char_ptr name) { Typetab *s; Hash *ttab; String *qname; @@ -539,7 +539,7 @@ static SwigType *typedef_resolve(Typetab *s, String *base) { * ----------------------------------------------------------------------------- */ /* #define SWIG_DEBUG */ -SwigType *SwigType_typedef_resolve(SwigType *t) { +SwigType *SwigType_typedef_resolve(const SwigType *t) { String *base; String *type = 0; String *r = 0; @@ -840,6 +840,7 @@ SwigType *SwigType_typedef_resolve_all(SwigType *t) { * * Given a type declaration, this function tries to fully qualify it according to * typedef scope rules. + * Inconsistency to be fixed: ::Foo returns ::Foo, whereas ::Foo * returns Foo * * ----------------------------------------------------------------------------- */ SwigType *SwigType_typedef_qualified(SwigType *t) { @@ -1071,7 +1072,7 @@ int SwigType_istypedef(SwigType *t) { * Name is a qualified name like A::B. * ----------------------------------------------------------------------------- */ -int SwigType_typedef_using(String_or_char *name) { +int SwigType_typedef_using(const_String_or_char_ptr name) { String *base; String *td; String *prefix; @@ -1415,7 +1416,7 @@ static Hash *r_remembered = 0; /* Hash of types we remembered already */ static void (*r_tracefunc) (SwigType *t, String *mangled, String *clientdata) = 0; -void SwigType_remember_mangleddata(String *mangled, const String_or_char *clientdata) { +void SwigType_remember_mangleddata(String *mangled, const_String_or_char_ptr clientdata) { if (!r_mangleddata) { r_mangleddata = NewHash(); } @@ -1423,7 +1424,7 @@ void SwigType_remember_mangleddata(String *mangled, const String_or_char *client } -void SwigType_remember_clientdata(SwigType *t, const String_or_char *clientdata) { +void SwigType_remember_clientdata(SwigType *t, const_String_or_char_ptr clientdata) { String *mt; SwigType *lt; Hash *h; diff --git a/Source/Swig/wrapfunc.c b/Source/Swig/wrapfunc.c index 3778066ce..11518bfc2 100644 --- a/Source/Swig/wrapfunc.c +++ b/Source/Swig/wrapfunc.c @@ -23,7 +23,7 @@ static int Max_line_size = 128; * Create a new wrapper function object. * ----------------------------------------------------------------------------- */ -Wrapper *NewWrapper() { +Wrapper *NewWrapper(void) { Wrapper *w; w = (Wrapper *) malloc(sizeof(Wrapper)); w->localh = NewHash(); @@ -406,7 +406,7 @@ void Wrapper_print(Wrapper *w, File *f) { * present (which may or may not be okay to the caller). * ----------------------------------------------------------------------------- */ -int Wrapper_add_local(Wrapper *w, const String_or_char *name, const String_or_char *decl) { +int Wrapper_add_local(Wrapper *w, const_String_or_char_ptr name, const_String_or_char_ptr decl) { /* See if the local has already been declared */ if (Getattr(w->localh, name)) { return -1; @@ -424,7 +424,7 @@ int Wrapper_add_local(Wrapper *w, const String_or_char *name, const String_or_ch * to manually construct the 'decl' string before calling. * ----------------------------------------------------------------------------- */ -int Wrapper_add_localv(Wrapper *w, const String_or_char *name, ...) { +int Wrapper_add_localv(Wrapper *w, const_String_or_char_ptr name, ...) { va_list ap; int ret; String *decl; @@ -451,7 +451,7 @@ int Wrapper_add_localv(Wrapper *w, const String_or_char *name, ...) { * Check to see if a local name has already been declared * ----------------------------------------------------------------------------- */ -int Wrapper_check_local(Wrapper *w, const String_or_char *name) { +int Wrapper_check_local(Wrapper *w, const_String_or_char_ptr name) { if (Getattr(w->localh, name)) { return 1; } @@ -465,7 +465,7 @@ int Wrapper_check_local(Wrapper *w, const String_or_char *name) { * used. Returns the name that was actually selected. * ----------------------------------------------------------------------------- */ -char *Wrapper_new_local(Wrapper *w, const String_or_char *name, const String_or_char *decl) { +char *Wrapper_new_local(Wrapper *w, const_String_or_char_ptr name, const_String_or_char_ptr decl) { int i; String *nname = NewString(name); String *ndecl = NewString(decl); @@ -496,7 +496,7 @@ char *Wrapper_new_local(Wrapper *w, const String_or_char *name, const String_or_ * to manually construct the 'decl' string before calling. * ----------------------------------------------------------------------------- */ -char *Wrapper_new_localv(Wrapper *w, const String_or_char *name, ...) { +char *Wrapper_new_localv(Wrapper *w, const_String_or_char_ptr name, ...) { va_list ap; char *ret; String *decl; |