tree 0b13e154013ab12d06cf0eadd4740d9fd9b79731
parent 6d86fb173915867bd70d6780a174bce3c5b3c1df
parent 4fed2e6690b1486952b0543b6bde28573eb0d132
author William S Fulton <wsf@fultondesigns.co.uk> 1421243155 +0000
committer William S Fulton <wsf@fultondesigns.co.uk> 1421243155 +0000

Merge branch 'master' into coverity-scan

* master: (478 commits)
  Use -rrbconfig rather than -rmkmf to load rbconfig
  Add suggestion to check block delimiter
  Add explanatory comment to pp_unknowndirective2.i
  Fix PHP crash in director_finalizer
  Add 3.0.4 release information
  Fix typo
  Note 1.8 as the oldest supported version
  Fix PHP backend for default_args testcase
  Update html
  Python 3 default args fix
  Revert introduction of python:defaultargs feature
  Ruby: Replace Config::CONFIG with RbConfig::CONFIG in configure.ac
  Add regression test for #217
  [PHP] Fix segfault in director upcall check
  Fix linux gcc warnings and strtol corrections
  Tests for Python default arguments and %pythondefaultargs.
  Python default arg improvements
  [lua/luarun] change return type from int to void on functions not returning anything
  Add note about delimiting blocks of Python code
  Fix python default_args testcase for Python 3
  Fix Python default argument handing broken since swig-3.0.3
  Python default argument test cases from issue #294
  Wording change for missing semicolon error
  Handle "constexpr explicit" and "constexpr static"
  Allow C++11 "explicit constexpr"
  Improve errors for missing ; and unexpected )
  Fix typo in old entry
  Add test coverage for unterminated %{ ... %} block
  When reporting an error for a construct which hasn't been terminated when the end of the file is reached, report it at the start line rather than "EOF" as then tools like editors and IDEs will take you to a generally more useful place for fixing the problem.
  Improve error message for extraneous '%}'.
  Add .gitignore for Examples/test-suite/errors/
  Fix testcase name in expected output
  Improve error message when an unknown SWIG directive is used
  Update link to point to 3.0 docs
  Fix links to the online 1.3 docs to instead be relative
  Drop deprecated warnings for ancient options
  Fix tab to space in HTML preformatted block
  Provide -cppext as a general command line option
  Split -help output into 4 chunks instead of 3
  More on Go examples [skip ci]
  Properly quote parameters in preinst-swig wrapper.
  Fix typo
  Bump version to 3.0.4
  HTML tweaks
  Add 3.0.3 release information
  Minor tweaks to the changes file
  %constant and structs support for Lua
  Fix D examples when run 'in-source'
  Fix D examples clean
  Revert "Fix D examples clean"
  Fix javascript clean
  Let Octave 3.8 fail in Travis
  Fix D examples clean
  Fix javascript clean
  Tidy up Javascript build system
  Don't delete checked in files with 'make distclean'
  Reduce scope of template_default_class_parms testcase
  Fix abort using template default parameters
  Test suite warning fixes
  [Perl] tidy "warning: duplicate 'extern' declaration specifier" when building generated code under clang
  Issue #282 perl5 archlib vs archlibexp
  [Go] Changed link 'https://github.com/golang/go/tree/master/misc/swig' to 'https://golang.org/misc/swig' in the Go documentation.
  [Go] Updated Go documentation (examples, runtime.SetFinalizer, object ownership).
  Added auto-generated 'Examples/d/example.mk' to '.gitignore'.
  Warning suppressions in tests
  nested_scope test fixes for clang
  Fix use of preprocessor null directive
  Add testcase for nested inner class deriving from a templated base class and defined outside of the outer class.
  Add in missing constant_directive.i test
  Improve Python builtin and %constant structs
  fixed python global object constants
  Partial support for %constant and structs
  Ignore E402 (import not on top of file) PEP8 error.
  Add PEP8_FLAGS variable to the test suite Python makefile.
  Fix templated constructors regression
  Correctly detect Go1 during configure
  Fix regression in introduced in merge of C++11 strongly typed enums support - Guile constants bad casts generated - Go non-public enum value wrappers assert failure
  Document new C++11 strongly typed enumerations support.
  Add more docs about _global_ prefix in typemap temporary variables
  Add clarification on _global_ prefix.
  Improve Javascript Webkit detection
  Add c++11 strongly typed enums runtime test for Javascript
  Add c++11 strongly typed enums runtime test for Octave
  Add c++11 strongly typed enum support for Guile
  Add c++11 strongly typed enum support for Go
  Add c++11 strongly typed enum support for D
  Add c++11 strongly typed enum support for Lua
  Fix line endings in lua example
  Add c++11 strongly typed enums runtime test for Tcl
  Add c++11 strongly typed enum support for PHP
  Add c++11 strongly typed enums runtime test for Ruby
  Add c++11 strongly typed enums runtime test for Perl
  Enhance C++11 strongly typed enums testcase
  C++11 strongly typed enums runtime test for python
  fix for nested template defined out of class (issue #265)
  C++11 strongly typed enum support
  Add Java runtime testcases for C++11 strongly typed enums
  add director_nested_class to list of broken tests
  Add C# support for wrapping C++11 strongly typed enums
  Enhance strongly typed enums testcase
  ...

Conflicts:
	.travis.yml
