Commit graph

166 commits

Author SHA1 Message Date
William S Fulton
edcdaaec16 Warning fixes for 64bit visual c++ on Windows 2015-07-03 20:59:24 +01:00
William S Fulton
cc6970e21f Documentation improvements for -o and -oh options 2015-06-12 06:32:58 +01:00
Olly Betts
df36d84f1b Avoid debug code segfaults when top==NULL 2015-02-26 14:59:49 +13:00
Olly Betts
cd16059c66 Provide -cppext as a general command line option
Provide -cppext as a general command line option for setting the
extension used for generated C++ files (previously it was specific
to the PHP backend).  Deprecate the equivalent -suffix option
provided by the Ocaml backend, but continue to support that for
now.
2015-01-08 10:54:37 +13:00
Olly Betts
0acebe2289 Split -help output into 4 chunks instead of 3
I believe the aim is to keep these below 2KB to avoid string literal
length limits on some compiler, but they slowly creep up in size, so
split into more chunks and rebalance the contents.
2015-01-08 10:14:18 +13:00
William S Fulton
bfde148887 The kwargs feature no longer turns on compactdefaultargs for languages that don't support kwargs.
Affects all languages except Python and Ruby.

Closes #242
2014-10-21 07:34:51 +01:00
William S Fulton
71e72c45ed Create separate extetnd.c file for handling extensions / %extend
This is just a simple code refactor, moving and function renaming to
remove the %extend code out of the parser into its own file now
 that it isn't just used in the parser.
2014-05-21 19:16:15 +01:00
Vladimir Kalinin
2aa540b9c0 %extend for nested unnamed C structs 2014-05-14 00:51:36 +04:00
Olly Betts
36be36d618 Eliminate needless casting away const from string constants 2014-04-30 12:00:23 +12:00
Vladimir Kalinin
2f3d93e93a Nested classes support is diversified, depending on the language capability. If the language cannot support nested classes, they will be unconditionally moved to the global namespace. If language module does not override Language::nestedClassesSupport() function, nested classes will be ignored, unless "feature:flatnested" is used. 2014-02-02 22:38:13 +04:00
William S Fulton
5c6bc5db3e Remove -nonaturalvar and nonaturalvar option in %module
These didn't work, were not documented and don't seem necessary
2014-01-11 19:34:44 +00:00
William S Fulton
2121e1217e Ensure -c++out is not used with -c++
Error checking for this combination implemented as well as correcting
Octave

Also refactor, replacing CPlusPlusOut variable with cparse_cplusplusout
for an implementation which more closely resembles cparse_cplusplus which
is also required in both .c and .cxx files.
2013-12-12 20:52:44 +00:00
William S Fulton
6d97335d94 Minor tweaks in Swig_feature_set 2013-12-05 21:21:07 +00:00
Vladimir Kalinin
b0afa8a95c nested private classes are discarded while parsing
nested relate functions are moved to nested.cxx and renamed accordingly
2013-12-05 20:41:22 +04:00
William S Fulton
b65ba2a8db Minor code improvements 2013-11-29 07:33:55 +00:00
William S Fulton
44a883a057 Cosmetics/code beautification of nested class support 2013-11-29 07:29:58 +00:00
Vladimir Kalinin
b63c4839fe Nested classes support
Closes #89
Squash merge branch 'master' of https://github.com/wkalinin/swig into wkalinin-nested

By Vladimir Kalinin
* 'master' of https://github.com/wkalinin/swig:
  CPlusPlusOut mode for Octave
  nested class illustration
  fixed "Abstract" flag for nested classes added an example enabled anonymous nested structs runtime test
  porting
  warnings disabled
  porting fixes
  java runtime tests ported
  nested class closing bracket offset fixed
  removed double nested template (not supported by %template parsing)
  template_nested test extended
  parent field made public
  property access fixed
  replaced tabs with spaces
  warning W-reorder
  deprecated warnings removed, derived_nested runtime test added
  optimized string indenting
  Nested classes indenting
  nested classes docs
  fixed the order in which flattened inner classes are added after the outer
  Private nested classes were getting into the type table.
  Java getProxyName() fix for nested classes fixes the case when nested classes is forward declared
  Fix for a case when a nested class inherits from the same base as the outer. (Base class constructor declaration is found first in this case)
  merge fix
  nested C struct first immediate declaration incorrectly renamed sample fixed
  tests updated to reflect nested classes support
  Java nested classes support (1)
  flattening should remove the link to the outer class
  access mode correctly set/restored for nested classes
  nested templates should be skipped while flattening (template nodes themselves, not expanded versions) also non-public nested classes should be ignored
  If nested classes are not supported, default behaviour is flattening, not ignoring flag "nested" is preserved, so, the nested classes can be ignored by user
  nested workaround test updated
  template instantiated within a class is marked as nested for ignoring purposes
  %ignore not applied to the nested classed, because "nested" flag is set too late
  typedef name takes precedence over the real name (reason?)
  unnamed structs should be processed for all the languages
  nested C struct instances are wrapped as "immutable"
  tree building
  typedef declaration for unnamed C structures fixed
  nested classes "flattening"
  fixed %ignoring nested classes
  renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
  renamed "nested" attribute to "nested:outer" added "nested" flag, to be used with $ignore (it is not removed while flattening) added nestedClassesSupported() function to the Language interface
  tree iteration fix
  dirclassname variable names unified memory issue fixed
  merge error
  ignore unnamed structs for C++
  unnamed nested C structs naming & unnesting
  class added to classes hash under typedef name
  private nested classes skipped
  test updated due to nested templates support
  anonymous structs with inheritance fixed nested_class test to allow anonymous structs w/o declarator
  tests updated: nested workaround removed from namespace_class.i propagated nested template declaration to the C++ file
  injected members scope
  nested tempplates fixes, nested structures in "C" mode parsing added utility function "appendSibling" (like "appendChild")
  nested unnamed structures parsing fixes, access mode restored on nested class end, tdname is properly patched with outer class name prefix
  memory management fixes
  nested templates (1)
  Nested unnamed structs
  Nested class support (1)
  Nested class support (1)
2013-11-29 07:02:34 +00:00
Karl Wette
611acbf944 Add -MP option for generating phony targets for all dependencies
- Modelled on similar option in GCC
2013-04-15 22:17:48 +02:00
William S Fulton
7841a0d097 Remove cvs/svn Id strings 2013-01-12 01:21:16 +00:00
William S Fulton
d918bddfc0 Fix segfaults when using filename paths greater than 1024 characters in length - use String * and heap instead of fixed size static char array buffers.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13904 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-18 00:45:18 +00:00
William S Fulton
5a1e82a2f4 Remove DohClose (Close) and replace with calls to DohDelete (Delete) to fix some minor memory leaks in most uses of NewFile.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@13885 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2012-11-14 22:16:07 +00:00
William S Fulton
cc85a98f73 Remove duplicate macros when using -external-runtime
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12847 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-11-28 06:38:46 +00:00
William S Fulton
3aafb96325 Bug fix: Remove root directory from directory search list in Windows.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12841 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-11-18 07:03:49 +00:00
William S Fulton
a63d456f8a Remove redundant code highlighted by warnings in gcc-4.6
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12536 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2011-03-14 07:22:08 +00:00
William S Fulton
766ed8db37 Add -pcreversion option to display PCRE version information
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12239 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-10-01 23:52:46 +00:00
Vadim Zeitlin
89a7ab0685 Include the values of configurable options in swig -version.
Show the value of important compilation options in swig -version output.

Currently there is just one such option, for PCRE use, but more may be added
in the future.

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@12176 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-07-22 17:02:55 +00:00
William S Fulton
c5b25bde5a Fix incorrect current directory handling from last commit
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11946 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-03-13 23:24:15 +00:00
William S Fulton
4f88d641af Better handling of file paths containing multiple path separators. Fix recent regression incorrectly detecting a directory on Windows when the output directory is not the current directory.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11944 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-03-13 22:28:24 +00:00
William S Fulton
cb64f65bae SWIG license change - Source moves to GPLv3
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11876 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-27 23:53:33 +00:00
William S Fulton
6c275f00d9 Add in possibility to use scopes in target language module symbol table
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11855 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-12 23:20:58 +00:00
William S Fulton
f4cfc9bce5 Add the -debug-lsymbols option for displaying the target language layer symbols.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11854 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-11 22:56:39 +00:00
William S Fulton
791fabbd51 Fix -MM and -MMD options on Windows. They were not omitting files in the SWIG library as they should be
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11851 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-09 23:39:31 +00:00
William S Fulton
d0ecd36ade Add Swig_filename_escape for library files added with -l ... not entirely sure this is needed, but no harm done
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11849 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-09 00:21:03 +00:00
William S Fulton
e810d025c9 Slight text change for the language subdirectory when using verbose output and change to use Printf rather than printf
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11848 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-08 23:21:14 +00:00
William S Fulton
207ba5ce39 Fix #1807329 - When Makefile dependencies are being generated using the -M family of options on Windows, the file paths have been corrected to use single backslashes rather than double backslashes as path separators.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11847 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-08 23:12:27 +00:00
William S Fulton
81d5e6c7f5 compile fix after last checkin
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11844 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-06 14:12:03 +00:00
William S Fulton
365afcd017 minor code tidy up
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11843 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-06 13:42:45 +00:00
William S Fulton
4d028a0307 Fix #2918902 - language specific files not being generated in correct directory on Windows when using forward slashes and -o
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11842 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-06 01:46:58 +00:00
William S Fulton
751b8d3b45 Fix #2894405 - assertion when using -xmlout.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11841 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-02-05 22:22:35 +00:00
William S Fulton
83bd820285 Add typemaps used debugging option (-debug-tmused). Fix missing file/line numbers for typemap warnings and in the output from the -debug-tmsearch/-debug-tmused options
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11802 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2010-01-04 19:33:52 +00:00
William S Fulton
d1ff2c6a8b Add -debug-tmsearch option for debugging the typemap pattern matching rules
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11790 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-12-20 00:24:34 +00:00
William S Fulton
cd53dc68ee remove SWIGMAC and SWIGWIN32/SWIGWIN macros which have no effect
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11739 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-13 18:34:54 +00:00
William S Fulton
deba0e9285 re-organise symbol debugging options - add in -debug-symbols and -debug-csymbols, and remove -debug-qsymtab
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11726 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-07 20:44:20 +00:00
William S Fulton
64d1b6f0c6 Add -debug-symtabs and -debug-qsymtabs options for debugging symbol tables
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11724 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-11-04 22:49:39 +00:00
William S Fulton
531c4454b8 Fix -co option which broke in 1.3.37 SF #2605955
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11135 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-20 20:55:16 +00:00
William S Fulton
efa11dee52 add new %begin directive for inserting code at top of wrapper file
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11133 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-02-20 07:52:24 +00:00
William S Fulton
a6adffe4d9 remove debugging output
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11094 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-29 21:20:31 +00:00
William S Fulton
90ab280f90 Fix regression introduced in 1.3.37 where the default output directory for target language specific files (in the absence of -outdir) was no longer the same as the generated c/c++ file
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11093 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-29 19:25:37 +00:00
Haoyu Bai
6d2aef67d9 Replaced all [const] String_or_char * to const_String_or_char_ptr, by the following command:
sed -i "s/\(const \)\?String_or_char \*/const_String_or_char_ptr /g" CParse/* Include/* Modules/* Preprocessor/* Swig/*

This is a preparation for moving to new DOH, since for strong typed objects we need the const_String_or_char_ptr class to implicit convert to and from String * or const char *.



git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11080 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-24 13:15:51 +00:00
William S Fulton
e65ea56530 Fix error display when there is a problem with CCACHE_OUTFILES
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11033 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2009-01-07 00:50:06 +00:00