diff options
author | Philip Balister <philip@balister.org> | 2018-10-04 12:43:22 -0400 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2018-10-04 16:07:55 -0700 |
commit | 0597b5c0bac2eac2849a0ced741de0b1f1b39b01 (patch) | |
tree | b3230791c77454e8792b85b52eb8a9c9c1b42826 /meta-oe | |
parent | f7b8505c448237eeabd7b6b5a8a1bef8d2b3a85b (diff) | |
download | meta-openembedded-contrib-0597b5c0bac2eac2849a0ced741de0b1f1b39b01.tar.gz |
sip: Update to 4.19.13.
* Deleted patch is in new version.
Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe')
-rw-r--r-- | meta-oe/recipes-devtools/sip/files/sip.patch | 31331 | ||||
-rw-r--r-- | meta-oe/recipes-devtools/sip/sip_4.19.13.bb (renamed from meta-oe/recipes-devtools/sip/sip_4.19.12.bb) | 5 |
2 files changed, 2 insertions, 31334 deletions
diff --git a/meta-oe/recipes-devtools/sip/files/sip.patch b/meta-oe/recipes-devtools/sip/files/sip.patch deleted file mode 100644 index c126beee75..0000000000 --- a/meta-oe/recipes-devtools/sip/files/sip.patch +++ /dev/null @@ -1,31331 +0,0 @@ -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/build.py sip/build.py ---- ./sip-4.19.12.orig/build.py 1969-12-31 19:00:00.000000000 -0500 -+++ sip/build.py 2018-09-18 17:52:23.269544132 -0400 -@@ -0,0 +1,131 @@ -+#!/usr/bin/python -+ -+# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> -+# -+# This file is part of SIP. -+# -+# This copy of SIP is licensed for use under the terms of the SIP License -+# Agreement. See the file LICENSE for more details. -+# -+# This copy of SIP may also used under the terms of the GNU General Public -+# License v2 or v3 as published by the Free Software Foundation which can be -+# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. -+# -+# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+"""This script prepares a repository copy of SIP for building. It should be -+run from a Mercurial repository. It is not part of a packaged release. -+""" -+ -+ -+import os -+import sys -+ -+ -+# Dummy version numbers. -+RM_HEXVERSION = '04ffff' -+RM_RELEASE = '4.255.255' -+ -+ -+def _progress(message, quiet): -+ """ Show a progress message to the user. """ -+ -+ if not quiet: -+ sys.stdout.write(message) -+ sys.stdout.write("\n") -+ -+ -+def _patch(name, quiet): -+ """ Patch a file with version information. """ -+ -+ _progress("Creating %s" % name, quiet) -+ -+ patched_f = open(name + '.in') -+ patched = patched_f.read() -+ patched_f.close() -+ -+ patched = patched.replace('@RM_HEXVERSION@', RM_HEXVERSION) -+ patched = patched.replace('@RM_RELEASE@', RM_RELEASE) -+ -+ patched_f = open(name, 'w') -+ patched_f.write(patched) -+ patched_f.close() -+ -+ -+def prepare(quiet): -+ """ Prepare for configuration and building by creating all the required -+ additional files. -+ """ -+ -+ sipgen = 'sipgen' -+ metasrc = os.path.join(sipgen, 'metasrc') -+ -+ lexer_l = os.path.join(metasrc, 'lexer.l') -+ lexer_c = os.path.join(sipgen, 'lexer.c') -+ _progress("Running flex to create %s" % lexer_c, quiet) -+ os.system('flex -o%s %s' % (lexer_c, lexer_l)) -+ -+ parser_y = os.path.join(metasrc, 'parser.y') -+ parser_c = os.path.join(sipgen, 'parser.c') -+ _progress("Running bison to create %s" % parser_c, quiet) -+ os.system('bison -y -d -o %s %s' % (parser_c, parser_y)) -+ -+ _patch(os.path.join('sipgen', 'sip.h'), quiet) -+ _patch(os.path.join('siplib', 'sip.h'), quiet) -+ _patch('configure.py', quiet) -+ -+ -+if __name__ == '__main__': -+ -+ def _prepare(options): -+ """prepare for configuration and building""" -+ -+ prepare(options.quiet) -+ -+ -+ actions = (_prepare, ) -+ -+ import optparse -+ -+ class MyParser(optparse.OptionParser): -+ -+ def get_usage(self): -+ """ Reimplemented to add the description of the actions. We don't -+ use the description because the default formatter strips newlines. -+ """ -+ -+ usage = optparse.OptionParser.get_usage(self) -+ -+ usage += "\n" + __doc__ + "\nActions:\n" -+ -+ for action in actions: -+ usage += " %-9s %s\n" % (action.__name__[1:], action.__doc__) -+ -+ return usage -+ -+ -+ action_names = [action.__name__[1:] for action in actions] -+ -+ parser = MyParser( -+ usage="%%prog [options] %s" % '|'.join(action_names)) -+ -+ parser.add_option("-q", "--quiet", action='store_true', default=False, -+ dest='quiet', help="suppress progress messages") -+ -+ options, args = parser.parse_args() -+ -+ if len(args) != 1: -+ parser.print_help() -+ sys.exit(1) -+ -+ for action in actions: -+ if action.__name__[1:] == args[0]: -+ action(options) -+ break -+ else: -+ parser.print_help() -+ sys.exit(1) -+ -+ sys.exit() -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/ChangeLog sip/ChangeLog ---- ./sip-4.19.12.orig/ChangeLog 2018-07-05 05:55:19.000000000 -0400 -+++ sip/ChangeLog 1969-12-31 19:00:00.000000000 -0500 -@@ -1,9785 +0,0 @@ --2018-07-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Released as v4.19.12. -- [290a78d4a00d] [4.19.12] <4.19-maint> -- -- * sphinx/installation.rst, sphinx/using.rst: -- Updated the docs regarding private copies of the sip module. -- [e30b9d2668c4] <4.19-maint> -- -- * NEWS, configure.py.in, sphinx/installation.rst: -- Added the --no-module option to configure.py. -- [02ab8cfda064] <4.19-maint> -- -- * configure.py.in: -- The --no-tools option does not install the sip.h. Fixed .dist-info -- for the code generator when --no-tools is specified. -- [b3633241320b] <4.19-maint> -- --2018-07-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [f4799b368aa1] <4.19-maint> -- -- * sipgen/main.c: -- Fixed the default sip module name. -- [30b34699ad64] <4.19-maint> -- -- * sipgen/gencode.c, siplib/array.c, siplib/sip.h.in, siplib/sipint.h, -- siplib/siplib.c, siplib/voidptr.c: -- Fixed the implementation of sipConvertFromSliceObject() so that -- generated modules still support the limited API. -- [5baed8e71fdb] <4.19-maint> -- -- * configure.py.in: -- Include the build system for all builds (not just legacy ones). -- [5443d32d2928] <4.19-maint> -- -- * configure.py.in: -- The mk_distinfo.py script now takes a temporary installation -- directory as an additional argument. -- [048f7a6100c8] <4.19-maint> -- -- * configure.py.in: -- Fixes for invoking mk_distinfo.py for out-of-tree builds. -- [ded7362cc94a] <4.19-maint> -- -- * siplib/siplib.c: -- Fixed a bug exposing traditional enum members in a class that also -- contains a C++11 scoped enum. -- [ccc4eda868de] <4.19-maint> -- --2018-07-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fix for installing sip.h with out-of-tree builds. -- [935f8cdab1b7] <4.19-maint> -- --2018-06-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.11 for changeset a7d0f8459788 -- [77add4c87760] <4.19-maint> -- -- * NEWS: -- Released as v4.19.11. -- [a7d0f8459788] [4.19.11] <4.19-maint> -- -- * NEWS: -- Updated the NEWS file. -- [373c872333a4] <4.19-maint> -- -- * sphinx/using.rst: -- Documented the need for the enum34 package for versions of Python -- earlier than v3.4. -- [379da5a152c4] <4.19-maint> -- --2018-06-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- Fixed the exception when a keyword argument overflows. -- [659e30e2c490] <4.19-maint> -- -- * siplib/siplib.c: -- Fixed a couple of Python v2 exception messages. -- [8b2f14850fcd] <4.19-maint> -- -- * siplib/siplib.c: -- Fixed a compilation issue with Python v2. -- [fea0057d2c29] <4.19-maint> -- --2018-06-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Handle const signal arguments (that are not pointers or references). -- [a7a3d5f49c09] <4.19-maint> -- --2018-06-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /ScopesStripped/ argument annotation. -- [ab62eae89111] <4.19-maint> -- --2018-06-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- The .dist-info directory now takes account of $(DESTDIR). -- [d6a17b9e8f21] <4.19-maint> -- -- * configure.py.in: -- Fixed out-of-tree builds. -- [81516a4441db] <4.19-maint> -- -- * sipgen/gencode.c: -- Further fixes for the stripping of scopes from signal arguments. -- [44dd1db98cf7] <4.19-maint> -- --2018-06-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.10 for changeset abf14ded1760 -- [8597a94e4d25] <4.19-maint> -- -- * NEWS: -- Released as v4.19.10. -- [abf14ded1760] [4.19.10] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed the stripping of scopes from signal arguments. -- [ce55e3219bc5] <4.19-maint> -- --2018-06-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.9 for changeset 21bc9fb06802 -- [8331b47585f6] <4.19-maint> -- -- * NEWS: -- Released as 4.19.9. -- [21bc9fb06802] [4.19.9] <4.19-maint> -- -- * build.py, configure.py.in: -- Fixes for building in situ. -- [500aa97cf889] <4.19-maint> -- --2018-06-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [0339dce88c21] <4.19-maint> -- --2018-06-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * METADATA.in: -- Updated the METADATA.in file to account for the private copy for -- PyQt5. -- [970b0223221f] <4.19-maint> -- --2018-06-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in, -- siplib/sip.h.in, siplib/siplib.c: -- The sip.h file no longer needs to be configured by the compiler -- invocation for the sip module name. Added the -n option to the code -- generator to configure the sip module name. -- [d2b3b20484bd] <4.19-maint> -- -- * sphinx/command_line.rst, sphinx/installation.rst, -- sphinx/introduction.rst.in, sphinx/python_api.rst, sphinx/using.rst: -- Updated the docs regarding private copies of the sip module. -- [76e24a5bc0c3] <4.19-maint> -- -- * sphinx/build_system.rst, sphinx/directives.rst, -- sphinx/installation.rst, sphinx/introduction.rst.in: -- Fixed all external links in the documentation. -- [31a654cb4d5a] <4.19-maint> -- -- * configure.py.in, siplib/sip.h.in, siplib/sip.h.in.in, -- siplib/siplib.c, siplib/siplib.c.in, siplib/siplib.sbf, -- siplib/siplib.sbf.in: -- Fixed issues when using the --sip-module option to build the sip -- module. -- [fc3023a254ce] <4.19-maint> -- --2018-06-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- More fixes for the /Transfer/ function annotation when applied to -- static methods. -- [69938bd3654c] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed the implemenation of the /Transfer/ method annotation for -- static methods. -- [e61b036cb050] <4.19-maint> -- --2018-06-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Clarified the docs for sipSetUserObject(). -- [8077330e3c1b] <4.19-maint> -- --2018-06-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Refactored the new enum visibility support so that normal attribute -- lookup in an enum works again (specifically for pickling). -- [6d59f2a57159] <4.19-maint> -- -- * NEWS, siplib/siplib.c.in, sphinx/using.rst: -- The members of traditional C/C++ enums are now visible within the -- scope of the enum. -- [79b93109033f] <4.19-maint> -- --2018-06-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * mk_distinfo.py: -- Removed the mk_distinfo.py script as it is now added during -- preparation. -- [b8400f2e1b7b] <4.19-maint> -- -- * mk_distinfo.py: -- Updated the copy of mk_distinfo.py. -- [3dd68ef638eb] <4.19-maint> -- --2018-06-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * mk_distinfo.py: -- Fixed a typo. -- [e687d71b4cc9] <4.19-maint> -- --2018-05-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed building for Python versions prior to v3.3. -- [91088a13f975] <4.19-maint> -- -- * configure.py.in: -- Fixes for the .dist-info support on Windows. -- [4773b53d98f0] <4.19-maint> -- -- * configure.py.in: -- Handle spaces in path names when building with qmake. -- [1757ff19b578] <4.19-maint> -- --2018-05-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, configure.py.in, mk_distinfo.py, siputils.py, -- sphinx/build_system.rst, sphinx/installation.rst: -- A PEP 376 .dist-info directory will be created on installation. The -- --no-dist-info option was added to configure.py. -- [4dea64c9e1a8] <4.19-maint> -- --2018-05-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed __qualname__ for generated types. -- [7cf6d49bb422] <4.19-maint> -- --2018-05-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed the sip module's .pro file when building with qmake. -- [43635cc7012b] <4.19-maint> -- --2018-04-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * METADATA.in: -- Fixed a link in the PyPI documentation. -- [e343bf878ebc] <4.19-maint> -- -- * Roadmap.rst: -- Updated the roadmap so that it will age more gracefully. -- [1f3cbd657f14] <4.19-maint> -- --2018-04-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/riverbank/static/riverbank.css: -- More CSS fixes. -- [e413581ca661] <4.19-maint> -- --2018-04-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/riverbank/static/riverbank.css: -- Fixed the CSS for links in headers. -- [f125f51ceffb] <4.19-maint> -- --2018-03-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Removed all calls to the deprecated buffer protocol. -- [d9c9937f820a] <4.19-maint> -- -- * siplib/siplib.c.in: -- Fixed the calling of handwritten garbage collection code for classes -- that do not directly sub-class the class that is providing the code. -- [f968cccc9b77] <4.19-maint> -- -- * sipgen/gencode.c: -- Signal signatures now have a full version appended if a namespace -- has been stripped. -- [7683ca65278f] <4.19-maint> -- --2018-03-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Signal docstrings can now automatically include the signature. -- [34a94ca0260d] <4.19-maint> -- --2018-03-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in: -- Implemented sipConvertFromSliceObject() for Python v3.7 to avoid -- using the deprecated PySlize_GetIndicesEx(). -- [ae83f4e7993f] <4.19-maint> -- --2018-02-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.8 for changeset 09748626765f -- [6462a294376f] <4.19-maint> -- -- * NEWS: -- Released as v4.19.8. -- [09748626765f] [4.19.8] <4.19-maint> -- --2018-02-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * README: -- Fixed the README. -- [f07d0788eef0] <4.19-maint> -- --2018-01-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Make sure the C API is documented in alphabetical order. -- [e930a3c90dc0] <4.19-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Make sure that the pointer to the Python object held by the C++ -- instance of the generated derived type is reset by the derived -- type's dtor. Also make sure it is tested and reset while the GIL is -- held in order to avoid race conditions. -- [71bfa703c4ee] <4.19-maint> -- --2018-01-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.7 for changeset 7e9dbd15c866 -- [9a8622f989f9] <4.19-maint> -- -- * NEWS: -- Released as v4.19.7. -- [7e9dbd15c866] [4.19.7] <4.19-maint> -- -- * NEWS: -- Updated the NEWS file. -- [3d0a9ebb536c] <4.19-maint> -- --2018-01-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- A significant update to a comment. -- [f947546822c3] <4.19-maint> -- --2018-01-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/lexer.l: -- Fixed the failed attempt to fix %Docstring argument parsing. -- [6054b3268f6f] <4.19-maint> -- --2018-01-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sphinx/directives.rst: -- In the context of a class's docstring the signature argument refers -- to the concatanated ctor docstrings. -- [34ddf9638287] <4.19-maint> -- -- * sipgen/metasrc/parser.y, sphinx/directives.rst: -- Typedefs can now have docstrings. These are only used by those that -- instantiate class templates. -- [327ad560d853] <4.19-maint> -- --2018-01-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the generated of a default value that is a global unscoped -- enum. -- [8f9c478295d3] <4.19-maint> -- --2018-01-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a missing quote in the docstring support. -- [e37301b91a57] <4.19-maint> -- --2018-01-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the handling of signal docstrings. -- [5d4d28286e02] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed the docstring handling for private ctors and method. -- [8186b65687f1] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed the formats of class docstrings. -- [3af2dab08ed3] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed the formatting of function/method docstrings. -- [8e1829fdaf04] <4.19-maint> -- --2018-01-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in, sphinx/directives.rst: -- Initial commit to support embeded signatures in explicit docstrings. -- [b3d42a546701] <4.19-maint> -- --2018-01-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/conf.py.in, sphinx/riverbank/layout.html, -- sphinx/riverbank/static/logo.png, -- sphinx/riverbank/static/logo_tn.ico, -- sphinx/riverbank/static/riverbank.css, sphinx/riverbank/theme.conf, -- sphinx/static/classic.css, sphinx/static/logo.png, -- sphinx/static/logo_tn.ico: -- Switched to the revised Sphinx standards. -- [b68eecb348b9] <4.19-maint> -- --2017-12-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Fixed the handling of wchar_t constants. -- [c0436cb89959] <4.19-maint> -- --2017-12-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Readability improvement. -- [6a635db426ea] <4.19-maint> -- -- * configure.py.in: -- Fixed the location to install the code generator in a Windows venv. -- [d0f37d83df6f] <4.19-maint> -- -- * configure.py.in: -- Fixed the location of the pythonMN.lib file on Windows when building -- in a venv. -- [a098e2be83c2] <4.19-maint> -- --2017-11-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.6 for changeset 3f131525d4d5 -- [3f3a98f6a67a] <4.19-maint> -- -- * NEWS: -- Released as v4.19.6. -- [3f131525d4d5] [4.19.6] <4.19-maint> -- --2017-11-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/annotations.rst: -- Updated the docs for /NewThread/. -- [30c7476904af] <4.19-maint> -- --2017-11-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the handling of the default value of unscoped enums when using -- old compilers. -- [dd017d3e1454] <4.19-maint> -- --2017-11-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.5 for changeset a572b9daf87f -- [e0419013252c] <4.19-maint> -- -- * NEWS: -- Released as v4.19.5. -- [a572b9daf87f] [4.19.5] <4.19-maint> -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Fixed a regression in the conversion of enums which meant that an -- object with an __int__ method was accepted as a valid value. -- [273b01861a11] <4.19-maint> -- --2017-11-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * test/int_convertors/mk.sh, test/int_convertors/run_test.py, -- test/int_convertors/test.h, test/int_convertors/test.sip: -- Added the test for an overloaded function where the argument of each -- overload is a different named enum. -- [cac9082bdbd8] <4.19-maint> -- --2017-11-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Ensure that when building on macOS using qmake the sip module is a -- bundle. -- [f945942bc896] <4.19-maint> -- --2017-11-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.4 for changeset ed56fb689db8 -- [c56a33a3ef0c] <4.19-maint> -- -- * NEWS: -- Released as v4.19.4. -- [ed56fb689db8] [4.19.4] <4.19-maint> -- --2017-10-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Build fixes for Python v2. -- [5b2adad49340] <4.19-maint> -- --2017-09-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a regression that meant that namespaces were included in the -- types of arguments to signals. Probably only affects -- PyQtDataVisualization. -- [5c94d14871a3] <4.19-maint> -- --2017-09-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Appy a cast to const class pointers to static instances. -- [3db4b02ea152] <4.19-maint> -- -- * sphinx/incompatibilities.rst, sphinx/using.rst: -- Added a section on overflow checking to the documentation. -- [39409c0a5282] <4.19-maint> -- -- * sipgen/gencode.c: -- Make sure the default value of scoped enums is valid. -- [5024429c9126] <4.19-maint> -- --2017-09-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst, -- test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Deprecated sipCanConvertToEnum(). sipConvertToEnum() now has single- -- pass behaviour like the integer convertors. -- [2065bdd284cc] <4.19-maint> -- --2017-09-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/int_convertors.c, siplib/siplib.c.in: -- Improved the exception text when a virtual should return an enum or -- a bool. -- [7636b12a0789] <4.19-maint> -- -- * test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Added the tests for converting names enums. -- [8b5be80fda82] <4.19-maint> -- -- * siplib/siplib.c.in: -- Fixed a regression where sipBadCatcherResult() is called without an -- exception. -- [894b51685d51] <4.19-maint> -- -- * test/int_convertors/run_test.py: -- Added the remaining bool tests. -- [1afb586f55db] <4.19-maint> -- -- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst, -- test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Added sipConvertToBool() to the public API. Implemented the tests -- for invalid bool values. -- [3e8faabe48a1] <4.19-maint> -- -- * test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Added the tests for converting char. -- [fb34c9009048] <4.19-maint> -- -- * test/int_convertors/run_test.py: -- Completed the unit tests for unsigned values. -- [cbb776ab54f9] <4.19-maint> -- --2017-09-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * test/int_convertors/run_test.py: -- Added the tests for valid values of unsigned types. -- [895e5218b2a2] <4.19-maint> -- -- * test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Added tests for virtuals returning invalid values. Added the C++ and -- wrappers for the unsigned types tests. -- [b42f7afd33bc] <4.19-maint> -- -- * test/int_convertors/run_test.py: -- Fixed the tests for long and long long to account for the legacy -- behaviour of the convertors. -- [06c124a19f3c] <4.19-maint> -- -- * test/int_convertors/run_test.py, test/int_convertors/test.h, -- test/int_convertors/test.sip: -- Implemented the unit tests for int, long and long long integer -- conversions. -- [55a8a713a6fc] <4.19-maint> -- -- * test/int_convertors/mk.sh, test/int_convertors/run_test.py, -- test/int_convertors/test.h, test/int_convertors/test.sip: -- Added the unit tests for signed char and short integer convertors. -- [1109afd9d851] <4.19-maint> -- -- * siplib/siplib.c.in: -- The type of the exception raised when a Python re-implementation of -- a C++ virtual raises an exception is now the same as that original -- exception and not fixed to be TypeError. -- [61885f427681] <4.19-maint> -- --2017-08-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/siplib.c.in: -- Fixed a regression in the generation of slots code. -- [9e09f205e404] <4.19-maint> -- --2017-08-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Backed out the documentation change for sipConvertToEnum(). -- [fec7c90f35a2] <4.19-maint> -- -- * sipgen/gencode.c, siplib/siplib.c.in, sphinx/c_api.rst: -- Removed the last call to SIPLong_AsLong(). -- [b70f7ccc3069] <4.19-maint> -- -- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in, siplib/siplib.sbf.in, -- sphinx/c_api.rst: -- Added sipLong_AsSignedChar() ot the public API. The generated -- variable setters now use the new convertors. -- [85bfd5c33ae0] <4.19-maint> -- -- * siplib/siplib.c.in: -- Completed the sip module changes for overflow checking. -- [c8029d4cc754] <4.19-maint> -- --2017-08-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Migration of more module code to the new convertors. -- [b035786f41e8] <4.19-maint> -- --2017-08-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/voidptr.c: -- The array and voidptr types now use the new convertors. -- [037839910d09] <4.19-maint> -- -- * siplib/int_convertors.c: -- Completed the implementation of the new integer convertors. -- [cae1cf5dfa79] <4.19-maint> -- --2017-08-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst: -- Implemented the int convertor stubs and documented them. -- [3c4d82a590ac] <4.19-maint> -- -- * siplib/int_convertors.c, siplib/sipint.h, siplib/siplib.c.in: -- Refactored the support for int convertors. -- [2b1714de0e3f] <4.19-maint> -- --2017-08-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/python_api.rst: -- Implemented sipEnableOverflowChecking() and -- sip.enableoverflowchecking() stubs. -- [56266006c18f] <4.19-maint> -- --2017-08-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sphinx/c_api.rst, sphinx/incompatibilities.rst: -- Updated the docs regarding support for scoped enums. -- [0cf1c85b12bd] <4.19-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Completed the implementation of scoped enums. -- [d0b2e8967294] <4.19-maint> -- -- * siplib/siplib.c.in: -- Scoped enums are now created as Python enums. -- [ae7df49152e3] <4.19-maint> -- -- * siplib/siplib.c.in, sphinx/c_api.rst: -- More work on scoped enums. -- [9a196aece94e] <4.19-maint> -- --2017-08-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, -- siplib/siplib.c.in, sphinx/c_api.rst: -- Created the stub of the scoped enums implementation. -- [674f800ed250] <4.19-maint> -- -- * sipgen/type_hints.c: -- Removed some unused variables. -- [90360e454f86] <4.19-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Remove the const from the source object declaration in assignment -- helpers. -- [2b53ba180983] <4.19-maint> -- --2017-08-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Completed the parser support for scoped enums. -- [11b383822a47] <4.19-maint> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/specification_files.rst: -- Added parser support for scoped enums. -- [f5b7d5bf0624] <4.19-maint> -- -- * sipgen/gencode.c: -- Use static_cast<int>() when passing values to sipConvertFromEnum(). -- [091cfd53e597] <4.19-maint> -- --2017-08-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Disallow (rather than ignore) invalid types in Python signatures if -- %MethodCode and a C/C++ signature is provided. -- [a975983c39c1] <4.19-maint> -- --2017-08-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug in the handling of signals in scoped -- classes. -- [7c82958d6327] <4.19-maint> -- --2017-07-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/sip.h.in, sipgen/transform.c: -- Fixes for the detection of recursive imports. -- [6a7ab03d4efa] <4.19-maint> -- --2017-07-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Detect recursive imports as an error. -- [ba19c3f5fb29] <4.19-maint> -- --2017-07-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.3 for changeset 14685a6e736e -- [2a9f342b7f39] <4.19-maint> -- -- * NEWS: -- Released as v4.19.3. -- [14685a6e736e] [4.19.3] <4.19-maint> -- --2017-07-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/type_hints.c: -- Fixes for hidden namespaces in generated XML. -- [489321fd2475] <4.19-maint> -- --2017-06-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/specification_files.rst: -- Fixed an out of date statement in the docs. -- [21539b0e74c6] <4.19-maint> -- --2017-06-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in: -- Don't report template arguments of uninstantiated templates as -- undefined classes. -- [a69025738247] <4.19-maint> -- --2017-06-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Allow empty class bodies. -- [265b531cb6e4] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed a bug handling double quotes as the default value of a char -- argument. -- [d86c23976619] <4.19-maint> -- --2017-06-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- Completed the implementation of non-strict parsing. -- [8b5e498d13dd] <4.19-maint> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in: -- The relevant data structures now retain the platform information. -- [15b6c00166a7] <4.19-maint> -- -- * sipgen/gencode.c, sipgen/main.c, sipgen/metasrc/parser.y, -- sipgen/sip.h.in: -- Added the stub of non-strict parsing that saves (but otherwise -- ignores) the platform information. -- [b05b36a086c2] <4.19-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l: -- Improve the handling of string constants to properly support escape -- characters. -- [495a7635a52d] <4.19-maint> -- -- * sipgen/metasrc/parser.y: -- Make sure any expanded template ctor call is a deep copy. -- [141c98e741b6] <4.19-maint> -- --2017-06-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Expand template ctor calls when they are the default values of an -- argument. -- [5df8870c61a7] <4.19-maint> -- --2017-06-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a regression in the invocation of the dtor of shadow classes. -- [e833dc3f9a2f] <4.19-maint> -- --2017-06-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgignore: -- Updated .hgignore for the changed build directory. -- [b2fb251d3500] <4.19-maint> -- --2017-05-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in, sphinx/c_api.rst: -- Documented the event handler mechanism. -- [aee09bdf1206] <4.19-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Implemented sipEventType and sipRegisterEventHandler(). -- [2a4bcf305afa] <4.19-maint> -- --2017-05-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst: -- Renamed sipCommonDtor() to sipInstanceDestroyed() and added it to -- the public API. -- [e7d4e6661fa0] <4.19-maint> -- -- * sipgen/metasrc/parser.y: -- The parser will now accept class template definitions within a -- class. The generated code is untested. -- [ec57a6e03eb3] <4.19-maint> -- --2017-05-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- Added support for type hints for properties from Scott Maxwell. -- [c861fe0ef6ca] <4.19-maint> -- --2017-05-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixes for 'char *&' argument types. -- [684e23c995a3] <4.19-maint> -- --2017-05-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Removed a duplicate call. -- [afe3d3efc82d] <4.19-maint> -- -- * sipgen/gencode.c: -- Don't try and initialise the result of a virtual when the type is a -- template. -- [cce4fe835faf] <4.19-maint> -- --2017-04-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Added sipPrintObject() to the public C API. -- [10e10b1a2d68] <4.19-maint> -- --2017-04-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/siplib.c.in: -- Fixed regressions in the handling of exceptions. -- [974a4d77314b] <4.19-maint> -- -- * sipgen/transform.c, sphinx/conf.py.in: -- Minor cosmetic fixes. -- [4ea35fd2187d] <4.19-maint> -- --2017-04-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Effectively re-applied changeset dc06058c99dd. If there is a real -- problem here then we don't yet fully understand it. -- [95a493a417e8] <4.19-maint> -- --2017-04-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fix a regression so that a shadow class is not generated if there is -- a private dtor. -- [6b09a6d578e8] <4.19-maint> -- --2017-03-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.2 for changeset 1df924860f57 -- [6209a625ac87] <4.19-maint> -- -- * NEWS: -- Released as v4.19.2. -- [1df924860f57] [4.19.2] <4.19-maint> -- --2017-03-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Remove an unnecessary comment. -- [1f31effbc614] <4.19-maint> -- --2017-03-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a crash when a user defined class uses sip.wrappertype as it's -- meta-type but is not derived from sip.simplewrapper. -- [f5bab1986fbb] <4.19-maint> -- --2017-02-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19.1 for changeset ee5ea590d186 -- [f45eb310f129] <4.19-maint> -- -- * NEWS: -- Released as v4.19.1. -- [ee5ea590d186] [4.19.1] <4.19-maint> -- --2017-02-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed another regression in deprecated code. -- [556ca44cc535] <4.19-maint> -- -- * sipgen/gencode.c: -- Fixed some deprecated macros. -- [23a8ef68306d] <4.19-maint> -- --2017-02-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a typo in the implementation of sipEnableGC(). -- [c15936fc6007] <4.19-maint> -- --2017-02-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a doesn't-work-with-old-c-compilers bug. -- [5775566848d1] <4.19-maint> -- --2017-02-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed a regression in the generation of names of protected methods -- in classes imported from other modules. -- [948e06cb1921] <4.19-maint> -- --2017-02-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c: -- Fixed a regression in determining when a shadow class should be -- generated. -- [71a8ee38b2c6] <4.19-maint> -- --2017-01-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in: -- Updated the ABI version number. -- [6b23496bd532] <4.19-maint> -- -- * sphinx/annotations.rst: -- Added a clarification to the /Abstract/ class annotation. -- [adb03184b044] <4.19-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipEnableGC() to the public API. -- [03b120e8fe2f] <4.19-maint> -- --2017-01-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Fixed a couple of missing types. -- [9737461081da] <4.19-maint> -- --2017-01-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- More fixes for /NoTypeName/ applied to class templates. -- [8a45855e0d70] <4.19-maint> -- --2017-01-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: -- The /NoTypeName/ typedef annotation now affects classes -- instantiation from class templates. -- [30d9a5a61ed2] <4.19-maint> -- --2017-01-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/metasrc/lexer.l, -- sipgen/metasrc/parser.y, sipgen/sip.h.in, sphinx/directives.rst: -- Added the %PreMethodCode implementation from Robin Dunn. -- [08d77fb135a2] <4.19-maint> -- -- * sipgen/metasrc/parser.y: -- Properly fix the template super-class regression. -- [3b674fc274d5] <4.19-maint> -- -- * sipgen/metasrc/parser.y: -- Backed out changeset b94757bc5637 It fixes the bug but breaks -- everything else. -- [f39e23bcd25b] <4.19-maint> -- -- * sipgen/metasrc/parser.y: -- Fixed a regression in the handling of template arguments specifying -- super-classes. -- [b94757bc5637] <4.19-maint> -- --2017-01-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * README, build.py: -- Fixed the build.py script so that it does a complete preparation. -- [85539feb92ea] <4.19-maint> -- --2017-01-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed sipGetBufferInfo(). -- [1de5c188f98d] <4.19-maint> -- --2017-01-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/main.c, sipgen/transform.c, -- siplib/siplib.c.in, sphinx/command_line.rst: -- Added the -D command line option so that the generated code is aware -- of Python debug builds. -- [2a21ceefdf2a] <4.19-maint> -- --2017-01-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Hopefully a better implementation of changeset dc06058c99dd. -- [4c135d33a5cf] <4.19-maint> -- -- * siplib/siplib.c.in: -- Backed out changeset dc06058c99dd The change is too drastic. -- [d9e95528015e] <4.19-maint> -- --2017-01-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed a regression in the ordering of the generated types table for -- a module. -- [06237437b446] <4.19-maint> -- --2016-12-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.19 for changeset 0a4ee5a5511f -- [245c1ac3c34e] -- -- * NEWS: -- Released as v4.19. -- [0a4ee5a5511f] [4.19] -- --2016-12-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed a problem importing the required types for protected methods -- without the public/protected hack. -- [ccf3d8f3cc59] -- --2016-12-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/python_api.rst: -- Implemented sip.assign() to invoke the C++ assignment operator. -- [4324a0bc03a4] -- --2016-11-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, sphinx/installation.rst: -- Added the --no-stubs and --stubsdir options to configure.py to be -- consistent with other configuration scripts. -- [70e0d9d09265] -- --2016-11-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed the incomplete tidy-up. -- [69aaa13a1883] -- --2016-11-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fix a warning message. -- [5d7b73925360] -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Reverted to pre-4.18 handling of the generated cast function. There -- are cases where a C++ derived class does not have the same address -- as its single base class. -- [8e9e02f1bea0] -- --2016-11-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Fixed a regression (related to scoped names) that meant that header -- code for template arguments wasn't being included. -- [04796a24e981] -- --2016-10-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- iHandwritten code to be included in the sipAPI*.h file is now placed -- at the end so that it can make use of the generated macros and -- types. -- [ed446493da18] -- --2016-10-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed some compiler warnings when building for Python v2. -- [264793ee3fb0] -- --2016-10-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed a regression in the handling of abstratc classes. -- [ce1042e83d1a] -- -- * sipgen/gencode.c, sipgen/transform.c: -- More namespace related fixes. -- [73d456c2f5cc] -- --2016-10-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/siplib.c.in: -- Implemented 'final' support. More fixes for the handling of scopes. -- [1d0d5c659b92] -- --2016-10-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/specification_files.rst: -- Added parser support for the 'final' keyword. -- [373d57302d56] -- --2016-10-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c: -- Refactored the support for scopes so that types hav a leading '::'. -- [1f498dfe2888] -- --2016-10-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- Fixed the generation of the scope of an operator moved from a -- namespace to a class. -- [f697ee13a3aa] -- --2016-10-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/directives.rst: -- Documented the %HideNamespace directive. -- [b45a86055567] -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in, sipgen/transform.c: -- Implemented the %HideNamespace directive. -- [6b1f471385df] -- --2016-10-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Make sure the underlying types are generated in tuple builders. -- [0507dfae0588] -- -- * sipgen/gencode.c: -- Virtual handlers use typedef names like all the rest of the -- generated code. -- [c732f0460bc3] -- --2016-10-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Refactored the name lookup code. -- [8bd669cf535f] -- --2016-09-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Variable getters/setters now only keep a hidden reference for C -- character strings. -- [6ec87337d5e2] -- -- * sipgen/gencode.c: -- Fixed a bad indentation in the generated code. -- [cb1d8e948a2b] -- --2016-09-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/qtlib.c, siplib/sip.h.in.in, -- siplib/siplib.c.in, sphinx/using.rst: -- Removed anll code generator support for PyQt3. -- [a9cc0cc567aa] -- --2016-09-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- A class that sub-classes an abstract class and doesn't provide an -- implementation of an abstract method is itself abstract. -- [472469f1d7ad] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- Fixes for imported types that have multiple implementations. -- [dc02dc4430ec] -- -- * sipgen/transform.c, siplib/sip.h.in.in: -- Fixed the selection of a virtual handler. -- [d6c07e82a3d2] -- --2016-09-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, siplib/sipint.h: -- Fixed some regressions when building with the limited API disabled. -- [8118a2156d11] -- -- * siplib/sip.h.in.in, siplib/sipint.h: -- Exposed some missing macros. -- [d12bb44a9d7d] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipGetUserObject() and sipSetUserObject() to the public API. -- [e0352cc51b67] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h, -- siplib/siplib.c.in: -- Added sipIsOwnedByPython() and sipIsDerivedClass() to the private -- API to remove more binary dependencies. -- [17ed5300e0dc] -- -- * sipgen/metasrc/parser.y, siplib/objmap.c, siplib/sip.h.in.in, -- siplib/siplib.c.in: -- Fix some warnings. -- [d0dcc6cd73b9] -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Refactored how the plugin-specific generated tables are handled. -- [a0fcb2bc14ca] -- --2016-09-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed the auto-generation of default copy ctors. -- [508f9dd396f9] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Implemented the sipCallProcedureMethod() optimisation. -- [948be90a3f5e] -- -- * sipgen/transform.c, siplib/sip.h.in.in: -- Class based exceptions should now have their type structure -- included. -- [64ac366b669f] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Reorganised the C API structure. -- [a08c7533a799] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Completed the refactoring to eliminate binary dependencies. -- [fb3b72523947] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Refactored the implementation of exceptions to eliminate the binary -- dependencies. -- [aeb733f23126] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Refactored the handling of virtual error handlers to reduce binary -- dependencies. -- [b08f6f3325e8] -- --2016-09-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Genearte the needed types table at the right time. -- [26331d156a87] -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Refactoring of the code that inspects a class for its visible -- virtuals. -- [082c756c263d] -- --2016-09-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixes for regressions using the type header files in the right -- place. -- [0b1a09bbde7a] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/sip.h.in.in: -- Initial refactoring of virtual handlers. -- [d454a9b02d26] -- --2016-09-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/siplib.c.in: -- Generate the correct type names for template based types. -- [1f17d1688231] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/incompatibilities.rst: -- Refactored the handling of generated type structures so that they -- are only referenced by name by an importing module rather than by an -- index into a table. This reduces the binary dependencies between -- modules. -- [667720dbc42d] -- --2016-09-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/directives.rst: -- Removed the support for module version numbers. -- [685029cadb52] -- --2016-09-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed silly bugs in the previous change. -- [7df5236aa50f] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Improved the implementation of sipGetBufferInfo(). -- [7a606d0daf37] -- --2016-09-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/type_hints.c: -- Fixed the type hint for unsigned const char *. -- [19f9b9eea667] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: -- Updated sipGetBufferInfo() to optionally check the type. -- sipGetBufferInfo() only supports 1-dimensional arrays. -- [985d7877b3a1] -- --2016-09-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Further fixes for invoking the new type handler. -- [ecdcfc0f0558] -- -- * siplib/objmap.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Fixes for the invocation of the new user type handler. -- [a95c68d37f6e] -- -- * siplib/siplib.c.in: -- Fixed the invocation of the new user type handler. -- [d484574b76e9] -- --2016-09-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipGetBufferInfo() and sipReleaseBufferInfo() to the public -- API. -- [c23d7cb8b06e] -- --2016-09-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in, sphinx/c_api.rst: -- Documented the new Unicode-related functions. -- [c8408349d43c] -- --2016-09-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Added sipUnicodeNew(), sipUnicodeWrite() and sipUnicodeData() to the -- public API. -- [e05849602bef] -- --2016-08-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipGetMethod(), sipFromMethod() and sipGetCFunction() ot the -- public API. -- [28f7daaa7542] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, -- siplib/siplib.c.in, sphinx/c_api.rst: -- Added sipCheckPluginForType() ot the public API. -- sipSetNewUserTypeHandler() now returns the old handler to allow -- chaining. -- [7e8e4447431b] -- --2016-08-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/descriptors.c, siplib/objmap.c, siplib/sip.h.in.in, -- siplib/siplib.c.in: -- Renamed some structure fields. -- [cb8478e5895d] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipPyTypeDict() to the public API. -- [7f25c1fe8296] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipGetFrame() to the public API. -- [a34c213208b2] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipIsUserType() to the public API. -- [d2477eb9265e] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added the data and time functions to the public API. -- [7739c16f94c9] -- --2016-08-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Documented sipPyTypeName(). -- [c7098cf08c3a] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Added sipPyTypeName() to the public API. -- [319512a38c50] -- -- * siplib/sip.h.in.in: -- Fixed the new macros. -- [c361a6924e82] -- -- * siplib/sip.h.in.in: -- Implemented additional portablity macros for the limited API. -- [120e916e8608] -- -- * .hgignore, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/using.rst: -- Implemented sipSetNewUserTypeFunc() sipSetTypeUserData() and -- sipGetTypeUserData(). -- [1f180cf4a42a] -- --2016-08-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/apiversions.c, siplib/array.c, siplib/array.h, -- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h.in.in, siplib/sipint.h, siplib/threads.c, -- siplib/voidptr.c, sphinx/c_api.rst, sphinx/directives.rst: -- Added the user field to the sipWrapperType structure as an -- alternative to defining a super-type of sipWrapperType (which isn't -- possible with the limited API). Bumped the major ABI version number. -- [5e9de8cde212] -- --2016-08-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/directives.rst: -- Added the use_limited_api argument to the %Module directive. Changed -- the API of %BIGetBufferCode when using the limited API. -- [10d7121c07e3] -- --2016-08-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Merged the 4.18-maint branch into the trunk. -- [d92384aa5baf] -- -- * sipgen/gencode.c: -- Fixed the handling of global unsigned constants. -- [a45bec408ec2] <4.18-maint> -- -- * sphinx/conf.py.in: -- Fixed the copyright notice in the docs. -- [17475357a153] <4.18-maint> -- --2016-08-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * README, build.py: -- Removed the old internal build system leaving the minimum needed to -- build from hg without the new build system. -- [dbbced5689a8] <4.18-maint> -- --2016-07-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.18.1 for changeset 81021a5690ce -- [8f5b6c8fe5f1] <4.18-maint> -- -- * NEWS: -- Released as v4.18.1. -- [81021a5690ce] [4.18.1] <4.18-maint> -- --2016-07-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * Roadmap.rst: -- Updated the Roadmap. -- [1226013f2516] <4.18-maint> -- -- * NEWS: -- Updated the NEWS file. -- [26a4fd92bf59] <4.18-maint> -- --2016-07-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/objmap.c: -- Fixed a problem with stale aliases for objects created by C/C++. -- [b493c6f3e015] <4.18-maint> -- --2016-06-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * rb-product, rbproduct.py: -- Replaced the product plugin with a product file. -- [a10b0caa91a8] <4.18-maint> -- --2016-06-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Product plugin changes for rb-tools API changes. -- [86f51ad3ac30] <4.18-maint> -- -- * rbproduct.py: -- Debugged the product plugin. -- [67a81861273c] <4.18-maint> -- -- * rbproduct.py: -- Added support for a minimal build and release build types. -- [8cc794662db5] <4.18-maint> -- --2016-06-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Tewaks to the product plugin. -- [b2fd658f11cf] <4.18-maint> -- --2016-06-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Debugged the support for rb-release. -- [38cdb78872f4] <4.18-maint> -- --2016-06-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Updated the product plugin to support rb-release. -- [ecb166af3ad3] <4.18-maint> -- --2016-06-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a regression in the handling of a cast with a diamond -- hierachy. -- [91206af66161] <4.18-maint> -- --2016-06-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Implemented the different build types. -- [15184d86e394] <4.18-maint> -- -- * rbproduct.py: -- Updates to the product plugin. -- [23ca59449373] <4.18-maint> -- --2016-06-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Updated the product plugin to simplify the class hierachy. -- [a977c7f870f7] <4.18-maint> -- -- * .hgignore, rbproduct.py: -- The product plugin will now do a default build. -- [8c433398f573] <4.18-maint> -- --2016-05-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Updated the product plugin for the latest rbtools changes. -- [a4a0a84984dc] <4.18-maint> -- --2016-05-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed a bug in out-of-source builds. -- [f9602fd24f17] <4.18-maint> -- --2016-04-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * METADATA.in: -- Updated the meta-data to say that 64-bit Linux wheels are available -- at PyPI. -- [5602445cb458] <4.18-maint> -- --2016-04-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.18 for changeset b51768a1749e -- [1da474e6ccc1] -- -- * NEWS, sphinx/specification_files.rst: -- Released as v4.18. -- [b51768a1749e] [4.18] -- -- * METADATA.in, sipgen/export.c, sipgen/type_hints.c: -- Fixed the type hints for arrays. -- [02a712634ce1] -- --2016-04-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * METADATA.in: -- Updated the description in the meta-data. -- [d9eb656132f3] -- --2016-04-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * METADATA.in: -- Further tweak to METADATA.in. -- [9acfb4baa44c] -- -- * METADATA.in: -- Use v1.1 meta-data rather than v2.0. -- [8d9645471343] -- -- * METADATA.in: -- Fixed a typo. -- [4a9ee34e65c3] -- -- * METADATA.in, rbproduct.py: -- Added the METADATA.in file. -- [39106871989b] -- --2016-04-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * rbproduct.py: -- Updated the product plugin. -- [e42e999389f9] -- -- * rbproduct.py: -- Added the rbtools product plugin. -- [b9ba57967915] -- --2016-03-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/incompatibilities.rst: -- Fixed a Sphinx warning message. -- [ae966103325c] -- -- * sipgen/main.c, sipgen/sip.h.in, sipgen/transform.c: -- Fixed the use of SIP_NORETURN. -- [b3a916e0bc78] -- --2016-03-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c: -- Fixed a regression in the exporting of the XML API files. -- [c7714bbbdae7] -- -- * build.py, sphinx/build_system.rst, sphinx/c_api.rst, -- sphinx/python_api.rst: -- Adopt the new standards for naming development versions. -- [72140f544ef1] -- -- * sphinx/annotations.rst: -- Fixed a bug in the documentation. -- [9e4ee12928cd] -- -- * .hgignore: -- Added the .hgignore file. -- [e1d2556ce4a2] -- --2016-03-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- __long__ gets translated to __int__ for Python v3. -- [a4f8a7810cc3] -- --2016-03-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c, sphinx/annotations.rst: -- Type hints are ignored if an argument is constrained. -- [f041cf891a29] -- -- * sipgen/type_hints.c: -- Implement the flattening of Unions in type hints. -- [ff5f0d0251e0] -- --2016-02-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/sip.h.in, sipgen/type_hints.c: -- Reimplemented the type hint parser so it can handle recursive -- definitions properly. -- [506e30d92b51] -- --2016-02-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- Fixed type hints for enums in mapped types. -- [efb04ab24462] -- -- * sipgen/type_hints.c: -- Fixed type hints for the return values of functions. -- [b5c392c71f78] -- -- * sipgen/type_hints.c: -- Added Iterable to the list of known typing module objects. -- [a1d1a573a304] -- --2016-02-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/sip.h.in, sipgen/type_hints.c: -- Fixed the handling of recursively defined type hints. -- [b5abe12b4968] -- --2016-02-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/sip.h.in, sipgen/type_hints.c: -- The typing module is now imported as a whole rather than individual -- objects. -- [ac67b3f0bd95] -- --2016-02-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sip.pyi: -- Fixed the Buffer type hint. -- [78a799aec114] -- -- * sipgen/type_hints.c: -- Don't generate type hints for the sequence concat and repeat slots -- (and the inplace versions). -- [a5ae3982ff5f] -- -- * sipgen/metasrc/parser.y, sphinx/directives.rst: -- Exported type hint code is no longer included in the module that -- defines it. -- [442b3ed07ae6] -- -- * sipgen/type_hints.c: -- Exclude external classes when looking up a class. -- [61fe4c76a394] -- -- * sipgen/transform.c, sipgen/type_hints.c: -- Fixed type hints and docstrings for const template arguments. -- [679c13adda6a] -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c, -- sphinx/directives.rst: -- %TypeHintCode can now be used in a class. -- [053c7351dba2] -- --2016-02-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- Don't generate type hints for slots that can return -- Py_NotImplemented. Make sure callables generate a valid (but vague) -- type hint. -- [883918a8dc36] -- --2016-02-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sip.pyi, sipgen/type_hints.c: -- Tweaks to the type hint support. -- [785978d8f7e3] -- --2016-02-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c, sphinx/annotations.rst: -- Added the /TypeHint/, /TypeHintOut/ and /TypeHintValue/ class -- annotations. -- [4f5dc2c51d06] -- -- * sipgen/type_hints.c: -- Moved the old-style signal/slot type hints to PyQt4. -- [4689a40f7e7d] -- --2016-02-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sphinx/annotations.rst: -- Implemented /TypeHintValue/ as a mapped type annotation. -- [2418e7f7760d] -- -- * build.py: -- Make sure sip.pyi is included in the source package. -- [1eabde271e53] -- --2016-02-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/transform.c, siplib/siplib.c.in: -- Eliminate a few compiler warnings. -- [e864a0451a4a] -- --2016-02-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- More fixes for Optional handling. -- [365d31de81fd] -- -- * sipgen/type_hints.c: -- Use Optional properly. -- [ab7d66d1ea0d] -- --2016-02-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- PY_TYPE and PY_SLICE aren't actually needed. -- [9778770c65a5] -- --2016-02-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- Fixed the translation of Any to object in docstrings. -- [7571d96c1f79] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in, -- sipgen/type_hints.c: -- Docstrings now use a format based on type hints. -- [9de9b0470aa6] -- --2016-02-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Don't complain about a lack of %SetCode when /NoSetter/ is -- specified. -- [cf4db5eb171a] -- -- * sipgen/metasrc/parser.y: -- Fixed some typos in error messages. -- [82a34911686f] -- -- * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sphinx/directives.rst: -- Renamed %ModuleTypeHintCode to %TypeHintCode. -- [73b214c14dde] -- -- * sipgen/type_hints.c, sphinx/annotations.rst: -- Documented the /NoTypeHint/ annotations. -- [26e59a86ca45] -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c: -- Implemented the /NoTypeHint/ annotation. Fixed a bug to make sure -- type header code is included before enum slot code needs it. -- [1943d4866c73] -- -- * sipgen/metasrc/parser.y, sipgen/type_hints.c: -- More flexible handling of ellipsis when /NoArgParser/ is specified. -- [7097a0008042] -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c: -- Protect against (possible) recursion when handling type hints for -- mapped types. -- [9402857f5eb6] -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c: -- Fixed class /TypeHintIn/ when used with a template. -- [3a914d9789e0] -- --2016-02-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c, -- sphinx/annotations.rst: -- Added /TypeHintIn/ as a class annotation. -- [92d3d32ebf64] -- --2016-02-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, sipgen/type_hints.c: -- Completed the implementation of /TypeHintIn/ and /TypeHintOut/. -- [70e9172c61b7] -- -- * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: -- Implement /TypeHintValue/ as a synonym for /DocValue/ for the -- moment. -- [df8230d91f9f] -- -- * sipgen/metasrc/parser.y, sphinx/annotations.rst: -- Adde the stubs of the /TypeHintIn/, /TypeHintOut/ and -- /TypeHintValue/ annotations. -- [aeb5d848b98a] -- -- * sipgen/metasrc/parser.y, sphinx/annotations.rst: -- Deprecated /DocType/ and /DocValue/. -- [ec369060cd94] -- -- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/type_hints.c, -- sphinx/command_line.rst: -- Added the -f command line option to treat warnings as errors. -- [fc945a2d732f] -- --2016-02-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- Added Iterator and Mapping to the objecys imported from typing. -- [6d439bc77538] -- -- * sipgen/type_hints.c: -- Fixed references to mapped types imported from other modules. -- [b579781f2a2a] -- -- * sipgen/type_hints.c: -- Don't try and create type hints for global slots. -- [11562a825b7c] -- -- * sipgen/type_hints.c: -- Bug fix when looking up enums. -- [a4b89fac02d3] -- -- * sipgen/type_hints.c: -- Added PEP 484 support for composite modules. -- [99e626f4fd23] -- -- * sipgen/type_hints.c: -- Fixed PEP 484 support for all callables with a non-default API -- version. -- [b2f8e2fed83d] -- -- * sipgen/type_hints.c: -- Completed the PEP 484 support for mapped types. -- [b06408ae2397] -- -- * sipgen/export.c, sipgen/sip.h.in, sipgen/type_hints.c: -- More PEP 484 bug fixes. -- [3e4df4d97ba5] -- --2016-01-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sphinx/directives.rst, sphinx/specification_files.rst: -- Documented the %ExportedTypeHintCode and %ModuleTypeHintCode -- directives. -- [cc7f789360b8] -- -- * NEWS, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in, sipgen/type_hints.c, sphinx/directives.rst: -- Added the %ExportedTypeHintCode and %ModuleTypeHintCode directives. -- [aef93197b065] -- -- * sipgen/metasrc/parser.y, sipgen/type_hints.c, -- sphinx/annotations.rst: -- Renamed /HintType/ to /TypeHint/. -- [70c8915f680a] -- --2016-01-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c: -- More PEP 484 support. -- [ea6e7a7ae51f] -- --2016-01-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c: -- More PEP 484 support. -- [aa1228396424] -- --2016-01-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c: -- Added the stubs for parsing /HintType/ annotations. -- [7c0fac66f27c] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, sipgen/type_hints.c: -- Improved the lookup of QObject. -- [a2d8330df89d] -- --2016-01-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/type_hints.c: -- More PEP 484 support. -- [336749ea71c5] -- -- * sipgen/type_hints.c, sphinx/annotations.rst: -- HintType will now fallback to DocType if the latter is specified. -- [4423da336fbb] -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- sipgen/type_hints.c, sphinx/annotations.rst: -- Added the /HintType/ annotation. -- [2985d2d641d4] -- -- * sipgen/type_hints.c: -- More PEP 484 support. -- [21e70ef4b15f] -- --2016-01-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/sip.h.in, sipgen/type_hints.c: -- More PEP 484 support. -- [dd04be5e4e4f] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in, -- sipgen/type_hints.c: -- More support for PEP 484. -- [353fe29217fb] -- -- * siplib/siplib.c.in: -- Reverted the use of simplewrapper for mapped types. -- [14ba1e5b1e5b] -- -- * siplib/siplib.c.in: -- Namespaces and mapped types now default to simplewrapper as their -- super-type. -- [f7fd77d1cd4e] -- --2016-01-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in, -- sipgen/sipgen.sbf, sipgen/type_hints.c, sphinx/command_line.rst, -- sphinx/introduction.rst.in: -- Initial support for generating PEP484 type hints. -- [4191467f125a] -- -- * sip.pyi: -- Added None return types to the stub file. -- [314ef3cd76ed] -- --2016-01-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Hard-code the name of the stub file (rather than handle bespoke -- module names). -- [e1e4b29eb1a6] -- -- * configure.py.in, sip.pyi, sphinx/installation.rst: -- Added the sip.pyi type hints stub file. -- [30e58feee19f] -- --2016-01-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Minor docs change. -- [dd03f114259c] -- --2016-01-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_SLOT. -- [2b821ae5e9f1] -- -- * Roadmap.rst: -- Updated the roadmap. -- [495ebc034f99] -- -- * sphinx/annotations.rst: -- Deprecated the SingleShot annotation. -- [aa46307e00b4] -- -- * sipgen/metasrc/parser.y: -- Deprecated SIP_RXOBJ_CON and SIP_SLOT_CON. -- [affb0c5b465c] -- --2016-01-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_SIGNAL. -- [865e00b6ffa0] -- --2016-01-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_ANYSLOT. -- [8199aa8980e8] -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_QOBJECT. -- [fb9c94746255] -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_RXOBJ_DIS. -- [0f26db165557] -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Deprecated SIP_SLOT_DIS. -- [051775601278] -- --2016-01-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * Merged the current maintenance branch. -- [b7bd085548b6] -- -- * sipgen/gencode.c, sipgen/transform.c: -- Fixes to the handling of fatal errors. -- [f35ebfa4c27f] <4.17-maint> -- -- * Merged the current maintenance branch with the default. -- [d244ec3a2dec] -- --2016-01-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, sipgen/export.c, sipgen/gencode.c, sipgen/main.c, -- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, siplib/siplib.c.in: -- Fixed all compiler warnings. -- [9dbdf30558aa] <4.17-maint> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in, siplib/siplib.c.in, -- sphinx/specification_files.rst: -- Some minor tidy-ups. -- [b4edb1990e23] <4.17-maint> -- -- * Merged the current maintenance branch with the default. -- [782cf5e8441e] -- --2015-12-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Another attempt and preventing accesses to SIP data structures after -- the interpreter has gone. -- [138eb1eded99] <4.17-maint> -- --2015-12-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipGetInterpreter() to the public API. Avoid the Python -- interpreter if it has gone when getting a QMetaObject. -- [61d8f0f6f5c0] <4.17-maint> -- --2015-12-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Cleared a benign exception in the handling of mixins. -- [602884540b54] <4.17-maint> -- --2015-12-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the previous fix. -- [17876e15c41d] <4.17-maint> -- --2015-11-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Restrict the invocation of sub-class convertors to those that handle -- direct sub-classes. -- [57cbe5142d57] <4.17-maint> -- --2015-10-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Invoking sub-class convertor code turns out to be quite expensive so -- check the object map first. Check the object map again if the -- convertor code needed to be invoked. This change is absolutely -- fundamental to the inner workings so may have some unexpected -- consequences. -- [77fde6c0ee2d] <4.17-maint> -- --2015-10-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c, -- siplib/siplib.c.in: -- Refactored the handling of casts so that cast functions are only -- generated for classes that multiply inherit somewhere in their class -- hierarchy. -- [14bfbaf7431a] <4.17-maint> -- --2015-10-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.17 for changeset 0cbb680b4f69 -- [36d16e74cf7f] -- -- * NEWS: -- Released as v4.17. -- [0cbb680b4f69] [4.17] -- --2015-09-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in: -- Fix extensions that use Python v3.5 slots but are being built with -- an earlier version. -- [9102d6c3daf0] -- --2015-09-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * specs/win32-msvc2015: -- Tweak win32-msvc2015 to suppress a warning message. -- [74754ca3e59f] -- -- * configure.py.in, specs/win32-msvc2010, specs/win32-msvc2015: -- Added win32-msvc2015 to the build system. -- [fca4f2fcbb39] -- --2015-09-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in: -- Added a comment about adding new slot types and its effect on the -- ABI. -- [50af972e1652] -- --2015-09-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/specification_files.rst: -- Added support for PEP 492, ie. the __await__, __aiter__ and -- __anext__ special methods. -- [f5d07b919355] -- -- * sipgen/metasrc/parser.y, siplib/siplib.c.in: -- Add __aenter__ and __aexit__ and non-lazy methods. -- [979e23401d1d] -- -- * sipgen/metasrc/parser.y: -- Fixed a regression in the handling of the __len__ annotation. -- [cad3bdaecf3e] -- -- * sphinx/static/default.css: -- Merged the 4.16-main branch into the trunk. -- [b4f30681b90f] -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c, -- sphinx/annotations.rst, sphinx/specification_files.rst: -- Implemented support for PEP465 (array infix operator) ie. the -- __matmul__ and __imatmul__ special methods and function annotations -- of the same name. -- [ff867feb8f90] <4.16-maint> -- -- * siplib/voidptr.c: -- Tweaked an exception message to follow the style adopted in Python -- v3.5. -- [e98693bf17d7] <4.16-maint> -- --2015-08-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the error handling of sipCallMethod() when a re-implementation -- raises an exception. -- [27c61f660fba] <4.16-maint> -- --2015-07-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.9 for changeset 87de938efba2 -- [90aaa31768c9] <4.16-maint> -- -- * NEWS: -- Released as v4.16.9. -- [87de938efba2] [4.16.9] <4.16-maint> -- -- * sipgen/export.c: -- Added the "virtual" attribute to the exported XML. -- [e37fcc2e29e2] <4.16-maint> -- --2015-07-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Improved the detail of the text of the exception -- sipBadCatcherResult() raises. -- [4f7ad0a4e353] <4.16-maint> -- -- * siplib/siplib.c.in: -- Allow for an /External/ class being referenced when the module -- containing its implementation hasn't been imported. -- [1574043cc948] <4.16-maint> -- --2015-07-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fix a problem caused by PyQt4 wrapping the QApplication C++ instance -- as multiple Python objects. -- [42a056fbf006] <4.16-maint> -- --2015-06-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Remove an object from the map whenever the pointer ot the C/C++ -- instance is cleared. -- [8dd533ab6ce9] <4.16-maint> -- --2015-06-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a missing reference in the previous fix. -- [1a2704282933] <4.16-maint> -- -- * sipgen/gencode.c: -- Fixed a regression in the handling of static non-pointer object -- variables. -- [dafbaadea76b] <4.16-maint> -- --2015-06-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.8 for changeset f87e232098eb -- [95abaccb67d6] <4.16-maint> -- -- * NEWS: -- Released as v4.16.8. -- [f87e232098eb] [4.16.8] <4.16-maint> -- --2015-06-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in: -- Bump the internal API version number. -- [6069463e8937] <4.16-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, -- siplib/siplib.c.in: -- Fixed the handling of non-pointer object variables so that they are -- only wrapped once and the Python object cached. -- [11a92ebd4840] <4.16-maint> -- --2015-06-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/using.rst: -- Fixed a type in the docs. -- [7d0d2cede024] <4.16-maint> -- --2015-06-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [92c83f02758f] <4.16-maint> -- --2015-05-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sphinx/specification_files.rst: -- Added support for the current Python3 exceptions. -- [79afcf752c2a] <4.16-maint> -- --2015-05-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed bugs maintaining the deleted state of wrapped instances. -- [e5674f034e48] <4.16-maint> -- --2015-03-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Fixed a regression in v4.16.7 that affects methods with %MethodCode -- and the __len__ annotation. -- [765b6874363f] <4.16-maint> -- -- * .hgtags: -- Added tag 4.16.7 for changeset 9076f70a012c -- [dffe9ad569c9] <4.16-maint> -- -- * NEWS: -- Released as v4.16.7. -- [9076f70a012c] [4.16.7] <4.16-maint> -- -- * sphinx/static/classic.css, sphinx/static/default.css: -- Fixed the stylesheet. -- [af2e27024d33] <4.16-maint> -- --2015-03-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fix the declaration of sipRes in the %VirtualCallCode support. -- [bd92aad3cf7d] <4.16-maint> -- --2015-03-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/specification_files.rst: -- Added %VirtualCallCode to the BNF. -- [cf1ad8f7be68] <4.16-maint> -- -- * sphinx/directives.rst: -- Documented %VirtualCallCode. -- [752beb1cd641] <4.16-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in: -- Renamed %InvokeCode to %VirtualCallCode and only use it in a -- generated virtual reimplementation. -- [82c8303a8041] <4.16-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, -- sipgen/sip.h.in: -- Implemented the %InvokeCode directive. -- [d85f3584b06f] <4.16-maint> -- -- * siplib/siplib.c.in: -- Fixed the handling of keyword argument when keywords can be used for -- all arguments. -- [2ae037bbfa23] <4.16-maint> -- -- * sphinx/directives.rst: -- Fixed a documentation typo. -- [fb4c980c92cc] <4.16-maint> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Backed out changeset 9e11298be101 A more correct solution is -- required. -- [e212465fed26] <4.16-maint> -- --2015-03-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Reverted to the pre-v4.15 behavour when generating the scope of a -- call to a virtual implementation where the scope may be ambiguous. -- This may not be the right call, but at least the code compiles. -- [9e11298be101] <4.16-maint> -- --2015-03-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/transform.c: -- Fixed a bug where the original typedef of an argument of a mapped -- template type was being corrupted. -- [f652446e2462] <4.16-maint> -- -- * sphinx/conf.py.in: -- Updated for sphinx v1.3. -- [569a9695bc2f] <4.16-maint> -- -- * sipgen/sip.h.in: -- Fixed a regression in the handling of module flags. -- [3f8c05ac8e47] <4.16-maint> -- --2015-02-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.6 for changeset 1c5f5c8c7416 -- [6c73a1f41add] <4.16-maint> -- -- * NEWS: -- Released v4.16.6. -- [1c5f5c8c7416] [4.16.6] <4.16-maint> -- -- * NEWS: -- Updated the NEWS file. -- [bf261aa4b322] <4.16-maint> -- --2015-02-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Added support for module-level PyObjects. -- [136913548818] <4.16-maint> -- --2015-02-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Installing into a virtual env should now work. -- [5e133f99d74e] <4.16-maint> -- -- * siplib/siplib.c.in: -- Fixed the handling of an empty dict of keyword arguments. -- [5f5542824235] <4.16-maint> -- --2015-02-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c, sphinx/command_line.rst: -- The -T command line option is now ignored and deprecated. Timestamps -- in generated files are always disabled. -- [9b1a195afe04] <4.16-maint> -- -- * sipgen/main.c, sphinx/command_line.rst: -- Added support for the '@file' format for passing additional command -- line options in a file. -- [6c270132db87] <4.16-maint> -- --2015-02-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c, sphinx/command_line.rst: -- Deprecated the -z option to the code generator. -- [b1dff38b9766] <4.16-maint> -- --2015-02-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a couple of compiler warnings. -- [d653de687fd4] <4.16-maint> -- --2015-02-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * Merged the current 4.16-maint branch into the trunk. -- [f207b8886557] -- --2015-01-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the lookup of slots. -- [56c254273cd8] <4.16-maint> -- --2015-01-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y: -- Fixed an invalid deprecation warning. -- [3c5425fa3c80] <4.16-maint> -- --2015-01-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /FileExtension/ class annotation. -- [51f7769fe32f] <4.16-maint> -- -- * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c, -- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c, -- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, -- siplib/array.c, siplib/array.h, siplib/bool.cpp, -- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, -- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, -- siputils.py, sphinx/conf.py.in, sphinx/directives.rst: -- Updated the copyright notices. -- [ccd0bdd9b21c] <4.16-maint> -- -- * siputils.py, sphinx/build_system.rst, sphinx/c_api.rst, -- sphinx/python_api.rst: -- Updated the docs in preparation for snapshots being called previews. -- [c42e02f71e27] <4.16-maint> -- --2014-12-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug when a C/C++ argument was a pointer to a -- struct/class and the Python argument was a void*. -- [51b0b1f31cea] <4.16-maint> -- --2014-12-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, siputils.py: -- Fixed the --target-py-version flag to configure.py. -- [0e9e078d2d18] <4.16-maint> -- --2014-12-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.5 for changeset 9c27ed5e0d77 -- [6aa131ac48e8] <4.16-maint> -- -- * NEWS: -- Released as v4.16.5. -- [9c27ed5e0d77] [4.16.5] <4.16-maint> -- --2014-12-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed SIP_SLOT_CON and SIP_SLOT_DIS so that they generate const -- char*. -- [7f4c922a779f] <4.16-maint> -- --2014-12-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/voidptr.c, sphinx/c_api.rst, -- sphinx/python_api.rst: -- Added sip.voidptr.asarray(). -- [d3b5a974ac69] <4.16-maint> -- --2014-12-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Updated a deprecated definition of method arguments. -- [529b8cd2ab89] <4.16-maint> -- --2014-11-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed a regression when adding the VPATH support for moc. -- [c2c285a80412] <4.16-maint> -- --2014-11-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- A source package now includes a full ChangeLog. -- [c005a6d2e53e] <4.16-maint> -- --2014-11-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Build system fix so that generated Makefiles support VPATH with moc. -- [3f9301ccb08a] <4.16-maint> -- --2014-11-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, siputils.py, sphinx/build_system.rst: -- Fixed bugs with out-of-tree builds. -- [4579c80da1be] <4.16-maint> -- -- * sphinx/build_system.rst, sphinx/distutils.rst: -- Updated the docs regarding the build system and SIP v5. -- [2828a3bb25af] <4.16-maint> -- -- * sphinx/c_api.rst: -- Updated the docs for sip.SIP_VERSION_STR. -- [04e7630e6a41] <4.16-maint> -- --2014-11-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- Removed the reference to MacHg in the internal build script. -- [b1668849c472] <4.16-maint> -- --2014-10-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.4 for changeset c5d0da367a1e -- [cb045f5e074a] <4.16-maint> -- -- * NEWS: -- Released as v4.16.4. -- [c5d0da367a1e] [4.16.4] <4.16-maint> -- --2014-10-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug related to encoded C string arguments to -- virtuals. -- [f230cfcebc36] <4.16-maint> -- --2014-10-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/descriptors.c: -- Minor fix for Python v2.5 and earlier. -- [3b7f6957ae4b] <4.16-maint> -- --2014-10-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Reimplemented the __qualname__ support for enums so that it is -- always non_NULL (because Python accesses the value directly -- internally and doesn't go through the attribute interface). -- [c2cfa151229a] <4.16-maint> -- --2014-10-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, sphinx/c_api.rst: -- Removed SIP_REACQUIRE_GIL as we no longer need it. -- [7e026c2613ec] <4.16-maint> -- -- * sipgen/transform.c: -- Fixed a recent regression in the de-duplication of virtual catchers. -- [65abadff114d] <4.16-maint> -- --2014-10-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, sphinx/c_api.rst: -- Added SIP_REACQUIRE_GIL. -- [9ff042abc188] <4.16-maint> -- --2014-10-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/transform.c, sphinx/annotations.rst: -- Added the /AbortOnException/ function annotation. -- [835f4d6bcb99] <4.16-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c, -- sphinx/annotations.rst: -- Added the /DisallowNone/ function annotation. -- [8b2f4c02e106] <4.16-maint> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/metasrc/parser.y, -- sipgen/sip.h.in, sphinx/annotations.rst: -- Implemented the /DisallowNone/ argument annotation. -- [d3a7fd6b1344] <4.16-maint> -- -- * sipgen/metasrc/parser.y, sipgen/transform.c, sphinx/annotations.rst, -- sphinx/c_api.rst: -- Added the AllowNone function annotation. -- [9d52162606b5] <4.16-maint> -- --2014-09-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Virtual handlers with handwritten code can no longer be considered -- to be the same. -- [a4c712b72828] <4.16-maint> -- --2014-09-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.3 for changeset 8ead57151bd1 -- [de0c3c076ab3] <4.16-maint> -- -- * NEWS: -- Released as v4.16.3. -- [8ead57151bd1] [4.16.3] <4.16-maint> -- --2014-09-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [b5de96615389] <4.16-maint> -- --2014-09-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/bool.cpp, siplib/siplib.c.in: -- Eliminated all compiler warnings when building on Windows with -- qmake. -- [1a321ad68223] <4.16-maint> -- --2014-09-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Enums now support PEP 3155 fro Python v3.3 and later. -- [a3f8a9b56659] <4.16-maint> -- --2014-07-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py, configure.py.in: -- Added fixes for QTBUG-39300. -- [53f490fe8f52] <4.16-maint> -- --2014-07-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.2 for changeset 4eb546b2c208 -- [21412c346e75] <4.16-maint> -- -- * NEWS: -- Released as v4.16.2. -- [4eb546b2c208] [4.16.2] <4.16-maint> -- --2014-06-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a regression that introduced some "modern" C code. -- [449e2866018a] <4.16-maint> -- --2014-06-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/metasrc/parser.y, sphinx/directives.rst: -- Deprecated the %ConsolidatedModule directive as it won't be -- supported in SIP v5. -- [e4dc9d633742] <4.16-maint> -- --2014-06-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a bug with /Out/ class pointer arguments in virtual methods. -- [8abafd34bfab] <4.16-maint> -- -- * sipgen/gencode.c: -- Work around what looks like a Python2 bug in the handling of -- composite modules. -- [f113aea18630] <4.16-maint> -- --2014-06-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16.1 for changeset efd5e09a4024 -- [787e2ce426f7] <4.16-maint> -- -- * NEWS: -- Released as v4.16.1. -- [efd5e09a4024] [4.16.1] <4.16-maint> -- --2014-06-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixes for Python v2.6. -- [3974dcb54776] <4.16-maint> -- --2014-06-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a regression in the creating of the build file when generating -- individual source files. -- [d9229cce7220] <4.16-maint> -- --2014-05-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.16 for changeset d3a907d2acd1 -- [2a310fa9719a] -- -- * NEWS: -- Released as v4.16. -- [d3a907d2acd1] [4.16] -- --2014-05-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/descriptors.c: -- Fixed a regression introduced when getting rid of warning messages. -- [9472e2f08313] -- --2014-05-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed a regression in the handling of the --platform configure.py -- option. -- [1cc4bd967882] -- --2014-05-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Eliminated a couple of (benign) warning messages. -- [f6acb8ed7b65] -- --2014-05-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [d3c64f5117e0] -- -- * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/command_line.rst, sphinx/directives.rst, -- sphinx/incompatibilities.rst: -- Changed the handling of timelines so that the latest version is -- enabled if no known version is explicitly enabled. Added the -B -- option to sip to allow timeline backstops to be defined. -- [8a3fb94329aa] -- --2014-05-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed a bug in the handling of configuration files. -- [61da788f455f] -- --2014-05-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Don't generate an interface file if it will be empty. -- [3f7d0afde4ce] -- -- * siplib/siplib.c.in: -- Ignore overflows when converting Python ints to C/C++. -- [8065fb1cb418] -- --2014-05-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /NoSetter/ variable annotation. -- [422cc3b4ee5b] -- -- * sipgen/gencode.c: -- Fixed a code generation bug for variables with multi-const types. -- [dd6840986c03] -- --2014-05-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/descriptors.c, siplib/siplib.c.in, -- siplib/voidptr.c: -- Fixed building against Python v2.5 and earlier. -- [be46b0f3b785] -- -- * NEWS, configure.py.in, sphinx/installation.rst: -- Added the --no-tools option to configure.py. -- [fcc0fc5d24c4] -- --2014-05-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/installation.rst: -- Some documentation fixes. -- [210151d0ba6a] -- -- * build.py, configurations/rpi_py3.cfg, sphinx/installation.rst: -- Removed the configurations directory. -- [4b482124587b] -- -- * siplib/apiversions.c, siplib/array.c, siplib/descriptors.c, -- siplib/siplib.c.in, siplib/voidptr.c: -- Eliminated most warning messages. Fixed a memory leak in the -- handling of sip.array. -- [63626dea7508] -- -- * configure.py.in, sphinx/installation.rst: -- Removed the unneeded support for continuation lines in configuration -- files. -- [95f40f9a8967] -- -- * NEWS, build.py, configurations/rpi_py3.cfg, configure.py.in, -- siputils.py, sphinx/installation.rst: -- Removed the --static-root option. Added the --configuration, -- --sysroot and --target-py-version options. Added the Raspberry Pi -- configuration file. -- [e57308c0ef92] -- --2014-05-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, build.py, configure.py.in, sphinx/installation.rst: -- Added the --use-qmake option to configure.py so that it can be -- cross-compiled. -- [163331dc90b0] -- --2014-05-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py, custom/custom.c, custom/customw.c, custom/mkcustom.py, -- sphinx/build_system.rst, sphinx/builtin.rst, sphinx/index.rst: -- Removed the (way out of date and superceded by pyqtdeploy) custom -- directory. -- [4e4a1cbe2f7e] -- -- * NEWS, configure.py.in, sphinx/installation.rst: -- Added the --static-root option to configure.py. -- [c90befbc77d2] -- --2014-04-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Handle in-line comments in spec files. -- [044852da62d4] -- --2014-04-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Fixed the previous fix. (This is C not C++.) -- [a67e996e00d3] -- --2014-04-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/voidptr.c: -- Implemented nb_bool for sip.voidptr. -- [7ca5aa6bde10] -- --2014-04-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/qtlib.c, siplib/sipint.h: -- Reversed the sense of the argument to check for signal receivers. -- [e14829596147] -- -- * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in: -- Added sipInvokeSlotEx() as support for the upcoming 'check_receiver' -- flag in PyQt's connect(). -- [d7ef32db3967] -- --2014-04-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/parser.y: -- Merged the v4.15 maintenance branch into the trunk. -- [8e55c9f2ba87] -- --2014-04-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/conf.py.in: -- Fixed the missing logo thumbnail. -- [f53a9094e52e] <4.15-maint> -- --2014-04-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in, sphinx/build_system.rst, sphinx/using.rst: -- Updated the docs so that pyqtconfig is only mentioned in the context -- of PyQt4. Fixed some typos. -- [efa359fde2a4] <4.15-maint> -- --2014-03-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the generation of Qt signal signatures so that they are -- correct for Qt5. -- [3f9633204687] <4.15-maint> -- --2014-03-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/metasrc/parser.y, sipgen/sip.h.in: -- Fixed the handling of platforms and features that are disabled by -- other platforms or features. -- [0c1b13e45887] <4.15-maint> -- --2014-03-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the handling of enums for C++11. -- [85e544458789] <4.15-maint> -- --2014-03-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15.5 for changeset 13906834d910 -- [411bbc879ae6] <4.15-maint> -- -- * NEWS: -- Released as v4.15.5. -- [13906834d910] [4.15.5] <4.15-maint> -- --2014-03-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Make sure an object doesn't already have a parent when adding it in -- __init__() (ie. avoid an infinite loop if __init__() is called twice -- for an object). -- [05c32deeaeed] <4.15-maint> -- --2014-03-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [8d7c37ddc55d] <4.15-maint> -- --2014-02-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Added the PyQt signal hack #3. All versions of signals with optional -- arguments are now generated for PyQt4 when built against Qt5. -- [22c03a345d4e] <4.15-maint> -- --2014-02-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed the creation of wrapper scripts for Python v3.4 on OS/X. -- [93e30c84cbf9] <4.15-maint> -- --2014-02-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in: -- Support for the PyQt4 signal hacks when building against Qt5. -- [8bff7edb3c80] <4.15-maint> -- --2014-02-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Implemented the PyQt5 signal emitters. -- [4fc63f9adb44] <4.15-maint> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in: -- Bumped the internal API to v11.0. The PyQt4 and PyQt5 specific data -- structures are now completely separate in preparation for the signal -- changes needed by PyQt5. Renamed the PyQt4Flags and -- PyQt4NoQMetaObject annotations so that they are not PyQt4 specific. -- [b96a5e69adb6] <4.15-maint> -- --2014-02-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a name clash for a type in a module that has the same name as -- the module when building against Python v2. -- [d45411f2a001] <4.15-maint> -- --2014-02-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Relax a test in the build system for PyQt v4.10.3 and earlier so -- that we don't have to synch releases. -- [e6e10c9f08b5] <4.15-maint> -- --2014-02-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- sip.wrapinstance() will now handle addresses >32 bits on Windows64. -- [5a95f257ccca] <4.15-maint> -- --2014-02-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sphinx/annotations.rst: -- Fixed the /KeepReference/ function annotation when applied to static -- functions. -- [2737c3074f4d] <4.15-maint> -- -- * siputils.py: -- Removed the requirement that Python must be built as a framework on -- OS/X. -- [fb6dbd80297b] <4.15-maint> -- --2014-01-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: -- Removed the unnecessary (and broken) support for __unicode__(). -- [0b19f77489ce] <4.15-maint> -- --2014-01-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siputils.py, sphinx/build_system.rst: -- The use_arch argument of sipconfig.create_wrapper() will now accept -- a space separated set of architectures. -- [6fe353128007] <4.15-maint> -- --2014-01-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed a bug building on OSX when passing a value of LIBDIR to -- configure.py on the command line. -- [577bff05ca6d] <4.15-maint> -- --2014-01-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15.4 for changeset 4d629a0d7510 -- [79a5b5e82ca3] <4.15-maint> -- -- * NEWS: -- Released as v4.15.4. -- [4d629a0d7510] [4.15.4] <4.15-maint> -- --2014-01-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c, -- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c, -- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, -- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, -- siplib/array.c, siplib/array.h, siplib/bool.cpp, -- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, -- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, -- siputils.py, sphinx/conf.py.in, sphinx/directives.rst: -- Updated the copyright notices. -- [b4a30e5b9970] <4.15-maint> -- --2013-12-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Allow the pointers used to store the parsed results from Python -- reimplementations to be NULL. -- [7b83d16f7d28] <4.15-maint> -- -- * build.py, sipgen/lexer.l, sipgen/metasrc/README, -- sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/parser.y: -- Moved the lexer and parser meta-source files to a separate directory -- to avoid problems with make accidentaly regenerating them. -- [c8d48c22ebf7] <4.15-maint> -- -- * build.py: -- Remove the __pycache__ directory when cleaning. -- [a0682feb1e94] <4.15-maint> -- --2013-12-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/array.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added SIP_SSIZE_T_FORMAT to the C API. -- [e74243fcc265] <4.15-maint> -- --2013-12-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y: -- Fixed the parsing of C++ types involving multiple const and -- pointers. -- [7a74623b6967] <4.15-maint> -- --2013-10-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/objmap.c, siplib/sipint.h, -- siplib/siplib.c.in, siplib/voidptr.c: -- Fixed all the compiler warning messages when building the sip -- module. -- [5e5fdf4cc35c] <4.15-maint> -- --2013-10-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15.3 for changeset a751e48db99a -- [dffbff1c0664] <4.15-maint> -- -- * NEWS: -- Released as v4.15.3. -- [a751e48db99a] [4.15.3] <4.15-maint> -- --2013-10-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed virtual re-implementations so that the number of generated -- Python methods slots is correct and that re-implementations -- explicitly marked as virtual are handled correctly. -- [aa7806ed2405] <4.15-maint> -- --2013-10-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the format of an exception with Python v2. -- [5dc8c370157e] <4.15-maint> -- --2013-09-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15.2 for changeset f8fdf4d1eb87 -- [82b599f547b1] <4.15-maint> -- -- * NEWS: -- Released as v4.15.2. -- [f8fdf4d1eb87] [4.15.2] <4.15-maint> -- --2013-09-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/array.h, siplib/sip.h.in.in, -- sphinx/c_api.rst: -- sipConvertToArray() will now optionally take ownership of the array -- memory. Changed the signatures of sipConvertToArray() and -- sipConvertToTypedArray(), but in a source and binary compatible way. -- [908d49322dcf] <4.15-maint> -- -- * siplib/array.c, sphinx/c_api.rst: -- Added support for char, unsigned char, short, int, float and double -- as array types. -- [fc41755d6481] <4.15-maint> -- --2013-08-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Further fixes for the handling of virtual methods. -- [14732b487dda] <4.15-maint> -- --2013-08-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15.1 for changeset 148b813a559c -- [5ef6f2e04687] <4.15-maint> -- -- * NEWS: -- Released as v4.15.1. -- [148b813a559c] [4.15.1] <4.15-maint> -- -- * sipgen/transform.c: -- Fixed a regression in the handling of hidden virtuals. -- [15657c502e42] <4.15-maint> -- --2013-08-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.15 for changeset 2f84fb045098 -- [1f9737376184] -- -- * NEWS: -- Released as v4.15. -- [2f84fb045098] [4.15] -- --2013-08-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/annotations.rst: -- Fixed a mistake in the documentation for /Factory/. -- [4c2fe2e7397e] -- -- * siplib/siplib.c.in: -- Fixed a C++ism that crept into the sip module code. -- [764f7fc80f1f] -- --2013-08-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [69897cf50dea] -- --2013-08-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipRegisterProxyResolver() to the public API. -- [66235bf9625f] -- --2013-08-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Documented sipConvertToArray() and sipConvertToTypedArray(). -- [bf49a3ad5612] -- --2013-08-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/array.c, siplib/sipint.h, siplib/siplib.c.in: -- Fixed the array support. -- [e2d05fb54872] -- -- * sipgen/gencode.c, siplib/array.c, siplib/array.h, -- siplib/sip.h.in.in, siplib/siplib.c.in: -- Added sipConvertToArray(). -- [660fdd5cb10e] -- -- * sipgen/gencode.c: -- Eliminated unused arguments in the setters of constant variables. -- [e43b7d64c488] -- --2013-08-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /NoScope/ enum annotation. -- [aa4646c186d2] -- -- * siplib/array.c, siplib/array.h, siplib/siplib.c.in: -- Properly initialise the sip.array type. -- [a7e4f6c62b8f] -- -- * siplib/array.c, siplib/array.h, siplib/sip.h.in.in, siplib/sipint.h, -- siplib/siplib.c.in: -- Completed the array implementation for wrapped types. -- [9e5b63022e19] -- --2013-08-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/array.c, siplib/array.h, -- siplib/sip.h.in.in, siplib/siplib.c.in, siplib/siplib.sbf.in: -- Added the stub of the array support. -- [ffb87d2e0fc5] -- --2013-07-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Documented sipConvertFromNewPyType(). -- [ba59d434b206] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Changed the signature of sipConvertFromNewPyType() to handle -- ownership and hide the internals of generated derived classes. -- [5a9ba502593c] -- -- * sipgen/gencode.c: -- Fixed the PyQt5 generation of qt_metaobject() so that it supports -- QML. -- [2f18c4617542] -- --2013-07-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h, -- siplib/siplib.c.in, siplib/threads.c: -- Added the (as yet undocumented) sipConvertFromNewPyType(). -- [5a65f5bad461] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /ExportDerived/ class annotation. -- [e3c78dfd30b8] -- --2013-07-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Clear any exceptions before trying to parse a reimplementation -- result. -- [7bebd55f50b2] -- --2013-07-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a mixin bug where C++ was using the mixin (rather than Python) -- wasn't being detected properly. -- [52d3b8035dca] -- --2013-07-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a bug in the dereferencing of mixins. -- [fc3df3e99932] -- --2013-07-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: -- Implemented the PyQt5 plugin, including support for Qt interfaces. -- Added sipGetMixinAddress() to the public API. Python -- reimplementations of abstract mixins are now handled correctly. -- [972540270afa] -- --2013-07-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- The parser now handles multiple consts in type declarations. -- [e7b6e4b5b1de] -- -- * sipgen/gencode.c: -- Properly implement /TransferBack/ even for return values that appear -- to be always new because the type may be a mapped collection type -- with elements that might not be new (e. QList<QTreeWidgetItem *>). -- [9c073a101fb6] -- --2013-07-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l: -- Make sure that source locations are always valid (if not always -- absolutely correct). -- [e5a66c9174a6] -- --2013-07-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in: -- The parser can now handle expressions with casts. -- [54ec565cf24e] -- -- * sipgen/lexer.l: -- Added support for numbers having trailing lLuU. -- [88cc29113b02] -- --2013-07-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Backed out changeset bd5b9927361b The problem is real (but currently -- not triggered), but the fix breaks PyQt. -- [3529b7c08228] -- --2013-07-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed a bug where a method with %VirtualCatcherCode was being used -- by a method without if they had the same signature. -- [bd5b9927361b] -- -- * configure.py.in: -- Invalidate the import caches before trying to import the newly -- created sipconfig.py. -- [1e3ae0d5e790] -- -- * sipgen/gencode.c: -- Fixed the mixin support when the generated class definition may be a -- sub-type. -- [aec935209f0d] -- --2013-07-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- A virtual catcher now calls the super-class implementation by via -- the super-class rather than needing to know exactly where the -- nearest implementation is. -- [58987948b9fd] -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- siplib/descriptors.c, siplib/sip.h.in.in, siplib/sipint.h, -- siplib/siplib.c.in, sphinx/annotations.rst: -- Implemented the /Mixin/ class annotation. -- [8b1702ce3226] -- --2013-07-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h.in, siplib/siplib.c.in, sphinx/directives.rst: -- Added the call_super_init argument to the %Module directive. Updated -- the documentation. -- [42950b118753] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Support for cooperative multi-inheritance must now be explicitly -- enabled because it affects compatibility. Added a shortcut so that -- the cooperative multi-inheritance support is skipped when it isn't -- needed. -- [07984388686f] -- --2013-06-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/siplib.c.in: -- Fixed the %Finalisation support so that QObject sub-classes work. -- [17fc8e27b7e9] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Completed the support for cooperative multi-inheritance. -- [ddd13ea38870] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Changed the API of td_final to minimise the creation of new dicts. -- Fixed the calling of the super-class's __init__. -- [195f0d1ab91c] -- --2013-06-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Instead of calling super() to implement the cooperative multi- -- inheritance, just call the __init__ of the next type in the MRO. -- [da9edad8f7b1] -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Wrapped classes now support cooperative multi-inheritance with non- -- sip classes. Implemented %FinalisationCode. -- [aaedcb26099e] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in: -- Added the code generator support for %FinalisationCode. -- [e8b4b1ab730d] -- --2013-06-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * Merged the v4.14 maintenance branch. -- [97beee973f94] -- --2013-06-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Fixed a reference count bug when a sip.voidptr is created from a -- buffer object. -- [02bdf6cc32c1] <4.14-maint> -- --2013-06-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.7 for changeset ee771b441704 -- [6e6cc6c60a36] <4.14-maint> -- -- * NEWS: -- Released as v4.14.7. -- [ee771b441704] [4.14.7] <4.14-maint> -- --2013-06-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, build.py, sip.nsi.in, sphinx/installation.rst: -- Removed the Windows installer as we can't have co-existant PyQt4 and -- PyQt5 installers for other reasons. -- [74e1df1d9940] <4.14-maint> -- --2013-06-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sip.nsi.in, sphinx/installation.rst: -- Debugged the installer. -- [00678082f72e] <4.14-maint> -- -- * build.py, sip.nsi.in: -- Added the initial (not debugged) installer. -- [d22b19884c62] <4.14-maint> -- -- * sphinx/directives.rst: -- Fixed a broken reference to the Python documentation. -- [38ed755c797d] <4.14-maint> -- --2013-06-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the last fix. -- [67258ffe885a] <4.14-maint> -- --2013-06-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/parser.y, sipgen/sip.h.in, siplib/siplib.c.in, -- sphinx/annotations.rst: -- Added the /Sequence/ function annotation. Added a work around for -- the Python bug whereby nb_inplace_add is wrongly copied to -- sq_inplace_concat if either are missing. -- [029828cabb4d] <4.14-maint> -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/directives.rst, sphinx/python_api.rst: -- Added support for classes to have %ConvertFromTypeCode. Added -- sipEnableAutoconversion() to the C API. Added -- sip.enableautoconversion() to the Python API. -- [4dbbc8c6c054] <4.14-maint> -- --2013-06-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in, -- siplib/sipint.h, siplib/siplib.c.in, siplib/threads.c: -- Bumped the internal API to 10.0. Removed deprecated parts of the -- private API. Added the stub for the optional convert from class -- code. -- [50319794231a] <4.14-maint> -- --2013-06-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/qtlib.c, siplib/siplib.c.in: -- Add more checks to make sure that PyQt5 isn't accidentally using -- features that will be deprecated in SIP5. -- [c80745f8ee0b] <4.14-maint> -- --2013-06-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/qtlib.c: -- Added assertions for Qt support for all API functions that provide -- Qt support. -- [aa60efc50608] <4.14-maint> -- --2013-05-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Fixed a bug in converting an int to a voidptr. -- [dd473964ac33] <4.14-maint> -- --2013-05-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst: -- Added sipSetDestroyOnExit() to the public C API. -- [40660935c75b] <4.14-maint> -- --2013-04-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug that affected QObject sub-classes with -- dtor %MethodCode and with the GIL not released by default (ie. -- PyQt5). -- [bd9eccac4407] <4.14-maint> -- --2013-04-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.6 for changeset 32dcb22f994c -- [23da2e18916b] <4.14-maint> -- -- * NEWS, Roadmap.rst: -- Released as v4.14.6. -- [32dcb22f994c] [4.14.6] <4.14-maint> -- --2013-04-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sphinx/annotations.rst: -- Documented that sub-classing from classes with different -- implementations is not supported. -- [1773f2100851] <4.14-maint> -- -- * sipgen/parser.y: -- Fixed a grammar bug in the parsing of %Module with no parenthesis. -- [2d5256eda850] <4.14-maint> -- --2013-04-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a bug in the parsing of SIP_ANYSLOT arguments. -- [a9f7473ba9c7] <4.14-maint> -- --2013-04-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Removed some redundant code generated for a component module. -- [395bf9f00aa6] <4.14-maint> -- --2013-03-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.5 for changeset e528e634d4db -- [6a2bda53d2c0] <4.14-maint> -- -- * NEWS: -- Released as v4.14.5. -- [e528e634d4db] [4.14.5] <4.14-maint> -- --2013-03-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug when using /Array, Transfer/. -- [054f1676c300] <4.14-maint> -- --2013-03-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed a build system bug for QtWebKit on Linux against Qt v5. -- [c65a525a0a17] <4.14-maint> -- --2013-03-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.4 for changeset 4c818299f57a -- [72b69b39a7a8] <4.14-maint> -- -- * NEWS: -- Released as v4.14.4. -- [4c818299f57a] [4.14.4] <4.14-maint> -- --2013-02-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, sphinx/installation.rst: -- The --sdk flag to configure.py will now default to the directory -- used by current versions of Xcode. -- [312a27229b3f] <4.14-maint> -- --2013-02-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sipint.h, siplib/siplib.c.in, -- siplib/threads.c: -- The thread support now only creates TLS when it is actually needed. -- This makes sipStartThread() redundant and it is now deprecated. -- Failing to allocate TLS will now raise an exception. -- [34f6f0d52c1e] <4.14-maint> -- -- * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/directives.rst, -- sphinx/incompatibilities.rst: -- VirtualErrorHandler code is now called with the GIL and from the -- thread that raised the exception. This ensures that the details of -- the exception can be obtained. It also means that the default -- handler (ie. PyErr_Print()) can also get the details. -- VirtualErrorHandler code is now also provided sipGILState so that it -- can call SIP_RELEASE_GIL() prior to changing the execution path. -- [45a50c6d82fe] <4.14-maint> -- --2013-02-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/introduction.rst.in: -- Documentation updates regarding SIP v5. -- [03f33e7fdfb1] <4.14-maint> -- --2013-02-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c: -- Fixed the generation of an unnecessary variable for array arguments. -- [fb45cf6e775b] <4.14-maint> -- --2013-02-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- The problem of the moc pathname is more widespread. -- [bf2062f2318f] <4.14-maint> -- -- * siputils.py: -- Fix the build of QtWebKit on Windows. Workaround the foward slash -- characters in the moc pathname on Windows/Qt5. -- [13ee5a9fc8bd] <4.14-maint> -- --2013-02-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed the QAxContainer dependencies for Qt5. -- [793be65e22b9] <4.14-maint> -- -- * siputils.py: -- Fixed the renaming of QAxContainer for Qt5. -- [7e67f0559595] <4.14-maint> -- -- * siputils.py: -- Fixed the QAxContainer dependency for Qt5. -- [d33f9eaa4394] <4.14-maint> -- -- * siputils.py: -- Build system changes for Qt5 on Windows. -- [9abd1d0f5d3f] <4.14-maint> -- --2013-01-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.3 for changeset 6e004d396299 -- [c9a29107c8ef] <4.14-maint> -- -- * NEWS: -- Released as v4.14.3. -- [6e004d396299] [4.14.3] <4.14-maint> -- --2013-01-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- When a Python object is garbage collected SIP no longer creates an -- additional reference to any child Python objects so that those -- children can now be handled by the garbage collector if appropriate. -- We used to keep the extra reference to make sure any additional -- attributes set in the child were preserved, however if the parent is -- being deleted then the C++ object it wraps must have been (or is -- about to be) destroyed, and therefore (if the parent/child -- relationships between the Python objects are correct) the child -- Python object is about to be deleted anyway. Before we relied on the -- C++ child telling us when to garbage collect the Python child via -- its virtual dtor - but this won't work if it was the C++ library -- (rather than the Python application) that created the child. -- [dc06058c99dd] <4.14-maint> -- --2013-01-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Backed out changeset 4ec79ea69263 Realised that the (slight) change -- in behaviour could break legitimate use cases. -- [597c864debcc] <4.14-maint> -- -- * siplib/siplib.c.in: -- When a Python object is garbage collected its child Python objects -- are now garbage collected unless they have an instance dict. -- [4ec79ea69263] <4.14-maint> -- --2013-01-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * LICENSE, build.py, configure.py.in, sipgen/export.c, -- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, -- sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf, -- sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp, -- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, -- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, -- siputils.py, sphinx/conf.py.in, sphinx/directives.rst: -- Updated the copyright notices. -- [ee3b1348996c] <4.14-maint> -- --2013-01-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sphinx/annotations.rst: -- The /KeepReference/ argument annotation, when applied to factories, -- will now keep the reference with the object created by the factory. -- [0ad6099f31fa] <4.14-maint> -- --2013-01-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Properly implemented the support for passing objects that implement -- the buffer protocol where a voidptr is expected. -- [171bd8e1e037] <4.14-maint> -- -- * siputils.py: -- Changed the test for a Python framework build so that it works with -- pyvenv. -- [a612391f667c] <4.14-maint> -- --2012-12-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Further build system fixes for Linux/Qt5. -- [04dec290a15e] <4.14-maint> -- -- * siputils.py: -- Fix the build system for the Linux specific naming conventions of -- the Qt5 libraries. -- [05cb90880c2b] <4.14-maint> -- --2012-12-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed the build system for QtTest in Qt5. -- [55188026fe6d] <4.14-maint> -- --2012-12-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.2 for changeset e9180a8d374f -- [ed864cf2277f] <4.14-maint> -- -- * NEWS: -- Released as v4.14.2. -- [e9180a8d374f] [4.14.2] <4.14-maint> -- --2012-12-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed the build system for Qt v5-rc1. -- [44586b952072] <4.14-maint> -- --2012-11-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- The build system now knows that QtWebKit is QtWebKitWidgets in Qt5. -- [b8261071d302] <4.14-maint> -- --2012-11-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/siplib.c.in, sphinx/python_api.rst: -- Added sip.setdestroyonexit(). -- [b063e90b6c20] <4.14-maint> -- -- * siplib/voidptr.c: -- Backed out to keep the behaviour the same as memoryview. -- [e8f21b0950c8] <4.14-maint> -- -- * siplib/voidptr.c: -- Backed out to keep the behaviour the same as memoryview. -- [26717fbefb61] <4.14-maint> -- --2012-11-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Patch from Matt Newell to fix /HoldGIL/ when exceptions are enabled. -- [669ecadaaae1] <4.14-maint> -- --2012-11-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- A simple index of a sip.voidptr now returns an int rather than a -- string/bytes of length 1. -- [80ee79901dc9] <4.14-maint> -- -- * siplib/voidptr.c: -- Fixed simple index item assignment for voidptr. -- [3cb217678514] <4.14-maint> -- -- * siplib/voidptr.c: -- The new buffer interface was backported to v2.6.3. -- [47f4f489055e] <4.14-maint> -- -- * NEWS, siplib/voidptr.c, sphinx/python_api.rst: -- sip.voidptr() will now accept any object that implements the (old or -- new) buffer protocols. -- [cb7799eb557b] <4.14-maint> -- -- * sphinx/python_api.rst: -- Clarified the docs for __getitem__ and __setitem__ for sip.voidptr. -- [32fb8513b196] <4.14-maint> -- --2012-10-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14.1 for changeset d0431cee7920 -- [6b278a98323b] <4.14-maint> -- -- * NEWS: -- Released as v4.14.1. -- [d0431cee7920] [4.14.1] <4.14-maint> -- --2012-10-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- More buffer support fixes. -- [1fe9c59f0f06] <4.14-maint> -- -- * siplib/siplib.c.in: -- Both the old and new buffer protocols are now checked. -- [7227f121bac9] <4.14-maint> -- --2012-10-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c, -- siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/annotations.rst, -- sphinx/c_api.rst, sphinx/specification_files.rst: -- Added support for types that implement the buffer protocol. -- [4ec285852cba] <4.14-maint> -- -- * siplib/siplib.c.in: -- None may be provided whenever a capsule is expected. -- [b90e3475bdfc] <4.14-maint> -- --2012-10-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Renamed the sipCapsule_* macros to be consistent with other similar -- ones. -- [1913168e0c8d] <4.14-maint> -- -- * sipgen/export.c: -- The type name of a capsule is now used in docstrings. -- [1c8ce8a61324] <4.14-maint> -- -- * sphinx/directives.rst: -- Fixed a documentation typo. -- [94362407c872] <4.14-maint> -- --2012-10-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Eliminated a C compiler warning message from the generated code. -- [e60f63cfe0d1] <4.14-maint> -- -- * NEWS, sipgen/parser.y, sipgen/sip.h.in: -- The C prototype foo(void) is now accepted. -- [54aca3c0b75e] <4.14-maint> -- -- * sipgen/lexer.l, sipgen/transform.c: -- Fixed a bug in the saving of line numbers for error messages when -- the error is on the last significant line. -- [7c77e368814f] <4.14-maint> -- -- * NEWS, sipdistutils.py, sphinx/distutils.rst: -- If no sip-opts are defined sipdistutils.py will now use any -- swig_opts passed to the Extension ctor. -- [6fcc431a81bf] <4.14-maint> -- --2012-10-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, -- siplib/siplib.c.in, sphinx/annotations.rst, sphinx/c_api.rst: -- Increased the API version number to 9.1. Added the /Capsule/ typedef -- annotation. Added the 'z' format character to sipBuildResult(). -- Added the 'z' format character to sipParseResult(). -- [f4bc254f96d8] <4.14-maint> -- --2012-10-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed regressions in the handling of types when generating code for -- C modules. -- [3eba5b9842f0] <4.14-maint> -- --2012-10-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Explicity close files in siputils.py to avoid resource warning -- messages. -- [fdc332e116b2] <4.14-maint> -- --2012-10-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Backed out the changes to the signal table generation (and revert -- the API version to 9.0) because they are no longer needed. -- [38235401ffbc] <4.14-maint> -- --2012-10-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Renamed PYQT4_SIGNAL_EXPLICIT to PYQT4_SIGNAL_FIXED_ARGS. Renamed -- PYQT4_SIGNAL_MASK to PYQT4_SIGNAL_ARGS_MASK. -- [cfbd55297dcd] <4.14-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Added the flags member to the pyqt4QtSignal structure so that PyQT -- can distinguish between explicitly defined signals and those added -- to support optional arguments. -- [81617aa9e051] <4.14-maint> -- --2012-10-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in: -- Revised the previous change to keep the brackets unless the signal -- has no arguments. (PyQt relies on the format for some of its -- exceptions.) -- [dd884ddcb239] <4.14-maint> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in: -- Changed the docstrings for signals to use parenthesis rather than -- brackets as it is less confusing. -- [3f6128385aa2] <4.14-maint> -- --2012-09-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.14 for changeset 90ea220ecc4b -- [76a18a32f759] -- -- * NEWS: -- Released as v4.14. -- [90ea220ecc4b] [4.14] -- --2012-09-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [214dd6433474] -- --2012-09-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/directives.rst, sphinx/embedding.rst, -- sphinx/incompatibilities.rst, sphinx/python_api.rst, -- sphinx/using.rst: -- Got rid of all Sphinx warning messages. -- [cbf911605931] -- --2012-09-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, specs/win32-msvc2008, specs/win32-msvc2010: -- Updated the win32-msvc2008 spec file. Taught the build system about -- MSVC 2010. -- [5d3c5164342a] -- --2012-09-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, siputils.py: -- Taught the build system about Qt5's CXXFLAGS_APP macro. -- [4e2fddd95c07] -- -- * sphinx/annotations.rst: -- Another correction to the /Factory/ documentation. -- [f030580a19f6] -- --2012-09-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/annotations.rst: -- Fixed the incorrect /Factory/ documentation. -- [3b76a41a1f4a] -- --2012-09-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the signature for generated virtual error handler functions. -- [caa74f25dff8] -- --2012-09-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Fixed an initialisation bug in the parser by making it resiliant to -- future changes. -- [fd2e76ea8e16] -- --2012-09-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in: -- Fixed a few compiler warning messages. -- [a8aaecad7327] -- --2012-09-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, -- sipgen/sip.h.in, sphinx/directives.rst: -- Added support for the SIP_PLATFORM_* and SIP_TIMELINE_* preprocessor -- symbols. -- [664ec65acb33] -- --2012-09-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- A build system fix for Qt v5-beta1. -- [6d704a7ab6c5] -- -- * siplib/sip.h.in.in: -- Removed the ANY SIP v3 compatibility macro as it causes problems -- with Qt v5. -- [40aeb5a8f98e] -- --2012-09-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sipgen/transform.c: -- The AllowNone and NoRelease mapped type annotations can now be -- applied to mapped type templates. -- [3da91337f333] -- -- * sphinx/annotations.rst: -- Documented the PyName mapped type annotation. -- [b1a5b8cab2ab] -- -- * sipgen/lexer.l: -- Improved the parsing of floating point literals thanks to Andrea -- Griffini. -- [be35aa0bb4b5] -- --2012-09-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/c_api.rst, sphinx/directives.rst: -- Added sipCallErrorHandler() to the private API. A virtual error -- handler is now called with the GIL released. The sipGILState -- variable is no longer passed to an error handler. -- [be42df79035d] -- --2012-08-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sphinx/annotations.rst, sphinx/directives.rst: -- Updated the docs regarding the latest virtual error changes. -- [86a4f33db172] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in: -- Changed the virtual error handler support yet again so that error -- handlers are automatically exported to sub-classes and sub-modules. -- [118500886fa7] -- --2012-08-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Completed the refactoring of virtual handlers to use -- sipParseResultEx(). -- [397b4ade7900] -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Added sipParseResultEx() to the private API as a stub for future -- changes. -- [659fcb20bbc9] -- -- * specs/macx-xcode: -- Merged the 4.13 branch into the trunk. -- [96ef5f43f010] -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, -- sphinx/annotations.rst, sphinx/c_api.rst, sphinx/directives.rst: -- Replaced the virtual error support (again) with the -- %DefaultVirtualErrorHandler directive, the /NoVirtualErrorHandler/ -- and /VirtualErrorHandler/ function annotations, and the -- /VirtualErrorHandler/ class annotation. Added sip_gilstate_t and -- SIP_RELEASE_GIL() to the public API. The Sphinx docs now use C -- domains where appropriate. -- [71c0d64913bc] <4.13-maint> -- --2012-08-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in, -- siplib/siplib.c.in: -- Bumped the API version number to 9.0. Removed the support for -- pre-9.0 variable structures. Changed the sipVariableGetterFunc -- signature to pass the Python object. -- [d8824768aa51] <4.13-maint> -- -- * sphinx/c_api.rst: -- Updated the documentation for sipConvertToType(). -- [32c2c73f4c27] <4.13-maint> -- --2012-08-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, -- sphinx/annotations.rst, sphinx/directives.rst: -- Changed the support for flagging errors in Python reimplementations -- of virtuals by adding the %VirtualErrorCode directive and removing -- SIPPyException. Also replaced the all_throw_cpp_exception %Module -- argument with all_use_VirtualErrorCode, and the -- /NoThrowsCppException/ and /ThrowsCppException/ function annotations -- with /NoUsesVirtualErrorCode/ and /UsesVirtualErrorCode/. -- [523c3bccb41b] <4.13-maint> -- --2012-08-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in: -- Fixed the support for virtual handler exceptions so that memory -- isn't leaked and the GIL is released. -- [f644e914b292] <4.13-maint> -- -- * sipgen/transform.c: -- A simply tidy up after the previous change. -- [b3cd21a00d51] <4.13-maint> -- -- * sipgen/transform.c: -- Backed out changeset 1066 and did it properly. -- [368eaa1143bd] <4.13-maint> -- --2012-08-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, -- sphinx/annotations.rst, sphinx/directives.rst: -- Added the all_throw_cpp_exception argument to the %Module directive. -- Added the /ThrowCppException/ and /NoThrowCppException/ function -- annotations. -- [5f97352e818f] <4.13-maint> -- --2012-08-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- No longer require that the types of the arguments of a C/C++ -- signature are fully defined to SIP. -- [01e11dc52626] <4.13-maint> -- --2012-08-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/siplib.c.in, sphinx/c_api.rst: -- sipTransferTo() now increments the reference count of an object if -- the owner is Py_None. Fixed a type checking bug in sip.transferto(). -- Deprecated sipTransferBreak(). -- [f59d135ae51c] <4.13-maint> -- --2012-08-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- For Python v2.x unsigned short and unsigned byte are now converted -- to int rather than long objects (to be consistent with the signed -- versions). -- [897e085bdd97] <4.13-maint> -- -- * siplib/siplib.c.in: -- Make sure an exception is raised when converting to a character when -- a string longer than one character is passed. -- [28ea90cba3a9] <4.13-maint> -- --2012-07-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipdistutils.py: -- Applied a patch from Oliver Nagy to fix sipdistutils.py for Python -- v3. -- [5775580258b3] <4.13-maint> -- --2012-07-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the use of a Python3 specific format character. -- [801ae4c35450] <4.13-maint> -- --2012-07-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst, sphinx/directives.rst, -- sphinx/specification_files.rst: -- Implemented the %InstanceCode directive. -- [9b330b545c65] <4.13-maint> -- --2012-07-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Reformatted some comments. -- [fa8592b30bf5] <4.13-maint> -- -- * configure.py.in, sipgen/export.c, sipgen/extracts.c, -- sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c, -- sipgen/sip.h.in, sipgen/sipgen.sbf, sipgen/transform.c, -- siplib/apiversions.c, siplib/bool.cpp, siplib/descriptors.c, -- siplib/objmap.c, siplib/qtlib.c, siplib/sipint.h, -- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, -- sphinx/conf.py.in, sphinx/directives.rst: -- Updated the dates on various copyright notices. -- [257d223f5d45] <4.13-maint> -- --2012-06-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- Fixed a documentation typo. -- [e1a825c52e33] <4.13-maint> -- --2012-06-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.13.3 for changeset 589228145d51 -- [1cbf533ebe71] <4.13-maint> -- -- * NEWS: -- Released as v4.13.3. -- [589228145d51] [4.13.3] <4.13-maint> -- --2012-06-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/siplib.c.in: -- Another fix for the handling of keyword arguments when used with -- unbound methods. -- [377e9e4763f5] <4.13-maint> -- --2012-06-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the handling of keyword arguments when used with unbound -- methods. -- [cdd78f0c72b2] <4.13-maint> -- --2012-06-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Apply a cast to the argument to -- sipConvertFrom[Const]VoidPtr[AndSize]() when it was defined with a -- typedef. This makes it easier to use typedef as a way of hiding the -- complexities of a type that SIP doesn't handle. -- [c814c38523ff] <4.13-maint> -- --2012-05-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- siplib/siplib.c.in, sphinx/annotations.rst, sphinx/directives.rst: -- The /NoRaisesPyExceptions/ and /RaisesPyExceptions/ function -- annotations can no be used with constructors. Updated the NEWS file. -- [482aa7e3f1ab] <4.13-maint> -- --2012-04-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * specs/macx-xcode: -- Removed the macx-xcode file at it isn't supported by the build -- system. -- [31ad477ff5ae] <4.13-maint> -- --2012-04-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Removed the free() of a code block filename now that filenames are -- retained for error messages. -- [16ef20290565] <4.13-maint> -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- Error messages related to callables should now include the filename -- and line number of the callable in the .sip source file. -- [fa6c71904d78] <4.13-maint> -- --2012-04-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the support for keeping an extra reference to a containing -- class when refering to a member variable. -- [fbb9cdbad791] <4.13-maint> -- --2012-04-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Eliminate a race condition in sip_api_is_py_method(). -- [871a7b44c8f0] <4.13-maint> -- --2012-04-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, siplib/siplib.c.in: -- Improved the text of the exception raised when a wrapped C/C++ -- object doesn't exist. -- [dd2d72cac87f] <4.13-maint> -- --2012-04-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Taught the build system about Qt5's QtGui module. -- [8d2739f3225f] <4.13-maint> -- --2012-04-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Allow a string as well as an identifier for arguments to various -- name= settings so that name="name" can be used. -- [d5e6a1fa39f2] <4.13-maint> -- --2012-03-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Updated the Unicode support for Python v3.3. -- [0870e512d8dd] <4.13-maint> -- --2012-03-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h.in.in: -- Ensure a reference is kept to the containing object when getting an -- instance variable that is a non-const wrapped object. This should -- (safely) avoid a certain kind of application bug. -- [0dd3cb4eff0e] <4.13-maint> -- -- * siplib/qtlib.c: -- Effectively backed out change 769 because it causes inconsistent -- behaviour when a method is connected to its object's destroyed() -- method. -- [ca0fb2b4bd89] <4.13-maint> -- --2012-02-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- If a Python reimplementation is a descriptor then use the descriptor -- protocol to bind it (specifically added for Nuitka). -- [88844f85f705] <4.13-maint> -- --2012-02-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.13.2 for changeset 4efeefee717e -- [389a142d1997] <4.13-maint> -- -- * NEWS: -- Updated the NEWS file. Released as v4.13.2. -- [4efeefee717e] [4.13.2] <4.13-maint> -- --2012-02-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Fixed bad pointer bugs in the parsing of exceptions. -- [1058b2c18309] <4.13-maint> -- --2012-01-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/objmap.c: -- Handle aliases properly when discovering that an object has been -- deleted. -- [f51e159f6dff] <4.13-maint> -- --2011-12-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.13.1 for changeset a782debccd42 -- [8a56d87be977] <4.13-maint> -- -- * NEWS: -- Released as v4.13.1. -- [a782debccd42] [4.13.1] <4.13-maint> -- --2011-12-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a bug in the generation of PyQt signal signatures that caused -- a "const" to be wrongly dropped. -- [39cf1d1d8167] <4.13-maint> -- --2011-12-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Properly handle %PickleCode returning NULL. -- [29ec1c523114] <4.13-maint> -- --2011-12-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, Roadmap.rst, sipgen/main.c: -- Deprecation warnings can no longer be suppressed. Updated the NEWS -- file. Updated the Roadmap. -- [358be4ede9fc] <4.13-maint> -- --2011-12-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/objmap.c: -- Completed the support for object aliases when garbage collecting an -- object. -- [7ab562ae0e39] <4.13-maint> -- -- * siplib/objmap.c, siplib/sip.h.in.in, siplib/sipint.h, -- siplib/siplib.c.in: -- When an object that uses multiple inheritance in its class hierachy -- is wrapped, all of its addresses when cast to the different super- -- classes are internally registered as aliases. This means that the -- original object will be found when given an address that is -- different as a result of a cast. (Note that the support for removing -- aliases when the object is garbage collected is not yet done.) -- [da88157d2f03] <4.13-maint> -- --2011-12-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Backed out 1013. It breaks when the method is overloaded in a super- -- class but only one overload is reimplemented in this class so the -- compiler doesn't see the other overload in the super-class so we -- must refer to it explicitly. -- [82af71f0adcb] <4.13-maint> -- -- * sipgen/gencode.c: -- Backed out 1014. -- [e50d347a15db] <4.13-maint> -- --2011-11-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Fixed the generation of handlers for virtuals defined in templates. -- [98421b9cc511] <4.13-maint> -- -- * siputils.py: -- The build system now handles recursively defined macros. -- [5d7476cbb504] <4.13-maint> -- --2011-11-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- sipSelf is now generated with the correct const qualifier. -- [3c46012c8562] <4.13-maint> -- -- * NEWS, sipgen/parser.y, sphinx/specification_files.rst: -- Protected and private super-classes can now be specified but are -- otherwise ignored. -- [f331e22716d9] <4.13-maint> -- -- * custom/mkcustom.py: -- Support for sys.platform being 'linux3'. -- [01a339a7f2e9] <4.13-maint> -- --2011-11-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/parser.y, sphinx/annotations.rst: -- Added the /PyName/ typedef annotation. -- [8c147224120a] <4.13-maint> -- --2011-11-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed the build system for building a debug version of PyQt on OS/X. -- [3b44dc2f0efd] <4.13-maint> -- -- * NEWS, sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c: -- Class templates now allow template arguments to be used as a super- -- class. -- [08e44ad74137] <4.13-maint> -- --2011-11-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/parser.y: -- Added support for 'public' preceding the name of a class in a super- -- class list. -- [7fbb8a754a81] <4.13-maint> -- -- * sipgen/parser.y, sphinx/annotations.rst, sphinx/directives.rst, -- sphinx/specification_files.rst, sphinx/using.rst: -- Updated the docs where the examples refered to deprecated syntax. -- [36208e0a6773] <4.13-maint> -- -- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst, sphinx/directives.rst: -- Added the all_raise_py_exception argument to the %Module directive. -- Added the /NoRaisesPyException/ function annotation. -- [bf725fdfd029] <4.13-maint> -- -- * sipgen/gencode.c: -- Fixed the previous change for classes contained in namespaces. -- [09411053ef1b] <4.13-maint> -- -- * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: -- Virtual catchers will now call the most recent C++ implementation -- (if there is no Python reimplementation) even if it is unknown to -- SIP rather than the most recent implementation that SIP knows about. -- [8893e36b8ca3] <4.13-maint> -- --2011-11-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Updated some code generator comments. -- [fad4bdca5bbd] <4.13-maint> -- --2011-11-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Make sure PyQt's internal static support libraries don't get added -- to rpath. -- [91848382e6fd] <4.13-maint> -- --2011-11-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Added support for void template arguments. -- [1c699c672ed7] <4.13-maint> -- --2011-10-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.13 for changeset 0869eb93c773 -- [3b2a3fb3fdda] -- -- * NEWS: -- Released as v4.13. -- [0869eb93c773] [4.13] -- -- * Merged the v4.12 maintenance branch into the trunk. -- [021e97baeeb0] -- -- * NEWS: -- Updated the NEWS file. -- [af334da384fd] <4.12-maint> -- --2011-10-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sphinx/specification_files.rst: -- '*' and '&' are now accepted as unary operators in expressions used -- to define the values of default arguments. -- [4eba42cb2457] <4.12-maint> -- -- * sipgen/parser.y, sipgen/sip.h.in: -- Further fix for overloads with a variant that is protected and a -- variant that has optional arguments defined in a module that -- supports keyword arguments imported by a module that doesn't. -- [79951a333f30] <4.12-maint> -- --2011-10-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sphinx/annotations.rst: -- The /Transfer/ annotation can now be used with the /Array/ -- annotation to prevent the freeing of the temporary array of -- pointers. -- [3a009ee97d60] <4.12-maint> -- --2011-10-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/siplib.c.in, sphinx/directives.rst: -- %ConvertToSubClassCode can now cause a restart of the conversion -- process using a different requested type. This enables the correct -- handling of PyQt's QLayoutItem. -- [fa212070a486] <4.12-maint> -- --2011-10-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- sipIsPyMethod() now allows for an object's type's tp_mro to be NULL. -- This can happen when the only instance of a dynamically created type -- is in the process of being garbage collected. -- [d66046441fa8] <4.12-maint> -- --2011-10-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Commit backout. -- [6e11ad753de6] <4.12-maint> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- Backed out changeset 0bcc2ce09ba0 This (and the following changeset) -- doesn't seem to make a difference. -- [2df67f4a3294] <4.12-maint> -- -- * siplib/siplib.c.in: -- Commit backout. -- [4a9b20624f88] <4.12-maint> -- -- * siplib/siplib.c.in: -- Backed out changeset de3fe63e5dec This (and the previous changeset) -- doesn't seem to make a difference. -- [78740eff2bf4] <4.12-maint> -- --2011-09-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Add an atexit function that will disable all Python -- reimplementations of virtuals. -- [de6a700f5faa] <4.12-maint> -- --2011-09-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/directives.rst: -- Added the %DefaultDocstringFormat directive. Added the format -- argument to the %Docstring directive. -- [dba052605539] <4.12-maint> -- --2011-09-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed the previous fix to sipIsPyMethod() so that it doesn't retain -- the GIL. -- [de3fe63e5dec] <4.12-maint> -- --2011-09-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: -- sipIsPyMethod() now acquires the GIL before checking if the Python -- object has been garbage collected. -- [0bcc2ce09ba0] <4.12-maint> -- -- * siplib/siplib.c.in: -- Fixed a typo in a comment. -- [c4ad84eeed37] <4.12-maint> -- -- * siplib/siplib.c.in: -- Added a missing Py_DECREF() on a (very rarely used) error handling -- path. -- [a99ab15f7b18] <4.12-maint> -- --2011-09-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug where a module with keyword arguments -- disabled derives from a class imported from a module with them -- enabled. -- [1c3d2412e35a] <4.12-maint> -- --2011-08-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- PyQt will now only delete a QObject if the QObject belongs to the -- current thread, otherwise it calls deleteLater(). -- [c2987628087f] <4.12-maint> -- --2011-08-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.12.4 for changeset 7dff386f6d8c -- [49580889fa23] <4.12-maint> -- -- * NEWS: -- Released as v4.12.4. -- [7dff386f6d8c] [4.12.4] <4.12-maint> -- --2011-07-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siputils.py: -- Added support for Qt configured with -qtlibinfix based on a patch -- from Ian Scott. -- [d87cea364549] <4.12-maint> -- -- * NEWS, sipgen/gencode.c, siplib/siplib.c.in: -- Switched to using PyLong_AsUnsignedLongMask() and -- PyLong_AsUnsignedLongLongMask() instead of the non-mask versions so -- that overflow is ignored. -- [533e6a9e3e3a] <4.12-maint> -- --2011-07-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Make sure the %TypeHeaderCode of a /Default/ %Exception is included. -- [bbe43a0bad78] <4.12-maint> -- --2011-06-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a regression introduced in the recent sipIsPyMethod() changes -- in the handling of special methods implemented by object (eg. -- __lt__). -- [f9f4b161c940] <4.12-maint> -- -- * siplib/siplib.c.in: -- Fixed some other warnings from more (undocumented) Python v3.2 -- changes. -- [df42f6bf92c8] <4.12-maint> -- -- * siplib/sip.h.in.in, siplib/voidptr.c: -- Fixed sipConvertFromSliceObject() for Python v3.2. -- [3d0336c32dfa] <4.12-maint> -- --2011-06-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- Fixed the build system for MacOS as the development platform. -- [fdd3cecee60d] <4.12-maint> -- --2011-05-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.12.3 for changeset 50282bee0c60 -- [54c00a0e9c01] <4.12-maint> -- -- * NEWS: -- Released as v4.12.3. -- [50282bee0c60] [4.12.3] <4.12-maint> -- --2011-05-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Generated signal signatures no longer remove the reference '&' for -- non-const arguments. -- [274e38133e7a] <4.12-maint> -- -- * siplib/siplib.c.in: -- Fixed the calling of hooks for Python3. -- [192dfa04b3ac] <4.12-maint> -- --2011-05-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in, sphinx/incompatibilities.rst: -- When searching for a Python reimplementation of a virtual C++ -- method, any object that is not a C++ method wrapper is assumed to be -- valid. Previously, if it wasn't a Python function or method then it -- would be ignored. This is a potential incompatibility, but any code -- that is affected is either buggy or badly written. -- [f95ee221598d] <4.12-maint> -- --2011-04-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.12.2 for changeset dd8f52a95d04 -- [b99179c54a07] <4.12-maint> -- -- * NEWS: -- Released as v4.12.2. -- [dd8f52a95d04] [4.12.2] <4.12-maint> -- --2011-04-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c: -- Added support for global inplace numeric operators. -- [af33bd829af3] <4.12-maint> -- -- * sipdistutils.py: -- Updated the license and copyright information for sipdistutils.py. -- [94f4971497a9] <4.12-maint> -- --2011-04-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Made sure thngs were initialised to 0 properly when parsing new- -- style directives for variables. -- [c3f5a8b89968] <4.12-maint> -- --2011-04-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/parser.y: -- Handwritten code in class templates no longer has types substituted -- in lines that appear to be C preprocessor directives. This prevents -- #include'd file names getting substituted. -- [e039b65daa03] <4.12-maint> -- --2011-04-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Fixed a regression in the handling of keyword arguments. -- [f68e042c94f5] <4.12-maint> -- --2011-03-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the news file. -- [ec9807971e08] <4.12-maint> -- --2011-03-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- The names of optional arguments to protected methods are generated -- no matter what module the method is defined in. -- [fe4c052830ff] <4.12-maint> -- -- * sipgen/gencode.c: -- Another fix for the bad protected enum fix. -- [d112d90bcbfd] <4.12-maint> -- -- * sipgen/parser.y: -- Fixed a bug where keyword argument names were being generated when -- being defined in a parent module. -- [3e11c4b7d541] <4.12-maint> -- --2011-03-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Mapped type template arguments now include "const" if appropriate. -- [22c5009485a8] <4.12-maint> -- -- * sipgen/gencode.c: -- Fixed a regression that caused enums in namespaces to be ignored. -- [f9b89f2c1c7d] <4.12-maint> -- --2011-03-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- The keyword support now explicitly checks that keywords are -- provided. Python handles this for ordinary methods but not for -- __init__. -- [05718fa95834] <4.12-maint> -- --2011-03-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Code is no longer generated for protected enums of /Abstract/ -- classes. -- [d349bb35cdcc] <4.12-maint> -- --2011-03-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- The /KeepReference/ function annotation now keeps a reference even -- if the result is already owned by Python. -- [ecb3e795382e] <4.12-maint> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c, -- sphinx/annotations.rst: -- /KeepReference/ can now be used as a function annotation. -- [dc7effca2a82] <4.12-maint> -- -- * configure.py.in: -- A fix for when building outside the source directory. -- [942f1b8ac66b] <4.12-maint> -- --2011-03-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, -- sipgen/transform.c: -- The %TypeHeaderCode from a class template is now included in the -- generated code. -- [b5992208a757] <4.12-maint> -- --2011-02-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sipgen/transform.c: -- typedefs in class templates are now handled correctly. -- [62e2faa4fb81] <4.12-maint> -- -- * sipgen/transform.c: -- When comparing mapped type templates the number of dereferences of -- the template arguments is now taken into account. -- [9cf3969984a5] <4.12-maint> -- --2011-02-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- %Docstring applied to a Qt signal is no longer ignored. -- [0fae9a0aae28] <4.12-maint> -- --2011-02-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed /KeepReference/ when used with ctors. -- [1a5475b48b7c] <4.12-maint> -- --2011-01-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.12.1 for changeset 6a8117e8b16a -- [2ead36288f97] <4.12-maint> -- -- * NEWS, build.py: -- Released as v4.12.1. -- [6a8117e8b16a] [4.12.1] <4.12-maint> -- --2011-01-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c.in: -- Tweaked an exception message to make it easier to mimic in -- handwritten code. -- [426308437843] <4.12-maint> -- -- * sipgen/transform.c: -- sip will now longer complain about callables with the same Python -- signature if either of them has %MethodCode as it assumes that the -- %MethodCode will resolve any potential conflicts. -- [9ed59e5c8070] <4.12-maint> -- --2011-01-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py, sphinx/conf.py.in, sphinx/static/default.css, -- sphinx/static/logo.png, sphinx/static/logo_tn.ico: -- Added a new Sphinx stylesheet. -- [c0c94278423e] <4.12-maint> -- --2011-01-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [fa100876a783] <4.12-maint> -- --2011-01-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * LICENSE, build.py, configure.py.in, sipgen/export.c, -- sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, -- sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf, -- sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp, -- siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, -- siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, -- siputils.py, sphinx/conf.py.in, sphinx/directives.rst: -- Updated the copyright notices. -- [42e1cfe37140] <4.12-maint> -- -- * sphinx/directives.rst: -- Fixed a documentation typo. -- [e54f022f78f6] <4.12-maint> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- sphinx/annotations.rst: -- Added the /RaisesPyException/ function annotation. -- [649736ef0ab2] <4.12-maint> -- --2011-01-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, siputils.py, sphinx/build_system.rst, -- sphinx/installation.rst: -- Added the --deployment-target option to configure.py which should be -- used to work around bugs in the latest versions of Python on -- MacOS/X. -- [18c8fe174f38] <4.12-maint> -- --2011-01-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug in the %MethodCode error handling for -- zero argument slots. -- [4ed8b04e7e7a] <4.12-maint> -- --2010-12-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/parser.y, sphinx/specification_files.rst: -- Added SIP_SSIZE_T as a pre-defined type so it can be used in .sip -- files. -- [1871ed7f3c9b] <4.12-maint> -- -- * sipgen/parser.y, sphinx/specification_files.rst: -- PyObject * is now a synonym for SIP_PYOBJECT in .sip files. -- [56e378d55db0] <4.12-maint> -- -- * siplib/siplib.c.in, sphinx/python_api.rst: -- Added sip.ispycreated(). -- [e1efc2847290] <4.12-maint> -- --2010-12-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/parser.y, siplib/siplib.c.in, -- sphinx/specification_files.rst: -- Added support for the __getattribute__ and __getattr__ methods. -- [1da2e2e9fa1c] <4.12-maint> -- --2010-12-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c.in, -- sphinx/specification_files.rst: -- Added support for __setattr__ and __delattr__ methods. -- [3f7a1f5bff74] <4.12-maint> -- -- * siplib/siplib.c.in: -- The lazy attributes of a type are added when the first instance of -- the type is created. This leaves the instance tp_getattro and -- tp_setattro slots available. -- [12a8fc4ee75a] <4.12-maint> -- --2010-12-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Fixed some errors in the NEWS file. -- [44a6a3833477] <4.12-maint> -- --2010-12-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.12 for changeset 4a79f5996bd7 -- [111436ade941] -- -- * NEWS: -- Released as v4.12. -- [4a79f5996bd7] [4.12] -- -- * sipgen/gencode.c: -- A further fix for Python v2.4 and earlier. -- [5e655e94fc64] -- -- * sipgen/gencode.c: -- Fixed the code generated for a composite module an Python v2.4 and -- earlier. -- [00b0fadcf6fc] -- -- * siplib/voidptr.c: -- Add a couple of casts for MSVC2008. -- [68916b34ac59] -- --2010-12-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/python_api.rst: -- Updated the documentation regarding the sip.simplewrapper type. -- [0f92caeb5770] -- -- * sipgen/parser.y, sipgen/transform.c: -- Fixed a bug looking up mapped types that are templates with enum -- arguments. -- [1212ca61ef1d] -- --2010-12-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Fixed the inclusion of header files for init extenders. -- [171d8f4e9f3a] -- --2010-12-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- sip.voidptr now uses PyLong_AsVoidPtr() for all versions of Python. -- [3d4ccc59c9c3] -- --2010-12-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Improved the configure.py error message when an invalid build macro -- is given. -- [631ded439583] -- -- * Roadmap.rst: -- Removed the section of the roadmap stating that SIP v5 will require -- types to be defined in advance of being used because (after thinking -- about it properly) in would be a complete pain for the user. -- [02eee09f591f] -- -- * sipgen/sip.h, sipgen/sip.h.in: -- Fixed an apparent hg problem with sipgen/sip.h[.in]. -- [1fd9ca0698a0] -- --2010-12-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/sip.h: -- Fixed the parsing of %Extract. -- [393564f2cfeb] -- -- * sipgen/gencode.c: -- Make sure backslashes in generated #line directives are escaped. -- [cc58da4653e7] -- -- * sipgen/parser.y, sipgen/sip.h: -- A deprecation warning is issues for any argument annotations in an -- explicit C/C++ signature. -- [8d0e2a1b1d1c] -- -- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: -- /AllowNone/ is a valid class annotation. -- [e94d52f996d7] -- --2010-12-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst: -- Deprecation warning are now generated for any invalid annotation. -- Updated the docs so that annotations are mentioned in all the -- contexts that they can applied to. -- [a3715d0c74a5] -- -- * NEWS, build.py, sipgen/main.c, sipgen/main.c.in, sipgen/parser.y, -- sipgen/sip.h, sphinx/directives.rst: -- Added the automatic pseudo-%Timeline of SIP version numbers. -- [50fc306bfb6d] -- -- * NEWS, sphinx/annotations.rst: -- Documented /PyInt/ as a typedef annotation. -- [0d8a873e3d30] -- --2010-12-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: -- Added sipGetAddress() to the public API. -- [b202f0d04ba6] -- --2010-11-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c.in, sphinx/command_line.rst: -- Don't try and issue warnings until the -w flag has been parsed. -- [64e98b58216b] -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c.in, -- sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst, -- sphinx/command_line.rst, sphinx/directives.rst: -- Added the 'keyword_arguments' argument to %Module. The /KeywordArgs/ -- annotation now takes a string value describing the level of keyword -- argument support. The previous behavior is deprecated. Deprecated -- the /NoKeywordArgs/ annotation. Deprecated the code generator's -k -- command line option. -- [2294802123f4] -- --2010-11-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- More generic parser fixes for directives that allow an argument -- without requiring parentheses. -- [1d6ba419952c] -- --2010-11-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sphinx/directives.rst: -- Semi-colons are now not allowed after directives with no sub- -- directives but are now required after the closing brace after sub- -- directives. -- [1a300e9d7f80] -- -- * sipgen/parser.y: -- Tidy up some coding inconsistencies in the parser. -- [c86ace2573fd] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- The (internal) %Plgin directive now uses the revised syntax. -- [86a793919cd1] -- -- * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst: -- %Timeline now respects %If/%End. -- [d227e7ea1eac] -- -- * sipgen/parser.y, sphinx/directives.rst: -- %Platforms now respects %If/%End. -- [3c1e4cb9dd4c] -- -- * sipgen/parser.y, sphinx/directives.rst: -- %Doc and %ExportedDoc now respect %If/%End. -- [e3f95120f8c9] -- -- * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst: -- %OptionalInclude is now deprecated. -- [fbfa68d0b559] -- -- * sipgen/parser.y, sphinx/directives.rst: -- The %MappedType sub-directives now respect %If/%End. -- [afb6cb9b21b9] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst, sphinx/conf.py.in, sphinx/directives.rst: -- %License now uses the revised syntax. -- [ebeed9b2838e] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- %Include now follows the new syntax and includes the functionality -- of %OptionalInclude. -- [b71dca41f194] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- %Import now uses the revised syntax. -- [df828f381c63] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- Changed the argument of %DefaultEncoding to 'name' to be consistent -- with other similar directives. -- [66c4f0e60cc5] -- --2010-11-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- %Feature now uses the revised syntax. -- [ca22b358ab05] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst, sphinx/specification_files.rst: -- %Exception now (sort of) follows the revised syntax. -- [b19d67575786] -- -- * sipgen/parser.y, sphinx/directives.rst: -- Reverted the change to make %Copying a sub-directive. -- [d59876780e53] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- %DefaultEncoding now uses the revised syntax. -- [111024e5bcbd] -- --2010-11-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst, sphinx/incompatibilities.rst, -- sphinx/specification_files.rst: -- Fixed some more generic parser issues. %Copying is now a sub- -- directive of each of the different module directives. All the module -- directives now support docstrings. -- [6244dcb1fcb9] -- -- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: -- %CompositeModule and %Consolidated module now conform to the revised -- syntax. -- [18da01aba948] -- -- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst, -- sphinx/using.rst: -- %API now uses the revised directive syntax. -- [b7ba07998b37] -- --2010-11-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Generated #line directives now include the full path name of the -- file. -- [52ed45309f83] -- -- * siplib/siplib.c.in: -- Reverted the broken "fixes" passing sub-int values as varargs. -- [167ff79ec560] -- --2010-11-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: -- The %Module and %Property sub-directives now respect %If/%End. -- %AccessCode, %GetCode and %SetCode are now new-style sub-directives. -- [7dfe49a56ec7] -- -- * Roadmap.rst: -- Added the v5 roadmap. -- [9ddab02f25a6] -- -- * sipgen/parser.y: -- /PyInt/ can now be applied to pointer types. -- [0a986be7f8e4] -- --2010-11-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/siplib.c.in, -- sphinx/annotations.rst, sphinx/c_api.rst: -- Added /PyInt/ as an argument and function annotation. Added the L -- and M format characters to sipBuildResult(), sipCallMethod() and -- sipParseResult(). Fixed a bug in sipParseResult() in the handling of -- encoded strings. -- [372703eb4e88] -- -- * sipgen/gencode.c: -- Fixed a bug maintaining the current line number when generating -- docstrings. -- [2327d077f65a] -- --2010-11-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y, sphinx/specification_files.rst: -- Added parser support for empty namespaces. Documented how namespaces -- are implemented and how to achieve the different behaviors. -- [9101c7412e89] -- -- * sphinx/annotations.rst, sphinx/command_line.rst, -- sphinx/directives.rst: -- Documented that -I, %Import and %Include all expect POSIX style -- directory separators. -- [7b0d6bc17f28] -- --2010-11-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c: -- Eliminate compiler warnings when building the sip module. -- [93040d2c716c] -- -- * siplib/siplib.c.in, siplib/voidptr.c: -- Fixed some Python v3 and MSVC build bugs. -- [43cb06769dd6] -- --2010-11-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- More updates to the NEWS file. -- [c38668e9dd93] -- -- * NEWS: -- Updated the NEWS file. -- [37a725e0b83a] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/siplib.c.in: -- Eliminated a couple of warning messages. -- [8d220ed77f02] -- -- * sipgen/parser.y: -- %Module and %Property sub-directives can now be individually -- enclosed in %If/%End. -- [637f2357b1e4] -- -- * sphinx/annotations.rst, sphinx/directives.rst: -- Documented the %AutoPyName directive. -- [e8106eb58553] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- Added the %AutoPyName directive. -- [85d02c95ebf7] -- --2010-11-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/main.c.in, sipgen/sip.h, -- sphinx/command_line.rst: -- Added the -T command line flag to suppress the timestamp in the -- header of generated source files. -- [d84b9db1d89d] -- -- * sipgen/gencode.c: -- Fixed a bug where keyword strings where being generated for /Out/ -- arguments. -- [2a314426e67a] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- Replaced the %RealArgNames directive with the use_argument_names -- argument to the %Module directive. -- [0eb004659e3d] -- -- * sipgen/parser.y, sphinx/directives.rst: -- The %Module directive now respects the %If directive. -- [9b99a6f7d295] -- -- * sphinx/directives.rst: -- Documented the revised %Module directive syntax. -- [0a7d4b89a2eb] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- %Module now supports the revised directive syntax. Module docstrings -- are now supported. %CModule is deprecated. -- [2606deb743f2] -- --2010-11-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a bug in the generated of the variables table. -- [eac351f5cca7] -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Fixed a bug in the tidying up of temporary class instances in unary -- operators. -- [990299a02451] -- -- * sphinx/directives.rst: -- Documented the %Property directive. -- [455500391b43] -- -- * sipgen/parser.y, sphinx/directives.rst: -- Documented the revised directive syntax. Updated %Extract so that it -- follows the revised syntax completely. %Extract no longer uses a -- quoted string as an identifer. -- [7970e4fa94ef] -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h.in.in, siplib/siplib.c.in: -- Completed the support for %Property. -- [dfd258dec260] -- -- * sipgen/gencode.c, sipgen/sip.h: -- The code generator now generates the property structure. -- [07134d471acd] -- -- * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in, -- siplib/siplib.c.in: -- Migrated the existing variable support to the new runtime structure. -- [c66412e816ab] -- --2010-11-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l: -- Fixed the parser so that C/C++ argument names don't get confused -- with directive argument names. -- [8bad8295e12f] -- --2010-11-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Renamed getter to get and setter to set to be consistent with -- %GetCode and %SetCode. -- [eef0c18dd0df] -- -- * sipgen/parser.y, sipgen/transform.c: -- The %Property getters and setters are now validated. -- [caf6e4cee176] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- Added parser support for %Property. -- [41f66dca2447] -- -- * sipgen/extracts.c, sipgen/lexer.l, sipgen/main.c.in, -- sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf, -- sphinx/command_line.rst, sphinx/directives.rst, -- sphinx/specification_files.rst: -- Added the %Extract directive and the corresponding -X command line -- option. -- [37a7149135a9] -- --2010-11-04 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h, -- sphinx/c_api.rst, sphinx/command_line.rst, sphinx/directives.rst, -- sphinx/introduction.rst.in, sphinx/python_api.rst: -- Issue warning messages from the parser about deprecated syntax. -- Updated the documentation regarding deprecations. -- [3a45afc8d9eb] -- -- * siplib/voidptr.c: -- Fixed a bug in the new sip.voidptr code for Python v2.5 and earlier. -- [7ff903c5cb76] -- -- * sphinx/python_api.rst: -- Updated the sip.voidptr documentation to describe the memoryview- -- like support. -- [b49b90639831] -- -- * sipdistutils.py: -- sipdistutils.py now allows the output directory to be overriden in a -- derived class. -- [5a1f9d9fff30] -- --2010-11-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/voidptr.c: -- Fixed a silly typo in the sip.voidptr changes. -- [af2d7120dd7f] -- -- * siplib/voidptr.c: -- sip.voidptr now supports sub-script assignment for Python v2.4 and -- earlier. -- [14186a17d310] -- -- * siplib/voidptr.c: -- sip.voidptr now supports sub-script assignment for Python v2.5. -- [67ef521ce467] -- -- * siplib/voidptr.c: -- sip.voidptr now supports sub-script assignment (Python v2.6 and -- later only at the moment). -- [4ad087fd7e94] -- -- * siplib/voidptr.c: -- sip.voidptr can now be indexed like memoryview. -- [76620ebb872e] -- -- * siplib/voidptr.c: -- sip.voidptr now fully implements the new buffer protocol for Python -- v2 so that memoryview works. -- [f9dfbda5844f] -- -- * NEWS, build.py, configure.py.in, sipgen/gencode.c, siplib/sip.h.in, -- siplib/sip.h.in.in, siplib/siplib.c, siplib/siplib.c.in, -- siplib/siplib.sbf, siplib/siplib.sbf.in, sphinx/installation.rst, -- sphinx/using.rst: -- Added the --sip-module flag to configure.py to allow private copies -- of the module to be built. -- [8b8e93a159c6] -- --2010-10-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst, sphinx/specification_files.rst: -- Added the %RealArgNames directive. -- [12acbffd0085] -- --2010-10-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l: -- All directives now start with the first non-whitespace character of -- a line. -- [c5a525178196] -- -- * .hgtags: -- Merged the v4.11 branch into the trunk. -- [a7689cef100b] -- --2010-10-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Released as v4.11.2. -- [13f57fe7e992] [4.11.2] <4.11-maint> -- -- * sipgen/gencode.c: -- Fixed the implementation of %MethodCode for dtors in C modules. -- [4f26704c5789] <4.11-maint> -- --2010-10-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- Make sure that lazy attributes have been added when searching for a -- Python reimplemention of a C++ method. -- [f45ff97a3c66] <4.11-maint> -- -- * siplib/sip.h.in: -- Properly set SIP_SUPPORT_PYCOBJECT in sip.h. -- [f1cf3fef8eb5] <4.11-maint> -- --2010-10-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h.in, -- siplib/siplib.c: -- __enter__ and __exit__ are now handled as non-lazy methods and are -- added to the type dictionary when the type is created (rather than -- when the first attribute of the first instance is accessed). This -- required by a change in behaviour introduced in Python v2.7 and -- v3.2. -- [5167b98767e2] <4.11-maint> -- --2010-10-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [ed3deec59b70] <4.11-maint> -- --2010-10-09 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- /KeepReference/ now applies to global functions. -- [52e6a73fd81f] <4.11-maint> -- -- * siplib/siplib.c: -- Fixed a regression in the handling of global class pointers (eg. -- qApp in PyQt3). -- [08328092b36b] <4.11-maint> -- --2010-10-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/siplib.c: -- /KeepReference/ can now be applied to static methods. -- [43c2359df596] <4.11-maint> -- --2010-10-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/directives.rst: -- %TypeCode can now be specified in a %MappedType directive. -- [8727e0eb0f5e] <4.11-maint> -- -- * sipgen/transform.c: -- Mapped types for templates no longer require the template arguments -- to be defined. -- [7ed0e265a218] <4.11-maint> -- --2010-10-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Added support for the MSBUILD Makefile generator introduced in Qt -- v4.7 for the win32-msvc2010 target. -- [ff2494c0e443] <4.11-maint> -- --2010-09-30 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- A protected class enum will now trigger the generation of a shadow -- class. -- [18681651c2c7] <4.11-maint> -- --2010-09-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/c_api.rst: -- A minor documentation fix. -- [f6df40935e99] <4.11-maint> -- --2010-09-24 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in: -- Fixed the rpaths problem properly (ie. didn't apply the fix to a -- generated file). -- [c93f5da3d4e4] <4.11-maint> -- -- * NEWS, siputils.py: -- Taught the build system about QtDeclarative. Updated the NEWS file. -- [2487fb909ee1] <4.11-maint> -- --2010-09-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- Fixed rpaths for Qt v4.7. -- [4d12df6526e5] <4.11-maint> -- --2010-09-14 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in: -- Ensured that uint is always defined. -- [b6508f053614] <4.11-maint> -- --2010-09-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.11.1 for changeset fdf86b3115cd -- [3213dc5731bb] <4.11-maint> -- -- * NEWS: -- Released as v4.11.1. -- [fdf86b3115cd] [4.11.1] <4.11-maint> -- --2010-09-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/objmap.c: -- When deciding if an entry in the object map is valid the C/C++ -- address is first checked to see if it is still valid. This detects -- the case (if there is a guard in place) where a new C/C++ object has -- been created at the same address of one that has been destroyed (but -- whose Python wrapper is still around). -- -- HG commit message. Lines beginning with 'HG:' are removed. -- [13632c7f0f2c] <4.11-maint> -- --2010-08-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.11 for changeset 80f7c6530416 -- [86286537601c] -- -- * NEWS: -- Released as v4.11. -- [80f7c6530416] [4.11] -- --2010-08-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in, siplib/siplib.c, -- sphinx/c_api.rst: -- Objects with handwritten access functions are no longer placed in -- the object map as they don't have a usable key. Reworked the support -- for meta-type aupplied access functions so that the original address -- is still available (even if it is no longer valid) to be used to -- search the object map. -- [c38d259c1879] -- --2010-08-21 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [7cff86d70dc7] -- --2010-08-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- The parsing of encoded strings is now done with two passes so that -- encoding errors are now picked up in the second pass and raise an -- appropriate exception. -- [89ff42be167c] -- --2010-08-19 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst: -- The /KeepReference/ annotation now takes an optional integer key -- value. -- [efff0d2932e1] -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c: -- operator() and __call__() now support keyword arguments. -- [0daacc25c6ce] -- --2010-08-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/sip.h.in, siplib/siplib.c, sphinx/c_api.rst: -- Completed the access function implementation so that any resources -- created by access functions are released appropriately. -- [35cf486718d4] -- --2010-08-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c, -- sphinx/c_api.rst: -- Removed sipRegisterObjectFinaliser() and assume that the equivalent -- functionality will be provided by a custom meta-class. -- [d028d0cecb7b] -- -- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c: -- Added sipRegisterObjectFinaliser() and related infrastructure. -- (Though it will probably be replaced by a meta-type based -- implementation.) -- [d525d84c9d61] -- -- * sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h.in, -- siplib/sipint.h, siplib/siplib.c: -- All access to the C/C++ object now goes through -- sip_api_get_address(). Bumped the internal API version to 8.0 -- (because the size of sipSimpleWrapper has changed). -- [956c80d8e9fa] -- --2010-08-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- Make sure #line 0 is not generated as the Intel compiler doesn't -- like it. -- [d715222f1f65] -- -- * siplib/voidptr.c, sphinx/c_api.rst, sphinx/embedding.rst, -- sphinx/python_api.rst: -- Added support for Python v3.2. Exposed the SIP_USE_PYCAPSULE macro -- as part of the C API. -- [0e34dc4e0824] -- --2010-08-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug affecting inplace operators. -- [6cddd9276220] -- --2010-08-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- Refactored the calls to assert() when creating types to catch any -- recursive calls. -- [052b642f04a8] -- --2010-08-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Make sure the %UnitPostIncludeCode is after all #includes. -- [d45e8042c7da] -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, sphinx/directives.rst: -- Added the %UnitPostIncludeCode directive. -- [058d680384e7] -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- sphinx/directives.rst: -- Removed the %RemoveNamespace directive. -- [18fc68280d49] -- -- * sipgen/gencode.c: -- Removed 'const' and '&' from signal signatures so that Qt doesn't -- have to. -- [9e9795fa36a5] -- -- * sipgen/transform.c: -- Fixed a problem with the recent change regarding the original types -- of template based mapped types. -- [83019d3299ea] -- -- * sipgen/gencode.c, sipgen/parser.y: -- Generated code now uses 'uint' rather than 'unsigned'. This is -- because Qt's QMetaObject::normalizedType() converts the latter to -- the former. -- [0923d067541a] -- -- * sipgen/gencode.c: -- The generated typedefs table now always defines a type in terms of a -- base type and never another typedef type. -- [5ed328590fd1] -- -- * sipgen/transform.c: -- Template based mapped types now correctly keep a reference to the -- original types used when invoking the template. -- [691852c6b0b0] -- --2010-07-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/transform.c: -- Const references are now assumed to be input arguments rather than -- output arguments. -- [d11b7adf095a] -- --2010-07-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/parser.y: -- An improvement on the previous fix. -- [086a77b99464] -- -- * sipgen/parser.y: -- Fixed global operators that are declared in a namespace. -- [c46ac8f9b1e9] -- --2010-07-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- Switched to the new format of snapshot names. -- [4d30378c5622] -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- sphinx/directives.rst: -- Implemented the %RemoveNamespace directive. -- [a2eb3fe46f43] -- -- * lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt, -- lib/LICENSE.short, lib/README, lib/configure.py, -- lib/sipdistutils.py, lib/siputils.py, sipgen/main.c, siplib/sip.h, -- sphinx/Makefile, sphinx/conf.py, sphinx/introduction.rst: -- Merged v4.10.5 into the trunk. -- [4cce948441da] -- --2010-07-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, siplib/sip.h.in, siplib/voidptr.c, sphinx/python_api.rst: -- Released as v4.10.5. Fixed the build regression against Python v3 -- introduced in SIP v4.10.4. Properly fixed the Python v2.7 workaround -- that SIP v4.10.4 was supposed to address. -- [834787fbcb72] [4.10.5] <4.10-maint> -- --2010-07-15 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.10.4 for changeset 046c346a71fe -- [d0340fc3658c] <4.10-maint> -- -- * NEWS: -- Released as v4.10.4. -- [046c346a71fe] [4.10.4] <4.10-maint> -- --2010-07-13 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, siplib/siplib.c, siplib/voidptr.c: -- Use PyCapsule when available to work around an apparent bug in -- PyCObject in Python v2.7. -- [f5574a061fd0] <4.10-maint> -- --2010-07-12 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.10.3 for changeset 2ec1a8f8560c -- [254b8071446e] <4.10-maint> -- -- * NEWS, README: -- Released as v4.10.3. -- [2ec1a8f8560c] [4.10.3] <4.10-maint> -- --2010-07-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, sphinx/annotations.rst: -- Added support for the __len__ annotation. -- [f760366cea3b] <4.10-maint> -- -- * sipgen/transform.c: -- Assignment helpers are now generated for classes that have a ctor -- where all arguments are optional. -- [3e647ed0f2a2] <4.10-maint> -- --2010-06-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the code generator for /NewThread/ methods so that it no -- longer assumes that such methods are abstract (though it still -- assumes they don't return a value) as QThread.run() no longer is. -- [710b71e6f0c6] <4.10-maint> -- -- * siputils.py: -- Fixed a regression introduced when fixing the += problem with spec. -- files. -- [94d177d8f426] <4.10-maint> -- --2010-06-11 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: -- Changed the generated docstrings for signals to use [] rather than -- () to surround the arguments. -- [1851f2d754e7] <4.10-maint> -- --2010-06-10 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a code generation bug where special methods that invoke -- sipNoMethod() were trying to tidy up sipParseErr rather than leaving -- it to sipNoMethod(). -- [90aad46480b2] <4.10-maint> -- --2010-06-08 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed the previous fix to avoid compiler warning messages. -- [0a3f45fea555] <4.10-maint> -- -- * sipgen/gencode.c: -- Fixed a code generation bug caused by ctor handwritten code that -- sets the error flag and isn't handling unused keyword arguments. -- [d53889ad7abe] <4.10-maint> -- --2010-06-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sphinx/specification_files.rst: -- Added support for Q_SLOT and Q_SIGNAL. -- [cb323da88516] <4.10-maint> -- --2010-06-05 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/lexer.l: -- Added support for Q_SIGNALS and Q_SLOTS as synonyms for signals and -- slots. -- [daf61465ef3c] <4.10-maint> -- -- * siputils.py: -- Fixed a build system regression introduced when not linking against -- X11 when building QtCore. -- [ee5415b91040] <4.10-maint> -- --2010-06-03 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- The build system now handles += in spec files properly. -- [f292793d6c99] <4.10-maint> -- --2010-05-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * configure.py.in, siputils.py: -- A build system fix for building a static version of QWebKit. -- [de0df36d3162] <4.10-maint> -- -- * sipgen/transform.c: -- Fixed a bug in the error message when reporting an unsupported -- signal argument type. -- [7adbf28d075e] <4.10-maint> -- --2010-05-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fix a code generation bug where a protected ctor had a protected -- enum argument. -- [529660fb77a9] <4.10-maint> -- --2010-04-23 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c.in, siplib/qtlib.c: -- Invoking a slot is ignored if the underlying C++ object no longer -- exists. -- [7387fa17a780] <4.10-maint> -- --2010-04-16 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.10.2 for changeset 44ac47d02467 -- [2a980c3f0e3a] <4.10-maint> -- -- * NEWS: -- Released as v4.10.2. -- [44ac47d02467] [4.10.2] <4.10-maint> -- --2010-04-06 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/using.rst: -- Updated the PyQt example for PyQt4. -- [275fa5a54910] <4.10-maint> -- --2010-04-01 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- Fixed a regression in the new-style error handling of C++ ctors that -- raise exceptions. -- [ea295d6e9e9c] <4.10-maint> -- --2010-03-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * siputils.py: -- The X11 libraries will only be linked for modules that depend on the -- QtGui module. -- [9fe1eb5bf1ac] <4.10-maint> -- --2010-03-22 Phil Thompson <phil@riverbankcomputing.com> -- -- * siplib/siplib.c: -- Fixed a bug in the pickle support under Python v3. -- [9c51fda2b963] <4.10-maint> -- --2010-03-17 Phil Thompson <phil@riverbankcomputing.com> -- -- * .hgtags: -- Added tag 4.10.1 for changeset 812aad0bacea -- [6f759792341f] <4.10-maint> -- -- * NEWS, build.py: -- Fixed the generation of the change log after tagging a release. -- Updated the NEWS file. Released as v4.10.1. -- [812aad0bacea] [4.10.1] <4.10-maint> -- -- * siplib/siplib.c: -- Removed an unused variable left over from the previous commit. -- [0068b2608046] <4.10-maint> -- -- * siplib/siplib.c: -- Fixed the implementation of sip.cast(). -- [93bc3ab3fef5] <4.10-maint> -- --2010-03-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * NEWS: -- Updated the NEWS file. -- [752ab6580111] <4.10-maint> -- --2010-02-26 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c: -- Fixed a memory leak with the new error handling and most Python -- special methods. -- [637497440cb5] <4.10-maint> -- -- * sipgen/transform.c: -- Global operators, when moved to the correct class, are now appended -- to the list of any existing overloads to make sure the generated -- code is in the same order as the overloads in the .sip file. -- [5c0eb00cd19b] <4.10-maint> -- --2010-02-25 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c: -- Arguments in docstrings only have names if they are optional. -- [0f83f6c82600] <4.10-maint> -- --2010-02-20 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c, -- sphinx/c_api.rst, sphinx/incompatibilities.rst: -- Fixed a bug in the handling of /Out/ arguments of virtuals where the -- type was a reference to a class by adding the 'H' format character -- to sipParseResult() (and deprecating the 'D' format character). -- [c723c4de2e22] <4.10-maint> -- --2010-02-18 Phil Thompson <phil@riverbankcomputing.com> -- -- * sphinx/annotations.rst: -- Fixed a bug in the documentation of the NoCopy annotation. -- [cb2c1ea78ed5] <4.10-maint> -- --2010-02-07 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst: -- Python reimplementations of C++ virtuals will now be given a copy of -- any const references to classes so that they can keep a reference -- without needing to do their own explicit copy. The previous -- behaviour can be obtained using the new NoCopy annotation. The -- NoCopy annotation can also be applied to functions and methods to -- prevent the automatic copying of const references to classes that -- are returned. -- [724e4236428b] <4.10-maint> -- --2010-02-02 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/export.c: -- Fixed the XML exporting of mapped type arguments. -- [b514b2f196b8] <4.10-maint> -- -- * siplib/sipint.h, siplib/siplib.c, siplib/siplib.sbf, -- siplib/voidptr.c: -- Moved the voidptr code to a separate file. Eliminated a few -- compilation warnings that have crept into the sip module. Refactored -- the sip module to eliminate the (wrong) forward declaration of the -- static type structures. -- [f07ec31fbdf9] <4.10-maint> -- -- * build.py: -- Fixed a bug in the release action of build.py. -- [bcdd91cbf139] <4.10-maint> -- --2010-01-31 Phil Thompson <phil@riverbankcomputing.com> -- -- * sipgen/main.c.in: -- Added the -b command line argument to the sip usage text. -- [7ae3aa20dfc0] <4.10-maint> -- --2010-01-29 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- Refactored build.py so that it can be easily used as an imported -- module. -- [9170df0b1ea3] <4.10-maint> -- --2010-01-28 Phil Thompson <phil@riverbankcomputing.com> -- -- * build.py: -- Fixed a regression in the release action of build.py. -- [e3611c1babe7] <4.10-maint> -- -- * build.py: -- Changed the format of the changelog to be closer to the Mercurial -- default. -- [f1d6ba993e7f] <4.10-maint> -- -- * build.py: -- Added the changelog action to build.py. -- [8189b0595d44] <4.10-maint> -- -- * build.py: -- build.py now generates a version number corresponding to the next -- release (as the old build system did). -- [d09c61626663] <4.10-maint> -- -- * build.py: -- build.py now doesn't care about the current working directory. Fixed -- the handling of branch names. -- [3402912a0176] <4.10-maint> -- --2010-01-27 Phil Thompson <phil@riverbankcomputing.com> -- -- * README: -- Updated the README to document the need for flex, bison and Sphinx. -- [d785bd5471f8] <4.10-maint> -- -- * sphinx/introduction.rst.in: -- Updated the documentation to include the URL of the Mercurial -- repository. -- [0a7fc3830b27] <4.10-maint> -- -- * LICENSE, LICENSE-GPL2, LICENSE-GPL3, README, build.py, -- configure.py.in, lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE- -- GPL3.txt, lib/LICENSE.short, lib/README, lib/configure.py, -- lib/sipdistutils.py, lib/siputils.py, sipdistutils.py, -- sipgen/export.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, -- sipgen/main.c, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h, -- sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, -- siplib/bool.cpp, siplib/descriptors.c, siplib/objmap.c, -- siplib/qtlib.c, siplib/sip.h, siplib/sip.h.in, siplib/sipint.h, -- siplib/siplib.c, siplib/siplib.sbf, siplib/threads.c, siputils.py, -- sphinx/Makefile, sphinx/conf.py, sphinx/conf.py.in, -- sphinx/introduction.rst, sphinx/introduction.rst.in: -- Refactored the build.py script so that it is a documented utility -- for allowing SIP to be built from a Mercurial repository or archive. -- Updated the directory structure accordingly. -- [3edc3f9c777f] <4.10-maint> -- --2010-01-27 phil <phil> -- -- * .hgtags: -- Import from SVN. -- [d6529eb1c096] -- --2010-01-14 phil <phil> -- -- * NEWS, lib/LICENSE.short: -- Released as v4.10. -- [d7aa01036415] [4.10] -- --2010-01-08 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, sipgen/transform.c, -- siplib/siplib.c: -- Taught the build system about QtMultimedia. Removed some potential -- warning messages in virtual catchers with handwritten code. Fixed -- docstrings that might contain C++ rather than Python scoping. -- [d1214a2c892d] -- --2010-01-02 phil <phil> -- -- * siplib/siplib.c: -- Fixed a crash in the error handling when trying to call sip.wrapper -- or sip.wrappertype explicitly. -- [4f7c7b09a3e4] -- --2009-12-29 phil <phil> -- -- * siplib/apiversions.c: -- Fixed a memory corruption bug in the implementation of sip.setapi(). -- [11cc05a59770] -- --2009-12-28 phil <phil> -- -- * siplib/siplib.c: -- A fix for building against Stackless. -- [a3ce099e5002] -- --2009-12-27 phil <phil> -- -- * siplib/siplib.c: -- Fixed a regression in the parsing of constrained enums. -- [eacac49b64df] -- -- * siplib/siplib.c: -- Fixed a bug in the lookup of virtual reimplementations that may only -- be apparent when looking up Python special methods. -- [97c538d2e634] -- --2009-12-26 phil <phil> -- -- * siplib/siplib.c: -- Backed out the check for sub-classing from more than one wrapped -- type as it isn't sophisticated enough to handle mixins that share a -- meta-class. -- [34cf41855599] -- --2009-12-23 phil <phil> -- -- * siplib/siplib.c: -- Added a hack for va_copy() being missing in MSVC. -- [e3bd9f6c1a3a] -- --2009-12-22 phil <phil> -- -- * lib/siputils.py: -- Another attempt to fix creating script wrappers on MacOS to -- invokethe right version of Python. -- [39d66e33acfd] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: -- Fixed a docstring bug handling default values that are literal -- strings. -- [a1fea3306f54] -- --2009-12-21 phil <phil> -- -- * siplib/siplib.c: -- Fixed a fundamental problem with the parsing of signatures that -- allow keyword arguments where the current position in the format -- string and the var_args was being lost. -- [afa78322cb2d] -- --2009-12-19 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Changed the signature of sipAddException(). Fixed a reference count -- bug in the handling of chained parse errors. -- [1e48cd06b448] -- --2009-12-17 phil <phil> -- -- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, -- sphinx/c_api.rst: -- Added sipBadCallableArg() to the C API. -- [4046e5d6ca66] -- --2009-12-15 phil <phil> -- -- * sipgen/parser.y: -- Fixed a NULL dereference when instantiating an unscoped class -- template. -- [908f41773044] -- --2009-12-14 phil <phil> -- -- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, -- sphinx/directives.rst: -- Added support for sipError to %MethodCode to allow code to -- distinguish between user errors and system errors. -- [8cb9ae04484a] -- --2009-12-12 phil <phil> -- -- * siplib/siplib.c: -- Raise an exception if the automatically generated cast function -- fails (though this, theoretcally, shouldn't happed). Explicitly test -- for attempting to inherit from more than one wrapped type. -- [ae6cee8faa67] -- --2009-12-11 phil <phil> -- -- * sipgen/gencode.c: -- Fixed the generation of a bad call to sipMalloc() when generating -- for a C library. -- [a174c9456eab] -- --2009-12-04 phil <phil> -- -- * sipgen/parser.y: -- Finally fixed %DefaultEncoding when set in an imported module. -- [d1eec2d99a95] -- --2009-12-03 phil <phil> -- -- * siplib/siplib.c: -- Fixed a problem where Python wasn't creating descriptors for any -- enum slots which meant that explicitly calling special methods -- failed to invoke those slots. -- [ca934a1f4132] -- --2009-12-02 phil <phil> -- -- * NEWS, sipgen/gencode.c, siplib/siplib.c, sphinx/python_api.rst: -- Use capsules for Python v3.1 and later. Added the -- sip.voidptr.ascapsule() method. -- [154f2c63c18d] -- --2009-11-23 phil <phil> -- -- * NEWS, sipgen/transform.c: -- Fixed a bug where assignment helpers may not be generated for -- classes that have an alternate mapped type implementation. -- [6734e82522ee] -- --2009-11-17 phil <phil> -- -- * siplib/siplib.c: -- Fixed a problem that meant that circular references in slots -- connected to objects owned by C++ weren't being detected. -- [b38add3f63d9] -- --2009-11-15 phil <phil> -- -- * sipgen/parser.y: -- Fixed a bug where %DefaultEncoding could be ignored if %Imports were -- being done in an inconvenient order. -- [ae075b6d08ea] -- -- * sphinx/command_line.rst, sphinx/distutils.rst: -- Added the documentation for the updated sipdistutils.py. -- [c5547730f27b] -- -- * lib/sipdistutils.py: -- An updated sipdistutils.py from Giovanni Bajo. -- [62a698e9f9bd] -- --2009-11-14 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: -- Signal docstrings no longer include default values as they are -- implemented as separate overloads. -- [339a2114ec6d] -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/sip.h, siplib/sip.h: -- Docstrings are now generated for use by PyQt4 signals. -- [18bb2e74f269] -- --2009-11-11 phil <phil> -- -- * sipgen/gencode.c: -- The docstrings are now wrapped with PyDoc_STRVAR(). -- [ef3374625928] -- -- * sipgen/transform.c: -- The /DocType/ annotation is now properly supported for typedefs. -- [b3bbd7202a88] -- -- * sipgen/gencode.c: -- No docstrings are generated for any part of a class that isn't the -- default implementation. -- [9db19f2694a2] -- -- * sipgen/heap.c, sipgen/parser.y, sipgen/transform.c: -- Added support for /DocType/ to mapped type templates. -- [74a135153c66] -- --2009-11-10 phil <phil> -- -- * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, siplib/siplib.c, sphinx/directives.rst, -- sphinx/introduction.rst, sphinx/specification_files.rst: -- Added the %Docstring directive to specify explicit docstrings. -- [61b4453a9ff4] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/transform.c, -- siplib/siplib.c: -- More docstring fixes. Docstrings are not now generated for non- -- default implementations. -- [64779347846b] -- --2009-11-09 phil <phil> -- -- * NEWS, sipgen/gencode.c: -- A fix for the formatting of function calls in default values for XML -- and docstrings. -- [cfd41d5169d1] -- -- * sipgen/export.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst: -- Added the /DocValue/ argument annotation. -- [63dbaa87cf17] -- -- * NEWS, sipgen/parser.y: -- String annotations can now have feature selectors embedded in them. -- [d8fccc02cc21] -- --2009-11-08 phil <phil> -- -- * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y: -- More docstring fixes. -- [98dc281a1a11] -- -- * sphinx/annotations.rst: -- Updated the docs as /DocType/ is also a function and variable -- annotation. -- [cad85d54df79] -- -- * sipgen/export.c: -- Docstrings now consider all C++ integer types to be "int". -- Docstrings now consider all C++ character types to be "str". -- [72ae0dd8d9dc] -- --2009-11-07 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, -- sipgen/sip.h, siplib/sip.h, sphinx/annotations.rst: -- Added the /DocType/ argument and mapped type annotation. More fixes -- for the docstring support. -- [99ebe42a8e10] -- -- * sipgen/export.c, sipgen/parser.y, sipgen/transform.c: -- Fixed a bug where a default copy ctor might be added when there -- aleady was one when the class had a alternative mapped type -- implementation. -- [0db8f014b7e7] -- --2009-11-06 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c: -- Completed the basic support for automated docstrings (some tweaking -- still needed). -- [3d914379ef28] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added stub docstring support for methods and classes. -- [b52d1ef306ae] -- --2009-11-05 phil <phil> -- -- * sipgen/gencode.c, sipgen/main.c, sipgen/sip.h, siplib/apiversions.c, -- siplib/sip.h, siplib/siplib.c, sphinx/command_line.rst, -- sphinx/introduction.rst: -- Added stubbed support for function docstrings. -- [91a545605044] -- --2009-11-04 phil <phil> -- -- * siplib/siplib.c: -- Fixed building on Python v2. -- [af23791238c1] -- -- * sipgen/gencode.c: -- Fixed a memory leak of class instances annotated with /Out/ when -- catching C++ exceptions. -- [7fe47a8dd71d] -- -- * siplib/siplib.c: -- Completed the basic extended (ie. without docstrings) error messages -- on overload parse failures. -- [fe018c83a8df] -- -- * siplib/siplib.c: -- More support for the extended errors when parsing signatures. -- [e837961dad1d] -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c: -- Fixed a problem where an overload that didn't take keyword arguments -- wasn't raising an error if one was supplied and there where other -- overloads that did. -- [f405b7102d19] -- --2009-11-03 phil <phil> -- -- * siplib/siplib.c: -- Added the error detail for unbound methods. Ctor errors now don't -- include the module name (to match other errors). -- [b176dda5f1e9] -- -- * siplib/sip.h, siplib/siplib.c: -- Refactored the new error reporting so that it is much more -- lightweight in the common case of failure to parse an overload. -- [e801eb8ce7e6] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- The SIP API major version number has changed. Implemented the basics -- of the revised error messages (still missing the message detail -- though). -- [aa4e0e8fd705] -- --2009-11-02 phil <phil> -- -- * sphinx/directives.rst: -- Fixed a broken Sphinx directive. -- [fc0975814576] -- --2009-10-30 phil <phil> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst, sphinx/directives.rst: -- Added the /Default/ exception annotation to specify an exception -- that will be caught if there is no throw clause. A 'catch (...)' -- block will now always be generated. -- [d65ec4986067] -- -- * siplib/siplib.c: -- Fixed a regression in the monkey patching of instances. -- [94348861afba] -- -- * sphinx/directives.rst: -- ...and another. -- [f90c80feb177] -- -- * sphinx/directives.rst: -- ...and another documentation typo. -- [c3a7ea01b1e5] -- -- * sphinx/directives.rst: -- Fixed a documentation typo. -- [80259f3cc2f5] -- -- * sipgen/gencode.c: -- Fixed a double delete bug with mapped types passed as references -- annotated with /Out/. -- [a788f308bbee] -- --2009-10-28 phil <phil> -- -- * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst: -- Adde support for out-of-tree building. -- [837ce5451585] -- -- * lib/siputils.py, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, -- sipgen/sip.h, sphinx/build_system.rst, sphinx/c_api.rst, -- sphinx/command_line.rst, sphinx/directives.rst: -- Added support for building with "protected" redefined as "public" to -- reduce the size of generated modules. -- [6601a9a55993] -- --2009-10-26 phil <phil> -- -- * siplib/siplib.c: -- sipFindType() now handles references as well as pointers. -- [2228a1ad7d3f] -- -- * specs/linux-arm-g++, specs/linux-arm-thumb-g++, specs/linux- -- armv6-g++: -- Added the Linux ARM spec files from David Boddie's PyQt embedded -- patch set. -- [9285dfaea8a2] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: -- More keyword argument bug fixing. (PyQt now seems to work with it -- enabled.) -- [d2f15ccd7460] -- -- * sipgen/gencode.c: -- More keyword argument bug fixing. (PyQt now builds again.) -- [709ea5c81d46] -- --2009-10-25 phil <phil> -- -- * siplib/siplib.c: -- Bug fixing the keyword argument support. -- [9f8d9cc3f521] -- -- * sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, -- siplib/sip.h, siplib/siplib.c, sphinx/annotations.rst, -- sphinx/command_line.rst, sphinx/introduction.rst: -- Added support for (optional) keyword arguments - untested. -- [04504a7b338b] -- --2009-10-24 phil <phil> -- -- * NEWS, sipgen/gencode.c, siplib/siplib.c: -- Merged v4.9.1 back into the trunk. -- [8e50e7601287] -- --2009-09-26 phil <phil> -- -- * NEWS: -- Released as v4.9. -- [4d26f5a2ec9c] [4.9] -- --2009-09-19 phil <phil> -- -- * lib/siputils.py: -- Fixed the dependency order of Qt libraries on Windows (which weems -- to only affect MinGW). -- [b3b353012242] -- --2009-09-16 phil <phil> -- -- * lib/configure.py: -- Fixed a configure.py command line parsing problem on OS/X. -- [26287bd85bfd] -- -- * lib/siputils.py, sphinx/build_system.rst: -- The default build system values of universal and arch are now taken -- from the configuration. -- [33fab9918a24] -- -- * NEWS, siplib/siplib.c, sphinx/python_api.rst: -- Added sip.ispyowned(). -- [ad556c1da3a4] -- --2009-09-15 phil <phil> -- -- * lib/siputils.py: -- A fix for the last fix. -- [de0e5576ac75] -- -- * lib/siputils.py: -- More fixes for Snow Leopard. -- [64601a49b403] -- --2009-09-14 phil <phil> -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c, -- sphinx/annotations.rst: -- Allowed the /NoArgParser/ annotation to be used for class methods. -- [e5ec799a3f70] -- --2009-09-12 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a problem when a function returns a class instance that SIP -- doesn't think can be copied. -- [bf71880486d0] -- -- * lib/configure.py, lib/siputils.py, sphinx/build_system.rst, -- sphinx/installation.rst: -- The --arch option now only implies a universal binary if it is -- specified more than once. -- [8c16580e8c21] -- -- * lib/configure.py, lib/siputils.py, sphinx/build_system.rst: -- Added support for specifying a MacOS architecture when creating a -- wrapper script. -- [8eeb8a1947b7] -- --2009-09-11 phil <phil> -- -- * lib/configure.py: -- The MacOS specific configure.py options are no longer enabled on -- other platforms. -- [2dd928167cd9] -- -- * lib/configure.py, sphinx/installation.rst: -- Removed the -a short form of --arch so that it will be the same as -- PyQt. -- [239f8861bc8e] -- -- * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst, -- sphinx/installation.rst: -- Added the --arch flag to configure.py to allow the architectures to -- be included in a MacOS/X universal binary to be specified. -- [b74bcfcb34b0] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Fixed a problem with the name of an API version in modules that sub- -- class from classes with versioned methods in a different module. -- [5b327c45a283] -- --2009-09-06 phil <phil> -- -- * siplib/siplib.c: -- Added the support for handling keyword arguments to QObject ctors. -- [562b8ecd5e55] -- --2009-09-04 phil <phil> -- -- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, -- sphinx/annotations.rst, sphinx/c_api.rst: -- Completed the support for /Array/ applied to classes and mapped -- types. -- [f32ceb5cb246] -- -- * sipgen/gencode.c, sipgen/sip.h, siplib/siplib.c: -- Added support for /Array/ for classes and mapped types for non- -- virtual functions. -- [24bcbdbd0393] -- --2009-09-03 phil <phil> -- -- * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h: -- Added the extended assignment helper and the array allocation helper -- for the future support of /Array/ for classes and mapped types. -- [61cf6b3635ab] -- --2009-09-01 phil <phil> -- -- * NEWS, build.py, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt, -- lib/LICENSE.short, sphinx/introduction.rst: -- Added the GPL as a licensing option. -- [1d372e99f512] -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, -- siplib/siplib.c, sphinx/specification_files.rst: -- Added support for __iter__ and __next__. -- [d6cd069a434f] -- --2009-08-21 phil <phil> -- -- * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Added a check for recursive class hierarchies. Fixed the error -- message about type2string() by making sure it handles structs. -- [7af2d9cb07f8] -- --2009-08-11 phil <phil> -- -- * siplib/siplib.c: -- Fixed sipIsPyMethod() to not use PyObject_GetAttr() so that -- reimplementations defined in mixins will be found. This was a -- regression introduced when attribute lookup was made less lazy when -- getting super() to work properly. -- [710a488b84b4] -- -- * siplib/siplib.c: -- Fixed the conversion of strings to wchar_t arrays as it was using -- calls that appeared in Python v2.6. -- [47cc56c95614] -- --2009-08-08 phil <phil> -- -- * siplib/siplib.c: -- sipFindType() will now find types given as a pointer. -- [b693f15869c8] -- --2009-08-06 phil <phil> -- -- * lib/sipdistutils.py: -- Fixed sipdistutils.py for Python v3. -- [4574e78f607f] -- --2009-08-05 phil <phil> -- -- * siplib/apiversions.c, siplib/sip.h, siplib/siplib.c: -- Fixes for looking up types when some times have no implementation -- for all API versions. -- [e77c51f40fe0] -- --2009-08-04 phil <phil> -- -- * sipgen/transform.c: -- No longer complain about methods having the same Python signature if -- they all are versioned. -- [076cbeaeb3ad] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Init extenders now respect API version numbers. -- [4efa4f7f246b] -- --2009-08-03 phil <phil> -- -- * sipgen/gencode.c, sipgen/transform.c: -- Virtual methods now support API versions. -- [8ec049505369] -- -- * sipgen/gencode.c, sipgen/parser.y, sphinx/annotations.rst: -- Added support for the /API/ annotation to all overloaded methods. -- [fae5b6dd29d0] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- sphinx/annotations.rst: -- The /API/ annotation is now supported for ctors. -- [a24c25aede8d] -- --2009-08-02 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c: -- Instantiated class templates now take their API from the scoping -- class. -- [39bf3e3fc6de] -- --2009-08-01 phil <phil> -- -- * sipgen/gencode.c, sipgen/transform.c: -- Operator casts and global slots now handle classes with alternate -- mapped type implementations. (In a limited way, but good enough for -- PyQt.) -- [c2ed8e5bbf11] -- --2009-07-29 phil <phil> -- -- * siplib/siplib.c: -- Fixed a crash with sipFindType() when the search happens to land on -- an unresolved external type. -- [ec4838cbf038] -- -- * siplib/siplib.c: -- Fixed the Python v3 buffer interface for sip.voidptr. -- [4f800839bd44] -- --2009-07-25 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, -- sphinx/annotations.rst, sphinx/command_line.rst, -- sphinx/specification_files.rst: -- Fixed the '/' operator for Python v3 and future import for Python -- v2. -- [fe62bcd81fa3] -- --2009-07-18 phil <phil> -- -- * sipgen/transform.c, sphinx/python_api.rst: -- Fixed a typo in a couple of error messages. -- [c7eb3170f527] -- --2009-07-09 phil <phil> -- -- * siplib/siplib.c: -- Fixed the nb_index initialiser for sip.voidptr for Python v2.4 and -- earler. -- [672b898935b5] -- -- * siplib/siplib.c: -- Allow the meta-type to be used with with ordinary Python classes, -- not just SIP generated classes. -- [6f724709902c] -- --2009-07-08 phil <phil> -- -- * sipgen/gencode.c: -- Complete the support for mapped type static methods. -- [f1cf7ebed748] -- --2009-07-07 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Safety commit of (mostly complete) support for static functions in -- mapped types. -- [58aa805c1867] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sphinx/annotations.rst: -- Extended the use of /AllowNone/ to classes with %ConvertToType code. -- [102fc846396e] -- --2009-07-06 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, -- siplib/siplib.c, sphinx/annotations.rst: -- Added the /AllowNone/ mapped type annotation for mapped types that -- want to place a special interpretation on None. -- [d449e525c5e8] -- -- * sipgen/gencode.c: -- The generated virtual handler code is now the same for classes and -- for mapped types that might have an alternate class implementation. -- [60ce12a7d248] -- -- * sipgen/gencode.c, siplib/siplib.c: -- Make sure mapped types honour the /Constrained/ annotation. -- [0a8916fbe3b2] -- --2009-07-05 phil <phil> -- -- * siplib/apiversions.c, siplib/siplib.c: -- Debugged mapped types with namespaces. -- [1f55210a89de] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- siplib/descriptors.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Safety checkin on the run-time support for mapped types with -- namespaces. -- [ec7ba808f36c] -- --2009-06-29 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Finished the code generation support for enums in mapped types. -- (Runtime support still to do.) -- [552a2d4950a1] -- --2009-06-28 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Safety commit of the support for mapped types containing enums. -- [d94e09ea5add] -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c: -- Implemented the sipContainerDef in anticipation of mapped types -- supporting enums (for the moment, static methods and variables at a -- later date). Fixed a problem where API version ranges wheren't being -- reused. -- [28f8f2aa4bcf] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Fixed a problem with enums in a type with alternate APIs. -- [e320f9cb7d19] -- --2009-06-27 phil <phil> -- -- * lib/siputils.py: -- Added a workaround to the build system when using virtualenv on -- MacOS. -- [ff5b09d449d5] -- --2009-06-25 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c, sphinx/c_api.rst: -- A Python string object can now be provided when a wide character -- (wchar_t) is expected. -- [5a629389629b] -- --2009-06-23 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- Some fixes for generated code for mapped types and classes not being -- as completely interchangeable as needed. (Still more to do.) -- [438a66e8e0a4] -- --2009-06-22 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Bug fixes to the multi-API type support - PyQt4 now builds again. -- [795308460def] -- -- * siplib/apiversions.c, sphinx/annotations.rst: -- Completed the run-time support for multi-API types. -- [8888d5cd3feb] -- --2009-06-21 phil <phil> -- -- * sipgen/gencode.c: -- Completed the code generation changes for multi-API types. -- [439a95ba643e] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- More refactoring in preparation for multi-API support for types. -- [a9c3de1478d8] -- -- * sipgen/gencode.c: -- More changes to the multi-API support for types. -- [329493ac7802] -- --2009-06-20 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Safety commit of latest changes for support of type API selection. -- [9443ed19b08b] -- --2009-06-19 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Safety commit of parser changes to get at the API version of a class -- before it is defined. -- [c209ce56ea4d] -- --2009-06-18 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c, sphinx/annotations.rst: -- Implemented API selection for global functions. -- [db777d90f374] -- --2009-06-17 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/apiversions.c, siplib/sip.h, sphinx/annotations.rst, -- sphinx/c_api.rst, sphinx/directives.rst, sphinx/using.rst: -- Completed the documentation for the API support. The %API directive -- can now be used any number of times in a module. Added the parser -- support for the API annotation. -- [9e63d5da36bd] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c, sphinx/directives.rst, -- sphinx/specification_files.rst: -- Added support for the %API directive. -- [076c846bb8ca] -- --2009-06-16 phil <phil> -- -- * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c, -- sphinx/c_api.rst: -- Implemented sipIsAPIEnabled(). -- [ade852c2131a] -- -- * siplib/apiversions.c: -- ...and made sure it compiles. -- [3e8030fe1b76] -- -- * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c, -- siplib/siplib.sbf, sphinx/python_api.rst, sphinx/using.rst: -- Fixed the reference count of the sip module in the error path if its -- initialisation fails. Added the sip.getapi() and sip.setapi() -- functions. -- [43c34f1c289a] -- -- * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/sip.h, siplib/siplib.c, -- sphinx/specification_files.rst: -- Merged v4.8.1 into the trunk. -- [d1bd8aecab5a] -- --2009-06-05 phil <phil> -- -- * NEWS: -- Released as v4.8. -- [6e9fb584da32] [4.8] -- --2009-06-03 phil <phil> -- -- * build.py: -- More internal build system fixes. -- [4f34294143b0] -- -- * NEWS, build.py, siplib/descriptors.c, sphinx/Makefile: -- Fixed a Python v3 portability bug. Fixed the internal build system -- for Python v2.5. -- [144adbee9ea0] -- --2009-06-02 phil <phil> -- -- * build.py, doc/sipref.txt, sphinx/conf.py, -- sphinx/extensions/siproles.py: -- Switched to the Sphinx documentation. -- [16b6a4f285a6] -- -- * sphinx/build_system.rst, sphinx/builtin.rst, sphinx/distutils.rst, -- sphinx/python_api.rst, sphinx/using.rst: -- Completed the initial Sphinx docs. -- [d9202085c430] -- -- * sphinx/c_api.rst, sphinx/embedding.rst, sphinx/python_api.rst, -- sphinx/using.rst: -- More Sphinx docs. -- [f3c5b7d3dcd4] -- --2009-06-01 phil <phil> -- -- * sphinx/annotations.rst, sphinx/c_api.rst, sphinx/command_line.rst, -- sphinx/directives.rst, sphinx/extensions/siproles.py, -- sphinx/specification_files.rst, sphinx/using.rst: -- More Sphinx docs. -- [831112f389a5] -- -- * sipgen/transform.c: -- Fixed a bug where nested templates where having their types resolved -- (when they should have been left as templates) which then meant that -- they were being found and were being instantiated again (possibly in -- a different module). -- [79d8261912c8] -- -- * build.py: -- Fixed the build system after removing the TODO file. -- [93ea3b759b5f] -- --2009-05-31 phil <phil> -- -- * sphinx/annotations.rst, sphinx/builtin.rst, sphinx/c_api.rst, -- sphinx/conf.py, sphinx/directives.rst, -- sphinx/extensions/annotations.py, sphinx/extensions/siproles.py, -- sphinx/incompatibilities.rst, sphinx/installation.rst: -- More Sphinx docs. -- [d28f3153b2f8] -- -- * doc/sipref.txt, sphinx/annotations.rst, sphinx/c_api.rst, -- sphinx/conf.py, sphinx/extensions/annotations.py, -- sphinx/incompatibilities.rst, sphinx/using.rst: -- More Sphinx docs. -- [e4dcbba1bd9d] -- --2009-05-30 phil <phil> -- -- * sphinx/build_system.rst, sphinx/conf.py, sphinx/distutils.rst, -- sphinx/introduction.rst, sphinx/python_api.rst, sphinx/using.rst: -- Sphinx documentation changes. -- [62644d47ee77] -- -- * TODO, doc/sipref.txt, siplib/siplib.c, sphinx/Makefile, -- sphinx/annotations.rst, sphinx/build_system.rst, sphinx/builtin.rst, -- sphinx/c_api.rst, sphinx/command_line.rst, sphinx/conf.py, -- sphinx/directives.rst, sphinx/distutils.rst, sphinx/embedding.rst, -- sphinx/incompatibilities.rst, sphinx/index.rst, -- sphinx/installation.rst, sphinx/introduction.rst, -- sphinx/python_api.rst, sphinx/specification_files.rst, -- sphinx/using.rst: -- Initial commit of the Sphinx documentation. -- [432d95fdad2f] -- -- * sipgen/parser.y, sipgen/transform.c: -- Reverted the previous fix and fixed the real bug which was that -- %DefaultEncoding wasn't being inherited properly by modules. -- [9abeaff1148a] -- --2009-05-29 phil <phil> -- -- * sipgen/transform.c: -- Fixed a bug in comparing virtual handlers that had a char* result or -- argument and a default encoding was specified (ie. with Python v3). -- [3c92e9237373] -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c, -- siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Eliminated more warning messages. -- [a61fb0a096f2] -- -- * sipgen/gencode.c, siplib/sip.h: -- Eliminated some compiler warning messages - particularly for Python -- v2.4. -- [374f079e7228] -- --2009-05-28 phil <phil> -- -- * sipgen/gencode.c: -- Removed a compiler warning for the generated calls to -- PyInit_Module() for Python v2.5 and v2.6. -- [dc93a8fa4a5b] -- --2009-05-27 phil <phil> -- -- * sipgen/gencode.c: -- The implicit copying of const& results is disabled for abstract -- classes. -- [705fc12e2144] -- --2009-05-26 phil <phil> -- -- * sipgen/gencode.c: -- Fixed the generated code for abstract operators. -- [c56cc92b0917] -- -- * siplib/siplib.c: -- Added the missing initialisation of the sipVariableDescr_Type type. -- [2c0779527ed3] -- --2009-05-25 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, siplib/sip.h, siplib/siplib.c: -- __bool__ is now synonymous with __nonzero__. __truediv__ and -- __itruediv__ are now explicit. __div__ and __idiv__ are now Python -- v2 only. Added support for __floordiv__, __ifloordiv__ and -- __index__. -- [537579d9318e] -- -- * sipgen/parser.y: -- Hopefully fixed the regression with specific mapped types not -- properly superceding template mapped types that was affecting PyKDE3 -- and PyKDE4. -- [25a665370099] -- --2009-05-24 phil <phil> -- -- * siplib/descriptors.c, siplib/sipint.h: -- Added a repr() method to sip.methoddescriptor. -- [149f6c3f12a5] -- -- * sipgen/transform.c: -- Fixed a bug where the name of an automatically generated -- complementary slot wasn't being generated. -- [0f304e850331] -- -- * sipgen/export.c: -- Added support for images in the generated Scintilla API files from a -- patch from Detlev Offenbach. -- [83966cc9950a] -- --2009-04-30 phil <phil> -- -- * doc/sipref.txt, sipgen/transform.c, siplib/qtlib.c: -- %DefaultSupertype now only changes the default for the current -- module. (%DefaultMetatype still affects importing modules.) This -- should mean that modules that extend PyQt4 will continue to work -- without having to make super-type or meta-type changes. -- [5fc24c675796] -- --2009-04-24 phil <phil> -- -- * siplib/siplib.c: -- Fixed the lookup of generated slot functions in sub-types. Moved -- some assertions to more appropriate places when a generated slot -- function isn't found. -- [5b59bd703dff] -- --2009-04-20 phil <phil> -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Disabled the new implicit copying of const reference results where -- the class doesn't have a public copy ctor. -- [70cd90b1d5b9] -- --2009-04-18 phil <phil> -- -- * siplib/siplib.c: -- Fixed a problem handling __setitem__ when being used to support -- multi-dimensional mappings. -- [705be62a3cd0] -- --2009-04-09 phil <phil> -- -- * siplib/siplib.c: -- Print any exception raised by __dtor__. -- [0d56ac42feac] -- --2009-04-01 phil <phil> -- -- * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c: -- Added support for PyQt4's support for signals that have overloaded -- methods. -- [c0ad968503e4] -- --2009-03-30 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a compiler warning message if sipCpp isn't used by -- %BIGetBufferCode. -- [26269a7e86f4] -- -- * sipgen/gencode.c, siplib/siplib.c: -- Fixed the declaration of the module initialisation function when -- building static modules for Python v3. -- [6f48c809c90b] -- --2009-03-27 phil <phil> -- -- * siplib/siplib.c: -- Fixed a couple of missing calls to clear the error flag while -- parsing strings. -- [2275585e4c08] -- --2009-03-26 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, -- siplib/siplib.c: -- Replaced the new /Byte/ annotation with the even newer /Encoding/ -- annotation and %DefaultEncoding directive. -- [7c648d9cdd13] -- --2009-03-24 phil <phil> -- -- * sipgen/gencode.c: -- Changed the order in which PyQt4 signals are generated so that those -- with optional arguments appear with the most arguments first and -- least last. -- [4d0b9c852cf8] -- --2009-03-23 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Backed out the removal of sipSelfWasArg and supporting code as it -- really is needed. However, changed how it was set so that super() -- should still work. -- [29d1813e4566] -- --2009-03-21 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a bug in the code generated for protected methods with -- multiple Python names. -- [7aa8d62ddf7c] -- --2009-03-20 phil <phil> -- -- * siplib/siplib.c: -- Bytes and the buffer protocol are now also supported for non-byte -- char and char * (howver the buffer protocol support seems to be -- broken). -- [1c5b994cd2d6] -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/descriptors.c, -- siplib/sip.h, siplib/siplib.c: -- Many changes to the wrapping of strings for Python v3 so that char -- and char * (unless the /Byte/ annotation is specified) are handled -- as Unicode rather than bytes. Such strings must be able to be -- encoded as Latin-1. Related to the above, the generated code is much -- more careful than it used to be about keeping Python string objects -- alive while their data is being used. -- [49cf3c9e7b69] -- --2009-03-18 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a long-standing bug in the handling of the /NoArgParser/ -- annotation that only came to light with Python v3. -- [2c44dd616d6d] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c: -- More fixes for consolidated modules. Python v2 and v3 should now be -- working. -- [b966b1df2bb1] -- --2009-03-17 phil <phil> -- -- * sipgen/gencode.c, sipgen/transform.c: -- Some fixes for consolidated module support for both Python v2 and -- v3. -- [b17d4cdf4709] -- -- * lib/siputils.py: -- Tweaked the build system to make it easier for Makefile sub-classes -- to add commands to targets. -- [abe3ecd83256] -- --2009-03-16 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Fixed a bug in generating Python v3 consolidated modules. -- [8fc22b7be6fd] -- -- * siplib/siplib.c: -- Fixed a typo that broke the build of the sip module for Python v2. -- [348b333af022] -- --2009-03-15 phil <phil> -- -- * siplib/sip.h: -- Tweaks to the Python portability macros. -- [c1f795ce8a5a] -- -- * siplib/sip.h: -- More Python portability macros. -- [b3d39099f350] -- --2009-03-14 phil <phil> -- -- * lib/configure.py: -- Fixed a Mac build regression handling the location of the SDK. -- [2c8cf43905e1] -- -- * siplib/sip.h: -- Added some more Python porting macros. -- [c046cc5bb268] -- -- * lib/siputils.py: -- Removed a remaining Python v2 specific call from the build system. -- [c1527c576e1d] -- -- * NEWS, sipgen/gencode.c, siplib/sip.h: -- The generated code now supports Python v3. -- [c60f38353478] -- -- * siplib/siplib.c: -- The sip module can now be imported by Python v3. -- [a8bd1e5a5a4b] -- --2009-03-13 phil <phil> -- -- * doc/sipref.txt, siplib/siplib.c: -- Ported the PyString_ calls in the sip module to Python v3. -- [337e7e627054] -- -- * sipgen/gencode.c: -- Updated the generated module initialisation code for Python v3 - but -- not for consolidated modules yet. -- [985c336dd059] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Moved to PyLong_* for Python v3. -- [a1d1a376920b] -- --2009-03-12 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h, siplib/siplib.c: -- More porting of the sip module. It now compiles but still calls -- Python v2 functions. -- [9f4570a090e1] -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, siplib/descriptors.c, siplib/sip.h, -- siplib/siplib.c: -- Partially ported the sip module to Python v3. Added the -- %BIGetBufferCode and %BIReleaseBufferCode directives to support the -- buffer interface of Python v3. -- [0631013fd5ae] -- --2009-03-11 phil <phil> -- -- * doc/sipref.txt, lib/configure.py, lib/siputils.py: -- configure.py now uses optparse. configure.py and the build system -- will now run under Python3. -- [89bbb0b49865] -- -- * siplib/siplib.c: -- Implemented __dict__ for sipsimplewrapper. -- [cf1c9edeb56a] -- -- * sipgen/gencode.c, siplib/sip.h: -- Added the SIP_PYMETHODDEF_CAST compatibility macro for Python v2.4 -- and earlier. -- [43e5b0afa42d] -- --2009-03-10 phil <phil> -- -- * sipgen/gencode.c: -- Changed the code generated for variable getters so that a copy is -- only returned if the variable is const. -- [22c2ae7bdc37] -- --2009-03-09 phil <phil> -- -- * sipgen/gencode.c: -- Changed the generation of the string pool to get around MSVC's -- limitation on the size of a string. -- [e15683c4034a] -- -- * NEWS: -- Updated the NEWS file. -- [262f29053a78] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Made sure all generated code doesn't break strict aliasing. -- [ae62345de148] -- -- * sipgen/gencode.c: -- SIP now automatically copies objects when they are returned as a -- const reference. -- [3d0c7011cb93] -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- A further fix to the order in which modules have their types -- resolved. -- [d7ebeff5a7ce] -- --2009-03-06 phil <phil> -- -- * lib/siputils.py: -- Taught the build system about the QtScriptTools module. -- [6c0d66e4ef0b] -- -- * sipgen/transform.c: -- Fixed a bug where types were being resolved in outer modules before -- inner modules. This meant that template-based types created on the -- fly might be created in the wrong module. -- [cd2a99e505be] -- --2009-03-05 phil <phil> -- -- * lib/siputils.py: -- Taught the build system about the new dependency of QtXmlPatterns on -- QtNetwork. -- [50a9e41802c2] -- --2009-03-04 phil <phil> -- -- * siplib/siplib.c: -- Fixes for the updated method cache. -- [d82c3be07e1b] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Greatly simplified the virtual reimplementation method cache now -- that attribute lookup has been cleaned up. -- [0cc40f47e6d5] -- --2009-03-03 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, siplib/sip.h, siplib/siplib.c: -- Implemented the /KeepReference/ argument annotation. -- [c8e2e1961f50] -- --2009-02-27 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added sipCanConvertToEnum() to the public API. -- [2748f0bbb0ab] -- --2009-02-26 phil <phil> -- -- * siplib/sipint.h, siplib/siplib.c: -- Removed the __dict__ getter as it is no longer needed. Changed the -- declaration of the descriptors as they don't need to be exported. -- [ddd2710b42fd] -- --2009-02-25 phil <phil> -- -- * NEWS, doc/sipref.txt, siplib/sip.h, siplib/siplib.c: -- Reverted to using type's and object's attribute getters and setters -- now that we populate the type dictionary of a generated type with -- all its lazy attributes in one go. Changed how an external -- attributer getter works now that it only needs to populate the type -- dictionary. -- [8a22253728be] -- -- * sipgen/gencode.c, siplib/siplib.c: -- Safety checking of the working (but still to be changed) attribute -- lookup code. -- [d7244d817b9f] -- -- * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h, -- siplib/siplib.c: -- Refactored the support for setting instance variables. -- [cc8a22386009] -- -- * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c, -- siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- The refactored support for getting variables now works. -- [c3e7dc58b020] -- --2009-02-24 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Safety commit of refactored wrapping of class variables. -- [fa8ba6ef243b] -- --2009-02-23 phil <phil> -- -- * siplib/siplib.c: -- Fixed the problem with looking up external lazy attributes - wrapped -- variables are the only thing not working. -- [ab3e207d555b] -- -- * siplib/descriptors.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c, siplib/siplib.sbf: -- Safety commit of new attribute lookup code. Don't use this - it's -- broken. -- [2673bc2add5c] -- -- * siplib/siplib.c: -- Fixed a reference count leak when an external lazy attribute was a -- descriptor. -- [1047169d1ba8] -- -- * siplib/siplib.c: -- Fixed a crash when accessing a wrapped instance variable as a class -- variable. -- [e922b386c5aa] -- --2009-02-22 phil <phil> -- -- * siplib/siplib.c: -- Fixed a bug in the refactored attribute lookup. -- [ddad97af22ec] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Completed the support for the lazy attribute lookup hook. -- [1f7bc8f488a8] -- --2009-02-21 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- Added initial support for registering lazy attribute getters. -- [9aae0eb78368] -- -- * sipgen/export.c, sipgen/gencode.c: -- The PyQt4 signal table is now generated. The XML export now marks -- the default signal. -- [dbf0c7f47b6b] -- --2009-02-20 phil <phil> -- -- * lib/LICENSE, sipgen/gencode.c, siplib/sip.h: -- Added the stub of signal table for PyQt4. -- [f53134503038] -- --2009-02-16 phil <phil> -- -- * siplib/sip.h, siplib/siplib.c: -- Removed some compiler warnings. -- [a3c24034045a] -- --2009-02-14 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- More signal/slot refactoring fixes. -- [e1c0b895f0d1] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: -- Debugged the signal/slot refactoring. -- [a4a47ea6fd1e] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, -- siplib/sipint.h, siplib/siplib.c: -- Safety commit of latest signal/slot refactoring. -- [751cebc544cc] -- --2009-02-13 phil <phil> -- -- * siplib/qtlib.c, siplib/siplib.c: -- Fixed a build problem with Python 2.4.x and earlier. -- [df846f30a329] -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/siplib.c: -- PyQt3 signal support is now enabled with the %Plugin directive -- instead of %SIPOptions. Removed %SIPOptions. -- [d511ad00cc71] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- The generated typedefs table is now sorted. -- [abd1a7d60330] -- --2009-02-12 phil <phil> -- -- * siplib/siplib.c: -- An unconstrained enum can now be a sub-class of int. -- [60366594aa80] -- --2009-02-11 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h: -- Renamed TypeFlags to PyQt4Flags. Renamed NoQMetaObject to -- PyQt4NoQMetaObject. Moved the type flags into the PyQt4-specific -- type structure. -- [259fceeadbbe] -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Removed the registration of wrapped types with the Qt meta-type -- system as it is no longer needed by PyQt4. -- [71f80e789732] -- --2009-02-07 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Removed sipAssignType() and moved the helpers to the PyQt4 plugin. -- [305f07cd3ce2] -- --2009-02-02 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c: -- The QObject.sender() support is now PyQt3 only again. -- [e732e65c15b5] -- --2009-02-01 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- Fixed a bug in the generation of the sipParseArgs() sub-format -- character for types. -- [fadc9f7074f1] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: -- Changed the QObject::sender() support for PyQt4. -- [9d6d9918bb1f] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Debugged the merged types table. -- [cf4e643c28b5] -- --2009-01-31 phil <phil> -- -- * sipgen/gencode.c, sipgen/heap.c, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- Safety commit of the merge of the class, mapped types and enum -- tables. -- [33a1dbf992df] -- --2009-01-30 phil <phil> -- -- * siplib/sip.h, siplib/siplib.c: -- Wrapped classes are now created as they are needed and not in the -- order they appear in the generated class table. Therefore the class, -- mapped type and enum tables can now be merged and ordered by the -- type name (and searched using a binary search). -- [4a72c9cee88f] -- --2009-01-29 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Moved the last of the type parsing to PyQt3. -- [b7d7695e3d8e] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Moved the registering of int types to PyQt4. -- [e63f85d857bd] -- --2009-01-28 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Refactored the support for looking up typedefs. -- [42851fe9a2cb] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Moved the type parsing support to PyQt3. -- [531e8244cfd3] -- --2009-01-27 phil <phil> -- -- * sipgen/gencode.c: -- Removed a remaining call to sipReleaseMappedType(). -- [2a9cbf86c86a] -- --2009-01-25 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a too-few-arguments-to-a-print bug in the code generator. -- [1260503c2021] -- -- * siplib/siplib.c: -- Fixed compilation issues. -- [635ffd53597b] -- --2009-01-18 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h: -- Replaced sipFindConnection() with sipFindSlot(). -- [30f0174c05f4] -- --2009-01-13 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Replaced sipFreeSignature() with sipFreeSipslot(). -- [e5275f031458] -- --2009-01-12 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Pushed the parsing of signatures into PyQt. -- [b2e616d5c92f] -- --2009-01-11 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Replaced sipConvertRx() with sipConvertRxEx(). -- [cc0e4fe70f50] -- --2009-01-10 phil <phil> -- -- * sipgen/gencode.c: -- Removed the generation of an old Qt API entry. -- [30f044ed1723] -- --2009-01-09 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: -- Safety commit of partial refactoring of the Qt signal support. -- [429673b02dcd] -- --2009-01-04 phil <phil> -- -- * lib/LICENSE, lib/LICENSE.short, sipgen/gencode.c: -- Don't import the qt_register_type symbol if it isn't needed. Updated -- copyright notices. -- [f2dbc98f7144] -- --2008-12-30 phil <phil> -- -- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: -- sipTypeFromPyTypeObject() now takes a PyTypeObject* rather than a -- PyObject*. -- [077c2ad4451f] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/sip.h, -- siplib/sipint.h, siplib/siplib.c, siplib/threads.c: -- Added sipTypeName() and sipTypeScope() to the public SIP API. -- [701c6915d3e3] -- --2008-12-29 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, -- siplib/sipint.h, siplib/siplib.c: -- Migrated sipEnum_* to sipType_*. -- [e0417099f5a9] -- --2008-12-27 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- sipType_* are now generated for enums. These are used internally but -- the SIP API has not yet been changed. -- [ca45e1d31af2] -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Broke out the generated type structures for mapped and class types -- to different structures with a common header. -- [ff4bec0abd37] -- --2008-12-26 phil <phil> -- -- * siplib/siplib.c: -- Wrapped enums now have their own meta-type. This is the hook that -- will allow the C++ name of an enum to be derived from the enum's -- Python type object. -- [ea550b12904c] -- --2008-12-24 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, -- siplib/siplib.c: -- Added sip_api_init_module() to make sure dependent modules can be -- fully initialised before they are needed. -- [fed394659169] -- -- * sipgen/gencode.c, siplib/sip.h: -- Removed the Qt meta-type id from the pyqt4TypeDef structure as we -- want to use it for mapped types as well but we would never know when -- it was safe to cast from a sipTypeDef pointer. -- [92c012de8c02] -- --2008-12-21 phil <phil> -- -- * sipgen/gencode.c: -- The PyQt4-specific extension to the generated type structure is now -- used for mapped types as well. -- [f49b6d447292] -- --2008-12-20 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- Changed the PyQt4-specifc handling of Qt meta-type registration. -- [d112840accfd] -- -- * sipgen/gencode.c, siplib/siplib.c: -- A generated type structure now has its Python type object set -- earlier so that sub-meta-types can use sipIsExactWrappedType(). -- Calls to QObject::metaObject() are no longer need to trigger the -- creation of the meta-object. -- [8d816e1f3008] -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, siplib/sip.h: -- Added %Plugin and use it to support pyqt4TypeDef. -- [0f236470d582] -- --2008-12-19 phil <phil> -- -- * siplib/sip.h: -- Moved the qt_qobject member out of sipWrapperType and into PyQt -- where it belongs. -- [babe6a91d801] -- -- * sipgen/gencode.c, siplib/siplib.c: -- Completed the migration of sipClass_* to sipType_*. -- [e7c00163d819] -- -- * doc/sipref.txt: -- Documentation updates. All uses of sipClass_* are only by deprecated -- parts of the API. -- [cfa2b5ca880e] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Deprecated the 'B' and 'C' format characters to sipBuildResult() and -- sipCallMethod(). Added the new 'N' format character to -- sipBuildResult() and sipCallMethod(). -- [d685f1b18287] -- --2008-12-17 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: -- Deprecated the 'C' format character of sipParseResult() in favor of -- the existing 'D' character. -- [be1f044d9828] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, -- siplib/siplib.c: -- Migrated the sub-class convertor code to using sipType rather than -- sipClass. -- [a4424a9ac5a5] -- --2008-12-16 phil <phil> -- -- * sipgen/transform.c: -- Fixed a bug where names of mapped type templates where being -- generated for modules that didn't need them. -- [176171583343] -- --2008-12-14 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, -- siplib/sipint.h, siplib/siplib.c: -- Replaced the deprecated sipConvertFromInstance() and -- sipConvertFromNewInstance() with sipConvertFromType() and -- sipConvertFromNewType(). -- [6f6e06ceaace] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Replaced the deprecated sipForceConvertToInstance() and -- sipForceConvertToMappedType() with sipForceConvertToType(). -- [fc54ee3b5308] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Replaced the deprecated sipConvertToInstance() and -- sipConvertToMappedType() with sipConvertToType(). -- [8e66284398dd] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Replaced the deprecated sipCanConvertToInstance() and -- sipCanConvertToMappedType() by sipCanConvertToType(). -- [c1f1b170b263] -- --2008-12-13 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Replaced the deprecated sipReleaseInstance() and -- sipReleaseMappedType() with sipReleaseType(). -- [7ce45ed9ae89] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Replaced the deprecated sipGetWrapper() with sipGetPyObject(). -- [8cb295b72e62] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, -- siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- More moves from sipClass_* to sipType_*. -- [4e7936a90f99] -- -- * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- More conversions from sipClass_* to sipType_*. -- [75eed80555d4] -- --2008-12-12 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c, -- siplib/threads.c: -- Merged the adding of type instances. -- [d2db3775a993] -- --2008-12-08 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Started the port from sipClass_* to sipType_*. Added support for -- assert() to the build system. -- [231826fe6d04] -- -- * sipgen/gencode.c: -- Renamed sipMappedType_* to sipType_*. -- [8df5a86247e8] -- --2008-12-07 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added sipType_* for wrapped types. sipClass_* is now defined in -- terms of sipType_*. -- [bb37272a3113] -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Deprecated sipClassName(). -- [de0402f5112c] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- Mapped types are now described by the same sipTypeDef structure that -- describes wrapped types. -- [77ce210b751e] -- --2008-12-06 phil <phil> -- -- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: -- Moved the 'user' field from sip.wrapper to sip.simplewrapper because -- PyQt uses it for some non-QObject types. -- [0bb916ce4818] -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- Restored %DefaultMetatype and the /Metatype/ class annotation. This -- support is now complete. Documented the meta-type and super-type -- support. -- [15f1b60f808f] -- --2008-12-03 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, -- siplib/siplib.c: -- Code generator changes to support sipSimpleWrapper. -- [ebd5b0b103ae] -- -- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- The sip module now compiles again without any unexpected warnings. -- [6fb536d5333e] -- --2008-12-02 phil <phil> -- -- * siplib/objmap.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, -- siplib/siplib.c: -- Various compilation fixes. -- [ace8e0f95607] -- --2008-12-01 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Safety checkin of the support for the new sip.simplewrapper type. -- [3d87512e3a5c] -- -- * NEWS, doc/sipref.txt, siplib/siplib.c: -- Added support for %InitialisationCode. (Actually in the previous -- commit but I forgotto mention it.) The text of an attribute -- exception now mimics that produced by the Python interpreter. -- [70d0f5dc259b] -- --2008-11-30 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- Refactored the super-type and meta-type support. Meta-types are now -- handled implicitly. -- [2676976c88bf] -- --2008-11-29 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/siplib.c: -- Debugged the metatype support. -- [e7e9b5d303c3] -- --2008-11-27 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- The metatypes are now registered and readied. -- [5c4757c83b70] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, -- sipgen/transform.c, siplib/siplib.c: -- Fixes for various regressions. -- [eea6dc713727] -- --2008-11-26 phil <phil> -- -- * sipgen/gencode.c: -- Use the string pool for calls to qRegisterMetaType(). -- [954bd63eb830] -- -- * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- Completed the code generator support for user defined metatypes. -- [6c09f41b9eec] -- --2008-11-24 phil <phil> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/sip.h: -- Added the parser support for %Metatype and %DefaultMetatype. -- [6af8f6a12eb5] -- --2008-11-23 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- The string pool now overlaps strings where possible. -- [4873718f6e82] -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- siplib/sip.h, siplib/siplib.c: -- Enum names now use the string pool. -- [b6414c99a03a] -- -- * sipgen/parser.y, siplib/sip.h, siplib/siplib.c: -- Fixed a regression in the handling of nested namespaces. -- [a49433be0291] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- Python and C++ type names now use the string pool. The string pool -- is currently broken for namespace extenders. -- [b08a2ca9d7fd] -- --2008-11-22 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- The generated name cache is now a single (const) string. -- [0296eda5e61a] -- -- * doc/sipref.txt, lib/configure.py, lib/siputils.py, sipgen/gencode.c, -- siplib/sip.h, siplib/siplib.c: -- Removed all deprecated parts of the API and generated code. -- [0a00c20f5c5b] -- --2008-11-21 phil <phil> -- -- * lib/siputils.py: -- Use "-undefined dynamic_lookup" rather than linking against the -- Python framework on MacOS. -- [773c8920c04f] -- --2008-11-18 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added sipWrapperType_Check() to the public API. -- [42d9ec7403f4] -- --2008-11-17 phil <phil> -- -- * NEWS, sipgen/gencode.c: -- Merged v4.7.9 into the trunk. -- [63aff4a6e0f0] -- --2008-11-08 phil <phil> -- -- * NEWS, TODO, build.py, doc/default.css, doc/sipref.txt, lib/LICENSE, -- lib/LICENSE.short, lib/README.HP-UX, lib/THANKS, lib/configure.py, -- lib/siputils.py, sipgen/export.c, sipgen/gencode.c, sipgen/heap.c, -- sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h, -- siplib/sipint.h, siplib/siplib.c, specs/linux-icc, -- specs/win32-msvc2005, specs/win32-msvc2008: -- Merged v4.7.8 into the trunk. -- [9cc6147a1067] -- --2007-07-30 phil <phil> -- -- * NEWS: -- Released as v4.7. -- [a458d43a6fbb] [4.7] -- --2007-07-28 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a memory leak with mapped types with the /Out/ annotation. -- [5c156cb3b313] -- --2007-07-27 phil <phil> -- -- * siplib/qtlib.c: -- Fixed a bug preventing wrapped C++ slots from being disconnected. -- [43fc1981c30d] -- --2007-07-14 phil <phil> -- -- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- Rather than only lambda functions being given an extra reference -- when used as a slot, anything other that a method or wrapped C -- function is given an extra reference. Specifically this means that -- partial functions can now be used as slots. -- [2562db168ce9] -- --2007-07-04 phil <phil> -- -- * sipgen/transform.c: -- Relaxed the restriction that /Out/ arguments couldn't be const. -- [546fba30aac6] -- --2007-06-25 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a compiler warning message about an unused argument in -- generated code. -- [5713835ff863] -- -- * sipgen/parser.y: -- Fixed a bug in the previous fix so that it only applies to mapped -- types. -- [68a7fd2c1ea4] -- -- * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Fixed a bug where template based types where overwriting the header -- code of any previously defined type based on the same interface -- file. -- [f41edc04b3cf] -- --2007-06-23 phil <phil> -- -- * NEWS, sipgen/gencode.c: -- Consolidated modules are now generated as either C or C++ (rather -- than always C) so that the name cache names are consistently -- mangled. -- [83c24c956277] -- --2007-06-22 phil <phil> -- -- * lib/siputils.py: -- Fixed a build system problem for PyQt on Windows against a static -- Qt. -- [3ff5f3d1e074] -- -- * sipgen/gencode.c: -- Fixed silly code generation typo. -- [3232af13c3f6] -- -- * lib/siputils.py: -- Changed the build system so that missing macros default to being -- empty rather than causing an error. (Qt v4.3.0 contains such a -- case.) -- [213c1dd11448] -- --2007-06-20 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, -- siplib/siplib.c: -- Split the consolidated module concept into separate consolidated and -- composite module types, which significantly simplifies things. -- [eb0502b5bb27] -- --2007-06-19 phil <phil> -- -- * lib/siputils.py: -- Updated some comments in the build system. -- [f38ba63f0f97] -- -- * siplib/siplib.c: -- Fixed a bug in the sip module consolidated module support. Otherwise -- everything seems to work. -- [a9d7eeffdf81] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- More consolidated module refactoring. -- [9c629ca01a4a] -- --2007-06-18 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c: -- More consolidated module refactoring. PyQt4 with only QtCore enabled -- now compiles. -- [bec649674da2] -- --2007-06-16 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y: -- More consolidated module support. -- [b7455f328486] -- --2007-06-12 phil <phil> -- -- * siplib/siplib.c: -- Hopefully fixed a bug in the handling of the 'C' and 'D' format -- characters in sipParseResult(). -- [c28fa1333976] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- More refactoring for consolidated module support. SIP no longer -- generates lots of .h files. Note that SIP is now less tolerant of -- missing #includes in %TypeHeaderCode and %ModuleHeaderCode. -- [ae2dec8da410] -- --2007-06-04 phil <phil> -- -- * sipgen/gencode.c: -- Removed the need to generate the shadow class definition in a header -- file and put it in the original class's C++ file instead. -- [30cd539612c7] -- --2007-06-03 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c: -- More consolidated module refactoring. -- [9fbe5340767f] -- --2007-06-01 phil <phil> -- -- * sipgen/parser.y: -- Fixed a missing return in parser.y. -- [3f160ab4ae5b] -- --2007-05-28 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- A bit more consolidated module support. -- [f714935139bb] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, -- siplib/siplib.c: -- More work on consolidated modules. -- [bde47f2343cf] -- --2007-05-27 phil <phil> -- -- * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c: -- The component stub modules (ie. those requested with the -p flag) -- are now generated. -- [21119384ab4f] -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h: -- Added the stubs of the -n and -p command line options for the -- remaining consolidated module support. Documented the -- %ConsolidatedModule directive. -- [744cf0ed0857] -- --2007-05-24 phil <phil> -- -- * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: -- Completed the implementation of %ConsolidatedModule for the simple -- case (where the consolidated module populates itself from the -- component modules). -- [78406f2fdcb4] -- --2007-05-23 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: -- A bit more refactoring for the consolidated module support. -- [51a36ed46e45] -- -- * siplib/objmap.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- When deciding if an instance is already wrapped, sip only considers -- if the candidate is a sub-class of the expected class. (Before it -- used to consider if the candidate was a super-class of the expected -- class as well. However this shouldn't be necessary as the candidates -- class should be correct if all the sub-class convertor code is -- working properly.) -- [014d6fb553a9] -- -- * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/objmap.c: -- Added the start of the support for %ConsolidatedModule. -- [2cdafc7810be] -- --2007-05-20 phil <phil> -- -- * doc/sipref.txt, siplib/siplib.c: -- Added the dump() funtion to the sip module. -- [299d67a0fe51] -- --2007-05-13 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added sipTransferBreak() for removing hidden references without -- changing owndership. -- [5d298052a2e5] -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: -- Added support for /Transfer/ as a function annotation. -- [ab6bd827b7a0] -- --2007-05-12 phil <phil> -- -- * lib/siputils.py: -- Added the build system hooks for PyQt's QtScript module. -- [6fdf6cb0ade1] -- -- * sipgen/parser.y: -- Fixed some parser problems related to versioning. -- [a4ffe24c61bd] -- --2007-05-11 phil <phil> -- -- * sipgen/parser.y: -- Relaxed the restriction that the arguments to mapped type templates -- had to be simple names and not basic types. -- [04d512a7ddee] -- -- * sipgen/gencode.c: -- Generated the sipClass_* for namespaces. -- [234dfbd619d5] -- --2007-05-07 phil <phil> -- -- * sipgen/gencode.c: -- More fixes to mapped type templates - should be Ok now. -- [3e7528f5ec18] -- --2007-05-04 phil <phil> -- -- * doc/sipref.txt: -- Fixed a couple of documentation bugs regarding exceptions. -- [21138bd0e4dd] -- --2007-05-03 phil <phil> -- -- * sipgen/transform.c: -- Fixed a bug where generated .h files for template argument types -- were being included in the mapped type rather than the mapped type's -- own .h file. -- [015e7bc362e3] -- --2007-04-28 phil <phil> -- -- * siplib/siplib.c: -- Removed the need for the copy_reg module. This marks the completion -- if the pickle support. -- [855e5b2a3bfc] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Pickling nested types now works. -- [d10779f3268e] -- -- * siplib/siplib.c: -- Minor refactoring of the pickle code prior to adding support for -- nested classes. -- [33badbfc5ee1] -- --2007-04-27 phil <phil> -- -- * doc/sipref.txt, siplib/siplib.c: -- Named enums that are nested within other types can now be pickled. -- (Note that the pickle format for classes will be changed in the next -- few days to allow nested classes to be pickled in the same way.) -- [ad31cd17972b] -- --2007-04-26 phil <phil> -- -- * siplib/siplib.c: -- More improvements to the pick code. -- [7387a6436f4f] -- -- * sipgen/gencode.c: -- Slight improvement to the generated pickle code. -- [250d4acde794] -- --2007-04-22 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, -- siplib/siplib.c: -- Added %PickleCode to allow wrapped objects to be pickled. -- [45059aeff1d0] -- -- * siplib/siplib.c: -- Module level enums can now be pickled. Removed the None -- implementations of __reduce__ and __reduce_ex__ and fixed the -- segfault that pickling was causing. -- [960a54bd61d7] -- --2007-04-10 phil <phil> -- -- * NEWS: -- Released as v4.6. -- [9d849b09a8d4] [4.6] -- --2007-04-07 phil <phil> -- -- * sipgen/export.c: -- Changed the API file generation to generate the __init__ form of a -- ctor as well as the callable type form. -- [316e430f8a37] -- --2007-04-02 phil <phil> -- -- * NEWS: -- Updated the NEWS file. -- [5c6477d8ee0d] -- -- * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py: -- Added the -n flag to configure.py to build universal binaries on -- MacOS/X. -- [e892f0a63956] -- -- * siplib/siplib.c: -- Fixed a MinGW warning message. -- [79ac369e6efa] -- -- * siplib/siplib.c: -- Backed out the save and restore of the exception state in -- sipWrapper_dealloc() as it can get called when there is no current -- thread state (which results in a segfault). -- [f66e13ead83b] -- -- * NEWS: -- Updated the NEWS file. -- [c7488adf6abf] -- -- * siplib/siplib.c: -- Fixed a bug handling sub-class convertor code with multiple -- inheritance. -- [8ac3a23e1e3c] -- -- * doc/sipref.txt, sipgen/gencode.c: -- Virtuals that return a wchar_t * now keep then free the previous -- result to limit the possible memory leaks. -- [48b87ba8bc6a] -- --2007-04-01 phil <phil> -- -- * sipgen/gencode.c, sipgen/transform.c: -- Fixed a bug in the wchar_t support with const wchar_t * arguments. -- Fixed a bug in the wchar_t support with char and wchar_t being -- considered equivalent. -- [541c7556314d] -- --2007-03-26 phil <phil> -- -- * siplib/siplib.c: -- Fixed problem where lambda slots connected to QObject.destroyed() -- were cleared before the signal was emitted. -- [2ace696800c4] -- --2007-03-25 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Completed the wchar_t support. -- [14c15deefc3b] -- --2007-03-24 phil <phil> -- -- * sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c, siplib/sip.h, -- siplib/siplib.c: -- Added support for wchar_t - undocumented and certainly untested. -- [14559b49bd9d] -- --2007-03-10 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- No longer generate the forward declaration of an opaque class. It -- shouldn't be necessary and means that the class could be a C -- structure. -- [647d2f4b8561] -- --2007-03-02 phil <phil> -- -- * sipgen/lexer.l: -- SIP should now handle DOS format files on UNIX systems. -- [1935d8be814b] -- --2007-02-27 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, -- sipgen/sip.h: -- Undeprecated the -g command line option. Added the /HoldGIL/ -- annotation. -- [fbf1aaec1094] -- --2007-02-25 phil <phil> -- -- * sipgen/transform.c, siplib/siplib.c: -- Fixed the previous fix related to signatures for the cases where the -- Python and C++ signatures have different numbers of arguments. -- [66f4866a1393] -- -- * doc/sipref.txt, siplib/siplib.c: -- Included Matt Newell's fix for making sure that a sub-class -- convertor returns the most specific type available. -- [7b9b628d5c50] -- --2007-02-24 phil <phil> -- -- * doc/sipref.txt, sipgen/transform.c: -- Fixed some documentation references to Py_ssize_t. sip now takes C++ -- as well as Python signatures into account when deciding what -- interface files a class need to include. -- [ac3ecfcc08d3] -- -- * doc/sipref.txt, siplib/qtlib.c: -- Leave it to the Qt support code to release the GIL when connecting -- signals. -- [8c907b07ad8f] -- --2007-02-20 phil <phil> -- -- * siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c: -- An instance dictionary is not longer created automatically. Python -- will create it if and when it is needed. lambda slots are now -- cleaned up in the clear function rather than being left to the slot -- proxy dtor. -- [61eac95ed77e] -- -- * siplib/siplib.c: -- Fixed a bug in the implementation of /Transfer/ when the object was -- aleady owned by C++ but the owning object had been garbage -- collected. -- [4d64b0e0db86] -- --2007-02-18 phil <phil> -- -- * siplib/siplib.c: -- Fixed a bug in the clearing of reference cycles with lambda slots. -- Although the slot is visited, it is no longer cleared - that is left -- to the proxy dtor. -- [aac8236a8970] -- --2007-02-16 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c: -- Fixed a bug in the build system for QtDesigner on Windows. The -- Q_OBJECT support code now uses metaObject() rather than -- staticMetaObject because the latter is private in the ActiveQt -- classes. -- [4b8647dbb036] -- --2007-02-10 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- Added support for /TypeFlags/. Added sipFindClass() and -- sipFindNamedEnum() to the public API. -- [530b7a1aa547] -- --2007-02-06 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h: -- More changes to the Q_OBJECT support. -- [b46c77268a1c] -- --2007-02-04 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h: -- Renamed "Qt4MetaObject" to "Qt4Q_OBJECT". -- [9b8809b3f254] -- --2007-02-01 phil <phil> -- -- * sipgen/gencode.c: -- Changed the metaObject() hook so that it won't crash if the C++ -- instance has gone. -- [5241cd5c39d3] -- --2007-01-30 phil <phil> -- -- * sipgen/gencode.c: -- Changed the metaObject() hook again. -- [77da534919cb] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Changed the metaObject() hooks. -- [272f63959180] -- --2007-01-27 phil <phil> -- -- * sipgen/gencode.c: -- Changed the way the Qt support API is created so that new SIPs can -- build old PyQts. -- [15c8d8be611d] -- -- * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added the hooks to allow PyQt to build a proper meta-object when a -- new Python class is defined. -- [c82c3d1b50aa] -- --2007-01-25 phil <phil> -- -- * lib/siputils.py, siplib/qtlib.c: -- Fixed a build system bug that affected non-MinGW Windows compilers -- when building static modules. Taught the build system about the -- QtDesigner module. -- [0029d3937d59] -- --2007-01-23 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Reimplemented the support for qt_metacall() so that it is a bit -- cleaner and can't be called from Python. -- [c3701e916110] -- --2007-01-22 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c, -- siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- Added support for the QtMetaClass option. Added sipParseSignature() -- to the private Qt API. (Both of the above are needed for David -- Boddie's support for Python widgets in Qt Designer.) -- [51250dc9185b] -- --2007-01-21 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Extended the cyclic garbage collector support for lambda slots so it -- works with SIGNALs as well as PYSIGNALs. Incremented the SIP API -- version number to 3.4. -- [fcf4f2b51bd7] -- -- * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- Fixed garbage collection support for lambda slots (at the moment -- only when the slot is connected to a PYSIGNAL). -- [8bf735cda5bf] -- --2007-01-16 phil <phil> -- -- * siplib/sip.h: -- Added #undef slots to sip.h for when embedding Python 2.3 in Qt -- applications. -- [33ab2adb9d0c] -- -- * sipgen/gencode.c: -- qRegisterMetaType() is now called for every candidate class at -- module initialisation rather than when the first instance is created -- from Python. -- [a31d12e3d9c2] -- --2007-01-15 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: -- Allowed /TransferThis/ to be specified more than once. -- [e8246e9dc928] -- -- * doc/sipref.txt, lib/LICENSE.short, siplib/threads.c: -- Updated the copyright notices. Fixed a reentrancy problem in -- wrapping objects obtained from C/C++ (thanks to Giovanni Bajo for -- the fix). -- [117d2c42c517] -- --2007-01-10 phil <phil> -- -- * siplib/sip.h, siplib/siplib.c: -- Added support for __truediv__ and __itruediv__ by making them -- synonyms for __div__ and __idiv__. -- [1c6e71aeb203] -- --2007-01-07 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- Hopefully fixed a bug in the generation of the typedefs table that -- wasn't using the full name of foreign modules. -- [a193602041a2] -- --2006-12-28 phil <phil> -- -- * siplib/sip.h: -- Fixed a bug in the sipResetCppHasRef() macro that breaks the -- /TransferBack/ annotation. -- [30e9fc168db0] -- --2006-12-20 phil <phil> -- -- * lib/siputils.py: -- Fixed a MacOS specific bug in create_wrapper() in the build system. -- [34641513890f] -- -- * lib/sipdistutils.py: -- Applied a patch to sipdistutils.py from Giovanni Bajo to allow .sip -- files to be used in the "depends" argument to setup(). -- [912613b39701] -- --2006-12-16 phil <phil> -- -- * NEWS, lib/siputils.py: -- Fixed a bug in the build system that meant that lines in the top -- level mkspec file were being ignored after the last include. -- [c2ee167686b7] -- --2006-12-09 phil <phil> -- -- * lib/siputils.py: -- Fixed a MacOS build problem caused by another change to Qt installs. -- [90c588f6fa54] -- -- * NEWS, build.py: -- Updated the NEWS file. Fixed the internal build system for later -- versions of docutils. -- [4bcf93b8836e] -- --2006-12-06 phil <phil> -- -- * NEWS, siplib/qtlib.c: -- "PyQt_PyObject" is now used instead of "PyObject *". lamda functions -- can now be used as slots. -- [33493621d63e] -- --2006-11-26 phil <phil> -- -- * siplib/sip.h, siplib/siplib.c: -- Fixed an incorrect assumption that if a Python wrapper of a C++ -- owned object was being garbage collected then its Python children -- (ie. things it owns) should also be garbage collected. It may be -- that the parent is a "temporary" object (eg. the argument of a -- reimplementation of a virtual) but the children are "permanent". The -- case in PyQt is the parent argument of -- QAbstractItemDelegate.createEditor(). -- [b981a814a1b2] -- --2006-11-25 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- PEP 353 fixes from Ulli. -- [d22c558be4b9] -- -- * siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Some "char *" to "const char *" fixes from Ulli. -- [208ba44fcddc] -- --2006-11-18 phil <phil> -- -- * sipgen/transform.c: -- Fixed a broken pointer bug in the API file generation. -- [b80f4ae42e97] -- --2006-11-17 phil <phil> -- -- * sipgen/export.c, sipgen/lexer.l: -- Fixed a misleading error message when instantiating templates. Fixed -- a bug generating global functions in API files. -- [6b6804bacc4f] -- --2006-11-11 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Fixed a bug with virtual handlers when a module %Imports from two -- other (independent) modules. -- [56ca50343b62] -- --2006-11-04 phil <phil> -- -- * NEWS: -- Released as v4.5. -- [5982951360f3] [4.5] -- --2006-10-28 phil <phil> -- -- * lib/siputils.py: -- The build system now handles .prl files on MacOS. -- [25b8444de255] -- --2006-10-27 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c: -- Changed NoDefaultCopyCtor to NoDefaultCtors. Updated the NEWS file. -- [57307ed6d154] -- --2006-10-22 phil <phil> -- -- * doc/sipref.txt, lib/siputils.py, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/qtlib.c: -- A fix for configuring QtAssistant in PyQt for Qt v4.2 on MacOS. -- Added the NoDefaultCopyCtor class annotation. -- [ed57b3a6fd1c] -- --2006-10-21 phil <phil> -- -- * doc/sipref.txt, siplib/siplib.c: -- Fixed a Python 2.4/2.5 change that was missed. Added -- sip.setdeleted(). -- [2db4a119d6c6] -- --2006-10-20 phil <phil> -- -- * doc/sipref.txt, lib/siputils.py, specs/hurd-g++, specs/solaris-cc: -- Platform portability fixes from Ulli. Fix for conditional includes -- in spec files from Ulli. Qt4 module include directories are now -- searched before the main Qt4 include directory. Handle the change in -- debug libraries in Qt v4.2. -- [3f72b2b88460] -- --2006-10-15 phil <phil> -- -- * sipgen/parser.y: -- Allow virtual signals if the NoEmitters option is set. -- [6657a8d15171] -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Fixed a bug where the first argument to a global comparison operator -- was mishandled if it was a pointer rather than a reference. -- [5c5c0d5f6b65] -- --2006-10-13 phil <phil> -- -- * siplib/siplib.c: -- Improved the previous fix for the incorrect ctor exception. -- [3d9f787fedf8] -- --2006-10-08 phil <phil> -- -- * lib/siputils.py, siplib/siplib.c: -- Fixed bug where handwritten traverse and clear code wasn't being -- called for derived classes. Fixed an incorrect Python exception -- raised when a C++ exception is thrown by a ctor. The build system -- now displayed an error if a non-framework build of Python is used on -- MacOS. Untested fix for building a static module with MinGW. -- [9c60ee47e4d5] -- --2006-10-07 phil <phil> -- -- * lib/siputils.py: -- Build system fixes for Qt v4.2.0 based on a patch from Matt Newell. -- [e7f12b65d105] -- --2006-09-30 phil <phil> -- -- * lib/siputils.py: -- Fixes for building QtTest on Windows. -- [a8b3716e682a] -- --2006-09-23 phil <phil> -- -- * lib/siputils.py, sipgen/parser.y: -- Taught the build system about QtTest. Fixed a bug in the handling of -- namespaces split across multiple header files. -- [89b8c6c6b8c6] -- -- * TODO, doc/sipref.txt, siplib/siplib.c: -- Added support for hooking into the C++ dtor from Python by -- implementing __dtor__() from a patch by Jean Jacques Lecler. -- [38da61ef1711] -- -- * NEWS, doc/sipref.txt, siplib/siplib.c: -- Added sip.delete() (based on a patch from Jean Jacques Lecler) and -- sip.isdeleted(). -- [8946500be6fa] -- -- * doc/sipref.txt, sipgen/export.c, sipgen/main.c, sipgen/sip.h: -- Removed the -n flag to sip now I think I've decided how to change -- code completion in QScintilla. -- [69cb56ba58f1] -- --2006-09-22 phil <phil> -- -- * sipgen/parser.y: -- Backed out the check that abstract methods are virtual - because -- they don't have to be. -- [1c753a1e011a] -- --2006-09-17 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c: -- Added support for pure virtual dtors. Fixed a bug where abstract -- operators weren't flagging the class as being abstract. -- [867e6aa1d499] -- --2006-09-03 phil <phil> -- -- * sipgen/gencode.c, siplib/siplib.c: -- Defeated a GCC v4 warning message on generated code. -- [be5889f172fb] -- --2006-08-17 phil <phil> -- -- * sipgen/gencode.c: -- Minor code generation formatting tidyups. -- [c4397d6c3aca] -- -- * siplib/sip.h, siplib/siplib.c, specs/linux-lsb: -- Added argument type checking to sipRegisterIntTypes(). -- [aa1a3cf373d0] -- --2006-08-16 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Added sipRegisterIntTypes() to the private Qt support API so that -- PyQt4 can implement Q_ENUMS and Q_FLAGS. -- [0909d2f2b376] -- --2006-08-05 phil <phil> -- -- * lib/siputils.py: -- Added support for QAxContainer in the build system. -- [5ddf72d045fb] -- --2006-07-19 phil <phil> -- -- * lib/configure.py, lib/siputils.py, specs/hurd-g++, specs/linux-pgcc, -- specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++, -- specs/solaris-g++-64, specs/win32-icc, specs/win32-msvc, -- specs/win32-msvc.net, specs/win32-msvc2005: -- Updated the spec files from Qt v4.1.4. Added (completely untested) -- support for embedding manifests for MSVC v8. -- [db5efb4cac5b] -- --2006-07-16 phil <phil> -- -- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: -- More Python v2.5 changes. -- [d54e5c462956] -- --2006-07-15 phil <phil> -- -- * siplib/objmap.c, siplib/sip.h, siplib/siplib.c: -- The sip module will now build against Python v2.5. (The 64 bit -- changes still need to be done.) -- [00cc5cf214cf] -- --2006-07-08 phil <phil> -- -- * lib/configure.py: -- Fixed the use of sys.lib in configure.py. -- [a10f12367272] -- --2006-07-06 phil <phil> -- -- * lib/configure.py: -- configure.py uses sys.lib if it is defined (for some 64 bit Linux -- distros). -- [0dbaacd9a231] -- --2006-07-04 phil <phil> -- -- * sipgen/gencode.c: -- Always call a dtor if there is one, even if we can't see how the -- instance could have been created. -- [47bb2a6a914a] -- --2006-07-01 phil <phil> -- -- * sipgen/export.c: -- Fixed default arguments and C++ scoped names in the new API file -- handling. -- [6909ffb3bb65] -- --2006-06-30 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/export.c, sipgen/gencode.c, -- sipgen/genxml.c, sipgen/main.c, sipgen/sip.h, sipgen/sipgen.sbf: -- Added the -n command line option (possibly only temporarily). -- Changed the API generation so that it is more complete and uses -- Python types rather than C/C++ types. -- [1cd867db4c66] -- --2006-06-29 phil <phil> -- -- * lib/configure.py: -- Added sip_config_args to sipconfig.py. Added __hex__() to -- sip.voidptr. -- [d60d22ffda1c] -- -- * NEWS, doc/sipref.txt, lib/configure.py, siplib/siplib.c: -- -- [16c887e1169c] -- --2006-06-19 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- More warning fixes from Ulli. -- [4ba06471ee46] -- --2006-06-17 phil <phil> -- -- * sipgen/gencode.c: -- Changed the explicit C linkage to retain the benefit of using -- static. -- [b2f02ca5a819] -- --2006-06-13 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y: -- Signals and slots are now const char * rather than char *. -- [a43a225ba180] -- --2006-06-10 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, -- siplib/siplib.c: -- Fixed the implementation of /TransferBack/ for virtuals. Changed all -- API arguments that take a format string from char * to const char * -- for Solaris. Used explicit C linkage for all generated function -- calls when genarting C++. (May need more work in this area.) -- [2d05ea691d29] -- --2006-06-06 phil <phil> -- -- * sipgen/genxml.c: -- Changed the XML handling of opaque classes. -- [86888971690a] -- --2006-06-05 phil <phil> -- -- * sipgen/genxml.c: -- Added support for opaque classes to the XML. -- [427fc4186f14] -- --2006-06-03 phil <phil> -- -- * sipgen/gencode.c: -- More XML generation changes. -- [b204d646b580] -- --2006-05-31 phil <phil> -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: -- More XML generation changes. -- [91acee878afd] -- --2006-05-30 phil <phil> -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/parser.y, sipgen/sip.h: -- More XML generation changes. -- [7d79341cfc58] -- --2006-05-28 phil <phil> -- -- * sipgen/genxml.c: -- More XML generation changes. -- [a95f90a9f6d2] -- --2006-05-25 phil <phil> -- -- * sipgen/genxml.c, siplib/qtlib.c: -- Fixed bug disconnecting Python signals. -- [7a44ec54ef69] -- --2006-05-20 phil <phil> -- -- * sipgen/genxml.c: -- More XML generation changes. -- [7e8538e5e080] -- -- * sipgen/genxml.c, sipgen/transform.c: -- Backed out the change that treated "char" and "char *" as equivalent -- when comparing Python signatures. (The former is different to the -- latter if it appears first.) -- [f411eb8c010c] -- --2006-05-18 phil <phil> -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: -- More XML generation changes. -- [e42fe590a33c] -- --2006-05-16 phil <phil> -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h, sipgen/transform.c: -- Tightened up on detecting clashing Python signatures involving -- strings and longs. Changes to the XML file generation. -- [180930e69638] -- --2006-05-13 phil <phil> -- -- * siplib/siplib.c: -- Removed some Python API calls made after the interpreter is known to -- have gone. -- [dc80be8d888f] -- -- * siplib/siplib.c: -- Fixed a sip module bug that meant that the Python API might be -- called after the interpreter had gone. -- [a9470b7f1479] -- -- * sipgen/gencode.c: -- Fixed code generation bug with abstract operators. -- [473bd3cea296] -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h: -- Added %UnitCode. -- [2f3ad3e3a582] -- --2006-05-11 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, -- siplib/siplib.c: -- Added sipExportSymbol() and sipImportSymbol(). Bumped the API -- version number to 3.2. -- [ee671f33f9a8] -- --2006-05-08 phil <phil> -- -- * sipgen/heap.c: -- Removed (hopefully) two new warning messages. -- [a347b1964dd2] -- --2006-05-07 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h: -- Added support for %ExportedHeaderCode. -- [1fc6cbb5421c] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: -- Fixed bug in handling of virtuals with different Python and C++ -- signatures. -- [7c64bcb52e90] -- --2006-05-05 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/heap.c, -- sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Fixes for compiler warnings and a couple of minor bugs from Ulli. -- Deprecated %SIPNoEmitters and replaced it with %SIPOptions. Added -- the RegisterTypes option so that appropriate classes are registered -- with Qt automatically when needed - so PyQt4 doesn't need to -- implement qRegisterMetaType(). -- [b80581e367f3] -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: -- Fixed some compiler warnings. -- [5c4467450cbe] -- --2006-05-01 phil <phil> -- -- * sipgen/genxml.c, sipgen/transform.c: -- More work on the XML generation. -- [cb5eec12561a] -- --2006-04-30 phil <phil> -- -- * sipgen/gencode.c, sipgen/genxml.c, sipgen/main.c, sipgen/sip.h, -- sipgen/sipgen.sbf: -- Added the -m flag to generate the XML representation of the Pythonic -- API. -- [57d825e6a61f] -- --2006-04-28 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: -- Replaced long long with PY_LONG_LONG for MSVC 6. -- [19dc39dffac6] -- --2006-04-27 phil <phil> -- -- * lib/siputils.py, sipgen/parser.y: -- Fixed bug in handling multiple instances of the same namespace. The -- build system allows Apple's Python to be used if there is also a -- later python.org installation. MacOS modules are now bundles rather -- than dynamic libraries and can now be loaded by Pythons from -- python.org. Released as v4.4.3. -- [809972a88944] -- --2006-04-21 phil <phil> -- -- * sipgen/gencode.c: -- Fixed the previous const mapped type fix. -- [1a5385651af1] -- --2006-04-20 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Fixed the GUI enabled interpreter in sipconfig.create_wrapper() for -- MacOS. Fixed static const mapped types. -- [def8fea45725] -- --2006-04-18 phil <phil> -- -- * doc/sipref.txt, lib/configure.py, lib/siputils.py: -- Fixed the build system for when sys.prefix != sys.exec_prefix. -- [83449c4ab4f2] -- --2006-04-16 phil <phil> -- -- * doc/sipref.txt, lib/siputils.py: -- Added the export_all argument to the ModuleMakefile constructor of -- the build system so that exports can be handled on a per module -- basis. This is needed to get around a (not properly understood) -- problem with modules that wrap C++ exceptions. -- [89709d0957bd] -- --2006-04-15 phil <phil> -- -- * lib/siputils.py, siplib/qtlib.c, specs/hurd-g++, specs/solaris-cc: -- The build system now complains if a property is used in a spec file -- when no properties have been defined. Removed Qt specific properties -- from the solaris-cc and hurd-g++ spec files. Fixed the disconnecting -- of short-circuited signals. -- [0c4ee0a3db80] -- --2006-04-08 phil <phil> -- -- * lib/siputils.py: -- Fixed the build system to better support frameworks on MacOS. -- [864b17931a7b] -- --2006-04-07 phil <phil> -- -- * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: -- Made sure that all uses of sipMappedType * in the API are const. -- [0d3533b681e3] -- --2006-04-06 phil <phil> -- -- * lib/siputils.py: -- The sipconfig module now uses qt_data_dir (if set) to find the qmake -- spec files. -- [2f81428640de] -- --2006-04-05 phil <phil> -- -- * NEWS, TODO, sipgen/parser.y, sipgen/transform.c: -- Merged v4.4.1 into the trunk. SIP now properly detects duplicate -- Python signatures. -- [9c53b26de67b] -- --2006-04-02 phil <phil> -- -- * siplib/siplib.c: -- Fixed a regression in the handling of __dict__. -- [33a17c1ed42d] -- --2006-04-01 phil <phil> -- -- * siplib/sip.h, siplib/siplib.c: -- Make the sip module's support for long long and unsigned long long -- conditional on HAVE_LONG_LONG so that it will build with older -- compilers. -- [e655c6a8a748] -- --2006-03-29 phil <phil> -- -- * NEWS, sipgen/gencode.c: -- Removed extraneous brackets in generated code. -- [a64c7cdb2ee9] -- --2006-03-28 phil <phil> -- -- * sipgen/gencode.c: -- Fixed some C++ code wrongly appearing in C modules. -- [7e80756dae4d] -- --2006-03-25 phil <phil> -- -- * NEWS, sipgen/parser.y: -- Fixed a regression in the handling of namespaces. -- [7a22e2205ba9] -- --2006-03-24 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c: -- Documented sipModule and sipModuleDict as being available to -- %PostInitialisationCode. Released as v4.4. -- [8acdabcf6a08] [4.4] -- --2006-03-21 phil <phil> -- -- * doc/sipref.txt, lib/sipdistutils.py, siplib/sip.h, siplib/siplib.c: -- Applied patch for sipdistuils.py from Giovanni. Documented -- sipConvertFromNamedEnum(). Wrapped types now define __reduce_ex__ -- and __reduce__ attributes set to None so that pickle knows they -- can't be pickled. -- [94694c47891e] -- --2006-03-20 phil <phil> -- -- * siplib/siplib.c: -- Fixed the special handling of the __dict__ attribute so that it -- doesn't apply to Python sub-classes of wrapped classes. -- [6835562cf526] -- --2006-03-19 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, -- siplib/siplib.c, siplib/threads.c: -- Documentation tweaks. Generate sipSelf for ctor %MethodCode now that -- it's existence is documented. Fixed a second place where slots with -- no underlying C++ instance might be invoked. -- [ba7b9c9371e1] -- --2006-03-17 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Removed __unicode__ from the documentation. Fixed a bug with virtual -- methods that returned a reference to a type that had -- %ConvertToTypeCode. -- [6dc8ddba43ed] -- --2006-03-15 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c: -- Removal of a now redundant error message. Fixed a leaking weak -- reference object. Another attempt at fixing calling slots where the -- underlying C++ instance has disappeared. -- [8f7b10cbc372] -- --2006-03-14 phil <phil> -- -- * lib/siputils.py, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, -- sipgen/transform.c: -- More const void * fixes. Fixed bug with building debug modules using -- MinGW. Fixed feature where too many names were being generated from -- imported modules. SIP now handles nested imports properly and -- doesn't require all modules to be explcitly imported. -- [f7b3774f05bf] -- --2006-03-13 phil <phil> -- -- * build.py, doc/sipref.txt, lib/README.Fink, lib/siputils.py, -- sipgen/parser.y: -- Build system changes to support MacOS properly. Fixed crash when -- %TypeHeaderCode was used outside of a scope. -- [fc9cf357273b] -- --2006-03-12 phil <phil> -- -- * TODO, sipgen/gencode.c: -- Fixed calls to sipConvertFromVoidPtr() with a const argument. -- [1d20b7ddf5b7] -- --2006-03-11 phil <phil> -- -- * lib/siputils.py: -- Minor changes to sipconfig.py for PyQt4's pyqtconfig.py. -- [5c35ed3d0e90] -- -- * lib/siputils.py, sipgen/parser.y: -- Fixed handling of generating code for the version before the first -- %Timeline version. -- [3ffe3ddaa678] -- --2006-03-08 phil <phil> -- -- * siplib/qtlib.c: -- Fixed a bug in the handling of QVariant * and PyObject * signal -- arguments. -- [c04f60565120] -- --2006-03-06 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a regression in handling of enums defined in an imported -- module. -- [305954bab24d] -- -- * sipgen/gencode.c: -- Fixed bug in handling the typedef void hack. -- [f5ec81faf924] -- --2006-03-05 phil <phil> -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, -- siplib/siplib.c: -- Fixed bug with abstract classes with %ConvertToSubClassCode. -- Reimplemented namspaces split across modules so that there is a -- single namespace implemented in the original module. -- [e04e87b70f29] -- -- * sipgen/transform.c: -- Fixed missing #include for classes that aren't an immediate parent. -- [5f28954fe478] -- --2006-03-04 phil <phil> -- -- * sipgen/gencode.c: -- Fixed a regression in the wrappers around protected methods. -- [65fc03434a16] -- -- * siplib/qtlib.c: -- Suppressed the exception about the underlying object disappearing -- when calling a Python slot. This is because we don't automatically -- disconnect Python slots. -- [5a90239b615c] -- --2006-03-02 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, -- siplib/siplib.c: -- Added sipLong_AsUnsignedLong() to work around a bug in -- PyLong_AsUnsignedLong(). -- [ae6bdfc7d774] -- --2006-02-26 phil <phil> -- -- * sipgen/gencode.c: -- Fixed bug in handling class arguments with /Out/ specified. -- [a39d9d9a8d5a] -- -- * lib/siputils.py, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y: -- Recognise NULL as a synonym for 0. Some build system changes for -- Cygwin. Fixed the deletion of temporary instances in catch clauses. -- [1b9e30dd13fb] -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c, -- siplib/sip.h: -- SIP now treats signed char as a type distinct from char. -- [01500c239ace] -- -- * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, -- siplib/sip.h, siplib/siplib.c: -- Tore up the recent changes for handling cross module namespaces. A -- namespace is now defined in each module it is used. That makes -- things easier to implement and should be less confusing for the -- user. The API and data structures should now be stable. -- [02277356e12c] -- --2006-02-25 phil <phil> -- -- * sipgen/parser.y: -- Fixed bug in handling of variables introduced in the previous -- commit. -- [aadd2d0daa3e] -- -- * sipgen/gencode.c, sipgen/parser.y: -- Added support for variables defined in namespaces defined in other -- modules. -- [a1210912bb6c] -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Completed the support for enums in namespaces originating in other -- modules. -- [590dbde2e463] -- --2006-02-21 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: -- Added the 't' and 'u' format characters to sipParseArgs(), -- sipParseResult(), sipCallMethod() and sipBuildResult(). unsigned and -- unsigned short are now implemented as Python long objects instead of -- integer objects. -- [f8c047d7f8df] -- --2006-02-19 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: -- Implemented disconnects for universal signals. -- [6cd1a4dc4e73] -- --2006-02-18 phil <phil> -- -- * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: -- Implemented support for signal arguments of type PyObject *. -- Implemented support for shortcircuited Python signals (ie. just the -- name without arguments) that will only work with other -- shortcircuited Python signals and Python slots - bit don't need to -- do any conversions between Python and C++. -- [6748c4088281] -- --2006-02-17 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Fixed bug in the implementation of /TransferBack/ in virtual -- handlers. Fixed bug in methods with a void result and a single /Out/ -- argument that was a mapped type or class. -- [f6486c697de5] -- --2006-02-16 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Fixed bug in generating code that called sipCallMethod(). Updated -- the documentation where it was still referring to the legacy type -- convertors. -- [acdd622dba74] -- -- * sipgen/gencode.c: -- Fixed bug in generated legacy mapped type convertor names. -- [8424561f0d54] -- --2006-02-15 phil <phil> -- -- * sipgen/gencode.c: -- Fixed bug that could easily result in deleting non-heap instances. -- [9ab37451f8f0] -- --2006-02-13 phil <phil> -- -- * doc/sipref.txt, lib/siputils.py: -- Fixes to PythonModuleMakefile. -- [684799b183d5] -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, -- siplib/sip.h, siplib/sipint.h, siplib/siplib.c: -- Renamed the new sipCheckConvert functions to sipForceConvert -- functions. Added the 'B', 'C' and 'D' format character to -- sipBuildResult() and sipCallMethod(). Removed the 'L' format -- character from sipBuildResult() and sipCallMethod(). Added -- sipConvertFromInstance(), sipConvertFromNewInstance() and -- sipConvertFromMappedType(). -- [f6324b7c7ab1] -- --2006-02-12 phil <phil> -- -- * NEWS, TODO, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- siplib/sip.h, siplib/siplib.c, siplib/threads.c: -- Overhauled how %ConvertToTypeCode should be written - detail below. -- (Still need to overhaul %ConvertFromTypeCode.) Added -- sipCanConvertToInstance(), sipConvertToInstance(), -- sipCheckConvertToInstance() and sipReleaseInstance(). Added -- sipCanConvertToMappedType(), sipConvertToMappedType(), -- sipCheckConvertToMappedType(), sipReleaseMappedType() and -- sipFindMappedType(). Changed the order of the arguments to -- sipConvertToCppTransfer(). Added the 'C' and 'D' format characters -- to sipParseResult(). Changed the meaning of the 'J' and 'M' format -- characters in sipParseArgs(). Removed the sipConvertTo_*() -- functions. Removed sipConvertToCppTransfer(). Took all of the None -- handling out of %ConvertToTypeCode. -- [7122e755a332] -- --2006-01-28 phil <phil> -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Fixed the support for __hash__. -- [f57b38d29839] -- --2006-01-26 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, -- sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c, siplib/sip.h, -- siplib/sipint.h: -- Added %SIPNoEmitters to stop SIP generating signal emitters for a -- module and any module that imports it. Changed the signal/slot -- support so that Python signals can be implemented with proxies. -- [ebc0499b0e99] -- --2006-01-20 phil <phil> -- -- * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: -- Fixed a bug in sipTransferTo() that caused some objects to be -- garbage collected while ownership was being transferred. Check that -- abstract methods are only ever called as bound methods. -- [7f66705a98e7] -- --2006-01-19 phil <phil> -- -- * doc/sipref.txt, siplib/siplib.c: -- Updated the documentation for sipConnectRx(). The __dict__ attribute -- of a wrapper type now returns a regular dictionary rather than a -- proxy (because PyDict_Next() doesn't iterate over proxies). -- [b7b57265c54c] -- --2006-01-14 phil <phil> -- -- * siplib/siplib.c: -- Fixed the searching of signal types. -- [d24efdbe5952] -- --2006-01-11 phil <phil> -- -- * siplib/siplib.c: -- The previous fix wasn't quite so trivial. -- [a598de0cf451] -- -- * siplib/siplib.c: -- Added missing function prototype. -- [5d6320a5e0a1] -- --2006-01-10 phil <phil> -- -- * NEWS, doc/sipref.txt, lib/siputils.py, sipgen/gencode.c, -- sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, -- siplib/siplib.c: -- Fixed code generation bugs in new virtual handling code that was -- triggered by PyKDE. Build system changes for MinGW. Added support -- for constrained bools. Generate code to wrap static enum instances -- with inline code rather than through tables (as is done with class -- instances) for Windows. -- [48a76f76e9b8] -- --2006-01-09 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y: -- Changed the signatures of sipForceConvertTo_*() and -- sipConvertFrom_*() back to their SIP 4.3 versions, deprecated them, -- and introduced the Transfer variants. -- [422ea1e3fee9] -- -- * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py: -- More build system changes for Windows. Added the platform macro to -- sipconfig.py. The default Windows platform Python 2.4 and later is -- now win32-msvc.net rather than win32-msvc. -- [e9d83bea0e38] -- --2006-01-08 phil <phil> -- -- * lib/configure.py, lib/siputils.py: -- Various build system changes needed by PyQt4 on Windows. -- [dcbf196c14bb] -- --2006-01-07 phil <phil> -- -- * lib/LICENSE.short, lib/configure.py, lib/sipdistutils.py, -- lib/siputils.py, specs/aix-g++, specs/aix-g++-64, specs/aix-xlc, -- specs/aix-xlc-64, specs/darwin-g++, specs/freebsd-g++, -- specs/freebsd-g++34, specs/freebsd-g++40, specs/freebsd-icc, specs -- /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-g++, -- specs/hpux-g++-64, specs/hpuxi-acc, specs/hpuxi-acc-32, specs/hpuxi- -- acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64, -- specs/irix-g++, specs/irix-g++-64, specs/linux-cxx, specs/linux- -- ecc-64, specs/linux-g++, specs/linux-g++-32, specs/linux-g++-64, -- specs/linux-icc, specs/linux-kcc, specs/linux-kylix, specs/linux- -- pgcc, specs/lynxos-g++, specs/macx-g++, specs/macx-mwerks, specs -- /macx-pbuilder, specs/macx-xcode, specs/macx-xlc, specs/netbsd-g++, -- specs/openbsd-g++, specs/qnx-g++, specs/sco-cc, specs/sco-g++, specs -- /solaris-cc, specs/solaris-cc-64, specs/solaris-g++, -- specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs -- /unixware-cc, specs/unixware-g++, specs/win32-borland, -- specs/win32-g++, specs/win32-icc, specs/win32-msvc, -- specs/win32-msvc.net, specs/win32-msvc2005: -- Updated the spec files from Qt v4.1. Added support for the $$() -- method of accessing environment variables in qmake spec files. -- sipdistutils.py fix from Giovanni. Changes to the build system for -- the slightly different macro names on Windows. -- [5030a64bab73] -- --2006-01-04 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/transform.c: -- Added support for the /NoDerived/ annotation. -- [496e87667614] -- --2006-01-03 phil <phil> -- -- * siplib/siplib.c: -- Fixed bug in handling of delayed dtors. -- [9ad8378e1bbd] -- --2006-01-02 phil <phil> -- -- * sipgen/transform.c: -- Fixed another bug with the new handling of virtual function calls -- (where re-implementations from another module weren't picked up). -- [b4a5f97c4acd] -- --2005-12-30 phil <phil> -- -- * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: -- Fixed bugs with the new handling of virtuals that caused recursions. -- [e15093e5d260] -- --2005-12-29 phil <phil> -- -- * lib/siputils.py: -- Taught the build system about the QtAssistantClient library. -- [ef92ee748d4c] -- -- * sipgen/gencode.c: -- Fixed bugs related to global operators with an enum as the first -- argument. -- [2379d714c099] -- --2005-12-28 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, -- siplib/siplib.c: -- Added sipConvertToCppTransfer(). Changed the signatures for the type -- convertor functions. Added the 'L' format character to -- sipBuildResult() and sipCallMethod(). -- [2bf4d76eefe2] -- --2005-12-27 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, -- sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: -- Added support for the /DelayDtor/ class annotation to control the -- order of dtor calls when the interpreter exits. Fixed bugs with cast -- operators. -- [5a03f38f92c7] -- --2005-12-26 phil <phil> -- -- * doc/sipref.txt, sipgen/gencode.c: -- Fixed a documentation bug. Slightly changed the declaration of the -- sipProtectVirt wrappers. -- [bc65dd63ac7d] -- --2005-12-24 phil <phil> -- -- * NEWS, doc/sipref.txt, sipgen/gencode.c: -- Class methods called as class.method(self, ...) is now equivalent to -- this->class::method(...). Class methods called as self.method(...) -- is now equivalent to this->method(...). Introduced sipSelfWasArg and -- the sipProtectVirt wrappers in order to support the above. -- [d49dc239a2d7] -- --2005-12-22 phil <phil> -- -- * siplib/qtlib.c, siplib/siplib.c: -- SIP no longer complains if a slot to be disconnected isn't actually -- connected (and hopes Qt will then behave appropriately). -- [7e93c92ec9b9] -- --2005-12-19 phil <phil> -- -- * sipgen/parser.y: -- Backed out the recent change that ignored abstract specifications if -- the methods wasn't virtual. -- [72f23df36c23] -- -- * doc/sipref.txt, lib/siputils.py: -- Various changes to the build system to better support Qt v4. -- [0a793291a2db] -- --2005-12-18 phil <phil> -- -- * NEWS, doc/sipref.txt, lib/siputils.py: -- Added the PythonModuleMakefile class and create_wrapper() function -- to the build system. -- [70cd55448b1c] -- --2005-12-15 phil <phil> -- -- * .repoman, NEWS, build.py, doc/sipref.txt, sipgen/main.c, -- siplib/qtlib.c, siplib/qtlib.cpp, siplib/sip.h: -- Internally renamed qtlib.cpp to qtlib.c. Small changes to the -- internal build system caused by the move to SVN. Removed SIP_BUILD -- from sip.h. -- [efe612146497] -- --2005-12-14 phil <phil> -- -- * .repoman, NEWS, TODO, build.py, custom/custom.c, custom/customw.c, -- custom/mkcustom.py, doc/default.css, doc/sipref.txt, lib/LICENSE, -- lib/LICENSE.short, lib/README, lib/README.Fink, lib/README.HP-UX, -- lib/THANKS, lib/configure.py, lib/sipdistutils.py, lib/siputils.py, -- sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c, -- sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf, -- sipgen/transform.c, siplib/bool.cpp, siplib/objmap.c, -- siplib/qtlib.cpp, siplib/sip.h, siplib/sipint.h, siplib/siplib.c, -- siplib/siplib.sbf, siplib/threads.c, specs/aix-g++, -- specs/aix-g++-64, specs/aix-xlc, specs/aix-xlc-64, specs/bsdi-g++, -- specs/cygwin-g++, specs/darwin-g++, specs/dgux-g++, -- specs/freebsd-g++, specs/freebsd-g++34, specs/freebsd-icc, specs -- /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-cc, -- specs/hpux-g++, specs/hpux-g++-64, specs/hpuxi-acc-32, specs/hpuxi- -- acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64, specs/irix- -- cc-o32, specs/irix-g++, specs/linux-cxx, specs/linux-ecc-64, -- specs/linux-g++, specs/linux-g++-64, specs/linux-icc, specs/linux- -- kcc, specs/linux-kylix, specs/linux-pgcc, specs/lynxos-g++, -- specs/macx-g++, specs/macx-mwerks, specs/macx-pbuilder, specs/macx- -- xlc, specs/netbsd-g++, specs/openbsd-g++, specs/qnx-g++, specs -- /reliant-cds, specs/reliant-cds-64, specs/sco-cc, specs/sco-g++, -- specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++, -- specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs -- /unixware-cc, specs/unixware-g++, specs/win32-borland, -- specs/win32-g++, specs/win32-icc, specs/win32-msvc, -- specs/win32-msvc.net, specs/win32-msvc2005, specs/win32-watcom: -- Initial import of sip from CVS -- [1fd77e66a56d] -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py sip/configure.py ---- ./sip-4.19.12.orig/configure.py 2018-07-05 05:55:19.000000000 -0400 -+++ sip/configure.py 2018-09-18 18:12:23.643053242 -0400 -@@ -30,8 +30,8 @@ - - - # Initialise the globals. --sip_version = 0x04130c --sip_version_str = "4.19.12" -+sip_version = 0x04ffff -+sip_version_str = "4.255.255" - py_version = sys.hexversion >> 8 - py_platform = sys.platform - plat_py_site_dir = None -@@ -46,6 +46,7 @@ - sip_inc_dir = '' - sip_root_dir = '' - sip_module_dir = '' -+sip_module_dest_dir = '' - sip_sip_dir = '' - pyi_dir = '' - sysroot = '' -@@ -185,7 +186,7 @@ - siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir) - - if not opts.no_module: -- siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dir)) -+ siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir)) - - if opts.pyi: - siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir) -@@ -302,30 +303,35 @@ - cfg.set_build_macros(macros) - - all_installs = [] -- installs = [] -+ top_installs = [] -+ gen_installs = [] - subdirs = [] - - if not opts.no_tools: - subdirs.append('sipgen') -- installs.append( -+ top_installs.append( - (["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")], - cfg.sip_root_dir)) -+ gen_installs.append( -+ (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) - - if not opts.no_module: - subdirs.append('siplib') - -- all_installs += installs -+ all_installs.extend(top_installs) -+ all_installs.extend(gen_installs) - - # The command to run to generate the dist-info directory. - mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)), - 'mk_distinfo.py') -- distinfo_dir = os.path.join(cfg.sip_root_dir, -+ distinfo_dir = os.path.join(cfg.sip_module_dir, - '%s-%s.dist-info' % (sip_module_name.replace('.', '_'), - sip_version_str)) -- run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % (sys.executable, -- mk_distinfo, distinfo_dir) - - if opts.use_qmake: -+ run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % ( -+ sys.executable, mk_distinfo, distinfo_dir) -+ - sipconfig.inform("Creating top level .pro file...") - - pro = open("sip.pro", "w") -@@ -333,8 +339,9 @@ - pro.write("TEMPLATE = subdirs\n") - pro.write("SUBDIRS = %s\n" % " ".join(subdirs)) - -- if installs: -- files, path = installs -+ if top_installs: -+ # There will only be one element. -+ files, path = top_installs[0] - pro.write("\n") - pro.write("build_system.files = %s\n" % " ".join(files)) - pro.write("build_system.path = %s\n" % quote(path)) -@@ -343,22 +350,25 @@ - if opts.distinfo: - pro.write("\n") - pro.write("distinfo.extra = %s\n" % run_mk_distinfo) -- pro.write("distinfo.path = %s\n" % quote(cfg.sip_root_dir)) -+ pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir)) - pro.write("INSTALLS += distinfo\n") - - pro.close() - else: -+ run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % ( -+ sys.executable, mk_distinfo, distinfo_dir) -+ - sipconfig.inform("Creating top level Makefile...") - - # Note that mk_distinfo.py won't exist if we are building from the - # repository. - if opts.distinfo and os.path.isfile(mk_distinfo): -- installs.append((run_mk_distinfo, None)) -+ top_installs.append((run_mk_distinfo, None)) - - sipconfig.ParentMakefile( - configuration=cfg, - subdirs=subdirs, -- installs=installs -+ installs=top_installs - ).generate() - - if opts.use_qmake: -@@ -390,6 +400,14 @@ - pro.write("HEADERS = %s\n" % " ".join( - [qmake_quote(h) for h in headers])) - -+ if gen_installs: -+ # There will only be one element. -+ files, path = gen_installs[0] -+ pro.write("\n") -+ pro.write("sip_h.files = %s\n" % " ".join(files)) -+ pro.write("sip_h.path = %s\n" % quote(path)) -+ pro.write("INSTALLS += sip_h\n") -+ - pro.close() - else: - sipconfig.inform("Creating sip code generator Makefile...") -@@ -399,6 +417,7 @@ - build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"), - dir="sipgen", - install_dir=os.path.dirname(cfg.sip_bin), -+ installs=gen_installs, - console=1, - warnings=1, - universal=opts.universal, -@@ -406,7 +425,7 @@ - deployment_target=opts.deployment_target - ).generate() - -- # The code generator installs. -+ # The implied code generator installs. - if not opts.no_tools: - sip_dir, sip_exe = os.path.split(cfg.sip_bin) - if sys.platform == 'win32': -@@ -417,18 +436,18 @@ - # The module installs. - module_installs=[] - -- if not opts.no_tools: -- module_installs.append( -- (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) -- - if opts.pyi: - module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir)) - - all_installs.extend(module_installs) - - if not opts.no_module: -- mod_ext = '.pyd' if sys.platform == 'win32' else '.so' -- all_installs.append(('sip' + mod_ext, cfg.sip_module_dir)) -+ if sys.platform == 'win32': -+ mod = 'sip.lib' if opts.static else 'sip.pyd' -+ else: -+ mod = 'libsip.a' if opts.static else 'sip.so' -+ -+ all_installs.append((mod, sip_module_dest_dir)) - - if opts.use_qmake: - sipconfig.inform("Creating sip module .pro file...") -@@ -453,7 +472,11 @@ - - if sip_module_name != 'sip': - pro.write("\n") -- pro.write('DEFINES += SIP_MODULE_NAME=\\\\\\"%s\\\\\\"\n' % sip_module_name) -+ pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name) -+ -+ base_name = sip_module_name.split('.')[-1] -+ if base_name != 'sip': -+ pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name) - - if not opts.static: - # These only need to be correct for Windows. -@@ -485,7 +508,7 @@ - """ % (debug_suffix, link_lib_dir)) - - pro.write("\n") -- pro.write("target.path = %s\n" % cfg.sip_module_dir) -+ pro.write("target.path = %s\n" % sip_module_dest_dir) - pro.write("INSTALLS += target\n") - - if opts.pyi: -@@ -494,12 +517,6 @@ - pro.write("sip_pyi.path = %s\n" % pyi_dir) - pro.write("INSTALLS += sip_pyi\n") - -- if not opts.no_tools: -- pro.write("\n") -- pro.write("sip_h.files = sip.h\n") -- pro.write("sip_h.path = %s\n" % cfg.sip_inc_dir) -- pro.write("INSTALLS += sip_h\n") -- - c_sources = get_sources("siplib", "*.c") - cpp_sources = get_sources("siplib", "*.cpp") - pro.write("\n") -@@ -521,7 +538,7 @@ - configuration=cfg, - build_file=os.path.join(src_dir, "siplib", "siplib.sbf"), - dir="siplib", -- install_dir=cfg.sip_module_dir, -+ install_dir=sip_module_dest_dir, - installs=module_installs, - console=1, - warnings=1, -@@ -533,8 +550,11 @@ - ) - - if sip_module_name != 'sip': -- makefile.DEFINES.append( -- 'SIP_MODULE_NAME=\\"%s\\"' % sip_module_name) -+ makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name) -+ -+ base_name = sip_module_name.split('.')[-1] -+ if base_name != 'sip': -+ makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name) - - if src_dir != build_dir: - src_siplib_dir = os.path.join(src_dir, "siplib") -@@ -908,7 +928,7 @@ - global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir - global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir - global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir -- global pyi_dir -+ global sip_module_dest_dir, sip_module_name, pyi_dir - - # Set defaults. - sip_bin_dir = plat_bin_dir -@@ -941,7 +961,9 @@ - if opts.destdir is not None: - sip_root_dir = opts.destdir - -- global sip_module_name -+ # The module directory might have been set in a configuration file. -+ if not sip_module_dir: -+ sip_module_dir = sip_root_dir - - sip_module_name = opts.sip_module - -@@ -949,10 +971,10 @@ - - if len(module_path) > 1: - del module_path[-1] -- module_path.insert(0, sip_root_dir) -- sip_module_dir = os.path.join(*module_path) -+ module_path.insert(0, sip_module_dir) -+ sip_module_dest_dir = os.path.join(*module_path) - else: -- sip_module_dir = sip_root_dir -+ sip_module_dest_dir = sip_module_dir - - # Override from the command line. - if opts.platform is not None: -@@ -970,7 +992,7 @@ - if opts.pyidir is not None: - pyi_dir = opts.pyidir - else: -- pyi_dir = sip_module_dir -+ pyi_dir = sip_module_dest_dir - - # Get the platform specific macros for building. - macros = siputils.parse_build_macros( -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py.in sip/configure.py.in ---- ./sip-4.19.12.orig/configure.py.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/configure.py.in 2018-09-18 18:00:57.923048048 -0400 -@@ -0,0 +1,1031 @@ -+# This script handles the SIP configuration and generates the Makefiles. -+# -+# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> -+# -+# This file is part of SIP. -+# -+# This copy of SIP is licensed for use under the terms of the SIP License -+# Agreement. See the file LICENSE for more details. -+# -+# This copy of SIP may also used under the terms of the GNU General Public -+# License v2 or v3 as published by the Free Software Foundation which can be -+# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. -+# -+# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ -+ -+import sys -+import os -+import glob -+import optparse -+from distutils import sysconfig -+ -+try: -+ from importlib import invalidate_caches -+except ImportError: -+ invalidate_caches = lambda: None -+ -+import siputils -+ -+ -+# Initialise the globals. -+sip_version = 0x@RM_HEXVERSION@ -+sip_version_str = "@RM_RELEASE@" -+py_version = sys.hexversion >> 8 -+py_platform = sys.platform -+plat_py_site_dir = None -+plat_py_inc_dir = None -+plat_py_venv_inc_dir = None -+plat_py_conf_inc_dir = None -+plat_py_lib_dir = None -+plat_sip_dir = None -+plat_bin_dir = None -+platform_specs = [] -+sip_bin_dir = '' -+sip_inc_dir = '' -+sip_root_dir = '' -+sip_module_dir = '' -+sip_module_dest_dir = '' -+sip_sip_dir = '' -+pyi_dir = '' -+sysroot = '' -+src_dir = os.path.dirname(os.path.abspath(__file__)) -+sip_module_name = None -+build_platform = None -+ -+# Constants. -+DEFAULT_MACOSX_ARCH = 'i386 ppc' -+MACOSX_SDK_DIRS = ('/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs', '/Developer/SDKs') -+ -+# The names of build macros extracted from the platform specific configuration -+# files. -+build_macro_names = [ -+ "DEFINES", "CONFIG", -+ "CC", -+ "CFLAGS", -+ "CFLAGS_RELEASE", "CFLAGS_DEBUG", -+ "CFLAGS_CONSOLE", "CFLAGS_SHLIB", "CFLAGS_APP", "CFLAGS_THREAD", -+ "CFLAGS_MT", "CFLAGS_MT_DBG", "CFLAGS_MT_DLL", "CFLAGS_MT_DLLDBG", -+ "CFLAGS_EXCEPTIONS_ON", "CFLAGS_EXCEPTIONS_OFF", -+ "CFLAGS_RTTI_ON", "CFLAGS_RTTI_OFF", -+ "CFLAGS_STL_ON", "CFLAGS_STL_OFF", -+ "CFLAGS_WARN_ON", "CFLAGS_WARN_OFF", -+ "CHK_DIR_EXISTS", "COPY", -+ "CXX", -+ "CXXFLAGS", -+ "CXXFLAGS_RELEASE", "CXXFLAGS_DEBUG", -+ "CXXFLAGS_CONSOLE", "CXXFLAGS_SHLIB", "CXXFLAGS_APP", "CXXFLAGS_THREAD", -+ "CXXFLAGS_MT", "CXXFLAGS_MT_DBG", "CXXFLAGS_MT_DLL", "CXXFLAGS_MT_DLLDBG", -+ "CXXFLAGS_EXCEPTIONS_ON", "CXXFLAGS_EXCEPTIONS_OFF", -+ "CXXFLAGS_RTTI_ON", "CXXFLAGS_RTTI_OFF", -+ "CXXFLAGS_STL_ON", "CXXFLAGS_STL_OFF", -+ "CXXFLAGS_WARN_ON", "CXXFLAGS_WARN_OFF", -+ "DEL_FILE", -+ "EXTENSION_SHLIB", "EXTENSION_PLUGIN", -+ "INCDIR", "INCDIR_X11", "INCDIR_OPENGL", -+ "LIBS_CORE", "LIBS_GUI", "LIBS_NETWORK", "LIBS_OPENGL", "LIBS_WEBKIT", -+ "LINK", "LINK_SHLIB", "AIX_SHLIB", "LINK_SHLIB_CMD", -+ "LFLAGS", "LFLAGS_CONSOLE", "LFLAGS_CONSOLE_DLL", "LFLAGS_DEBUG", -+ "LFLAGS_DLL", -+ "LFLAGS_PLUGIN", "LFLAGS_RELEASE", "LFLAGS_SHLIB", "LFLAGS_SONAME", -+ "LFLAGS_THREAD", "LFLAGS_WINDOWS", "LFLAGS_WINDOWS_DLL", "LFLAGS_OPENGL", -+ "LIBDIR", "LIBDIR_X11", "LIBDIR_OPENGL", -+ "LIBS", "LIBS_CONSOLE", "LIBS_RT", -+ "LIBS_RTMT", "LIBS_THREAD", "LIBS_WINDOWS", "LIBS_X11", -+ "MAKEFILE_GENERATOR", -+ "MKDIR", -+ "RPATH", "LFLAGS_RPATH", -+ "AR", "RANLIB", "LIB", "STRIP" -+] -+ -+ -+def show_platforms(): -+ """Display the different platform/compilers. -+ """ -+ sys.stdout.write(""" -+The following platform/compiler configurations are supported: -+ -+""") -+ -+ platform_specs.sort() -+ sys.stdout.write(siputils.format(", ".join(platform_specs), leftmargin=2)) -+ sys.stdout.write("\n\n") -+ -+ -+def show_macros(): -+ """Display the different build macros. -+ """ -+ sys.stdout.write(""" -+The following options may be used to adjust the compiler configuration: -+ -+""") -+ -+ build_macro_names.sort() -+ sys.stdout.write(siputils.format(", ".join(build_macro_names), leftmargin=2)) -+ sys.stdout.write("\n\n") -+ -+ -+def set_build_platform(): -+ """ Initialise the build platform. """ -+ -+ global build_platform -+ -+ # Set the platform specific default specification. -+ platdefaults = { -+ "aix": "aix-xlc", -+ "bsd": "bsdi-g++", -+ "cygwin": "cygwin-g++", -+ "darwin": "macx-g++", -+ "dgux": "dgux-g++", -+ "freebsd": "freebsd-g++", -+ "gnu": "hurd-g++", -+ "hp-ux": "hpux-acc", -+ "irix": "irix-cc", -+ "linux": "linux-g++", -+ "lynxos": "lynxos-g++", -+ "netbsd": "netbsd-g++", -+ "openbsd": "openbsd-g++", -+ "openunix": "unixware-cc", -+ "osf1": "tru64-cxx", -+ "qnx": "qnx-g++", -+ "reliantunix": "reliant-cds", -+ "sco_sv": "sco-cc", -+ "sinix": "reliant-cds", -+ "sunos5": "solaris-cc", -+ "ultrix": "ultrix-g++", -+ "unix_sv": "unixware-g++", -+ "unixware": "unixware-cc" -+ } -+ -+ build_platform = "none" -+ -+ if py_platform == "win32": -+ if py_version >= 0x030500: -+ build_platform = "win32-msvc2015" -+ elif py_version >= 0x030300: -+ build_platform = "win32-msvc2010" -+ elif py_version >= 0x020600: -+ build_platform = "win32-msvc2008" -+ elif py_version >= 0x020400: -+ build_platform = "win32-msvc.net" -+ else: -+ build_platform = "win32-msvc" -+ else: -+ for pd in list(platdefaults.keys()): -+ if py_platform[:len(pd)] == pd: -+ build_platform = platdefaults[pd] -+ break -+ -+ -+def inform_user(): -+ """ Tell the user the option values that are going to be used. """ -+ -+ if not opts.no_tools: -+ siputils.inform("The SIP code generator will be installed in %s." % sip_bin_dir) -+ siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir) -+ -+ if not opts.no_module: -+ siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir)) -+ -+ if opts.pyi: -+ siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir) -+ -+ if opts.static: -+ siputils.inform("The %s module will be built as a static library." % sip_module_name) -+ -+ siputils.inform("The default directory to install .sip files in is %s." % sip_sip_dir) -+ -+ if opts.use_qmake is None: -+ siputils.inform("The platform/compiler configuration is %s." % build_platform) -+ -+ if opts.arch: -+ siputils.inform("MacOS/X binaries will be created for %s." % (", ".join(opts.arch.split()))) -+ -+ if opts.universal: -+ siputils.inform("MacOS/X universal binaries will be created using %s." % opts.universal) -+ -+ if opts.deployment_target: -+ siputils.inform("MacOS/X deployment target is %s." % opts.deployment_target) -+ -+ -+def set_platform_directories(): -+ """ Initialise the global variables relating to platform-specific -+ directories. -+ """ -+ global plat_py_site_dir, plat_py_inc_dir, plat_py_venv_inc_dir -+ global plat_py_conf_inc_dir, plat_bin_dir, plat_py_lib_dir, plat_sip_dir -+ -+ # We trust distutils for some stuff. -+ plat_py_site_dir = sysconfig.get_python_lib(plat_specific=1) -+ plat_py_inc_dir = sysconfig.get_python_inc() -+ plat_py_venv_inc_dir = sysconfig.get_python_inc(prefix=sys.prefix) -+ plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename()) -+ -+ if sys.platform == "win32": -+ bin_dir = sys.exec_prefix -+ -+ try: -+ # Python v3.3 and later. -+ base_prefix = sys.base_prefix -+ -+ if sys.exec_prefix != sys.base_exec_prefix: -+ bin_dir += '\\Scripts' -+ -+ except AttributeError: -+ try: -+ # virtualenv for Python v2. -+ base_prefix = sys.real_prefix -+ bin_dir += '\\Scripts' -+ -+ except AttributeError: -+ # We can't detect the base prefix in Python v3 prior to v3.3. -+ base_prefix = sys.prefix -+ -+ plat_py_lib_dir = base_prefix + "\\libs" -+ plat_bin_dir = bin_dir -+ plat_sip_dir = sys.prefix + "\\sip" -+ else: -+ lib_dir = sysconfig.get_python_lib(plat_specific=1, standard_lib=1) -+ -+ plat_py_lib_dir = lib_dir + "/config" -+ plat_bin_dir = sys.exec_prefix + "/bin" -+ plat_sip_dir = sys.prefix + "/share/sip" -+ -+ -+def create_config(module, template, macros): -+ """Create the SIP configuration module so that it can be imported by build -+ scripts. -+ -+ module is the module file name. -+ template is the template file name. -+ macros is the dictionary of build macros. -+ """ -+ siputils.inform("Creating %s..." % module) -+ -+ content = { -+ "sip_config_args": sys.argv[1:], -+ "sip_version": sip_version, -+ "sip_version_str": sip_version_str, -+ "platform": build_platform, -+ "sip_bin": os.path.join(sip_bin_dir, "sip"), -+ "sip_inc_dir": sip_inc_dir, -+ "sip_root_dir": sip_root_dir, -+ "sip_module_dir": sip_module_dir, -+ "default_bin_dir": plat_bin_dir, -+ "default_mod_dir": plat_py_site_dir, -+ "default_sip_dir": sip_sip_dir, -+ "py_version": py_version, -+ "py_inc_dir": plat_py_inc_dir, -+ "py_conf_inc_dir": plat_py_conf_inc_dir, -+ "py_lib_dir": plat_py_lib_dir, -+ "universal": opts.universal, -+ "arch": opts.arch, -+ "deployment_target": opts.deployment_target, -+ "qt_framework": 0 -+ } -+ -+ siputils.create_config_module(module, template, content, macros) -+ -+ -+def create_makefiles(macros): -+ """Create the Makefiles. -+ -+ macros is the dictionary of platform specific build macros. -+ """ -+ # Bootstrap. Make sure we get the right one. -+ sys.path.insert(0, os.path.curdir) -+ invalidate_caches() -+ import sipconfig -+ -+ cfg = sipconfig.Configuration() -+ -+ cfg.set_build_macros(macros) -+ -+ all_installs = [] -+ top_installs = [] -+ gen_installs = [] -+ subdirs = [] -+ -+ if not opts.no_tools: -+ subdirs.append('sipgen') -+ top_installs.append( -+ (["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")], -+ cfg.sip_root_dir)) -+ gen_installs.append( -+ (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) -+ -+ if not opts.no_module: -+ subdirs.append('siplib') -+ -+ all_installs.extend(top_installs) -+ all_installs.extend(gen_installs) -+ -+ # The command to run to generate the dist-info directory. -+ mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)), -+ 'mk_distinfo.py') -+ distinfo_dir = os.path.join(cfg.sip_module_dir, -+ '%s-%s.dist-info' % (sip_module_name.replace('.', '_'), -+ sip_version_str)) -+ -+ if opts.use_qmake: -+ run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % ( -+ sys.executable, mk_distinfo, distinfo_dir) -+ -+ sipconfig.inform("Creating top level .pro file...") -+ -+ pro = open("sip.pro", "w") -+ -+ pro.write("TEMPLATE = subdirs\n") -+ pro.write("SUBDIRS = %s\n" % " ".join(subdirs)) -+ -+ if top_installs: -+ # There will only be one element. -+ files, path = top_installs[0] -+ pro.write("\n") -+ pro.write("build_system.files = %s\n" % " ".join(files)) -+ pro.write("build_system.path = %s\n" % quote(path)) -+ pro.write("INSTALLS += build_system\n") -+ -+ if opts.distinfo: -+ pro.write("\n") -+ pro.write("distinfo.extra = %s\n" % run_mk_distinfo) -+ pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir)) -+ pro.write("INSTALLS += distinfo\n") -+ -+ pro.close() -+ else: -+ run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % ( -+ sys.executable, mk_distinfo, distinfo_dir) -+ -+ sipconfig.inform("Creating top level Makefile...") -+ -+ # Note that mk_distinfo.py won't exist if we are building from the -+ # repository. -+ if opts.distinfo and os.path.isfile(mk_distinfo): -+ top_installs.append((run_mk_distinfo, None)) -+ -+ sipconfig.ParentMakefile( -+ configuration=cfg, -+ subdirs=subdirs, -+ installs=top_installs -+ ).generate() -+ -+ if opts.use_qmake: -+ sipconfig.inform("Creating sip code generator .pro file...") -+ -+ pro = open(os.path.join("sipgen", "sipgen.pro"), "w") -+ -+ pro.write("TEMPLATE = app\n") -+ pro.write("TARGET = sip\n") -+ pro.write("CONFIG -= qt app_bundle\n") -+ pro.write("CONFIG += warn_on exceptions_off console %s\n" % ( -+ ("debug" if opts.debug else "release"))) -+ -+ pro.write("\n") -+ pro.write("# Work around QTBUG-39300.\n") -+ pro.write("CONFIG -= android_install\n") -+ -+ pro.write("\n") -+ pro.write("target.path = %s\n" % os.path.dirname(cfg.sip_bin)) -+ pro.write("INSTALLS += target\n") -+ -+ c_sources = get_sources("sipgen", "*.c") -+ pro.write("\n") -+ pro.write("SOURCES = %s\n" % " ".join( -+ [qmake_quote(s) for s in c_sources])) -+ -+ headers = get_sources("sipgen", "*.h") -+ pro.write("\n") -+ pro.write("HEADERS = %s\n" % " ".join( -+ [qmake_quote(h) for h in headers])) -+ -+ if gen_installs: -+ # There will only be one element. -+ files, path = gen_installs[0] -+ pro.write("\n") -+ pro.write("sip_h.files = %s\n" % " ".join(files)) -+ pro.write("sip_h.path = %s\n" % quote(path)) -+ pro.write("INSTALLS += sip_h\n") -+ -+ pro.close() -+ else: -+ sipconfig.inform("Creating sip code generator Makefile...") -+ -+ sipconfig.ProgramMakefile( -+ configuration=cfg, -+ build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"), -+ dir="sipgen", -+ install_dir=os.path.dirname(cfg.sip_bin), -+ installs=gen_installs, -+ console=1, -+ warnings=1, -+ universal=opts.universal, -+ arch=opts.arch, -+ deployment_target=opts.deployment_target -+ ).generate() -+ -+ # The implied code generator installs. -+ if not opts.no_tools: -+ sip_dir, sip_exe = os.path.split(cfg.sip_bin) -+ if sys.platform == 'win32': -+ sip_exe += '.exe' -+ -+ all_installs.append((sip_exe, sip_dir)) -+ -+ # The module installs. -+ module_installs=[] -+ -+ if opts.pyi: -+ module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir)) -+ -+ all_installs.extend(module_installs) -+ -+ if not opts.no_module: -+ if sys.platform == 'win32': -+ mod = 'sip.lib' if opts.static else 'sip.pyd' -+ else: -+ mod = 'libsip.a' if opts.static else 'sip.so' -+ -+ all_installs.append((mod, sip_module_dest_dir)) -+ -+ if opts.use_qmake: -+ sipconfig.inform("Creating sip module .pro file...") -+ -+ pro = open(os.path.join("siplib", "siplib.pro"), "w") -+ -+ pro.write("TEMPLATE = lib\n") -+ pro.write("TARGET = sip\n") -+ pro.write("CONFIG -= qt\n") -+ pro.write("CONFIG += warn_on exceptions_off %s %s\n" % ( -+ ("staticlib" if opts.static else "plugin plugin_bundle"), -+ ("debug" if opts.debug else "release"))) -+ -+ pro.write("\n") -+ pro.write("# Work around QTBUG-39300.\n") -+ pro.write("CONFIG -= android_install\n") -+ -+ pro.write("\n") -+ pro.write("INCLUDEPATH += %s\n" % cfg.py_inc_dir) -+ if cfg.py_conf_inc_dir != cfg.py_inc_dir: -+ pro.write("INCLUDEPATH += %s\n" % cfg.py_conf_inc_dir) -+ -+ if sip_module_name != 'sip': -+ pro.write("\n") -+ pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name) -+ -+ base_name = sip_module_name.split('.')[-1] -+ if base_name != 'sip': -+ pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name) -+ -+ if not opts.static: -+ # These only need to be correct for Windows. -+ debug_suffix = "_d" if opts.debug else "" -+ link_lib_dir = quote("-L" + cfg.py_lib_dir) -+ -+ pro.write(""" -+win32 { -+ PY_MODULE = sip%s.pyd -+ PY_MODULE_SRC = $(DESTDIR_TARGET) -+ -+ LIBS += %s -+} else { -+ PY_MODULE = sip.so -+ -+ macx { -+ PY_MODULE_SRC = $(TARGET).plugin/Contents/MacOS/$(TARGET) -+ -+ QMAKE_LFLAGS += "-undefined dynamic_lookup" -+ } else { -+ PY_MODULE_SRC = $(TARGET) -+ } -+} -+ -+QMAKE_POST_LINK = $(COPY_FILE) $$PY_MODULE_SRC $$PY_MODULE -+ -+target.CONFIG = no_check_exist -+target.files = $$PY_MODULE -+""" % (debug_suffix, link_lib_dir)) -+ -+ pro.write("\n") -+ pro.write("target.path = %s\n" % sip_module_dest_dir) -+ pro.write("INSTALLS += target\n") -+ -+ if opts.pyi: -+ pro.write("\n") -+ pro.write("sip_pyi.files = sip.pyi\n") -+ pro.write("sip_pyi.path = %s\n" % pyi_dir) -+ pro.write("INSTALLS += sip_pyi\n") -+ -+ c_sources = get_sources("siplib", "*.c") -+ cpp_sources = get_sources("siplib", "*.cpp") -+ pro.write("\n") -+ pro.write("SOURCES = %s\n" % " ".join( -+ [qmake_quote(s) for s in c_sources + cpp_sources])) -+ -+ headers = get_sources("siplib", "*.h") -+ pro.write("\n") -+ pro.write("HEADERS = %s\n" % " ".join( -+ [qmake_quote(h) for h in headers])) -+ -+ pro.close() -+ else: -+ sipconfig.inform("Creating sip module Makefile...") -+ -+ build_dir = os.getcwd() -+ -+ makefile = sipconfig.ModuleMakefile( -+ configuration=cfg, -+ build_file=os.path.join(src_dir, "siplib", "siplib.sbf"), -+ dir="siplib", -+ install_dir=sip_module_dest_dir, -+ installs=module_installs, -+ console=1, -+ warnings=1, -+ static=opts.static, -+ debug=opts.debug, -+ universal=opts.universal, -+ arch=opts.arch, -+ deployment_target=opts.deployment_target -+ ) -+ -+ if sip_module_name != 'sip': -+ makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name) -+ -+ base_name = sip_module_name.split('.')[-1] -+ if base_name != 'sip': -+ makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name) -+ -+ if src_dir != build_dir: -+ src_siplib_dir = os.path.join(src_dir, "siplib") -+ makefile.extra_include_dirs.append(src_siplib_dir) -+ makefile.extra_source_dirs.append(src_siplib_dir) -+ -+ makefile.generate() -+ -+ # Create the file containing all installed files. -+ if opts.distinfo: -+ installed = open('installed.txt', 'w') -+ -+ for sources, dst in all_installs: -+ if not isinstance(sources, (list, tuple)): -+ sources = [sources] -+ -+ for src in sources: -+ installed.write( -+ os.path.join(dst, os.path.basename(src)) + '\n') -+ -+ installed.close() -+ -+ -+def get_sources(sources_dir, ext): -+ """ Get the quoted files with the specified extension from a directory. """ -+ -+ return [quote(f) for f in glob.glob(os.path.join(src_dir, sources_dir, ext))] -+ -+ -+def quote(path): -+ """ Return a path that is quoted if necessary. """ -+ -+ if ' ' in path: -+ path = '"' + path + '"' -+ -+ return path -+ -+ -+def qmake_quote(path): -+ """ Return a path quoted for qmake if it contains spaces. path is the -+ path. -+ """ -+ -+ if ' ' in path: -+ path = '$$quote(%s)' % path -+ -+ return path -+ -+ -+# Look out for recursive definitions. -+_extrapolating = [] -+ -+def _get_configuration_value(config, name, default=None): -+ """ Get a configuration value while extrapolating. """ -+ -+ value = config.get(name) -+ if value is None: -+ if default is None: -+ siputils.error("Configuration file references non-existent name '%s'." % name) -+ -+ return default -+ -+ parts = value.split('%(', 1) -+ while len(parts) == 2: -+ prefix, tail = parts -+ -+ parts = tail.split(')', 1) -+ if len(parts) != 2: -+ siputils.error("Configuration file contains unterminated extrapolated name '%s'." % tail) -+ -+ xtra_name, suffix = parts -+ -+ if xtra_name in _extrapolating: -+ siputils.error("Configuration file contains a recursive reference to '%s'." % xtra_name) -+ -+ _extrapolating.append(xtra_name) -+ xtra_value = _get_configuration_value(config, xtra_name) -+ _extrapolating.pop() -+ -+ value = prefix + xtra_value + suffix -+ -+ parts = value.split('%(', 1) -+ -+ return value -+ -+ -+def update_from_configuration_file(config_file): -+ """ Update a number of globals from values read from a configuration file. -+ """ -+ -+ siputils.inform("Reading configuration from %s..." % config_file) -+ -+ config = {} -+ -+ # Read the file into the dict. -+ cfg = open(config_file) -+ line_nr = 0 -+ -+ for l in cfg: -+ line_nr += 1 -+ -+ # Strip comments and blank lines. -+ l = l.split('#')[0].strip() -+ if l == '': -+ continue -+ -+ parts = l.split('=', 1) -+ if len(parts) == 2: -+ name = parts[0].strip() -+ value = parts[1].strip() -+ else: -+ name = value = '' -+ -+ if name == '' or value == '': -+ siputils.error("%s:%d: Invalid line." % (config_file, line_nr)) -+ -+ config[name] = value -+ last_name = name -+ -+ cfg.close() -+ -+ # Enforce the presets. -+ version = siputils.version_to_string(py_version).split('.') -+ config['py_major'] = version[0] -+ config['py_minor'] = version[1] -+ config['sysroot'] = sysroot -+ -+ # Override the relevant values. -+ global py_platform, plat_py_conf_inc_dir, plat_py_inc_dir, plat_py_lib_dir -+ global sip_bin_dir, sip_inc_dir, sip_module_dir, sip_sip_dir -+ -+ py_platform = _get_configuration_value(config, 'py_platform', py_platform) -+ plat_py_inc_dir = _get_configuration_value(config, 'py_inc_dir', -+ plat_py_inc_dir) -+ plat_py_lib_dir = _get_configuration_value(config, 'py_pylib_dir', -+ plat_py_lib_dir) -+ -+ # The pyconfig.h directory defaults to the Python.h directory. -+ plat_py_conf_inc_dir = _get_configuration_value(config, 'py_conf_inc_dir', -+ plat_py_inc_dir) -+ -+ sip_bin_dir = _get_configuration_value(config, 'sip_bin_dir', sip_bin_dir) -+ sip_module_dir = _get_configuration_value(config, 'sip_module_dir', -+ sip_module_dir) -+ -+ # Note that this defaults to any 'py_inc_dir' specified in the -+ # configuration file. -+ sip_inc_dir = _get_configuration_value(config, 'sip_inc_dir', -+ plat_py_inc_dir) -+ -+ # Note that this is only used when creating sipconfig.py. -+ sip_sip_dir = _get_configuration_value(config, 'sip_sip_dir', sip_sip_dir) -+ -+ -+def create_optparser(sdk_dir): -+ """Create the parser for the command line. -+ """ -+ def store_abspath(option, opt_str, value, parser): -+ setattr(parser.values, option.dest, os.path.abspath(value)) -+ -+ def store_abspath_dir(option, opt_str, value, parser): -+ if not os.path.isdir(value): -+ raise optparse.OptionValueError("'%s' is not a directory" % value) -+ setattr(parser.values, option.dest, os.path.abspath(value)) -+ -+ def store_abspath_file(option, opt_str, value, parser): -+ if not os.path.isfile(value): -+ raise optparse.OptionValueError("'%s' is not a file" % value) -+ setattr(parser.values, option.dest, os.path.abspath(value)) -+ -+ def store_version(option, opt_str, value, parser): -+ version = siputils.version_from_string(value) -+ if version is None: -+ raise optparse.OptionValueError( -+ "'%s' is not a valid version number" % value) -+ setattr(parser.values, option.dest, version) -+ -+ p = optparse.OptionParser(usage="python %prog [opts] [macro=value] " -+ "[macro+=value]", version=sip_version_str) -+ -+ # Note: we don't use %default to be compatible with Python 2.3. -+ p.add_option("-k", "--static", action="store_true", default=False, -+ dest="static", help="build the SIP module as a static library") -+ p.add_option("-p", "--platform", action="store", type="string", -+ metavar="PLATFORM", dest="platform", help="the platform/compiler " -+ "configuration [default: %s]" % build_platform) -+ p.add_option("-u", "--debug", action="store_true", default=False, -+ help="build with debugging symbols") -+ p.add_option("--sip-module", action="store", default="sip", type="string", -+ metavar="NAME", dest="sip_module", help="the package.module name " -+ "of the sip module [default: sip]") -+ p.add_option("--configuration", dest='config_file', type='string', -+ action='callback', callback=store_abspath_file, metavar="FILE", -+ help="FILE contains the target configuration") -+ p.add_option("--target-py-version", dest='target_py_version', -+ type='string', action='callback', callback=store_version, -+ metavar="VERSION", -+ help="the major.minor version of the target Python [default: " -+ "%s]" % siputils.version_to_string(py_version, parts=2)) -+ p.add_option("--sysroot", dest='sysroot', type='string', action='callback', -+ callback=store_abspath_dir, metavar="DIR", -+ help="DIR is the target system root directory") -+ p.add_option("--no-module", action="store_true", default=False, -+ dest="no_module", help="disable the installation of the sip " -+ "module [default: enabled]") -+ p.add_option("--no-tools", action="store_true", default=False, -+ dest="no_tools", help="disable the building of the code generator " -+ "and the installation of the build system [default: enabled]") -+ p.add_option("--use-qmake", action="store_true", default=False, -+ dest="use_qmake", help="generate qmake .pro files instead of " -+ "Makefiles") -+ -+ if sys.platform == 'darwin': -+ # Get the latest SDK to use as the default. -+ sdks = glob.glob(sdk_dir + '/MacOSX*.sdk') -+ if len(sdks) > 0: -+ sdks.sort() -+ _, default_sdk = os.path.split(sdks[-1]) -+ else: -+ default_sdk = 'MacOSX10.4u.sdk' -+ -+ g = optparse.OptionGroup(p, title="MacOS X Configuration") -+ g.add_option("--arch", action="append", default=[], dest="arch", -+ choices=["i386", "x86_64", "ppc"], -+ help="build for architecture ARCH") -+ g.add_option("--deployment-target", action="store", default='', -+ metavar="VERSION", dest="deployment_target", -+ help="set the value of the MACOSX_DEPLOYMENT_TARGET " -+ "environment variable in generated Makefiles") -+ g.add_option("-n", "--universal", action="store_true", default=False, -+ dest="universal", -+ help="build the SIP code generator and module as universal " -+ "binaries") -+ g.add_option("-s", "--sdk", action="store", default=default_sdk, -+ type="string", metavar="SDK", dest="sdk", -+ help="the name of the SDK used when building universal " -+ "binaries [default: %s]" % default_sdk) -+ p.add_option_group(g) -+ -+ # Querying. -+ g = optparse.OptionGroup(p, title="Query") -+ g.add_option("--show-platforms", action="store_true", default=False, -+ dest="show_platforms", help="show the list of supported " -+ "platform/compiler configurations") -+ g.add_option("--show-build-macros", action="store_true", default=False, -+ dest="show_build_macros", help="show the list of supported build " -+ "macros") -+ p.add_option_group(g) -+ -+ # Installation. -+ g = optparse.OptionGroup(p, title="Installation") -+ g.add_option("-b", "--bindir", action="callback", type="string", -+ metavar="DIR", dest="sipbindir", callback=store_abspath, -+ help="where the SIP code generator will be installed [default: " -+ "%s]" % plat_bin_dir) -+ g.add_option("-d", "--destdir", action="callback", type="string", -+ metavar="DIR", dest="destdir", callback=store_abspath, -+ help="where the SIP module will be installed [default: " -+ "%s]" % plat_py_site_dir) -+ g.add_option("-e", "--incdir", action="callback", type="string", -+ metavar="DIR", dest="sipincdir", callback=store_abspath, -+ help="where the SIP header file will be installed [default: " -+ "%s]" % plat_py_venv_inc_dir) -+ g.add_option("-v", "--sipdir", action="callback", type="string", -+ metavar="DIR", dest="sipsipdir", callback=store_abspath, -+ help="where .sip files are normally installed [default: " -+ "%s]" % plat_sip_dir) -+ g.add_option("--no-dist-info", action="store_false", default=True, -+ dest="distinfo", -+ help="do not install the dist-info directory") -+ g.add_option("--no-stubs", "--no-pyi", action="store_false", default=True, -+ dest="pyi", -+ help="do not install the sip.pyi stub file") -+ g.add_option("--stubsdir", "--pyidir", action="callback", type="string", -+ metavar="DIR", dest="pyidir", callback=store_abspath, -+ help="where the sip.pyi stub file will be installed [default: " -+ "%s]" % plat_py_site_dir) -+ p.add_option_group(g) -+ -+ return p -+ -+ -+def main(argv): -+ """Create the configuration module module. -+ -+ argv is the list of command line arguments. -+ """ -+ siputils.inform("This is SIP %s for Python %s on %s." % (sip_version_str, sys.version.split()[0], sys.platform)) -+ -+ global py_version, build_platform -+ -+ if py_version < 0x020300: -+ siputils.error("This version of SIP requires Python v2.3 or later.") -+ -+ # Basic initialisation. -+ set_platform_directories() -+ set_build_platform() -+ -+ # Build up the list of valid specs. -+ for s in os.listdir(os.path.join(src_dir, "specs")): -+ platform_specs.append(s) -+ -+ # Determine the directory containing the default OS/X SDK. -+ if sys.platform == 'darwin': -+ for sdk_dir in MACOSX_SDK_DIRS: -+ if os.path.isdir(sdk_dir): -+ break -+ else: -+ sdk_dir = MACOSX_SDK_DIRS[0] -+ else: -+ sdk_dir = '' -+ -+ # Parse the command line. -+ global opts -+ -+ p = create_optparser(sdk_dir) -+ opts, args = p.parse_args() -+ -+ # Override defaults that affect subsequent configuration. -+ if opts.target_py_version is not None: -+ py_version = opts.target_py_version -+ -+ if opts.sysroot is not None: -+ global sysroot -+ sysroot = opts.sysroot -+ -+ # Make sure MacOS specific options get initialised. -+ if sys.platform != 'darwin': -+ opts.universal = '' -+ opts.arch = [] -+ opts.sdk = '' -+ opts.deployment_target = '' -+ -+ # Handle the query options. -+ if opts.show_platforms or opts.show_build_macros: -+ if opts.show_platforms: -+ show_platforms() -+ -+ if opts.show_build_macros: -+ show_macros() -+ -+ sys.exit() -+ -+ # Convert the list 'arch' option to a string. Multiple architectures -+ # imply a universal binary. -+ if len(opts.arch) > 1: -+ opts.universal = True -+ -+ opts.arch = ' '.join(opts.arch) -+ -+ # Convert the boolean 'universal' option to a string. -+ if opts.universal: -+ if '/' in opts.sdk: -+ opts.universal = os.path.abspath(opts.sdk) -+ else: -+ opts.universal = sdk_dir + '/' + opts.sdk -+ -+ if not os.path.isdir(opts.universal): -+ siputils.error("Unable to find the SDK directory %s. Use the --sdk flag to specify the name of the SDK or its full path." % opts.universal) -+ -+ if opts.arch == '': -+ opts.arch = DEFAULT_MACOSX_ARCH -+ else: -+ opts.universal = '' -+ -+ # No sip module also implies no stubs. -+ if opts.no_module: -+ opts.pyi = False -+ -+ # Apply the overrides from any configuration file. -+ global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir -+ global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir -+ global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir -+ global sip_module_dest_dir, sip_module_name, pyi_dir -+ -+ # Set defaults. -+ sip_bin_dir = plat_bin_dir -+ sip_inc_dir = plat_py_venv_inc_dir -+ sip_root_dir = plat_py_site_dir -+ sip_sip_dir = plat_sip_dir -+ -+ if opts.config_file is not None: -+ update_from_configuration_file(opts.config_file) -+ elif sysroot != '': -+ def apply_sysroot(d): -+ if d.startswith(sys.prefix): -+ d = sysroot + d[len(sys.prefix):] -+ -+ return d -+ -+ plat_bin_dir = apply_sysroot(plat_bin_dir) -+ plat_py_conf_inc_dir = apply_sysroot(plat_py_conf_inc_dir) -+ plat_py_inc_dir = apply_sysroot(plat_py_inc_dir) -+ plat_py_lib_dir = apply_sysroot(plat_py_lib_dir) -+ plat_py_site_dir = apply_sysroot(plat_py_site_dir) -+ plat_sip_dir = apply_sysroot(plat_sip_dir) -+ -+ sip_bin_dir = apply_sysroot(sip_bin_dir) -+ sip_inc_dir = apply_sysroot(sip_inc_dir) -+ sip_root_dir = apply_sysroot(sip_root_dir) -+ sip_sip_dir = apply_sysroot(sip_sip_dir) -+ -+ # Fix the name of the sip module. -+ if opts.destdir is not None: -+ sip_root_dir = opts.destdir -+ -+ # The module directory might have been set in a configuration file. -+ if not sip_module_dir: -+ sip_module_dir = sip_root_dir -+ -+ sip_module_name = opts.sip_module -+ -+ module_path = sip_module_name.split(".") -+ -+ if len(module_path) > 1: -+ del module_path[-1] -+ module_path.insert(0, sip_module_dir) -+ sip_module_dest_dir = os.path.join(*module_path) -+ else: -+ sip_module_dest_dir = sip_module_dir -+ -+ # Override from the command line. -+ if opts.platform is not None: -+ build_platform = opts.platform -+ -+ if opts.sipbindir is not None: -+ sip_bin_dir = opts.sipbindir -+ -+ if opts.sipincdir is not None: -+ sip_inc_dir = opts.sipincdir -+ -+ if opts.sipsipdir is not None: -+ sip_sip_dir = opts.sipsipdir -+ -+ if opts.pyidir is not None: -+ pyi_dir = opts.pyidir -+ else: -+ pyi_dir = sip_module_dest_dir -+ -+ # Get the platform specific macros for building. -+ macros = siputils.parse_build_macros( -+ os.path.join(src_dir, "specs", build_platform), build_macro_names, -+ args) -+ -+ if macros is None: -+ siputils.error("Unsupported macro name specified. Use the --show-build-macros flag to see a list of supported macros.") -+ sys.exit(2) -+ -+ # Tell the user what's been found. -+ inform_user() -+ -+ # Install the configuration module. -+ create_config("sipconfig.py", os.path.join(src_dir, "siputils.py"), -+ macros) -+ -+ # Create the Makefiles. -+ create_makefiles(macros) -+ -+ -+############################################################################### -+# The script starts here. -+############################################################################### -+ -+if __name__ == "__main__": -+ try: -+ main(sys.argv) -+ except SystemExit: -+ raise -+ except: -+ sys.stderr.write( -+"""An internal error occured. Please report all the output from the program, -+including the following traceback, to support@riverbankcomputing.com. -+""") -+ raise -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/METADATA.in sip/METADATA.in ---- ./sip-4.19.12.orig/METADATA.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/METADATA.in 2018-09-18 17:52:23.267544161 -0400 -@@ -0,0 +1,81 @@ -+Metadata-Version: 1.1 -+Name: PyQt5_sip -+Version: @RB_VERSION@ -+Summary: Python extension module support for PyQt5 -+Home-page: https://www.riverbankcomputing.com/software/sip/ -+Author: Riverbank Computing Limited -+Author-email: info@riverbankcomputing.com -+Platform: UNIX -+Platform: OS X -+Platform: Windows -+Platform: iOS -+Platform: Android -+ -+SIP - A Python Extension Module Generator for C and C++ Libraries -+================================================================= -+ -+What is SIP? -+------------ -+ -+One of the features of Python that makes it so powerful is the ability to take -+existing libraries, written in C or C++, and make them available as Python -+extension modules. Such extension modules are often called bindings for the -+library. -+ -+SIP is a tool that makes it very easy to create Python bindings for C and C++ -+libraries. It was originally developed to create PyQt, the Python bindings for -+the Qt toolkit, but can be used to create bindings for any C or C++ library. -+ -+SIP comprises a code generator and a Python module. The code generator -+processes a set of specification files and generates C or C++ code which is -+then compiled to create the bindings extension module. The Python module -+provides support functions to the automatically generated code. Normally a -+package containing SIP generated bindings includes a private copy of the -+Python module. -+ -+The specification files contain a description of the interface of the C or C++ -+library, i.e. the classes, methods, functions and variables. The format of a -+specification file is almost identical to a C or C++ header file, so much so -+that the easiest way of creating a specification file is to edit the -+corresponding header file. -+ -+SIP makes it easy to exploit existing C or C++ libraries in a productive -+interpretive programming environment. SIP also makes it easy to take a Python -+application (maybe a prototype) and selectively implement parts of the -+application (maybe for performance reasons) in C or C++. -+ -+ -+Author -+------ -+ -+SIP is copyright (c) Riverbank Computing Limited. Its homepage is -+https://www.riverbankcomputing.com/software/sip/. -+ -+Support may be obtained from the PyQt mailing list at -+https://www.riverbankcomputing.com/mailman/listinfo/pyqt/. -+ -+ -+License -+------- -+ -+SIP is released under the GPL v2, GPL v3 licenses, and under a license similar -+to the BSD license. -+ -+ -+Installation -+------------ -+ -+SIP source packages can be dowloaded from -+https://www.riverbankcomputing.com/software/sip/download/. -+ -+Wheels containing the private copy of the Python module for PyQt5 for 32 and -+64-bit Windows, 64-bit macOS and 64-bit Linux can be installed from PyPI:: -+ -+ pip3 install PyQt5_sip -+ -+ -+Documentation -+------------- -+ -+The documentation for the latest release can be found -+`here <http://pyqt.sourceforge.net/Docs/sip4/>`__. -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/mk_distinfo.py sip/mk_distinfo.py ---- ./sip-4.19.12.orig/mk_distinfo.py 2018-07-04 12:00:06.000000000 -0400 -+++ sip/mk_distinfo.py 1969-12-31 19:00:00.000000000 -0500 -@@ -1,120 +0,0 @@ --# This script handles the creation of the PEP 376 .dist-info directory for a --# package. --# --# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> --# --# This script is distributed under the terms of the GNU General Public License --# v3 as published by the Free Software Foundation. --# --# This script is supplied WITHOUT ANY WARRANTY; without even the implied --# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -- -- --import base64 --import hashlib --import os --import shutil --import sys -- -- --def error(message): -- """ Display an error message and terminate. """ -- -- sys.stderr.write(message + '\n') -- sys.exit(1) -- -- --# Parse the command line. --if len(sys.argv) != 4: -- error("usage: {0} prefix dist-info installed".format(sys.argv[0])) -- --prefix_dir = sys.argv[1] --distinfo_dir = sys.argv[2] --installed_fn = sys.argv[3] -- --# Read the list of installed files. --installed_f = open(installed_fn) --installed = installed_f.read().strip().split('\n') --installed_f.close() -- --# The prefix directory corresponds to DESTDIR or INSTALL_ROOT. --real_distinfo_dir = prefix_dir + distinfo_dir -- --# Remove any existing dist-info directory and create an empty one. --if os.path.exists(real_distinfo_dir): -- try: -- shutil.rmtree(real_distinfo_dir) -- except: -- error("unable to delete existing {0}".format(real_distinfo_dir)) -- --try: -- os.mkdir(real_distinfo_dir) --except: -- error("unable to create {0}".format(real_distinfo_dir)) -- --# Create the INSTALLER file. We pretend that pip was the installer. --installer_fn = os.path.join(distinfo_dir, 'INSTALLER') --installer_f = open(prefix_dir + installer_fn, 'w') --installer_f.write('pip\n') --installer_f.close() -- --installed.append(installer_fn) -- --# Create the METADATA file. --METADATA = '''Metadata-Version: 1.1 --Name: {0} --Version: {1} --''' -- --distinfo_path, distinfo_base = os.path.split(distinfo_dir) --pkg_name, version = os.path.splitext(distinfo_base)[0].split('-') -- --metadata_fn = os.path.join(distinfo_dir, 'METADATA') --metadata_f = open(prefix_dir + metadata_fn, 'w') --metadata_f.write(METADATA.format(pkg_name, version)) --metadata_f.close() -- --installed.append(metadata_fn) -- --# Create the RECORD file. --record_fn = os.path.join(distinfo_dir, 'RECORD') --record_f = open(prefix_dir + record_fn, 'w') -- --for name in installed: -- native_name = prefix_dir + name.replace('/', os.sep) -- if os.path.isdir(native_name): -- all_fns = [] -- -- for root, dirs, files in os.walk(native_name): -- for f in files: -- all_fns.append(os.path.join(root, f).replace(os.sep, '/')) -- -- if '__pycache__' in dirs: -- dirs.remove('__pycache__') -- else: -- all_fns = [prefix_dir + name] -- -- for fn in all_fns: -- real_distinfo_path = prefix_dir + distinfo_path -- -- if fn.startswith(real_distinfo_path): -- fn_name = fn[len(real_distinfo_path) + 1:].replace('\\', '/') -- elif fn.startswith(prefix_dir + sys.prefix): -- fn_name = os.path.relpath( -- fn, real_distinfo_path).replace('\\', '/') -- else: -- fn_name = fn[len(prefix_dir):] -- -- fn_f = open(fn, 'rb') -- data = fn_f.read() -- fn_f.close() -- -- digest = base64.urlsafe_b64encode( -- hashlib.sha256(data).digest()).rstrip(b'=').decode('ascii') -- -- record_f.write( -- '{0},sha256={1},{2}\n'.format(fn_name, digest, len(data))) -- --record_f.write('{0}/RECORD,,\n'.format(distinfo_base)) -- --record_f.close() -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/rb-product sip/rb-product ---- ./sip-4.19.12.orig/rb-product 1969-12-31 19:00:00.000000000 -0500 -+++ sip/rb-product 2018-09-18 17:52:23.269544132 -0400 -@@ -0,0 +1 @@ -+sip -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/Roadmap.rst sip/Roadmap.rst ---- ./sip-4.19.12.orig/Roadmap.rst 1969-12-31 19:00:00.000000000 -0500 -+++ sip/Roadmap.rst 2018-09-18 17:52:23.268544146 -0400 -@@ -0,0 +1,75 @@ -+SIP v5 Roadmap -+============== -+ -+The next major release of SIP will be v5 and is currently being planned. -+ -+The major focus of v5 will be to: -+ -+- eliminate inconsistencies in the syntax of specification files -+ -+- fill in some gaps in the C/C++ support -+ -+- restructure, refactor and rewrite the code as appropriate to ensure that it -+ is easy to test, maintain and enhance over the long term. -+ -+There is no plan to introduce any significant new functionality. -+ -+Any feedback on the roadmap is very welcome. -+ -+ -+Migration from SIP v4 to v5 -+--------------------------- -+ -+SIP v4.19.x will be the final series of SIP v4 releases. All features that -+will be removed in SIP v5 will trigger a deprecation warning. These will be -+Use of the old syntax will trigger deprecation warning messages. These will be -+disabled by default and will be enabled by passing the ``-w`` command line -+option to the code generator. -+ -+A set of specification files that does not trigger any deprecation warnings -+with SIP v4.19.x should work unchanged with SIP v5. -+ -+ -+Roadmap -+------- -+ -+Here we list specific changes that are planned. Note that no changes are -+planned for the ``sip`` extension module. -+ -+- The syntax of directives will be revised to follow a standard pattern that -+ supports arguments and sub-directives in a consistent manner. -+ -+- All directives will behave consistently when enclosed in ``%If``/``%End`` -+ blocks. -+ -+- Support will be added for fixed sized arrays of any type. -+ -+- Support for optionally detecting overflows when converting from Python -+ integers to C/C++ types will be investigated. -+ -+- Invalid annotations will trigger an error message rather than being silently -+ ignored. -+ -+- Error messages will be improved and will always include a reference to the -+ originating file and line number. -+ -+- Support for the generation of QScintilla API files will be removed. A -+ utility to create these files from the XML export file will be added to -+ QScintilla. -+ -+- The code generator's ``-I`` command line option will support Windows style -+ path names. -+ -+- The code generator may be extended using plugins. -+ -+- All PyQt specific support will be removed and implemented in appropriate -+ plugins that will be distributed as part of PyQt. -+ -+- The design of the code generator will allow for the implementation of plugins -+ to support generating bindings for languages other than Python. -+ -+- The code generator will be reimplemented using Python v3. It will be able to -+ be used as a standalone application or a package. -+ -+- The build system will be removed. SIP itself will be distributed as a -+ ``distutils`` package. -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/export.c sip/sipgen/export.c ---- ./sip-4.19.12.orig/sipgen/export.c 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sipgen/export.c 2018-09-24 13:12:20.671276115 -0400 -@@ -1,7 +1,7 @@ - /* - * The XML and API file generator module for SIP. - * -- * Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com> -+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> - * - * This file is part of SIP. - * -@@ -34,32 +34,34 @@ - - static void apiEnums(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp); - static void apiVars(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp); --static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, -- int sec, FILE *fp); --static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -- overDef *od, int sec, FILE *fp); -+static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, -+ FILE *fp); -+static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -+ overDef *od, FILE *fp); - static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma, -- int sec, int names, int defaults, int in_str, FILE *fp); -+ int names, int defaults, int in_str, FILE *fp); - static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp); - static void xmlEnums(sipSpec *pt, moduleDef *mod, classDef *scope, int indent, - FILE *fp); - static void xmlVars(sipSpec *pt, moduleDef *mod, classDef *scope, int indent, - FILE *fp); --static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md, -- overDef *oloads, int indent, FILE *fp); --static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec, -+static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope, -+ memberDef *md, overDef *oloads, int indent, FILE *fp); -+static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, - int indent, FILE *fp); --static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md, -- overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp); -+static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -+ memberDef *md, overDef *od, classDef *xtnds, int stat, int indent, -+ FILE *fp); - static void xmlCppSignature(FILE *fp, overDef *od); --static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer, -- int sec, int indent, FILE *fp); --static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp); -+static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out, -+ KwArgs kwargs, int res_xfer, int indent, FILE *fp); -+static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, -+ KwArgs kwargs, FILE *fp); - static void xmlIndent(int indent, FILE *fp); --static const char *dirAttribute(argDef *ad); --static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope); --static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, -- int sec, int names, int defaults, int in_str, int is_signal); -+static void xmlRealName(scopedNameDef *fqcname, FILE *fp); -+static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope); -+static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, -+ int names, int defaults, int in_str, int is_signal); - - - /* -@@ -86,8 +88,7 @@ - if (od->common->slot != no_slot) - continue; - -- if (apiOverload(pt, mod, NULL, od, FALSE, fp)) -- apiOverload(pt, mod, NULL, od, TRUE, fp); -+ apiOverload(pt, mod, NULL, od, fp); - } - - for (cd = pt->classes; cd != NULL; cd = cd->next) -@@ -108,8 +109,7 @@ - if (isPrivateCtor(ct)) - continue; - -- if (apiCtor(pt, mod, cd, ct, FALSE, fp)) -- apiCtor(pt, mod, cd, ct, TRUE, fp); -+ apiCtor(pt, mod, cd, ct, fp); - } - - for (od = cd->overs; od != NULL; od = od->next) -@@ -120,8 +120,7 @@ - if (od->common->slot != no_slot) - continue; - -- if (apiOverload(pt, mod, cd, od, FALSE, fp)) -- apiOverload(pt, mod, cd, od, TRUE, fp); -+ apiOverload(pt, mod, cd, od, fp); - } - } - -@@ -132,10 +131,10 @@ - /* - * Generate an API ctor. - */ --static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, -- int sec, FILE *fp) -+static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, -+ FILE *fp) - { -- int need_sec = FALSE, need_comma, a; -+ int need_comma, a; - - /* Do the callable type form. */ - fprintf(fp, "%s.", mod->name); -@@ -148,11 +147,8 @@ - { - argDef *ad = &ct->pysig.args[a]; - -- need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, TRUE, TRUE, -- FALSE, fp); -- -- if (ad->atype == rxcon_type || ad->atype == rxdis_type) -- need_sec = TRUE; -+ need_comma = apiArgument(pt, ad, FALSE, need_comma, TRUE, TRUE, FALSE, -+ fp); - } - - fprintf(fp, ")\n"); -@@ -163,12 +159,10 @@ - fprintf(fp, ".__init__?%d(self", CLASS_ID); - - for (a = 0; a < ct->pysig.nrArgs; ++a) -- apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, sec, TRUE, TRUE, -- FALSE, fp); -+ apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, TRUE, TRUE, FALSE, -+ fp); - - fprintf(fp, ")\n"); -- -- return need_sec; - } - - -@@ -231,21 +225,16 @@ - /* - * Generate a single API overload. - */ --static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -- overDef *od, int sec, FILE *fp) -+static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -+ overDef *od, FILE *fp) - { -- int need_sec; -- - fprintf(fp, "%s.", mod->name); - prScopedPythonName(fp, scope, od->common->pyname->text); - fprintf(fp, "?%d", METHOD_ID); - -- need_sec = exportPythonSignature(pt, fp, &od->pysig, sec, TRUE, TRUE, -- FALSE, FALSE); -+ exportPythonSignature(pt, fp, &od->pysig, TRUE, TRUE, FALSE, FALSE); - - fprintf(fp, "\n"); -- -- return need_sec; - } - - -@@ -253,7 +242,7 @@ - * Generate the API for an argument. - */ - static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma, -- int sec, int names, int defaults, int in_str, FILE *fp) -+ int names, int defaults, int in_str, FILE *fp) - { - const char *tname; - classDef *tscope; -@@ -261,10 +250,7 @@ - if (isArraySize(ad)) - return need_comma; - -- if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type)) -- return need_comma; -- -- if ((tname = pyType(pt, ad, sec, &tscope)) == NULL) -+ if ((tname = pyType(pt, ad, &tscope)) == NULL) - return need_comma; - - if (need_comma) -@@ -327,7 +313,7 @@ - xmlVars(pt, mod, NULL, 1, fp); - - for (md = mod->othfuncs; md != NULL; md = md->next) -- xmlFunction(pt, NULL, md, mod->overs, 1, fp); -+ xmlFunction(pt, mod, NULL, md, mod->overs, 1, fp); - - fprintf(fp, "</Module>\n"); - -@@ -336,6 +322,26 @@ - - - /* -+ * Generate a 'realname' attribute containing a fully qualified C/C++ name. -+ */ -+static void xmlRealName(scopedNameDef *fqcname, FILE *fp) -+{ -+ const char *sep = ""; -+ scopedNameDef *snd; -+ -+ fprintf(fp, " realname=\""); -+ -+ for (snd = removeGlobalScope(fqcname); snd != NULL; snd = snd->next) -+ { -+ fprintf(fp, "%s%s", sep, snd->name); -+ sep = "::"; -+ } -+ -+ fprintf(fp, "\""); -+} -+ -+ -+/* - * Generate the XML for a class. - */ - static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp) -@@ -358,9 +364,11 @@ - { - xmlIndent(indent++, fp); - fprintf(fp, "<Class name=\""); -- prScopedPythonName(fp, cd->ecd, cd->pyname->text); -+ restPyClass(cd, FALSE, fp); - fprintf(fp, "\""); - -+ xmlRealName(classFQCName(cd), fp); -+ - if (cd->picklecode != NULL) - fprintf(fp, " pickle=\"1\""); - -@@ -384,7 +392,7 @@ - if (cl != cd->supers) - fprintf(fp, " "); - -- prScopedPythonName(fp, cl->cd->ecd, cl->cd->pyname->text); -+ restPyClass(cl->cd, TRUE, fp); - } - - fprintf(fp, "\""); -@@ -398,15 +406,14 @@ - if (isPrivateCtor(ct)) - continue; - -- if (xmlCtor(pt, cd, ct, FALSE, indent, fp)) -- xmlCtor(pt, cd, ct, TRUE, indent, fp); -+ xmlCtor(pt, mod, cd, ct, indent, fp); - } - - xmlEnums(pt, mod, cd, indent, fp); - xmlVars(pt, mod, cd, indent, fp); - - for (md = cd->members; md != NULL; md = md->next) -- xmlFunction(pt, cd, md, cd->overs, indent, fp); -+ xmlFunction(pt, mod, cd, md, cd->overs, indent, fp); - - if (!isHiddenNamespace(cd)) - { -@@ -438,15 +445,22 @@ - - xmlIndent(indent++, fp); - fprintf(fp, "<Enum name=\""); -- prScopedPythonName(fp, ed->ecd, ed->pyname->text); -- fprintf(fp, "\">\n"); -+ restPyEnum(ed, FALSE, fp); -+ fprintf(fp, "\""); -+ -+ xmlRealName(ed->fqcname, fp); -+ -+ fprintf(fp, ">\n"); - - for (emd = ed->members; emd != NULL; emd = emd->next) - { - xmlIndent(indent, fp); -- fprintf(fp, "<EnumMember name=\""); -- prScopedPythonName(fp, ed->ecd, emd->pyname->text); -- fprintf(fp, "\"/>\n"); -+ fprintf(fp, "<EnumMember name=\"%s\"", emd->pyname->text); -+ -+ if (strcmp(emd->pyname->text, emd->cname) != 0) -+ fprintf(fp, " realname=\"%s\"", emd->cname); -+ -+ fprintf(fp, "/>\n"); - } - - xmlIndent(--indent, fp); -@@ -495,7 +509,7 @@ - if (isStaticVar(vd)) - fprintf(fp, " static=\"1\""); - -- xmlType(pt, &vd->type, FALSE, fp); -+ xmlType(pt, mod, &vd->type, FALSE, NoKwArgs, fp); - fprintf(fp, "/>\n"); - } - } -@@ -504,10 +518,10 @@ - /* - * Generate the XML for a ctor. - */ --static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec, -+static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, - int indent, FILE *fp) - { -- int a, need_sec; -+ int a; - - xmlIndent(indent++, fp); - fprintf(fp, "<Function name=\""); -@@ -518,38 +532,34 @@ - if (ct->pysig.nrArgs == 0) - { - fprintf(fp, "/>\n"); -- return FALSE; -+ return; - } - - fprintf(fp, ">\n"); - -- need_sec = FALSE; -- - for (a = 0; a < ct->pysig.nrArgs; ++a) - { - argDef *ad = &ct->pysig.args[a]; - -- xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp); -+ if (isInArg(ad)) -+ xmlArgument(pt, mod, ad, FALSE, ct->kwargs, FALSE, indent, fp); - -- if (ad->atype == rxcon_type || ad->atype == rxdis_type) -- need_sec = TRUE; -+ if (isOutArg(ad)) -+ xmlArgument(pt, mod, ad, TRUE, ct->kwargs, FALSE, indent, fp); - } - - xmlIndent(--indent, fp); - fprintf(fp, "</Function>\n"); -- -- return need_sec; - } - - - /* - * Generate the XML for a function. - */ --static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md, -- overDef *oloads, int indent, FILE *fp) -+static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope, -+ memberDef *md, overDef *oloads, int indent, FILE *fp) - { - overDef *od; -- const char *default_str = "default=\"1\" "; - - for (od = oloads; od != NULL; od = od->next) - { -@@ -564,14 +574,33 @@ - - if (isSignal(od)) - { -- xmlIndent(indent, fp); -- fprintf(fp, "<Signal %sname=\"", default_str); -+ int a; -+ -+ xmlIndent(indent++, fp); -+ fprintf(fp, "<Signal name=\""); - prScopedPythonName(fp, scope, md->pyname->text); -- fprintf(fp, "\" sig=\""); -- xmlCppSignature(fp, od); -- fprintf(fp, "\"/>\n"); -+ /* TODO: add the C++ signature. */ -+ /* fprintf(fp, "\" sig=\""); */ -+ /* xmlCppSignature(fp, od); */ - -- default_str = ""; -+ /* Handle the trivial case. */ -+ if (od->pysig.nrArgs == 0) -+ { -+ fprintf(fp, "\"/>\n"); -+ continue; -+ } -+ -+ fprintf(fp, "\">\n"); -+ -+ for (a = 0; a < od->pysig.nrArgs; ++a) -+ { -+ argDef *ad = &od->pysig.args[a]; -+ -+ xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp); -+ } -+ -+ xmlIndent(--indent, fp); -+ fprintf(fp, "</Signal>\n"); - - continue; - } -@@ -585,8 +614,7 @@ - isstat = FALSE; - } - -- if (xmlOverload(pt, scope, md, od, xtnds, isstat, FALSE, indent, fp)) -- xmlOverload(pt, scope, md, od, xtnds, isstat, TRUE, indent, fp); -+ xmlOverload(pt, mod, scope, md, od, xtnds, isstat, indent, fp); - } - } - -@@ -594,10 +622,11 @@ - /* - * Generate the XML for an overload. - */ --static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md, -- overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp) -+static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope, -+ memberDef *md, overDef *od, classDef *xtnds, int stat, int indent, -+ FILE *fp) - { -- int a, need_sec, no_res; -+ int a, no_res; - - xmlIndent(indent++, fp); - fprintf(fp, "<Function name=\""); -@@ -635,16 +664,14 @@ - if (no_res && od->pysig.nrArgs == 0) - { - fprintf(fp, "/>\n"); -- return FALSE; -+ return; - } - - fprintf(fp, ">\n"); - - if (!no_res) -- xmlArgument(pt, &od->pysig.result, "out", isResultTransferredBack(od), -- FALSE, indent, fp); -- -- need_sec = FALSE; -+ xmlArgument(pt, mod, &od->pysig.result, TRUE, NoKwArgs, -+ isResultTransferredBack(od), indent, fp); - - for (a = 0; a < od->pysig.nrArgs; ++a) - { -@@ -654,16 +681,15 @@ - if (isNumberSlot(md) && a == 0 && od->pysig.nrArgs == 2) - continue; - -- xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp); -+ if (isInArg(ad)) -+ xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp); - -- if (ad->atype == rxcon_type || ad->atype == rxdis_type) -- need_sec = TRUE; -+ if (isOutArg(ad)) -+ xmlArgument(pt, mod, ad, TRUE, od->kwargs, FALSE, indent, fp); - } - - xmlIndent(--indent, fp); - fprintf(fp, "</Function>\n"); -- -- return need_sec; - } - - -@@ -679,65 +705,35 @@ - - - /* -- * Convert an arguments direction to an XML attribute value. -- */ --static const char *dirAttribute(argDef *ad) --{ -- if (isInArg(ad)) -- { -- if (isOutArg(ad)) -- return "inout"; -- -- return NULL; -- } -- -- return "out"; --} -- -- --/* - * Generate the XML for an argument. - */ --static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer, -- int sec, int indent, FILE *fp) -+static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out, -+ KwArgs kwargs, int res_xfer, int indent, FILE *fp) - { - if (isArraySize(ad)) - return; - -- if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type)) -- return; -- - xmlIndent(indent, fp); -- fprintf(fp, "<Argument"); -- xmlType(pt, ad, sec, fp); -+ fprintf(fp, "<%s", (out ? "Return" : "Argument")); -+ xmlType(pt, mod, ad, out, kwargs, fp); - -- if (dir != NULL) -- fprintf(fp, " dir=\"%s\"", dir); -+ if (!out) -+ { -+ if (isAllowNone(ad)) -+ fprintf(fp, " allownone=\"1\""); - -- if (isAllowNone(ad)) -- fprintf(fp, " allownone=\"1\""); -+ if (isDisallowNone(ad)) -+ fprintf(fp, " disallownone=\"1\""); - -- if (isDisallowNone(ad)) -- fprintf(fp, " disallownone=\"1\""); -+ if (isTransferred(ad)) -+ fprintf(fp, " transfer=\"to\""); -+ else if (isThisTransferred(ad)) -+ fprintf(fp, " transfer=\"this\""); -+ } - -- if (isTransferred(ad)) -- fprintf(fp, " transfer=\"to\""); -- else if (isThisTransferred(ad)) -- fprintf(fp, " transfer=\"this\""); -- else if (res_xfer || isTransferredBack(ad)) -+ if (res_xfer || isTransferredBack(ad)) - fprintf(fp, " transfer=\"back\""); - -- /* -- * Handle the default value, but ignore it if it is an output only -- * argument. -- */ -- if (ad->defval && (dir == NULL || strcmp(dir, "out") != 0)) -- { -- prcode(fp, " default=\""); -- prDefaultValue(ad, FALSE, fp); -- prcode(fp, "\""); -- } -- - fprintf(fp, "/>\n"); - } - -@@ -745,73 +741,68 @@ - /* - * Generate the XML for a type. - */ --static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp) -+static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, -+ KwArgs kwargs, FILE *fp) - { -- const char *type_type = NULL, *type_name; -+ const char *type_name; - classDef *type_scope; -+ typeHintDef *thd; - - fprintf(fp, " typename=\""); - -- switch (ad->atype) -+ /* Handle the argument name. */ -+ if (!out && ad->name != NULL) - { -- case class_type: -- type_type = (isOpaque(ad->u.cd) ? "opaque" : "class"); -- break; -- -- case enum_type: -- if (ad->u.ed->pyname != NULL) -- type_type = "enum"; -- break; -- -- case rxcon_type: -- case rxdis_type: -- if (!sec) -- type_type = "class"; -- break; -+ if (kwargs == AllKwArgs || (kwargs == OptionalKwArgs && ad->defval != NULL)) -+ fprintf(fp, "%s: ", ad->name->text); -+ } - -- case qobject_type: -- type_type = "class"; -- break; -+ /* Use any explicit type hint unless the argument is constrained. */ -+ thd = (out ? ad->typehint_out : (isConstrained(ad) ? NULL : ad->typehint_in)); - -- case slotcon_type: -- case slotdis_type: -+ if (thd != NULL) -+ { -+ pyiTypeHint(pt, thd, mod, out, NULL, FALSE, TRUE, fp); -+ } -+ else -+ { -+ switch (ad->atype) - { -- int a; -- -- prcode(fp, "SLOT("); -- -- for (a = 0; a < ad->u.sa->nrArgs; ++a) -- { -- if (a > 0) -- prcode(fp, ", "); -+ case class_type: -+ restPyClass(ad->u.cd, TRUE, fp); -+ break; - -- prcode(fp, "%M%B%M", &ad->u.sa->args[a]); -- } -+ case enum_type: -+ if (ad->u.ed->pyname != NULL) -+ restPyEnum(ad->u.ed, TRUE, fp); -+ else -+ fprintf(fp, "int"); - -- prcode(fp, ")"); -- } -+ break; - -- break; -+ case qobject_type: -+ restPyClass(pt->qobject_cd, TRUE, fp); -+ break; - -- case mapped_type: -- type_type = "mappedtype"; -- break; -+ case mapped_type: -+ /* There would normally be a type hint. */ -+ fprintf(fp, "unknown-type"); -+ break; - -- /* Suppress a compiler warning. */ -- default: -- ; -+ default: -+ if ((type_name = pyType(pt, ad, &type_scope)) != NULL) -+ prScopedPythonName(fp, type_scope, type_name); -+ } - } - -- if ((type_name = pyType(pt, ad, sec, &type_scope)) != NULL) -- prScopedPythonName(fp, type_scope, type_name); -+ if (!out && ad->name != NULL && ad->defval != NULL) -+ { -+ fprintf(fp, " = "); -+ /* TODO: use reST references where appropriate. */ -+ prDefaultValue(ad, FALSE, fp); -+ } - - fprintf(fp, "\""); -- -- if (type_type != NULL) -- fprintf(fp, " typetype=\"%s\"", type_type); -- -- if (ad->name != NULL) -- fprintf(fp, " name=\"%s\"", ad->name->text); - } - - -@@ -828,7 +819,7 @@ - /* - * Get the Python representation of a type. - */ --static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope) -+static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope) - { - const char *type_name; - -@@ -947,23 +938,6 @@ - type_name = "int"; - break; - -- case signal_type: -- type_name = "SIGNAL()"; -- break; -- -- case slot_type: -- type_name = "SLOT()"; -- break; -- -- case rxcon_type: -- case rxdis_type: -- if (sec) -- type_name = "callable"; -- else -- type_name = "QObject"; -- -- break; -- - case qobject_type: - type_name = "QObject"; - break; -@@ -1046,11 +1020,6 @@ - type_name = "..."; - break; - -- case slotcon_type: -- case anyslot_type: -- type_name = "SLOT()"; -- break; -- - default: - type_name = NULL; - } -@@ -1062,10 +1031,10 @@ - /* - * Generate a Python signature. - */ --static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, -- int sec, int names, int defaults, int in_str, int is_signal) -+static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, -+ int names, int defaults, int in_str, int is_signal) - { -- int need_sec = FALSE, need_comma = FALSE, is_res, nr_out, a; -+ int need_comma = FALSE, is_res, nr_out, a; - - if (is_signal) - { -@@ -1089,11 +1058,8 @@ - if (!isInArg(ad)) - continue; - -- need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, names, -- defaults, in_str, fp); -- -- if (ad->atype == rxcon_type || ad->atype == rxdis_type) -- need_sec = TRUE; -+ need_comma = apiArgument(pt, ad, FALSE, need_comma, names, defaults, -+ in_str, fp); - } - - if (is_signal) -@@ -1118,7 +1084,7 @@ - fprintf(fp, "("); - - if (is_res) -- need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, sec, FALSE, -+ need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, FALSE, - FALSE, in_str, fp); - else - need_comma = FALSE; -@@ -1129,13 +1095,43 @@ - - if (isOutArg(ad)) - /* We don't want the name in the result tuple. */ -- need_comma = apiArgument(pt, ad, TRUE, need_comma, sec, FALSE, -+ need_comma = apiArgument(pt, ad, TRUE, need_comma, FALSE, - FALSE, in_str, fp); - } - - if ((is_res && nr_out > 0) || nr_out > 1) - fprintf(fp, ")"); - } -+} - -- return need_sec; -+ -+/* -+ * Generate a fully qualified class name optionally as a reST reference. -+ */ -+void restPyClass(classDef *cd, int as_ref, FILE *fp) -+{ -+ if (as_ref) -+ fprintf(fp, ":sip:class:`~"); -+ -+ fprintf(fp, "%s.", cd->iff->module->fullname->text); -+ prScopedPythonName(fp, cd->ecd, cd->pyname->text); -+ -+ if (as_ref) -+ fprintf(fp, "`"); -+} -+ -+ -+/* -+ * Generate a fully qualified enum name optionally as a reST reference. -+ */ -+void restPyEnum(enumDef *ed, int as_ref, FILE *fp) -+{ -+ if (as_ref) -+ fprintf(fp, ":sip:enum:`~"); -+ -+ fprintf(fp, "%s.", ed->module->fullname->text); -+ prScopedPythonName(fp, ed->ecd, ed->pyname->text); -+ -+ if (as_ref) -+ fprintf(fp, "`"); - } -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/lexer.c sip/sipgen/lexer.c ---- ./sip-4.19.12.orig/sipgen/lexer.c 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sipgen/lexer.c 2018-09-18 18:12:23.334057750 -0400 -@@ -1,6 +1,6 @@ --#line 2 "sip-4.19.12/sipgen/lexer.c" -+#line 2 "sipgen/lexer.c" - --#line 4 "sip-4.19.12/sipgen/lexer.c" -+#line 4 "sipgen/lexer.c" - - #define YY_INT_ALIGNED short int - -@@ -8,8 +8,8 @@ - - #define FLEX_SCANNER - #define YY_FLEX_MAJOR_VERSION 2 --#define YY_FLEX_MINOR_VERSION 5 --#define YY_FLEX_SUBMINOR_VERSION 35 -+#define YY_FLEX_MINOR_VERSION 6 -+#define YY_FLEX_SUBMINOR_VERSION 1 - #if YY_FLEX_SUBMINOR_VERSION > 0 - #define FLEX_BETA - #endif -@@ -47,7 +47,6 @@ - typedef uint16_t flex_uint16_t; - typedef int32_t flex_int32_t; - typedef uint32_t flex_uint32_t; --typedef uint64_t flex_uint64_t; - #else - typedef signed char flex_int8_t; - typedef short int flex_int16_t; -@@ -55,7 +54,6 @@ - typedef unsigned char flex_uint8_t; - typedef unsigned short int flex_uint16_t; - typedef unsigned int flex_uint32_t; --#endif /* ! C99 */ - - /* Limits of integral types. */ - #ifndef INT8_MIN -@@ -86,27 +84,17 @@ - #define UINT32_MAX (4294967295U) - #endif - --#endif /* ! FLEXINT_H */ -- --#ifdef __cplusplus -- --/* The "const" storage-class-modifier is valid. */ --#define YY_USE_CONST -- --#else /* ! __cplusplus */ -- --/* C99 requires __STDC__ to be defined as 1. */ --#if defined (__STDC__) -- --#define YY_USE_CONST -+#endif /* ! C99 */ - --#endif /* defined (__STDC__) */ --#endif /* ! __cplusplus */ -+#endif /* ! FLEXINT_H */ - --#ifdef YY_USE_CONST -+/* TODO: this is always defined, so inline it */ - #define yyconst const -+ -+#if defined(__GNUC__) && __GNUC__ >= 3 -+#define yynoreturn __attribute__((__noreturn__)) - #else --#define yyconst -+#define yynoreturn - #endif - - /* Returned upon end-of-file. */ -@@ -142,7 +130,15 @@ - - /* Size of default input buffer. */ - #ifndef YY_BUF_SIZE -+#ifdef __ia64__ -+/* On IA-64, the buffer size is 16k, not 8k. -+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. -+ * Ditto for the __ia64__ case accordingly. -+ */ -+#define YY_BUF_SIZE 32768 -+#else - #define YY_BUF_SIZE 16384 -+#endif /* __ia64__ */ - #endif - - /* The state buf must be large enough to hold one state per character in the main buffer. -@@ -159,7 +155,7 @@ - typedef size_t yy_size_t; - #endif - --extern yy_size_t yyleng; -+extern int yyleng; - - extern FILE *yyin, *yyout; - -@@ -168,13 +164,14 @@ - #define EOB_ACT_LAST_MATCH 2 - - #define YY_LESS_LINENO(n) -+ #define YY_LINENO_REWIND_TO(ptr) - - /* Return all but the first "n" matched characters back to the input stream. */ - #define yyless(n) \ - do \ - { \ - /* Undo effects of setting up yytext. */ \ -- int yyless_macro_arg = (n); \ -+ yy_size_t yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - *yy_cp = (yy_hold_char); \ - YY_RESTORE_YY_MORE_OFFSET \ -@@ -197,12 +194,12 @@ - /* Size of input buffer in bytes, not including room for EOB - * characters. - */ -- yy_size_t yy_buf_size; -+ int yy_buf_size; - - /* Number of characters read into yy_ch_buf, not including EOB - * characters. - */ -- yy_size_t yy_n_chars; -+ int yy_n_chars; - - /* Whether we "own" the buffer - i.e., we know we created it, - * and can realloc() it to grow it, and should free() it to -@@ -253,7 +250,7 @@ - /* Stack of input buffers. */ - static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ - static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ --static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ -+static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ - - /* We provide macros for accessing buffer states in case in the - * future we want to put the buffer states in a more general -@@ -272,11 +269,11 @@ - - /* yy_hold_char holds the character lost when yytext is formed. */ - static char yy_hold_char; --static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ --yy_size_t yyleng; -+static int yy_n_chars; /* number of characters read into yy_ch_buf */ -+int yyleng; - - /* Points to current character in buffer. */ --static char *yy_c_buf_p = (char *) 0; -+static char *yy_c_buf_p = NULL; - static int yy_init = 0; /* whether we need to initialize */ - static int yy_start = 0; /* start state number */ - -@@ -301,7 +298,7 @@ - - YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); - YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); --YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); -+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); - - void *yyalloc (yy_size_t ); - void *yyrealloc (void *,yy_size_t ); -@@ -335,7 +332,7 @@ - - typedef unsigned char YY_CHAR; - --FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; -+FILE *yyin = NULL, *yyout = NULL; - - typedef int yy_state_type; - -@@ -344,19 +341,22 @@ - int yylineno = 1; - - extern char *yytext; -+#ifdef yytext_ptr -+#undef yytext_ptr -+#endif - #define yytext_ptr yytext - - static yy_state_type yy_get_previous_state (void ); - static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); - static int yy_get_next_buffer (void ); --static void yy_fatal_error (yyconst char msg[] ); -+static void yynoreturn yy_fatal_error (yyconst char* msg ); - - /* Done after the current pattern has been matched and before the - * corresponding action - sets up yytext. - */ - #define YY_DO_BEFORE_ACTION \ - (yytext_ptr) = yy_bp; \ -- yyleng = (yy_size_t) (yy_cp - yy_bp); \ -+ yyleng = (int) (yy_cp - yy_bp); \ - (yy_hold_char) = *yy_cp; \ - *yy_cp = '\0'; \ - (yy_c_buf_p) = yy_cp; -@@ -509,7 +509,7 @@ - 131, 113, 0, 113, 0, 113, 7, 113, 101, 0 - } ; - --static yyconst flex_int32_t yy_ec[256] = -+static yyconst YY_CHAR yy_ec[256] = - { 0, - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, - 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, -@@ -541,7 +541,7 @@ - 1, 1, 1, 1, 1 - } ; - --static yyconst flex_int32_t yy_meta[70] = -+static yyconst YY_CHAR yy_meta[70] = - { 0, - 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 3, 3, 4, 4, 1, 4, 4, 4, -@@ -552,7 +552,7 @@ - 3, 3, 3, 3, 3, 3, 3, 3, 1 - } ; - --static yyconst flex_int16_t yy_base[1239] = -+static yyconst flex_uint16_t yy_base[1239] = - { 0, - 0, 68, 2823, 69, 70, 73, 75, 75, 2817, 80, - 2824, 2827, 2827, 2827, 73, 82, 77, 87, 77, 128, -@@ -832,7 +832,7 @@ - 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230 - } ; - --static yyconst flex_int16_t yy_nxt[2897] = -+static yyconst flex_uint16_t yy_nxt[2897] = - { 0, - 12, 13, 14, 13, 15, 12, 16, 12, 12, 12, - 12, 17, 18, 19, 20, 21, 22, 23, 23, 23, -@@ -1492,7 +1492,7 @@ - #define YY_MORE_ADJ 0 - #define YY_RESTORE_YY_MORE_OFFSET - char *yytext; --#line 1 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 1 "sipgen/metasrc/lexer.l" - /* - * The SIP lexer. - * -@@ -1510,7 +1510,7 @@ - * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - */ --#line 20 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 20 "sipgen/metasrc/lexer.l" - #include <stdio.h> - #include <stdlib.h> - #include <string.h> -@@ -1560,7 +1560,7 @@ - - - --#line 1564 "sip-4.19.12/sipgen/lexer.c" -+#line 1564 "sipgen/lexer.c" - - #define INITIAL 0 - #define code 1 -@@ -1597,19 +1597,19 @@ - - FILE *yyget_in (void ); - --void yyset_in (FILE * in_str ); -+void yyset_in (FILE * _in_str ); - - FILE *yyget_out (void ); - --void yyset_out (FILE * out_str ); -+void yyset_out (FILE * _out_str ); - --yy_size_t yyget_leng (void ); -+ int yyget_leng (void ); - - char *yyget_text (void ); - - int yyget_lineno (void ); - --void yyset_lineno (int line_number ); -+void yyset_lineno (int _line_number ); - - /* Macros after this point can all be overridden by user definitions in - * section 1. -@@ -1623,8 +1623,12 @@ - #endif - #endif - -+#ifndef YY_NO_UNPUT -+ - static void yyunput (int c,char *buf_ptr ); - -+#endif -+ - #ifndef yytext_ptr - static void yy_flex_strncpy (char *,yyconst char *,int ); - #endif -@@ -1647,7 +1651,7 @@ - static int yy_start_stack_depth = 0; - static int *yy_start_stack = NULL; - -- static void yy_push_state (int new_state ); -+ static void yy_push_state (int _new_state ); - - static void yy_pop_state (void ); - -@@ -1655,7 +1659,12 @@ - - /* Amount of stuff to slurp up with each read. */ - #ifndef YY_READ_BUF_SIZE -+#ifdef __ia64__ -+/* On IA-64, the buffer size is 16k, not 8k */ -+#define YY_READ_BUF_SIZE 16384 -+#else - #define YY_READ_BUF_SIZE 8192 -+#endif /* __ia64__ */ - #endif - - /* Copy whatever the last rule matched to the standard output. */ -@@ -1663,7 +1672,7 @@ - /* This used to be an fputs(), but since the string might contain NUL's, - * we now use fwrite(). - */ --#define ECHO fwrite( yytext, yyleng, 1, yyout ) -+#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) - #endif - - /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, -@@ -1674,7 +1683,7 @@ - if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ - { \ - int c = '*'; \ -- yy_size_t n; \ -+ int n; \ - for ( n = 0; n < max_size && \ - (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ - buf[n] = (char) c; \ -@@ -1687,7 +1696,7 @@ - else \ - { \ - errno=0; \ -- while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ -+ while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ - { \ - if( errno != EINTR) \ - { \ -@@ -1742,7 +1751,7 @@ - - /* Code executed at the end of each rule. */ - #ifndef YY_BREAK --#define YY_BREAK break; -+#define YY_BREAK /*LINTED*/break; - #endif - - #define YY_RULE_SETUP \ -@@ -1755,15 +1764,10 @@ - */ - YY_DECL - { -- register yy_state_type yy_current_state; -- register char *yy_cp, *yy_bp; -- register int yy_act; -+ yy_state_type yy_current_state; -+ char *yy_cp, *yy_bp; -+ int yy_act; - --#line 74 "sip-4.19.12/sipgen/metasrc/lexer.l" -- -- --#line 1766 "sip-4.19.12/sipgen/lexer.c" -- - if ( !(yy_init) ) - { - (yy_init) = 1; -@@ -1790,7 +1794,13 @@ - yy_load_buffer_state( ); - } - -- while ( 1 ) /* loops until end-of-file is reached */ -+ { -+#line 74 "sipgen/metasrc/lexer.l" -+ -+ -+#line 1802 "sipgen/lexer.c" -+ -+ while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ - { - yy_cp = (yy_c_buf_p); - -@@ -1807,7 +1817,7 @@ - yy_match: - do - { -- register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; -+ YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; -@@ -1819,7 +1829,7 @@ - if ( yy_current_state >= 1231 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } -- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; -+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - ++yy_cp; - } - while ( yy_base[yy_current_state] != 2827 ); -@@ -1848,527 +1858,527 @@ - - case 1: - YY_RULE_SETUP --#line 76 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 76 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_API;} - YY_BREAK - case 2: - YY_RULE_SETUP --#line 77 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 77 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_AUTOPYNAME;} - YY_BREAK - case 3: - YY_RULE_SETUP --#line 78 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 78 "sipgen/metasrc/lexer.l" - {return TK_CMODULE;} - YY_BREAK - case 4: - YY_RULE_SETUP --#line 79 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 79 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_COMPOMODULE;} - YY_BREAK - case 5: - YY_RULE_SETUP --#line 80 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 80 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_CONSMODULE;} - YY_BREAK - case 6: - YY_RULE_SETUP --#line 81 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 81 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_DEFDOCSTRFMT;} - YY_BREAK - case 7: - YY_RULE_SETUP --#line 82 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 82 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_DEFDOCSTRSIG;} - YY_BREAK - case 8: - YY_RULE_SETUP --#line 83 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 83 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_DEFENCODING;} - YY_BREAK - case 9: - YY_RULE_SETUP --#line 84 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 84 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_DEFMETATYPE;} - YY_BREAK - case 10: - YY_RULE_SETUP --#line 85 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 85 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_DEFSUPERTYPE;} - YY_BREAK - case 11: - YY_RULE_SETUP --#line 86 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 86 "sipgen/metasrc/lexer.l" - {return TK_END;} - YY_BREAK - case 12: - YY_RULE_SETUP --#line 87 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 87 "sipgen/metasrc/lexer.l" - {BEGIN INITIAL; return TK_END;} - YY_BREAK - case 13: - YY_RULE_SETUP --#line 88 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 88 "sipgen/metasrc/lexer.l" - {return TK_EXCEPTION;} - YY_BREAK - case 14: - YY_RULE_SETUP --#line 89 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 89 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_FEATURE;} - YY_BREAK - case 15: - YY_RULE_SETUP --#line 90 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 90 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_HIDE_NS;} - YY_BREAK - case 16: - YY_RULE_SETUP --#line 91 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 91 "sipgen/metasrc/lexer.l" - {return TK_IF;} - YY_BREAK - case 17: - YY_RULE_SETUP --#line 92 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 92 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_IMPORT;} - YY_BREAK - case 18: - YY_RULE_SETUP --#line 93 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 93 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_INCLUDE;} - YY_BREAK - case 19: - YY_RULE_SETUP --#line 94 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 94 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_LICENSE;} - YY_BREAK - case 20: - YY_RULE_SETUP --#line 95 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 95 "sipgen/metasrc/lexer.l" - {return TK_MAPPEDTYPE;} - YY_BREAK - case 21: - YY_RULE_SETUP --#line 96 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 96 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_MODULE;} - YY_BREAK - case 22: - YY_RULE_SETUP --#line 97 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 97 "sipgen/metasrc/lexer.l" - {return TK_OPTINCLUDE;} - YY_BREAK - case 23: - YY_RULE_SETUP --#line 98 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 98 "sipgen/metasrc/lexer.l" - {return TK_PLATFORMS;} - YY_BREAK - case 24: - YY_RULE_SETUP --#line 99 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 99 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_PLUGIN;} - YY_BREAK - case 25: - YY_RULE_SETUP --#line 100 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 100 "sipgen/metasrc/lexer.l" - {BEGIN directive_start; return TK_PROPERTY;} - YY_BREAK - case 26: - YY_RULE_SETUP --#line 101 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 101 "sipgen/metasrc/lexer.l" - {return TK_TIMELINE;} - YY_BREAK - case 27: - YY_RULE_SETUP --#line 103 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 103 "sipgen/metasrc/lexer.l" - {return TK_CLASS;} - YY_BREAK - case 28: - YY_RULE_SETUP --#line 104 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 104 "sipgen/metasrc/lexer.l" - {return TK_STRUCT;} - YY_BREAK - case 29: - YY_RULE_SETUP --#line 105 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 105 "sipgen/metasrc/lexer.l" - {return TK_PUBLIC;} - YY_BREAK - case 30: - YY_RULE_SETUP --#line 106 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 106 "sipgen/metasrc/lexer.l" - {return TK_PROTECTED;} - YY_BREAK - case 31: - YY_RULE_SETUP --#line 107 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 107 "sipgen/metasrc/lexer.l" - {return TK_PRIVATE;} - YY_BREAK - case 32: - YY_RULE_SETUP --#line 108 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 108 "sipgen/metasrc/lexer.l" - {return TK_SIGNALS;} - YY_BREAK - case 33: - YY_RULE_SETUP --#line 109 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 109 "sipgen/metasrc/lexer.l" - {return TK_SIGNALS;} - YY_BREAK - case 34: - YY_RULE_SETUP --#line 110 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 110 "sipgen/metasrc/lexer.l" - {return TK_SIGNAL_METHOD;} - YY_BREAK - case 35: - YY_RULE_SETUP --#line 111 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 111 "sipgen/metasrc/lexer.l" - {return TK_SLOTS;} - YY_BREAK - case 36: - YY_RULE_SETUP --#line 112 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 112 "sipgen/metasrc/lexer.l" - {return TK_SLOTS;} - YY_BREAK - case 37: - YY_RULE_SETUP --#line 113 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 113 "sipgen/metasrc/lexer.l" - {return TK_SLOT_METHOD;} - YY_BREAK - case 38: - YY_RULE_SETUP --#line 114 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 114 "sipgen/metasrc/lexer.l" - {return TK_CHAR;} - YY_BREAK - case 39: - YY_RULE_SETUP --#line 115 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 115 "sipgen/metasrc/lexer.l" - {return TK_WCHAR_T;} - YY_BREAK - case 40: - YY_RULE_SETUP --#line 116 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 116 "sipgen/metasrc/lexer.l" - {return TK_BOOL;} - YY_BREAK - case 41: - YY_RULE_SETUP --#line 117 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 117 "sipgen/metasrc/lexer.l" - {return TK_SHORT;} - YY_BREAK - case 42: - YY_RULE_SETUP --#line 118 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 118 "sipgen/metasrc/lexer.l" - {return TK_INT;} - YY_BREAK - case 43: - YY_RULE_SETUP --#line 119 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 119 "sipgen/metasrc/lexer.l" - {return TK_LONG;} - YY_BREAK - case 44: - YY_RULE_SETUP --#line 120 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 120 "sipgen/metasrc/lexer.l" - {return TK_FLOAT;} - YY_BREAK - case 45: - YY_RULE_SETUP --#line 121 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 121 "sipgen/metasrc/lexer.l" - {return TK_DOUBLE;} - YY_BREAK - case 46: - YY_RULE_SETUP --#line 122 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 122 "sipgen/metasrc/lexer.l" - {return TK_VOID;} - YY_BREAK - case 47: - YY_RULE_SETUP --#line 123 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 123 "sipgen/metasrc/lexer.l" - {return TK_VIRTUAL;} - YY_BREAK - case 48: - YY_RULE_SETUP --#line 124 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 124 "sipgen/metasrc/lexer.l" - {return TK_ENUM;} - YY_BREAK - case 49: - YY_RULE_SETUP --#line 125 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 125 "sipgen/metasrc/lexer.l" - {return TK_SIGNED;} - YY_BREAK - case 50: - YY_RULE_SETUP --#line 126 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 126 "sipgen/metasrc/lexer.l" - {return TK_UNSIGNED;} - YY_BREAK - case 51: - YY_RULE_SETUP --#line 127 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 127 "sipgen/metasrc/lexer.l" - {return TK_CONST;} - YY_BREAK - case 52: - YY_RULE_SETUP --#line 128 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 128 "sipgen/metasrc/lexer.l" - {return TK_STATIC;} - YY_BREAK - case 53: - YY_RULE_SETUP --#line 129 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 129 "sipgen/metasrc/lexer.l" - {return TK_TRUE_VALUE;} - YY_BREAK - case 54: - YY_RULE_SETUP --#line 130 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 130 "sipgen/metasrc/lexer.l" - {return TK_FALSE_VALUE;} - YY_BREAK - case 55: - YY_RULE_SETUP --#line 131 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 131 "sipgen/metasrc/lexer.l" - {return TK_NULL_VALUE;} - YY_BREAK - case 56: - YY_RULE_SETUP --#line 132 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 132 "sipgen/metasrc/lexer.l" - {return TK_TYPEDEF;} - YY_BREAK - case 57: - YY_RULE_SETUP --#line 133 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 133 "sipgen/metasrc/lexer.l" - {return TK_NAMESPACE;} - YY_BREAK - case 58: - YY_RULE_SETUP --#line 134 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 134 "sipgen/metasrc/lexer.l" - {return TK_OPERATOR;} - YY_BREAK - case 59: - YY_RULE_SETUP --#line 135 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 135 "sipgen/metasrc/lexer.l" - {return TK_THROW;} - YY_BREAK - case 60: - YY_RULE_SETUP --#line 136 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 136 "sipgen/metasrc/lexer.l" - {return TK_EXPLICIT;} - YY_BREAK - case 61: - YY_RULE_SETUP --#line 137 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 137 "sipgen/metasrc/lexer.l" - {return TK_TEMPLATE;} - YY_BREAK - case 62: - YY_RULE_SETUP --#line 138 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 138 "sipgen/metasrc/lexer.l" - {return TK_FINAL;} - YY_BREAK - case 63: - YY_RULE_SETUP --#line 139 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 139 "sipgen/metasrc/lexer.l" - {return TK_SCOPE;} - YY_BREAK - case 64: - YY_RULE_SETUP --#line 140 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 140 "sipgen/metasrc/lexer.l" - {return TK_LOGICAL_OR;} - YY_BREAK - case 65: - YY_RULE_SETUP --#line 141 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 141 "sipgen/metasrc/lexer.l" - {return TK_PYOBJECT;} - YY_BREAK - case 66: - YY_RULE_SETUP --#line 142 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 142 "sipgen/metasrc/lexer.l" - {return TK_PYTUPLE;} - YY_BREAK - case 67: - YY_RULE_SETUP --#line 143 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 143 "sipgen/metasrc/lexer.l" - {return TK_PYLIST;} - YY_BREAK - case 68: - YY_RULE_SETUP --#line 144 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 144 "sipgen/metasrc/lexer.l" - {return TK_PYDICT;} - YY_BREAK - case 69: - YY_RULE_SETUP --#line 145 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 145 "sipgen/metasrc/lexer.l" - {return TK_PYCALLABLE;} - YY_BREAK - case 70: - YY_RULE_SETUP --#line 146 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 146 "sipgen/metasrc/lexer.l" - {return TK_PYSLICE;} - YY_BREAK - case 71: - YY_RULE_SETUP --#line 147 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 147 "sipgen/metasrc/lexer.l" - {return TK_PYTYPE;} - YY_BREAK - case 72: - YY_RULE_SETUP --#line 148 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 148 "sipgen/metasrc/lexer.l" - {return TK_PYBUFFER;} - YY_BREAK - case 73: - YY_RULE_SETUP --#line 149 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 149 "sipgen/metasrc/lexer.l" - {return TK_SIPSIGNAL;} - YY_BREAK - case 74: - YY_RULE_SETUP --#line 150 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 150 "sipgen/metasrc/lexer.l" - {return TK_SIPSLOT;} - YY_BREAK - case 75: - YY_RULE_SETUP --#line 151 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 151 "sipgen/metasrc/lexer.l" - {return TK_SIPANYSLOT;} - YY_BREAK - case 76: - YY_RULE_SETUP --#line 152 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 152 "sipgen/metasrc/lexer.l" - {return TK_SIPRXCON;} - YY_BREAK - case 77: - YY_RULE_SETUP --#line 153 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 153 "sipgen/metasrc/lexer.l" - {return TK_SIPRXDIS;} - YY_BREAK - case 78: - YY_RULE_SETUP --#line 154 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 154 "sipgen/metasrc/lexer.l" - {return TK_SIPSLOTCON;} - YY_BREAK - case 79: - YY_RULE_SETUP --#line 155 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 155 "sipgen/metasrc/lexer.l" - {return TK_SIPSLOTDIS;} - YY_BREAK - case 80: - YY_RULE_SETUP --#line 156 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 156 "sipgen/metasrc/lexer.l" - {return TK_SIPSSIZET;} - YY_BREAK - case 81: - YY_RULE_SETUP --#line 157 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 157 "sipgen/metasrc/lexer.l" - {return TK_QOBJECT;} - YY_BREAK - case 82: - YY_RULE_SETUP --#line 158 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 158 "sipgen/metasrc/lexer.l" - {return TK_ELLIPSIS;} - YY_BREAK - case 83: - YY_RULE_SETUP --#line 160 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 160 "sipgen/metasrc/lexer.l" - {return TK_FORMAT;} - YY_BREAK - case 84: - YY_RULE_SETUP --#line 161 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 161 "sipgen/metasrc/lexer.l" - {return TK_GET;} - YY_BREAK - case 85: - YY_RULE_SETUP --#line 162 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 162 "sipgen/metasrc/lexer.l" - {return TK_ID;} - YY_BREAK - case 86: - YY_RULE_SETUP --#line 163 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 163 "sipgen/metasrc/lexer.l" - {return TK_KWARGS;} - YY_BREAK - case 87: - YY_RULE_SETUP --#line 164 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 164 "sipgen/metasrc/lexer.l" - {return TK_LANGUAGE;} - YY_BREAK - case 88: - YY_RULE_SETUP --#line 165 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 165 "sipgen/metasrc/lexer.l" - {return TK_LICENSEE;} - YY_BREAK - case 89: - YY_RULE_SETUP --#line 166 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 166 "sipgen/metasrc/lexer.l" - {return TK_NAME;} - YY_BREAK - case 90: - YY_RULE_SETUP --#line 167 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 167 "sipgen/metasrc/lexer.l" - {return TK_OPTIONAL;} - YY_BREAK - case 91: - YY_RULE_SETUP --#line 168 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 168 "sipgen/metasrc/lexer.l" - {return TK_ORDER;} - YY_BREAK - case 92: - YY_RULE_SETUP --#line 169 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 169 "sipgen/metasrc/lexer.l" - {return TK_REMOVELEADING;} - YY_BREAK - case 93: - YY_RULE_SETUP --#line 170 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 170 "sipgen/metasrc/lexer.l" - {return TK_SET;} - YY_BREAK - case 94: - YY_RULE_SETUP --#line 171 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 171 "sipgen/metasrc/lexer.l" - {return TK_SIGNATURE;} - YY_BREAK - case 95: - YY_RULE_SETUP --#line 172 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 172 "sipgen/metasrc/lexer.l" - {return TK_TIMESTAMP;} - YY_BREAK - case 96: - YY_RULE_SETUP --#line 173 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 173 "sipgen/metasrc/lexer.l" - {return TK_TYPE;} - YY_BREAK - case 97: - YY_RULE_SETUP --#line 174 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 174 "sipgen/metasrc/lexer.l" - {return TK_USEARGNAMES;} - YY_BREAK - case 98: - YY_RULE_SETUP --#line 175 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 175 "sipgen/metasrc/lexer.l" - {return TK_USELIMITEDAPI;} - YY_BREAK - case 99: - YY_RULE_SETUP --#line 176 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 176 "sipgen/metasrc/lexer.l" - {return TK_ALLRAISEPYEXC;} - YY_BREAK - case 100: - YY_RULE_SETUP --#line 177 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 177 "sipgen/metasrc/lexer.l" - {return TK_CALLSUPERINIT;} - YY_BREAK - case 101: - YY_RULE_SETUP --#line 178 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 178 "sipgen/metasrc/lexer.l" - {return TK_DEFERRORHANDLER;} - YY_BREAK - case 102: - YY_RULE_SETUP --#line 179 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 179 "sipgen/metasrc/lexer.l" - {return TK_VERSION;} - YY_BREAK - case 103: - YY_RULE_SETUP --#line 181 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 181 "sipgen/metasrc/lexer.l" - {return TK_TRUE_VALUE;} - YY_BREAK - case 104: - YY_RULE_SETUP --#line 182 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 182 "sipgen/metasrc/lexer.l" - {return TK_FALSE_VALUE;} - YY_BREAK - case 105: - YY_RULE_SETUP --#line 185 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 185 "sipgen/metasrc/lexer.l" - { - /* Ignore whitespace. */ - ; -@@ -2376,7 +2386,7 @@ - YY_BREAK - case 106: - YY_RULE_SETUP --#line 190 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 190 "sipgen/metasrc/lexer.l" - { - /* - * Maintain the parenthesis depth so that we don't enter the 'code' state -@@ -2391,7 +2401,7 @@ - YY_BREAK - case 107: - YY_RULE_SETUP --#line 202 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 202 "sipgen/metasrc/lexer.l" - { - /* Maintain the parenthesis depth. */ - --parenDepth; -@@ -2404,7 +2414,7 @@ - case 108: - /* rule 108 can match eol */ - YY_RULE_SETUP --#line 211 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 211 "sipgen/metasrc/lexer.l" - { - /* Maintain the line number. */ - ++inputFileStack[currentFile].sloc.linenr; -@@ -2417,7 +2427,7 @@ - YY_BREAK - case 109: - YY_RULE_SETUP --#line 221 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 221 "sipgen/metasrc/lexer.l" - { - /* Ignore C++ style comments. */ - ; -@@ -2425,7 +2435,7 @@ - YY_BREAK - case 110: - YY_RULE_SETUP --#line 227 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 227 "sipgen/metasrc/lexer.l" - { - /* A signed decimal number. */ - yylval.number = strtol(yytext,NULL,0); -@@ -2434,7 +2444,7 @@ - YY_BREAK - case 111: - YY_RULE_SETUP --#line 234 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 234 "sipgen/metasrc/lexer.l" - { - /* A floating point number. */ - yylval.real = strtod(yytext,NULL); -@@ -2443,7 +2453,7 @@ - YY_BREAK - case 112: - YY_RULE_SETUP --#line 241 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 241 "sipgen/metasrc/lexer.l" - { - /* An unsigned hexadecimal number. */ - yylval.number = strtol(yytext,NULL,16); -@@ -2452,7 +2462,7 @@ - YY_BREAK - case 113: - YY_RULE_SETUP --#line 248 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 248 "sipgen/metasrc/lexer.l" - { - /* An identifier name. */ - yylval.text = sipStrdup(yytext); -@@ -2461,7 +2471,7 @@ - YY_BREAK - case 114: - YY_RULE_SETUP --#line 255 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 255 "sipgen/metasrc/lexer.l" - { - /* A relative pathname. */ - yylval.text = sipStrdup(yytext); -@@ -2471,7 +2481,7 @@ - case 115: - /* rule 115 can match eol */ - YY_RULE_SETUP --#line 262 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 262 "sipgen/metasrc/lexer.l" - { - /* A double-quoted string. */ - char ch, *dp, *sp; -@@ -2510,7 +2520,7 @@ - case 116: - /* rule 116 can match eol */ - YY_RULE_SETUP --#line 298 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 298 "sipgen/metasrc/lexer.l" - { - /* A single-quoted character. */ - if (strlen(yytext) != 3) -@@ -2523,7 +2533,7 @@ - YY_BREAK - case 117: - YY_RULE_SETUP --#line 309 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 309 "sipgen/metasrc/lexer.l" - { - /* Ignore C-style comments. */ - yy_push_state(ccomment); -@@ -2532,28 +2542,28 @@ - case 118: - /* rule 118 can match eol */ - YY_RULE_SETUP --#line 313 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 313 "sipgen/metasrc/lexer.l" - { - ++inputFileStack[currentFile].sloc.linenr; - } - YY_BREAK - case 119: - YY_RULE_SETUP --#line 316 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 316 "sipgen/metasrc/lexer.l" - { - yy_pop_state(); - } - YY_BREAK - case 120: - YY_RULE_SETUP --#line 319 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 319 "sipgen/metasrc/lexer.l" - { - ; - } - YY_BREAK - case 121: - YY_RULE_SETUP --#line 324 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 324 "sipgen/metasrc/lexer.l" - { - /* The software license. */ - codeIdx = 0; -@@ -2562,7 +2572,7 @@ - YY_BREAK - case 122: - YY_RULE_SETUP --#line 330 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 330 "sipgen/metasrc/lexer.l" - { - /* The start of a from-type code block. */ - codeIdx = 0; -@@ -2571,7 +2581,7 @@ - YY_BREAK - case 123: - YY_RULE_SETUP --#line 336 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 336 "sipgen/metasrc/lexer.l" - { - /* The start of a to-type code block. */ - codeIdx = 0; -@@ -2580,7 +2590,7 @@ - YY_BREAK - case 124: - YY_RULE_SETUP --#line 342 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 342 "sipgen/metasrc/lexer.l" - { - /* The start of a to-sub-class code block. */ - codeIdx = 0; -@@ -2589,7 +2599,7 @@ - YY_BREAK - case 125: - YY_RULE_SETUP --#line 348 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 348 "sipgen/metasrc/lexer.l" - { - /* The start of an exported header code block. */ - codeIdx = 0; -@@ -2598,7 +2608,7 @@ - YY_BREAK - case 126: - YY_RULE_SETUP --#line 354 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 354 "sipgen/metasrc/lexer.l" - { - /* The start of part of an extract. */ - codeIdx = 0; -@@ -2610,7 +2620,7 @@ - YY_BREAK - case 127: - YY_RULE_SETUP --#line 363 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 363 "sipgen/metasrc/lexer.l" - { - /* The start of a module header code block. */ - codeIdx = 0; -@@ -2619,7 +2629,7 @@ - YY_BREAK - case 128: - YY_RULE_SETUP --#line 369 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 369 "sipgen/metasrc/lexer.l" - { - /* The start of a type header code block. */ - codeIdx = 0; -@@ -2628,7 +2638,7 @@ - YY_BREAK - case 129: - YY_RULE_SETUP --#line 375 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 375 "sipgen/metasrc/lexer.l" - { - /* The start of a pre-initialisation code block. */ - codeIdx = 0; -@@ -2637,7 +2647,7 @@ - YY_BREAK - case 130: - YY_RULE_SETUP --#line 381 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 381 "sipgen/metasrc/lexer.l" - { - /* The start of an initialisation code block. */ - codeIdx = 0; -@@ -2646,7 +2656,7 @@ - YY_BREAK - case 131: - YY_RULE_SETUP --#line 387 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 387 "sipgen/metasrc/lexer.l" - { - /* The start of a post-initialisation code block. */ - codeIdx = 0; -@@ -2655,7 +2665,7 @@ - YY_BREAK - case 132: - YY_RULE_SETUP --#line 393 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 393 "sipgen/metasrc/lexer.l" - { - /* The start of a class finalisation code block. */ - codeIdx = 0; -@@ -2664,7 +2674,7 @@ - YY_BREAK - case 133: - YY_RULE_SETUP --#line 399 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 399 "sipgen/metasrc/lexer.l" - { - /* The start of a unit code block. */ - codeIdx = 0; -@@ -2673,7 +2683,7 @@ - YY_BREAK - case 134: - YY_RULE_SETUP --#line 405 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 405 "sipgen/metasrc/lexer.l" - { - /* The start of a unit post-include code block. */ - codeIdx = 0; -@@ -2682,7 +2692,7 @@ - YY_BREAK - case 135: - YY_RULE_SETUP --#line 411 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 411 "sipgen/metasrc/lexer.l" - { - /* The start of a module code block. */ - codeIdx = 0; -@@ -2691,7 +2701,7 @@ - YY_BREAK - case 136: - YY_RULE_SETUP --#line 417 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 417 "sipgen/metasrc/lexer.l" - { - /* The start of a type code block. */ - codeIdx = 0; -@@ -2700,7 +2710,7 @@ - YY_BREAK - case 137: - YY_RULE_SETUP --#line 423 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 423 "sipgen/metasrc/lexer.l" - { - /* The start of a C++ method code block. */ - codeIdx = 0; -@@ -2709,7 +2719,7 @@ - YY_BREAK - case 138: - YY_RULE_SETUP --#line 429 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 429 "sipgen/metasrc/lexer.l" - { - /* The start of a C++ code block to insert before the MethodCode. */ - codeIdx = 0; -@@ -2718,7 +2728,7 @@ - YY_BREAK - case 139: - YY_RULE_SETUP --#line 435 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 435 "sipgen/metasrc/lexer.l" - { - /* The start of a C++ virtual call code block. */ - codeIdx = 0; -@@ -2727,7 +2737,7 @@ - YY_BREAK - case 140: - YY_RULE_SETUP --#line 441 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 441 "sipgen/metasrc/lexer.l" - { - /* The start of a C++ virtual code block. */ - codeIdx = 0; -@@ -2736,7 +2746,7 @@ - YY_BREAK - case 141: - YY_RULE_SETUP --#line 447 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 447 "sipgen/metasrc/lexer.l" - { - /* The start of a traverse code block. */ - codeIdx = 0; -@@ -2745,7 +2755,7 @@ - YY_BREAK - case 142: - YY_RULE_SETUP --#line 453 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 453 "sipgen/metasrc/lexer.l" - { - /* The start of a clear code block. */ - codeIdx = 0; -@@ -2754,7 +2764,7 @@ - YY_BREAK - case 143: - YY_RULE_SETUP --#line 459 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 459 "sipgen/metasrc/lexer.l" - { - /* The start of a get buffer code block. */ - codeIdx = 0; -@@ -2763,7 +2773,7 @@ - YY_BREAK - case 144: - YY_RULE_SETUP --#line 465 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 465 "sipgen/metasrc/lexer.l" - { - /* The start of a release buffer code block. */ - codeIdx = 0; -@@ -2772,7 +2782,7 @@ - YY_BREAK - case 145: - YY_RULE_SETUP --#line 471 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 471 "sipgen/metasrc/lexer.l" - { - /* The start of a read buffer code block. */ - codeIdx = 0; -@@ -2781,7 +2791,7 @@ - YY_BREAK - case 146: - YY_RULE_SETUP --#line 477 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 477 "sipgen/metasrc/lexer.l" - { - /* The start of a write buffer code block. */ - codeIdx = 0; -@@ -2790,7 +2800,7 @@ - YY_BREAK - case 147: - YY_RULE_SETUP --#line 483 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 483 "sipgen/metasrc/lexer.l" - { - /* The start of a segment count code block. */ - codeIdx = 0; -@@ -2799,7 +2809,7 @@ - YY_BREAK - case 148: - YY_RULE_SETUP --#line 489 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 489 "sipgen/metasrc/lexer.l" - { - /* The start of a char buffer code block. */ - codeIdx = 0; -@@ -2808,7 +2818,7 @@ - YY_BREAK - case 149: - YY_RULE_SETUP --#line 495 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 495 "sipgen/metasrc/lexer.l" - { - /* The start of a create instance code block. */ - codeIdx = 0; -@@ -2817,7 +2827,7 @@ - YY_BREAK - case 150: - YY_RULE_SETUP --#line 501 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 501 "sipgen/metasrc/lexer.l" - { - /* The start of a pickle code block. */ - codeIdx = 0; -@@ -2826,7 +2836,7 @@ - YY_BREAK - case 151: - YY_RULE_SETUP --#line 507 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 507 "sipgen/metasrc/lexer.l" - { - /* The start of a pre-Python code block. */ - deprecated("%PrePythonCode is deprecated"); -@@ -2837,7 +2847,7 @@ - YY_BREAK - case 152: - YY_RULE_SETUP --#line 515 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 515 "sipgen/metasrc/lexer.l" - { - /* The start of a raise Python exception code block. */ - codeIdx = 0; -@@ -2846,7 +2856,7 @@ - YY_BREAK - case 153: - YY_RULE_SETUP --#line 521 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 521 "sipgen/metasrc/lexer.l" - { - /* The start of an exported type hint code block. */ - codeIdx = 0; -@@ -2855,7 +2865,7 @@ - YY_BREAK - case 154: - YY_RULE_SETUP --#line 527 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 527 "sipgen/metasrc/lexer.l" - { - /* The start of a type hint code block. */ - codeIdx = 0; -@@ -2864,7 +2874,7 @@ - YY_BREAK - case 155: - YY_RULE_SETUP --#line 533 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 533 "sipgen/metasrc/lexer.l" - { - /* The start of a docstring block. */ - codeIdx = 0; -@@ -2876,7 +2886,7 @@ - YY_BREAK - case 156: - YY_RULE_SETUP --#line 542 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 542 "sipgen/metasrc/lexer.l" - { - /* The start of a documentation block. */ - deprecated("%Doc is deprecated, use %Extract instead"); -@@ -2887,7 +2897,7 @@ - YY_BREAK - case 157: - YY_RULE_SETUP --#line 550 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 550 "sipgen/metasrc/lexer.l" - { - /* The start of an exported documentation block. */ - deprecated("%ExportedDoc is deprecated, use %Extract instead"); -@@ -2898,7 +2908,7 @@ - YY_BREAK - case 158: - YY_RULE_SETUP --#line 558 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 558 "sipgen/metasrc/lexer.l" - { - /* The start of a Makefile code block. */ - deprecated("%Makefile is deprecated"); -@@ -2909,7 +2919,7 @@ - YY_BREAK - case 159: - YY_RULE_SETUP --#line 566 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 566 "sipgen/metasrc/lexer.l" - { - /* The start of an access code block. */ - codeIdx = 0; -@@ -2918,7 +2928,7 @@ - YY_BREAK - case 160: - YY_RULE_SETUP --#line 572 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 572 "sipgen/metasrc/lexer.l" - { - /* The start of a get code block. */ - codeIdx = 0; -@@ -2927,7 +2937,7 @@ - YY_BREAK - case 161: - YY_RULE_SETUP --#line 578 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 578 "sipgen/metasrc/lexer.l" - { - /* The start of a set code block. */ - codeIdx = 0; -@@ -2936,7 +2946,7 @@ - YY_BREAK - case 162: - YY_RULE_SETUP --#line 584 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 584 "sipgen/metasrc/lexer.l" - { - /* The start of part of a virtual error handler. */ - codeIdx = 0; -@@ -2948,7 +2958,7 @@ - YY_BREAK - case 163: - YY_RULE_SETUP --#line 593 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 593 "sipgen/metasrc/lexer.l" - { - /* The end of a code block. */ - BEGIN INITIAL; -@@ -2959,7 +2969,7 @@ - case 164: - /* rule 164 can match eol */ - YY_RULE_SETUP --#line 600 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 600 "sipgen/metasrc/lexer.l" - { - /* The end of a code line . */ - struct inputFile *ifp; -@@ -2981,7 +2991,7 @@ - YY_BREAK - case 165: - YY_RULE_SETUP --#line 619 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 619 "sipgen/metasrc/lexer.l" - { - /* The contents of a code line. */ - if (codeIdx == MAX_CODE_LINE_LENGTH) -@@ -2992,7 +3002,7 @@ - YY_BREAK - case 166: - YY_RULE_SETUP --#line 627 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 627 "sipgen/metasrc/lexer.l" - { - /* Anything else is returned as is. */ - return yytext[0]; -@@ -3000,10 +3010,10 @@ - YY_BREAK - case 167: - YY_RULE_SETUP --#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 632 "sipgen/metasrc/lexer.l" - ECHO; - YY_BREAK --#line 3007 "sip-4.19.12/sipgen/lexer.c" -+#line 3017 "sipgen/lexer.c" - case YY_STATE_EOF(INITIAL): - case YY_STATE_EOF(code): - case YY_STATE_EOF(ccomment): -@@ -3138,6 +3148,7 @@ - "fatal flex scanner internal error--no action found" ); - } /* end of action switch */ - } /* end of scanning one token */ -+ } /* end of user's declarations */ - } /* end of yylex */ - - /* yy_get_next_buffer - try to read in a new buffer -@@ -3149,9 +3160,9 @@ - */ - static int yy_get_next_buffer (void) - { -- register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; -- register char *source = (yytext_ptr); -- register int number_to_move, i; -+ char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; -+ char *source = (yytext_ptr); -+ yy_size_t number_to_move, i; - int ret_val; - - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) -@@ -3180,7 +3191,7 @@ - /* Try to read more data. */ - - /* First move last chars to start of buffer. */ -- number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; -+ number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; - - for ( i = 0; i < number_to_move; ++i ) - *(dest++) = *(source++); -@@ -3193,21 +3204,21 @@ - - else - { -- yy_size_t num_to_read = -+ int num_to_read = - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; - - while ( num_to_read <= 0 ) - { /* Not enough room in the buffer - grow it. */ - - /* just a shorter name for the current buffer */ -- YY_BUFFER_STATE b = YY_CURRENT_BUFFER; -+ YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { -- yy_size_t new_size = b->yy_buf_size * 2; -+ int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; -@@ -3216,11 +3227,11 @@ - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ -- yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); -+ yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ -- b->yy_ch_buf = 0; -+ b->yy_ch_buf = NULL; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( -@@ -3262,10 +3273,10 @@ - else - ret_val = EOB_ACT_CONTINUE_SCAN; - -- if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { -+ if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { - /* Extend the array by 50%, plus the number we really need. */ -- yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); -- YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); -+ int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); -+ YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); - } -@@ -3283,15 +3294,15 @@ - - static yy_state_type yy_get_previous_state (void) - { -- register yy_state_type yy_current_state; -- register char *yy_cp; -+ yy_state_type yy_current_state; -+ char *yy_cp; - - yy_current_state = (yy_start); - yy_current_state += YY_AT_BOL(); - - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) - { -- register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); -+ YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; -@@ -3303,7 +3314,7 @@ - if ( yy_current_state >= 1231 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } -- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; -+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - } - - return yy_current_state; -@@ -3316,10 +3327,10 @@ - */ - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) - { -- register int yy_is_jam; -- register char *yy_cp = (yy_c_buf_p); -+ int yy_is_jam; -+ char *yy_cp = (yy_c_buf_p); - -- register YY_CHAR yy_c = 1; -+ YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; -@@ -3331,15 +3342,17 @@ - if ( yy_current_state >= 1231 ) - yy_c = yy_meta[(unsigned int) yy_c]; - } -- yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; -+ yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; - yy_is_jam = (yy_current_state == 1230); - -- return yy_is_jam ? 0 : yy_current_state; -+ return yy_is_jam ? 0 : yy_current_state; - } - -- static void yyunput (int c, register char * yy_bp ) -+#ifndef YY_NO_UNPUT -+ -+ static void yyunput (int c, char * yy_bp ) - { -- register char *yy_cp; -+ char *yy_cp; - - yy_cp = (yy_c_buf_p); - -@@ -3349,10 +3362,10 @@ - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - { /* need to shift things up to make room */ - /* +2 for EOB chars. */ -- register yy_size_t number_to_move = (yy_n_chars) + 2; -- register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ -+ int number_to_move = (yy_n_chars) + 2; -+ char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; -- register char *source = -+ char *source = - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; - - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) -@@ -3361,7 +3374,7 @@ - yy_cp += (int) (dest - source); - yy_bp += (int) (dest - source); - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = -- (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; -+ (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; - - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) - YY_FATAL_ERROR( "flex scanner push-back overflow" ); -@@ -3374,6 +3387,8 @@ - (yy_c_buf_p) = yy_cp; - } - -+#endif -+ - #ifndef YY_NO_INPUT - #ifdef __cplusplus - static int yyinput (void) -@@ -3398,7 +3413,7 @@ - - else - { /* need more input */ -- yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); -+ int offset = (yy_c_buf_p) - (yytext_ptr); - ++(yy_c_buf_p); - - switch ( yy_get_next_buffer( ) ) -@@ -3530,7 +3545,7 @@ - /* yy_ch_buf has to be 2 characters longer than the size given because - * we need to put in 2 end-of-buffer characters. - */ -- b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); -+ b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); - -@@ -3560,10 +3575,6 @@ - yyfree((void *) b ); - } - --#ifndef __cplusplus --extern int isatty (int ); --#endif /* __cplusplus */ -- - /* Initializes or reinitializes a buffer. - * This function is sometimes called more than once on the same buffer, - * such as during a yyrestart() or at EOF. -@@ -3676,7 +3687,7 @@ - */ - static void yyensure_buffer_stack (void) - { -- yy_size_t num_to_alloc; -+ int num_to_alloc; - - if (!(yy_buffer_stack)) { - -@@ -3684,7 +3695,7 @@ - * scanner will even need a stack. We use 2 instead of 1 to avoid an - * immediate realloc on the next call. - */ -- num_to_alloc = 1; -+ num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ - (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc - (num_to_alloc * sizeof(struct yy_buffer_state*) - ); -@@ -3701,7 +3712,7 @@ - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ - - /* Increase the buffer to prepare for a possible push. */ -- int grow_size = 8 /* arbitrary grow size */; -+ yy_size_t grow_size = 8 /* arbitrary grow size */; - - num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc -@@ -3731,16 +3742,16 @@ - base[size-2] != YY_END_OF_BUFFER_CHAR || - base[size-1] != YY_END_OF_BUFFER_CHAR ) - /* They forgot to leave room for the EOB's. */ -- return 0; -+ return NULL; - - b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); - if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - -- b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ -+ b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ - b->yy_buf_pos = b->yy_ch_buf = base; - b->yy_is_our_buffer = 0; -- b->yy_input_file = 0; -+ b->yy_input_file = NULL; - b->yy_n_chars = b->yy_buf_size; - b->yy_is_interactive = 0; - b->yy_at_bol = 1; -@@ -3763,24 +3774,25 @@ - YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) - { - -- return yy_scan_bytes(yystr,strlen(yystr) ); -+ return yy_scan_bytes(yystr,(int) strlen(yystr) ); - } - - /** Setup the input buffer state to scan the given bytes. The next call to yylex() will - * scan from a @e copy of @a bytes. -- * @param bytes the byte buffer to scan -- * @param len the number of bytes in the buffer pointed to by @a bytes. -+ * @param yybytes the byte buffer to scan -+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. - * - * @return the newly allocated buffer state object. - */ --YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) -+YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) - { - YY_BUFFER_STATE b; - char *buf; -- yy_size_t n, i; -+ yy_size_t n; -+ yy_size_t i; - - /* Get memory for full buffer, including space for trailing EOB's. */ -- n = _yybytes_len + 2; -+ n = (yy_size_t) _yybytes_len + 2; - buf = (char *) yyalloc(n ); - if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); -@@ -3802,14 +3814,14 @@ - return b; - } - -- static void yy_push_state (int new_state ) -+ static void yy_push_state (int _new_state ) - { - if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) - { - yy_size_t new_size; - - (yy_start_stack_depth) += YY_START_STACK_INCR; -- new_size = (yy_start_stack_depth) * sizeof( int ); -+ new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); - - if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) yyalloc(new_size ); -@@ -3823,7 +3835,7 @@ - - (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - -- BEGIN(new_state); -+ BEGIN(_new_state); - } - - static void yy_pop_state (void) -@@ -3843,9 +3855,9 @@ - #define YY_EXIT_FAILURE 2 - #endif - --static void yy_fatal_error (yyconst char* msg ) -+static void yynoreturn yy_fatal_error (yyconst char* msg ) - { -- (void) fprintf( stderr, "%s\n", msg ); -+ (void) fprintf( stderr, "%s\n", msg ); - exit( YY_EXIT_FAILURE ); - } - -@@ -3856,7 +3868,7 @@ - do \ - { \ - /* Undo effects of setting up yytext. */ \ -- int yyless_macro_arg = (n); \ -+ yy_size_t yyless_macro_arg = (n); \ - YY_LESS_LINENO(yyless_macro_arg);\ - yytext[yyleng] = (yy_hold_char); \ - (yy_c_buf_p) = yytext + yyless_macro_arg; \ -@@ -3896,7 +3908,7 @@ - /** Get the length of the current token. - * - */ --yy_size_t yyget_leng (void) -+int yyget_leng (void) - { - return yyleng; - } -@@ -3911,29 +3923,29 @@ - } - - /** Set the current line number. -- * @param line_number -+ * @param _line_number line number - * - */ --void yyset_lineno (int line_number ) -+void yyset_lineno (int _line_number ) - { - -- yylineno = line_number; -+ yylineno = _line_number; - } - - /** Set the input stream. This does not discard the current - * input buffer. -- * @param in_str A readable stream. -+ * @param _in_str A readable stream. - * - * @see yy_switch_to_buffer - */ --void yyset_in (FILE * in_str ) -+void yyset_in (FILE * _in_str ) - { -- yyin = in_str ; -+ yyin = _in_str ; - } - --void yyset_out (FILE * out_str ) -+void yyset_out (FILE * _out_str ) - { -- yyout = out_str ; -+ yyout = _out_str ; - } - - int yyget_debug (void) -@@ -3941,9 +3953,9 @@ - return yy_flex_debug; - } - --void yyset_debug (int bdebug ) -+void yyset_debug (int _bdebug ) - { -- yy_flex_debug = bdebug ; -+ yy_flex_debug = _bdebug ; - } - - static int yy_init_globals (void) -@@ -3952,10 +3964,10 @@ - * This function is called from yylex_destroy(), so don't allocate here. - */ - -- (yy_buffer_stack) = 0; -+ (yy_buffer_stack) = NULL; - (yy_buffer_stack_top) = 0; - (yy_buffer_stack_max) = 0; -- (yy_c_buf_p) = (char *) 0; -+ (yy_c_buf_p) = NULL; - (yy_init) = 0; - (yy_start) = 0; - -@@ -3968,8 +3980,8 @@ - yyin = stdin; - yyout = stdout; - #else -- yyin = (FILE *) 0; -- yyout = (FILE *) 0; -+ yyin = NULL; -+ yyout = NULL; - #endif - - /* For future reference: Set errno on error, since we are called by -@@ -4011,7 +4023,8 @@ - #ifndef yytext_ptr - static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) - { -- register int i; -+ -+ int i; - for ( i = 0; i < n; ++i ) - s1[i] = s2[i]; - } -@@ -4020,7 +4033,7 @@ - #ifdef YY_NEED_STRLEN - static int yy_flex_strlen (yyconst char * s ) - { -- register int n; -+ int n; - for ( n = 0; s[n]; ++n ) - ; - -@@ -4030,11 +4043,12 @@ - - void *yyalloc (yy_size_t size ) - { -- return (void *) malloc( size ); -+ return malloc(size); - } - - void *yyrealloc (void * ptr, yy_size_t size ) - { -+ - /* The cast to (char *) in the following accommodates both - * implementations that use char* generic pointers, and those - * that use void* generic pointers. It works with the latter -@@ -4042,17 +4056,17 @@ - * any pointer type to void*, and deal with argument conversions - * as though doing an assignment. - */ -- return (void *) realloc( (char *) ptr, size ); -+ return realloc(ptr, size); - } - - void yyfree (void * ptr ) - { -- free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ -+ free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ - } - - #define YYTABLES_NAME "yytables" - --#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l" -+#line 632 "sipgen/metasrc/lexer.l" - - - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/metasrc/parser.y sip/sipgen/metasrc/parser.y ---- ./sip-4.19.12.orig/sipgen/metasrc/parser.y 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sipgen/metasrc/parser.y 2018-09-24 13:12:20.673276084 -0400 -@@ -7586,7 +7586,7 @@ - if (getDeprecated(optflgs)) - setIsDeprecated(od); - -- if (!isPrivate(od) && !isSignal(od) && (od->common->slot == no_slot || od->common->slot == call_slot)) -+ if (!isPrivate(od) && (od->common->slot == no_slot || od->common->slot == call_slot)) - { - od->kwargs = keywordArgs(mod, optflgs, &od->pysig, hasProtected(od->common)); - -@@ -7598,7 +7598,7 @@ - * we need to make sure that any other overloads' keyword argument - * names are marked as used. - */ -- if (isProtected(od) && !inMainModule()) -+ if (!isSignal(od) && isProtected(od) && !inMainModule()) - { - overDef *kwod; - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.c sip/sipgen/parser.c ---- ./sip-4.19.12.orig/sipgen/parser.c 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sipgen/parser.c 2018-09-18 18:12:23.641053271 -0400 -@@ -1,14 +1,13 @@ --/* A Bison parser, made by GNU Bison 2.3. */ -+/* A Bison parser, made by GNU Bison 3.0.4. */ - --/* Skeleton implementation for Bison's Yacc-like parsers in C -+/* Bison implementation for Yacc-like parsers in C - -- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -- Free Software Foundation, Inc. -+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - -- This program is free software; you can redistribute it and/or modify -+ This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -+ the Free Software Foundation, either version 3 of the License, or -+ (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of -@@ -16,9 +15,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. */ -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ - - /* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work -@@ -47,7 +44,7 @@ - #define YYBISON 1 - - /* Bison version. */ --#define YYBISON_VERSION "2.3" -+#define YYBISON_VERSION "3.0.4" - - /* Skeleton name. */ - #define YYSKELETON_NAME "yacc.c" -@@ -55,324 +52,17 @@ - /* Pure parsers. */ - #define YYPURE 0 - --/* Using locations. */ --#define YYLSP_NEEDED 0 -- -- -+/* Push parsers. */ -+#define YYPUSH 0 - --/* Tokens. */ --#ifndef YYTOKENTYPE --# define YYTOKENTYPE -- /* Put the tokens into the symbol table, so that GDB and other debuggers -- know about them. */ -- enum yytokentype { -- TK_API = 258, -- TK_AUTOPYNAME = 259, -- TK_DEFDOCSTRFMT = 260, -- TK_DEFDOCSTRSIG = 261, -- TK_DEFENCODING = 262, -- TK_PLUGIN = 263, -- TK_VIRTERRORHANDLER = 264, -- TK_EXPTYPEHINTCODE = 265, -- TK_TYPEHINTCODE = 266, -- TK_DOCSTRING = 267, -- TK_DOC = 268, -- TK_EXPORTEDDOC = 269, -- TK_EXTRACT = 270, -- TK_MAKEFILE = 271, -- TK_ACCESSCODE = 272, -- TK_GETCODE = 273, -- TK_SETCODE = 274, -- TK_PREINITCODE = 275, -- TK_INITCODE = 276, -- TK_POSTINITCODE = 277, -- TK_FINALCODE = 278, -- TK_UNITCODE = 279, -- TK_UNITPOSTINCLUDECODE = 280, -- TK_MODCODE = 281, -- TK_TYPECODE = 282, -- TK_PREPYCODE = 283, -- TK_COPYING = 284, -- TK_MAPPEDTYPE = 285, -- TK_CODELINE = 286, -- TK_IF = 287, -- TK_END = 288, -- TK_NAME_VALUE = 289, -- TK_PATH_VALUE = 290, -- TK_STRING_VALUE = 291, -- TK_VIRTUALCATCHERCODE = 292, -- TK_TRAVERSECODE = 293, -- TK_CLEARCODE = 294, -- TK_GETBUFFERCODE = 295, -- TK_RELEASEBUFFERCODE = 296, -- TK_READBUFFERCODE = 297, -- TK_WRITEBUFFERCODE = 298, -- TK_SEGCOUNTCODE = 299, -- TK_CHARBUFFERCODE = 300, -- TK_PICKLECODE = 301, -- TK_VIRTUALCALLCODE = 302, -- TK_METHODCODE = 303, -- TK_PREMETHODCODE = 304, -- TK_INSTANCECODE = 305, -- TK_FROMTYPE = 306, -- TK_TOTYPE = 307, -- TK_TOSUBCLASS = 308, -- TK_INCLUDE = 309, -- TK_OPTINCLUDE = 310, -- TK_IMPORT = 311, -- TK_EXPHEADERCODE = 312, -- TK_MODHEADERCODE = 313, -- TK_TYPEHEADERCODE = 314, -- TK_MODULE = 315, -- TK_CMODULE = 316, -- TK_CONSMODULE = 317, -- TK_COMPOMODULE = 318, -- TK_CLASS = 319, -- TK_STRUCT = 320, -- TK_PUBLIC = 321, -- TK_PROTECTED = 322, -- TK_PRIVATE = 323, -- TK_SIGNALS = 324, -- TK_SIGNAL_METHOD = 325, -- TK_SLOTS = 326, -- TK_SLOT_METHOD = 327, -- TK_BOOL = 328, -- TK_SHORT = 329, -- TK_INT = 330, -- TK_LONG = 331, -- TK_FLOAT = 332, -- TK_DOUBLE = 333, -- TK_CHAR = 334, -- TK_WCHAR_T = 335, -- TK_VOID = 336, -- TK_PYOBJECT = 337, -- TK_PYTUPLE = 338, -- TK_PYLIST = 339, -- TK_PYDICT = 340, -- TK_PYCALLABLE = 341, -- TK_PYSLICE = 342, -- TK_PYTYPE = 343, -- TK_PYBUFFER = 344, -- TK_VIRTUAL = 345, -- TK_ENUM = 346, -- TK_SIGNED = 347, -- TK_UNSIGNED = 348, -- TK_SCOPE = 349, -- TK_LOGICAL_OR = 350, -- TK_CONST = 351, -- TK_STATIC = 352, -- TK_SIPSIGNAL = 353, -- TK_SIPSLOT = 354, -- TK_SIPANYSLOT = 355, -- TK_SIPRXCON = 356, -- TK_SIPRXDIS = 357, -- TK_SIPSLOTCON = 358, -- TK_SIPSLOTDIS = 359, -- TK_SIPSSIZET = 360, -- TK_NUMBER_VALUE = 361, -- TK_REAL_VALUE = 362, -- TK_TYPEDEF = 363, -- TK_NAMESPACE = 364, -- TK_TIMELINE = 365, -- TK_PLATFORMS = 366, -- TK_FEATURE = 367, -- TK_LICENSE = 368, -- TK_QCHAR_VALUE = 369, -- TK_TRUE_VALUE = 370, -- TK_FALSE_VALUE = 371, -- TK_NULL_VALUE = 372, -- TK_OPERATOR = 373, -- TK_THROW = 374, -- TK_QOBJECT = 375, -- TK_EXCEPTION = 376, -- TK_RAISECODE = 377, -- TK_VIRTERRORCODE = 378, -- TK_EXPLICIT = 379, -- TK_TEMPLATE = 380, -- TK_FINAL = 381, -- TK_ELLIPSIS = 382, -- TK_DEFMETATYPE = 383, -- TK_DEFSUPERTYPE = 384, -- TK_PROPERTY = 385, -- TK_HIDE_NS = 386, -- TK_FORMAT = 387, -- TK_GET = 388, -- TK_ID = 389, -- TK_KWARGS = 390, -- TK_LANGUAGE = 391, -- TK_LICENSEE = 392, -- TK_NAME = 393, -- TK_OPTIONAL = 394, -- TK_ORDER = 395, -- TK_REMOVELEADING = 396, -- TK_SET = 397, -- TK_SIGNATURE = 398, -- TK_TIMESTAMP = 399, -- TK_TYPE = 400, -- TK_USEARGNAMES = 401, -- TK_USELIMITEDAPI = 402, -- TK_ALLRAISEPYEXC = 403, -- TK_CALLSUPERINIT = 404, -- TK_DEFERRORHANDLER = 405, -- TK_VERSION = 406 -- }; --#endif --/* Tokens. */ --#define TK_API 258 --#define TK_AUTOPYNAME 259 --#define TK_DEFDOCSTRFMT 260 --#define TK_DEFDOCSTRSIG 261 --#define TK_DEFENCODING 262 --#define TK_PLUGIN 263 --#define TK_VIRTERRORHANDLER 264 --#define TK_EXPTYPEHINTCODE 265 --#define TK_TYPEHINTCODE 266 --#define TK_DOCSTRING 267 --#define TK_DOC 268 --#define TK_EXPORTEDDOC 269 --#define TK_EXTRACT 270 --#define TK_MAKEFILE 271 --#define TK_ACCESSCODE 272 --#define TK_GETCODE 273 --#define TK_SETCODE 274 --#define TK_PREINITCODE 275 --#define TK_INITCODE 276 --#define TK_POSTINITCODE 277 --#define TK_FINALCODE 278 --#define TK_UNITCODE 279 --#define TK_UNITPOSTINCLUDECODE 280 --#define TK_MODCODE 281 --#define TK_TYPECODE 282 --#define TK_PREPYCODE 283 --#define TK_COPYING 284 --#define TK_MAPPEDTYPE 285 --#define TK_CODELINE 286 --#define TK_IF 287 --#define TK_END 288 --#define TK_NAME_VALUE 289 --#define TK_PATH_VALUE 290 --#define TK_STRING_VALUE 291 --#define TK_VIRTUALCATCHERCODE 292 --#define TK_TRAVERSECODE 293 --#define TK_CLEARCODE 294 --#define TK_GETBUFFERCODE 295 --#define TK_RELEASEBUFFERCODE 296 --#define TK_READBUFFERCODE 297 --#define TK_WRITEBUFFERCODE 298 --#define TK_SEGCOUNTCODE 299 --#define TK_CHARBUFFERCODE 300 --#define TK_PICKLECODE 301 --#define TK_VIRTUALCALLCODE 302 --#define TK_METHODCODE 303 --#define TK_PREMETHODCODE 304 --#define TK_INSTANCECODE 305 --#define TK_FROMTYPE 306 --#define TK_TOTYPE 307 --#define TK_TOSUBCLASS 308 --#define TK_INCLUDE 309 --#define TK_OPTINCLUDE 310 --#define TK_IMPORT 311 --#define TK_EXPHEADERCODE 312 --#define TK_MODHEADERCODE 313 --#define TK_TYPEHEADERCODE 314 --#define TK_MODULE 315 --#define TK_CMODULE 316 --#define TK_CONSMODULE 317 --#define TK_COMPOMODULE 318 --#define TK_CLASS 319 --#define TK_STRUCT 320 --#define TK_PUBLIC 321 --#define TK_PROTECTED 322 --#define TK_PRIVATE 323 --#define TK_SIGNALS 324 --#define TK_SIGNAL_METHOD 325 --#define TK_SLOTS 326 --#define TK_SLOT_METHOD 327 --#define TK_BOOL 328 --#define TK_SHORT 329 --#define TK_INT 330 --#define TK_LONG 331 --#define TK_FLOAT 332 --#define TK_DOUBLE 333 --#define TK_CHAR 334 --#define TK_WCHAR_T 335 --#define TK_VOID 336 --#define TK_PYOBJECT 337 --#define TK_PYTUPLE 338 --#define TK_PYLIST 339 --#define TK_PYDICT 340 --#define TK_PYCALLABLE 341 --#define TK_PYSLICE 342 --#define TK_PYTYPE 343 --#define TK_PYBUFFER 344 --#define TK_VIRTUAL 345 --#define TK_ENUM 346 --#define TK_SIGNED 347 --#define TK_UNSIGNED 348 --#define TK_SCOPE 349 --#define TK_LOGICAL_OR 350 --#define TK_CONST 351 --#define TK_STATIC 352 --#define TK_SIPSIGNAL 353 --#define TK_SIPSLOT 354 --#define TK_SIPANYSLOT 355 --#define TK_SIPRXCON 356 --#define TK_SIPRXDIS 357 --#define TK_SIPSLOTCON 358 --#define TK_SIPSLOTDIS 359 --#define TK_SIPSSIZET 360 --#define TK_NUMBER_VALUE 361 --#define TK_REAL_VALUE 362 --#define TK_TYPEDEF 363 --#define TK_NAMESPACE 364 --#define TK_TIMELINE 365 --#define TK_PLATFORMS 366 --#define TK_FEATURE 367 --#define TK_LICENSE 368 --#define TK_QCHAR_VALUE 369 --#define TK_TRUE_VALUE 370 --#define TK_FALSE_VALUE 371 --#define TK_NULL_VALUE 372 --#define TK_OPERATOR 373 --#define TK_THROW 374 --#define TK_QOBJECT 375 --#define TK_EXCEPTION 376 --#define TK_RAISECODE 377 --#define TK_VIRTERRORCODE 378 --#define TK_EXPLICIT 379 --#define TK_TEMPLATE 380 --#define TK_FINAL 381 --#define TK_ELLIPSIS 382 --#define TK_DEFMETATYPE 383 --#define TK_DEFSUPERTYPE 384 --#define TK_PROPERTY 385 --#define TK_HIDE_NS 386 --#define TK_FORMAT 387 --#define TK_GET 388 --#define TK_ID 389 --#define TK_KWARGS 390 --#define TK_LANGUAGE 391 --#define TK_LICENSEE 392 --#define TK_NAME 393 --#define TK_OPTIONAL 394 --#define TK_ORDER 395 --#define TK_REMOVELEADING 396 --#define TK_SET 397 --#define TK_SIGNATURE 398 --#define TK_TIMESTAMP 399 --#define TK_TYPE 400 --#define TK_USEARGNAMES 401 --#define TK_USELIMITEDAPI 402 --#define TK_ALLRAISEPYEXC 403 --#define TK_CALLSUPERINIT 404 --#define TK_DEFERRORHANDLER 405 --#define TK_VERSION 406 -+/* Pull parsers. */ -+#define YYPULL 1 - - - - - /* Copy the first part of user declarations. */ --#line 19 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 19 "sipgen/metasrc/parser.y" /* yacc.c:339 */ - - #include <stdlib.h> - #include <string.h> -@@ -556,11 +246,15 @@ - static void checkEllipsis(signatureDef *sd); - static scopedNameDef *fullyQualifiedName(scopedNameDef *snd); - -+#line 250 "sipgen/parser.c" /* yacc.c:339 */ - --/* Enabling traces. */ --#ifndef YYDEBUG --# define YYDEBUG 0 --#endif -+# ifndef YY_NULLPTR -+# if defined __cplusplus && 201103L <= __cplusplus -+# define YY_NULLPTR nullptr -+# else -+# define YY_NULLPTR 0 -+# endif -+# endif - - /* Enabling verbose error messages. */ - #ifdef YYERROR_VERBOSE -@@ -570,15 +264,332 @@ - # define YYERROR_VERBOSE 0 - #endif - --/* Enabling the token table. */ --#ifndef YYTOKEN_TABLE --# define YYTOKEN_TABLE 0 -+/* In a future release of Bison, this section will be replaced -+ by #include "parser.h". */ -+#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED -+# define YY_YY_SIPGEN_PARSER_H_INCLUDED -+/* Debug traces. */ -+#ifndef YYDEBUG -+# define YYDEBUG 0 -+#endif -+#if YYDEBUG -+extern int yydebug; - #endif - -+/* Token type. */ -+#ifndef YYTOKENTYPE -+# define YYTOKENTYPE -+ enum yytokentype -+ { -+ TK_API = 258, -+ TK_AUTOPYNAME = 259, -+ TK_DEFDOCSTRFMT = 260, -+ TK_DEFDOCSTRSIG = 261, -+ TK_DEFENCODING = 262, -+ TK_PLUGIN = 263, -+ TK_VIRTERRORHANDLER = 264, -+ TK_EXPTYPEHINTCODE = 265, -+ TK_TYPEHINTCODE = 266, -+ TK_DOCSTRING = 267, -+ TK_DOC = 268, -+ TK_EXPORTEDDOC = 269, -+ TK_EXTRACT = 270, -+ TK_MAKEFILE = 271, -+ TK_ACCESSCODE = 272, -+ TK_GETCODE = 273, -+ TK_SETCODE = 274, -+ TK_PREINITCODE = 275, -+ TK_INITCODE = 276, -+ TK_POSTINITCODE = 277, -+ TK_FINALCODE = 278, -+ TK_UNITCODE = 279, -+ TK_UNITPOSTINCLUDECODE = 280, -+ TK_MODCODE = 281, -+ TK_TYPECODE = 282, -+ TK_PREPYCODE = 283, -+ TK_COPYING = 284, -+ TK_MAPPEDTYPE = 285, -+ TK_CODELINE = 286, -+ TK_IF = 287, -+ TK_END = 288, -+ TK_NAME_VALUE = 289, -+ TK_PATH_VALUE = 290, -+ TK_STRING_VALUE = 291, -+ TK_VIRTUALCATCHERCODE = 292, -+ TK_TRAVERSECODE = 293, -+ TK_CLEARCODE = 294, -+ TK_GETBUFFERCODE = 295, -+ TK_RELEASEBUFFERCODE = 296, -+ TK_READBUFFERCODE = 297, -+ TK_WRITEBUFFERCODE = 298, -+ TK_SEGCOUNTCODE = 299, -+ TK_CHARBUFFERCODE = 300, -+ TK_PICKLECODE = 301, -+ TK_VIRTUALCALLCODE = 302, -+ TK_METHODCODE = 303, -+ TK_PREMETHODCODE = 304, -+ TK_INSTANCECODE = 305, -+ TK_FROMTYPE = 306, -+ TK_TOTYPE = 307, -+ TK_TOSUBCLASS = 308, -+ TK_INCLUDE = 309, -+ TK_OPTINCLUDE = 310, -+ TK_IMPORT = 311, -+ TK_EXPHEADERCODE = 312, -+ TK_MODHEADERCODE = 313, -+ TK_TYPEHEADERCODE = 314, -+ TK_MODULE = 315, -+ TK_CMODULE = 316, -+ TK_CONSMODULE = 317, -+ TK_COMPOMODULE = 318, -+ TK_CLASS = 319, -+ TK_STRUCT = 320, -+ TK_PUBLIC = 321, -+ TK_PROTECTED = 322, -+ TK_PRIVATE = 323, -+ TK_SIGNALS = 324, -+ TK_SIGNAL_METHOD = 325, -+ TK_SLOTS = 326, -+ TK_SLOT_METHOD = 327, -+ TK_BOOL = 328, -+ TK_SHORT = 329, -+ TK_INT = 330, -+ TK_LONG = 331, -+ TK_FLOAT = 332, -+ TK_DOUBLE = 333, -+ TK_CHAR = 334, -+ TK_WCHAR_T = 335, -+ TK_VOID = 336, -+ TK_PYOBJECT = 337, -+ TK_PYTUPLE = 338, -+ TK_PYLIST = 339, -+ TK_PYDICT = 340, -+ TK_PYCALLABLE = 341, -+ TK_PYSLICE = 342, -+ TK_PYTYPE = 343, -+ TK_PYBUFFER = 344, -+ TK_VIRTUAL = 345, -+ TK_ENUM = 346, -+ TK_SIGNED = 347, -+ TK_UNSIGNED = 348, -+ TK_SCOPE = 349, -+ TK_LOGICAL_OR = 350, -+ TK_CONST = 351, -+ TK_STATIC = 352, -+ TK_SIPSIGNAL = 353, -+ TK_SIPSLOT = 354, -+ TK_SIPANYSLOT = 355, -+ TK_SIPRXCON = 356, -+ TK_SIPRXDIS = 357, -+ TK_SIPSLOTCON = 358, -+ TK_SIPSLOTDIS = 359, -+ TK_SIPSSIZET = 360, -+ TK_NUMBER_VALUE = 361, -+ TK_REAL_VALUE = 362, -+ TK_TYPEDEF = 363, -+ TK_NAMESPACE = 364, -+ TK_TIMELINE = 365, -+ TK_PLATFORMS = 366, -+ TK_FEATURE = 367, -+ TK_LICENSE = 368, -+ TK_QCHAR_VALUE = 369, -+ TK_TRUE_VALUE = 370, -+ TK_FALSE_VALUE = 371, -+ TK_NULL_VALUE = 372, -+ TK_OPERATOR = 373, -+ TK_THROW = 374, -+ TK_QOBJECT = 375, -+ TK_EXCEPTION = 376, -+ TK_RAISECODE = 377, -+ TK_VIRTERRORCODE = 378, -+ TK_EXPLICIT = 379, -+ TK_TEMPLATE = 380, -+ TK_FINAL = 381, -+ TK_ELLIPSIS = 382, -+ TK_DEFMETATYPE = 383, -+ TK_DEFSUPERTYPE = 384, -+ TK_PROPERTY = 385, -+ TK_HIDE_NS = 386, -+ TK_FORMAT = 387, -+ TK_GET = 388, -+ TK_ID = 389, -+ TK_KWARGS = 390, -+ TK_LANGUAGE = 391, -+ TK_LICENSEE = 392, -+ TK_NAME = 393, -+ TK_OPTIONAL = 394, -+ TK_ORDER = 395, -+ TK_REMOVELEADING = 396, -+ TK_SET = 397, -+ TK_SIGNATURE = 398, -+ TK_TIMESTAMP = 399, -+ TK_TYPE = 400, -+ TK_USEARGNAMES = 401, -+ TK_USELIMITEDAPI = 402, -+ TK_ALLRAISEPYEXC = 403, -+ TK_CALLSUPERINIT = 404, -+ TK_DEFERRORHANDLER = 405, -+ TK_VERSION = 406 -+ }; -+#endif -+/* Tokens. */ -+#define TK_API 258 -+#define TK_AUTOPYNAME 259 -+#define TK_DEFDOCSTRFMT 260 -+#define TK_DEFDOCSTRSIG 261 -+#define TK_DEFENCODING 262 -+#define TK_PLUGIN 263 -+#define TK_VIRTERRORHANDLER 264 -+#define TK_EXPTYPEHINTCODE 265 -+#define TK_TYPEHINTCODE 266 -+#define TK_DOCSTRING 267 -+#define TK_DOC 268 -+#define TK_EXPORTEDDOC 269 -+#define TK_EXTRACT 270 -+#define TK_MAKEFILE 271 -+#define TK_ACCESSCODE 272 -+#define TK_GETCODE 273 -+#define TK_SETCODE 274 -+#define TK_PREINITCODE 275 -+#define TK_INITCODE 276 -+#define TK_POSTINITCODE 277 -+#define TK_FINALCODE 278 -+#define TK_UNITCODE 279 -+#define TK_UNITPOSTINCLUDECODE 280 -+#define TK_MODCODE 281 -+#define TK_TYPECODE 282 -+#define TK_PREPYCODE 283 -+#define TK_COPYING 284 -+#define TK_MAPPEDTYPE 285 -+#define TK_CODELINE 286 -+#define TK_IF 287 -+#define TK_END 288 -+#define TK_NAME_VALUE 289 -+#define TK_PATH_VALUE 290 -+#define TK_STRING_VALUE 291 -+#define TK_VIRTUALCATCHERCODE 292 -+#define TK_TRAVERSECODE 293 -+#define TK_CLEARCODE 294 -+#define TK_GETBUFFERCODE 295 -+#define TK_RELEASEBUFFERCODE 296 -+#define TK_READBUFFERCODE 297 -+#define TK_WRITEBUFFERCODE 298 -+#define TK_SEGCOUNTCODE 299 -+#define TK_CHARBUFFERCODE 300 -+#define TK_PICKLECODE 301 -+#define TK_VIRTUALCALLCODE 302 -+#define TK_METHODCODE 303 -+#define TK_PREMETHODCODE 304 -+#define TK_INSTANCECODE 305 -+#define TK_FROMTYPE 306 -+#define TK_TOTYPE 307 -+#define TK_TOSUBCLASS 308 -+#define TK_INCLUDE 309 -+#define TK_OPTINCLUDE 310 -+#define TK_IMPORT 311 -+#define TK_EXPHEADERCODE 312 -+#define TK_MODHEADERCODE 313 -+#define TK_TYPEHEADERCODE 314 -+#define TK_MODULE 315 -+#define TK_CMODULE 316 -+#define TK_CONSMODULE 317 -+#define TK_COMPOMODULE 318 -+#define TK_CLASS 319 -+#define TK_STRUCT 320 -+#define TK_PUBLIC 321 -+#define TK_PROTECTED 322 -+#define TK_PRIVATE 323 -+#define TK_SIGNALS 324 -+#define TK_SIGNAL_METHOD 325 -+#define TK_SLOTS 326 -+#define TK_SLOT_METHOD 327 -+#define TK_BOOL 328 -+#define TK_SHORT 329 -+#define TK_INT 330 -+#define TK_LONG 331 -+#define TK_FLOAT 332 -+#define TK_DOUBLE 333 -+#define TK_CHAR 334 -+#define TK_WCHAR_T 335 -+#define TK_VOID 336 -+#define TK_PYOBJECT 337 -+#define TK_PYTUPLE 338 -+#define TK_PYLIST 339 -+#define TK_PYDICT 340 -+#define TK_PYCALLABLE 341 -+#define TK_PYSLICE 342 -+#define TK_PYTYPE 343 -+#define TK_PYBUFFER 344 -+#define TK_VIRTUAL 345 -+#define TK_ENUM 346 -+#define TK_SIGNED 347 -+#define TK_UNSIGNED 348 -+#define TK_SCOPE 349 -+#define TK_LOGICAL_OR 350 -+#define TK_CONST 351 -+#define TK_STATIC 352 -+#define TK_SIPSIGNAL 353 -+#define TK_SIPSLOT 354 -+#define TK_SIPANYSLOT 355 -+#define TK_SIPRXCON 356 -+#define TK_SIPRXDIS 357 -+#define TK_SIPSLOTCON 358 -+#define TK_SIPSLOTDIS 359 -+#define TK_SIPSSIZET 360 -+#define TK_NUMBER_VALUE 361 -+#define TK_REAL_VALUE 362 -+#define TK_TYPEDEF 363 -+#define TK_NAMESPACE 364 -+#define TK_TIMELINE 365 -+#define TK_PLATFORMS 366 -+#define TK_FEATURE 367 -+#define TK_LICENSE 368 -+#define TK_QCHAR_VALUE 369 -+#define TK_TRUE_VALUE 370 -+#define TK_FALSE_VALUE 371 -+#define TK_NULL_VALUE 372 -+#define TK_OPERATOR 373 -+#define TK_THROW 374 -+#define TK_QOBJECT 375 -+#define TK_EXCEPTION 376 -+#define TK_RAISECODE 377 -+#define TK_VIRTERRORCODE 378 -+#define TK_EXPLICIT 379 -+#define TK_TEMPLATE 380 -+#define TK_FINAL 381 -+#define TK_ELLIPSIS 382 -+#define TK_DEFMETATYPE 383 -+#define TK_DEFSUPERTYPE 384 -+#define TK_PROPERTY 385 -+#define TK_HIDE_NS 386 -+#define TK_FORMAT 387 -+#define TK_GET 388 -+#define TK_ID 389 -+#define TK_KWARGS 390 -+#define TK_LANGUAGE 391 -+#define TK_LICENSEE 392 -+#define TK_NAME 393 -+#define TK_OPTIONAL 394 -+#define TK_ORDER 395 -+#define TK_REMOVELEADING 396 -+#define TK_SET 397 -+#define TK_SIGNATURE 398 -+#define TK_TIMESTAMP 399 -+#define TK_TYPE 400 -+#define TK_USEARGNAMES 401 -+#define TK_USELIMITEDAPI 402 -+#define TK_ALLRAISEPYEXC 403 -+#define TK_CALLSUPERINIT 404 -+#define TK_DEFERRORHANDLER 405 -+#define TK_VERSION 406 -+ -+/* Value type. */ - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED --typedef union YYSTYPE --#line 203 "sip-4.19.12/sipgen/metasrc/parser.y" -+ -+union YYSTYPE - { -+#line 203 "sipgen/metasrc/parser.y" /* yacc.c:355 */ -+ - char qchar; - char *text; - long number; -@@ -621,22 +632,25 @@ - variableCfg variable; - vehCfg veh; - int token; --} --/* Line 193 of yacc.c. */ --#line 627 "sip-4.19.12/sipgen/parser.c" -- YYSTYPE; --# define yystype YYSTYPE /* obsolescent; will be withdrawn */ --# define YYSTYPE_IS_DECLARED 1 -+ -+#line 637 "sipgen/parser.c" /* yacc.c:355 */ -+}; -+ -+typedef union YYSTYPE YYSTYPE; - # define YYSTYPE_IS_TRIVIAL 1 -+# define YYSTYPE_IS_DECLARED 1 - #endif - - -+extern YYSTYPE yylval; - --/* Copy the second part of user declarations. */ -+int yyparse (void); - -+#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */ - --/* Line 216 of yacc.c. */ --#line 640 "sip-4.19.12/sipgen/parser.c" -+/* Copy the second part of user declarations. */ -+ -+#line 654 "sipgen/parser.c" /* yacc.c:358 */ - - #ifdef short - # undef short -@@ -650,11 +664,8 @@ - - #ifdef YYTYPE_INT8 - typedef YYTYPE_INT8 yytype_int8; --#elif (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --typedef signed char yytype_int8; - #else --typedef short int yytype_int8; -+typedef signed char yytype_int8; - #endif - - #ifdef YYTYPE_UINT16 -@@ -674,8 +685,7 @@ - # define YYSIZE_T __SIZE_TYPE__ - # elif defined size_t - # define YYSIZE_T size_t --# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# elif ! defined YYSIZE_T - # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ - # define YYSIZE_T size_t - # else -@@ -689,39 +699,68 @@ - # if defined YYENABLE_NLS && YYENABLE_NLS - # if ENABLE_NLS - # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ --# define YY_(msgid) dgettext ("bison-runtime", msgid) -+# define YY_(Msgid) dgettext ("bison-runtime", Msgid) - # endif - # endif - # ifndef YY_ --# define YY_(msgid) msgid -+# define YY_(Msgid) Msgid -+# endif -+#endif -+ -+#ifndef YY_ATTRIBUTE -+# if (defined __GNUC__ \ -+ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ -+ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C -+# define YY_ATTRIBUTE(Spec) __attribute__(Spec) -+# else -+# define YY_ATTRIBUTE(Spec) /* empty */ -+# endif -+#endif -+ -+#ifndef YY_ATTRIBUTE_PURE -+# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) -+#endif -+ -+#ifndef YY_ATTRIBUTE_UNUSED -+# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) -+#endif -+ -+#if !defined _Noreturn \ -+ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) -+# if defined _MSC_VER && 1200 <= _MSC_VER -+# define _Noreturn __declspec (noreturn) -+# else -+# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) - # endif - #endif - - /* Suppress unused-variable warnings by "using" E. */ - #if ! defined lint || defined __GNUC__ --# define YYUSE(e) ((void) (e)) -+# define YYUSE(E) ((void) (E)) - #else --# define YYUSE(e) /* empty */ -+# define YYUSE(E) /* empty */ - #endif - --/* Identity function, used to suppress warnings about constant conditions. */ --#ifndef lint --# define YYID(n) (n) --#else --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --static int --YYID (int i) -+#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ -+/* Suppress an incorrect diagnostic about yylval being uninitialized. */ -+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ -+ _Pragma ("GCC diagnostic push") \ -+ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ -+ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -+# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ -+ _Pragma ("GCC diagnostic pop") - #else --static int --YYID (i) -- int i; -+# define YY_INITIAL_VALUE(Value) Value - #endif --{ -- return i; --} -+#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+# define YY_IGNORE_MAYBE_UNINITIALIZED_END -+#endif -+#ifndef YY_INITIAL_VALUE -+# define YY_INITIAL_VALUE(Value) /* Nothing. */ - #endif - -+ - #if ! defined yyoverflow || YYERROR_VERBOSE - - /* The parser invokes alloca or malloc; define the necessary symbols. */ -@@ -739,11 +778,11 @@ - # define alloca _alloca - # else - # define YYSTACK_ALLOC alloca --# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS - # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ --# ifndef _STDLIB_H --# define _STDLIB_H 1 -+ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ -+# ifndef EXIT_SUCCESS -+# define EXIT_SUCCESS 0 - # endif - # endif - # endif -@@ -751,8 +790,8 @@ - # endif - - # ifdef YYSTACK_ALLOC -- /* Pacify GCC's `empty if-body' warning. */ --# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) -+ /* Pacify GCC's 'empty if-body' warning. */ -+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) - # ifndef YYSTACK_ALLOC_MAXIMUM - /* The OS might guarantee only one guard page at the bottom of the stack, - and a page size can be as small as 4096 bytes. So we cannot safely -@@ -766,25 +805,23 @@ - # ifndef YYSTACK_ALLOC_MAXIMUM - # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM - # endif --# if (defined __cplusplus && ! defined _STDLIB_H \ -+# if (defined __cplusplus && ! defined EXIT_SUCCESS \ - && ! ((defined YYMALLOC || defined malloc) \ -- && (defined YYFREE || defined free))) -+ && (defined YYFREE || defined free))) - # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ --# ifndef _STDLIB_H --# define _STDLIB_H 1 -+# ifndef EXIT_SUCCESS -+# define EXIT_SUCCESS 0 - # endif - # endif - # ifndef YYMALLOC - # define YYMALLOC malloc --# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined malloc && ! defined EXIT_SUCCESS - void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ - # endif - # endif - # ifndef YYFREE - # define YYFREE free --# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) -+# if ! defined free && ! defined EXIT_SUCCESS - void free (void *); /* INFRINGES ON USER NAME SPACE */ - # endif - # endif -@@ -794,14 +831,14 @@ - - #if (! defined yyoverflow \ - && (! defined __cplusplus \ -- || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) -+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) - - /* A type that is properly aligned for any stack member. */ - union yyalloc - { -- yytype_int16 yyss; -- YYSTYPE yyvs; -- }; -+ yytype_int16 yyss_alloc; -+ YYSTYPE yyvs_alloc; -+}; - - /* The size of the maximum gap between one aligned stack and the next. */ - # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) -@@ -812,42 +849,46 @@ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ - + YYSTACK_GAP_MAXIMUM) - --/* Copy COUNT objects from FROM to TO. The source and destination do -- not overlap. */ --# ifndef YYCOPY --# if defined __GNUC__ && 1 < __GNUC__ --# define YYCOPY(To, From, Count) \ -- __builtin_memcpy (To, From, (Count) * sizeof (*(From))) --# else --# define YYCOPY(To, From, Count) \ -- do \ -- { \ -- YYSIZE_T yyi; \ -- for (yyi = 0; yyi < (Count); yyi++) \ -- (To)[yyi] = (From)[yyi]; \ -- } \ -- while (YYID (0)) --# endif --# endif -+# define YYCOPY_NEEDED 1 - - /* Relocate STACK from its old location to the new one. The - local variables YYSIZE and YYSTACKSIZE give the old and new number of - elements in the stack, and YYPTR gives the new location of the - stack. Advance YYPTR to a properly aligned location for the next - stack. */ --# define YYSTACK_RELOCATE(Stack) \ -- do \ -- { \ -- YYSIZE_T yynewbytes; \ -- YYCOPY (&yyptr->Stack, Stack, yysize); \ -- Stack = &yyptr->Stack; \ -- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -- yyptr += yynewbytes / sizeof (*yyptr); \ -- } \ -- while (YYID (0)) -+# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ -+ do \ -+ { \ -+ YYSIZE_T yynewbytes; \ -+ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ -+ Stack = &yyptr->Stack_alloc; \ -+ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ -+ yyptr += yynewbytes / sizeof (*yyptr); \ -+ } \ -+ while (0) - - #endif - -+#if defined YYCOPY_NEEDED && YYCOPY_NEEDED -+/* Copy COUNT objects from SRC to DST. The source and destination do -+ not overlap. */ -+# ifndef YYCOPY -+# if defined __GNUC__ && 1 < __GNUC__ -+# define YYCOPY(Dst, Src, Count) \ -+ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) -+# else -+# define YYCOPY(Dst, Src, Count) \ -+ do \ -+ { \ -+ YYSIZE_T yyi; \ -+ for (yyi = 0; yyi < (Count); yyi++) \ -+ (Dst)[yyi] = (Src)[yyi]; \ -+ } \ -+ while (0) -+# endif -+# endif -+#endif /* !YYCOPY_NEEDED */ -+ - /* YYFINAL -- State number of the termination state. */ - #define YYFINAL 4 - /* YYLAST -- Last index in YYTABLE. */ -@@ -859,17 +900,19 @@ - #define YYNNTS 254 - /* YYNRULES -- Number of rules. */ - #define YYNRULES 594 --/* YYNRULES -- Number of states. */ -+/* YYNSTATES -- Number of states. */ - #define YYNSTATES 1042 - --/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -+/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned -+ by yylex, with out-of-bounds checking. */ - #define YYUNDEFTOK 2 - #define YYMAXUTOK 406 - --#define YYTRANSLATE(YYX) \ -+#define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) - --/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ -+/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM -+ as returned by yylex, without out-of-bounds checking. */ - static const yytype_uint8 yytranslate[] = - { - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, -@@ -916,250 +959,7 @@ - }; - - #if YYDEBUG --/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in -- YYRHS. */ --static const yytype_uint16 yyprhs[] = --{ -- 0, 0, 3, 5, 8, 9, 12, 14, 16, 18, -- 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, -- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, -- 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, -- 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, -- 100, 102, 104, 106, 108, 110, 112, 115, 117, 121, -- 123, 127, 131, 134, 136, 140, 142, 146, 150, 153, -- 155, 159, 161, 165, 169, 172, 174, 178, 180, 184, -- 188, 192, 194, 198, 200, 204, 208, 211, 214, 218, -- 220, 224, 228, 232, 238, 239, 243, 248, 250, 253, -- 255, 257, 259, 261, 264, 265, 271, 272, 279, 284, -- 286, 289, 291, 293, 295, 297, 300, 303, 305, 307, -- 309, 324, 325, 331, 332, 336, 338, 341, 342, 348, -- 350, 353, 355, 358, 360, 364, 366, 370, 374, 375, -- 381, 383, 386, 388, 389, 395, 397, 400, 404, 409, -- 411, 415, 417, 421, 422, 424, 428, 430, 434, 438, -- 442, 446, 450, 453, 455, 459, 461, 465, 469, 472, -- 474, 478, 480, 484, 488, 491, 493, 497, 499, 503, -- 507, 511, 513, 517, 519, 523, 527, 528, 533, 535, -- 538, 540, 542, 544, 548, 550, 554, 556, 560, 564, -- 565, 570, 572, 575, 577, 579, 581, 585, 589, 590, -- 594, 598, 600, 604, 608, 612, 616, 620, 624, 628, -- 632, 636, 640, 641, 646, 648, 651, 653, 655, 657, -- 659, 661, 663, 664, 666, 669, 671, 675, 677, 681, -- 685, 689, 692, 695, 697, 701, 703, 707, 711, 712, -- 715, 716, 719, 720, 723, 726, 729, 732, 735, 738, -- 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, -- 771, 774, 777, 780, 783, 786, 789, 792, 795, 798, -- 801, 804, 807, 810, 814, 816, 820, 824, 828, 829, -- 831, 835, 837, 841, 845, 849, 850, 852, 856, 858, -- 862, 864, 868, 872, 876, 881, 884, 886, 889, 890, -- 900, 901, 903, 905, 906, 908, 909, 911, 912, 914, -- 916, 919, 921, 923, 928, 929, 931, 932, 935, 936, -- 939, 941, 945, 947, 949, 951, 953, 955, 957, 958, -- 960, 962, 964, 966, 968, 970, 974, 975, 979, 982, -- 984, 986, 990, 992, 994, 996, 998, 1003, 1005, 1007, -- 1009, 1011, 1013, 1015, 1016, 1018, 1022, 1029, 1042, 1043, -- 1044, 1053, 1054, 1058, 1063, 1064, 1065, 1074, 1075, 1078, -- 1080, 1084, 1087, 1088, 1090, 1092, 1094, 1095, 1099, 1100, -- 1102, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, -- 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141, -- 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, -- 1164, 1167, 1170, 1174, 1178, 1182, 1185, 1189, 1193, 1195, -- 1199, 1203, 1207, 1211, 1212, 1217, 1219, 1222, 1224, 1226, -- 1228, 1230, 1232, 1233, 1235, 1248, 1249, 1253, 1255, 1267, -- 1268, 1269, 1276, 1277, 1278, 1286, 1287, 1289, 1307, 1315, -- 1333, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366, -- 1369, 1372, 1375, 1378, 1381, 1384, 1387, 1390, 1393, 1396, -- 1400, 1404, 1406, 1409, 1412, 1414, 1417, 1420, 1423, 1425, -- 1428, 1429, 1431, 1432, 1434, 1435, 1438, 1439, 1443, 1445, -- 1449, 1451, 1455, 1457, 1463, 1465, 1467, 1468, 1471, 1472, -- 1475, 1476, 1479, 1480, 1483, 1485, 1486, 1488, 1492, 1497, -- 1502, 1507, 1511, 1515, 1522, 1529, 1533, 1536, 1537, 1541, -- 1542, 1546, 1548, 1549, 1553, 1555, 1557, 1559, 1560, 1564, -- 1566, 1575, 1576, 1580, 1582, 1585, 1587, 1589, 1592, 1595, -- 1598, 1603, 1607, 1611, 1612, 1614, 1615, 1619, 1622, 1624, -- 1629, 1632, 1635, 1637, 1639, 1642, 1644, 1646, 1649, 1652, -- 1656, 1658, 1660, 1662, 1665, 1668, 1670, 1672, 1674, 1676, -- 1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, -- 1700, 1701, 1706, 1707, 1709 --}; -- --/* YYRHS -- A `-1'-separated list of the rules' RHS. */ --static const yytype_int16 yyrhs[] = --{ -- 175, 0, -1, 176, -1, 175, 176, -1, -1, 177, -- 178, -1, 269, -1, 255, -1, 262, -1, 192, -1, -- 291, -1, 279, -1, 283, -1, 284, -1, 200, -1, -- 230, -1, 222, -1, 226, -1, 239, -1, 180, -1, -- 184, -1, 188, -1, 243, -1, 247, -1, 251, -1, -- 292, -1, 293, -1, 306, -1, 308, -1, 309, -1, -- 310, -1, 311, -1, 312, -1, 313, -1, 314, -1, -- 315, -1, 317, -1, 318, -1, 328, -1, 332, -1, -- 210, -1, 212, -1, 196, -1, 179, -1, 234, -1, -- 238, -1, 218, -1, 358, -1, 364, -1, 361, -1, -- 204, -1, 357, -1, 335, -1, 392, -1, 416, -1, -- 294, -1, 5, 181, -1, 36, -1, 152, 182, 153, -- -1, 183, -1, 182, 154, 183, -1, 138, 155, 36, -- -1, 6, 185, -1, 36, -1, 152, 186, 153, -1, -- 187, -1, 186, 154, 187, -1, 138, 155, 36, -1, -- 7, 189, -1, 36, -1, 152, 190, 153, -1, 191, -- -1, 190, 154, 191, -1, 138, 155, 36, -1, 8, -- 193, -1, 34, -1, 152, 194, 153, -1, 195, -1, -- 194, 154, 195, -1, 138, 155, 34, -1, 9, 197, -- 333, -1, 34, -1, 152, 198, 153, -1, 199, -1, -- 198, 154, 199, -1, 138, 155, 34, -1, 3, 201, -- -1, 34, 106, -1, 152, 202, 153, -1, 203, -1, -- 202, 154, 203, -1, 138, 155, 381, -1, 151, 155, -- 106, -1, 121, 351, 205, 397, 206, -1, -1, 152, -- 351, 153, -1, 156, 207, 157, 158, -1, 208, -1, -- 207, 208, -1, 234, -1, 238, -1, 209, -1, 294, -- -1, 122, 333, -1, -1, 30, 424, 397, 211, 214, -- -1, -1, 363, 30, 424, 397, 213, 214, -1, 156, -- 215, 157, 158, -1, 216, -1, 215, 216, -1, 234, -- -1, 238, -1, 294, -1, 307, -1, 51, 333, -1, -- 52, 333, -1, 303, -1, 335, -1, 217, -1, 97, -- 420, 34, 152, 405, 153, 394, 426, 397, 389, 158, -- 327, 403, 402, -1, -1, 109, 34, 219, 220, 158, -- -1, -1, 156, 221, 157, -1, 179, -1, 221, 179, -- -1, -1, 111, 223, 156, 224, 157, -1, 225, -1, -- 224, 225, -1, 34, -1, 112, 227, -1, 34, -1, -- 152, 228, 153, -1, 229, -1, 228, 154, 229, -1, -- 138, 155, 381, -1, -1, 110, 231, 156, 232, 157, -- -1, 233, -1, 232, 233, -1, 34, -1, -1, 32, -- 152, 235, 237, 153, -1, 34, -1, 159, 34, -1, -- 236, 95, 34, -1, 236, 95, 159, 34, -1, 236, -- -1, 339, 160, 339, -1, 33, -1, 113, 240, 397, -- -1, -1, 36, -1, 152, 241, 153, -1, 242, -1, -- 241, 154, 242, -1, 145, 155, 36, -1, 137, 155, -- 36, -1, 143, 155, 36, -1, 144, 155, 36, -1, -- 128, 244, -1, 277, -1, 152, 245, 153, -1, 246, -- -1, 245, 154, 246, -1, 138, 155, 277, -1, 129, -- 248, -1, 277, -1, 152, 249, 153, -1, 250, -1, -- 249, 154, 250, -1, 138, 155, 277, -1, 131, 252, -- -1, 351, -1, 152, 253, 153, -1, 254, -1, 253, -- 154, 254, -1, 138, 155, 351, -1, 62, 256, 259, -- -1, 277, -1, 152, 257, 153, -1, 258, -1, 257, -- 154, 258, -1, 138, 155, 277, -1, -1, 156, 260, -- 157, 158, -1, 261, -1, 260, 261, -1, 234, -1, -- 238, -1, 323, -1, 63, 263, 266, -1, 277, -1, -- 152, 264, 153, -1, 265, -1, 264, 154, 265, -1, -- 138, 155, 277, -1, -1, 156, 267, 157, 158, -1, -- 268, -1, 267, 268, -1, 234, -1, 238, -1, 323, -- -1, 60, 270, 274, -1, 61, 277, 278, -1, -1, -- 277, 271, 278, -1, 152, 272, 153, -1, 273, -1, -- 272, 154, 273, -1, 135, 155, 36, -1, 136, 155, -- 36, -1, 138, 155, 277, -1, 146, 155, 354, -1, -- 147, 155, 354, -1, 148, 155, 354, -1, 149, 155, -- 354, -1, 150, 155, 34, -1, 151, 155, 106, -1, -- -1, 156, 275, 157, 158, -1, 276, -1, 275, 276, -- -1, 234, -1, 238, -1, 319, -1, 323, -1, 34, -- -1, 35, -1, -1, 106, -1, 54, 280, -1, 35, -- -1, 152, 281, 153, -1, 282, -1, 281, 154, 282, -- -1, 138, 155, 35, -1, 139, 155, 354, -1, 55, -- 35, -1, 56, 285, -1, 35, -1, 152, 286, 153, -- -1, 287, -1, 286, 154, 287, -1, 138, 155, 35, -- -1, -1, 17, 333, -1, -1, 18, 333, -1, -1, -- 19, 333, -1, 29, 333, -1, 57, 333, -1, 58, -- 333, -1, 59, 333, -1, 38, 333, -1, 39, 333, -- -1, 40, 333, -1, 41, 333, -1, 42, 333, -1, -- 43, 333, -1, 44, 333, -1, 45, 333, -1, 50, -- 333, -1, 46, 333, -1, 23, 333, -1, 26, 333, -- -1, 27, 333, -1, 20, 333, -1, 21, 333, -1, -- 22, 333, -1, 24, 333, -1, 25, 333, -1, 28, -- 333, -1, 10, 333, -1, 11, 333, -1, 11, 333, -- -1, 13, 333, -1, 14, 333, -1, 4, 320, -1, -- 152, 321, 153, -1, 322, -1, 321, 154, 322, -1, -- 141, 155, 36, -1, 12, 324, 333, -1, -1, 36, -- -1, 152, 325, 153, -1, 326, -1, 325, 154, 326, -- -1, 132, 155, 36, -1, 143, 155, 36, -1, -1, -- 323, -1, 15, 329, 333, -1, 34, -1, 152, 330, -- 153, -1, 331, -1, 330, 154, 331, -1, 134, 155, -- 34, -1, 140, 155, 106, -1, 16, 35, 338, 333, -- -1, 334, 33, -1, 31, -1, 334, 31, -1, -1, -- 91, 337, 339, 397, 336, 156, 340, 157, 158, -1, -- -1, 64, -1, 65, -1, -1, 35, -1, -1, 34, -- -1, -1, 341, -1, 342, -1, 341, 342, -1, 234, -- -1, 238, -1, 34, 344, 397, 343, -1, -1, 154, -- -1, -1, 155, 349, -1, -1, 155, 346, -1, 349, -- -1, 346, 347, 349, -1, 160, -1, 161, -1, 162, -- -1, 163, -1, 164, -1, 165, -1, -1, 159, -1, -- 166, -1, 160, -1, 161, -1, 162, -1, 164, -1, -- 350, 348, 355, -1, -1, 152, 351, 153, -1, 94, -- 352, -1, 352, -1, 353, -1, 352, 94, 353, -1, -- 34, -1, 115, -1, 116, -1, 351, -1, 424, 152, -- 356, 153, -1, 107, -1, 106, -1, 354, -1, 117, -- -1, 36, -1, 114, -1, -1, 346, -1, 356, 154, -- 346, -1, 108, 420, 34, 397, 158, 327, -1, 108, -- 420, 152, 162, 34, 153, 152, 425, 153, 397, 158, -- 327, -1, -1, -1, 65, 351, 359, 367, 397, 360, -- 371, 158, -1, -1, 363, 362, 364, -1, 125, 167, -- 425, 168, -1, -1, -1, 64, 351, 365, 367, 397, -- 366, 371, 158, -1, -1, 169, 368, -1, 369, -1, -- 368, 154, 369, -1, 370, 351, -1, -1, 66, -1, -- 67, -1, 68, -1, -1, 156, 372, 157, -1, -1, -- 373, -1, 372, 373, -1, 234, -1, 238, -1, 218, -- -1, 358, -1, 364, -1, 361, -1, 204, -1, 357, -- -1, 335, -1, 374, -1, 323, -1, 307, -1, 294, -- -1, 295, -1, 296, -1, 297, -1, 298, -1, 299, -- -1, 300, -1, 301, -1, 302, -1, 303, -1, 304, -- -1, 305, -1, 316, -1, 384, -1, 383, -1, 408, -- -1, 53, 333, -1, 52, 333, -1, 51, 333, -1, -- 66, 382, 169, -1, 67, 382, 169, -1, 68, 382, -- 169, -1, 69, 169, -1, 130, 375, 378, -1, 152, -- 376, 153, -1, 377, -1, 376, 154, 377, -1, 133, -- 155, 34, -1, 138, 155, 381, -1, 142, 155, 34, -- -1, -1, 156, 379, 157, 158, -1, 380, -1, 379, -- 380, -1, 234, -1, 238, -1, 323, -1, 34, -1, -- 36, -1, -1, 71, -1, 391, 166, 34, 152, 153, -- 426, 396, 397, 158, 403, 402, 404, -1, -1, 124, -- 385, 386, -1, 386, -1, 34, 152, 405, 153, 426, -- 397, 387, 158, 327, 403, 402, -1, -1, -1, 170, -- 388, 152, 405, 153, 171, -1, -1, -1, 170, 390, -- 420, 152, 405, 153, 171, -1, -1, 90, -1, 420, -- 34, 152, 405, 153, 394, 395, 426, 396, 397, 389, -- 158, 327, 403, 402, 404, 401, -1, 420, 118, 155, -- 152, 420, 153, 158, -1, 420, 118, 393, 152, 405, -- 153, 394, 395, 426, 396, 397, 389, 158, 403, 402, -- 404, 401, -1, 118, 420, 152, 405, 153, 394, 395, -- 426, 396, 397, 389, 158, 403, 402, 404, 401, -1, -- 161, -1, 160, -1, 162, -1, 163, -1, 172, -1, -- 164, -1, 165, -1, 173, -1, 167, 167, -1, 168, -- 168, -1, 161, 155, -1, 160, 155, -1, 162, 155, -- -1, 163, 155, -1, 172, 155, -1, 164, 155, -1, -- 165, 155, -1, 173, 155, -1, 167, 167, 155, -1, -- 168, 168, 155, -1, 166, -1, 152, 153, -1, 170, -- 171, -1, 167, -1, 167, 155, -1, 155, 155, -1, -- 159, 155, -1, 168, -1, 168, 155, -1, -1, 96, -- -1, -1, 126, -1, -1, 155, 106, -1, -1, 163, -- 398, 163, -1, 399, -1, 398, 154, 399, -1, 34, -- -1, 34, 155, 400, -1, 277, -1, 34, 169, 278, -- 160, 278, -1, 36, -1, 106, -1, -1, 47, 333, -- -1, -1, 48, 333, -1, -1, 49, 333, -1, -1, -- 37, 333, -1, 406, -1, -1, 407, -1, 406, 154, -- 407, -1, 98, 339, 397, 345, -1, 99, 339, 397, -- 345, -1, 100, 339, 397, 345, -1, 101, 339, 397, -- -1, 102, 339, 397, -1, 103, 152, 405, 153, 339, -- 397, -1, 104, 152, 405, 153, 339, 397, -1, 120, -- 339, 397, -1, 421, 345, -1, -1, 70, 409, 411, -- -1, -1, 72, 410, 411, -1, 411, -1, -1, 97, -- 412, 413, -1, 413, -1, 414, -1, 416, -1, -1, -- 90, 415, 392, -1, 392, -1, 420, 34, 397, 417, -- 158, 288, 289, 290, -1, -1, 156, 418, 157, -1, -- 419, -1, 418, 419, -1, 234, -1, 238, -1, 17, -- 333, -1, 18, 333, -1, 19, 333, -1, 96, 424, -- 423, 422, -1, 424, 423, 422, -1, 420, 339, 397, -- -1, -1, 164, -1, -1, 423, 162, 96, -1, 423, -- 162, -1, 351, -1, 351, 167, 425, 168, -1, 65, -- 351, -1, 93, 74, -1, 74, -1, 93, -1, 93, -- 75, -1, 75, -1, 76, -1, 93, 76, -1, 76, -- 76, -1, 93, 76, 76, -1, 77, -1, 78, -1, -- 73, -1, 92, 79, -1, 93, 79, -1, 79, -1, -- 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, -- 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, -- 105, -1, 127, -1, 420, -1, 425, 154, 420, -1, -- -1, 119, 152, 427, 153, -1, -1, 351, -1, 427, -- 154, 351, -1 --}; -- --/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -+ /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ - static const yytype_uint16 yyrline[] = - { - 0, 576, 576, 577, 580, 580, 599, 600, 601, 602, -@@ -1225,7 +1025,7 @@ - }; - #endif - --#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE -+#if YYDEBUG || YYERROR_VERBOSE || 0 - /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. - First, the terminals, then, starting at YYNTOKENS, nonterminals. */ - static const char *const yytname[] = -@@ -1268,7 +1068,7 @@ - "TK_CALLSUPERINIT", "TK_DEFERRORHANDLER", "TK_VERSION", "'('", "')'", - "','", "'='", "'{'", "'}'", "';'", "'!'", "'-'", "'+'", "'*'", "'/'", - "'&'", "'|'", "'~'", "'<'", "'>'", "':'", "'['", "']'", "'%'", "'^'", -- "$accept", "specification", "statement", "@1", "modstatement", -+ "$accept", "specification", "statement", "$@1", "modstatement", - "nsstatement", "defdocstringfmt", "defdocstringfmt_args", - "defdocstringfmt_arg_list", "defdocstringfmt_arg", "defdocstringsig", - "defdocstringsig_args", "defdocstringsig_arg_list", -@@ -1278,13 +1078,13 @@ - "veh_arg_list", "veh_arg", "api", "api_args", "api_arg_list", "api_arg", - "exception", "baseexception", "exception_body", - "exception_body_directives", "exception_body_directive", "raisecode", -- "mappedtype", "@2", "mappedtypetmpl", "@3", "mtdefinition", "mtbody", -- "mtline", "mtfunction", "namespace", "@4", "optnsbody", "nsbody", -- "platforms", "@5", "platformlist", "platform", "feature", "feature_args", -- "feature_arg_list", "feature_arg", "timeline", "@6", "qualifierlist", -- "qualifiername", "ifstart", "@7", "oredqualifiers", "qualifiers", -- "ifend", "license", "license_args", "license_arg_list", "license_arg", -- "defmetatype", "defmetatype_args", "defmetatype_arg_list", -+ "mappedtype", "$@2", "mappedtypetmpl", "$@3", "mtdefinition", "mtbody", -+ "mtline", "mtfunction", "namespace", "$@4", "optnsbody", "nsbody", -+ "platforms", "$@5", "platformlist", "platform", "feature", -+ "feature_args", "feature_arg_list", "feature_arg", "timeline", "$@6", -+ "qualifierlist", "qualifiername", "ifstart", "$@7", "oredqualifiers", -+ "qualifiers", "ifend", "license", "license_args", "license_arg_list", -+ "license_arg", "defmetatype", "defmetatype_args", "defmetatype_arg_list", - "defmetatype_arg", "defsupertype", "defsupertype_args", - "defsupertype_arg_list", "defsupertype_arg", "hiddenns", "hiddenns_args", - "hiddenns_arg_list", "hiddenns_arg", "consmodule", "consmodule_args", -@@ -1292,7 +1092,7 @@ - "consmodule_body_directives", "consmodule_body_directive", "compmodule", - "compmodule_args", "compmodule_arg_list", "compmodule_arg", - "compmodule_body", "compmodule_body_directives", -- "compmodule_body_directive", "module", "module_args", "@8", -+ "compmodule_body_directive", "module", "module_args", "$@8", - "module_arg_list", "module_arg", "module_body", "module_body_directives", - "module_body_directive", "dottedname", "optnumber", "include", - "include_args", "include_arg_list", "include_arg", "optinclude", -@@ -1307,31 +1107,31 @@ - "autopyname_args", "autopyname_arg_list", "autopyname_arg", "docstring", - "docstring_args", "docstring_arg_list", "docstring_arg", "optdocstring", - "extract", "extract_args", "extract_arg_list", "extract_arg", "makefile", -- "codeblock", "codelines", "enum", "@9", "optenumkey", "optfilename", -+ "codeblock", "codelines", "enum", "$@9", "optenumkey", "optfilename", - "optname", "optenumbody", "enumbody", "enumline", "optcomma", - "optenumassign", "optassign", "expr", "binop", "optunop", "value", - "optcast", "scopedname", "scopednamehead", "scopepart", "bool_value", -- "simplevalue", "exprlist", "typedef", "struct", "@10", "@11", -- "classtmpl", "@12", "template", "class", "@13", "@14", "superclasses", -+ "simplevalue", "exprlist", "typedef", "struct", "$@10", "$@11", -+ "classtmpl", "$@12", "template", "class", "$@13", "$@14", "superclasses", - "superlist", "superclass", "class_access", "optclassbody", "classbody", - "classline", "property", "property_args", "property_arg_list", - "property_arg", "property_body", "property_body_directives", - "property_body_directive", "name_or_string", "optslot", "dtor", "ctor", -- "@15", "simplector", "optctorsig", "@16", "optsig", "@17", "optvirtual", -- "function", "operatorname", "optconst", "optfinal", "optabstract", -- "optflags", "flaglist", "flag", "flagvalue", "virtualcallcode", -- "methodcode", "premethodcode", "virtualcatchercode", "arglist", -- "rawarglist", "argvalue", "varmember", "@18", "@19", "simple_varmem", -- "@20", "varmem", "member", "@21", "variable", "variable_body", -- "variable_body_directives", "variable_body_directive", "cpptype", -- "argtype", "optref", "deref", "basetype", "cpptypelist", "optexceptions", -- "exceptionlist", 0 -+ "$@15", "simplector", "optctorsig", "$@16", "optsig", "$@17", -+ "optvirtual", "function", "operatorname", "optconst", "optfinal", -+ "optabstract", "optflags", "flaglist", "flag", "flagvalue", -+ "virtualcallcode", "methodcode", "premethodcode", "virtualcatchercode", -+ "arglist", "rawarglist", "argvalue", "varmember", "$@18", "$@19", -+ "simple_varmem", "$@20", "varmem", "member", "$@21", "variable", -+ "variable_body", "variable_body_directives", "variable_body_directive", -+ "cpptype", "argtype", "optref", "deref", "basetype", "cpptypelist", -+ "optexceptions", "exceptionlist", YY_NULLPTR - }; - #endif - - # ifdef YYPRINT --/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to -- token YYLEX-NUM. */ -+/* YYTOKNUM[NUM] -- (External) token number corresponding to the -+ (internal) symbol number NUM (which must be that of a token). */ - static const yytype_uint16 yytoknum[] = - { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, -@@ -1355,282 +1155,18 @@ - }; - # endif - --/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ --static const yytype_uint16 yyr1[] = --{ -- 0, 174, 175, 175, 177, 176, 178, 178, 178, 178, -- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -- 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -- 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, -- 179, 179, 179, 179, 179, 179, 180, 181, 181, 182, -- 182, 183, 184, 185, 185, 186, 186, 187, 188, 189, -- 189, 190, 190, 191, 192, 193, 193, 194, 194, 195, -- 196, 197, 197, 198, 198, 199, 200, 201, 201, 202, -- 202, 203, 203, 204, 205, 205, 206, 207, 207, 208, -- 208, 208, 208, 209, 211, 210, 213, 212, 214, 215, -- 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, -- 217, 219, 218, 220, 220, 221, 221, 223, 222, 224, -- 224, 225, 226, 227, 227, 228, 228, 229, 231, 230, -- 232, 232, 233, 235, 234, 236, 236, 236, 236, 237, -- 237, 238, 239, 240, 240, 240, 241, 241, 242, 242, -- 242, 242, 243, 244, 244, 245, 245, 246, 247, 248, -- 248, 249, 249, 250, 251, 252, 252, 253, 253, 254, -- 255, 256, 256, 257, 257, 258, 259, 259, 260, 260, -- 261, 261, 261, 262, 263, 263, 264, 264, 265, 266, -- 266, 267, 267, 268, 268, 268, 269, 269, 271, 270, -- 270, 272, 272, 273, 273, 273, 273, 273, 273, 273, -- 273, 273, 274, 274, 275, 275, 276, 276, 276, 276, -- 277, 277, 278, 278, 279, 280, 280, 281, 281, 282, -- 282, 283, 284, 285, 285, 286, 286, 287, 288, 288, -- 289, 289, 290, 290, 291, 292, 293, 294, 295, 296, -- 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, -- 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -- 317, 318, 319, 320, 321, 321, 322, 323, 324, 324, -- 324, 325, 325, 326, 326, 327, 327, 328, 329, 329, -- 330, 330, 331, 331, 332, 333, 334, 334, 336, 335, -- 337, 337, 337, 338, 338, 339, 339, 340, 340, 341, -- 341, 342, 342, 342, 343, 343, 344, 344, 345, 345, -- 346, 346, 347, 347, 347, 347, 347, 347, 348, 348, -- 348, 348, 348, 348, 348, 349, 350, 350, 351, 351, -- 352, 352, 353, 354, 354, 355, 355, 355, 355, 355, -- 355, 355, 355, 356, 356, 356, 357, 357, 359, 360, -- 358, 362, 361, 363, 365, 366, 364, 367, 367, 368, -- 368, 369, 370, 370, 370, 370, 371, 371, 372, 372, -- 372, 373, 373, 373, 373, 373, 373, 373, 373, 373, -- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, -- 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, -- 373, 373, 373, 373, 373, 373, 374, 375, 376, 376, -- 377, 377, 377, 378, 378, 379, 379, 380, 380, 380, -- 381, 381, 382, 382, 383, 385, 384, 384, 386, 387, -- 388, 387, 389, 390, 389, 391, 391, 392, 392, 392, -- 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, -- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, -- 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, -- 394, 394, 395, 395, 396, 396, 397, 397, 398, 398, -- 399, 399, 400, 400, 400, 400, 401, 401, 402, 402, -- 403, 403, 404, 404, 405, 406, 406, 406, 407, 407, -- 407, 407, 407, 407, 407, 407, 407, 409, 408, 410, -- 408, 408, 412, 411, 411, 413, 413, 415, 414, 414, -- 416, 417, 417, 418, 418, 419, 419, 419, 419, 419, -- 420, 420, 421, 422, 422, 423, 423, 423, 424, 424, -- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, -- 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, -- 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, -- 426, 426, 427, 427, 427 --}; -+#define YYPACT_NINF -848 - --/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ --static const yytype_uint8 yyr2[] = --{ -- 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, -- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, -- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, -- 3, 1, 3, 1, 3, 3, 2, 2, 3, 1, -- 3, 3, 3, 5, 0, 3, 4, 1, 2, 1, -- 1, 1, 1, 2, 0, 5, 0, 6, 4, 1, -- 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, -- 14, 0, 5, 0, 3, 1, 2, 0, 5, 1, -- 2, 1, 2, 1, 3, 1, 3, 3, 0, 5, -- 1, 2, 1, 0, 5, 1, 2, 3, 4, 1, -- 3, 1, 3, 0, 1, 3, 1, 3, 3, 3, -- 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, -- 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, -- 3, 1, 3, 1, 3, 3, 0, 4, 1, 2, -- 1, 1, 1, 3, 1, 3, 1, 3, 3, 0, -- 4, 1, 2, 1, 1, 1, 3, 3, 0, 3, -- 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, -- 3, 3, 0, 4, 1, 2, 1, 1, 1, 1, -- 1, 1, 0, 1, 2, 1, 3, 1, 3, 3, -- 3, 2, 2, 1, 3, 1, 3, 3, 0, 2, -- 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -- 2, 2, 2, 3, 1, 3, 3, 3, 0, 1, -- 3, 1, 3, 3, 3, 0, 1, 3, 1, 3, -- 1, 3, 3, 3, 4, 2, 1, 2, 0, 9, -- 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, -- 2, 1, 1, 4, 0, 1, 0, 2, 0, 2, -- 1, 3, 1, 1, 1, 1, 1, 1, 0, 1, -- 1, 1, 1, 1, 1, 3, 0, 3, 2, 1, -- 1, 3, 1, 1, 1, 1, 4, 1, 1, 1, -- 1, 1, 1, 0, 1, 3, 6, 12, 0, 0, -- 8, 0, 3, 4, 0, 0, 8, 0, 2, 1, -- 3, 2, 0, 1, 1, 1, 0, 3, 0, 1, -- 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, -- 2, 2, 3, 3, 3, 2, 3, 3, 1, 3, -- 3, 3, 3, 0, 4, 1, 2, 1, 1, 1, -- 1, 1, 0, 1, 12, 0, 3, 1, 11, 0, -- 0, 6, 0, 0, 7, 0, 1, 17, 7, 17, -- 16, 1, 1, 1, 1, 1, 1, 1, 1, 2, -- 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, -- 3, 1, 2, 2, 1, 2, 2, 2, 1, 2, -- 0, 1, 0, 1, 0, 2, 0, 3, 1, 3, -- 1, 3, 1, 5, 1, 1, 0, 2, 0, 2, -- 0, 2, 0, 2, 1, 0, 1, 3, 4, 4, -- 4, 3, 3, 6, 6, 3, 2, 0, 3, 0, -- 3, 1, 0, 3, 1, 1, 1, 0, 3, 1, -- 8, 0, 3, 1, 2, 1, 1, 2, 2, 2, -- 4, 3, 3, 0, 1, 0, 3, 2, 1, 4, -- 2, 2, 1, 1, 2, 1, 1, 2, 2, 3, -- 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, -- 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, -- 0, 4, 0, 1, 3 --}; -+#define yypact_value_is_default(Yystate) \ -+ (!!((Yystate) == (-848))) - --/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state -- STATE-NUM when YYTABLE doesn't specify something else to do. Zero -- means the default is an error. */ --static const yytype_uint16 yydefact[] = --{ -- 4, 4, 2, 0, 1, 3, 0, 0, 0, 0, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- 0, 0, 0, 0, 0, 0, 0, 0, 151, 352, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- 0, 0, 572, 562, 565, 566, 570, 571, 575, 576, -- 577, 578, 579, 580, 581, 582, 583, 584, 585, 310, -- 0, 563, 0, 0, 586, 0, 0, 138, 127, 0, -- 153, 0, 0, 0, 587, 0, 0, 0, 5, 43, -- 19, 20, 21, 9, 42, 14, 50, 40, 41, 46, -- 16, 17, 15, 44, 45, 18, 22, 23, 24, 7, -- 8, 6, 11, 12, 13, 10, 25, 26, 55, 27, -- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -- 38, 39, 52, 558, 349, 350, 51, 47, 49, 371, -- 48, 53, 54, 0, 555, 0, 0, 86, 57, 0, -- 56, 63, 0, 62, 69, 0, 68, 75, 0, 74, -- 81, 0, 0, 306, 277, 0, 278, 280, 281, 298, -- 0, 0, 313, 271, 272, 273, 274, 275, 269, 276, -- 254, 0, 496, 143, 235, 0, 234, 241, 243, 0, -- 242, 255, 256, 257, 230, 231, 0, 222, 208, 232, -- 0, 186, 181, 0, 199, 194, 374, 368, 568, 311, -- 312, 315, 573, 561, 564, 567, 574, 348, 555, 0, -- 121, 0, 0, 133, 0, 132, 154, 0, 496, 0, -- 94, 0, 0, 162, 163, 0, 168, 169, 0, 174, -- 175, 0, 0, 0, 0, 496, 0, 553, 87, 0, -- 0, 0, 89, 0, 0, 59, 0, 0, 65, 0, -- 0, 71, 0, 0, 77, 0, 0, 83, 80, 307, -- 305, 0, 0, 0, 300, 297, 314, 0, 560, 0, -- 104, 315, 0, 0, 0, 237, 0, 0, 245, 0, -- 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, -- 0, 206, 232, 233, 207, 0, 0, 183, 0, 180, -- 0, 0, 196, 0, 193, 377, 377, 316, 496, 569, -- 553, 496, 0, 123, 0, 0, 0, 0, 135, 0, -- 0, 0, 0, 0, 156, 152, 515, 0, 496, 588, -- 0, 0, 0, 165, 0, 0, 171, 0, 0, 177, -- 0, 351, 496, 372, 515, 541, 0, 0, 0, 462, -- 461, 463, 464, 466, 467, 481, 484, 488, 0, 465, -- 468, 0, 557, 554, 551, 0, 0, 88, 0, 0, -- 58, 0, 0, 64, 0, 0, 70, 0, 0, 76, -- 0, 0, 82, 0, 0, 0, 299, 0, 304, 500, -- 0, 498, 0, 145, 0, 149, 0, 0, 0, 0, -- 236, 0, 0, 244, 0, 0, 0, 0, 0, 0, -- 0, 0, 0, 0, 210, 0, 0, 288, 226, 227, -- 0, 224, 228, 229, 209, 0, 182, 0, 190, 191, -- 0, 188, 192, 0, 195, 0, 203, 204, 0, 201, -- 205, 382, 496, 496, 308, 550, 0, 0, 0, 0, -- 142, 0, 140, 131, 0, 129, 0, 134, 0, 0, -- 0, 0, 0, 155, 0, 315, 315, 315, 315, 315, -- 0, 0, 315, 0, 514, 516, 315, 328, 0, 0, -- 0, 373, 0, 164, 0, 0, 170, 0, 0, 176, -- 0, 559, 106, 0, 0, 0, 482, 0, 486, 487, -- 472, 471, 473, 474, 476, 477, 485, 469, 489, 470, -- 483, 475, 478, 515, 556, 440, 441, 91, 92, 90, -- 61, 60, 67, 66, 73, 72, 79, 78, 85, 84, -- 302, 303, 301, 0, 0, 497, 0, 105, 146, 0, -- 144, 315, 239, 353, 354, 240, 238, 247, 246, 213, -- 214, 215, 216, 217, 218, 219, 220, 221, 212, 0, -- 282, 289, 0, 0, 0, 225, 185, 184, 0, 189, -- 198, 197, 0, 202, 383, 384, 385, 378, 379, 0, -- 375, 369, 0, 295, 0, 125, 0, 371, 122, 139, -- 141, 128, 130, 137, 136, 159, 160, 161, 158, 157, -- 496, 496, 496, 496, 496, 515, 515, 496, 490, 0, -- 496, 346, 526, 95, 0, 93, 589, 167, 166, 173, -- 172, 179, 178, 0, 490, 0, 0, 0, 545, 546, -- 0, 543, 248, 0, 479, 480, 0, 230, 504, 505, -- 502, 501, 499, 0, 0, 0, 0, 0, 0, 109, -- 119, 111, 112, 113, 117, 114, 118, 147, 0, 150, -- 0, 0, 284, 0, 0, 0, 291, 287, 223, 187, -- 200, 382, 381, 386, 386, 317, 296, 366, 0, 124, -- 126, 328, 328, 328, 521, 522, 0, 0, 525, 491, -- 492, 517, 552, 0, 329, 330, 338, 0, 0, 97, -- 101, 99, 100, 102, 107, 492, 547, 548, 549, 542, -- 544, 0, 250, 0, 490, 232, 270, 266, 115, 116, -- 0, 0, 110, 148, 0, 283, 0, 0, 0, 290, -- 0, 380, 388, 0, 0, 326, 321, 322, 0, 318, -- 319, 0, 518, 519, 520, 315, 315, 493, 590, 0, -- 332, 333, 334, 335, 336, 337, 346, 339, 341, 342, -- 343, 344, 340, 0, 103, 0, 98, 590, 249, 0, -- 252, 458, 492, 0, 0, 108, 286, 285, 293, 294, -- 292, 0, 0, 352, 0, 0, 0, 0, 0, 0, -- 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, -- 527, 529, 537, 532, 445, 0, 397, 393, 391, 392, -- 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -- 413, 414, 402, 415, 401, 399, 398, 394, 396, 395, -- 455, 389, 400, 417, 416, 447, 0, 539, 418, 531, -- 534, 535, 536, 376, 370, 346, 496, 0, 320, 0, -- 496, 496, 0, 494, 347, 331, 361, 358, 357, 362, -- 360, 355, 359, 345, 0, 96, 494, 251, 0, 540, -- 590, 232, 515, 279, 268, 515, 258, 259, 260, 261, -- 262, 263, 264, 265, 267, 421, 420, 419, 443, 0, -- 0, 0, 425, 0, 0, 0, 0, 0, 0, 433, -- 387, 390, 0, 327, 324, 309, 496, 523, 524, 592, -- 0, 496, 346, 496, 253, 494, 503, 0, 0, 422, -- 423, 424, 537, 528, 530, 538, 0, 533, 0, 446, -- 0, 0, 0, 0, 428, 0, 426, 0, 325, 323, -- 0, 593, 0, 495, 452, 364, 0, 452, 496, 490, -- 590, 0, 0, 0, 0, 427, 0, 437, 438, 439, -- 0, 435, 0, 295, 591, 0, 453, 0, 356, 346, -- 0, 452, 590, 496, 430, 431, 432, 429, 0, 436, -- 590, 367, 594, 0, 510, 365, 295, 0, 496, 449, -- 434, 494, 0, 0, 508, 510, 510, 452, 450, 0, -- 496, 515, 511, 0, 512, 508, 508, 0, 0, 295, -- 0, 0, 509, 0, 506, 512, 512, 295, 515, 510, -- 510, 0, 513, 0, 460, 506, 506, 510, 0, 508, -- 508, 454, 507, 457, 459, 508, 0, 448, 512, 120, -- 451, 444 --}; -+#define YYTABLE_NINF -561 - --/* YYDEFGOTO[NTERM-NUM]. */ --static const yytype_int16 yydefgoto[] = --{ -- -1, 1, 2, 3, 78, 79, 80, 140, 244, 245, -- 81, 143, 247, 248, 82, 146, 250, 251, 83, 149, -- 253, 254, 84, 152, 256, 257, 85, 137, 241, 242, -- 86, 328, 615, 698, 699, 700, 87, 392, 88, 623, -- 537, 648, 649, 650, 89, 313, 449, 586, 90, 212, -- 454, 455, 91, 215, 317, 318, 92, 211, 451, 452, -- 93, 271, 395, 396, 94, 95, 218, 323, 324, 96, -- 223, 332, 333, 97, 226, 335, 336, 98, 229, 338, -- 339, 99, 191, 296, 297, 299, 430, 431, 100, 194, -- 301, 302, 304, 438, 439, 101, 187, 292, 288, 289, -- 291, 420, 421, 188, 294, 102, 176, 274, 275, 103, -- 104, 180, 277, 278, 712, 770, 869, 105, 106, 107, -- 108, 811, 812, 813, 814, 815, 816, 817, 818, 654, -- 820, 821, 109, 655, 110, 111, 112, 113, 114, 115, -- 116, 117, 823, 118, 119, 422, 560, 661, 662, 676, -- 563, 665, 666, 677, 120, 161, 263, 264, 121, 154, -- 155, 122, 582, 201, 267, 308, 738, 739, 740, 939, -- 846, 612, 694, 756, 763, 695, 696, 123, 124, 125, -- 545, 863, 946, 126, 127, 306, 674, 128, 234, 587, -- 130, 305, 673, 442, 577, 578, 579, 733, 830, 831, -- 832, 899, 933, 934, 936, 960, 961, 517, 889, 833, -- 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361, -- 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994, -- 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840, -- 841, 895, 842, 495, 630, 631, 476, 477, 364, 237, -- 134, 330, 853, 942 --}; -+#define yytable_value_is_error(Yytable_value) \ -+ 0 - --/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -- STATE-NUM. */ --#define YYPACT_NINF -848 -+ /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing -+ STATE-NUM. */ - static const yytype_int16 yypact[] = - { - -848, 264, -848, 1011, -848, -848, 67, 30, 64, 89, -@@ -1740,7 +1276,119 @@ - -848, -848 - }; - --/* YYPGOTO[NTERM-NUM]. */ -+ /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. -+ Performed when YYTABLE does not specify something else to do. Zero -+ means the default is an error. */ -+static const yytype_uint16 yydefact[] = -+{ -+ 4, 4, 2, 0, 1, 3, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0, 151, 352, -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -+ 0, 0, 572, 562, 565, 566, 570, 571, 575, 576, -+ 577, 578, 579, 580, 581, 582, 583, 584, 585, 310, -+ 0, 563, 0, 0, 586, 0, 0, 138, 127, 0, -+ 153, 0, 0, 0, 587, 0, 0, 0, 5, 43, -+ 19, 20, 21, 9, 42, 14, 50, 40, 41, 46, -+ 16, 17, 15, 44, 45, 18, 22, 23, 24, 7, -+ 8, 6, 11, 12, 13, 10, 25, 26, 55, 27, -+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, -+ 38, 39, 52, 558, 349, 350, 51, 47, 49, 371, -+ 48, 53, 54, 0, 555, 0, 0, 86, 57, 0, -+ 56, 63, 0, 62, 69, 0, 68, 75, 0, 74, -+ 81, 0, 0, 306, 277, 0, 278, 280, 281, 298, -+ 0, 0, 313, 271, 272, 273, 274, 275, 269, 276, -+ 254, 0, 496, 143, 235, 0, 234, 241, 243, 0, -+ 242, 255, 256, 257, 230, 231, 0, 222, 208, 232, -+ 0, 186, 181, 0, 199, 194, 374, 368, 568, 311, -+ 312, 315, 573, 561, 564, 567, 574, 348, 555, 0, -+ 121, 0, 0, 133, 0, 132, 154, 0, 496, 0, -+ 94, 0, 0, 162, 163, 0, 168, 169, 0, 174, -+ 175, 0, 0, 0, 0, 496, 0, 553, 87, 0, -+ 0, 0, 89, 0, 0, 59, 0, 0, 65, 0, -+ 0, 71, 0, 0, 77, 0, 0, 83, 80, 307, -+ 305, 0, 0, 0, 300, 297, 314, 0, 560, 0, -+ 104, 315, 0, 0, 0, 237, 0, 0, 245, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, -+ 0, 206, 232, 233, 207, 0, 0, 183, 0, 180, -+ 0, 0, 196, 0, 193, 377, 377, 316, 496, 569, -+ 553, 496, 0, 123, 0, 0, 0, 0, 135, 0, -+ 0, 0, 0, 0, 156, 152, 515, 0, 496, 588, -+ 0, 0, 0, 165, 0, 0, 171, 0, 0, 177, -+ 0, 351, 496, 372, 515, 541, 0, 0, 0, 462, -+ 461, 463, 464, 466, 467, 481, 484, 488, 0, 465, -+ 468, 0, 557, 554, 551, 0, 0, 88, 0, 0, -+ 58, 0, 0, 64, 0, 0, 70, 0, 0, 76, -+ 0, 0, 82, 0, 0, 0, 299, 0, 304, 500, -+ 0, 498, 0, 145, 0, 149, 0, 0, 0, 0, -+ 236, 0, 0, 244, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 210, 0, 0, 288, 226, 227, -+ 0, 224, 228, 229, 209, 0, 182, 0, 190, 191, -+ 0, 188, 192, 0, 195, 0, 203, 204, 0, 201, -+ 205, 382, 496, 496, 308, 550, 0, 0, 0, 0, -+ 142, 0, 140, 131, 0, 129, 0, 134, 0, 0, -+ 0, 0, 0, 155, 0, 315, 315, 315, 315, 315, -+ 0, 0, 315, 0, 514, 516, 315, 328, 0, 0, -+ 0, 373, 0, 164, 0, 0, 170, 0, 0, 176, -+ 0, 559, 106, 0, 0, 0, 482, 0, 486, 487, -+ 472, 471, 473, 474, 476, 477, 485, 469, 489, 470, -+ 483, 475, 478, 515, 556, 440, 441, 91, 92, 90, -+ 61, 60, 67, 66, 73, 72, 79, 78, 85, 84, -+ 302, 303, 301, 0, 0, 497, 0, 105, 146, 0, -+ 144, 315, 239, 353, 354, 240, 238, 247, 246, 213, -+ 214, 215, 216, 217, 218, 219, 220, 221, 212, 0, -+ 282, 289, 0, 0, 0, 225, 185, 184, 0, 189, -+ 198, 197, 0, 202, 383, 384, 385, 378, 379, 0, -+ 375, 369, 0, 295, 0, 125, 0, 371, 122, 139, -+ 141, 128, 130, 137, 136, 159, 160, 161, 158, 157, -+ 496, 496, 496, 496, 496, 515, 515, 496, 490, 0, -+ 496, 346, 526, 95, 0, 93, 589, 167, 166, 173, -+ 172, 179, 178, 0, 490, 0, 0, 0, 545, 546, -+ 0, 543, 248, 0, 479, 480, 0, 230, 504, 505, -+ 502, 501, 499, 0, 0, 0, 0, 0, 0, 109, -+ 119, 111, 112, 113, 117, 114, 118, 147, 0, 150, -+ 0, 0, 284, 0, 0, 0, 291, 287, 223, 187, -+ 200, 382, 381, 386, 386, 317, 296, 366, 0, 124, -+ 126, 328, 328, 328, 521, 522, 0, 0, 525, 491, -+ 492, 517, 552, 0, 329, 330, 338, 0, 0, 97, -+ 101, 99, 100, 102, 107, 492, 547, 548, 549, 542, -+ 544, 0, 250, 0, 490, 232, 270, 266, 115, 116, -+ 0, 0, 110, 148, 0, 283, 0, 0, 0, 290, -+ 0, 380, 388, 0, 0, 326, 321, 322, 0, 318, -+ 319, 0, 518, 519, 520, 315, 315, 493, 590, 0, -+ 332, 333, 334, 335, 336, 337, 346, 339, 341, 342, -+ 343, 344, 340, 0, 103, 0, 98, 590, 249, 0, -+ 252, 458, 492, 0, 0, 108, 286, 285, 293, 294, -+ 292, 0, 0, 352, 0, 0, 0, 0, 0, 0, -+ 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, -+ 527, 529, 537, 532, 445, 0, 397, 393, 391, 392, -+ 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, -+ 413, 414, 402, 415, 401, 399, 398, 394, 396, 395, -+ 455, 389, 400, 417, 416, 447, 0, 539, 418, 531, -+ 534, 535, 536, 376, 370, 346, 496, 0, 320, 0, -+ 496, 496, 0, 494, 347, 331, 361, 358, 357, 362, -+ 360, 355, 359, 345, 0, 96, 494, 251, 0, 540, -+ 590, 232, 515, 279, 268, 515, 258, 259, 260, 261, -+ 262, 263, 264, 265, 267, 421, 420, 419, 443, 0, -+ 0, 0, 425, 0, 0, 0, 0, 0, 0, 433, -+ 387, 390, 0, 327, 324, 309, 496, 523, 524, 592, -+ 0, 496, 346, 496, 253, 494, 503, 0, 0, 422, -+ 423, 424, 537, 528, 530, 538, 0, 533, 0, 446, -+ 0, 0, 0, 0, 428, 0, 426, 0, 325, 323, -+ 0, 593, 0, 495, 452, 364, 0, 452, 496, 490, -+ 590, 0, 0, 0, 0, 427, 0, 437, 438, 439, -+ 0, 435, 0, 295, 591, 0, 453, 0, 356, 346, -+ 0, 452, 590, 496, 430, 431, 432, 429, 0, 436, -+ 590, 367, 594, 0, 510, 365, 295, 0, 496, 449, -+ 434, 494, 0, 0, 508, 510, 510, 452, 450, 0, -+ 496, 515, 511, 0, 512, 508, 508, 0, 0, 295, -+ 0, 0, 509, 0, 506, 512, 512, 295, 515, 510, -+ 510, 0, 513, 0, 460, 506, 506, 510, 0, 508, -+ 508, 454, 507, 457, 459, 508, 0, 448, 512, 120, -+ 451, 444 -+}; -+ -+ /* YYPGOTO[NTERM-NUM]. */ - static const yytype_int16 yypgoto[] = - { - -848, -848, 761, -848, -848, -397, -848, -848, -848, 427, -@@ -1771,11 +1419,40 @@ - -10, -204, -732, -848 - }; - --/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If -- positive, shift that token. If negative, reduce the rule which -- number is the opposite. If zero, do what YYDEFACT says. -- If YYTABLE_NINF, syntax error. */ --#define YYTABLE_NINF -561 -+ /* YYDEFGOTO[NTERM-NUM]. */ -+static const yytype_int16 yydefgoto[] = -+{ -+ -1, 1, 2, 3, 78, 79, 80, 140, 244, 245, -+ 81, 143, 247, 248, 82, 146, 250, 251, 83, 149, -+ 253, 254, 84, 152, 256, 257, 85, 137, 241, 242, -+ 86, 328, 615, 698, 699, 700, 87, 392, 88, 623, -+ 537, 648, 649, 650, 89, 313, 449, 586, 90, 212, -+ 454, 455, 91, 215, 317, 318, 92, 211, 451, 452, -+ 93, 271, 395, 396, 94, 95, 218, 323, 324, 96, -+ 223, 332, 333, 97, 226, 335, 336, 98, 229, 338, -+ 339, 99, 191, 296, 297, 299, 430, 431, 100, 194, -+ 301, 302, 304, 438, 439, 101, 187, 292, 288, 289, -+ 291, 420, 421, 188, 294, 102, 176, 274, 275, 103, -+ 104, 180, 277, 278, 712, 770, 869, 105, 106, 107, -+ 108, 811, 812, 813, 814, 815, 816, 817, 818, 654, -+ 820, 821, 109, 655, 110, 111, 112, 113, 114, 115, -+ 116, 117, 823, 118, 119, 422, 560, 661, 662, 676, -+ 563, 665, 666, 677, 120, 161, 263, 264, 121, 154, -+ 155, 122, 582, 201, 267, 308, 738, 739, 740, 939, -+ 846, 612, 694, 756, 763, 695, 696, 123, 124, 125, -+ 545, 863, 946, 126, 127, 306, 674, 128, 234, 587, -+ 130, 305, 673, 442, 577, 578, 579, 733, 830, 831, -+ 832, 899, 933, 934, 936, 960, 961, 517, 889, 833, -+ 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361, -+ 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994, -+ 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840, -+ 841, 895, 842, 495, 630, 631, 476, 477, 364, 237, -+ 134, 330, 853, 942 -+}; -+ -+ /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If -+ positive, shift that token. If negative, reduce the rule whose -+ number is the opposite. If YYTABLE_NINF, syntax error. */ - static const yytype_int16 yytable[] = - { - 156, 157, 158, 133, 493, 163, 164, 165, 166, 167, -@@ -2108,8 +1785,8 @@ - -1, 127 - }; - --/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -- symbol of state STATE-NUM. */ -+ /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing -+ symbol of state STATE-NUM. */ - static const yytype_uint16 yystos[] = - { - 0, 175, 176, 177, 0, 176, 3, 5, 6, 7, -@@ -2219,95 +1896,171 @@ - 171, 404 - }; - --#define yyerrok (yyerrstatus = 0) --#define yyclearin (yychar = YYEMPTY) --#define YYEMPTY (-2) --#define YYEOF 0 -+ /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -+static const yytype_uint16 yyr1[] = -+{ -+ 0, 174, 175, 175, 177, 176, 178, 178, 178, 178, -+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -+ 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, -+ 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, -+ 179, 179, 179, 179, 179, 179, 180, 181, 181, 182, -+ 182, 183, 184, 185, 185, 186, 186, 187, 188, 189, -+ 189, 190, 190, 191, 192, 193, 193, 194, 194, 195, -+ 196, 197, 197, 198, 198, 199, 200, 201, 201, 202, -+ 202, 203, 203, 204, 205, 205, 206, 207, 207, 208, -+ 208, 208, 208, 209, 211, 210, 213, 212, 214, 215, -+ 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, -+ 217, 219, 218, 220, 220, 221, 221, 223, 222, 224, -+ 224, 225, 226, 227, 227, 228, 228, 229, 231, 230, -+ 232, 232, 233, 235, 234, 236, 236, 236, 236, 237, -+ 237, 238, 239, 240, 240, 240, 241, 241, 242, 242, -+ 242, 242, 243, 244, 244, 245, 245, 246, 247, 248, -+ 248, 249, 249, 250, 251, 252, 252, 253, 253, 254, -+ 255, 256, 256, 257, 257, 258, 259, 259, 260, 260, -+ 261, 261, 261, 262, 263, 263, 264, 264, 265, 266, -+ 266, 267, 267, 268, 268, 268, 269, 269, 271, 270, -+ 270, 272, 272, 273, 273, 273, 273, 273, 273, 273, -+ 273, 273, 274, 274, 275, 275, 276, 276, 276, 276, -+ 277, 277, 278, 278, 279, 280, 280, 281, 281, 282, -+ 282, 283, 284, 285, 285, 286, 286, 287, 288, 288, -+ 289, 289, 290, 290, 291, 292, 293, 294, 295, 296, -+ 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, -+ 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, -+ 317, 318, 319, 320, 321, 321, 322, 323, 324, 324, -+ 324, 325, 325, 326, 326, 327, 327, 328, 329, 329, -+ 330, 330, 331, 331, 332, 333, 334, 334, 336, 335, -+ 337, 337, 337, 338, 338, 339, 339, 340, 340, 341, -+ 341, 342, 342, 342, 343, 343, 344, 344, 345, 345, -+ 346, 346, 347, 347, 347, 347, 347, 347, 348, 348, -+ 348, 348, 348, 348, 348, 349, 350, 350, 351, 351, -+ 352, 352, 353, 354, 354, 355, 355, 355, 355, 355, -+ 355, 355, 355, 356, 356, 356, 357, 357, 359, 360, -+ 358, 362, 361, 363, 365, 366, 364, 367, 367, 368, -+ 368, 369, 370, 370, 370, 370, 371, 371, 372, 372, -+ 372, 373, 373, 373, 373, 373, 373, 373, 373, 373, -+ 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, -+ 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, -+ 373, 373, 373, 373, 373, 373, 374, 375, 376, 376, -+ 377, 377, 377, 378, 378, 379, 379, 380, 380, 380, -+ 381, 381, 382, 382, 383, 385, 384, 384, 386, 387, -+ 388, 387, 389, 390, 389, 391, 391, 392, 392, 392, -+ 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, -+ 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, -+ 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, -+ 394, 394, 395, 395, 396, 396, 397, 397, 398, 398, -+ 399, 399, 400, 400, 400, 400, 401, 401, 402, 402, -+ 403, 403, 404, 404, 405, 406, 406, 406, 407, 407, -+ 407, 407, 407, 407, 407, 407, 407, 409, 408, 410, -+ 408, 408, 412, 411, 411, 413, 413, 415, 414, 414, -+ 416, 417, 417, 418, 418, 419, 419, 419, 419, 419, -+ 420, 420, 421, 422, 422, 423, 423, 423, 424, 424, -+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, -+ 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, -+ 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, -+ 426, 426, 427, 427, 427 -+}; - --#define YYACCEPT goto yyacceptlab --#define YYABORT goto yyabortlab --#define YYERROR goto yyerrorlab -+ /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -+static const yytype_uint8 yyr2[] = -+{ -+ 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, -+ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, -+ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, -+ 3, 1, 3, 1, 3, 3, 2, 2, 3, 1, -+ 3, 3, 3, 5, 0, 3, 4, 1, 2, 1, -+ 1, 1, 1, 2, 0, 5, 0, 6, 4, 1, -+ 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, -+ 14, 0, 5, 0, 3, 1, 2, 0, 5, 1, -+ 2, 1, 2, 1, 3, 1, 3, 3, 0, 5, -+ 1, 2, 1, 0, 5, 1, 2, 3, 4, 1, -+ 3, 1, 3, 0, 1, 3, 1, 3, 3, 3, -+ 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, -+ 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, -+ 3, 1, 3, 1, 3, 3, 0, 4, 1, 2, -+ 1, 1, 1, 3, 1, 3, 1, 3, 3, 0, -+ 4, 1, 2, 1, 1, 1, 3, 3, 0, 3, -+ 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, -+ 3, 3, 0, 4, 1, 2, 1, 1, 1, 1, -+ 1, 1, 0, 1, 2, 1, 3, 1, 3, 3, -+ 3, 2, 2, 1, 3, 1, 3, 3, 0, 2, -+ 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -+ 2, 2, 2, 3, 1, 3, 3, 3, 0, 1, -+ 3, 1, 3, 3, 3, 0, 1, 3, 1, 3, -+ 1, 3, 3, 3, 4, 2, 1, 2, 0, 9, -+ 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, -+ 2, 1, 1, 4, 0, 1, 0, 2, 0, 2, -+ 1, 3, 1, 1, 1, 1, 1, 1, 0, 1, -+ 1, 1, 1, 1, 1, 3, 0, 3, 2, 1, -+ 1, 3, 1, 1, 1, 1, 4, 1, 1, 1, -+ 1, 1, 1, 0, 1, 3, 6, 12, 0, 0, -+ 8, 0, 3, 4, 0, 0, 8, 0, 2, 1, -+ 3, 2, 0, 1, 1, 1, 0, 3, 0, 1, -+ 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, -+ 2, 2, 3, 3, 3, 2, 3, 3, 1, 3, -+ 3, 3, 3, 0, 4, 1, 2, 1, 1, 1, -+ 1, 1, 0, 1, 12, 0, 3, 1, 11, 0, -+ 0, 6, 0, 0, 7, 0, 1, 17, 7, 17, -+ 16, 1, 1, 1, 1, 1, 1, 1, 1, 2, -+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, -+ 3, 1, 2, 2, 1, 2, 2, 2, 1, 2, -+ 0, 1, 0, 1, 0, 2, 0, 3, 1, 3, -+ 1, 3, 1, 5, 1, 1, 0, 2, 0, 2, -+ 0, 2, 0, 2, 1, 0, 1, 3, 4, 4, -+ 4, 3, 3, 6, 6, 3, 2, 0, 3, 0, -+ 3, 1, 0, 3, 1, 1, 1, 0, 3, 1, -+ 8, 0, 3, 1, 2, 1, 1, 2, 2, 2, -+ 4, 3, 3, 0, 1, 0, 3, 2, 1, 4, -+ 2, 2, 1, 1, 2, 1, 1, 2, 2, 3, -+ 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, -+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, -+ 0, 4, 0, 1, 3 -+}; - - --/* Like YYERROR except do call yyerror. This remains here temporarily -- to ease the transition to the new meaning of YYERROR, for GCC. -- Once GCC version 2 has supplanted version 1, this can go. */ -+#define yyerrok (yyerrstatus = 0) -+#define yyclearin (yychar = YYEMPTY) -+#define YYEMPTY (-2) -+#define YYEOF 0 -+ -+#define YYACCEPT goto yyacceptlab -+#define YYABORT goto yyabortlab -+#define YYERROR goto yyerrorlab - --#define YYFAIL goto yyerrlab - - #define YYRECOVERING() (!!yyerrstatus) - --#define YYBACKUP(Token, Value) \ --do \ -- if (yychar == YYEMPTY && yylen == 1) \ -- { \ -- yychar = (Token); \ -- yylval = (Value); \ -- yytoken = YYTRANSLATE (yychar); \ -- YYPOPSTACK (1); \ -- goto yybackup; \ -- } \ -- else \ -- { \ -+#define YYBACKUP(Token, Value) \ -+do \ -+ if (yychar == YYEMPTY) \ -+ { \ -+ yychar = (Token); \ -+ yylval = (Value); \ -+ YYPOPSTACK (yylen); \ -+ yystate = *yyssp; \ -+ goto yybackup; \ -+ } \ -+ else \ -+ { \ - yyerror (YY_("syntax error: cannot back up")); \ -- YYERROR; \ -- } \ --while (YYID (0)) -- -- --#define YYTERROR 1 --#define YYERRCODE 256 -- -- --/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. -- If N is 0, then set CURRENT to the empty location which ends -- the previous symbol: RHS[0] (always defined). */ -- --#define YYRHSLOC(Rhs, K) ((Rhs)[K]) --#ifndef YYLLOC_DEFAULT --# define YYLLOC_DEFAULT(Current, Rhs, N) \ -- do \ -- if (YYID (N)) \ -- { \ -- (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ -- (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ -- (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ -- (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ -- } \ -- else \ -- { \ -- (Current).first_line = (Current).last_line = \ -- YYRHSLOC (Rhs, 0).last_line; \ -- (Current).first_column = (Current).last_column = \ -- YYRHSLOC (Rhs, 0).last_column; \ -- } \ -- while (YYID (0)) --#endif -- -- --/* YY_LOCATION_PRINT -- Print the location on the stream. -- This macro was not mandated originally: define only if we know -- we won't break user code: when these are the locations we know. */ -- --#ifndef YY_LOCATION_PRINT --# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL --# define YY_LOCATION_PRINT(File, Loc) \ -- fprintf (File, "%d.%d-%d.%d", \ -- (Loc).first_line, (Loc).first_column, \ -- (Loc).last_line, (Loc).last_column) --# else --# define YY_LOCATION_PRINT(File, Loc) ((void) 0) --# endif --#endif -+ YYERROR; \ -+ } \ -+while (0) - -+/* Error token number */ -+#define YYTERROR 1 -+#define YYERRCODE 256 - --/* YYLEX -- calling `yylex' with the right arguments. */ - --#ifdef YYLEX_PARAM --# define YYLEX yylex (YYLEX_PARAM) --#else --# define YYLEX yylex () --#endif - - /* Enable debugging if requested. */ - #if YYDEBUG -@@ -2317,54 +2070,46 @@ - # define YYFPRINTF fprintf - # endif - --# define YYDPRINTF(Args) \ --do { \ -- if (yydebug) \ -- YYFPRINTF Args; \ --} while (YYID (0)) -+# define YYDPRINTF(Args) \ -+do { \ -+ if (yydebug) \ -+ YYFPRINTF Args; \ -+} while (0) - --# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ --do { \ -- if (yydebug) \ -- { \ -- YYFPRINTF (stderr, "%s ", Title); \ -- yy_symbol_print (stderr, \ -- Type, Value); \ -- YYFPRINTF (stderr, "\n"); \ -- } \ --} while (YYID (0)) -+/* This macro is provided for backward compatibility. */ -+#ifndef YY_LOCATION_PRINT -+# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -+#endif - - --/*--------------------------------. --| Print this symbol on YYOUTPUT. | --`--------------------------------*/ -+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ -+do { \ -+ if (yydebug) \ -+ { \ -+ YYFPRINTF (stderr, "%s ", Title); \ -+ yy_symbol_print (stderr, \ -+ Type, Value); \ -+ YYFPRINTF (stderr, "\n"); \ -+ } \ -+} while (0) -+ -+ -+/*----------------------------------------. -+| Print this symbol's value on YYOUTPUT. | -+`----------------------------------------*/ - --/*ARGSUSED*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) --#else --static void --yy_symbol_value_print (yyoutput, yytype, yyvaluep) -- FILE *yyoutput; -- int yytype; -- YYSTYPE const * const yyvaluep; --#endif - { -+ FILE *yyo = yyoutput; -+ YYUSE (yyo); - if (!yyvaluep) - return; - # ifdef YYPRINT - if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); --# else -- YYUSE (yyoutput); - # endif -- switch (yytype) -- { -- default: -- break; -- } -+ YYUSE (yytype); - } - - -@@ -2372,22 +2117,11 @@ - | Print this symbol on YYOUTPUT. | - `--------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) --#else --static void --yy_symbol_print (yyoutput, yytype, yyvaluep) -- FILE *yyoutput; -- int yytype; -- YYSTYPE const * const yyvaluep; --#endif - { -- if (yytype < YYNTOKENS) -- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); -- else -- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); -+ YYFPRINTF (yyoutput, "%s %s (", -+ yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); -@@ -2398,66 +2132,54 @@ - | TOP (included). | - `------------------------------------------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --static void --yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) --#else - static void --yy_stack_print (bottom, top) -- yytype_int16 *bottom; -- yytype_int16 *top; --#endif -+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) - { - YYFPRINTF (stderr, "Stack now"); -- for (; bottom <= top; ++bottom) -- YYFPRINTF (stderr, " %d", *bottom); -+ for (; yybottom <= yytop; yybottom++) -+ { -+ int yybot = *yybottom; -+ YYFPRINTF (stderr, " %d", yybot); -+ } - YYFPRINTF (stderr, "\n"); - } - --# define YY_STACK_PRINT(Bottom, Top) \ --do { \ -- if (yydebug) \ -- yy_stack_print ((Bottom), (Top)); \ --} while (YYID (0)) -+# define YY_STACK_PRINT(Bottom, Top) \ -+do { \ -+ if (yydebug) \ -+ yy_stack_print ((Bottom), (Top)); \ -+} while (0) - - - /*------------------------------------------------. - | Report that the YYRULE is going to be reduced. | - `------------------------------------------------*/ - --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void --yy_reduce_print (YYSTYPE *yyvsp, int yyrule) --#else --static void --yy_reduce_print (yyvsp, yyrule) -- YYSTYPE *yyvsp; -- int yyrule; --#endif -+yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) - { -+ unsigned long int yylno = yyrline[yyrule]; - int yynrhs = yyr2[yyrule]; - int yyi; -- unsigned long int yylno = yyrline[yyrule]; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", -- yyrule - 1, yylno); -+ yyrule - 1, yylno); - /* The symbols being reduced. */ - for (yyi = 0; yyi < yynrhs; yyi++) - { -- fprintf (stderr, " $%d = ", yyi + 1); -- yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], -- &(yyvsp[(yyi + 1) - (yynrhs)]) -- ); -- fprintf (stderr, "\n"); -+ YYFPRINTF (stderr, " $%d = ", yyi + 1); -+ yy_symbol_print (stderr, -+ yystos[yyssp[yyi + 1 - yynrhs]], -+ &(yyvsp[(yyi + 1) - (yynrhs)]) -+ ); -+ YYFPRINTF (stderr, "\n"); - } - } - --# define YY_REDUCE_PRINT(Rule) \ --do { \ -- if (yydebug) \ -- yy_reduce_print (yyvsp, Rule); \ --} while (YYID (0)) -+# define YY_REDUCE_PRINT(Rule) \ -+do { \ -+ if (yydebug) \ -+ yy_reduce_print (yyssp, yyvsp, Rule); \ -+} while (0) - - /* Nonzero means print parse trace. It is left uninitialized so that - multiple parsers can coexist. */ -@@ -2471,7 +2193,7 @@ - - - /* YYINITDEPTH -- initial size of the parser's stacks. */ --#ifndef YYINITDEPTH -+#ifndef YYINITDEPTH - # define YYINITDEPTH 200 - #endif - -@@ -2486,7 +2208,6 @@ - # define YYMAXDEPTH 10000 - #endif - -- - - #if YYERROR_VERBOSE - -@@ -2495,15 +2216,8 @@ - # define yystrlen strlen - # else - /* Return the length of YYSTR. */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static YYSIZE_T - yystrlen (const char *yystr) --#else --static YYSIZE_T --yystrlen (yystr) -- const char *yystr; --#endif - { - YYSIZE_T yylen; - for (yylen = 0; yystr[yylen]; yylen++) -@@ -2519,16 +2233,8 @@ - # else - /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in - YYDEST. */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static char * - yystpcpy (char *yydest, const char *yysrc) --#else --static char * --yystpcpy (yydest, yysrc) -- char *yydest; -- const char *yysrc; --#endif - { - char *yyd = yydest; - const char *yys = yysrc; -@@ -2558,27 +2264,27 @@ - char const *yyp = yystr; - - for (;;) -- switch (*++yyp) -- { -- case '\'': -- case ',': -- goto do_not_strip_quotes; -+ switch (*++yyp) -+ { -+ case '\'': -+ case ',': -+ goto do_not_strip_quotes; - -- case '\\': -- if (*++yyp != '\\') -- goto do_not_strip_quotes; -- /* Fall through. */ -- default: -- if (yyres) -- yyres[yyn] = *yyp; -- yyn++; -- break; -+ case '\\': -+ if (*++yyp != '\\') -+ goto do_not_strip_quotes; -+ /* Fall through. */ -+ default: -+ if (yyres) -+ yyres[yyn] = *yyp; -+ yyn++; -+ break; - -- case '"': -- if (yyres) -- yyres[yyn] = '\0'; -- return yyn; -- } -+ case '"': -+ if (yyres) -+ yyres[yyn] = '\0'; -+ return yyn; -+ } - do_not_strip_quotes: ; - } - -@@ -2589,211 +2295,209 @@ - } - # endif - --/* Copy into YYRESULT an error message about the unexpected token -- YYCHAR while in state YYSTATE. Return the number of bytes copied, -- including the terminating null byte. If YYRESULT is null, do not -- copy anything; just return the number of bytes that would be -- copied. As a special case, return 0 if an ordinary "syntax error" -- message will do. Return YYSIZE_MAXIMUM if overflow occurs during -- size calculation. */ --static YYSIZE_T --yysyntax_error (char *yyresult, int yystate, int yychar) -+/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message -+ about the unexpected token YYTOKEN for the state stack whose top is -+ YYSSP. -+ -+ Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is -+ not large enough to hold the message. In that case, also set -+ *YYMSG_ALLOC to the required number of bytes. Return 2 if the -+ required number of bytes is too large to store. */ -+static int -+yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, -+ yytype_int16 *yyssp, int yytoken) - { -- int yyn = yypact[yystate]; -+ YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); -+ YYSIZE_T yysize = yysize0; -+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; -+ /* Internationalized format string. */ -+ const char *yyformat = YY_NULLPTR; -+ /* Arguments of yyformat. */ -+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; -+ /* Number of reported tokens (one for the "unexpected", one per -+ "expected"). */ -+ int yycount = 0; - -- if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) -- return 0; -- else -+ /* There are many possibilities here to consider: -+ - If this state is a consistent state with a default action, then -+ the only way this function was invoked is if the default action -+ is an error action. In that case, don't check for expected -+ tokens because there are none. -+ - The only way there can be no lookahead present (in yychar) is if -+ this state is a consistent state with a default action. Thus, -+ detecting the absence of a lookahead is sufficient to determine -+ that there is no unexpected or expected token to report. In that -+ case, just report a simple "syntax error". -+ - Don't assume there isn't a lookahead just because this state is a -+ consistent state with a default action. There might have been a -+ previous inconsistent state, consistent state with a non-default -+ action, or user semantic action that manipulated yychar. -+ - Of course, the expected token list depends on states to have -+ correct lookahead information, and it depends on the parser not -+ to perform extra reductions after fetching a lookahead from the -+ scanner and before detecting a syntax error. Thus, state merging -+ (from LALR or IELR) and default reductions corrupt the expected -+ token list. However, the list is correct for canonical LR with -+ one exception: it will still contain any token that will not be -+ accepted due to an error action in a later state. -+ */ -+ if (yytoken != YYEMPTY) - { -- int yytype = YYTRANSLATE (yychar); -- YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); -- YYSIZE_T yysize = yysize0; -- YYSIZE_T yysize1; -- int yysize_overflow = 0; -- enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; -- char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; -- int yyx; -- --# if 0 -- /* This is so xgettext sees the translatable formats that are -- constructed on the fly. */ -- YY_("syntax error, unexpected %s"); -- YY_("syntax error, unexpected %s, expecting %s"); -- YY_("syntax error, unexpected %s, expecting %s or %s"); -- YY_("syntax error, unexpected %s, expecting %s or %s or %s"); -- YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); --# endif -- char *yyfmt; -- char const *yyf; -- static char const yyunexpected[] = "syntax error, unexpected %s"; -- static char const yyexpecting[] = ", expecting %s"; -- static char const yyor[] = " or %s"; -- char yyformat[sizeof yyunexpected -- + sizeof yyexpecting - 1 -- + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) -- * (sizeof yyor - 1))]; -- char const *yyprefix = yyexpecting; -- -- /* Start YYX at -YYN if negative to avoid negative indexes in -- YYCHECK. */ -- int yyxbegin = yyn < 0 ? -yyn : 0; -- -- /* Stay within bounds of both yycheck and yytname. */ -- int yychecklim = YYLAST - yyn + 1; -- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; -- int yycount = 1; -- -- yyarg[0] = yytname[yytype]; -- yyfmt = yystpcpy (yyformat, yyunexpected); -+ int yyn = yypact[*yyssp]; -+ yyarg[yycount++] = yytname[yytoken]; -+ if (!yypact_value_is_default (yyn)) -+ { -+ /* Start YYX at -YYN if negative to avoid negative indexes in -+ YYCHECK. In other words, skip the first -YYN actions for -+ this state because they are default actions. */ -+ int yyxbegin = yyn < 0 ? -yyn : 0; -+ /* Stay within bounds of both yycheck and yytname. */ -+ int yychecklim = YYLAST - yyn + 1; -+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; -+ int yyx; - -- for (yyx = yyxbegin; yyx < yyxend; ++yyx) -- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) -- { -- if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) -- { -- yycount = 1; -- yysize = yysize0; -- yyformat[sizeof yyunexpected - 1] = '\0'; -- break; -- } -- yyarg[yycount++] = yytname[yyx]; -- yysize1 = yysize + yytnamerr (0, yytname[yyx]); -- yysize_overflow |= (yysize1 < yysize); -- yysize = yysize1; -- yyfmt = yystpcpy (yyfmt, yyprefix); -- yyprefix = yyor; -- } -+ for (yyx = yyxbegin; yyx < yyxend; ++yyx) -+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR -+ && !yytable_value_is_error (yytable[yyx + yyn])) -+ { -+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) -+ { -+ yycount = 1; -+ yysize = yysize0; -+ break; -+ } -+ yyarg[yycount++] = yytname[yyx]; -+ { -+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); -+ if (! (yysize <= yysize1 -+ && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -+ return 2; -+ yysize = yysize1; -+ } -+ } -+ } -+ } - -- yyf = YY_(yyformat); -- yysize1 = yysize + yystrlen (yyf); -- yysize_overflow |= (yysize1 < yysize); -- yysize = yysize1; -+ switch (yycount) -+ { -+# define YYCASE_(N, S) \ -+ case N: \ -+ yyformat = S; \ -+ break -+ YYCASE_(0, YY_("syntax error")); -+ YYCASE_(1, YY_("syntax error, unexpected %s")); -+ YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); -+ YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); -+ YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); -+ YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); -+# undef YYCASE_ -+ } - -- if (yysize_overflow) -- return YYSIZE_MAXIMUM; -+ { -+ YYSIZE_T yysize1 = yysize + yystrlen (yyformat); -+ if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) -+ return 2; -+ yysize = yysize1; -+ } - -- if (yyresult) -- { -- /* Avoid sprintf, as that infringes on the user's name space. -- Don't have undefined behavior even if the translation -- produced a string with the wrong number of "%s"s. */ -- char *yyp = yyresult; -- int yyi = 0; -- while ((*yyp = *yyf) != '\0') -- { -- if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) -- { -- yyp += yytnamerr (yyp, yyarg[yyi++]); -- yyf += 2; -- } -- else -- { -- yyp++; -- yyf++; -- } -- } -- } -- return yysize; -+ if (*yymsg_alloc < yysize) -+ { -+ *yymsg_alloc = 2 * yysize; -+ if (! (yysize <= *yymsg_alloc -+ && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) -+ *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; -+ return 1; - } -+ -+ /* Avoid sprintf, as that infringes on the user's name space. -+ Don't have undefined behavior even if the translation -+ produced a string with the wrong number of "%s"s. */ -+ { -+ char *yyp = *yymsg; -+ int yyi = 0; -+ while ((*yyp = *yyformat) != '\0') -+ if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) -+ { -+ yyp += yytnamerr (yyp, yyarg[yyi++]); -+ yyformat += 2; -+ } -+ else -+ { -+ yyp++; -+ yyformat++; -+ } -+ } -+ return 0; - } - #endif /* YYERROR_VERBOSE */ -- - - /*-----------------------------------------------. - | Release the memory associated to this symbol. | - `-----------------------------------------------*/ - --/*ARGSUSED*/ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - static void - yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) --#else --static void --yydestruct (yymsg, yytype, yyvaluep) -- const char *yymsg; -- int yytype; -- YYSTYPE *yyvaluep; --#endif - { - YYUSE (yyvaluep); -- - if (!yymsg) - yymsg = "Deleting"; - YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - -- switch (yytype) -- { -- -- default: -- break; -- } -+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN -+ YYUSE (yytype); -+ YY_IGNORE_MAYBE_UNINITIALIZED_END - } -- -- --/* Prevent warnings from -Wmissing-prototypes. */ - --#ifdef YYPARSE_PARAM --#if defined __STDC__ || defined __cplusplus --int yyparse (void *YYPARSE_PARAM); --#else --int yyparse (); --#endif --#else /* ! YYPARSE_PARAM */ --#if defined __STDC__ || defined __cplusplus --int yyparse (void); --#else --int yyparse (); --#endif --#endif /* ! YYPARSE_PARAM */ - - - --/* The look-ahead symbol. */ -+/* The lookahead symbol. */ - int yychar; - --/* The semantic value of the look-ahead symbol. */ -+/* The semantic value of the lookahead symbol. */ - YYSTYPE yylval; -- - /* Number of syntax errors so far. */ - int yynerrs; - - -- - /*----------. - | yyparse. | - `----------*/ - --#ifdef YYPARSE_PARAM --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) --int --yyparse (void *YYPARSE_PARAM) --#else --int --yyparse (YYPARSE_PARAM) -- void *YYPARSE_PARAM; --#endif --#else /* ! YYPARSE_PARAM */ --#if (defined __STDC__ || defined __C99__FUNC__ \ -- || defined __cplusplus || defined _MSC_VER) - int - yyparse (void) --#else --int --yyparse () -- --#endif --#endif - { -- -- int yystate; -+ int yystate; -+ /* Number of tokens to shift before error messages enabled. */ -+ int yyerrstatus; -+ -+ /* The stacks and their tools: -+ 'yyss': related to states. -+ 'yyvs': related to semantic values. -+ -+ Refer to the stacks through separate pointers, to allow yyoverflow -+ to reallocate them elsewhere. */ -+ -+ /* The state stack. */ -+ yytype_int16 yyssa[YYINITDEPTH]; -+ yytype_int16 *yyss; -+ yytype_int16 *yyssp; -+ -+ /* The semantic value stack. */ -+ YYSTYPE yyvsa[YYINITDEPTH]; -+ YYSTYPE *yyvs; -+ YYSTYPE *yyvsp; -+ -+ YYSIZE_T yystacksize; -+ - int yyn; - int yyresult; -- /* Number of tokens to shift before error messages enabled. */ -- int yyerrstatus; -- /* Look-ahead token as an internal (translated) token number. */ -+ /* Lookahead token as an internal (translated) token number. */ - int yytoken = 0; -+ /* The variables used to return semantic value and location from the -+ action routines. */ -+ YYSTYPE yyval; -+ - #if YYERROR_VERBOSE - /* Buffer for error messages, and its allocated size. */ - char yymsgbuf[128]; -@@ -2801,54 +2505,22 @@ - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; - #endif - -- /* Three stacks and their tools: -- `yyss': related to states, -- `yyvs': related to semantic values, -- `yyls': related to locations. -- -- Refer to the stacks thru separate pointers, to allow yyoverflow -- to reallocate them elsewhere. */ -- -- /* The state stack. */ -- yytype_int16 yyssa[YYINITDEPTH]; -- yytype_int16 *yyss = yyssa; -- yytype_int16 *yyssp; -- -- /* The semantic value stack. */ -- YYSTYPE yyvsa[YYINITDEPTH]; -- YYSTYPE *yyvs = yyvsa; -- YYSTYPE *yyvsp; -- -- -- - #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) - -- YYSIZE_T yystacksize = YYINITDEPTH; -- -- /* The variables used to return semantic value and location from the -- action routines. */ -- YYSTYPE yyval; -- -- - /* The number of symbols on the RHS of the reduced rule. - Keep to zero when no symbol should be popped. */ - int yylen = 0; - -+ yyssp = yyss = yyssa; -+ yyvsp = yyvs = yyvsa; -+ yystacksize = YYINITDEPTH; -+ - YYDPRINTF ((stderr, "Starting parse\n")); - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; -- yychar = YYEMPTY; /* Cause a token to be read. */ -- -- /* Initialize stack pointers. -- Waste one element of value and location stack -- so that they stay on the same level as the state stack. -- The wasted elements are never initialized. */ -- -- yyssp = yyss; -- yyvsp = yyvs; -- -+ yychar = YYEMPTY; /* Cause a token to be read. */ - goto yysetstate; - - /*------------------------------------------------------------. -@@ -2869,25 +2541,23 @@ - - #ifdef yyoverflow - { -- /* Give user a chance to reallocate the stack. Use copies of -- these so that the &'s don't force the real ones into -- memory. */ -- YYSTYPE *yyvs1 = yyvs; -- yytype_int16 *yyss1 = yyss; -- -- -- /* Each stack pointer address is followed by the size of the -- data in use in that stack, in bytes. This used to be a -- conditional around just the two extra args, but that might -- be undefined if yyoverflow is a macro. */ -- yyoverflow (YY_("memory exhausted"), -- &yyss1, yysize * sizeof (*yyssp), -- &yyvs1, yysize * sizeof (*yyvsp), -+ /* Give user a chance to reallocate the stack. Use copies of -+ these so that the &'s don't force the real ones into -+ memory. */ -+ YYSTYPE *yyvs1 = yyvs; -+ yytype_int16 *yyss1 = yyss; - -- &yystacksize); -+ /* Each stack pointer address is followed by the size of the -+ data in use in that stack, in bytes. This used to be a -+ conditional around just the two extra args, but that might -+ be undefined if yyoverflow is a macro. */ -+ yyoverflow (YY_("memory exhausted"), -+ &yyss1, yysize * sizeof (*yyssp), -+ &yyvs1, yysize * sizeof (*yyvsp), -+ &yystacksize); - -- yyss = yyss1; -- yyvs = yyvs1; -+ yyss = yyss1; -+ yyvs = yyvs1; - } - #else /* no yyoverflow */ - # ifndef YYSTACK_RELOCATE -@@ -2895,23 +2565,22 @@ - # else - /* Extend the stack our own way. */ - if (YYMAXDEPTH <= yystacksize) -- goto yyexhaustedlab; -+ goto yyexhaustedlab; - yystacksize *= 2; - if (YYMAXDEPTH < yystacksize) -- yystacksize = YYMAXDEPTH; -+ yystacksize = YYMAXDEPTH; - - { -- yytype_int16 *yyss1 = yyss; -- union yyalloc *yyptr = -- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -- if (! yyptr) -- goto yyexhaustedlab; -- YYSTACK_RELOCATE (yyss); -- YYSTACK_RELOCATE (yyvs); -- -+ yytype_int16 *yyss1 = yyss; -+ union yyalloc *yyptr = -+ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); -+ if (! yyptr) -+ goto yyexhaustedlab; -+ YYSTACK_RELOCATE (yyss_alloc, yyss); -+ YYSTACK_RELOCATE (yyvs_alloc, yyvs); - # undef YYSTACK_RELOCATE -- if (yyss1 != yyssa) -- YYSTACK_FREE (yyss1); -+ if (yyss1 != yyssa) -+ YYSTACK_FREE (yyss1); - } - # endif - #endif /* no yyoverflow */ -@@ -2919,16 +2588,18 @@ - yyssp = yyss + yysize - 1; - yyvsp = yyvs + yysize - 1; - -- - YYDPRINTF ((stderr, "Stack size increased to %lu\n", -- (unsigned long int) yystacksize)); -+ (unsigned long int) yystacksize)); - - if (yyss + yystacksize - 1 <= yyssp) -- YYABORT; -+ YYABORT; - } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); - -+ if (yystate == YYFINAL) -+ YYACCEPT; -+ - goto yybackup; - - /*-----------. -@@ -2937,20 +2608,20 @@ - yybackup: - - /* Do appropriate processing given the current state. Read a -- look-ahead token if we need one and don't already have one. */ -+ lookahead token if we need one and don't already have one. */ - -- /* First try to decide what to do without reference to look-ahead token. */ -+ /* First try to decide what to do without reference to lookahead token. */ - yyn = yypact[yystate]; -- if (yyn == YYPACT_NINF) -+ if (yypact_value_is_default (yyn)) - goto yydefault; - -- /* Not known => get a look-ahead token if don't already have one. */ -+ /* Not known => get a lookahead token if don't already have one. */ - -- /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ -+ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ - if (yychar == YYEMPTY) - { - YYDPRINTF ((stderr, "Reading a token: ")); -- yychar = YYLEX; -+ yychar = yylex (); - } - - if (yychar <= YYEOF) -@@ -2972,29 +2643,27 @@ - yyn = yytable[yyn]; - if (yyn <= 0) - { -- if (yyn == 0 || yyn == YYTABLE_NINF) -- goto yyerrlab; -+ if (yytable_value_is_error (yyn)) -+ goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - -- if (yyn == YYFINAL) -- YYACCEPT; -- - /* Count tokens shifted since error; after three, turn off error - status. */ - if (yyerrstatus) - yyerrstatus--; - -- /* Shift the look-ahead token. */ -+ /* Shift the lookahead token. */ - YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - -- /* Discard the shifted token unless it is eof. */ -- if (yychar != YYEOF) -- yychar = YYEMPTY; -+ /* Discard the shifted token. */ -+ yychar = YYEMPTY; - - yystate = yyn; -+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; -+ YY_IGNORE_MAYBE_UNINITIALIZED_END - - goto yynewstate; - -@@ -3017,7 +2686,7 @@ - yylen = yyr2[yyn]; - - /* If YYLEN is nonzero, implement the default value of the action: -- `$$ = $1'. -+ '$$ = $1'. - - Otherwise, the following line sets YYVAL to garbage. - This behavior is undocumented and Bison -@@ -3031,7 +2700,7 @@ - switch (yyn) - { - case 4: --#line 580 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* - * We don't do these in parserEOF() because the parser is reading -@@ -3049,10 +2718,11 @@ - previousFile = NULL; - } - } -+#line 2722 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 55: --#line 650 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3061,151 +2731,167 @@ - if (scope == NULL) - yyerror("%TypeHeaderCode can only be used in a namespace, class or mapped type"); - -- appendCodeBlock(&scope->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->iff->hdrcode, (yyvsp[0].codeb)); - } - } -+#line 2738 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 56: --#line 663 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 663 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- currentModule->defdocstringfmt = convertFormat((yyvsp[(2) - (2)].defdocstringfmt).name); -+ currentModule->defdocstringfmt = convertFormat((yyvsp[0].defdocstringfmt).name); - } -+#line 2747 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 57: --#line 669 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.defdocstringfmt).name = (yyvsp[(1) - (1)].text); -+ (yyval.defdocstringfmt).name = (yyvsp[0].text); - } -+#line 2757 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 58: --#line 674 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defdocstringfmt) = (yyvsp[(2) - (3)].defdocstringfmt); -+ (yyval.defdocstringfmt) = (yyvsp[-1].defdocstringfmt); - } -+#line 2765 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 60: --#line 680 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defdocstringfmt) = (yyvsp[(1) - (3)].defdocstringfmt); -+ (yyval.defdocstringfmt) = (yyvsp[-2].defdocstringfmt); - -- switch ((yyvsp[(3) - (3)].defdocstringfmt).token) -+ switch ((yyvsp[0].defdocstringfmt).token) - { -- case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].defdocstringfmt).name; break; -+ case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[0].defdocstringfmt).name; break; - } - } -+#line 2778 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 61: --#line 690 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 690 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.defdocstringfmt).token = TK_NAME; - -- (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].text); -+ (yyval.defdocstringfmt).name = (yyvsp[0].text); - } -+#line 2788 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 62: --#line 697 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 697 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- currentModule->defdocstringsig = convertSignature((yyvsp[(2) - (2)].defdocstringsig).name); -+ currentModule->defdocstringsig = convertSignature((yyvsp[0].defdocstringsig).name); - } -+#line 2797 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 63: --#line 703 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 703 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.defdocstringsig).name = (yyvsp[(1) - (1)].text); -+ (yyval.defdocstringsig).name = (yyvsp[0].text); - } -+#line 2807 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 64: --#line 708 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 708 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defdocstringsig) = (yyvsp[(2) - (3)].defdocstringsig); -+ (yyval.defdocstringsig) = (yyvsp[-1].defdocstringsig); - } -+#line 2815 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 66: --#line 714 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 714 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defdocstringsig) = (yyvsp[(1) - (3)].defdocstringsig); -+ (yyval.defdocstringsig) = (yyvsp[-2].defdocstringsig); - -- switch ((yyvsp[(3) - (3)].defdocstringsig).token) -+ switch ((yyvsp[0].defdocstringsig).token) - { -- case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].defdocstringsig).name; break; -+ case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[0].defdocstringsig).name; break; - } - } -+#line 2828 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 67: --#line 724 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.defdocstringsig).token = TK_NAME; - -- (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].text); -+ (yyval.defdocstringsig).name = (yyvsp[0].text); - } -+#line 2838 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 68: --#line 731 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 731 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -- if ((currentModule->encoding = convertEncoding((yyvsp[(2) - (2)].defencoding).name)) == no_type) -+ if ((currentModule->encoding = convertEncoding((yyvsp[0].defencoding).name)) == no_type) - yyerror("The %DefaultEncoding name must be one of \"ASCII\", \"Latin-1\", \"UTF-8\" or \"None\""); - } - } -+#line 2850 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 69: --#line 740 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 740 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.defencoding).name = (yyvsp[(1) - (1)].text); -+ (yyval.defencoding).name = (yyvsp[0].text); - } -+#line 2860 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 70: --#line 745 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 745 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defencoding) = (yyvsp[(2) - (3)].defencoding); -+ (yyval.defencoding) = (yyvsp[-1].defencoding); - } -+#line 2868 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 72: --#line 751 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defencoding) = (yyvsp[(1) - (3)].defencoding); -+ (yyval.defencoding) = (yyvsp[-2].defencoding); - -- switch ((yyvsp[(3) - (3)].defencoding).token) -+ switch ((yyvsp[0].defencoding).token) - { -- case TK_NAME: (yyval.defencoding).name = (yyvsp[(3) - (3)].defencoding).name; break; -+ case TK_NAME: (yyval.defencoding).name = (yyvsp[0].defencoding).name; break; - } - } -+#line 2881 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 73: --#line 761 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 761 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.defencoding).token = TK_NAME; - -- (yyval.defencoding).name = (yyvsp[(3) - (3)].text); -+ (yyval.defencoding).name = (yyvsp[0].text); - } -+#line 2891 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 74: --#line 768 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 768 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* - * Note that %Plugin is internal in SIP v4. The current thinking -@@ -3213,51 +2899,56 @@ - */ - - if (notSkipping()) -- appendString(¤tSpec->plugins, (yyvsp[(2) - (2)].plugin).name); -+ appendString(¤tSpec->plugins, (yyvsp[0].plugin).name); - } -+#line 2905 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 75: --#line 779 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 779 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.plugin).name = (yyvsp[(1) - (1)].text); -+ (yyval.plugin).name = (yyvsp[0].text); - } -+#line 2915 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 76: --#line 784 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.plugin) = (yyvsp[(2) - (3)].plugin); -+ (yyval.plugin) = (yyvsp[-1].plugin); - } -+#line 2923 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 78: --#line 790 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.plugin) = (yyvsp[(1) - (3)].plugin); -+ (yyval.plugin) = (yyvsp[-2].plugin); - -- switch ((yyvsp[(3) - (3)].plugin).token) -+ switch ((yyvsp[0].plugin).token) - { -- case TK_NAME: (yyval.plugin).name = (yyvsp[(3) - (3)].plugin).name; break; -+ case TK_NAME: (yyval.plugin).name = (yyvsp[0].plugin).name; break; - } - } -+#line 2936 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 79: --#line 800 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.plugin).token = TK_NAME; - -- (yyval.plugin).name = (yyvsp[(3) - (3)].text); -+ (yyval.plugin).name = (yyvsp[0].text); - } -+#line 2946 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 80: --#line 807 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (3)].veh).name == NULL) -+ if ((yyvsp[-1].veh).name == NULL) - yyerror("%VirtualErrorHandler must have a 'name' argument"); - - if (notSkipping()) -@@ -3266,7 +2957,7 @@ - - /* Check there isn't already a handler with the same name. */ - for (tailp = ¤tSpec->errorhandlers; (veh = *tailp) != NULL; tailp = &veh->next) -- if (strcmp(veh->name, (yyvsp[(2) - (3)].veh).name) == 0) -+ if (strcmp(veh->name, (yyvsp[-1].veh).name) == 0) - break; - - if (veh != NULL) -@@ -3274,8 +2965,8 @@ - - veh = sipMalloc(sizeof (virtErrorHandler)); - -- veh->name = (yyvsp[(2) - (3)].veh).name; -- appendCodeBlock(&veh->code, (yyvsp[(3) - (3)].codeb)); -+ veh->name = (yyvsp[-1].veh).name; -+ appendCodeBlock(&veh->code, (yyvsp[0].codeb)); - veh->mod = currentModule; - veh->index = -1; - veh->next = NULL; -@@ -3283,62 +2974,67 @@ - *tailp = veh; - } - } -+#line 2978 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 81: --#line 836 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.veh).name = (yyvsp[(1) - (1)].text); -+ (yyval.veh).name = (yyvsp[0].text); - } -+#line 2988 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 82: --#line 841 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 841 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.veh) = (yyvsp[(2) - (3)].veh); -+ (yyval.veh) = (yyvsp[-1].veh); - } -+#line 2996 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 84: --#line 847 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 847 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.veh) = (yyvsp[(1) - (3)].veh); -+ (yyval.veh) = (yyvsp[-2].veh); - -- switch ((yyvsp[(3) - (3)].veh).token) -+ switch ((yyvsp[0].veh).token) - { -- case TK_NAME: (yyval.veh).name = (yyvsp[(3) - (3)].veh).name; break; -+ case TK_NAME: (yyval.veh).name = (yyvsp[0].veh).name; break; - } - } -+#line 3009 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 85: --#line 857 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 857 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.veh).token = TK_NAME; - -- (yyval.veh).name = (yyvsp[(3) - (3)].text); -+ (yyval.veh).name = (yyvsp[0].text); - } -+#line 3019 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 86: --#line 864 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 864 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - apiVersionRangeDef *avd; - -- if (findAPI(currentSpec, (yyvsp[(2) - (2)].api).name) != NULL) -+ if (findAPI(currentSpec, (yyvsp[0].api).name) != NULL) - yyerror("The API name in the %API directive has already been defined"); - -- if ((yyvsp[(2) - (2)].api).version < 1) -+ if ((yyvsp[0].api).version < 1) - yyerror("The version number in the %API directive must be greater than or equal to 1"); - - avd = sipMalloc(sizeof (apiVersionRangeDef)); - -- avd->api_name = cacheName(currentSpec, (yyvsp[(2) - (2)].api).name); -- avd->from = (yyvsp[(2) - (2)].api).version; -+ avd->api_name = cacheName(currentSpec, (yyvsp[0].api).name); -+ avd->from = (yyvsp[0].api).version; - avd->to = -1; - - avd->next = currentModule->api_versions; -@@ -3348,62 +3044,68 @@ - setIsUsedName(avd->api_name); - } - } -+#line 3048 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 87: --#line 890 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - - deprecated("%API name and version number should be specified using the 'name' and 'version' arguments"); - -- (yyval.api).name = (yyvsp[(1) - (2)].text); -- (yyval.api).version = (yyvsp[(2) - (2)].number); -+ (yyval.api).name = (yyvsp[-1].text); -+ (yyval.api).version = (yyvsp[0].number); - } -+#line 3061 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 88: --#line 898 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.api) = (yyvsp[(2) - (3)].api); -+ (yyval.api) = (yyvsp[-1].api); - } -+#line 3069 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 90: --#line 904 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 904 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.api) = (yyvsp[(1) - (3)].api); -+ (yyval.api) = (yyvsp[-2].api); - -- switch ((yyvsp[(3) - (3)].api).token) -+ switch ((yyvsp[0].api).token) - { -- case TK_NAME: (yyval.api).name = (yyvsp[(3) - (3)].api).name; break; -- case TK_VERSION: (yyval.api).version = (yyvsp[(3) - (3)].api).version; break; -+ case TK_NAME: (yyval.api).name = (yyvsp[0].api).name; break; -+ case TK_VERSION: (yyval.api).version = (yyvsp[0].api).version; break; - } - } -+#line 3083 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 91: --#line 915 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 915 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.api).token = TK_NAME; - -- (yyval.api).name = (yyvsp[(3) - (3)].text); -+ (yyval.api).name = (yyvsp[0].text); - (yyval.api).version = 0; - } -+#line 3094 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 92: --#line 921 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 921 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.api).token = TK_VERSION; - - (yyval.api).name = NULL; -- (yyval.api).version = (yyvsp[(3) - (3)].number); -+ (yyval.api).version = (yyvsp[0].number); - } -+#line 3105 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 93: --#line 929 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 929 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3416,20 +3118,20 @@ - exceptionDef *xd; - const char *pyname; - -- checkAnnos(&(yyvsp[(4) - (5)].optflags), annos); -+ checkAnnos(&(yyvsp[-1].optflags), annos); - - if (currentSpec->genc) - yyerror("%Exception not allowed in a C module"); - -- if ((yyvsp[(5) - (5)].exception).raise_code == NULL) -+ if ((yyvsp[0].exception).raise_code == NULL) - yyerror("%Exception must have a %RaiseCode sub-directive"); - -- pyname = getPythonName(currentModule, &(yyvsp[(4) - (5)].optflags), scopedNameTail((yyvsp[(2) - (5)].scpvalp))); -+ pyname = getPythonName(currentModule, &(yyvsp[-1].optflags), scopedNameTail((yyvsp[-3].scpvalp))); - - checkAttributes(currentSpec, currentModule, NULL, NULL, - pyname, FALSE); - -- xd = findException(currentSpec, (yyvsp[(2) - (5)].scpvalp), TRUE); -+ xd = findException(currentSpec, (yyvsp[-3].scpvalp), TRUE); - - if (xd->cd != NULL) - yyerror("%Exception name has already been seen as a class name - it must be defined before being used"); -@@ -3439,28 +3141,30 @@ - - /* Complete the definition. */ - xd->iff->module = currentModule; -- appendCodeBlock(&xd->iff->hdrcode, (yyvsp[(5) - (5)].exception).type_header_code); -+ appendCodeBlock(&xd->iff->hdrcode, (yyvsp[0].exception).type_header_code); - xd->pyname = pyname; -- xd->bibase = (yyvsp[(3) - (5)].exceptionbase).bibase; -- xd->base = (yyvsp[(3) - (5)].exceptionbase).base; -- appendCodeBlock(&xd->raisecode, (yyvsp[(5) - (5)].exception).raise_code); -+ xd->bibase = (yyvsp[-2].exceptionbase).bibase; -+ xd->base = (yyvsp[-2].exceptionbase).base; -+ appendCodeBlock(&xd->raisecode, (yyvsp[0].exception).raise_code); - -- if (getOptFlag(&(yyvsp[(4) - (5)].optflags), "Default", bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[-1].optflags), "Default", bool_flag) != NULL) - currentModule->defexception = xd; - } - } -+#line 3155 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 94: --#line 976 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 976 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.exceptionbase).bibase = NULL; - (yyval.exceptionbase).base = NULL; - } -+#line 3164 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 95: --#line 980 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 980 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - exceptionDef *xd; - -@@ -3469,13 +3173,13 @@ - - /* See if it is a defined exception. */ - for (xd = currentSpec->exceptions; xd != NULL; xd = xd->next) -- if (compareScopedNames(xd->iff->fqcname, (yyvsp[(2) - (3)].scpvalp)) == 0) -+ if (compareScopedNames(xd->iff->fqcname, (yyvsp[-1].scpvalp)) == 0) - { - (yyval.exceptionbase).base = xd; - break; - } - -- if (xd == NULL && (yyvsp[(2) - (3)].scpvalp)->next == NULL && strncmp((yyvsp[(2) - (3)].scpvalp)->name, "SIP_", 4) == 0) -+ if (xd == NULL && (yyvsp[-1].scpvalp)->next == NULL && strncmp((yyvsp[-1].scpvalp)->name, "SIP_", 4) == 0) - { - /* See if it is a builtin exception. */ - -@@ -3556,7 +3260,7 @@ - char **cp; - - for (cp = builtins; *cp != NULL; ++cp) -- if (strcmp((yyvsp[(2) - (3)].scpvalp)->name + 4, *cp) == 0) -+ if (strcmp((yyvsp[-1].scpvalp)->name + 4, *cp) == 0) - { - (yyval.exceptionbase).bibase = *cp; - break; -@@ -3566,49 +3270,54 @@ - if ((yyval.exceptionbase).bibase == NULL && (yyval.exceptionbase).base == NULL) - yyerror("Unknown exception base type"); - } -+#line 3274 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 96: --#line 1087 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1087 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.exception) = (yyvsp[(2) - (4)].exception); -+ (yyval.exception) = (yyvsp[-2].exception); - } -+#line 3282 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 98: --#line 1093 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1093 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.exception) = (yyvsp[(1) - (2)].exception); -+ (yyval.exception) = (yyvsp[-1].exception); - -- switch ((yyvsp[(2) - (2)].exception).token) -+ switch ((yyvsp[0].exception).token) - { -- case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[(2) - (2)].exception).raise_code; break; -- case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[(2) - (2)].exception).type_header_code; break; -+ case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[0].exception).raise_code; break; -+ case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[0].exception).type_header_code; break; - } - } -+#line 3296 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 99: --#line 1104 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.exception).token = TK_IF; - } -+#line 3304 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 100: --#line 1107 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.exception).token = TK_END; - } -+#line 3312 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 101: --#line 1110 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.exception).token = TK_RAISECODE; -- (yyval.exception).raise_code = (yyvsp[(1) - (1)].codeb); -+ (yyval.exception).raise_code = (yyvsp[0].codeb); - } - else - { -@@ -3618,15 +3327,16 @@ - - (yyval.exception).type_header_code = NULL; - } -+#line 3331 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 102: --#line 1124 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1124 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.exception).token = TK_TYPEHEADERCODE; -- (yyval.exception).type_header_code = (yyvsp[(1) - (1)].codeb); -+ (yyval.exception).type_header_code = (yyvsp[0].codeb); - } - else - { -@@ -3636,17 +3346,19 @@ - - (yyval.exception).raise_code = NULL; - } -+#line 3350 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 103: --#line 1140 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1140 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 3358 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 104: --#line 1145 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1145 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3663,15 +3375,16 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - -- currentMappedType = newMappedType(currentSpec, &(yyvsp[(2) - (3)].memArg), &(yyvsp[(3) - (3)].optflags)); -+ currentMappedType = newMappedType(currentSpec, &(yyvsp[-1].memArg), &(yyvsp[0].optflags)); - } - } -+#line 3384 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 106: --#line 1168 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1168 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3690,7 +3403,7 @@ - mappedTypeTmplDef *mtt; - ifaceFileDef *iff; - -- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - - if (currentSpec->genc) - yyerror("%MappedType templates not allowed in a C module"); -@@ -3699,32 +3412,32 @@ - * Check the template arguments are basic types or simple - * names. - */ -- for (a = 0; a < (yyvsp[(1) - (4)].signature).nrArgs; ++a) -+ for (a = 0; a < (yyvsp[-3].signature).nrArgs; ++a) - { -- argDef *ad = &(yyvsp[(1) - (4)].signature).args[a]; -+ argDef *ad = &(yyvsp[-3].signature).args[a]; - - if (ad->atype == defined_type && ad->u.snd->next != NULL) - yyerror("%MappedType template arguments must be simple names"); - } - -- if ((yyvsp[(3) - (4)].memArg).atype != template_type) -+ if ((yyvsp[-1].memArg).atype != template_type) - yyerror("%MappedType template must map a template type"); - -- (yyvsp[(3) - (4)].memArg).u.td->fqname = fullyQualifiedName((yyvsp[(3) - (4)].memArg).u.td->fqname); -+ (yyvsp[-1].memArg).u.td->fqname = fullyQualifiedName((yyvsp[-1].memArg).u.td->fqname); - - /* Check a template hasn't already been provided. */ - for (mtt = currentSpec->mappedtypetemplates; mtt != NULL; mtt = mtt->next) -- if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[(3) - (4)].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[(3) - (4)].memArg).u.td->types, TRUE)) -+ if (compareScopedNames(mtt->mt->type.u.td->fqname, (yyvsp[-1].memArg).u.td->fqname ) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &(yyvsp[-1].memArg).u.td->types, TRUE)) - yyerror("%MappedType template for this type has already been defined"); - -- (yyvsp[(3) - (4)].memArg).nrderefs = 0; -- (yyvsp[(3) - (4)].memArg).argflags = 0; -+ (yyvsp[-1].memArg).nrderefs = 0; -+ (yyvsp[-1].memArg).argflags = 0; - - mtt = sipMalloc(sizeof (mappedTypeTmplDef)); - -- mtt->sig = (yyvsp[(1) - (4)].signature); -- mtt->mt = allocMappedType(currentSpec, &(yyvsp[(3) - (4)].memArg)); -- mappedTypeAnnos(mtt->mt, &(yyvsp[(4) - (4)].optflags)); -+ mtt->sig = (yyvsp[-3].signature); -+ mtt->mt = allocMappedType(currentSpec, &(yyvsp[-1].memArg)); -+ mappedTypeAnnos(mtt->mt, &(yyvsp[0].optflags)); - mtt->next = currentSpec->mappedtypetemplates; - - currentSpec->mappedtypetemplates = mtt; -@@ -3737,10 +3450,11 @@ - mtt->mt->iff = iff; - } - } -+#line 3454 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 108: --#line 1235 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1235 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3753,82 +3467,89 @@ - currentMappedType = NULL; - } - } -+#line 3471 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 113: --#line 1255 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1255 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[0].codeb)); - } -+#line 3480 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 114: --#line 1259 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1259 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tMappedType->typecode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(¤tMappedType->typecode, (yyvsp[0].codeb)); - } -+#line 3489 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 115: --#line 1263 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1263 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - if (currentMappedType->convfromcode != NULL) - yyerror("%MappedType has more than one %ConvertFromTypeCode directive"); - -- appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[0].codeb)); - } - } -+#line 3503 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 116: --#line 1272 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1272 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - if (currentMappedType->convtocode != NULL) - yyerror("%MappedType has more than one %ConvertToTypeCode directive"); - -- appendCodeBlock(¤tMappedType->convtocode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tMappedType->convtocode, (yyvsp[0].codeb)); - } - } -+#line 3517 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 117: --#line 1281 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1281 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - if (currentMappedType->instancecode != NULL) - yyerror("%MappedType has more than one %InstanceCode directive"); - -- appendCodeBlock(¤tMappedType->instancecode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(¤tMappedType->instancecode, (yyvsp[0].codeb)); - } - } -+#line 3531 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 120: --#line 1294 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1294 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -- applyTypeFlags(currentModule, &(yyvsp[(2) - (14)].memArg), &(yyvsp[(9) - (14)].optflags)); -+ applyTypeFlags(currentModule, &(yyvsp[-12].memArg), &(yyvsp[-5].optflags)); - -- (yyvsp[(5) - (14)].signature).result = (yyvsp[(2) - (14)].memArg); -+ (yyvsp[-9].signature).result = (yyvsp[-12].memArg); - - newFunction(currentSpec, currentModule, NULL, NULL, -- currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[(3) - (14)].text), -- &(yyvsp[(5) - (14)].signature), (yyvsp[(7) - (14)].number), FALSE, &(yyvsp[(9) - (14)].optflags), (yyvsp[(14) - (14)].codeb), NULL, NULL, (yyvsp[(8) - (14)].throwlist), (yyvsp[(10) - (14)].optsignature), (yyvsp[(12) - (14)].docstr), -- FALSE, (yyvsp[(13) - (14)].codeb)); -+ currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[-11].text), -+ &(yyvsp[-9].signature), (yyvsp[-7].number), FALSE, &(yyvsp[-5].optflags), (yyvsp[0].codeb), NULL, NULL, (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), (yyvsp[-2].docstr), -+ FALSE, (yyvsp[-1].codeb)); - } - } -+#line 3549 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 121: --#line 1309 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1309 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("namespace definition not allowed in a C module"); -@@ -3844,17 +3565,18 @@ - scope = NULL; - - ns = newClass(currentSpec, namespace_iface, NULL, -- text2scopedName(scope, (yyvsp[(2) - (2)].text)), NULL, NULL, NULL, NULL); -+ text2scopedName(scope, (yyvsp[0].text)), NULL, NULL, NULL, NULL); - - pushScope(ns); - - sectionFlags = 0; - } - } -+#line 3576 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 122: --#line 1330 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3869,10 +3591,11 @@ - popScope(); - } - } -+#line 3595 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 127: --#line 1354 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1354 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3883,10 +3606,11 @@ - yyerror("%Platforms has already been defined for this module"); - } - } -+#line 3610 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 128: --#line 1364 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1364 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3904,70 +3628,78 @@ - yyerror("No more than one of these %Platforms must be specified with the -t flag"); - } - } -+#line 3632 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 131: --#line 1387 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1387 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(1) - (1)].text), -+ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].text), - platform_qualifier); - } -+#line 3641 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 132: --#line 1393 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1393 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(2) - (2)].feature).name, -+ newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].feature).name, - feature_qualifier); - } -+#line 3650 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 133: --#line 1399 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1399 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.feature).name = (yyvsp[(1) - (1)].text); -+ (yyval.feature).name = (yyvsp[0].text); - } -+#line 3660 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 134: --#line 1404 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.feature) = (yyvsp[(2) - (3)].feature); -+ (yyval.feature) = (yyvsp[-1].feature); - } -+#line 3668 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 136: --#line 1410 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1410 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.feature) = (yyvsp[(1) - (3)].feature); -+ (yyval.feature) = (yyvsp[-2].feature); - -- switch ((yyvsp[(3) - (3)].feature).token) -+ switch ((yyvsp[0].feature).token) - { -- case TK_NAME: (yyval.feature).name = (yyvsp[(3) - (3)].feature).name; break; -+ case TK_NAME: (yyval.feature).name = (yyvsp[0].feature).name; break; - } - } -+#line 3681 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 137: --#line 1420 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1420 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.feature).token = TK_NAME; - -- (yyval.feature).name = (yyvsp[(3) - (3)].text); -+ (yyval.feature).name = (yyvsp[0].text); - } -+#line 3691 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 138: --#line 1427 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - currentTimelineOrder = 0; - } -+#line 3699 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 139: --#line 1430 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1430 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -3989,25 +3721,28 @@ - currentModule->nrtimelines++; - } - } -+#line 3725 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 142: --#line 1457 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1457 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - newQualifier(currentModule, currentModule->nrtimelines, -- currentTimelineOrder++, TRUE, (yyvsp[(1) - (1)].text), time_qualifier); -+ currentTimelineOrder++, TRUE, (yyvsp[0].text), time_qualifier); - } -+#line 3734 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 143: --#line 1463 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1463 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - currentPlatforms = NULL; - } -+#line 3742 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 144: --#line 1465 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1465 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (stackPtr >= MAX_NESTED_IF) - yyerror("Internal error: increase the value of MAX_NESTED_IF"); -@@ -4015,102 +3750,110 @@ - /* Nested %Ifs are implicit logical ands. */ - - if (stackPtr > 0) -- (yyvsp[(4) - (5)].boolean) = ((yyvsp[(4) - (5)].boolean) && skipStack[stackPtr - 1]); -+ (yyvsp[-1].boolean) = ((yyvsp[-1].boolean) && skipStack[stackPtr - 1]); - -- skipStack[stackPtr] = (yyvsp[(4) - (5)].boolean); -+ skipStack[stackPtr] = (yyvsp[-1].boolean); - - platformStack[stackPtr] = currentPlatforms; - - ++stackPtr; - } -+#line 3762 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 145: --#line 1482 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1482 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.boolean) = platOrFeature((yyvsp[(1) - (1)].text), FALSE); -+ (yyval.boolean) = platOrFeature((yyvsp[0].text), FALSE); - } -+#line 3770 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 146: --#line 1485 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1485 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.boolean) = platOrFeature((yyvsp[(2) - (2)].text), TRUE); -+ (yyval.boolean) = platOrFeature((yyvsp[0].text), TRUE); - } -+#line 3778 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 147: --#line 1488 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1488 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.boolean) = (platOrFeature((yyvsp[(3) - (3)].text), FALSE) || (yyvsp[(1) - (3)].boolean)); -+ (yyval.boolean) = (platOrFeature((yyvsp[0].text), FALSE) || (yyvsp[-2].boolean)); - } -+#line 3786 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 148: --#line 1491 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1491 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.boolean) = (platOrFeature((yyvsp[(4) - (4)].text), TRUE) || (yyvsp[(1) - (4)].boolean)); -+ (yyval.boolean) = (platOrFeature((yyvsp[0].text), TRUE) || (yyvsp[-3].boolean)); - } -+#line 3794 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 150: --#line 1497 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1497 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.boolean) = timePeriod((yyvsp[(1) - (3)].text), (yyvsp[(3) - (3)].text)); -+ (yyval.boolean) = timePeriod((yyvsp[-2].text), (yyvsp[0].text)); - } -+#line 3802 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 151: --#line 1502 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1502 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (stackPtr-- <= 0) - yyerror("Too many %End directives"); - - currentPlatforms = (stackPtr == 0 ? NULL : platformStack[stackPtr - 1]); - } -+#line 3813 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 152: --#line 1510 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1510 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - optFlag *of; - -- if ((yyvsp[(3) - (3)].optflags).nrFlags != 0) -+ if ((yyvsp[0].optflags).nrFlags != 0) - deprecated("%License annotations are deprecated, use arguments instead"); - -- if ((yyvsp[(2) - (3)].license).type == NULL) -- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Type", string_flag)) != NULL) -- (yyvsp[(2) - (3)].license).type = of->fvalue.sval; -+ if ((yyvsp[-1].license).type == NULL) -+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Type", string_flag)) != NULL) -+ (yyvsp[-1].license).type = of->fvalue.sval; - -- if ((yyvsp[(2) - (3)].license).licensee == NULL) -- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Licensee", string_flag)) != NULL) -- (yyvsp[(2) - (3)].license).licensee = of->fvalue.sval; -+ if ((yyvsp[-1].license).licensee == NULL) -+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Licensee", string_flag)) != NULL) -+ (yyvsp[-1].license).licensee = of->fvalue.sval; - -- if ((yyvsp[(2) - (3)].license).signature == NULL) -- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Signature", string_flag)) != NULL) -- (yyvsp[(2) - (3)].license).signature = of->fvalue.sval; -+ if ((yyvsp[-1].license).signature == NULL) -+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Signature", string_flag)) != NULL) -+ (yyvsp[-1].license).signature = of->fvalue.sval; - -- if ((yyvsp[(2) - (3)].license).timestamp == NULL) -- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Timestamp", string_flag)) != NULL) -- (yyvsp[(2) - (3)].license).timestamp = of->fvalue.sval; -+ if ((yyvsp[-1].license).timestamp == NULL) -+ if ((of = getOptFlag(&(yyvsp[0].optflags), "Timestamp", string_flag)) != NULL) -+ (yyvsp[-1].license).timestamp = of->fvalue.sval; - -- if ((yyvsp[(2) - (3)].license).type == NULL) -+ if ((yyvsp[-1].license).type == NULL) - yyerror("%License must have a 'type' argument"); - - if (notSkipping()) - { - currentModule->license = sipMalloc(sizeof (licenseDef)); - -- currentModule->license->type = (yyvsp[(2) - (3)].license).type; -- currentModule->license->licensee = (yyvsp[(2) - (3)].license).licensee; -- currentModule->license->sig = (yyvsp[(2) - (3)].license).signature; -- currentModule->license->timestamp = (yyvsp[(2) - (3)].license).timestamp; -+ currentModule->license->type = (yyvsp[-1].license).type; -+ currentModule->license->licensee = (yyvsp[-1].license).licensee; -+ currentModule->license->sig = (yyvsp[-1].license).signature; -+ currentModule->license->timestamp = (yyvsp[-1].license).timestamp; - } - } -+#line 3853 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 153: --#line 1547 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -@@ -4119,241 +3862,264 @@ - (yyval.license).signature = NULL; - (yyval.license).timestamp = NULL; - } -+#line 3866 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 154: --#line 1555 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.license).type = (yyvsp[(1) - (1)].text); -+ (yyval.license).type = (yyvsp[0].text); - (yyval.license).licensee = NULL; - (yyval.license).signature = NULL; - (yyval.license).timestamp = NULL; - } -+#line 3877 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 155: --#line 1561 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.license) = (yyvsp[(2) - (3)].license); -+ (yyval.license) = (yyvsp[-1].license); - } -+#line 3885 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 157: --#line 1567 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1567 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.license) = (yyvsp[(1) - (3)].license); -+ (yyval.license) = (yyvsp[-2].license); - -- switch ((yyvsp[(3) - (3)].license).token) -+ switch ((yyvsp[0].license).token) - { -- case TK_TYPE: (yyval.license).type = (yyvsp[(3) - (3)].license).type; break; -- case TK_LICENSEE: (yyval.license).licensee = (yyvsp[(3) - (3)].license).licensee; break; -- case TK_SIGNATURE: (yyval.license).signature = (yyvsp[(3) - (3)].license).signature; break; -- case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[(3) - (3)].license).timestamp; break; -+ case TK_TYPE: (yyval.license).type = (yyvsp[0].license).type; break; -+ case TK_LICENSEE: (yyval.license).licensee = (yyvsp[0].license).licensee; break; -+ case TK_SIGNATURE: (yyval.license).signature = (yyvsp[0].license).signature; break; -+ case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[0].license).timestamp; break; - } - } -+#line 3901 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 158: --#line 1580 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.license).token = TK_NAME; - -- (yyval.license).type = (yyvsp[(3) - (3)].text); -+ (yyval.license).type = (yyvsp[0].text); - (yyval.license).licensee = NULL; - (yyval.license).signature = NULL; - (yyval.license).timestamp = NULL; - } -+#line 3914 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 159: --#line 1588 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1588 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.license).token = TK_LICENSEE; - - (yyval.license).type = NULL; -- (yyval.license).licensee = (yyvsp[(3) - (3)].text); -+ (yyval.license).licensee = (yyvsp[0].text); - (yyval.license).signature = NULL; - (yyval.license).timestamp = NULL; - } -+#line 3927 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 160: --#line 1596 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.license).token = TK_SIGNATURE; - - (yyval.license).type = NULL; - (yyval.license).licensee = NULL; -- (yyval.license).signature = (yyvsp[(3) - (3)].text); -+ (yyval.license).signature = (yyvsp[0].text); - (yyval.license).timestamp = NULL; - } -+#line 3940 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 161: --#line 1604 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1604 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.license).token = TK_TIMESTAMP; - - (yyval.license).type = NULL; - (yyval.license).licensee = NULL; - (yyval.license).signature = NULL; -- (yyval.license).timestamp = (yyvsp[(3) - (3)].text); -+ (yyval.license).timestamp = (yyvsp[0].text); - } -+#line 3953 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 162: --#line 1614 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - if (currentModule->defmetatype != NULL) - yyerror("%DefaultMetatype has already been defined for this module"); - -- currentModule->defmetatype = cacheName(currentSpec, (yyvsp[(2) - (2)].defmetatype).name); -+ currentModule->defmetatype = cacheName(currentSpec, (yyvsp[0].defmetatype).name); - } - } -+#line 3967 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 163: --#line 1625 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1625 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.defmetatype).name = (yyvsp[(1) - (1)].text); -+ (yyval.defmetatype).name = (yyvsp[0].text); - } -+#line 3977 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 164: --#line 1630 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defmetatype) = (yyvsp[(2) - (3)].defmetatype); -+ (yyval.defmetatype) = (yyvsp[-1].defmetatype); - } -+#line 3985 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 166: --#line 1636 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1636 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defmetatype) = (yyvsp[(1) - (3)].defmetatype); -+ (yyval.defmetatype) = (yyvsp[-2].defmetatype); - -- switch ((yyvsp[(3) - (3)].defmetatype).token) -+ switch ((yyvsp[0].defmetatype).token) - { -- case TK_NAME: (yyval.defmetatype).name = (yyvsp[(3) - (3)].defmetatype).name; break; -+ case TK_NAME: (yyval.defmetatype).name = (yyvsp[0].defmetatype).name; break; - } - } -+#line 3998 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 167: --#line 1646 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.defmetatype).token = TK_NAME; - -- (yyval.defmetatype).name = (yyvsp[(3) - (3)].text); -+ (yyval.defmetatype).name = (yyvsp[0].text); - } -+#line 4008 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 168: --#line 1653 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1653 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - if (currentModule->defsupertype != NULL) - yyerror("%DefaultSupertype has already been defined for this module"); - -- currentModule->defsupertype = cacheName(currentSpec, (yyvsp[(2) - (2)].defsupertype).name); -+ currentModule->defsupertype = cacheName(currentSpec, (yyvsp[0].defsupertype).name); - } - } -+#line 4022 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 169: --#line 1664 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1664 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.defsupertype).name = (yyvsp[(1) - (1)].text); -+ (yyval.defsupertype).name = (yyvsp[0].text); - } -+#line 4032 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 170: --#line 1669 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defsupertype) = (yyvsp[(2) - (3)].defsupertype); -+ (yyval.defsupertype) = (yyvsp[-1].defsupertype); - } -+#line 4040 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 172: --#line 1675 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1675 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.defsupertype) = (yyvsp[(1) - (3)].defsupertype); -+ (yyval.defsupertype) = (yyvsp[-2].defsupertype); - -- switch ((yyvsp[(3) - (3)].defsupertype).token) -+ switch ((yyvsp[0].defsupertype).token) - { -- case TK_NAME: (yyval.defsupertype).name = (yyvsp[(3) - (3)].defsupertype).name; break; -+ case TK_NAME: (yyval.defsupertype).name = (yyvsp[0].defsupertype).name; break; - } - } -+#line 4053 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 173: --#line 1685 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1685 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.defsupertype).token = TK_NAME; - -- (yyval.defsupertype).name = (yyvsp[(3) - (3)].text); -+ (yyval.defsupertype).name = (yyvsp[0].text); - } -+#line 4063 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 174: --#line 1692 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1692 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - classDef *ns; - - ns = newClass(currentSpec, namespace_iface, NULL, -- fullyQualifiedName((yyvsp[(2) - (2)].hiddenns).name), NULL, NULL, NULL, NULL); -+ fullyQualifiedName((yyvsp[0].hiddenns).name), NULL, NULL, NULL, NULL); - setHiddenNamespace(ns); - } - } -+#line 4078 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 175: --#line 1704 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.hiddenns).name = (yyvsp[(1) - (1)].scpvalp); -+ (yyval.hiddenns).name = (yyvsp[0].scpvalp); - } -+#line 4088 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 176: --#line 1709 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1709 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.hiddenns) = (yyvsp[(2) - (3)].hiddenns); -+ (yyval.hiddenns) = (yyvsp[-1].hiddenns); - } -+#line 4096 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 178: --#line 1715 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1715 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.hiddenns) = (yyvsp[(1) - (3)].hiddenns); -+ (yyval.hiddenns) = (yyvsp[-2].hiddenns); - -- switch ((yyvsp[(3) - (3)].hiddenns).token) -+ switch ((yyvsp[0].hiddenns).token) - { -- case TK_NAME: (yyval.hiddenns).name = (yyvsp[(3) - (3)].hiddenns).name; break; -+ case TK_NAME: (yyval.hiddenns).name = (yyvsp[0].hiddenns).name; break; - } - } -+#line 4109 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 179: --#line 1725 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1725 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.hiddenns).token = TK_NAME; - -- (yyval.hiddenns).name = (yyvsp[(3) - (3)].scpvalp); -+ (yyval.hiddenns).name = (yyvsp[0].scpvalp); - } -+#line 4119 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 180: --#line 1732 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1732 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("%ConsolidatedModule is deprecated and will not be supported by SIP v5"); - -@@ -4366,99 +4132,109 @@ - if (currentModule->fullname != NULL) - yyerror("%ConsolidatedModule must appear before any %Module or %CModule directive"); - -- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].consmodule).name); -- currentModule->docstring = (yyvsp[(3) - (3)].consmodule).docstring; -+ setModuleName(currentSpec, currentModule, (yyvsp[-1].consmodule).name); -+ currentModule->docstring = (yyvsp[0].consmodule).docstring; - - setIsConsolidated(currentModule); - } - } -+#line 4142 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 181: --#line 1752 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1752 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.consmodule).name = (yyvsp[(1) - (1)].text); -+ (yyval.consmodule).name = (yyvsp[0].text); - } -+#line 4152 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 182: --#line 1757 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1757 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.consmodule) = (yyvsp[(2) - (3)].consmodule); -+ (yyval.consmodule) = (yyvsp[-1].consmodule); - } -+#line 4160 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 184: --#line 1763 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1763 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.consmodule) = (yyvsp[(1) - (3)].consmodule); -+ (yyval.consmodule) = (yyvsp[-2].consmodule); - -- switch ((yyvsp[(3) - (3)].consmodule).token) -+ switch ((yyvsp[0].consmodule).token) - { -- case TK_NAME: (yyval.consmodule).name = (yyvsp[(3) - (3)].consmodule).name; break; -+ case TK_NAME: (yyval.consmodule).name = (yyvsp[0].consmodule).name; break; - } - } -+#line 4173 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 185: --#line 1773 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1773 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.consmodule).token = TK_NAME; - -- (yyval.consmodule).name = (yyvsp[(3) - (3)].text); -+ (yyval.consmodule).name = (yyvsp[0].text); - } -+#line 4183 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 186: --#line 1780 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1780 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.consmodule).token = 0; - (yyval.consmodule).docstring = NULL; - } -+#line 4192 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 187: --#line 1784 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.consmodule) = (yyvsp[(2) - (4)].consmodule); -+ (yyval.consmodule) = (yyvsp[-2].consmodule); - } -+#line 4200 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 189: --#line 1790 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.consmodule) = (yyvsp[(1) - (2)].consmodule); -+ (yyval.consmodule) = (yyvsp[-1].consmodule); - -- switch ((yyvsp[(2) - (2)].consmodule).token) -+ switch ((yyvsp[0].consmodule).token) - { -- case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[(2) - (2)].consmodule).docstring; break; -+ case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[0].consmodule).docstring; break; - } - } -+#line 4213 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 190: --#line 1800 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.consmodule).token = TK_IF; - } -+#line 4221 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 191: --#line 1803 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1803 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.consmodule).token = TK_END; - } -+#line 4229 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 192: --#line 1806 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1806 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.consmodule).token = TK_DOCSTRING; -- (yyval.consmodule).docstring = (yyvsp[(1) - (1)].docstr); -+ (yyval.consmodule).docstring = (yyvsp[0].docstr); - } - else - { -@@ -4466,10 +4242,11 @@ - (yyval.consmodule).docstring = NULL; - } - } -+#line 4246 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 193: --#line 1820 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1820 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -4480,99 +4257,109 @@ - if (currentModule->fullname != NULL) - yyerror("%CompositeModule must appear before any %Module directive"); - -- setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].compmodule).name); -- currentModule->docstring = (yyvsp[(3) - (3)].compmodule).docstring; -+ setModuleName(currentSpec, currentModule, (yyvsp[-1].compmodule).name); -+ currentModule->docstring = (yyvsp[0].compmodule).docstring; - - setIsComposite(currentModule); - } - } -+#line 4267 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 194: --#line 1838 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1838 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.compmodule).name = (yyvsp[(1) - (1)].text); -+ (yyval.compmodule).name = (yyvsp[0].text); - } -+#line 4277 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 195: --#line 1843 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1843 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.compmodule) = (yyvsp[(2) - (3)].compmodule); -+ (yyval.compmodule) = (yyvsp[-1].compmodule); - } -+#line 4285 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 197: --#line 1849 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1849 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.compmodule) = (yyvsp[(1) - (3)].compmodule); -+ (yyval.compmodule) = (yyvsp[-2].compmodule); - -- switch ((yyvsp[(3) - (3)].compmodule).token) -+ switch ((yyvsp[0].compmodule).token) - { -- case TK_NAME: (yyval.compmodule).name = (yyvsp[(3) - (3)].compmodule).name; break; -+ case TK_NAME: (yyval.compmodule).name = (yyvsp[0].compmodule).name; break; - } - } -+#line 4298 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 198: --#line 1859 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1859 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.compmodule).token = TK_NAME; - -- (yyval.compmodule).name = (yyvsp[(3) - (3)].text); -+ (yyval.compmodule).name = (yyvsp[0].text); - } -+#line 4308 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 199: --#line 1866 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1866 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.compmodule).token = 0; - (yyval.compmodule).docstring = NULL; - } -+#line 4317 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 200: --#line 1870 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.compmodule) = (yyvsp[(2) - (4)].compmodule); -+ (yyval.compmodule) = (yyvsp[-2].compmodule); - } -+#line 4325 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 202: --#line 1876 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.compmodule) = (yyvsp[(1) - (2)].compmodule); -+ (yyval.compmodule) = (yyvsp[-1].compmodule); - -- switch ((yyvsp[(2) - (2)].compmodule).token) -+ switch ((yyvsp[0].compmodule).token) - { -- case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[(2) - (2)].compmodule).docstring; break; -+ case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[0].compmodule).docstring; break; - } - } -+#line 4338 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 203: --#line 1886 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.compmodule).token = TK_IF; - } -+#line 4346 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 204: --#line 1889 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.compmodule).token = TK_END; - } -+#line 4354 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 205: --#line 1892 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.compmodule).token = TK_DOCSTRING; -- (yyval.compmodule).docstring = (yyvsp[(1) - (1)].docstr); -+ (yyval.compmodule).docstring = (yyvsp[0].docstr); - } - else - { -@@ -4580,90 +4367,97 @@ - (yyval.compmodule).docstring = NULL; - } - } -+#line 4371 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 206: --#line 1906 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (3)].module).name == NULL) -+ if ((yyvsp[-1].module).name == NULL) - yyerror("%Module must have a 'name' argument"); - - if (notSkipping()) - currentModule = configureModule(currentSpec, currentModule, -- currentContext.filename, (yyvsp[(2) - (3)].module).name, (yyvsp[(2) - (3)].module).c_module, -- (yyvsp[(2) - (3)].module).kwargs, (yyvsp[(2) - (3)].module).use_arg_names, (yyvsp[(2) - (3)].module).use_limited_api, -- (yyvsp[(2) - (3)].module).call_super_init, (yyvsp[(2) - (3)].module).all_raise_py_exc, -- (yyvsp[(2) - (3)].module).def_error_handler, (yyvsp[(3) - (3)].module).docstring); -+ currentContext.filename, (yyvsp[-1].module).name, (yyvsp[-1].module).c_module, -+ (yyvsp[-1].module).kwargs, (yyvsp[-1].module).use_arg_names, (yyvsp[-1].module).use_limited_api, -+ (yyvsp[-1].module).call_super_init, (yyvsp[-1].module).all_raise_py_exc, -+ (yyvsp[-1].module).def_error_handler, (yyvsp[0].module).docstring); - } -+#line 4387 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 207: --#line 1917 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1917 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("%CModule is deprecated, use %Module and the 'language' argument instead"); - - if (notSkipping()) - currentModule = configureModule(currentSpec, currentModule, -- currentContext.filename, (yyvsp[(2) - (3)].text), TRUE, defaultKwArgs, -+ currentContext.filename, (yyvsp[-1].text), TRUE, defaultKwArgs, - FALSE, FALSE, -1, FALSE, NULL, NULL); - } -+#line 4400 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 208: --#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {resetLexerState();} -+#line 4406 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 209: --#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(3) - (3)].number) >= 0) -+ if ((yyvsp[0].number) >= 0) - deprecated("%Module version number should be specified using the 'version' argument"); - - (yyval.module).c_module = FALSE; - (yyval.module).kwargs = defaultKwArgs; -- (yyval.module).name = (yyvsp[(1) - (3)].text); -+ (yyval.module).name = (yyvsp[-2].text); - (yyval.module).use_arg_names = FALSE; - (yyval.module).use_limited_api = FALSE; - (yyval.module).all_raise_py_exc = FALSE; - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4424 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 210: --#line 1940 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.module) = (yyvsp[(2) - (3)].module); -+ (yyval.module) = (yyvsp[-1].module); - } -+#line 4432 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 212: --#line 1946 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1946 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.module) = (yyvsp[(1) - (3)].module); -+ (yyval.module) = (yyvsp[-2].module); - -- switch ((yyvsp[(3) - (3)].module).token) -+ switch ((yyvsp[0].module).token) - { -- case TK_KWARGS: (yyval.module).kwargs = (yyvsp[(3) - (3)].module).kwargs; break; -- case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[(3) - (3)].module).c_module; break; -- case TK_NAME: (yyval.module).name = (yyvsp[(3) - (3)].module).name; break; -- case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[(3) - (3)].module).use_arg_names; break; -- case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[(3) - (3)].module).use_limited_api; break; -- case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].module).all_raise_py_exc; break; -- case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[(3) - (3)].module).call_super_init; break; -- case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[(3) - (3)].module).def_error_handler; break; -+ case TK_KWARGS: (yyval.module).kwargs = (yyvsp[0].module).kwargs; break; -+ case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[0].module).c_module; break; -+ case TK_NAME: (yyval.module).name = (yyvsp[0].module).name; break; -+ case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[0].module).use_arg_names; break; -+ case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[0].module).use_limited_api; break; -+ case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[0].module).all_raise_py_exc; break; -+ case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[0].module).call_super_init; break; -+ case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[0].module).def_error_handler; break; - } - } -+#line 4452 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 213: --#line 1963 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1963 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_KWARGS; - - (yyval.module).c_module = FALSE; -- (yyval.module).kwargs = convertKwArgs((yyvsp[(3) - (3)].text)); -+ (yyval.module).kwargs = convertKwArgs((yyvsp[0].text)); - (yyval.module).name = NULL; - (yyval.module).use_arg_names = FALSE; - (yyval.module).use_limited_api = FALSE; -@@ -4671,16 +4465,17 @@ - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4469 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 214: --#line 1975 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1975 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_LANGUAGE; - -- if (strcmp((yyvsp[(3) - (3)].text), "C++") == 0) -+ if (strcmp((yyvsp[0].text), "C++") == 0) - (yyval.module).c_module = FALSE; -- else if (strcmp((yyvsp[(3) - (3)].text), "C") == 0) -+ else if (strcmp((yyvsp[0].text), "C") == 0) - (yyval.module).c_module = TRUE; - else - yyerror("%Module 'language' argument must be either \"C++\" or \"C\""); -@@ -4693,42 +4488,45 @@ - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4492 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 215: --#line 1993 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 1993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_NAME; - - (yyval.module).c_module = FALSE; - (yyval.module).kwargs = defaultKwArgs; -- (yyval.module).name = (yyvsp[(3) - (3)].text); -+ (yyval.module).name = (yyvsp[0].text); - (yyval.module).use_arg_names = FALSE; - (yyval.module).use_limited_api = FALSE; - (yyval.module).all_raise_py_exc = FALSE; - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4509 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 216: --#line 2005 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2005 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_USEARGNAMES; - - (yyval.module).c_module = FALSE; - (yyval.module).kwargs = defaultKwArgs; - (yyval.module).name = NULL; -- (yyval.module).use_arg_names = (yyvsp[(3) - (3)].boolean); -+ (yyval.module).use_arg_names = (yyvsp[0].boolean); - (yyval.module).use_limited_api = FALSE; - (yyval.module).all_raise_py_exc = FALSE; - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4526 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 217: --#line 2017 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2017 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_USELIMITEDAPI; - -@@ -4736,15 +4534,16 @@ - (yyval.module).kwargs = defaultKwArgs; - (yyval.module).name = NULL; - (yyval.module).use_arg_names = FALSE; -- (yyval.module).use_limited_api = (yyvsp[(3) - (3)].boolean); -+ (yyval.module).use_limited_api = (yyvsp[0].boolean); - (yyval.module).all_raise_py_exc = FALSE; - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4543 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 218: --#line 2029 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2029 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_ALLRAISEPYEXC; - -@@ -4753,14 +4552,15 @@ - (yyval.module).name = NULL; - (yyval.module).use_arg_names = FALSE; - (yyval.module).use_limited_api = FALSE; -- (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].boolean); -+ (yyval.module).all_raise_py_exc = (yyvsp[0].boolean); - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4560 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 219: --#line 2041 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2041 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_CALLSUPERINIT; - -@@ -4770,13 +4570,14 @@ - (yyval.module).use_arg_names = FALSE; - (yyval.module).use_limited_api = FALSE; - (yyval.module).all_raise_py_exc = FALSE; -- (yyval.module).call_super_init = (yyvsp[(3) - (3)].boolean); -+ (yyval.module).call_super_init = (yyvsp[0].boolean); - (yyval.module).def_error_handler = NULL; - } -+#line 4577 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 220: --#line 2053 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_DEFERRORHANDLER; - -@@ -4787,16 +4588,17 @@ - (yyval.module).use_limited_api = FALSE; - (yyval.module).all_raise_py_exc = FALSE; - (yyval.module).call_super_init = -1; -- (yyval.module).def_error_handler = (yyvsp[(3) - (3)].text); -+ (yyval.module).def_error_handler = (yyvsp[0].text); - } -+#line 4594 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 221: --#line 2065 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2065 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("%Module version numbers are deprecated and ignored"); - -- if ((yyvsp[(3) - (3)].number) < 0) -+ if ((yyvsp[0].number) < 0) - yyerror("%Module 'version' argument cannot be negative"); - - (yyval.module).token = TK_VERSION; -@@ -4810,63 +4612,70 @@ - (yyval.module).call_super_init = -1; - (yyval.module).def_error_handler = NULL; - } -+#line 4616 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 222: --#line 2084 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2084 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = 0; - (yyval.module).docstring = NULL; - } -+#line 4625 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 223: --#line 2088 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.module) = (yyvsp[(2) - (4)].module); -+ (yyval.module) = (yyvsp[-2].module); - } -+#line 4633 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 225: --#line 2094 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.module) = (yyvsp[(1) - (2)].module); -+ (yyval.module) = (yyvsp[-1].module); - -- switch ((yyvsp[(2) - (2)].module).token) -+ switch ((yyvsp[0].module).token) - { -- case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[(2) - (2)].module).docstring; break; -+ case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[0].module).docstring; break; - } - } -+#line 4646 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 226: --#line 2104 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_IF; - } -+#line 4654 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 227: --#line 2107 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_END; - } -+#line 4662 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 228: --#line 2110 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.module).token = TK_AUTOPYNAME; - } -+#line 4670 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 229: --#line 2113 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2113 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.module).token = TK_DOCSTRING; -- (yyval.module).docstring = (yyvsp[(1) - (1)].docstr); -+ (yyval.module).docstring = (yyvsp[0].docstr); - } - else - { -@@ -4874,10 +4683,11 @@ - (yyval.module).docstring = NULL; - } - } -+#line 4687 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 231: --#line 2128 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2128 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* - * The grammar design is a bit broken and this is the easiest way -@@ -4886,435 +4696,487 @@ - - char *cp; - -- for (cp = (yyvsp[(1) - (1)].text); *cp != '\0'; ++cp) -+ for (cp = (yyvsp[0].text); *cp != '\0'; ++cp) - if (*cp != '.' && *cp != '_' && !isalnum(*cp)) - yyerror("Invalid character in name"); - -- (yyval.text) = (yyvsp[(1) - (1)].text); -+ (yyval.text) = (yyvsp[0].text); - } -+#line 4706 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 232: --#line 2144 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2144 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = -1; - } -+#line 4714 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 234: --#line 2150 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2150 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (2)].include).name == NULL) -+ if ((yyvsp[0].include).name == NULL) - yyerror("%Include must have a 'name' argument"); - - if (notSkipping()) -- parseFile(NULL, (yyvsp[(2) - (2)].include).name, NULL, (yyvsp[(2) - (2)].include).optional); -+ parseFile(NULL, (yyvsp[0].include).name, NULL, (yyvsp[0].include).optional); - } -+#line 4726 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 235: --#line 2159 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2159 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.include).name = (yyvsp[(1) - (1)].text); -+ (yyval.include).name = (yyvsp[0].text); - (yyval.include).optional = FALSE; - } -+#line 4737 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 236: --#line 2165 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2165 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.include) = (yyvsp[(2) - (3)].include); -+ (yyval.include) = (yyvsp[-1].include); - } -+#line 4745 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 238: --#line 2171 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2171 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.include) = (yyvsp[(1) - (3)].include); -+ (yyval.include) = (yyvsp[-2].include); - -- switch ((yyvsp[(3) - (3)].include).token) -+ switch ((yyvsp[0].include).token) - { -- case TK_NAME: (yyval.include).name = (yyvsp[(3) - (3)].include).name; break; -- case TK_OPTIONAL: (yyval.include).optional = (yyvsp[(3) - (3)].include).optional; break; -+ case TK_NAME: (yyval.include).name = (yyvsp[0].include).name; break; -+ case TK_OPTIONAL: (yyval.include).optional = (yyvsp[0].include).optional; break; - } - } -+#line 4759 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 239: --#line 2182 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2182 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.include).token = TK_NAME; - -- (yyval.include).name = (yyvsp[(3) - (3)].text); -+ (yyval.include).name = (yyvsp[0].text); - (yyval.include).optional = FALSE; - } -+#line 4770 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 240: --#line 2188 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2188 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.include).token = TK_OPTIONAL; - - (yyval.include).name = NULL; -- (yyval.include).optional = (yyvsp[(3) - (3)].boolean); -+ (yyval.include).optional = (yyvsp[0].boolean); - } -+#line 4781 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 241: --#line 2196 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2196 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("%OptionalInclude is deprecated, use %Include and the 'optional' argument instead"); - - if (notSkipping()) -- parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, TRUE); -+ parseFile(NULL, (yyvsp[0].text), NULL, TRUE); - } -+#line 4792 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 242: --#line 2204 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- newImport((yyvsp[(2) - (2)].import).name); -+ newImport((yyvsp[0].import).name); - } -+#line 4801 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 243: --#line 2210 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2210 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.import).name = (yyvsp[(1) - (1)].text); -+ (yyval.import).name = (yyvsp[0].text); - } -+#line 4811 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 244: --#line 2215 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2215 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.import) = (yyvsp[(2) - (3)].import); -+ (yyval.import) = (yyvsp[-1].import); - } -+#line 4819 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 246: --#line 2221 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2221 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.import) = (yyvsp[(1) - (3)].import); -+ (yyval.import) = (yyvsp[-2].import); - -- switch ((yyvsp[(3) - (3)].import).token) -+ switch ((yyvsp[0].import).token) - { -- case TK_NAME: (yyval.import).name = (yyvsp[(3) - (3)].import).name; break; -+ case TK_NAME: (yyval.import).name = (yyvsp[0].import).name; break; - } - } -+#line 4832 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 247: --#line 2231 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2231 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.import).token = TK_NAME; - -- (yyval.import).name = (yyvsp[(3) - (3)].text); -+ (yyval.import).name = (yyvsp[0].text); - } -+#line 4842 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 248: --#line 2238 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2238 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 4850 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 249: --#line 2241 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2241 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4858 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 250: --#line 2246 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2246 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 4866 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 251: --#line 2249 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4874 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 252: --#line 2254 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2254 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 4882 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 253: --#line 2257 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2257 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4890 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 254: --#line 2262 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->copying, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->copying, (yyvsp[0].codeb)); - } -+#line 4899 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 255: --#line 2268 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2268 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[0].codeb)); - } -+#line 4908 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 256: --#line 2274 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2274 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->hdrcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->hdrcode, (yyvsp[0].codeb)); - } -+#line 4917 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 257: --#line 2280 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2280 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4925 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 258: --#line 2285 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2285 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4933 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 259: --#line 2290 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2290 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4941 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 260: --#line 2295 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4949 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 261: --#line 2300 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2300 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4957 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 262: --#line 2305 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2305 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4965 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 263: --#line 2310 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2310 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4973 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 264: --#line 2315 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2315 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4981 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 265: --#line 2320 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4989 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 266: --#line 2325 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2325 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 4997 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 267: --#line 2330 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 5005 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 268: --#line 2335 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 5013 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 269: --#line 2340 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2340 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->cppcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->cppcode, (yyvsp[0].codeb)); - } -+#line 5022 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 270: --#line 2346 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2346 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 5030 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 271: --#line 2351 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2351 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->preinitcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->preinitcode, (yyvsp[0].codeb)); - } -+#line 5039 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 272: --#line 2357 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2357 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->initcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->initcode, (yyvsp[0].codeb)); - } -+#line 5048 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 273: --#line 2363 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2363 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->postinitcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->postinitcode, (yyvsp[0].codeb)); - } -+#line 5057 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 274: --#line 2369 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2369 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->unitcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->unitcode, (yyvsp[0].codeb)); - } -+#line 5066 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 275: --#line 2375 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2375 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[0].codeb)); - } -+#line 5075 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 276: --#line 2381 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2381 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Deprecated. */ - } -+#line 5083 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 277: --#line 2386 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping() && !inMainModule()) -- appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[0].codeb)); - } -+#line 5092 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 278: --#line 2392 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2392 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tModule->typehintcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tModule->typehintcode, (yyvsp[0].codeb)); - } -+#line 5101 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 279: --#line 2398 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2398 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 5109 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 280: --#line 2403 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2403 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping() && inMainModule()) -- appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb)); - } -+#line 5118 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 281: --#line 2409 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2409 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb)); - } -+#line 5127 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 282: --#line 2415 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2415 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- addAutoPyName(currentModule, (yyvsp[(2) - (2)].autopyname).remove_leading); -+ addAutoPyName(currentModule, (yyvsp[0].autopyname).remove_leading); - } -+#line 5136 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 283: --#line 2421 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2421 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.autopyname) = (yyvsp[(2) - (3)].autopyname); -+ (yyval.autopyname) = (yyvsp[-1].autopyname); - } -+#line 5144 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 285: --#line 2427 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.autopyname) = (yyvsp[(1) - (3)].autopyname); -+ (yyval.autopyname) = (yyvsp[-2].autopyname); - -- switch ((yyvsp[(3) - (3)].autopyname).token) -+ switch ((yyvsp[0].autopyname).token) - { -- case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].autopyname).remove_leading; break; -+ case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[0].autopyname).remove_leading; break; - } - } -+#line 5157 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 286: --#line 2437 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2437 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.autopyname).token = TK_REMOVELEADING; - -- (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].text); -+ (yyval.autopyname).remove_leading = (yyvsp[0].text); - } -+#line 5167 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 287: --#line 2444 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2444 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.docstr) = sipMalloc(sizeof(docstringDef)); - -- (yyval.docstr)->signature = (yyvsp[(2) - (3)].docstring).signature; -- (yyval.docstr)->text = (yyvsp[(3) - (3)].codeb)->frag; -- free((yyvsp[(3) - (3)].codeb)); -+ (yyval.docstr)->signature = (yyvsp[-1].docstring).signature; -+ (yyval.docstr)->text = (yyvsp[0].codeb)->frag; -+ free((yyvsp[0].codeb)); - - /* Format the docstring. */ -- if ((yyvsp[(2) - (3)].docstring).format == deindented) -+ if ((yyvsp[-1].docstring).format == deindented) - { - const char *cp; - char *dp; -@@ -5388,158 +5250,174 @@ - *dp = '\0'; - } - } -+#line 5254 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 288: --#line 2528 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.docstring).format = currentModule->defdocstringfmt; - (yyval.docstring).signature = currentModule->defdocstringsig; - } -+#line 5263 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 289: --#line 2532 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2532 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.docstring).format = convertFormat((yyvsp[(1) - (1)].text)); -+ (yyval.docstring).format = convertFormat((yyvsp[0].text)); - (yyval.docstring).signature = currentModule->defdocstringsig; - } -+#line 5274 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 290: --#line 2538 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2538 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.docstring) = (yyvsp[(2) - (3)].docstring); -+ (yyval.docstring) = (yyvsp[-1].docstring); - } -+#line 5282 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 292: --#line 2544 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.docstring) = (yyvsp[(1) - (3)].docstring); -+ (yyval.docstring) = (yyvsp[-2].docstring); - -- switch ((yyvsp[(3) - (3)].docstring).token) -+ switch ((yyvsp[0].docstring).token) - { -- case TK_FORMAT: (yyval.docstring).format = (yyvsp[(3) - (3)].docstring).format; break; -- case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[(3) - (3)].docstring).signature; break; -+ case TK_FORMAT: (yyval.docstring).format = (yyvsp[0].docstring).format; break; -+ case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[0].docstring).signature; break; - } - } -+#line 5296 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 293: --#line 2555 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.docstring).token = TK_FORMAT; - -- (yyval.docstring).format = convertFormat((yyvsp[(3) - (3)].text)); -+ (yyval.docstring).format = convertFormat((yyvsp[0].text)); - (yyval.docstring).signature = currentModule->defdocstringsig; - } -+#line 5307 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 294: --#line 2561 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.docstring).token = TK_SIGNATURE; - - (yyval.docstring).format = currentModule->defdocstringfmt; -- (yyval.docstring).signature = convertSignature((yyvsp[(3) - (3)].text)); -+ (yyval.docstring).signature = convertSignature((yyvsp[0].text)); - } -+#line 5318 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 295: --#line 2569 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2569 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.docstr) = NULL; - } -+#line 5326 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 297: --#line 2575 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2575 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (3)].extract).id == NULL) -+ if ((yyvsp[-1].extract).id == NULL) - yyerror("%Extract must have an 'id' argument"); - - if (notSkipping()) -- addExtractPart(currentSpec, (yyvsp[(2) - (3)].extract).id, (yyvsp[(2) - (3)].extract).order, (yyvsp[(3) - (3)].codeb)); -+ addExtractPart(currentSpec, (yyvsp[-1].extract).id, (yyvsp[-1].extract).order, (yyvsp[0].codeb)); - } -+#line 5338 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 298: --#line 2584 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2584 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - resetLexerState(); - -- (yyval.extract).id = (yyvsp[(1) - (1)].text); -+ (yyval.extract).id = (yyvsp[0].text); - (yyval.extract).order = -1; - } -+#line 5349 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 299: --#line 2590 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.extract) = (yyvsp[(2) - (3)].extract); -+ (yyval.extract) = (yyvsp[-1].extract); - } -+#line 5357 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 301: --#line 2596 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.extract) = (yyvsp[(1) - (3)].extract); -+ (yyval.extract) = (yyvsp[-2].extract); - -- switch ((yyvsp[(3) - (3)].extract).token) -+ switch ((yyvsp[0].extract).token) - { -- case TK_ID: (yyval.extract).id = (yyvsp[(3) - (3)].extract).id; break; -- case TK_ORDER: (yyval.extract).order = (yyvsp[(3) - (3)].extract).order; break; -+ case TK_ID: (yyval.extract).id = (yyvsp[0].extract).id; break; -+ case TK_ORDER: (yyval.extract).order = (yyvsp[0].extract).order; break; - } - } -+#line 5371 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 302: --#line 2607 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2607 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.extract).token = TK_ID; - -- (yyval.extract).id = (yyvsp[(3) - (3)].text); -+ (yyval.extract).id = (yyvsp[0].text); - (yyval.extract).order = -1; - } -+#line 5382 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 303: --#line 2613 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2613 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.extract).token = TK_ORDER; - -- if ((yyvsp[(3) - (3)].number) < 0) -+ if ((yyvsp[0].number) < 0) - yyerror("The 'order' of an %Extract directive must not be negative"); - - (yyval.extract).id = NULL; -- (yyval.extract).order = (yyvsp[(3) - (3)].number); -+ (yyval.extract).order = (yyvsp[0].number); - } -+#line 5396 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 304: --#line 2624 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2624 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Deprecated. */ - } -+#line 5404 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 307: --#line 2633 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2633 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(1) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[-1].codeb); - -- append(&(yyval.codeb)->frag, (yyvsp[(2) - (2)].codeb)->frag); -+ append(&(yyval.codeb)->frag, (yyvsp[0].codeb)->frag); - -- free((yyvsp[(2) - (2)].codeb)->frag); -- free((yyvsp[(2) - (2)].codeb)); -+ free((yyvsp[0].codeb)->frag); -+ free((yyvsp[0].codeb)); - } -+#line 5417 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 308: --#line 2643 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2643 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -5550,71 +5428,79 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(4) - (4)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - - if (sectionFlags != 0 && (sectionFlags & ~(SECT_IS_PUBLIC | SECT_IS_PROT)) != 0) - yyerror("Class enums must be in the public or protected sections"); - -- if (currentSpec->genc && (yyvsp[(2) - (4)].boolean)) -+ if (currentSpec->genc && (yyvsp[-2].boolean)) - yyerror("Scoped enums not allowed in a C module"); - - currentEnum = newEnum(currentSpec, currentModule, -- currentMappedType, (yyvsp[(3) - (4)].text), &(yyvsp[(4) - (4)].optflags), sectionFlags, (yyvsp[(2) - (4)].boolean)); -+ currentMappedType, (yyvsp[-1].text), &(yyvsp[0].optflags), sectionFlags, (yyvsp[-2].boolean)); - } - } -+#line 5444 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 310: --#line 2667 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2667 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = FALSE; - } -+#line 5452 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 311: --#line 2670 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = TRUE; - } -+#line 5460 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 312: --#line 2673 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2673 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = TRUE; - } -+#line 5468 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 313: --#line 2678 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2678 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.text) = NULL; - } -+#line 5476 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 314: --#line 2681 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2681 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.text) = (yyvsp[(1) - (1)].text); -+ (yyval.text) = (yyvsp[0].text); - } -+#line 5484 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 315: --#line 2686 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.text) = NULL; - } -+#line 5492 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 316: --#line 2689 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2689 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.text) = (yyvsp[(1) - (1)].text); -+ (yyval.text) = (yyvsp[0].text); - } -+#line 5500 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 323: --#line 2704 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -5626,15 +5512,15 @@ - - enumMemberDef *emd, **tail; - -- checkAnnos(&(yyvsp[(3) - (4)].optflags), annos); -+ checkAnnos(&(yyvsp[-1].optflags), annos); - - /* Note that we don't use the assigned value. */ - emd = sipMalloc(sizeof (enumMemberDef)); - - emd->pyname = cacheName(currentSpec, -- getPythonName(currentModule, &(yyvsp[(3) - (4)].optflags), (yyvsp[(1) - (4)].text))); -- emd->cname = (yyvsp[(1) - (4)].text); -- emd->no_typehint = getNoTypeHint(&(yyvsp[(3) - (4)].optflags)); -+ getPythonName(currentModule, &(yyvsp[-1].optflags), (yyvsp[-3].text))); -+ emd->cname = (yyvsp[-3].text); -+ emd->no_typehint = getNoTypeHint(&(yyvsp[-1].optflags)); - emd->ed = currentEnum; - emd->platforms = currentPlatforms; - emd->next = NULL; -@@ -5652,207 +5538,232 @@ - setIsUsedName(emd->pyname); - } - } -+#line 5542 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 328: --#line 2751 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.valp) = NULL; - } -+#line 5550 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 329: --#line 2754 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2754 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.valp) = (yyvsp[(2) - (2)].valp); -+ (yyval.valp) = (yyvsp[0].valp); - } -+#line 5558 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 331: --#line 2760 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2760 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - valueDef *vd; - -- if ((yyvsp[(1) - (3)].valp) -> vtype == string_value || (yyvsp[(3) - (3)].valp) -> vtype == string_value) -+ if ((yyvsp[-2].valp) -> vtype == string_value || (yyvsp[0].valp) -> vtype == string_value) - yyerror("Invalid binary operator for string"); - - /* Find the last value in the existing expression. */ - -- for (vd = (yyvsp[(1) - (3)].valp); vd -> next != NULL; vd = vd -> next) -+ for (vd = (yyvsp[-2].valp); vd -> next != NULL; vd = vd -> next) - ; - -- vd -> vbinop = (yyvsp[(2) - (3)].qchar); -- vd -> next = (yyvsp[(3) - (3)].valp); -+ vd -> vbinop = (yyvsp[-1].qchar); -+ vd -> next = (yyvsp[0].valp); - -- (yyval.valp) = (yyvsp[(1) - (3)].valp); -+ (yyval.valp) = (yyvsp[-2].valp); - } -+#line 5579 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 332: --#line 2778 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2778 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '-'; - } -+#line 5587 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 333: --#line 2781 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2781 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '+'; - } -+#line 5595 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 334: --#line 2784 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '*'; - } -+#line 5603 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 335: --#line 2787 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2787 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '/'; - } -+#line 5611 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 336: --#line 2790 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '&'; - } -+#line 5619 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 337: --#line 2793 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2793 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '|'; - } -+#line 5627 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 338: --#line 2798 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2798 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '\0'; - } -+#line 5635 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 339: --#line 2801 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2801 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '!'; - } -+#line 5643 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 340: --#line 2804 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2804 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '~'; - } -+#line 5651 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 341: --#line 2807 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '-'; - } -+#line 5659 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 342: --#line 2810 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2810 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '+'; - } -+#line 5667 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 343: --#line 2813 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2813 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '*'; - } -+#line 5675 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 344: --#line 2816 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2816 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.qchar) = '&'; - } -+#line 5683 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 345: --#line 2821 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2821 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (3)].qchar) != '\0' && (yyvsp[(3) - (3)].value).vtype == string_value) -+ if ((yyvsp[-1].qchar) != '\0' && (yyvsp[0].value).vtype == string_value) - yyerror("Invalid unary operator for string"); - - /* Convert the value to a simple expression on the heap. */ - (yyval.valp) = sipMalloc(sizeof (valueDef)); - -- *(yyval.valp) = (yyvsp[(3) - (3)].value); -- (yyval.valp)->vunop = (yyvsp[(2) - (3)].qchar); -+ *(yyval.valp) = (yyvsp[0].value); -+ (yyval.valp)->vunop = (yyvsp[-1].qchar); - (yyval.valp)->vbinop = '\0'; -- (yyval.valp)->cast = (yyvsp[(1) - (3)].scpvalp); -+ (yyval.valp)->cast = (yyvsp[-2].scpvalp); - (yyval.valp)->next = NULL; - } -+#line 5701 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 346: --#line 2836 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.scpvalp) = NULL; - } -+#line 5709 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 347: --#line 2839 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2839 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.scpvalp) = (yyvsp[(2) - (3)].scpvalp); -+ (yyval.scpvalp) = (yyvsp[-1].scpvalp); - } -+#line 5717 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 348: --#line 2844 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2844 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec->genc) - yyerror("Scoped names are not allowed in a C module"); - -- (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[(2) - (2)].scpvalp)); -+ (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[0].scpvalp)); - } -+#line 5728 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 351: --#line 2854 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2854 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec->genc) - yyerror("Scoped names are not allowed in a C module"); - -- appendScopedName(&(yyvsp[(1) - (3)].scpvalp), (yyvsp[(3) - (3)].scpvalp)); -+ appendScopedName(&(yyvsp[-2].scpvalp), (yyvsp[0].scpvalp)); - } -+#line 5739 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 352: --#line 2862 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2862 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.scpvalp) = text2scopePart((yyvsp[(1) - (1)].text)); -+ (yyval.scpvalp) = text2scopePart((yyvsp[0].text)); - } -+#line 5747 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 353: --#line 2867 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2867 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = TRUE; - } -+#line 5755 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 354: --#line 2870 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = FALSE; - } -+#line 5763 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 355: --#line 2875 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* - * We let the C++ compiler decide if the value is a valid one - no -@@ -5860,93 +5771,103 @@ - */ - - (yyval.value).vtype = scoped_value; -- (yyval.value).u.vscp = (yyvsp[(1) - (1)].scpvalp); -+ (yyval.value).u.vscp = (yyvsp[0].scpvalp); - } -+#line 5777 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 356: --#line 2884 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - fcallDef *fcd; - - fcd = sipMalloc(sizeof (fcallDef)); -- *fcd = (yyvsp[(3) - (4)].fcall); -- fcd -> type = (yyvsp[(1) - (4)].memArg); -+ *fcd = (yyvsp[-1].fcall); -+ fcd -> type = (yyvsp[-3].memArg); - - (yyval.value).vtype = fcall_value; - (yyval.value).u.fcd = fcd; - } -+#line 5792 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 357: --#line 2894 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = real_value; -- (yyval.value).u.vreal = (yyvsp[(1) - (1)].real); -+ (yyval.value).u.vreal = (yyvsp[0].real); - } -+#line 5801 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 358: --#line 2898 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = numeric_value; -- (yyval.value).u.vnum = (yyvsp[(1) - (1)].number); -+ (yyval.value).u.vnum = (yyvsp[0].number); - } -+#line 5810 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 359: --#line 2902 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2902 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = numeric_value; -- (yyval.value).u.vnum = (yyvsp[(1) - (1)].boolean); -+ (yyval.value).u.vnum = (yyvsp[0].boolean); - } -+#line 5819 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 360: --#line 2906 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = numeric_value; - (yyval.value).u.vnum = 0; - } -+#line 5828 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 361: --#line 2910 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2910 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = string_value; -- (yyval.value).u.vstr = (yyvsp[(1) - (1)].text); -+ (yyval.value).u.vstr = (yyvsp[0].text); - } -+#line 5837 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 362: --#line 2914 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2914 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.value).vtype = qchar_value; -- (yyval.value).u.vqchar = (yyvsp[(1) - (1)].qchar); -+ (yyval.value).u.vqchar = (yyvsp[0].qchar); - } -+#line 5846 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 363: --#line 2920 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2920 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* No values. */ - - (yyval.fcall).nrArgs = 0; - } -+#line 5856 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 364: --#line 2925 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2925 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* The single or first expression. */ - -- (yyval.fcall).args[0] = (yyvsp[(1) - (1)].valp); -+ (yyval.fcall).args[0] = (yyvsp[0].valp); - (yyval.fcall).nrArgs = 1; - } -+#line 5867 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 365: --#line 2931 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2931 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Check that it wasn't ...(,expression...). */ - -@@ -5955,18 +5876,19 @@ - - /* Check there is room. */ - -- if ((yyvsp[(1) - (3)].fcall).nrArgs == MAX_NR_ARGS) -+ if ((yyvsp[-2].fcall).nrArgs == MAX_NR_ARGS) - yyerror("Internal error - increase the value of MAX_NR_ARGS"); - -- (yyval.fcall) = (yyvsp[(1) - (3)].fcall); -+ (yyval.fcall) = (yyvsp[-2].fcall); - -- (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[(3) - (3)].valp); -+ (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[0].valp); - (yyval.fcall).nrArgs++; - } -+#line 5888 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 366: --#line 2949 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2949 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -5983,16 +5905,17 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(4) - (6)].optflags), annos); -+ checkAnnos(&(yyvsp[-2].optflags), annos); - -- applyTypeFlags(currentModule, &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags)); -- newTypedef(currentSpec, currentModule, (yyvsp[(3) - (6)].text), &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags), (yyvsp[(6) - (6)].docstr)); -+ applyTypeFlags(currentModule, &(yyvsp[-4].memArg), &(yyvsp[-2].optflags)); -+ newTypedef(currentSpec, currentModule, (yyvsp[-3].text), &(yyvsp[-4].memArg), &(yyvsp[-2].optflags), (yyvsp[0].docstr)); - } - } -+#line 5915 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 367: --#line 2971 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 2971 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6011,40 +5934,42 @@ - signatureDef *sig; - argDef ftype; - -- checkAnnos(&(yyvsp[(10) - (12)].optflags), annos); -+ checkAnnos(&(yyvsp[-2].optflags), annos); - -- applyTypeFlags(currentModule, &(yyvsp[(2) - (12)].memArg), &(yyvsp[(10) - (12)].optflags)); -+ applyTypeFlags(currentModule, &(yyvsp[-10].memArg), &(yyvsp[-2].optflags)); - - memset(&ftype, 0, sizeof (argDef)); - - /* Create the full signature on the heap. */ - sig = sipMalloc(sizeof (signatureDef)); -- *sig = (yyvsp[(8) - (12)].signature); -- sig->result = (yyvsp[(2) - (12)].memArg); -+ *sig = (yyvsp[-4].signature); -+ sig->result = (yyvsp[-10].memArg); - - /* Create the full type. */ - ftype.atype = function_type; - ftype.nrderefs = 1; - ftype.u.sa = sig; - -- newTypedef(currentSpec, currentModule, (yyvsp[(5) - (12)].text), &ftype, &(yyvsp[(10) - (12)].optflags), (yyvsp[(12) - (12)].docstr)); -+ newTypedef(currentSpec, currentModule, (yyvsp[-7].text), &ftype, &(yyvsp[-2].optflags), (yyvsp[0].docstr)); - } - } -+#line 5957 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 368: --#line 3010 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if (currentSpec -> genc && (yyvsp[(2) - (2)].scpvalp)->next != NULL) -+ if (currentSpec -> genc && (yyvsp[0].scpvalp)->next != NULL) - yyerror("Namespaces not allowed in a C module"); - - if (notSkipping()) - currentSupers = NULL; - } -+#line 5969 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 369: --#line 3016 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3016 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6074,32 +5999,35 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - - if (currentSpec->genc && currentSupers != NULL) - yyerror("Super-classes not allowed in a C module struct"); - -- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags)); -+ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags)); - sectionFlags = SECT_IS_PUBLIC; - } - } -+#line 6012 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 370: --#line 3053 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean)); -+ completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean)); - } -+#line 6021 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 371: --#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentIsTemplate = TRUE;} -+#line 6027 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 372: --#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec->genc) - yyerror("Class templates not allowed in a C module"); -@@ -6111,12 +6039,12 @@ - /* - * Make sure there is room for the extra class name argument. - */ -- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) -+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) - yyerror("Internal error - increase the value of MAX_NR_ARGS"); - - tcd = sipMalloc(sizeof (classTmplDef)); -- tcd->sig = (yyvsp[(1) - (3)].signature); -- tcd->cd = (yyvsp[(3) - (3)].klass); -+ tcd->sig = (yyvsp[-2].signature); -+ tcd->cd = (yyvsp[0].klass); - tcd->next = currentSpec->classtemplates; - - currentSpec->classtemplates = tcd; -@@ -6124,17 +6052,19 @@ - - currentIsTemplate = FALSE; - } -+#line 6056 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 373: --#line 3085 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3085 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.signature) = (yyvsp[(3) - (4)].signature); -+ (yyval.signature) = (yyvsp[-1].signature); - } -+#line 6064 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 374: --#line 3090 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3090 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec->genc) - yyerror("Class definition not allowed in a C module"); -@@ -6142,10 +6072,11 @@ - if (notSkipping()) - currentSupers = NULL; - } -+#line 6076 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 375: --#line 3096 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3096 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6174,30 +6105,32 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(5) - (5)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - -- defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags)); -+ defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags)); - sectionFlags = SECT_IS_PRIVATE; - } - } -+#line 6115 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 376: --#line 3129 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- (yyval.klass) = completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean)); -+ (yyval.klass) = completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean)); - } -+#line 6124 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 381: --#line 3143 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3143 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if (notSkipping() && (yyvsp[(1) - (2)].token) == TK_PUBLIC) -+ if (notSkipping() && (yyvsp[-1].token) == TK_PUBLIC) - { - argDef ad; - classDef *super; -- scopedNameDef *snd = (yyvsp[(2) - (2)].scpvalp); -+ scopedNameDef *snd = (yyvsp[0].scpvalp); - - /* - * This is a hack to allow typedef'ed classes to be used before -@@ -6242,52 +6175,59 @@ - appendToClassList(¤tSupers, super); - } - } -+#line 6179 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 382: --#line 3195 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3195 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.token) = TK_PUBLIC; - } -+#line 6187 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 383: --#line 3198 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3198 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.token) = TK_PUBLIC; - } -+#line 6195 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 384: --#line 3201 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3201 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.token) = TK_PROTECTED; - } -+#line 6203 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 385: --#line 3204 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.token) = TK_PRIVATE; - } -+#line 6211 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 386: --#line 3209 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3209 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = FALSE; - } -+#line 6219 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 387: --#line 3212 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3212 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.boolean) = TRUE; - } -+#line 6227 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 401: --#line 3232 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3232 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6296,29 +6236,32 @@ - if (scope->docstring != NULL) - yyerror("%Docstring already given for class"); - -- scope->docstring = (yyvsp[(1) - (1)].docstr); -+ scope->docstring = (yyvsp[0].docstr); - } - } -+#line 6243 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 402: --#line 3243 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3243 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tScope()->cppcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(¤tScope()->cppcode, (yyvsp[0].codeb)); - } -+#line 6252 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 403: --#line 3247 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3247 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) -- appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[0].codeb)); - } -+#line 6261 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 404: --#line 3251 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3251 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6327,13 +6270,14 @@ - if (scope->travcode != NULL) - yyerror("%GCTraverseCode already given for class"); - -- appendCodeBlock(&scope->travcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->travcode, (yyvsp[0].codeb)); - } - } -+#line 6277 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 405: --#line 3262 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6342,13 +6286,14 @@ - if (scope->clearcode != NULL) - yyerror("%GCClearCode already given for class"); - -- appendCodeBlock(&scope->clearcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->clearcode, (yyvsp[0].codeb)); - } - } -+#line 6293 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 406: --#line 3273 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3273 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6357,13 +6302,14 @@ - if (scope->getbufcode != NULL) - yyerror("%BIGetBufferCode already given for class"); - -- appendCodeBlock(&scope->getbufcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->getbufcode, (yyvsp[0].codeb)); - } - } -+#line 6309 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 407: --#line 3284 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3284 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6372,13 +6318,14 @@ - if (scope->releasebufcode != NULL) - yyerror("%BIReleaseBufferCode already given for class"); - -- appendCodeBlock(&scope->releasebufcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->releasebufcode, (yyvsp[0].codeb)); - } - } -+#line 6325 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 408: --#line 3295 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6387,13 +6334,14 @@ - if (scope->readbufcode != NULL) - yyerror("%BIGetReadBufferCode already given for class"); - -- appendCodeBlock(&scope->readbufcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->readbufcode, (yyvsp[0].codeb)); - } - } -+#line 6341 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 409: --#line 3306 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3306 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6402,13 +6350,14 @@ - if (scope->writebufcode != NULL) - yyerror("%BIGetWriteBufferCode already given for class"); - -- appendCodeBlock(&scope->writebufcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->writebufcode, (yyvsp[0].codeb)); - } - } -+#line 6357 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 410: --#line 3317 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3317 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6417,13 +6366,14 @@ - if (scope->segcountcode != NULL) - yyerror("%BIGetSegCountCode already given for class"); - -- appendCodeBlock(&scope->segcountcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->segcountcode, (yyvsp[0].codeb)); - } - } -+#line 6373 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 411: --#line 3328 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3328 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6432,13 +6382,14 @@ - if (scope->charbufcode != NULL) - yyerror("%BIGetCharBufferCode already given for class"); - -- appendCodeBlock(&scope->charbufcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->charbufcode, (yyvsp[0].codeb)); - } - } -+#line 6389 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 412: --#line 3339 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3339 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6447,13 +6398,14 @@ - if (scope->instancecode != NULL) - yyerror("%InstanceCode already given for class"); - -- appendCodeBlock(&scope->instancecode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->instancecode, (yyvsp[0].codeb)); - } - } -+#line 6405 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 413: --#line 3350 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3350 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6462,13 +6414,14 @@ - if (scope->picklecode != NULL) - yyerror("%PickleCode already given for class"); - -- appendCodeBlock(&scope->picklecode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->picklecode, (yyvsp[0].codeb)); - } - } -+#line 6421 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 414: --#line 3361 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3361 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6477,13 +6430,14 @@ - if (scope->finalcode != NULL) - yyerror("%FinalisationCode already given for class"); - -- appendCodeBlock(&scope->finalcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->finalcode, (yyvsp[0].codeb)); - } - } -+#line 6437 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 415: --#line 3372 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3372 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6492,13 +6446,14 @@ - if (scope->typehintcode != NULL) - yyerror("%TypeHintCode already given for class"); - -- appendCodeBlock(&scope->typehintcode, (yyvsp[(1) - (1)].codeb)); -+ appendCodeBlock(&scope->typehintcode, (yyvsp[0].codeb)); - } - } -+#line 6453 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 419: --#line 3386 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6507,13 +6462,14 @@ - if (scope->convtosubcode != NULL) - yyerror("Class has more than one %ConvertToSubClassCode directive"); - -- appendCodeBlock(&scope->convtosubcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(&scope->convtosubcode, (yyvsp[0].codeb)); - } - } -+#line 6469 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 420: --#line 3397 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3397 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6522,13 +6478,14 @@ - if (scope->convtocode != NULL) - yyerror("Class has more than one %ConvertToTypeCode directive"); - -- appendCodeBlock(&scope->convtocode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(&scope->convtocode, (yyvsp[0].codeb)); - } - } -+#line 6485 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 421: --#line 3408 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3408 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6537,46 +6494,50 @@ - if (scope->convfromcode != NULL) - yyerror("Class has more than one %ConvertFromTypeCode directive"); - -- appendCodeBlock(&scope->convfromcode, (yyvsp[(2) - (2)].codeb)); -+ appendCodeBlock(&scope->convfromcode, (yyvsp[0].codeb)); - } - } -+#line 6501 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 422: --#line 3419 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3419 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("public section not allowed in a C module"); - - if (notSkipping()) -- sectionFlags = SECT_IS_PUBLIC | (yyvsp[(2) - (3)].number); -+ sectionFlags = SECT_IS_PUBLIC | (yyvsp[-1].number); - } -+#line 6513 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 423: --#line 3426 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3426 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("protected section not allowed in a C module"); - - if (notSkipping()) -- sectionFlags = SECT_IS_PROT | (yyvsp[(2) - (3)].number); -+ sectionFlags = SECT_IS_PROT | (yyvsp[-1].number); - } -+#line 6525 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 424: --#line 3433 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3433 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("private section not allowed in a C module"); - - if (notSkipping()) -- sectionFlags = SECT_IS_PRIVATE | (yyvsp[(2) - (3)].number); -+ sectionFlags = SECT_IS_PRIVATE | (yyvsp[-1].number); - } -+#line 6537 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 425: --#line 3440 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3440 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("signals section not allowed in a C module"); -@@ -6584,125 +6545,137 @@ - if (notSkipping()) - sectionFlags = SECT_IS_SIGNAL; - } -+#line 6549 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 426: --#line 3449 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3449 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (3)].property).name == NULL) -+ if ((yyvsp[-1].property).name == NULL) - yyerror("A %Property directive must have a 'name' argument"); - -- if ((yyvsp[(2) - (3)].property).get == NULL) -+ if ((yyvsp[-1].property).get == NULL) - yyerror("A %Property directive must have a 'get' argument"); - - if (notSkipping()) - addProperty(currentSpec, currentModule, currentScope(), -- (yyvsp[(2) - (3)].property).name, (yyvsp[(2) - (3)].property).get, (yyvsp[(2) - (3)].property).set, (yyvsp[(3) - (3)].property).docstring); -+ (yyvsp[-1].property).name, (yyvsp[-1].property).get, (yyvsp[-1].property).set, (yyvsp[0].property).docstring); - } -+#line 6565 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 427: --#line 3462 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3462 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.property) = (yyvsp[(2) - (3)].property); -+ (yyval.property) = (yyvsp[-1].property); - } -+#line 6573 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 429: --#line 3468 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3468 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.property) = (yyvsp[(1) - (3)].property); -+ (yyval.property) = (yyvsp[-2].property); - -- switch ((yyvsp[(3) - (3)].property).token) -+ switch ((yyvsp[0].property).token) - { -- case TK_GET: (yyval.property).get = (yyvsp[(3) - (3)].property).get; break; -- case TK_NAME: (yyval.property).name = (yyvsp[(3) - (3)].property).name; break; -- case TK_SET: (yyval.property).set = (yyvsp[(3) - (3)].property).set; break; -+ case TK_GET: (yyval.property).get = (yyvsp[0].property).get; break; -+ case TK_NAME: (yyval.property).name = (yyvsp[0].property).name; break; -+ case TK_SET: (yyval.property).set = (yyvsp[0].property).set; break; - } - } -+#line 6588 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 430: --#line 3480 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3480 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = TK_GET; - -- (yyval.property).get = (yyvsp[(3) - (3)].text); -+ (yyval.property).get = (yyvsp[0].text); - (yyval.property).name = NULL; - (yyval.property).set = NULL; - } -+#line 6600 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 431: --#line 3487 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3487 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = TK_NAME; - - (yyval.property).get = NULL; -- (yyval.property).name = (yyvsp[(3) - (3)].text); -+ (yyval.property).name = (yyvsp[0].text); - (yyval.property).set = NULL; - } -+#line 6612 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 432: --#line 3494 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3494 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = TK_SET; - - (yyval.property).get = NULL; - (yyval.property).name = NULL; -- (yyval.property).set = (yyvsp[(3) - (3)].text); -+ (yyval.property).set = (yyvsp[0].text); - } -+#line 6624 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 433: --#line 3503 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3503 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = 0; - (yyval.property).docstring = NULL; - } -+#line 6633 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 434: --#line 3507 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3507 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.property) = (yyvsp[(2) - (4)].property); -+ (yyval.property) = (yyvsp[-2].property); - } -+#line 6641 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 436: --#line 3513 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3513 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.property) = (yyvsp[(1) - (2)].property); -+ (yyval.property) = (yyvsp[-1].property); - -- switch ((yyvsp[(2) - (2)].property).token) -+ switch ((yyvsp[0].property).token) - { -- case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[(2) - (2)].property).docstring; break; -+ case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[0].property).docstring; break; - } - } -+#line 6654 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 437: --#line 3523 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3523 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = TK_IF; - } -+#line 6662 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 438: --#line 3526 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3526 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.property).token = TK_END; - } -+#line 6670 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 439: --#line 3529 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3529 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.property).token = TK_DOCSTRING; -- (yyval.property).docstring = (yyvsp[(1) - (1)].docstr); -+ (yyval.property).docstring = (yyvsp[0].docstr); - } - else - { -@@ -6710,24 +6683,27 @@ - (yyval.property).docstring = NULL; - } - } -+#line 6687 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 442: --#line 3547 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = 0; - } -+#line 6695 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 443: --#line 3550 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3550 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = SECT_IS_SLOT; - } -+#line 6703 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 444: --#line 3555 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Note that we allow non-virtual dtors in C modules. */ - -@@ -6741,22 +6717,22 @@ - - classDef *cd = currentScope(); - -- checkAnnos(&(yyvsp[(8) - (12)].optflags), annos); -+ checkAnnos(&(yyvsp[-4].optflags), annos); - -- if (strcmp(classBaseName(cd),(yyvsp[(3) - (12)].text)) != 0) -+ if (strcmp(classBaseName(cd),(yyvsp[-9].text)) != 0) - yyerror("Destructor doesn't have the same name as its class"); - - if (isDtor(cd)) - yyerror("Destructor has already been defined"); - -- if (currentSpec -> genc && (yyvsp[(10) - (12)].codeb) == NULL) -+ if (currentSpec -> genc && (yyvsp[-2].codeb) == NULL) - yyerror("Destructor in C modules must include %MethodCode"); - - -- appendCodeBlock(&cd->dealloccode, (yyvsp[(10) - (12)].codeb)); /* premethodcode */ -- appendCodeBlock(&cd->dealloccode, (yyvsp[(11) - (12)].codeb)); /* methodcode */ -- appendCodeBlock(&cd->dtorcode, (yyvsp[(12) - (12)].codeb)); -- cd -> dtorexceptions = (yyvsp[(6) - (12)].throwlist); -+ appendCodeBlock(&cd->dealloccode, (yyvsp[-2].codeb)); /* premethodcode */ -+ appendCodeBlock(&cd->dealloccode, (yyvsp[-1].codeb)); /* methodcode */ -+ appendCodeBlock(&cd->dtorcode, (yyvsp[0].codeb)); -+ cd -> dtorexceptions = (yyvsp[-6].throwlist); - - /* - * Note that we don't apply the protected/public hack to dtors -@@ -6764,9 +6740,9 @@ - */ - cd->classflags |= sectionFlags; - -- if ((yyvsp[(7) - (12)].number)) -+ if ((yyvsp[-5].number)) - { -- if (!(yyvsp[(1) - (12)].number)) -+ if (!(yyvsp[-11].number)) - yyerror("Abstract destructor must be virtual"); - - setIsAbstractClass(cd); -@@ -6776,7 +6752,7 @@ - * The class has a shadow if we have a virtual dtor or some - * dtor code. - */ -- if ((yyvsp[(1) - (12)].number) || (yyvsp[(11) - (12)].codeb) != NULL) -+ if ((yyvsp[-11].number) || (yyvsp[-1].codeb) != NULL) - { - if (currentSpec -> genc) - yyerror("Virtual destructor or %VirtualCatcherCode not allowed in a C module"); -@@ -6784,21 +6760,23 @@ - setNeedsShadow(cd); - } - -- if (getReleaseGIL(&(yyvsp[(8) - (12)].optflags))) -+ if (getReleaseGIL(&(yyvsp[-4].optflags))) - setIsReleaseGILDtor(cd); -- else if (getHoldGIL(&(yyvsp[(8) - (12)].optflags))) -+ else if (getHoldGIL(&(yyvsp[-4].optflags))) - setIsHoldGILDtor(cd); - } - } -+#line 6770 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 445: --#line 3619 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3619 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentCtorIsExplicit = TRUE;} -+#line 6776 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 448: --#line 3623 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3623 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Note that we allow ctors in C modules. */ - -@@ -6821,11 +6799,11 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(6) - (11)].optflags), annos); -+ checkAnnos(&(yyvsp[-5].optflags), annos); - - if (currentSpec -> genc) - { -- if ((yyvsp[(10) - (11)].codeb) == NULL && (yyvsp[(3) - (11)].signature).nrArgs != 0) -+ if ((yyvsp[-1].codeb) == NULL && (yyvsp[-8].signature).nrArgs != 0) - yyerror("Constructors with arguments in C modules must include %MethodCode"); - - if (currentCtorIsExplicit) -@@ -6835,94 +6813,103 @@ - if ((sectionFlags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) == 0) - yyerror("Constructor must be in the public, private or protected sections"); - -- newCtor(currentModule, (yyvsp[(1) - (11)].text), sectionFlags, &(yyvsp[(3) - (11)].signature), &(yyvsp[(6) - (11)].optflags), (yyvsp[(11) - (11)].codeb), (yyvsp[(5) - (11)].throwlist), (yyvsp[(7) - (11)].optsignature), -- currentCtorIsExplicit, (yyvsp[(9) - (11)].docstr), (yyvsp[(10) - (11)].codeb)); -+ newCtor(currentModule, (yyvsp[-10].text), sectionFlags, &(yyvsp[-8].signature), &(yyvsp[-5].optflags), (yyvsp[0].codeb), (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), -+ currentCtorIsExplicit, (yyvsp[-2].docstr), (yyvsp[-1].codeb)); - } - -- free((yyvsp[(1) - (11)].text)); -+ free((yyvsp[-10].text)); - - currentCtorIsExplicit = FALSE; - } -+#line 6825 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 449: --#line 3669 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.optsignature) = NULL; - } -+#line 6833 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 450: --#line 3672 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3672 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - parsingCSignature = TRUE; - } -+#line 6841 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 451: --#line 3674 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.optsignature) = sipMalloc(sizeof (signatureDef)); - -- *(yyval.optsignature) = (yyvsp[(4) - (6)].signature); -+ *(yyval.optsignature) = (yyvsp[-2].signature); - - parsingCSignature = FALSE; - } -+#line 6853 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 452: --#line 3683 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3683 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.optsignature) = NULL; - } -+#line 6861 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 453: --#line 3686 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - parsingCSignature = TRUE; - } -+#line 6869 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 454: --#line 3688 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3688 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.optsignature) = sipMalloc(sizeof (signatureDef)); - -- *(yyval.optsignature) = (yyvsp[(5) - (7)].signature); -- (yyval.optsignature)->result = (yyvsp[(3) - (7)].memArg); -+ *(yyval.optsignature) = (yyvsp[-2].signature); -+ (yyval.optsignature)->result = (yyvsp[-4].memArg); - - parsingCSignature = FALSE; - } -+#line 6882 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 455: --#line 3698 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3698 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = FALSE; - } -+#line 6890 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 456: --#line 3701 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3701 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = TRUE; - } -+#line 6898 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 457: --#line 3706 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3706 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(10) - (17)].optflags)); -+ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-7].optflags)); - -- (yyvsp[(4) - (17)].signature).result = (yyvsp[(1) - (17)].memArg); -+ (yyvsp[-13].signature).result = (yyvsp[-16].memArg); - - newFunction(currentSpec, currentModule, currentScope(), NULL, - NULL, sectionFlags, currentIsStatic, currentIsSignal, -- currentIsSlot, currentOverIsVirt, (yyvsp[(2) - (17)].text), &(yyvsp[(4) - (17)].signature), (yyvsp[(6) - (17)].number), (yyvsp[(9) - (17)].number), -- &(yyvsp[(10) - (17)].optflags), (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(8) - (17)].throwlist), (yyvsp[(11) - (17)].optsignature), (yyvsp[(13) - (17)].docstr), (yyvsp[(7) - (17)].number), (yyvsp[(14) - (17)].codeb)); -+ currentIsSlot, currentOverIsVirt, (yyvsp[-15].text), &(yyvsp[-13].signature), (yyvsp[-11].number), (yyvsp[-8].number), -+ &(yyvsp[-7].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-9].throwlist), (yyvsp[-6].optsignature), (yyvsp[-4].docstr), (yyvsp[-10].number), (yyvsp[-3].codeb)); - } - - currentIsStatic = FALSE; -@@ -6930,10 +6917,11 @@ - currentIsSlot = FALSE; - currentOverIsVirt = FALSE; - } -+#line 6921 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 458: --#line 3724 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* - * It looks like an assignment operator (though we don't bother to -@@ -6954,10 +6942,11 @@ - currentIsSlot = FALSE; - currentOverIsVirt = FALSE; - } -+#line 6946 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 459: --#line 3744 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3744 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -6978,23 +6967,23 @@ - ns_scope = NULL; - } - -- applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(11) - (17)].optflags)); -+ applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-6].optflags)); - - /* Handle the unary '+' and '-' operators. */ -- if ((cd != NULL && (yyvsp[(5) - (17)].signature).nrArgs == 0) || (cd == NULL && (yyvsp[(5) - (17)].signature).nrArgs == 1)) -+ if ((cd != NULL && (yyvsp[-12].signature).nrArgs == 0) || (cd == NULL && (yyvsp[-12].signature).nrArgs == 1)) - { -- if (strcmp((yyvsp[(3) - (17)].text), "__add__") == 0) -- (yyvsp[(3) - (17)].text) = "__pos__"; -- else if (strcmp((yyvsp[(3) - (17)].text), "__sub__") == 0) -- (yyvsp[(3) - (17)].text) = "__neg__"; -+ if (strcmp((yyvsp[-14].text), "__add__") == 0) -+ (yyvsp[-14].text) = "__pos__"; -+ else if (strcmp((yyvsp[-14].text), "__sub__") == 0) -+ (yyvsp[-14].text) = "__neg__"; - } - -- (yyvsp[(5) - (17)].signature).result = (yyvsp[(1) - (17)].memArg); -+ (yyvsp[-12].signature).result = (yyvsp[-16].memArg); - - newFunction(currentSpec, currentModule, cd, ns_scope, NULL, - sectionFlags, currentIsStatic, currentIsSignal, -- currentIsSlot, currentOverIsVirt, (yyvsp[(3) - (17)].text), &(yyvsp[(5) - (17)].signature), (yyvsp[(7) - (17)].number), (yyvsp[(10) - (17)].number), -- &(yyvsp[(11) - (17)].optflags), (yyvsp[(15) - (17)].codeb), (yyvsp[(16) - (17)].codeb), (yyvsp[(17) - (17)].codeb), (yyvsp[(9) - (17)].throwlist), (yyvsp[(12) - (17)].optsignature), NULL, (yyvsp[(8) - (17)].number), (yyvsp[(14) - (17)].codeb)); -+ currentIsSlot, currentOverIsVirt, (yyvsp[-14].text), &(yyvsp[-12].signature), (yyvsp[-10].number), (yyvsp[-7].number), -+ &(yyvsp[-6].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb)); - } - - currentIsStatic = FALSE; -@@ -7002,22 +6991,23 @@ - currentIsSlot = FALSE; - currentOverIsVirt = FALSE; - } -+#line 6995 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 460: --#line 3788 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3788 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - char *sname; - classDef *scope = currentScope(); - -- if (scope == NULL || (yyvsp[(4) - (16)].signature).nrArgs != 0) -+ if (scope == NULL || (yyvsp[-12].signature).nrArgs != 0) - yyerror("Operator casts must be specified in a class and have no arguments"); - -- applyTypeFlags(currentModule, &(yyvsp[(2) - (16)].memArg), &(yyvsp[(10) - (16)].optflags)); -+ applyTypeFlags(currentModule, &(yyvsp[-14].memArg), &(yyvsp[-6].optflags)); - -- switch ((yyvsp[(2) - (16)].memArg).atype) -+ switch ((yyvsp[-14].memArg).atype) - { - case defined_type: - sname = NULL; -@@ -7056,12 +7046,12 @@ - - if (sname != NULL) - { -- (yyvsp[(4) - (16)].signature).result = (yyvsp[(2) - (16)].memArg); -+ (yyvsp[-12].signature).result = (yyvsp[-14].memArg); - - newFunction(currentSpec, currentModule, scope, NULL, NULL, - sectionFlags, currentIsStatic, currentIsSignal, -- currentIsSlot, currentOverIsVirt, sname, &(yyvsp[(4) - (16)].signature), (yyvsp[(6) - (16)].number), -- (yyvsp[(9) - (16)].number), &(yyvsp[(10) - (16)].optflags), (yyvsp[(14) - (16)].codeb), (yyvsp[(15) - (16)].codeb), (yyvsp[(16) - (16)].codeb), (yyvsp[(8) - (16)].throwlist), (yyvsp[(11) - (16)].optsignature), NULL, (yyvsp[(7) - (16)].number), (yyvsp[(13) - (16)].codeb)); -+ currentIsSlot, currentOverIsVirt, sname, &(yyvsp[-12].signature), (yyvsp[-10].number), -+ (yyvsp[-7].number), &(yyvsp[-6].optflags), (yyvsp[-2].codeb), (yyvsp[-1].codeb), (yyvsp[0].codeb), (yyvsp[-8].throwlist), (yyvsp[-5].optsignature), NULL, (yyvsp[-9].number), (yyvsp[-3].codeb)); - } - else - { -@@ -7069,11 +7059,11 @@ - - /* Check it doesn't already exist. */ - for (al = scope->casts; al != NULL; al = al->next) -- if (compareScopedNames((yyvsp[(2) - (16)].memArg).u.snd, al->arg.u.snd) == 0) -+ if (compareScopedNames((yyvsp[-14].memArg).u.snd, al->arg.u.snd) == 0) - yyerror("This operator cast has already been specified in this class"); - - al = sipMalloc(sizeof (argList)); -- al->arg = (yyvsp[(2) - (16)].memArg); -+ al->arg = (yyvsp[-14].memArg); - al->next = scope->casts; - - scope->casts = al; -@@ -7085,260 +7075,303 @@ - currentIsSlot = FALSE; - currentOverIsVirt = FALSE; - } -+#line 7079 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 461: --#line 3869 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3869 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__add__";} -+#line 7085 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 462: --#line 3870 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__sub__";} -+#line 7091 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 463: --#line 3871 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3871 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__mul__";} -+#line 7097 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 464: --#line 3872 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3872 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__div__";} -+#line 7103 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 465: --#line 3873 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3873 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__mod__";} -+#line 7109 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 466: --#line 3874 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3874 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__and__";} -+#line 7115 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 467: --#line 3875 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__or__";} -+#line 7121 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 468: --#line 3876 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__xor__";} -+#line 7127 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 469: --#line 3877 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3877 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__lshift__";} -+#line 7133 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 470: --#line 3878 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3878 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__rshift__";} -+#line 7139 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 471: --#line 3879 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3879 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__iadd__";} -+#line 7145 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 472: --#line 3880 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3880 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__isub__";} -+#line 7151 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 473: --#line 3881 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3881 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__imul__";} -+#line 7157 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 474: --#line 3882 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3882 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__idiv__";} -+#line 7163 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 475: --#line 3883 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3883 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__imod__";} -+#line 7169 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 476: --#line 3884 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__iand__";} -+#line 7175 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 477: --#line 3885 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3885 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__ior__";} -+#line 7181 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 478: --#line 3886 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__ixor__";} -+#line 7187 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 479: --#line 3887 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3887 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__ilshift__";} -+#line 7193 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 480: --#line 3888 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3888 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__irshift__";} -+#line 7199 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 481: --#line 3889 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__invert__";} -+#line 7205 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 482: --#line 3890 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__call__";} -+#line 7211 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 483: --#line 3891 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3891 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__getitem__";} -+#line 7217 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 484: --#line 3892 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__lt__";} -+#line 7223 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 485: --#line 3893 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3893 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__le__";} -+#line 7229 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 486: --#line 3894 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__eq__";} -+#line 7235 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 487: --#line 3895 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3895 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__ne__";} -+#line 7241 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 488: --#line 3896 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3896 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__gt__";} -+#line 7247 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 489: --#line 3897 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3897 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {(yyval.text) = "__ge__";} -+#line 7253 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 490: --#line 3900 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3900 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = FALSE; - } -+#line 7261 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 491: --#line 3903 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3903 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = TRUE; - } -+#line 7269 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 492: --#line 3908 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3908 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = FALSE; - } -+#line 7277 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 493: --#line 3911 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3911 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = TRUE; - } -+#line 7285 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 494: --#line 3916 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3916 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = 0; - } -+#line 7293 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 495: --#line 3919 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3919 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- if ((yyvsp[(2) - (2)].number) != 0) -+ if ((yyvsp[0].number) != 0) - yyerror("Abstract virtual function '= 0' expected"); - - (yyval.number) = TRUE; - } -+#line 7304 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 496: --#line 3927 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.optflags).nrFlags = 0; - } -+#line 7312 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 497: --#line 3930 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3930 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.optflags) = (yyvsp[(2) - (3)].optflags); -+ (yyval.optflags) = (yyvsp[-1].optflags); - } -+#line 7320 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 498: --#line 3936 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3936 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.optflags).flags[0] = (yyvsp[(1) - (1)].flag); -+ (yyval.optflags).flags[0] = (yyvsp[0].flag); - (yyval.optflags).nrFlags = 1; - } -+#line 7329 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 499: --#line 3940 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Check there is room. */ - -- if ((yyvsp[(1) - (3)].optflags).nrFlags == MAX_NR_FLAGS) -+ if ((yyvsp[-2].optflags).nrFlags == MAX_NR_FLAGS) - yyerror("Too many optional flags"); - -- (yyval.optflags) = (yyvsp[(1) - (3)].optflags); -+ (yyval.optflags) = (yyvsp[-2].optflags); - -- (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[(3) - (3)].flag); -+ (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[0].flag); - } -+#line 7344 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 500: --#line 3952 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3952 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.flag).ftype = bool_flag; -- (yyval.flag).fname = (yyvsp[(1) - (1)].text); -+ (yyval.flag).fname = (yyvsp[0].text); - } -+#line 7353 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 501: --#line 3956 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3956 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.flag) = (yyvsp[(3) - (3)].flag); -- (yyval.flag).fname = (yyvsp[(1) - (3)].text); -+ (yyval.flag) = (yyvsp[0].flag); -+ (yyval.flag).fname = (yyvsp[-2].text); - } -+#line 7362 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 502: --#line 3962 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3962 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.flag).ftype = (strchr((yyvsp[(1) - (1)].text), '.') != NULL) ? dotted_name_flag : name_flag; -- (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text); -+ (yyval.flag).ftype = (strchr((yyvsp[0].text), '.') != NULL) ? dotted_name_flag : name_flag; -+ (yyval.flag).fvalue.sval = (yyvsp[0].text); - } -+#line 7371 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 503: --#line 3966 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3966 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - apiVersionRangeDef *avd; - int from, to; -@@ -7346,106 +7379,117 @@ - (yyval.flag).ftype = api_range_flag; - - /* Check that the API is known. */ -- if ((avd = findAPI(currentSpec, (yyvsp[(1) - (5)].text))) == NULL) -+ if ((avd = findAPI(currentSpec, (yyvsp[-4].text))) == NULL) - yyerror("unknown API name in API annotation"); - - if (inMainModule()) - setIsUsedName(avd->api_name); - - /* Unbounded values are represented by 0. */ -- if ((from = (yyvsp[(3) - (5)].number)) < 0) -+ if ((from = (yyvsp[-2].number)) < 0) - from = 0; - -- if ((to = (yyvsp[(5) - (5)].number)) < 0) -+ if ((to = (yyvsp[0].number)) < 0) - to = 0; - - (yyval.flag).fvalue.aval = convertAPIRange(currentModule, avd->api_name, - from, to); - } -+#line 7399 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 504: --#line 3989 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3989 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.flag).ftype = string_flag; -- (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[(1) - (1)].text)); -+ (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[0].text)); - } -+#line 7408 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 505: --#line 3993 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.flag).ftype = integer_flag; -- (yyval.flag).fvalue.ival = (yyvsp[(1) - (1)].number); -+ (yyval.flag).fvalue.ival = (yyvsp[0].number); - } -+#line 7417 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 506: --#line 3999 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 3999 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 7425 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 507: --#line 4002 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4002 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 7433 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 508: --#line 4007 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4007 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 7441 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 509: --#line 4010 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 7449 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 510: --#line 4015 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4015 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 7457 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 511: --#line 4018 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4018 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 7465 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 512: --#line 4023 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4023 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.codeb) = NULL; - } -+#line 7473 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 513: --#line 4026 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4026 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.codeb) = (yyvsp[(2) - (2)].codeb); -+ (yyval.codeb) = (yyvsp[0].codeb); - } -+#line 7481 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 514: --#line 4031 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4031 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - int a, nrrxcon, nrrxdis, nrslotcon, nrslotdis, nrarray, nrarraysize; - - nrrxcon = nrrxdis = nrslotcon = nrslotdis = nrarray = nrarraysize = 0; - -- for (a = 0; a < (yyvsp[(1) - (1)].signature).nrArgs; ++a) -+ for (a = 0; a < (yyvsp[0].signature).nrArgs; ++a) - { -- argDef *ad = &(yyvsp[(1) - (1)].signature).args[a]; -+ argDef *ad = &(yyvsp[0].signature).args[a]; - - switch (ad -> atype) - { -@@ -7486,104 +7530,111 @@ - if (nrarray != nrarraysize || nrarray > 1) - yyerror("/Array/ and /ArraySize/ must both be given and at most once"); - -- (yyval.signature) = (yyvsp[(1) - (1)].signature); -+ (yyval.signature) = (yyvsp[0].signature); - } -+#line 7536 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 515: --#line 4083 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4083 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* No arguments. */ - - (yyval.signature).nrArgs = 0; - } -+#line 7546 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 516: --#line 4088 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* The single or first argument. */ - -- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg); -+ (yyval.signature).args[0] = (yyvsp[0].memArg); - (yyval.signature).nrArgs = 1; - } -+#line 7557 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 517: --#line 4094 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Check that it wasn't ...(,arg...). */ -- if ((yyvsp[(1) - (3)].signature).nrArgs == 0) -+ if ((yyvsp[-2].signature).nrArgs == 0) - yyerror("First argument of the list is missing"); - - /* - * If this argument has no default value, then the - * previous one mustn't either. - */ -- if ((yyvsp[(3) - (3)].memArg).defval == NULL && (yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].defval != NULL) -+ if ((yyvsp[0].memArg).defval == NULL && (yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].defval != NULL) - yyerror("Compulsory argument given after optional argument"); - - /* Check there is room. */ -- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) -+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) - yyerror("Internal error - increase the value of MAX_NR_ARGS"); - -- (yyval.signature) = (yyvsp[(1) - (3)].signature); -+ (yyval.signature) = (yyvsp[-2].signature); - -- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg); -+ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg); - (yyval.signature).nrArgs++; - } -+#line 7583 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 518: --#line 4117 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4117 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_SIGNAL is deprecated\n"); -- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SIGNAL has no annotations"); -+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SIGNAL has no annotations"); - - (yyval.memArg).atype = signal_type; - (yyval.memArg).argflags = ARG_IS_CONST; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); -- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); -+ (yyval.memArg).defval = (yyvsp[0].valp); - - currentSpec -> sigslots = TRUE; - } -+#line 7600 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 519: --#line 4129 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_SLOT is deprecated\n"); -- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SLOT has no annotations"); -+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SLOT has no annotations"); - - (yyval.memArg).atype = slot_type; - (yyval.memArg).argflags = ARG_IS_CONST; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); -- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); -+ (yyval.memArg).defval = (yyvsp[0].valp); - - currentSpec -> sigslots = TRUE; - } -+#line 7617 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 520: --#line 4141 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4141 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_ANYSLOT is deprecated\n"); -- checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_ANYSLOT has no annotations"); -+ checkNoAnnos(&(yyvsp[-1].optflags), "SIP_ANYSLOT has no annotations"); - - (yyval.memArg).atype = anyslot_type; - (yyval.memArg).argflags = ARG_IS_CONST; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); -- (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); -+ (yyval.memArg).defval = (yyvsp[0].valp); - - currentSpec -> sigslots = TRUE; - } -+#line 7634 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 521: --#line 4153 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4153 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - const char *annos[] = { - "SingleShot", -@@ -7591,120 +7642,130 @@ - }; - - deprecated("SIP_RXOBJ_CON is deprecated\n"); -- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - - (yyval.memArg).atype = rxcon_type; - (yyval.memArg).argflags = 0; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "SingleShot", bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags), "SingleShot", bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_SINGLE_SHOT; - - currentSpec -> sigslots = TRUE; - } -+#line 7658 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 522: --#line 4172 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4172 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_RXOBJ_DIS is deprecated\n"); -- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_RXOBJ_DIS has no annotations"); -+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_RXOBJ_DIS has no annotations"); - - (yyval.memArg).atype = rxdis_type; - (yyval.memArg).argflags = 0; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - - currentSpec -> sigslots = TRUE; - } -+#line 7674 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 523: --#line 4183 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4183 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_SLOT_CON is deprecated\n"); -- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_CON has no annotations"); -+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_CON has no annotations"); - - (yyval.memArg).atype = slotcon_type; - (yyval.memArg).argflags = ARG_IS_CONST; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text)); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - -- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef)); -- (yyvsp[(3) - (6)].signature).result.atype = void_type; -+ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef)); -+ (yyvsp[-3].signature).result.atype = void_type; - - (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef)); -- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature); -+ *(yyval.memArg).u.sa = (yyvsp[-3].signature); - - currentSpec -> sigslots = TRUE; - } -+#line 7696 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 524: --#line 4200 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4200 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_SLOT_DIS is deprecated\n"); -- checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_DIS has no annotations"); -+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_DIS has no annotations"); - - (yyval.memArg).atype = slotdis_type; - (yyval.memArg).argflags = ARG_IS_CONST; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text)); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - -- memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef)); -- (yyvsp[(3) - (6)].signature).result.atype = void_type; -+ memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef)); -+ (yyvsp[-3].signature).result.atype = void_type; - - (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef)); -- *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature); -+ *(yyval.memArg).u.sa = (yyvsp[-3].signature); - - currentSpec -> sigslots = TRUE; - } -+#line 7718 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 525: --#line 4217 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4217 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - deprecated("SIP_QOBJECT is deprecated\n"); -- checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_QOBJECT has no annotations"); -+ checkNoAnnos(&(yyvsp[0].optflags), "SIP_QOBJECT has no annotations"); - - (yyval.memArg).atype = qobject_type; - (yyval.memArg).argflags = 0; - (yyval.memArg).nrderefs = 0; -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - } -+#line 7732 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 526: --#line 4226 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4226 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.memArg) = (yyvsp[(1) - (2)].memArg); -- (yyval.memArg).defval = (yyvsp[(2) - (2)].valp); -+ (yyval.memArg) = (yyvsp[-1].memArg); -+ (yyval.memArg).defval = (yyvsp[0].valp); - } -+#line 7741 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 527: --#line 4233 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4233 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentIsSignal = TRUE;} -+#line 7747 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 529: --#line 4234 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4234 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentIsSlot = TRUE;} -+#line 7753 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 532: --#line 4239 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4239 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentIsStatic = TRUE;} -+#line 7759 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 537: --#line 4249 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - {currentOverIsVirt = TRUE;} -+#line 7765 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 540: --#line 4253 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4253 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { -@@ -7719,99 +7780,105 @@ - NULL - }; - -- checkAnnos(&(yyvsp[(3) - (8)].optflags), annos); -+ checkAnnos(&(yyvsp[-5].optflags), annos); - -- if ((yyvsp[(6) - (8)].codeb) != NULL) -+ if ((yyvsp[-2].codeb) != NULL) - { -- if ((yyvsp[(4) - (8)].variable).access_code != NULL) -+ if ((yyvsp[-4].variable).access_code != NULL) - yyerror("%AccessCode already defined"); - -- (yyvsp[(4) - (8)].variable).access_code = (yyvsp[(6) - (8)].codeb); -+ (yyvsp[-4].variable).access_code = (yyvsp[-2].codeb); - - deprecated("%AccessCode should be used as a sub-directive"); - } - -- if ((yyvsp[(7) - (8)].codeb) != NULL) -+ if ((yyvsp[-1].codeb) != NULL) - { -- if ((yyvsp[(4) - (8)].variable).get_code != NULL) -+ if ((yyvsp[-4].variable).get_code != NULL) - yyerror("%GetCode already defined"); - -- (yyvsp[(4) - (8)].variable).get_code = (yyvsp[(7) - (8)].codeb); -+ (yyvsp[-4].variable).get_code = (yyvsp[-1].codeb); - - deprecated("%GetCode should be used as a sub-directive"); - } - -- if ((yyvsp[(8) - (8)].codeb) != NULL) -+ if ((yyvsp[0].codeb) != NULL) - { -- if ((yyvsp[(4) - (8)].variable).set_code != NULL) -+ if ((yyvsp[-4].variable).set_code != NULL) - yyerror("%SetCode already defined"); - -- (yyvsp[(4) - (8)].variable).set_code = (yyvsp[(8) - (8)].codeb); -+ (yyvsp[-4].variable).set_code = (yyvsp[0].codeb); - - deprecated("%SetCode should be used as a sub-directive"); - } - -- newVar(currentSpec, currentModule, (yyvsp[(2) - (8)].text), currentIsStatic, &(yyvsp[(1) - (8)].memArg), -- &(yyvsp[(3) - (8)].optflags), (yyvsp[(4) - (8)].variable).access_code, (yyvsp[(4) - (8)].variable).get_code, (yyvsp[(4) - (8)].variable).set_code, -+ newVar(currentSpec, currentModule, (yyvsp[-6].text), currentIsStatic, &(yyvsp[-7].memArg), -+ &(yyvsp[-5].optflags), (yyvsp[-4].variable).access_code, (yyvsp[-4].variable).get_code, (yyvsp[-4].variable).set_code, - sectionFlags); - } - - currentIsStatic = FALSE; - } -+#line 7823 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 541: --#line 4308 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4308 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.variable).token = 0; - (yyval.variable).access_code = NULL; - (yyval.variable).get_code = NULL; - (yyval.variable).set_code = NULL; - } -+#line 7834 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 542: --#line 4314 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4314 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.variable) = (yyvsp[(2) - (3)].variable); -+ (yyval.variable) = (yyvsp[-1].variable); - } -+#line 7842 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 544: --#line 4320 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.variable) = (yyvsp[(1) - (2)].variable); -+ (yyval.variable) = (yyvsp[-1].variable); - -- switch ((yyvsp[(2) - (2)].variable).token) -+ switch ((yyvsp[0].variable).token) - { -- case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[(2) - (2)].variable).access_code; break; -- case TK_GETCODE: (yyval.variable).get_code = (yyvsp[(2) - (2)].variable).get_code; break; -- case TK_SETCODE: (yyval.variable).set_code = (yyvsp[(2) - (2)].variable).set_code; break; -+ case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[0].variable).access_code; break; -+ case TK_GETCODE: (yyval.variable).get_code = (yyvsp[0].variable).get_code; break; -+ case TK_SETCODE: (yyval.variable).set_code = (yyvsp[0].variable).set_code; break; - } - } -+#line 7857 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 545: --#line 4332 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4332 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.variable).token = TK_IF; - } -+#line 7865 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 546: --#line 4335 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.variable).token = TK_END; - } -+#line 7873 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 547: --#line 4338 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4338 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.variable).token = TK_ACCESSCODE; -- (yyval.variable).access_code = (yyvsp[(2) - (2)].codeb); -+ (yyval.variable).access_code = (yyvsp[0].codeb); - } - else - { -@@ -7822,15 +7889,16 @@ - (yyval.variable).get_code = NULL; - (yyval.variable).set_code = NULL; - } -+#line 7893 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 548: --#line 4353 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4353 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.variable).token = TK_GETCODE; -- (yyval.variable).get_code = (yyvsp[(2) - (2)].codeb); -+ (yyval.variable).get_code = (yyvsp[0].codeb); - } - else - { -@@ -7841,15 +7909,16 @@ - (yyval.variable).access_code = NULL; - (yyval.variable).set_code = NULL; - } -+#line 7913 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 549: --#line 4368 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4368 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (notSkipping()) - { - (yyval.variable).token = TK_SETCODE; -- (yyval.variable).set_code = (yyvsp[(2) - (2)].codeb); -+ (yyval.variable).set_code = (yyvsp[0].codeb); - } - else - { -@@ -7860,35 +7929,38 @@ - (yyval.variable).access_code = NULL; - (yyval.variable).get_code = NULL; - } -+#line 7933 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 550: --#line 4385 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4385 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.memArg) = (yyvsp[(2) - (4)].memArg); -- add_derefs(&(yyval.memArg), &(yyvsp[(3) - (4)].memArg)); -- (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[(4) - (4)].number); -+ (yyval.memArg) = (yyvsp[-2].memArg); -+ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg)); -+ (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[0].number); - } -+#line 7943 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 551: --#line 4390 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4390 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- (yyval.memArg) = (yyvsp[(1) - (3)].memArg); -- add_derefs(&(yyval.memArg), &(yyvsp[(2) - (3)].memArg)); -- (yyval.memArg).argflags |= (yyvsp[(3) - (3)].number); -+ (yyval.memArg) = (yyvsp[-2].memArg); -+ add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg)); -+ (yyval.memArg).argflags |= (yyvsp[0].number); - - /* PyObject * is a synonym for SIP_PYOBJECT. */ -- if ((yyvsp[(1) - (3)].memArg).atype == defined_type && strcmp((yyvsp[(1) - (3)].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[(1) - (3)].memArg).u.snd->next == NULL && (yyvsp[(2) - (3)].memArg).nrderefs == 1 && (yyvsp[(3) - (3)].number) == 0) -+ if ((yyvsp[-2].memArg).atype == defined_type && strcmp((yyvsp[-2].memArg).u.snd->name, "PyObject") == 0 && (yyvsp[-2].memArg).u.snd->next == NULL && (yyvsp[-1].memArg).nrderefs == 1 && (yyvsp[0].number) == 0) - { - (yyval.memArg).atype = pyobject_type; - (yyval.memArg).nrderefs = 0; - } - } -+#line 7960 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 552: --#line 4404 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - const char *annos[] = { - "AllowNone", -@@ -7919,54 +7991,54 @@ - - optFlag *of; - -- checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); -+ checkAnnos(&(yyvsp[0].optflags), annos); - -- (yyval.memArg) = (yyvsp[(1) - (3)].memArg); -- (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); -+ (yyval.memArg) = (yyvsp[-2].memArg); -+ (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); - -- handleKeepReference(&(yyvsp[(3) - (3)].optflags), &(yyval.memArg), currentModule); -+ handleKeepReference(&(yyvsp[0].optflags), &(yyval.memArg), currentModule); - -- if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "ScopesStripped", opt_integer_flag)) != NULL) -+ if ((of = getOptFlag(&(yyvsp[0].optflags), "ScopesStripped", opt_integer_flag)) != NULL) - if (((yyval.memArg).scopes_stripped = of->fvalue.ival) <= 0) - yyerror("/ScopesStripped/ must be greater than 0"); - -- if (getAllowNone(&(yyvsp[(3) - (3)].optflags))) -+ if (getAllowNone(&(yyvsp[0].optflags))) - (yyval.memArg).argflags |= ARG_ALLOW_NONE; - -- if (getDisallowNone(&(yyvsp[(3) - (3)].optflags))) -+ if (getDisallowNone(&(yyvsp[0].optflags))) - (yyval.memArg).argflags |= ARG_DISALLOW_NONE; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"GetWrapper",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"GetWrapper",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_GET_WRAPPER; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Array",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"Array",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_ARRAY; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"ArraySize",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"ArraySize",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_ARRAY_SIZE; - -- if (getTransfer(&(yyvsp[(3) - (3)].optflags))) -+ if (getTransfer(&(yyvsp[0].optflags))) - (yyval.memArg).argflags |= ARG_XFERRED; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferThis",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"TransferThis",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_THIS_XFERRED; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferBack",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"TransferBack",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_XFERRED_BACK; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"In",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"In",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_IN; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Out",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"Out",bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_OUT; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "ResultSize", bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags), "ResultSize", bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_RESULT_SIZE; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "NoCopy", bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags), "NoCopy", bool_flag) != NULL) - (yyval.memArg).argflags |= ARG_NO_COPY; - -- if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Constrained",bool_flag) != NULL) -+ if (getOptFlag(&(yyvsp[0].optflags),"Constrained",bool_flag) != NULL) - { - (yyval.memArg).argflags |= ARG_CONSTRAINED; - -@@ -7994,78 +8066,86 @@ - } - } - -- applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[(3) - (3)].optflags)); -- (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[(3) - (3)].optflags)); -+ applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[0].optflags)); -+ (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[0].optflags)); - } -+#line 8073 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 553: --#line 4514 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4514 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.number) = 0; - } -+#line 8081 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 554: --#line 4517 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4517 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec -> genc) - yyerror("References not allowed in a C module"); - - (yyval.number) = ARG_IS_REF; - } -+#line 8092 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 555: --#line 4525 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4525 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.memArg).nrderefs = 0; - } -+#line 8100 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 556: --#line 4528 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (3)].memArg), TRUE); -+ add_new_deref(&(yyval.memArg), &(yyvsp[-2].memArg), TRUE); - } -+#line 8108 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 557: --#line 4531 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4531 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { -- add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (2)].memArg), FALSE); -+ add_new_deref(&(yyval.memArg), &(yyvsp[-1].memArg), FALSE); - } -+#line 8116 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 558: --#line 4536 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4536 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = defined_type; -- (yyval.memArg).u.snd = (yyvsp[(1) - (1)].scpvalp); -+ (yyval.memArg).u.snd = (yyvsp[0].scpvalp); - - /* Try and resolve typedefs as early as possible. */ - resolveAnyTypedef(currentSpec, &(yyval.memArg)); - } -+#line 8129 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 559: --#line 4544 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - templateDef *td; - - td = sipMalloc(sizeof(templateDef)); -- td->fqname = (yyvsp[(1) - (4)].scpvalp); -- td->types = (yyvsp[(3) - (4)].signature); -+ td->fqname = (yyvsp[-3].scpvalp); -+ td->types = (yyvsp[-1].signature); - - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = template_type; - (yyval.memArg).u.td = td; - } -+#line 8145 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 560: --#line 4555 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - -@@ -8073,321 +8153,366 @@ - if (currentSpec -> genc) - { - (yyval.memArg).atype = defined_type; -- (yyval.memArg).u.snd = (yyvsp[(2) - (2)].scpvalp); -+ (yyval.memArg).u.snd = (yyvsp[0].scpvalp); - } - else - { - (yyval.memArg).atype = struct_type; -- (yyval.memArg).u.sname = (yyvsp[(2) - (2)].scpvalp); -+ (yyval.memArg).u.sname = (yyvsp[0].scpvalp); - } - } -+#line 8165 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 561: --#line 4570 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4570 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ushort_type; - } -+#line 8174 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 562: --#line 4574 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4574 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = short_type; - } -+#line 8183 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 563: --#line 4578 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4578 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = uint_type; - } -+#line 8192 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 564: --#line 4582 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4582 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = uint_type; - } -+#line 8201 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 565: --#line 4586 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4586 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = int_type; - } -+#line 8210 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 566: --#line 4590 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = long_type; - } -+#line 8219 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 567: --#line 4594 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4594 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ulong_type; - } -+#line 8228 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 568: --#line 4598 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4598 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = longlong_type; - } -+#line 8237 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 569: --#line 4602 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4602 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ulonglong_type; - } -+#line 8246 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 570: --#line 4606 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4606 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = float_type; - } -+#line 8255 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 571: --#line 4610 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4610 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = double_type; - } -+#line 8264 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 572: --#line 4614 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = bool_type; - } -+#line 8273 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 573: --#line 4618 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4618 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = sstring_type; - } -+#line 8282 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 574: --#line 4622 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4622 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ustring_type; - } -+#line 8291 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 575: --#line 4626 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4626 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = string_type; - } -+#line 8300 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 576: --#line 4630 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = wstring_type; - } -+#line 8309 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 577: --#line 4634 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4634 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = void_type; - } -+#line 8318 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 578: --#line 4638 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4638 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pyobject_type; - } -+#line 8327 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 579: --#line 4642 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4642 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pytuple_type; - } -+#line 8336 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 580: --#line 4646 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pylist_type; - } -+#line 8345 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 581: --#line 4650 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pydict_type; - } -+#line 8354 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 582: --#line 4654 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4654 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pycallable_type; - } -+#line 8363 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 583: --#line 4658 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4658 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pyslice_type; - } -+#line 8372 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 584: --#line 4662 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4662 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pytype_type; - } -+#line 8381 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 585: --#line 4666 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4666 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = pybuffer_type; - } -+#line 8390 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 586: --#line 4670 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ssize_type; - } -+#line 8399 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 587: --#line 4674 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - memset(&(yyval.memArg), 0, sizeof (argDef)); - (yyval.memArg).atype = ellipsis_type; - } -+#line 8408 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 588: --#line 4680 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* The single or first type. */ - -- (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg); -+ (yyval.signature).args[0] = (yyvsp[0].memArg); - (yyval.signature).nrArgs = 1; - } -+#line 8419 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 589: --#line 4686 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Check there is nothing after an ellipsis. */ -- if ((yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].atype == ellipsis_type) -+ if ((yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].atype == ellipsis_type) - yyerror("An ellipsis must be at the end of the argument list"); - - /* Check there is room. */ -- if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) -+ if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) - yyerror("Internal error - increase the value of MAX_NR_ARGS"); - -- (yyval.signature) = (yyvsp[(1) - (3)].signature); -+ (yyval.signature) = (yyvsp[-2].signature); - -- (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg); -+ (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg); - (yyval.signature).nrArgs++; - } -+#line 8438 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 590: --#line 4702 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4702 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - (yyval.throwlist) = NULL; - } -+#line 8446 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 591: --#line 4705 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4705 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - if (currentSpec->genc) - yyerror("Exceptions not allowed in a C module"); - -- (yyval.throwlist) = (yyvsp[(3) - (4)].throwlist); -+ (yyval.throwlist) = (yyvsp[-1].throwlist); - } -+#line 8457 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 592: --#line 4713 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4713 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Empty list so use a blank. */ - - (yyval.throwlist) = sipMalloc(sizeof (throwArgs)); - (yyval.throwlist) -> nrArgs = 0; - } -+#line 8468 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 593: --#line 4719 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4719 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* The only or first exception. */ - - (yyval.throwlist) = sipMalloc(sizeof (throwArgs)); - (yyval.throwlist) -> nrArgs = 1; -- (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[(1) - (1)].scpvalp), FALSE); -+ (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE); - } -+#line 8480 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - case 594: --#line 4726 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4726 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ - { - /* Check that it wasn't ...(,arg...). */ - -- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == 0) -+ if ((yyvsp[-2].throwlist) -> nrArgs == 0) - yyerror("First exception of throw specifier is missing"); - - /* Check there is room. */ - -- if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == MAX_NR_ARGS) -+ if ((yyvsp[-2].throwlist) -> nrArgs == MAX_NR_ARGS) - yyerror("Internal error - increase the value of MAX_NR_ARGS"); - -- (yyval.throwlist) = (yyvsp[(1) - (3)].throwlist); -- (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[(3) - (3)].scpvalp), FALSE); -+ (yyval.throwlist) = (yyvsp[-2].throwlist); -+ (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE); - } -+#line 8499 "sipgen/parser.c" /* yacc.c:1646 */ - break; - - --/* Line 1267 of yacc.c. */ --#line 8389 "sip-4.19.12/sipgen/parser.c" -+#line 8503 "sipgen/parser.c" /* yacc.c:1646 */ - default: break; - } -+ /* User semantic actions sometimes alter yychar, and that requires -+ that yytoken be updated with the new translation. We take the -+ approach of translating immediately before every use of yytoken. -+ One alternative is translating here after every semantic action, -+ but that translation would be missed if the semantic action invokes -+ YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or -+ if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an -+ incorrect destructor might then be invoked immediately. In the -+ case of YYERROR or YYBACKUP, subsequent parser actions might lead -+ to an incorrect destructor call or verbose syntax error message -+ before the lookahead is translated. */ - YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); - - YYPOPSTACK (yylen); -@@ -8396,8 +8521,7 @@ - - *++yyvsp = yyval; - -- -- /* Now `shift' the result of the reduction. Determine what state -+ /* Now 'shift' the result of the reduction. Determine what state - that goes to, based on the state we popped back to and the rule - number reduced by. */ - -@@ -8412,10 +8536,14 @@ - goto yynewstate; - - --/*------------------------------------. --| yyerrlab -- here on detecting error | --`------------------------------------*/ -+/*--------------------------------------. -+| yyerrlab -- here on detecting error. | -+`--------------------------------------*/ - yyerrlab: -+ /* Make sure we have latest lookahead translation. See comments at -+ user semantic actions for why this is necessary. */ -+ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); -+ - /* If not already recovering from an error, report this error. */ - if (!yyerrstatus) - { -@@ -8423,37 +8551,36 @@ - #if ! YYERROR_VERBOSE - yyerror (YY_("syntax error")); - #else -+# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ -+ yyssp, yytoken) - { -- YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); -- if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) -- { -- YYSIZE_T yyalloc = 2 * yysize; -- if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) -- yyalloc = YYSTACK_ALLOC_MAXIMUM; -- if (yymsg != yymsgbuf) -- YYSTACK_FREE (yymsg); -- yymsg = (char *) YYSTACK_ALLOC (yyalloc); -- if (yymsg) -- yymsg_alloc = yyalloc; -- else -- { -- yymsg = yymsgbuf; -- yymsg_alloc = sizeof yymsgbuf; -- } -- } -- -- if (0 < yysize && yysize <= yymsg_alloc) -- { -- (void) yysyntax_error (yymsg, yystate, yychar); -- yyerror (yymsg); -- } -- else -- { -- yyerror (YY_("syntax error")); -- if (yysize != 0) -- goto yyexhaustedlab; -- } -+ char const *yymsgp = YY_("syntax error"); -+ int yysyntax_error_status; -+ yysyntax_error_status = YYSYNTAX_ERROR; -+ if (yysyntax_error_status == 0) -+ yymsgp = yymsg; -+ else if (yysyntax_error_status == 1) -+ { -+ if (yymsg != yymsgbuf) -+ YYSTACK_FREE (yymsg); -+ yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); -+ if (!yymsg) -+ { -+ yymsg = yymsgbuf; -+ yymsg_alloc = sizeof yymsgbuf; -+ yysyntax_error_status = 2; -+ } -+ else -+ { -+ yysyntax_error_status = YYSYNTAX_ERROR; -+ yymsgp = yymsg; -+ } -+ } -+ yyerror (yymsgp); -+ if (yysyntax_error_status == 2) -+ goto yyexhaustedlab; - } -+# undef YYSYNTAX_ERROR - #endif - } - -@@ -8461,24 +8588,24 @@ - - if (yyerrstatus == 3) - { -- /* If just tried and failed to reuse look-ahead token after an -- error, discard it. */ -+ /* If just tried and failed to reuse lookahead token after an -+ error, discard it. */ - - if (yychar <= YYEOF) -- { -- /* Return failure if at end of input. */ -- if (yychar == YYEOF) -- YYABORT; -- } -+ { -+ /* Return failure if at end of input. */ -+ if (yychar == YYEOF) -+ YYABORT; -+ } - else -- { -- yydestruct ("Error: discarding", -- yytoken, &yylval); -- yychar = YYEMPTY; -- } -+ { -+ yydestruct ("Error: discarding", -+ yytoken, &yylval); -+ yychar = YYEMPTY; -+ } - } - -- /* Else will try to reuse look-ahead token after shifting the error -+ /* Else will try to reuse lookahead token after shifting the error - token. */ - goto yyerrlab1; - -@@ -8494,7 +8621,7 @@ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; - -- /* Do not reclaim the symbols of the rule which action triggered -+ /* Do not reclaim the symbols of the rule whose action triggered - this YYERROR. */ - YYPOPSTACK (yylen); - yylen = 0; -@@ -8507,38 +8634,37 @@ - | yyerrlab1 -- common code for both syntax error and YYERROR. | - `-------------------------------------------------------------*/ - yyerrlab1: -- yyerrstatus = 3; /* Each real token shifted decrements this. */ -+ yyerrstatus = 3; /* Each real token shifted decrements this. */ - - for (;;) - { - yyn = yypact[yystate]; -- if (yyn != YYPACT_NINF) -- { -- yyn += YYTERROR; -- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -- { -- yyn = yytable[yyn]; -- if (0 < yyn) -- break; -- } -- } -+ if (!yypact_value_is_default (yyn)) -+ { -+ yyn += YYTERROR; -+ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) -+ { -+ yyn = yytable[yyn]; -+ if (0 < yyn) -+ break; -+ } -+ } - - /* Pop the current state because it cannot handle the error token. */ - if (yyssp == yyss) -- YYABORT; -+ YYABORT; - - - yydestruct ("Error: popping", -- yystos[yystate], yyvsp); -+ yystos[yystate], yyvsp); - YYPOPSTACK (1); - yystate = *yyssp; - YY_STACK_PRINT (yyss, yyssp); - } - -- if (yyn == YYFINAL) -- YYACCEPT; -- -+ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - *++yyvsp = yylval; -+ YY_IGNORE_MAYBE_UNINITIALIZED_END - - - /* Shift the error token. */ -@@ -8562,7 +8688,7 @@ - yyresult = 1; - goto yyreturn; - --#ifndef yyoverflow -+#if !defined yyoverflow || YYERROR_VERBOSE - /*-------------------------------------------------. - | yyexhaustedlab -- memory exhaustion comes here. | - `-------------------------------------------------*/ -@@ -8573,17 +8699,22 @@ - #endif - - yyreturn: -- if (yychar != YYEOF && yychar != YYEMPTY) -- yydestruct ("Cleanup: discarding lookahead", -- yytoken, &yylval); -- /* Do not reclaim the symbols of the rule which action triggered -+ if (yychar != YYEMPTY) -+ { -+ /* Make sure we have latest lookahead translation. See comments at -+ user semantic actions for why this is necessary. */ -+ yytoken = YYTRANSLATE (yychar); -+ yydestruct ("Cleanup: discarding lookahead", -+ yytoken, &yylval); -+ } -+ /* Do not reclaim the symbols of the rule whose action triggered - this YYABORT or YYACCEPT. */ - YYPOPSTACK (yylen); - YY_STACK_PRINT (yyss, yyssp); - while (yyssp != yyss) - { - yydestruct ("Cleanup: popping", -- yystos[*yyssp], yyvsp); -+ yystos[*yyssp], yyvsp); - YYPOPSTACK (1); - } - #ifndef yyoverflow -@@ -8594,12 +8725,9 @@ - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - #endif -- /* Make sure YYID is used. */ -- return YYID (yyresult); -+ return yyresult; - } -- -- --#line 4742 "sip-4.19.12/sipgen/metasrc/parser.y" -+#line 4742 "sipgen/metasrc/parser.y" /* yacc.c:1906 */ - - - -@@ -13483,4 +13611,3 @@ - if (sd->args[a].atype == ellipsis_type && a < sd->nrArgs - 1) - yyerror("An ellipsis must be at the end of the argument list if /NoArgParser/ is not specified"); - } -- -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.h sip/sipgen/parser.h ---- ./sip-4.19.12.orig/sipgen/parser.h 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sipgen/parser.h 2018-09-18 18:12:23.642053256 -0400 -@@ -1,14 +1,13 @@ --/* A Bison parser, made by GNU Bison 2.3. */ -+/* A Bison parser, made by GNU Bison 3.0.4. */ - --/* Skeleton interface for Bison's Yacc-like parsers in C -+/* Bison interface for Yacc-like parsers in C - -- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 -- Free Software Foundation, Inc. -+ Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. - -- This program is free software; you can redistribute it and/or modify -+ This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 2, or (at your option) -- any later version. -+ the Free Software Foundation, either version 3 of the License, or -+ (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of -@@ -16,9 +15,7 @@ - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 51 Franklin Street, Fifth Floor, -- Boston, MA 02110-1301, USA. */ -+ along with this program. If not, see <http://www.gnu.org/licenses/>. */ - - /* As a special exception, you may create a larger work that contains - part or all of the Bison parser skeleton and distribute that work -@@ -33,162 +30,171 @@ - This special exception was added by the Free Software Foundation in - version 2.2 of Bison. */ - --/* Tokens. */ -+#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED -+# define YY_YY_SIPGEN_PARSER_H_INCLUDED -+/* Debug traces. */ -+#ifndef YYDEBUG -+# define YYDEBUG 0 -+#endif -+#if YYDEBUG -+extern int yydebug; -+#endif -+ -+/* Token type. */ - #ifndef YYTOKENTYPE - # define YYTOKENTYPE -- /* Put the tokens into the symbol table, so that GDB and other debuggers -- know about them. */ -- enum yytokentype { -- TK_API = 258, -- TK_AUTOPYNAME = 259, -- TK_DEFDOCSTRFMT = 260, -- TK_DEFDOCSTRSIG = 261, -- TK_DEFENCODING = 262, -- TK_PLUGIN = 263, -- TK_VIRTERRORHANDLER = 264, -- TK_EXPTYPEHINTCODE = 265, -- TK_TYPEHINTCODE = 266, -- TK_DOCSTRING = 267, -- TK_DOC = 268, -- TK_EXPORTEDDOC = 269, -- TK_EXTRACT = 270, -- TK_MAKEFILE = 271, -- TK_ACCESSCODE = 272, -- TK_GETCODE = 273, -- TK_SETCODE = 274, -- TK_PREINITCODE = 275, -- TK_INITCODE = 276, -- TK_POSTINITCODE = 277, -- TK_FINALCODE = 278, -- TK_UNITCODE = 279, -- TK_UNITPOSTINCLUDECODE = 280, -- TK_MODCODE = 281, -- TK_TYPECODE = 282, -- TK_PREPYCODE = 283, -- TK_COPYING = 284, -- TK_MAPPEDTYPE = 285, -- TK_CODELINE = 286, -- TK_IF = 287, -- TK_END = 288, -- TK_NAME_VALUE = 289, -- TK_PATH_VALUE = 290, -- TK_STRING_VALUE = 291, -- TK_VIRTUALCATCHERCODE = 292, -- TK_TRAVERSECODE = 293, -- TK_CLEARCODE = 294, -- TK_GETBUFFERCODE = 295, -- TK_RELEASEBUFFERCODE = 296, -- TK_READBUFFERCODE = 297, -- TK_WRITEBUFFERCODE = 298, -- TK_SEGCOUNTCODE = 299, -- TK_CHARBUFFERCODE = 300, -- TK_PICKLECODE = 301, -- TK_VIRTUALCALLCODE = 302, -- TK_METHODCODE = 303, -- TK_PREMETHODCODE = 304, -- TK_INSTANCECODE = 305, -- TK_FROMTYPE = 306, -- TK_TOTYPE = 307, -- TK_TOSUBCLASS = 308, -- TK_INCLUDE = 309, -- TK_OPTINCLUDE = 310, -- TK_IMPORT = 311, -- TK_EXPHEADERCODE = 312, -- TK_MODHEADERCODE = 313, -- TK_TYPEHEADERCODE = 314, -- TK_MODULE = 315, -- TK_CMODULE = 316, -- TK_CONSMODULE = 317, -- TK_COMPOMODULE = 318, -- TK_CLASS = 319, -- TK_STRUCT = 320, -- TK_PUBLIC = 321, -- TK_PROTECTED = 322, -- TK_PRIVATE = 323, -- TK_SIGNALS = 324, -- TK_SIGNAL_METHOD = 325, -- TK_SLOTS = 326, -- TK_SLOT_METHOD = 327, -- TK_BOOL = 328, -- TK_SHORT = 329, -- TK_INT = 330, -- TK_LONG = 331, -- TK_FLOAT = 332, -- TK_DOUBLE = 333, -- TK_CHAR = 334, -- TK_WCHAR_T = 335, -- TK_VOID = 336, -- TK_PYOBJECT = 337, -- TK_PYTUPLE = 338, -- TK_PYLIST = 339, -- TK_PYDICT = 340, -- TK_PYCALLABLE = 341, -- TK_PYSLICE = 342, -- TK_PYTYPE = 343, -- TK_PYBUFFER = 344, -- TK_VIRTUAL = 345, -- TK_ENUM = 346, -- TK_SIGNED = 347, -- TK_UNSIGNED = 348, -- TK_SCOPE = 349, -- TK_LOGICAL_OR = 350, -- TK_CONST = 351, -- TK_STATIC = 352, -- TK_SIPSIGNAL = 353, -- TK_SIPSLOT = 354, -- TK_SIPANYSLOT = 355, -- TK_SIPRXCON = 356, -- TK_SIPRXDIS = 357, -- TK_SIPSLOTCON = 358, -- TK_SIPSLOTDIS = 359, -- TK_SIPSSIZET = 360, -- TK_NUMBER_VALUE = 361, -- TK_REAL_VALUE = 362, -- TK_TYPEDEF = 363, -- TK_NAMESPACE = 364, -- TK_TIMELINE = 365, -- TK_PLATFORMS = 366, -- TK_FEATURE = 367, -- TK_LICENSE = 368, -- TK_QCHAR_VALUE = 369, -- TK_TRUE_VALUE = 370, -- TK_FALSE_VALUE = 371, -- TK_NULL_VALUE = 372, -- TK_OPERATOR = 373, -- TK_THROW = 374, -- TK_QOBJECT = 375, -- TK_EXCEPTION = 376, -- TK_RAISECODE = 377, -- TK_VIRTERRORCODE = 378, -- TK_EXPLICIT = 379, -- TK_TEMPLATE = 380, -- TK_FINAL = 381, -- TK_ELLIPSIS = 382, -- TK_DEFMETATYPE = 383, -- TK_DEFSUPERTYPE = 384, -- TK_PROPERTY = 385, -- TK_HIDE_NS = 386, -- TK_FORMAT = 387, -- TK_GET = 388, -- TK_ID = 389, -- TK_KWARGS = 390, -- TK_LANGUAGE = 391, -- TK_LICENSEE = 392, -- TK_NAME = 393, -- TK_OPTIONAL = 394, -- TK_ORDER = 395, -- TK_REMOVELEADING = 396, -- TK_SET = 397, -- TK_SIGNATURE = 398, -- TK_TIMESTAMP = 399, -- TK_TYPE = 400, -- TK_USEARGNAMES = 401, -- TK_USELIMITEDAPI = 402, -- TK_ALLRAISEPYEXC = 403, -- TK_CALLSUPERINIT = 404, -- TK_DEFERRORHANDLER = 405, -- TK_VERSION = 406 -- }; -+ enum yytokentype -+ { -+ TK_API = 258, -+ TK_AUTOPYNAME = 259, -+ TK_DEFDOCSTRFMT = 260, -+ TK_DEFDOCSTRSIG = 261, -+ TK_DEFENCODING = 262, -+ TK_PLUGIN = 263, -+ TK_VIRTERRORHANDLER = 264, -+ TK_EXPTYPEHINTCODE = 265, -+ TK_TYPEHINTCODE = 266, -+ TK_DOCSTRING = 267, -+ TK_DOC = 268, -+ TK_EXPORTEDDOC = 269, -+ TK_EXTRACT = 270, -+ TK_MAKEFILE = 271, -+ TK_ACCESSCODE = 272, -+ TK_GETCODE = 273, -+ TK_SETCODE = 274, -+ TK_PREINITCODE = 275, -+ TK_INITCODE = 276, -+ TK_POSTINITCODE = 277, -+ TK_FINALCODE = 278, -+ TK_UNITCODE = 279, -+ TK_UNITPOSTINCLUDECODE = 280, -+ TK_MODCODE = 281, -+ TK_TYPECODE = 282, -+ TK_PREPYCODE = 283, -+ TK_COPYING = 284, -+ TK_MAPPEDTYPE = 285, -+ TK_CODELINE = 286, -+ TK_IF = 287, -+ TK_END = 288, -+ TK_NAME_VALUE = 289, -+ TK_PATH_VALUE = 290, -+ TK_STRING_VALUE = 291, -+ TK_VIRTUALCATCHERCODE = 292, -+ TK_TRAVERSECODE = 293, -+ TK_CLEARCODE = 294, -+ TK_GETBUFFERCODE = 295, -+ TK_RELEASEBUFFERCODE = 296, -+ TK_READBUFFERCODE = 297, -+ TK_WRITEBUFFERCODE = 298, -+ TK_SEGCOUNTCODE = 299, -+ TK_CHARBUFFERCODE = 300, -+ TK_PICKLECODE = 301, -+ TK_VIRTUALCALLCODE = 302, -+ TK_METHODCODE = 303, -+ TK_PREMETHODCODE = 304, -+ TK_INSTANCECODE = 305, -+ TK_FROMTYPE = 306, -+ TK_TOTYPE = 307, -+ TK_TOSUBCLASS = 308, -+ TK_INCLUDE = 309, -+ TK_OPTINCLUDE = 310, -+ TK_IMPORT = 311, -+ TK_EXPHEADERCODE = 312, -+ TK_MODHEADERCODE = 313, -+ TK_TYPEHEADERCODE = 314, -+ TK_MODULE = 315, -+ TK_CMODULE = 316, -+ TK_CONSMODULE = 317, -+ TK_COMPOMODULE = 318, -+ TK_CLASS = 319, -+ TK_STRUCT = 320, -+ TK_PUBLIC = 321, -+ TK_PROTECTED = 322, -+ TK_PRIVATE = 323, -+ TK_SIGNALS = 324, -+ TK_SIGNAL_METHOD = 325, -+ TK_SLOTS = 326, -+ TK_SLOT_METHOD = 327, -+ TK_BOOL = 328, -+ TK_SHORT = 329, -+ TK_INT = 330, -+ TK_LONG = 331, -+ TK_FLOAT = 332, -+ TK_DOUBLE = 333, -+ TK_CHAR = 334, -+ TK_WCHAR_T = 335, -+ TK_VOID = 336, -+ TK_PYOBJECT = 337, -+ TK_PYTUPLE = 338, -+ TK_PYLIST = 339, -+ TK_PYDICT = 340, -+ TK_PYCALLABLE = 341, -+ TK_PYSLICE = 342, -+ TK_PYTYPE = 343, -+ TK_PYBUFFER = 344, -+ TK_VIRTUAL = 345, -+ TK_ENUM = 346, -+ TK_SIGNED = 347, -+ TK_UNSIGNED = 348, -+ TK_SCOPE = 349, -+ TK_LOGICAL_OR = 350, -+ TK_CONST = 351, -+ TK_STATIC = 352, -+ TK_SIPSIGNAL = 353, -+ TK_SIPSLOT = 354, -+ TK_SIPANYSLOT = 355, -+ TK_SIPRXCON = 356, -+ TK_SIPRXDIS = 357, -+ TK_SIPSLOTCON = 358, -+ TK_SIPSLOTDIS = 359, -+ TK_SIPSSIZET = 360, -+ TK_NUMBER_VALUE = 361, -+ TK_REAL_VALUE = 362, -+ TK_TYPEDEF = 363, -+ TK_NAMESPACE = 364, -+ TK_TIMELINE = 365, -+ TK_PLATFORMS = 366, -+ TK_FEATURE = 367, -+ TK_LICENSE = 368, -+ TK_QCHAR_VALUE = 369, -+ TK_TRUE_VALUE = 370, -+ TK_FALSE_VALUE = 371, -+ TK_NULL_VALUE = 372, -+ TK_OPERATOR = 373, -+ TK_THROW = 374, -+ TK_QOBJECT = 375, -+ TK_EXCEPTION = 376, -+ TK_RAISECODE = 377, -+ TK_VIRTERRORCODE = 378, -+ TK_EXPLICIT = 379, -+ TK_TEMPLATE = 380, -+ TK_FINAL = 381, -+ TK_ELLIPSIS = 382, -+ TK_DEFMETATYPE = 383, -+ TK_DEFSUPERTYPE = 384, -+ TK_PROPERTY = 385, -+ TK_HIDE_NS = 386, -+ TK_FORMAT = 387, -+ TK_GET = 388, -+ TK_ID = 389, -+ TK_KWARGS = 390, -+ TK_LANGUAGE = 391, -+ TK_LICENSEE = 392, -+ TK_NAME = 393, -+ TK_OPTIONAL = 394, -+ TK_ORDER = 395, -+ TK_REMOVELEADING = 396, -+ TK_SET = 397, -+ TK_SIGNATURE = 398, -+ TK_TIMESTAMP = 399, -+ TK_TYPE = 400, -+ TK_USEARGNAMES = 401, -+ TK_USELIMITEDAPI = 402, -+ TK_ALLRAISEPYEXC = 403, -+ TK_CALLSUPERINIT = 404, -+ TK_DEFERRORHANDLER = 405, -+ TK_VERSION = 406 -+ }; - #endif - /* Tokens. */ - #define TK_API 258 -@@ -341,13 +347,13 @@ - #define TK_DEFERRORHANDLER 405 - #define TK_VERSION 406 - -- -- -- -+/* Value type. */ - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED --typedef union YYSTYPE --#line 203 "sip-4.19.12/sipgen/metasrc/parser.y" -+ -+union YYSTYPE - { -+#line 203 "sipgen/metasrc/parser.y" /* yacc.c:1909 */ -+ - char qchar; - char *text; - long number; -@@ -390,14 +396,18 @@ - variableCfg variable; - vehCfg veh; - int token; --} --/* Line 1529 of yacc.c. */ --#line 396 "sip-4.19.12/sipgen/parser.h" -- YYSTYPE; --# define yystype YYSTYPE /* obsolescent; will be withdrawn */ --# define YYSTYPE_IS_DECLARED 1 -+ -+#line 401 "sipgen/parser.h" /* yacc.c:1909 */ -+}; -+ -+typedef union YYSTYPE YYSTYPE; - # define YYSTYPE_IS_TRIVIAL 1 -+# define YYSTYPE_IS_DECLARED 1 - #endif - -+ - extern YYSTYPE yylval; - -+int yyparse (void); -+ -+#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */ -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h sip/sipgen/sip.h ---- ./sip-4.19.12.orig/sipgen/sip.h 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sipgen/sip.h 2018-09-18 18:12:23.643053242 -0400 -@@ -27,8 +27,8 @@ - /* - * Define the SIP version number. - */ --#define SIP_VERSION 0x04130c --#define SIP_VERSION_STR "4.19.12" -+#define SIP_VERSION 0x04ffff -+#define SIP_VERSION_STR "4.255.255" - - - #ifdef TRUE -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h.in sip/sipgen/sip.h.in ---- ./sip-4.19.12.orig/sipgen/sip.h.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/sipgen/sip.h.in 2018-09-24 13:12:20.674276069 -0400 -@@ -0,0 +1,1653 @@ -+/* -+ * The main header file for SIP. -+ * -+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> -+ * -+ * This file is part of SIP. -+ * -+ * This copy of SIP is licensed for use under the terms of the SIP License -+ * Agreement. See the file LICENSE for more details. -+ * -+ * This copy of SIP may also used under the terms of the GNU General Public -+ * License v2 or v3 as published by the Free Software Foundation which can be -+ * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. -+ * -+ * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ */ -+ -+ -+#ifndef SIP_H -+#define SIP_H -+ -+#include <stdio.h> -+#include <sys/types.h> -+ -+ -+/* -+ * Define the SIP version number. -+ */ -+#define SIP_VERSION 0x@RM_HEXVERSION@ -+#define SIP_VERSION_STR "@RM_RELEASE@" -+ -+ -+#ifdef TRUE -+#undef TRUE -+#endif -+ -+#ifdef FALSE -+#undef FALSE -+#endif -+ -+#define TRUE 1 -+#define FALSE 0 -+ -+ -+/* Some convenient compiler extensions. */ -+ -+#if defined(__GNUC__) -+#define SIP_NORETURN __attribute__((__noreturn__)) -+#define SIP_UNUSED __attribute__((__unused__)) -+#elif defined(_MSC_VER) -+#define SIP_NORETURN __declspec(noreturn) -+#endif -+ -+#if !defined(SIP_NORETURN) -+#define SIP_NORETURN -+#endif -+#if !defined(SIP_UNUSED) -+#define SIP_UNUSED -+#endif -+ -+ -+#define DEFAULT_OFILE_EXT ".o" /* Default object file extension. */ -+ -+#define MAX_NR_ARGS 20 /* Max. nr. args. to a function or template. */ -+#define MAX_NR_DEREFS 5 /* Max. nr. type derefences. */ -+ -+ -+/* For convenience. */ -+ -+#define classBaseName(cd) scopedNameTail((cd)->iff->fqcname) -+#define classFQCName(cd) ((cd)->iff->fqcname) -+ -+/* Return the Python scope corresponding to a C/C++ scope. */ -+#define pyScope(c) ((c) != NULL && isHiddenNamespace(c) ? NULL : (c)) -+ -+ -+/* Handle module flags. */ -+ -+#define MOD_HAS_DELAYED_DTORS 0x0001 /* It has a class with a delayed dtor. */ -+#define MOD_IS_CONSOLIDATED 0x0002 /* It is a consolidated module. */ -+#define MOD_IS_COMPOSITE 0x0004 /* It is a composite module. */ -+#define MOD_IS_TRANSFORMED 0x0008 /* It's types have been transformed. */ -+#define MOD_USE_ARG_NAMES 0x0010 /* Use real argument names. */ -+#define MOD_USE_LIMITED_API 0x0020 /* Use the limited API. */ -+#define MOD_ALL_RAISE_PY_EXC 0x0040 /* All callable raise a Python exception. */ -+#define MOD_SUPER_INIT_NO 0x0080 /* Don't call super().__init__(). */ -+#define MOD_SUPER_INIT_YES 0x0100 /* Call super().__init__(). */ -+#define MOD_SUPER_INIT_UNDEF 0x0000 /* Calling super().__init__() is undefined. */ -+#define MOD_SUPER_INIT_MASK 0x0180 /* The mask for the above flags. */ -+#define MOD_SETTING_IMPORTS 0x0200 /* Imports are being set. */ -+ -+#define hasDelayedDtors(m) ((m)->modflags & MOD_HAS_DELAYED_DTORS) -+#define setHasDelayedDtors(m) ((m)->modflags |= MOD_HAS_DELAYED_DTORS) -+#define isConsolidated(m) ((m)->modflags & MOD_IS_CONSOLIDATED) -+#define setIsConsolidated(m) ((m)->modflags |= MOD_IS_CONSOLIDATED) -+#define isComposite(m) ((m)->modflags & MOD_IS_COMPOSITE) -+#define setIsComposite(m) ((m)->modflags |= MOD_IS_COMPOSITE) -+#define isContainer(m) ((m)->modflags & (MOD_IS_CONSOLIDATED | MOD_IS_COMPOSITE)) -+#define setIsTransformed(m) ((m)->modflags |= MOD_IS_TRANSFORMED) -+#define isTransformed(m) ((m)->modflags & MOD_IS_TRANSFORMED) -+#define setUseArgNames(m) ((m)->modflags |= MOD_USE_ARG_NAMES) -+#define useArgNames(m) ((m)->modflags & MOD_USE_ARG_NAMES) -+#define setUseLimitedAPI(m) ((m)->modflags |= MOD_USE_LIMITED_API) -+#define useLimitedAPI(m) ((m)->modflags & MOD_USE_LIMITED_API) -+#define setAllRaisePyException(m) ((m)->modflags |= MOD_ALL_RAISE_PY_EXC) -+#define allRaisePyException(m) ((m)->modflags & MOD_ALL_RAISE_PY_EXC) -+#define setCallSuperInitNo(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_NO) -+#define setCallSuperInitYes(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_YES) -+#define isCallSuperInitYes(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_YES) -+#define isCallSuperInitUndefined(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_UNDEF) -+#define settingImports(m) ((m)->modflags & MOD_SETTING_IMPORTS) -+#define setSettingImports(m) ((m)->modflags |= MOD_SETTING_IMPORTS) -+#define resetSettingImports(m) ((m)->modflags &= ~MOD_SETTING_IMPORTS) -+ -+ -+/* Handle section flags. */ -+ -+#define SECT_IS_PUBLIC 0x01 /* It is public. */ -+#define SECT_IS_PROT 0x02 /* It is protected. */ -+#define SECT_IS_PRIVATE 0x04 /* It is private. */ -+#define SECT_IS_SLOT 0x08 /* It is a slot. */ -+#define SECT_IS_SIGNAL 0x10 /* It is a signal. */ -+#define SECT_MASK 0x1f /* The mask of all flags. */ -+ -+ -+/* Handle class flags. These are combined with the section flags. */ -+ -+#define CLASS_HAS_SIGSLOTS 0x00000200 /* It has signals or slots. */ -+#define CLASS_IS_ABSTRACT 0x00000400 /* It is an abstract class. */ -+#define CLASS_HAS_SHADOW 0x00000800 /* It is has a shadow class. */ -+#define CLASS_IS_OPAQUE 0x00001000 /* It is opaque. */ -+#define CLASS_HAS_VAR_HANDLERS 0x00002000 /* It has variable handlers. */ -+#define CLASS_DTOR_RELEASE_GIL 0x00004000 /* The dtor releases the GIL. */ -+#define CLASS_IS_PROTECTED 0x00008000 /* It is protected. */ -+#define CLASS_IS_PROTECTED_SAV 0x00010000 /* It is protected (saved). */ -+#define CLASS_IS_INCOMPLETE 0x00020000 /* The specification is incomplete. */ -+#define CLASS_CAN_CREATE 0x00040000 /* It has usable ctors. */ -+#define CLASS_IS_EXTERNAL 0x00080000 /* It is external. */ -+#define CLASS_IS_DELAYED_DTOR 0x00100000 /* The dtor is delayed. */ -+#define CLASS_NO_DEFAULT_CTORS 0x00200000 /* Don't create default ctors. */ -+#define CLASS_QOBJECT_SUB 0x00400000 /* It is derived from QObject. */ -+#define CLASS_DTOR_HOLD_GIL 0x00800000 /* The dtor holds the GIL. */ -+#define CLASS_ASSIGN_HELPER 0x01000000 /* Generate an assignment helper. */ -+#define CLASS_NO_QMETAOBJECT 0x02000000 /* It has no QMetaObject. */ -+#define CLASS_IS_TEMPLATE 0x04000000 /* It is a template class. */ -+#define CLASS_IS_DEPRECATED 0x08000000 /* It is deprecated. */ -+#define CLASS_CANNOT_COPY 0x10000000 /* It cannot be copied. */ -+#define CLASS_CANNOT_ASSIGN 0x20000000 /* It cannot be assigned. */ -+#define CLASS_ALLOW_NONE 0x40000000 /* The class will handle None. */ -+#define CLASS_HAS_NONLAZY 0x80000000 /* The class has non-lazy methods. */ -+ -+#define hasSigSlots(cd) ((cd)->classflags & CLASS_HAS_SIGSLOTS) -+#define setHasSigSlots(cd) ((cd)->classflags |= CLASS_HAS_SIGSLOTS) -+#define isAbstractClass(cd) ((cd)->classflags & CLASS_IS_ABSTRACT) -+#define setIsAbstractClass(cd) ((cd)->classflags |= CLASS_IS_ABSTRACT) -+#define hasShadow(cd) ((cd)->classflags & CLASS_HAS_SHADOW) -+#define setHasShadow(cd) ((cd)->classflags |= CLASS_HAS_SHADOW) -+#define resetHasShadow(cd) ((cd)->classflags &= ~CLASS_HAS_SHADOW) -+#define isOpaque(cd) ((cd)->classflags & CLASS_IS_OPAQUE) -+#define setIsOpaque(cd) ((cd)->classflags |= CLASS_IS_OPAQUE) -+#define hasVarHandlers(cd) ((cd)->classflags & CLASS_HAS_VAR_HANDLERS) -+#define setHasVarHandlers(cd) ((cd)->classflags |= CLASS_HAS_VAR_HANDLERS) -+#define isProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED) -+#define setIsProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED) -+#define resetIsProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED) -+#define wasProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED_SAV) -+#define setWasProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED_SAV) -+#define resetWasProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED_SAV) -+#define isReleaseGILDtor(cd) ((cd)->classflags & CLASS_DTOR_RELEASE_GIL) -+#define setIsReleaseGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_RELEASE_GIL) -+#define isIncomplete(cd) ((cd)->classflags & CLASS_IS_INCOMPLETE) -+#define setIsIncomplete(cd) ((cd)->classflags |= CLASS_IS_INCOMPLETE) -+#define canCreate(cd) ((cd)->classflags & CLASS_CAN_CREATE) -+#define setCanCreate(cd) ((cd)->classflags |= CLASS_CAN_CREATE) -+#define resetCanCreate(cd) ((cd)->classflags &= ~CLASS_CAN_CREATE) -+#define isExternal(cd) ((cd)->classflags & CLASS_IS_EXTERNAL) -+#define setIsExternal(cd) ((cd)->classflags |= CLASS_IS_EXTERNAL) -+#define isDelayedDtor(cd) ((cd)->classflags & CLASS_IS_DELAYED_DTOR) -+#define setIsDelayedDtor(cd) ((cd)->classflags |= CLASS_IS_DELAYED_DTOR) -+#define noDefaultCtors(cd) ((cd)->classflags & CLASS_NO_DEFAULT_CTORS) -+#define setNoDefaultCtors(cd) ((cd)->classflags |= CLASS_NO_DEFAULT_CTORS) -+#define isQObjectSubClass(cd) ((cd)->classflags & CLASS_QOBJECT_SUB) -+#define setIsQObjectSubClass(cd) ((cd)->classflags |= CLASS_QOBJECT_SUB) -+#define isHoldGILDtor(cd) ((cd)->classflags & CLASS_DTOR_HOLD_GIL) -+#define setIsHoldGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_HOLD_GIL) -+#define assignmentHelper(cd) ((cd)->classflags & CLASS_ASSIGN_HELPER) -+#define setAssignmentHelper(cd) ((cd)->classflags |= CLASS_ASSIGN_HELPER) -+#define noPyQtQMetaObject(cd) ((cd)->classflags & CLASS_NO_QMETAOBJECT) -+#define setPyQtNoQMetaObject(cd) ((cd)->classflags |= CLASS_NO_QMETAOBJECT) -+#define isTemplateClass(cd) ((cd)->classflags & CLASS_IS_TEMPLATE) -+#define setIsTemplateClass(cd) ((cd)->classflags |= CLASS_IS_TEMPLATE) -+#define resetIsTemplateClass(cd) ((cd)->classflags &= ~CLASS_IS_TEMPLATE) -+#define isDeprecatedClass(cd) ((cd)->classflags & CLASS_IS_DEPRECATED) -+#define setIsDeprecatedClass(cd) ((cd)->classflags |= CLASS_IS_DEPRECATED) -+#define cannotCopy(cd) ((cd)->classflags & CLASS_CANNOT_COPY) -+#define setCannotCopy(cd) ((cd)->classflags |= CLASS_CANNOT_COPY) -+#define cannotAssign(cd) ((cd)->classflags & CLASS_CANNOT_ASSIGN) -+#define setCannotAssign(cd) ((cd)->classflags |= CLASS_CANNOT_ASSIGN) -+#define classHandlesNone(cd) ((cd)->classflags & CLASS_ALLOW_NONE) -+#define setClassHandlesNone(cd) ((cd)->classflags |= CLASS_ALLOW_NONE) -+#define hasNonlazyMethod(cd) ((cd)->classflags & CLASS_HAS_NONLAZY) -+#define setHasNonlazyMethod(cd) ((cd)->classflags |= CLASS_HAS_NONLAZY) -+ -+#define isPublicDtor(cd) ((cd)->classflags & SECT_IS_PUBLIC) -+#define setIsPublicDtor(cd) ((cd)->classflags |= SECT_IS_PUBLIC) -+#define isProtectedDtor(cd) ((cd)->classflags & SECT_IS_PROT) -+#define isPrivateDtor(cd) ((cd)->classflags & SECT_IS_PRIVATE) -+ -+#define isDtor(cd) ((cd)->classflags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) -+ -+ -+/* Handle the second group of class flags. */ -+ -+#define CLASS2_TMPL_ARG 0x01 /* The class is a template argument. */ -+#define CLASS2_MIXIN 0x02 /* The class is a mixin. */ -+#define CLASS2_EXPORT_DERIVED 0x04 /* Export the derived class declaration. */ -+#define CLASS2_HIDDEN_NS 0x08 /* The namespace is hidden. */ -+#define CLASS2_USE_TMPL_NAME 0x10 /* Use the template name. */ -+#define CLASS2_NEEDS_SHADOW 0x20 /* The class needs a shadow class. */ -+ -+#define isTemplateArg(cd) ((cd)->classflags2 & CLASS2_TMPL_ARG) -+#define setTemplateArg(cd) ((cd)->classflags2 |= CLASS2_TMPL_ARG) -+#define resetTemplateArg(cd) ((cd)->classflags2 &= ~CLASS2_TMPL_ARG) -+#define isMixin(cd) ((cd)->classflags2 & CLASS2_MIXIN) -+#define setMixin(cd) ((cd)->classflags2 |= CLASS2_MIXIN) -+#define isExportDerived(cd) ((cd)->classflags2 & CLASS2_EXPORT_DERIVED) -+#define setExportDerived(cd) ((cd)->classflags2 |= CLASS2_EXPORT_DERIVED) -+#define isHiddenNamespace(cd) ((cd)->classflags2 & CLASS2_HIDDEN_NS) -+#define setHiddenNamespace(cd) ((cd)->classflags2 |= CLASS2_HIDDEN_NS) -+#define useTemplateName(cd) ((cd)->classflags2 & CLASS2_USE_TMPL_NAME) -+#define setUseTemplateName(cd) ((cd)->classflags2 |= CLASS2_USE_TMPL_NAME) -+#define needsShadow(cd) ((cd)->classflags & CLASS2_NEEDS_SHADOW) -+#define setNeedsShadow(cd) ((cd)->classflags |= CLASS2_NEEDS_SHADOW) -+ -+ -+/* Handle ctor flags. These are combined with the section flags. */ -+ -+#define CTOR_RELEASE_GIL 0x00000100 /* The ctor releases the GIL. */ -+#define CTOR_EXPLICIT 0x00000200 /* The ctor is explicit. */ -+#define CTOR_CAST 0x00000400 /* The ctor is a cast. */ -+#define CTOR_HOLD_GIL 0x00000800 /* The ctor holds the GIL. */ -+#define CTOR_XFERRED 0x00001000 /* Ownership is transferred. */ -+#define CTOR_IS_DEPRECATED 0x00002000 /* The ctor is deprecated. */ -+#define CTOR_RAISES_PY_EXC 0x00004000 /* It raises a Python exception. */ -+ -+#define isPublicCtor(c) ((c)->ctorflags & SECT_IS_PUBLIC) -+#define setIsPublicCtor(c) ((c)->ctorflags |= SECT_IS_PUBLIC) -+#define isProtectedCtor(c) ((c)->ctorflags & SECT_IS_PROT) -+#define setIsProtectedCtor(c) ((c)->ctorflags |= SECT_IS_PROT) -+#define isPrivateCtor(c) ((c)->ctorflags & SECT_IS_PRIVATE) -+#define setIsPrivateCtor(c) ((c)->ctorflags |= SECT_IS_PRIVATE) -+ -+#define isReleaseGILCtor(c) ((c)->ctorflags & CTOR_RELEASE_GIL) -+#define setIsReleaseGILCtor(c) ((c)->ctorflags |= CTOR_RELEASE_GIL) -+#define isExplicitCtor(c) ((c)->ctorflags & CTOR_EXPLICIT) -+#define setIsExplicitCtor(c) ((c)->ctorflags |= CTOR_EXPLICIT) -+#define isCastCtor(c) ((c)->ctorflags & CTOR_CAST) -+#define isHoldGILCtor(c) ((c)->ctorflags & CTOR_HOLD_GIL) -+#define setIsHoldGILCtor(c) ((c)->ctorflags |= CTOR_HOLD_GIL) -+#define isResultTransferredCtor(c) ((c)->ctorflags & CTOR_XFERRED) -+#define setIsResultTransferredCtor(c) ((c)->ctorflags |= CTOR_XFERRED) -+#define isDeprecatedCtor(c) ((c)->ctorflags & CTOR_IS_DEPRECATED) -+#define setIsDeprecatedCtor(c) ((c)->ctorflags |= CTOR_IS_DEPRECATED) -+#define raisesPyExceptionCtor(c) ((c)->ctorflags & CTOR_RAISES_PY_EXC) -+#define setRaisesPyExceptionCtor(c) ((c)->ctorflags |= CTOR_RAISES_PY_EXC) -+ -+ -+/* Handle member flags. */ -+ -+#define MEMBR_NUMERIC 0x0001 /* It is a numeric slot. */ -+#define MEMBR_SEQUENCE 0x0002 /* It is a sequnce slot. */ -+#define MEMBR_NO_ARG_PARSER 0x0004 /* Don't generate an argument parser. */ -+#define MEMBR_NOT_VERSIONED 0x0008 /* There is an unversioned overload. */ -+#define MEMBR_KEYWORD_ARGS 0x0010 /* It allows keyword arguments. */ -+#define MEMBR_HAS_PROTECTED 0x0011 /* It has a protected overload. */ -+ -+#define isNumeric(m) ((m)->memberflags & MEMBR_NUMERIC) -+#define setIsNumeric(m) ((m)->memberflags |= MEMBR_NUMERIC) -+#define isSequence(m) ((m)->memberflags & MEMBR_SEQUENCE) -+#define setIsSequence(m) ((m)->memberflags |= MEMBR_SEQUENCE) -+#define noArgParser(m) ((m)->memberflags & MEMBR_NO_ARG_PARSER) -+#define setNoArgParser(m) ((m)->memberflags |= MEMBR_NO_ARG_PARSER) -+#define notVersioned(m) ((m)->memberflags & MEMBR_NOT_VERSIONED) -+#define setNotVersioned(m) ((m)->memberflags |= MEMBR_NOT_VERSIONED) -+#define useKeywordArgs(m) ((m)->memberflags & MEMBR_KEYWORD_ARGS) -+#define setUseKeywordArgs(m) ((m)->memberflags |= MEMBR_KEYWORD_ARGS) -+#define hasProtected(m) ((m)->memberflags & MEMBR_HAS_PROTECTED) -+#define setHasProtected(m) ((m)->memberflags |= MEMBR_HAS_PROTECTED) -+ -+ -+/* Handle enum flags. These are combined with the section flags. */ -+ -+#define ENUM_WAS_PROT 0x00000100 /* It was defined as protected. */ -+#define ENUM_NO_SCOPE 0x00000200 /* Omit the member scopes. */ -+#define ENUM_NEEDS_ENUM 0x00000400 /* The module needs it. */ -+#define ENUM_SCOPED 0x00000800 /* A C++0x11 scoped enum. */ -+ -+#define isProtectedEnum(e) ((e)->enumflags & SECT_IS_PROT) -+#define setIsProtectedEnum(e) ((e)->enumflags |= SECT_IS_PROT) -+#define resetIsProtectedEnum(e) ((e)->enumflags &= ~SECT_IS_PROT) -+ -+#define wasProtectedEnum(e) ((e)->enumflags & ENUM_WAS_PROT) -+#define setWasProtectedEnum(e) ((e)->enumflags |= ENUM_WAS_PROT) -+#define resetWasProtectedEnum(e) ((e)->enumflags &= ~ENUM_WAS_PROT) -+#define isNoScope(e) ((e)->enumflags & ENUM_NO_SCOPE) -+#define setIsNoScope(e) ((e)->enumflags |= ENUM_NO_SCOPE) -+#define needsEnum(e) ((e)->enumflags & ENUM_NEEDS_ENUM) -+#define setNeedsEnum(e) ((e)->enumflags |= ENUM_NEEDS_ENUM) -+#define isScopedEnum(e) ((e)->enumflags & ENUM_SCOPED) -+#define setIsScopedEnum(e) ((e)->enumflags |= ENUM_SCOPED) -+ -+ -+/* Handle hierarchy flags. */ -+ -+#define HIER_IS_DUPLICATE 0x0001 /* It is a super class duplicate. */ -+#define HIER_HAS_DUPLICATE 0x0002 /* It has a super class duplicate. */ -+#define HIER_BEING_SET 0x0004 /* The MRO is being set. */ -+ -+#define isDuplicateSuper(m) ((m)->mroflags & HIER_IS_DUPLICATE) -+#define setIsDuplicateSuper(m) ((m)->mroflags |= HIER_IS_DUPLICATE) -+#define hasDuplicateSuper(m) ((m)->mroflags & HIER_HAS_DUPLICATE) -+#define setHasDuplicateSuper(m) ((m)->mroflags |= HIER_HAS_DUPLICATE) -+#define hierBeingSet(m) ((m)->mroflags & HIER_BEING_SET) -+#define setHierBeingSet(m) ((m)->mroflags |= HIER_BEING_SET) -+#define resetHierBeingSet(m) ((m)->mroflags &= ~HIER_BEING_SET) -+ -+ -+/* Handle overload flags. These are combined with the section flags. */ -+ -+#define OVER_IS_VIRTUAL 0x00000100 /* It is virtual. */ -+#define OVER_IS_ABSTRACT 0x00000200 /* It is abstract. */ -+#define OVER_IS_CONST 0x00000400 /* It is a const function. */ -+#define OVER_IS_STATIC 0x00000800 /* It is a static function. */ -+#define OVER_IS_AUTOGEN 0x00001000 /* It is auto-generated. */ -+#define OVER_IS_NEW_THREAD 0x00002000 /* It is in a new thread. */ -+#define OVER_IS_FACTORY 0x00004000 /* It is a factory method. */ -+#define OVER_XFERRED_BACK 0x00008000 /* Ownership is transferred back. */ -+#define OVER_XFERRED 0x00010000 /* Ownership is transferred. */ -+#define OVER_IS_VIRTUAL_REIMP 0x00020000 /* It is a re-implementation of a virtual. */ -+#define OVER_DONT_DEREF_SELF 0x00040000 /* For comparison operators, don't dereference self. */ -+#define OVER_HOLD_GIL 0x00080000 /* The function holds the GIL. */ -+#define OVER_RELEASE_GIL 0x00100000 /* The function releases the GIL. */ -+#define OVER_THIS_XFERRED 0x00200000 /* Ownership of this is transferred. */ -+#define OVER_IS_GLOBAL 0x00400000 /* It is a global operator. */ -+#define OVER_IS_COMPLEMENTARY 0x00800000 /* It is a complementary operator. */ -+#define OVER_IS_DEPRECATED 0x01000000 /* It is deprecated. */ -+#define OVER_REALLY_PROT 0x02000000 /* It really is protected. */ -+#define OVER_IS_DELATTR 0x04000000 /* It is __delattr__. */ -+#define OVER_RAISES_PY_EXC 0x08000000 /* It raises a Python exception. */ -+#define OVER_NO_ERROR_HANDLER 0x10000000 /* It doesn't use a virtual error handler. */ -+#define OVER_ABORT_ON_EXC 0x20000000 /* It aborts on an exception. */ -+#define OVER_IS_FINAL 0x40000000 /* It is a final method. */ -+ -+#define isPublic(o) ((o)->overflags & SECT_IS_PUBLIC) -+#define setIsPublic(o) ((o)->overflags |= SECT_IS_PUBLIC) -+#define isProtected(o) ((o)->overflags & SECT_IS_PROT) -+#define setIsProtected(o) ((o)->overflags |= SECT_IS_PROT) -+#define isPrivate(o) ((o)->overflags & SECT_IS_PRIVATE) -+#define setIsPrivate(o) ((o)->overflags |= SECT_IS_PRIVATE) -+#define isSlot(o) ((o)->overflags & SECT_IS_SLOT) -+#define setIsSlot(o) ((o)->overflags |= SECT_IS_SLOT) -+#define resetIsSlot(o) ((o)->overflags &= ~SECT_IS_SLOT) -+#define isSignal(o) ((o)->overflags & SECT_IS_SIGNAL) -+#define setIsSignal(o) ((o)->overflags |= SECT_IS_SIGNAL) -+#define resetIsSignal(o) ((o)->overflags &= ~SECT_IS_SIGNAL) -+ -+#define isVirtual(o) ((o)->overflags & OVER_IS_VIRTUAL) -+#define setIsVirtual(o) ((o)->overflags |= OVER_IS_VIRTUAL) -+#define resetIsVirtual(o) ((o)->overflags &= ~OVER_IS_VIRTUAL) -+#define isAbstract(o) ((o)->overflags & OVER_IS_ABSTRACT) -+#define setIsAbstract(o) ((o)->overflags |= OVER_IS_ABSTRACT) -+#define isConst(o) ((o)->overflags & OVER_IS_CONST) -+#define setIsConst(o) ((o)->overflags |= OVER_IS_CONST) -+#define isStatic(o) ((o)->overflags & OVER_IS_STATIC) -+#define setIsStatic(o) ((o)->overflags |= OVER_IS_STATIC) -+#define isAutoGen(o) ((o)->overflags & OVER_IS_AUTOGEN) -+#define setIsAutoGen(o) ((o)->overflags |= OVER_IS_AUTOGEN) -+#define resetIsAutoGen(o) ((o)->overflags &= ~OVER_IS_AUTOGEN) -+#define isNewThread(o) ((o)->overflags & OVER_IS_NEW_THREAD) -+#define setIsNewThread(o) ((o)->overflags |= OVER_IS_NEW_THREAD) -+#define isFactory(o) ((o)->overflags & OVER_IS_FACTORY) -+#define setIsFactory(o) ((o)->overflags |= OVER_IS_FACTORY) -+#define isResultTransferredBack(o) ((o)->overflags & OVER_XFERRED_BACK) -+#define setIsResultTransferredBack(o) ((o)->overflags |= OVER_XFERRED_BACK) -+#define isResultTransferred(o) ((o)->overflags & OVER_XFERRED) -+#define setIsResultTransferred(o) ((o)->overflags |= OVER_XFERRED) -+#define isVirtualReimp(o) ((o)->overflags & OVER_IS_VIRTUAL_REIMP) -+#define setIsVirtualReimp(o) ((o)->overflags |= OVER_IS_VIRTUAL_REIMP) -+#define dontDerefSelf(o) ((o)->overflags & OVER_DONT_DEREF_SELF) -+#define setDontDerefSelf(o) ((o)->overflags |= OVER_DONT_DEREF_SELF) -+#define isHoldGIL(o) ((o)->overflags & OVER_HOLD_GIL) -+#define setIsHoldGIL(o) ((o)->overflags |= OVER_HOLD_GIL) -+#define isReleaseGIL(o) ((o)->overflags & OVER_RELEASE_GIL) -+#define setIsReleaseGIL(o) ((o)->overflags |= OVER_RELEASE_GIL) -+#define isThisTransferredMeth(o) ((o)->overflags & OVER_THIS_XFERRED) -+#define setIsThisTransferredMeth(o) ((o)->overflags |= OVER_THIS_XFERRED) -+#define isGlobal(o) ((o)->overflags & OVER_IS_GLOBAL) -+#define setIsGlobal(o) ((o)->overflags |= OVER_IS_GLOBAL) -+#define isComplementary(o) ((o)->overflags & OVER_IS_COMPLEMENTARY) -+#define setIsComplementary(o) ((o)->overflags |= OVER_IS_COMPLEMENTARY) -+#define isDeprecated(o) ((o)->overflags & OVER_IS_DEPRECATED) -+#define setIsDeprecated(o) ((o)->overflags |= OVER_IS_DEPRECATED) -+#define isReallyProtected(o) ((o)->overflags & OVER_REALLY_PROT) -+#define setIsReallyProtected(o) ((o)->overflags |= OVER_REALLY_PROT) -+#define isDelattr(o) ((o)->overflags & OVER_IS_DELATTR) -+#define setIsDelattr(o) ((o)->overflags |= OVER_IS_DELATTR) -+#define raisesPyException(o) ((o)->overflags & OVER_RAISES_PY_EXC) -+#define setRaisesPyException(o) ((o)->overflags |= OVER_RAISES_PY_EXC) -+#define noErrorHandler(o) ((o)->overflags & OVER_NO_ERROR_HANDLER) -+#define setNoErrorHandler(o) ((o)->overflags |= OVER_NO_ERROR_HANDLER) -+#define abortOnException(o) ((o)->overflags & OVER_ABORT_ON_EXC) -+#define setAbortOnException(o) ((o)->overflags |= OVER_ABORT_ON_EXC) -+#define isFinal(o) ((o)->overflags & OVER_IS_FINAL) -+#define setIsFinal(o) ((o)->overflags |= OVER_IS_FINAL) -+ -+ -+/* Handle variable flags. */ -+ -+#define VAR_IS_STATIC 0x01 /* It is a static variable. */ -+#define VAR_NEEDS_HANDLER 0x02 /* The variable needs a handler. */ -+#define VAR_NO_SETTER 0x04 /* The variable has no setter. */ -+ -+#define isStaticVar(v) ((v)->varflags & VAR_IS_STATIC) -+#define setIsStaticVar(v) ((v)->varflags |= VAR_IS_STATIC) -+#define needsHandler(v) ((v)->varflags & VAR_NEEDS_HANDLER) -+#define setNeedsHandler(v) ((v)->varflags |= VAR_NEEDS_HANDLER) -+#define noSetter(v) ((v)->varflags & VAR_NO_SETTER) -+#define setNoSetter(v) ((v)->varflags |= VAR_NO_SETTER) -+ -+ -+/* Handle argument flags. */ -+ -+#define ARG_IS_REF 0x00000001 /* It is a reference. */ -+#define ARG_IS_CONST 0x00000002 /* It is a const. */ -+#define ARG_XFERRED 0x00000004 /* Ownership is transferred. */ -+#define ARG_THIS_XFERRED 0x00000008 /* Ownership of this is transferred. */ -+#define ARG_XFERRED_BACK 0x00000010 /* Ownership is transferred back. */ -+#define ARG_ARRAY 0x00000020 /* Used as an array. */ -+#define ARG_ARRAY_SIZE 0x00000040 /* Used as an array size. */ -+#define ARG_ALLOW_NONE 0x00000080 /* Allow None as a value. */ -+#define ARG_GET_WRAPPER 0x00000100 /* Get the wrapper object. */ -+#define ARG_IN 0x00000200 /* It passes an argument. */ -+#define ARG_OUT 0x00000400 /* It returns a result. */ -+#define ARG_CONSTRAINED 0x00000800 /* Suppress type conversion. */ -+#define ARG_SINGLE_SHOT 0x00001000 /* The slot is only ever fired once. */ -+#define ARG_RESULT_SIZE 0x00002000 /* It defines the result size. */ -+#define ARG_KEEP_REF 0x00004000 /* Keep a reference. */ -+#define ARG_NO_COPY 0x00008000 /* Disable copying of const refs. */ -+#define ARG_DISALLOW_NONE 0x00010000 /* Disallow None as a value. */ -+ -+#define isReference(a) ((a)->argflags & ARG_IS_REF) -+#define setIsReference(a) ((a)->argflags |= ARG_IS_REF) -+#define resetIsReference(a) ((a)->argflags &= ~ARG_IS_REF) -+#define isConstArg(a) ((a)->argflags & ARG_IS_CONST) -+#define setIsConstArg(a) ((a)->argflags |= ARG_IS_CONST) -+#define resetIsConstArg(a) ((a)->argflags &= ~ARG_IS_CONST) -+#define isTransferred(a) ((a)->argflags & ARG_XFERRED) -+#define setIsTransferred(a) ((a)->argflags |= ARG_XFERRED) -+#define isThisTransferred(a) ((a)->argflags & ARG_THIS_XFERRED) -+#define setIsThisTransferred(a) ((a)->argflags |= ARG_THIS_XFERRED) -+#define isTransferredBack(a) ((a)->argflags & ARG_XFERRED_BACK) -+#define setIsTransferredBack(a) ((a)->argflags |= ARG_XFERRED_BACK) -+#define isArray(a) ((a)->argflags & ARG_ARRAY) -+#define setArray(a) ((a)->argflags |= ARG_ARRAY) -+#define isArraySize(a) ((a)->argflags & ARG_ARRAY_SIZE) -+#define setArraySize(a) ((a)->argflags |= ARG_ARRAY_SIZE) -+#define isAllowNone(a) ((a)->argflags & ARG_ALLOW_NONE) -+#define setAllowNone(a) ((a)->argflags |= ARG_ALLOW_NONE) -+#define isGetWrapper(a) ((a)->argflags & ARG_GET_WRAPPER) -+#define setGetWrapper(a) ((a)->argflags |= ARG_GET_WRAPPER) -+#define isInArg(a) ((a)->argflags & ARG_IN) -+#define setIsInArg(a) ((a)->argflags |= ARG_IN) -+#define isOutArg(a) ((a)->argflags & ARG_OUT) -+#define setIsOutArg(a) ((a)->argflags |= ARG_OUT) -+#define isConstrained(a) ((a)->argflags & ARG_CONSTRAINED) -+#define setIsConstrained(a) ((a)->argflags |= ARG_CONSTRAINED) -+#define resetIsConstrained(a) ((a)->argflags &= ~ARG_CONSTRAINED) -+#define isSingleShot(a) ((a)->argflags & ARG_SINGLE_SHOT) -+#define isResultSize(a) ((a)->argflags & ARG_RESULT_SIZE) -+#define setResultSize(a) ((a)->argflags |= ARG_RESULT_SIZE) -+#define keepReference(a) ((a)->argflags & ARG_KEEP_REF) -+#define setKeepReference(a) ((a)->argflags |= ARG_KEEP_REF) -+#define noCopy(a) ((a)->argflags & ARG_NO_COPY) -+#define setNoCopy(a) ((a)->argflags |= ARG_NO_COPY) -+#define isDisallowNone(a) ((a)->argflags & ARG_DISALLOW_NONE) -+#define setDisallowNone(a) ((a)->argflags |= ARG_DISALLOW_NONE) -+ -+ -+/* Handle name flags. */ -+ -+#define NAME_IS_USED 0x01 /* It is used in the main module. */ -+#define NAME_IS_SUBSTR 0x02 /* It is a substring of another. */ -+ -+#define isUsedName(n) ((n)->nameflags & NAME_IS_USED) -+#define setIsUsedName(n) ((n)->nameflags |= NAME_IS_USED) -+#define resetIsUsedName(n) ((n)->nameflags &= ~NAME_IS_USED) -+#define isSubstring(n) ((n)->nameflags & NAME_IS_SUBSTR) -+#define setIsSubstring(n) ((n)->nameflags |= NAME_IS_SUBSTR) -+ -+ -+/* Handle virtual handler flags. */ -+ -+#define VH_TRANSFERS 0x01 /* It transfers ownership of the result. */ -+#define VH_ABORT_ON_EXC 0x02 /* It aborts on an exception. */ -+ -+#define isTransferVH(vh) ((vh)->vhflags & VH_TRANSFERS) -+#define setIsTransferVH(vh) ((vh)->vhflags |= VH_TRANSFERS) -+#define abortOnExceptionVH(vh) ((vh)->vhflags & VH_ABORT_ON_EXC) -+#define setAbortOnExceptionVH(vh) ((vh)->vhflags |= VH_ABORT_ON_EXC) -+ -+ -+/* Handle mapped type flags. */ -+ -+#define MT_NO_RELEASE 0x01 /* Do not generate a release function. */ -+#define MT_ALLOW_NONE 0x02 /* The mapped type will handle None. */ -+ -+#define noRelease(mt) ((mt)->mtflags & MT_NO_RELEASE) -+#define setNoRelease(mt) ((mt)->mtflags |= MT_NO_RELEASE) -+#define handlesNone(mt) ((mt)->mtflags & MT_ALLOW_NONE) -+#define setHandlesNone(mt) ((mt)->mtflags |= MT_ALLOW_NONE) -+ -+ -+/* Handle typedef flags. */ -+ -+#define TD_NO_TYPE_NAME 0x01 /* Do not use the typedef name. */ -+ -+#define noTypeName(td) ((td)->tdflags & TD_NO_TYPE_NAME) -+#define setNoTypeName(td) ((td)->tdflags |= TD_NO_TYPE_NAME) -+ -+ -+/* Warning categories. */ -+typedef enum { -+ ParserWarning, -+ DeprecationWarning -+} Warning; -+ -+ -+/* Docstring formatting. */ -+typedef enum { -+ raw, -+ deindented -+} Format; -+ -+ -+/* Docstring signature positioning. */ -+typedef enum { -+ discarded, -+ prepended, -+ appended -+} Signature; -+ -+ -+/* Levels of keyword argument support. */ -+typedef enum { -+ NoKwArgs = 0, -+ AllKwArgs, -+ OptionalKwArgs -+} KwArgs; -+ -+ -+/* Slot types. */ -+typedef enum { -+ str_slot, -+ int_slot, -+ long_slot, -+ float_slot, -+ len_slot, -+ contains_slot, -+ add_slot, -+ concat_slot, -+ sub_slot, -+ mul_slot, -+ repeat_slot, -+ div_slot, -+ mod_slot, -+ floordiv_slot, -+ truediv_slot, -+ and_slot, -+ or_slot, -+ xor_slot, -+ lshift_slot, -+ rshift_slot, -+ iadd_slot, -+ iconcat_slot, -+ isub_slot, -+ imul_slot, -+ irepeat_slot, -+ idiv_slot, -+ imod_slot, -+ ifloordiv_slot, -+ itruediv_slot, -+ iand_slot, -+ ior_slot, -+ ixor_slot, -+ ilshift_slot, -+ irshift_slot, -+ invert_slot, -+ call_slot, -+ getitem_slot, -+ setitem_slot, -+ delitem_slot, -+ lt_slot, -+ le_slot, -+ eq_slot, -+ ne_slot, -+ gt_slot, -+ ge_slot, -+ cmp_slot, -+ bool_slot, -+ neg_slot, -+ pos_slot, -+ abs_slot, -+ repr_slot, -+ hash_slot, -+ index_slot, -+ iter_slot, -+ next_slot, -+ setattr_slot, -+ delattr_slot, /* This is local to the parser. */ -+ matmul_slot, -+ imatmul_slot, -+ await_slot, -+ aiter_slot, -+ anext_slot, -+ no_slot -+} slotType; -+ -+ -+/* -+ * Argument types. Always add new ones at the end because the numeric values -+ * can appear in generated code. -+ */ -+typedef enum { -+ no_type, -+ defined_type, -+ class_type, -+ struct_type, -+ void_type, -+ enum_type, -+ template_type, -+ signal_type, -+ slot_type, -+ rxcon_type, -+ rxdis_type, -+ slotcon_type, -+ slotdis_type, -+ ustring_type, -+ string_type, -+ short_type, -+ ushort_type, -+ cint_type, -+ int_type, -+ uint_type, -+ long_type, -+ ulong_type, -+ float_type, -+ cfloat_type, -+ double_type, -+ cdouble_type, -+ bool_type, -+ mapped_type, -+ pyobject_type, -+ pytuple_type, -+ pylist_type, -+ pydict_type, -+ pycallable_type, -+ pyslice_type, -+ qobject_type, -+ function_type, -+ pytype_type, -+ ellipsis_type, -+ longlong_type, -+ ulonglong_type, -+ anyslot_type, -+ cbool_type, -+ sstring_type, -+ wstring_type, -+ fake_void_type, -+ ssize_type, -+ ascii_string_type, -+ latin1_string_type, -+ utf8_string_type, -+ byte_type, -+ sbyte_type, -+ ubyte_type, -+ capsule_type, -+ pybuffer_type -+} argType; -+ -+ -+/* Value types. */ -+typedef enum { -+ qchar_value, -+ string_value, -+ numeric_value, -+ real_value, -+ scoped_value, -+ fcall_value -+} valueType; -+ -+ -+/* Version types. */ -+typedef enum { -+ time_qualifier, -+ platform_qualifier, -+ feature_qualifier -+} qualType; -+ -+ -+/* Interface file types. */ -+typedef enum { -+ exception_iface, -+ mappedtype_iface, -+ namespace_iface, -+ class_iface -+} ifaceFileType; -+ -+ -+/* Type hint parse status. */ -+typedef enum { -+ needs_parsing, -+ being_parsed, -+ parsed -+} typeHintParseStatus; -+ -+ -+/* Type hint node type. */ -+typedef enum { -+ typing_node, -+ class_node, -+ enum_node, -+ brackets_node, -+ other_node -+} typeHintNodeType; -+ -+ -+/* A location in a .sip source file. */ -+typedef struct { -+ int linenr; /* The line number. */ -+ const char *name; /* The filename. */ -+} sourceLocation; -+ -+ -+/* A software license. */ -+typedef struct { -+ const char *type; /* The license type. */ -+ const char *licensee; /* The licensee. */ -+ const char *timestamp; /* The timestamp. */ -+ const char *sig; /* The signature. */ -+} licenseDef; -+ -+ -+/* A version qualifier. */ -+typedef struct _qualDef { -+ const char *name; /* The qualifier name. */ -+ qualType qtype; /* The qualifier type. */ -+ struct _moduleDef *module; /* The defining module. */ -+ int line; /* Timeline if it is a time. */ -+ int order; /* Order if it is a time. */ -+ int default_enabled; /* Enabled by default. */ -+ struct _qualDef *next; /* Next in the list. */ -+} qualDef; -+ -+ -+/* A platform. */ -+typedef struct _platformDef { -+ struct _qualDef *qualifier; /* The platform qualifier. */ -+ struct _platformDef *next; /* Next in the list. */ -+} platformDef; -+ -+ -+/* A scoped name. */ -+typedef struct _scopedNameDef { -+ char *name; /* The name. */ -+ struct _scopedNameDef *next; /* Next in the scope list. */ -+} scopedNameDef; -+ -+ -+/* A name. */ -+typedef struct _nameDef { -+ int nameflags; /* The name flags. */ -+ const char *text; /* The text of the name. */ -+ size_t len; /* The length of the name. */ -+ size_t offset; /* The offset in the string pool. */ -+ struct _nameDef *next; /* Next in the list. */ -+} nameDef; -+ -+ -+/* A literal code block. */ -+typedef struct _codeBlock { -+ char *frag; /* The code itself. */ -+ const char *filename; /* The original file. */ -+ int linenr; /* The line in the file. */ -+} codeBlock; -+ -+ -+/* A list of literal code blocks. */ -+typedef struct _codeBlockList { -+ codeBlock *block; /* The code block. */ -+ struct _codeBlockList *next; /* The next in the list. */ -+} codeBlockList; -+ -+ -+/* The arguments to a throw specifier. */ -+typedef struct _throwArgs { -+ int nrArgs; /* The number of arguments. */ -+ struct _exceptionDef *args[MAX_NR_ARGS]; /* The arguments. */ -+} throwArgs; -+ -+ -+/* An exception. */ -+typedef struct _exceptionDef { -+ int exceptionnr; /* The exception number. */ -+ int needed; /* The module needs it. */ -+ struct _ifaceFileDef *iff; /* The interface file. */ -+ const char *pyname; /* The exception Python name. */ -+ struct _classDef *cd; /* The exception class. */ -+ char *bibase; /* The builtin base exception. */ -+ struct _exceptionDef *base; /* The defined base exception. */ -+ codeBlockList *raisecode; /* Raise exception code. */ -+ struct _exceptionDef *next; /* The next in the list. */ -+} exceptionDef; -+ -+ -+/* A value. */ -+typedef struct _valueDef { -+ valueType vtype; /* The type. */ -+ char vunop; /* Any unary operator. */ -+ char vbinop; /* Any binary operator. */ -+ scopedNameDef *cast; /* Any cast. */ -+ union { -+ char vqchar; /* Quoted character value. */ -+ long vnum; /* Numeric value. */ -+ double vreal; /* Real value. */ -+ char *vstr; /* String value. */ -+ scopedNameDef *vscp; /* Scoped value. */ -+ struct _fcallDef *fcd; /* Function call. */ -+ } u; -+ struct _valueDef *next; /* Next in the expression. */ -+} valueDef; -+ -+ -+/* A member function argument (or result). */ -+typedef struct { -+ argType atype; /* The type. */ -+ nameDef *name; /* The name. */ -+ const char *doctype; /* The documented type. */ -+ struct _typeHintDef *typehint_in; /* The PEP 484 input type hint. */ -+ struct _typeHintDef *typehint_out; /* The PEP 484 output type hint. */ -+ const char *typehint_value; /* The type hint value. */ -+ int argflags; /* The argument flags. */ -+ int nrderefs; /* Nr. of dereferences. */ -+ int derefs[MAX_NR_DEREFS]; /* The const for each dereference. */ -+ valueDef *defval; /* The default value. */ -+ int scopes_stripped; /* Nr. of scopes to be stripped. */ -+ int key; /* The optional /KeepReference/ key. */ -+ struct _typedefDef *original_type; /* The original type if typedef'd. */ -+ union { -+ struct _signatureDef *sa; /* If it is a function. */ -+ struct _templateDef *td; /* If it is a template. */ -+ struct _scopedNameDef *snd; /* If it is a defined type. */ -+ struct _classDef *cd; /* If it is a class. */ -+ struct _enumDef *ed; /* If it is an enum. */ -+ struct _scopedNameDef *sname; /* If it is a struct. */ -+ struct _mappedTypeDef *mtd; /* If it is a mapped type. */ -+ struct _scopedNameDef *cap; /* If it is a capsule. */ -+ } u; -+} argDef; -+ -+ -+/* An entry in a linked argument list. */ -+typedef struct _argList { -+ argDef arg; /* The argument itself. */ -+ struct _argList *next; /* Next in the list. */ -+} argList; -+ -+ -+/* A function call. */ -+typedef struct _fcallDef { -+ argDef type; /* The type. */ -+ int nrArgs; /* The number of arguments. */ -+ struct _valueDef *args[MAX_NR_ARGS]; /* The arguments. */ -+} fcallDef; -+ -+ -+/* An API version range definition. */ -+typedef struct _apiVersionRangeDef { -+ nameDef *api_name; /* The API name. */ -+ int from; /* The lower bound. */ -+ int to; /* The upper bound. */ -+ int index; /* The range index. */ -+ struct _apiVersionRangeDef *next; /* The next in the list. */ -+} apiVersionRangeDef; -+ -+ -+/* A virtual error handler. */ -+typedef struct _virtErrorHandler { -+ const char *name; /* The name of the handler. */ -+ codeBlockList *code; /* The handler code. */ -+ struct _moduleDef *mod; /* The defining module. */ -+ int index; /* The index within the module. */ -+ struct _virtErrorHandler *next; /* The next in the list. */ -+} virtErrorHandler; -+ -+ -+/* A parsed PEP 484 compliant type hint. */ -+typedef struct _typeHintDef { -+ typeHintParseStatus status; /* The state of the type hint parse. */ -+ char *raw_hint; /* The raw hint. */ -+ struct _typeHintNodeDef *root; /* The root of parsed nodes. */ -+} typeHintDef; -+ -+ -+/* A node of a parsed type hint. */ -+typedef struct _typeHintNodeDef { -+ typeHintNodeType type; /* The type of the node. */ -+ union { -+ const char *name; /* For typing objects and others. */ -+ struct _classDef *cd; /* For class nodes. */ -+ struct _enumDef *ed; /* For enum nodes. */ -+ } u; -+ struct _typeHintNodeDef *children; /* The list of children. */ -+ struct _typeHintNodeDef *next; /* The next sibling. */ -+} typeHintNodeDef; -+ -+ -+/* An explicit docstring. */ -+typedef struct _docstringDef { -+ Signature signature; /* How the signature should be positioned. */ -+ char *text; /* The text of the docstring. */ -+} docstringDef; -+ -+ -+/* A module definition. */ -+typedef struct _moduleDef { -+ nameDef *fullname; /* The full module name. */ -+ const char *name; /* The module base name. */ -+ docstringDef *docstring; /* The docstring. */ -+ apiVersionRangeDef *api_versions; /* The defined APIs. */ -+ apiVersionRangeDef *api_ranges; /* The list of API version ranges. */ -+ int modflags; /* The module flags. */ -+ KwArgs kwargs; /* The style of keyword argument support. */ -+ struct _memberDef *othfuncs; /* List of other functions. */ -+ struct _overDef *overs; /* Global overloads. */ -+ Format defdocstringfmt; /* The default docstring format. */ -+ Signature defdocstringsig; /* The default docstring signature. */ -+ argType encoding; /* The default string encoding. */ -+ nameDef *defmetatype; /* The optional default meta-type. */ -+ nameDef *defsupertype; /* The optional default super-type. */ -+ struct _exceptionDef *defexception; /* The default exception. */ -+ codeBlockList *hdrcode; /* Header code. */ -+ codeBlockList *cppcode; /* Global C++ code. */ -+ codeBlockList *copying; /* Software license. */ -+ codeBlockList *preinitcode; /* Pre-initialisation code. */ -+ codeBlockList *initcode; /* Initialisation code. */ -+ codeBlockList *postinitcode; /* Post-initialisation code. */ -+ codeBlockList *unitcode; /* Compilation unit code. */ -+ codeBlockList *unitpostinccode; /* Compilation unit post-include code. */ -+ codeBlockList *typehintcode; /* Type hint code. */ -+ const char *virt_error_handler; /* The virtual error handler. */ -+ int parts; /* The number of parts generated. */ -+ const char *file; /* The filename. */ -+ qualDef *qualifiers; /* The list of qualifiers. */ -+ argDef *needed_types; /* The array of needed types. */ -+ int nr_needed_types; /* The number of needed types. */ -+ int nrtimelines; /* The nr. of timelines. */ -+ int nrexceptions; /* The nr. of exceptions. */ -+ int nrtypedefs; /* The nr. of typedefs. */ -+ int nrvirterrorhandlers; /* The nr. of virtual error handlers. */ -+ int next_key; /* The next key to allocate. */ -+ licenseDef *license; /* The software license. */ -+ struct _classDef *proxies; /* The list of proxy classes. */ -+ struct _moduleDef *container; /* The container module, if any. */ -+ struct _ifaceFileList *used; /* Interface files used. */ -+ struct _moduleListDef *allimports; /* The list of all imports. */ -+ struct _moduleListDef *imports; /* The list of direct imports. */ -+ struct _autoPyNameDef *autopyname; /* The Python naming rules. */ -+ struct _moduleDef *next; /* Next in the list. */ -+} moduleDef; -+ -+ -+/* An entry in a linked module list. */ -+typedef struct _moduleListDef { -+ moduleDef *module; /* The module itself. */ -+ struct _moduleListDef *next; /* The next in the list. */ -+} moduleListDef; -+ -+ -+/* An interface file definition. */ -+typedef struct _ifaceFileDef { -+ nameDef *name; /* The name. */ -+ int needed; /* The main module needs it. */ -+ apiVersionRangeDef *api_range; /* The optional API version range. */ -+ struct _ifaceFileDef *first_alt; /* The first alternate API. */ -+ struct _ifaceFileDef *next_alt; /* The next alternate API. */ -+ ifaceFileType type; /* Interface file type. */ -+ int ifacenr; /* The index into the types table. */ -+ scopedNameDef *fqcname; /* The fully qualified C++ name. */ -+ moduleDef *module; /* The owning module. */ -+ codeBlockList *hdrcode; /* Header code. */ -+ const char *file_extension; /* The optional file extension. */ -+ struct _ifaceFileList *used; /* Interface files used. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _ifaceFileDef *next; /* Next in the list. */ -+} ifaceFileDef; -+ -+ -+/* An entry in a linked interface file list. */ -+ -+typedef struct _ifaceFileList { -+ ifaceFileDef *iff; /* The interface file itself. */ -+ struct _ifaceFileList *next; /* Next in the list. */ -+} ifaceFileList; -+ -+ -+/* A mapped type. */ -+typedef struct _mappedTypeDef { -+ int mtflags; /* The mapped type flags. */ -+ argDef type; /* The type being mapped. */ -+ nameDef *pyname; /* The Python name. */ -+ nameDef *cname; /* The C/C++ name. */ -+ const char *doctype; /* The documented type. */ -+ typeHintDef *typehint_in; /* The PEP 484 input type hint. */ -+ typeHintDef *typehint_out; /* The PEP 484 output type hint. */ -+ const char *typehint_value; /* The type hint value. */ -+ ifaceFileDef *iff; /* The interface file. */ -+ struct _memberDef *members; /* The static member functions. */ -+ struct _overDef *overs; /* The static overloads. */ -+ codeBlockList *instancecode; /* Create instance code. */ -+ codeBlockList *typecode; /* Type code. */ -+ codeBlockList *convfromcode; /* Convert from C++ code. */ -+ codeBlockList *convtocode; /* Convert to C++ code. */ -+ struct _mappedTypeDef *real; /* The original definition. */ -+ struct _mappedTypeDef *next; /* Next in the list. */ -+} mappedTypeDef; -+ -+ -+/* A function signature. */ -+typedef struct _signatureDef { -+ argDef result; /* The result. */ -+ int nrArgs; /* The number of arguments. */ -+ argDef args[MAX_NR_ARGS]; /* The arguments. */ -+} signatureDef; -+ -+ -+/* A list of function signatures. */ -+typedef struct _signatureList { -+ struct _signatureDef *sd; /* The signature. */ -+ struct _signatureList *next; /* Next in the list. */ -+} signatureList; -+ -+ -+/* A template type. */ -+typedef struct _templateDef { -+ scopedNameDef *fqname; /* The name. */ -+ signatureDef types; /* The types. */ -+} templateDef; -+ -+ -+/* A list of virtual handlers. */ -+typedef struct _virtHandlerDef { -+ int virthandlernr; /* The nr. of the virtual handler. */ -+ int vhflags; /* The virtual handler flags. */ -+ signatureDef *pysig; /* The Python signature. */ -+ signatureDef *cppsig; /* The C++ signature. */ -+ codeBlockList *virtcode; /* Virtual handler code. */ -+ virtErrorHandler *veh; /* The virtual error handler. */ -+ struct _virtHandlerDef *next; /* Next in the list. */ -+} virtHandlerDef; -+ -+ -+/* A typedef definition. */ -+typedef struct _typedefDef { -+ int tdflags; /* The typedef flags. */ -+ scopedNameDef *fqname; /* The fully qualified name. */ -+ struct _classDef *ecd; /* The enclosing class. */ -+ moduleDef *module; /* The owning module. */ -+ argDef type; /* The actual type. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _typedefDef *next; /* Next in the list. */ -+} typedefDef; -+ -+ -+/* A variable definition. */ -+typedef struct _varDef { -+ scopedNameDef *fqcname; /* The fully qualified C/C++ name. */ -+ nameDef *pyname; /* The variable Python name. */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ struct _classDef *ecd; /* The enclosing class. */ -+ moduleDef *module; /* The owning module. */ -+ int varflags; /* The variable flags. */ -+ argDef type; /* The actual type. */ -+ codeBlockList *accessfunc; /* The access function. */ -+ codeBlockList *getcode; /* The get code. */ -+ codeBlockList *setcode; /* The set code. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _varDef *next; /* Next in the list. */ -+} varDef; -+ -+ -+/* A property definition. */ -+typedef struct _propertyDef { -+ nameDef *name; /* The property name. */ -+ docstringDef *docstring; /* The docstring. */ -+ const char *get; /* The name of the getter method. */ -+ const char *set; /* The name of the setter method. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _propertyDef *next; /* Next in the list. */ -+} propertyDef; -+ -+ -+/* An overloaded member function definition. */ -+typedef struct _overDef { -+ sourceLocation sloc; /* The source location. */ -+ char *cppname; /* The C++ name. */ -+ docstringDef *docstring; /* The docstring. */ -+ int overflags; /* The overload flags. */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ int pyqt_signal_hack; /* The PyQt signal hack. */ -+ KwArgs kwargs; /* The keyword argument support. */ -+ struct _memberDef *common; /* Common parts. */ -+ apiVersionRangeDef *api_range; /* The optional API version range. */ -+ signatureDef pysig; /* The Python signature. */ -+ signatureDef *cppsig; /* The C++ signature. */ -+ throwArgs *exceptions; /* The exceptions. */ -+ codeBlockList *methodcode; /* Method code. */ -+ codeBlockList *premethodcode; /* Code to insert before the method code. */ -+ codeBlockList *virtcallcode; /* Virtual call code. */ -+ codeBlockList *virtcode; /* Virtual handler code. */ -+ char *prehook; /* The pre-hook name. */ -+ char *posthook; /* The post-hook name. */ -+ const char *virt_error_handler; /* The virtual error handler. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _overDef *next; /* Next in the list. */ -+} overDef; -+ -+ -+/* An overloaded constructor definition. */ -+typedef struct _ctorDef { -+ docstringDef *docstring; /* The docstring. */ -+ int ctorflags; /* The ctor flags. */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ KwArgs kwargs; /* The keyword argument support. */ -+ apiVersionRangeDef *api_range; /* The optional API version range. */ -+ signatureDef pysig; /* The Python signature. */ -+ signatureDef *cppsig; /* The C++ signature, NULL if /NoDerived/. */ -+ throwArgs *exceptions; /* The exceptions. */ -+ codeBlockList *methodcode; /* Method code. */ -+ codeBlockList *premethodcode; /* Code to insert before the method code. */ -+ char *prehook; /* The pre-hook name. */ -+ char *posthook; /* The post-hook name. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _ctorDef *next; /* Next in the list. */ -+} ctorDef; -+ -+ -+/* An enumerated type member definition. */ -+typedef struct _enumMemberDef { -+ nameDef *pyname; /* The Python name. */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ char *cname; /* The C/C++ name. */ -+ struct _enumDef *ed; /* The enclosing enum. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _enumMemberDef *next; /* Next in the list. */ -+} enumMemberDef; -+ -+ -+/* An enumerated type definition. */ -+typedef struct _enumDef { -+ int enumflags; /* The enum flags. */ -+ scopedNameDef *fqcname; /* The C/C++ name (may be NULL). */ -+ nameDef *cname; /* The C/C++ name (may be NULL). */ -+ nameDef *pyname; /* The Python name (may be NULL). */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ struct _enumDef *first_alt; /* The first alternate API. */ -+ struct _enumDef *next_alt; /* The next alternate API. */ -+ int enumnr; /* The enum number. */ -+ int enum_idx; /* The enum index within the module. */ -+ struct _classDef *ecd; /* The enclosing class, if any. */ -+ struct _mappedTypeDef *emtd; /* The enclosing mapped type, if any. */ -+ moduleDef *module; /* The owning module. */ -+ enumMemberDef *members; /* The list of members. */ -+ struct _memberDef *slots; /* The list of slots. */ -+ struct _overDef *overs; /* The list of slot overloads. */ -+ platformDef *platforms; /* The platforms. */ -+ struct _enumDef *next; /* Next in the list. */ -+} enumDef; -+ -+ -+/* An member function definition. */ -+typedef struct _memberDef { -+ nameDef *pyname; /* The Python name. */ -+ int memberflags; /* The member flags. */ -+ int membernr; /* The index in the method table. */ -+ slotType slot; /* The slot type. */ -+ moduleDef *module; /* The owning module. */ -+ struct _ifaceFileDef *ns_scope; /* The scope if it has been moved. */ -+ struct _memberDef *next; /* Next in the list. */ -+} memberDef; -+ -+ -+/* A list of visible member functions. */ -+typedef struct _visibleList { -+ memberDef *m; /* The member definition. */ -+ struct _classDef *cd; /* The class. */ -+ struct _visibleList *next; /* Next in the list. */ -+} visibleList; -+ -+ -+/* An entry in a linked class list. */ -+typedef struct _classList { -+ struct _classDef *cd; /* The class itself. */ -+ struct _classList *next; /* Next in the list. */ -+} classList; -+ -+ -+/* A virtual overload definition. */ -+typedef struct _virtOverDef { -+ overDef *od; /* The overload. */ -+ virtHandlerDef *virthandler; /* The virtual handler. */ -+ struct _virtOverDef *next; /* Next in the list. */ -+} virtOverDef; -+ -+ -+/* A class that appears in a class's hierarchy. */ -+typedef struct _mroDef { -+ struct _classDef *cd; /* The class. */ -+ int mroflags; /* The hierarchy flags. */ -+ struct _mroDef *next; /* The next in the list. */ -+} mroDef; -+ -+ -+/* A class definition. */ -+typedef struct _classDef { -+ docstringDef *docstring; /* The class docstring. */ -+ unsigned classflags; /* The class flags. */ -+ unsigned classflags2; /* The class flags, part 2. */ -+ int pyqt_flags; /* The PyQt specific flags. */ -+ const char *pyqt_interface; /* The Qt interface name. */ -+ nameDef *pyname; /* The Python name. */ -+ int no_typehint; /* The type hint will be suppressed. */ -+ ifaceFileDef *iff; /* The interface file. */ -+ struct _classDef *ecd; /* The enclosing scope. */ -+ struct _classDef *real; /* The real class if this is a proxy or extender. */ -+ classList *supers; /* The parent classes. */ -+ mroDef *mro; /* The super-class hierarchy. */ -+ nameDef *metatype; /* The meta-type. */ -+ nameDef *supertype; /* The super-type. */ -+ templateDef *td; /* The instantiated template. */ -+ ctorDef *ctors; /* The constructors. */ -+ ctorDef *defctor; /* The default ctor. */ -+ codeBlockList *dealloccode; /* Handwritten dealloc code. */ -+ codeBlockList *dtorcode; /* Handwritten dtor code. */ -+ throwArgs *dtorexceptions; /* The dtor exceptions. */ -+ memberDef *members; /* The member functions. */ -+ overDef *overs; /* The overloads. */ -+ argList *casts; /* The operator casts. */ -+ virtOverDef *vmembers; /* The virtual members. */ -+ visibleList *visible; /* The visible members. */ -+ codeBlockList *cppcode; /* Class C++ code. */ -+ codeBlockList *convtosubcode; /* Convert to sub C++ code. */ -+ struct _classDef *subbase; /* Sub-class base class. */ -+ codeBlockList *instancecode; /* Create instance code. */ -+ codeBlockList *convtocode; /* Convert to C++ code. */ -+ codeBlockList *convfromcode; /* Convert from C++ code. */ -+ codeBlockList *travcode; /* Traverse code. */ -+ codeBlockList *clearcode; /* Clear code. */ -+ codeBlockList *getbufcode; /* Get buffer code (Python v3). */ -+ codeBlockList *releasebufcode; /* Release buffer code (Python v3). */ -+ codeBlockList *readbufcode; /* Read buffer code (Python v2). */ -+ codeBlockList *writebufcode; /* Write buffer code (Python v2). */ -+ codeBlockList *segcountcode; /* Segment count code (Python v2). */ -+ codeBlockList *charbufcode; /* Character buffer code (Python v2). */ -+ codeBlockList *picklecode; /* Pickle code. */ -+ codeBlockList *finalcode; /* Finalisation code. */ -+ codeBlockList *typehintcode; /* Type hint code. */ -+ propertyDef *properties; /* The properties. */ -+ const char *virt_error_handler; /* The virtual error handler. */ -+ typeHintDef *typehint_in; /* The PEP 484 input type hint. */ -+ typeHintDef *typehint_out; /* The PEP 484 output type hint. */ -+ const char *typehint_value; /* The type hint value. */ -+ struct _classDef *next; /* Next in the list. */ -+} classDef; -+ -+ -+/* A class template definition. */ -+typedef struct _classTmplDef { -+ signatureDef sig; /* The template arguments. */ -+ classDef *cd; /* The class itself. */ -+ struct _classTmplDef *next; /* The next in the list. */ -+} classTmplDef; -+ -+ -+/* A mapped type template definition. */ -+typedef struct _mappedTypeTmplDef { -+ signatureDef sig; /* The template arguments. */ -+ mappedTypeDef *mt; /* The mapped type itself. */ -+ struct _mappedTypeTmplDef *next; /* The next in the list. */ -+} mappedTypeTmplDef; -+ -+ -+/* The extracts for an identifier. */ -+typedef struct _extractDef { -+ const char *id; /* The identifier. */ -+ struct _extractPartDef *parts; /* The ordered list of parts. */ -+ struct _extractDef *next; /* The next in the list. */ -+} extractDef; -+ -+ -+/* Part of an extract for an identifier. */ -+typedef struct _extractPartDef { -+ int order; /* The order of the part. */ -+ codeBlock *part; /* The part itself. */ -+ struct _extractPartDef *next; /* The next in the list. */ -+} extractPartDef; -+ -+ -+/* A rule for automatic Python naming. */ -+typedef struct _autoPyNameDef { -+ const char *remove_leading; /* Leading string to remove. */ -+ struct _autoPyNameDef *next; /* The next in the list. */ -+} autoPyNameDef; -+ -+ -+/* The parse tree corresponding to the specification file. */ -+typedef struct { -+ moduleDef *module; /* The module being generated. */ -+ moduleDef *modules; /* The list of modules. */ -+ nameDef *namecache; /* The name cache. */ -+ ifaceFileDef *ifacefiles; /* The list of interface files. */ -+ classDef *classes; /* The list of classes. */ -+ classTmplDef *classtemplates; /* The list of class templates. */ -+ exceptionDef *exceptions; /* The list of exceptions. */ -+ mappedTypeDef *mappedtypes; /* The mapped types. */ -+ mappedTypeTmplDef *mappedtypetemplates; /* The list of mapped type templates. */ -+ enumDef *enums; /* List of enums. */ -+ varDef *vars; /* List of variables. */ -+ typedefDef *typedefs; /* List of typedefs. */ -+ int nrvirthandlers; /* The number of virtual handlers. */ -+ virtHandlerDef *virthandlers; /* The virtual handlers. */ -+ virtErrorHandler *errorhandlers; /* The list of virtual error handlers. */ -+ codeBlockList *exphdrcode; /* Exported header code. */ -+ codeBlockList *exptypehintcode; /* Exported type hint code. */ -+ codeBlockList *docs; /* Documentation. */ -+ classDef *qobject_cd; /* QObject class, NULL if none. */ -+ int sigslots; /* Set if signals or slots are used. */ -+ int genc; /* Set if we are generating C code. */ -+ struct _stringList *plugins; /* The list of plugins. */ -+ struct _extractDef *extracts; /* The list of extracts. */ -+} sipSpec; -+ -+ -+/* A list of strings. */ -+typedef struct _stringList { -+ const char *s; /* The string. */ -+ struct _stringList *next; /* The next in the list. */ -+} stringList; -+ -+ -+/* File specific context information for the parser. */ -+typedef struct _parserContext { -+ const char *filename; /* The %Import or %Include filename. */ -+ int ifdepth; /* The depth of nested if's. */ -+ moduleDef *prevmod; /* The previous module. */ -+} parserContext; -+ -+ -+extern char *sipVersion; /* The version of SIP. */ -+extern stringList *includeDirList; /* The include directory list for SIP files. */ -+ -+ -+void parse(sipSpec *, FILE *, char *, int, stringList *, stringList *, -+ stringList *, KwArgs, int); -+void parserEOF(const char *,parserContext *); -+void transform(sipSpec *, int); -+void generateCode(sipSpec *, char *, char *, char *, const char *, int, int, -+ int, int, stringList *needed_qualifiers, stringList *, const char *, -+ int, int, const char *); -+void generateExtracts(sipSpec *pt, const stringList *extracts); -+void addExtractPart(sipSpec *pt, const char *id, int order, codeBlock *part); -+void generateAPI(sipSpec *pt, moduleDef *mod, const char *apiFile); -+void generateXML(sipSpec *pt, moduleDef *mod, const char *xmlFile); -+void generateTypeHints(sipSpec *pt, moduleDef *mod, const char *pyiFile); -+void generateExpression(valueDef *vd, int in_str, FILE *fp); -+void warning(Warning w, const char *fmt, ...); -+void deprecated(const char *msg); -+SIP_NORETURN void fatal(const char *fmt,...); -+void fatalScopedName(scopedNameDef *); -+void fatalStart(); -+void getSourceLocation(sourceLocation *slp); -+int setInputFile(FILE *open_fp, parserContext *pc, int optional); -+void resetLexerState(); -+void *sipMalloc(size_t n); -+void *sipCalloc(size_t nr, size_t n); -+char *sipStrdup(const char *); -+char *concat(const char *, ...); -+void append(char **, const char *); -+void appendToIfaceFileList(ifaceFileList **ifflp, ifaceFileDef *iff); -+int selectedQualifier(stringList *needed_qualifiers, qualDef *qd); -+int excludedFeature(stringList *,qualDef *); -+int sameSignature(signatureDef *,signatureDef *,int); -+int sameTemplateSignature(signatureDef *tmpl_sd, signatureDef *args_sd, -+ int deep); -+int compareScopedNames(scopedNameDef *snd1, scopedNameDef *snd2); -+int sameBaseType(argDef *,argDef *); -+char *scopedNameTail(scopedNameDef *); -+scopedNameDef *copyScopedName(scopedNameDef *); -+void appendScopedName(scopedNameDef **,scopedNameDef *); -+void freeScopedName(scopedNameDef *); -+void appendToClassList(classList **,classDef *); -+void appendCodeBlockList(codeBlockList **headp, codeBlockList *cbl); -+void prcode(FILE *fp, const char *fmt, ...); -+void prCopying(FILE *fp, moduleDef *mod, const char *comment); -+void prOverloadName(FILE *fp, overDef *od); -+void prOverloadDecl(FILE *fp, ifaceFileDef *scope, overDef *od, int defval); -+void prDefaultValue(argDef *ad, int in_str, FILE *fp); -+void prScopedPythonName(FILE *fp, classDef *scope, const char *pyname); -+void searchTypedefs(sipSpec *pt, scopedNameDef *snd, argDef *ad); -+int isZeroArgSlot(memberDef *md); -+int isIntReturnSlot(memberDef *md); -+int isSSizeReturnSlot(memberDef *md); -+int isLongReturnSlot(memberDef *md); -+int isVoidReturnSlot(memberDef *md); -+int isNumberSlot(memberDef *md); -+int isInplaceNumberSlot(memberDef *md); -+int isRichCompareSlot(memberDef *md); -+mappedTypeDef *allocMappedType(sipSpec *pt, argDef *type); -+void appendString(stringList **headp, const char *s); -+void appendTypeStrings(scopedNameDef *ename, signatureDef *patt, signatureDef *src, signatureDef *known, scopedNameDef **names, scopedNameDef **values); -+codeBlockList *templateCode(sipSpec *pt, ifaceFileList **used, -+ codeBlockList *ocbl, scopedNameDef *names, scopedNameDef *values); -+ifaceFileDef *findIfaceFile(sipSpec *pt, moduleDef *mod, -+ scopedNameDef *fqname, ifaceFileType iftype, -+ apiVersionRangeDef *api_range, argDef *ad); -+int pluginPyQt4(sipSpec *pt); -+int pluginPyQt5(sipSpec *pt); -+SIP_NORETURN void yyerror(char *); -+void yywarning(char *); -+int yylex(); -+nameDef *cacheName(sipSpec *pt, const char *name); -+scopedNameDef *encodedTemplateName(templateDef *td); -+apiVersionRangeDef *findAPI(sipSpec *pt, const char *name); -+memberDef *findMethod(classDef *cd, const char *name); -+typeHintDef *newTypeHint(char *raw_hint); -+int isPyKeyword(const char *word); -+void getDefaultImplementation(sipSpec *pt, argType atype, classDef **cdp, -+ mappedTypeDef **mtdp); -+char *templateString(const char *src, scopedNameDef *names, -+ scopedNameDef *values); -+int inDefaultAPI(sipSpec *pt, apiVersionRangeDef *range); -+int hasImplicitOverloads(signatureDef *sd); -+void dsCtor(sipSpec *pt, classDef *cd, ctorDef *ct, int sec, FILE *fp); -+void dsOverload(sipSpec *pt, overDef *od, int is_method, int sec, FILE *fp); -+scopedNameDef *getFQCNameOfType(argDef *ad); -+scopedNameDef *removeGlobalScope(scopedNameDef *snd); -+void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, -+ ifaceFileList *defined, int pep484, int rest, FILE *fp); -+void restPyClass(classDef *cd, int as_ref, FILE *fp); -+void restPyEnum(enumDef *ed, int as_ref, FILE *fp); -+ -+ -+/* These are only here because bison publically references them. */ -+ -+/* Represent a set of option flags. */ -+ -+#define MAX_NR_FLAGS 5 -+ -+typedef enum { -+ bool_flag, -+ string_flag, -+ name_flag, -+ opt_name_flag, -+ dotted_name_flag, -+ integer_flag, -+ opt_integer_flag, -+ api_range_flag -+} flagType; -+ -+typedef struct { -+ const char *fname; /* The flag name. */ -+ flagType ftype; /* The flag type. */ -+ union { /* The flag value. */ -+ char *sval; /* A string value. */ -+ long ival; /* An integer value. */ -+ apiVersionRangeDef *aval; /* An API range value. */ -+ } fvalue; -+} optFlag; -+ -+typedef struct { -+ int nrFlags; /* The number of flags. */ -+ optFlag flags[MAX_NR_FLAGS]; /* Each flag. */ -+} optFlags; -+ -+ -+/* These represent the configuration of different directives. */ -+ -+/* %API */ -+typedef struct _apiCfg { -+ int token; -+ const char *name; -+ int version; -+} apiCfg; -+ -+/* %AutoPyName */ -+typedef struct _autoPyNameCfg { -+ int token; -+ const char *remove_leading; -+} autoPyNameCfg; -+ -+/* %CompositeModule */ -+typedef struct _compModuleCfg { -+ int token; -+ const char *name; -+ docstringDef *docstring; -+} compModuleCfg; -+ -+/* %ConsolidatedModule */ -+typedef struct _consModuleCfg { -+ int token; -+ const char *name; -+ docstringDef *docstring; -+} consModuleCfg; -+ -+/* %DefaultDocstringFormat */ -+typedef struct _defDocstringFmtCfg { -+ int token; -+ const char *name; -+} defDocstringFmtCfg; -+ -+/* %DefaultDocstringSignature */ -+typedef struct _defDocstringSigCfg { -+ int token; -+ const char *name; -+} defDocstringSigCfg; -+ -+/* %DefaultEncoding */ -+typedef struct _defEncodingCfg { -+ int token; -+ const char *name; -+} defEncodingCfg; -+ -+/* %DefaultMetatype */ -+typedef struct _defMetatypeCfg { -+ int token; -+ const char *name; -+} defMetatypeCfg; -+ -+/* %DefaultSupertype */ -+typedef struct _defSupertypeCfg { -+ int token; -+ const char *name; -+} defSupertypeCfg; -+ -+/* %Docstring */ -+typedef struct _docstringCfg { -+ int token; -+ Format format; -+ Signature signature; -+} docstringCfg; -+ -+/* %Exception */ -+typedef struct _exceptionCfg { -+ int token; -+ codeBlock *type_header_code; -+ codeBlock *raise_code; -+} exceptionCfg; -+ -+/* %Extract */ -+typedef struct _extractCfg { -+ int token; -+ const char *id; -+ int order; -+} extractCfg; -+ -+/* %Feature */ -+typedef struct _featureCfg { -+ int token; -+ const char *name; -+} featureCfg; -+ -+/* %HiddenNamespace */ -+typedef struct _hiddenNsCfg { -+ int token; -+ scopedNameDef *name; -+} hiddenNsCfg; -+ -+/* %Import */ -+typedef struct _importCfg { -+ int token; -+ const char *name; -+} importCfg; -+ -+/* %Include */ -+typedef struct _includeCfg { -+ int token; -+ const char *name; -+ int optional; -+} includeCfg; -+ -+/* %License */ -+typedef struct _licenseCfg { -+ int token; -+ const char *type; -+ const char *licensee; -+ const char *signature; -+ const char *timestamp; -+} licenseCfg; -+ -+/* %Module and its sub-directives. */ -+typedef struct _moduleCfg { -+ int token; -+ int c_module; -+ KwArgs kwargs; -+ const char *name; -+ int use_arg_names; -+ int use_limited_api; -+ int all_raise_py_exc; -+ int call_super_init; -+ const char *def_error_handler; -+ docstringDef *docstring; -+} moduleCfg; -+ -+/* %Plugin */ -+typedef struct _pluginCfg { -+ int token; -+ const char *name; -+} pluginCfg; -+ -+/* %Property */ -+typedef struct _propertyCfg { -+ int token; -+ const char *get; -+ const char *name; -+ const char *set; -+ docstringDef *docstring; -+} propertyCfg; -+ -+/* Variable sub-directives. */ -+typedef struct _variableCfg { -+ int token; -+ codeBlock *access_code; -+ codeBlock *get_code; -+ codeBlock *set_code; -+} variableCfg; -+ -+/* %VirtualErrorHandler */ -+typedef struct _vehCfg { -+ int token; -+ const char *name; -+} vehCfg; -+ -+#endif -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/transform.c sip/sipgen/transform.c ---- ./sip-4.19.12.orig/sipgen/transform.c 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sipgen/transform.c 2018-09-24 13:12:20.694275757 -0400 -@@ -89,7 +89,8 @@ - static classDef *findAltClassImplementation(sipSpec *pt, mappedTypeDef *mtd); - static ifaceFileDef *getIfaceFile(argDef *ad); - static ifaceFileDef *getIfaceFileForEnum(enumDef *ed); --static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type); -+static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, -+ mappedTypeTmplDef *mtt, argDef *type); - static classDef *getProxy(moduleDef *mod, classDef *cd); - static int generatingCodeForModule(sipSpec *pt, moduleDef *mod); - static void checkAssignmentHelper(sipSpec *pt, classDef *cd); -@@ -3040,9 +3041,7 @@ - for (mtt = pt->mappedtypetemplates; mtt != NULL; mtt = mtt->next) - if (compareScopedNames(mtt->mt->type.u.td->fqname, type->u.td->fqname) == 0 && sameTemplateSignature(&mtt->mt->type.u.td->types, &type->u.td->types, TRUE)) - { -- type->u.mtd = instantiateMappedTypeTemplate(pt, mod, mtt, type); -- type->atype = mapped_type; -- -+ instantiateMappedTypeTemplate(pt, mod, mtt, type); - break; - } - } -@@ -3144,9 +3143,10 @@ - - - /* -- * Instantiate a mapped type template and return it. -+ * Instantiate a mapped type template. - */ --static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type) -+static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, -+ mappedTypeTmplDef *mtt, argDef *type) - { - scopedNameDef *type_names, *type_values; - mappedTypeDef *mtd; -@@ -3201,7 +3201,13 @@ - - mtd = copyTemplateType(mtd, type); - -- return mtd; -+ /* Replace the template with the mapped type. */ -+ type->atype = mapped_type; -+ type->typehint_in = mtd->typehint_in; -+ type->typehint_out = mtd->typehint_out; -+ type->typehint_value = mtd->typehint_value; -+ -+ type->u.mtd = mtd; - } - - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/type_hints.c sip/sipgen/type_hints.c ---- ./sip-4.19.12.orig/sipgen/type_hints.c 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sipgen/type_hints.c 2018-09-24 13:12:20.695275742 -0400 -@@ -57,10 +57,8 @@ - ifaceFileList *defined, KwArgs kwargs, int pep484, FILE *fp); - static void pyiType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, int sec, - ifaceFileList *defined, int pep484, FILE *fp); --static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, -- ifaceFileList *defined, int pep484, FILE *fp); - static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod, -- ifaceFileList *defined, int pep484, FILE *fp); -+ ifaceFileList *defined, int pep484, int rest, FILE *fp); - static void prIndent(int indent, FILE *fp); - static int separate(int first, int indent, FILE *fp); - static void prClassRef(classDef *cd, moduleDef *mod, ifaceFileList *defined, -@@ -956,7 +954,7 @@ - - if (thd != NULL) - { -- pyiTypeHint(pt, thd, mod, out, defined, pep484, fp); -+ pyiTypeHint(pt, thd, mod, out, defined, pep484, FALSE, fp); - return; - } - -@@ -1415,13 +1413,13 @@ - /* - * Generate a type hint from a /TypeHint/ annotation. - */ --static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, -- ifaceFileList *defined, int pep484, FILE *fp) -+void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, -+ ifaceFileList *defined, int pep484, int rest, FILE *fp) - { - parseTypeHint(pt, thd, out); - - if (thd->root != NULL) -- pyiTypeHintNode(thd->root, mod, defined, pep484, fp); -+ pyiTypeHintNode(thd->root, mod, defined, pep484, rest, fp); - else - maybeAnyObject(thd->raw_hint, pep484, fp); - } -@@ -1431,7 +1429,7 @@ - * Generate a single node of a type hint. - */ - static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod, -- ifaceFileList *defined, int pep484, FILE *fp) -+ ifaceFileList *defined, int pep484, int rest, FILE *fp) - { - switch (node->type) - { -@@ -1452,7 +1450,7 @@ - - need_comma = TRUE; - -- pyiTypeHintNode(thnd, mod, defined, pep484, fp); -+ pyiTypeHintNode(thnd, mod, defined, pep484, rest, fp); - } - - fprintf(fp, "]"); -@@ -1461,11 +1459,19 @@ - break; - - case class_node: -- prClassRef(node->u.cd, mod, defined, pep484, fp); -+ if (rest) -+ restPyClass(node->u.cd, TRUE, fp); -+ else -+ prClassRef(node->u.cd, mod, defined, pep484, fp); -+ - break; - - case enum_node: -- prEnumRef(node->u.ed, mod, defined, pep484, fp); -+ if (rest) -+ restPyEnum(node->u.ed, TRUE, fp); -+ else -+ prEnumRef(node->u.ed, mod, defined, pep484, fp); -+ - break; - - case brackets_node: -@@ -1702,7 +1708,7 @@ - - - /* -- * Flatten an unions in a list of nodes. -+ * Flatten any unions in a list of nodes. - */ - static typeHintNodeDef *flatten_unions(typeHintNodeDef *nodes) - { -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h sip/siplib/sip.h ---- ./sip-4.19.12.orig/siplib/sip.h 2018-07-05 05:55:19.000000000 -0400 -+++ sip/siplib/sip.h 2018-09-18 18:12:23.643053242 -0400 -@@ -54,8 +54,8 @@ - /* - * Define the SIP version number. - */ --#define SIP_VERSION 0x04130c --#define SIP_VERSION_STR "4.19.12" -+#define SIP_VERSION 0x04ffff -+#define SIP_VERSION_STR "4.255.255" - - - /* -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h.in sip/siplib/sip.h.in ---- ./sip-4.19.12.orig/siplib/sip.h.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/siplib/sip.h.in 2018-09-18 17:52:23.290543826 -0400 -@@ -0,0 +1,2169 @@ -+/* -+ * The SIP module interface. -+ * -+ * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> -+ * -+ * This file is part of SIP. -+ * -+ * This copy of SIP is licensed for use under the terms of the SIP License -+ * Agreement. See the file LICENSE for more details. -+ * -+ * This copy of SIP may also used under the terms of the GNU General Public -+ * License v2 or v3 as published by the Free Software Foundation which can be -+ * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. -+ * -+ * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -+ */ -+ -+ -+#ifndef _SIP_H -+#define _SIP_H -+ -+ -+/* -+ * This gets round a problem with Qt's moc and Python v2.3. Strictly speaking -+ * it's a Qt problem but later versions of Python include a fix for it so we -+ * might as well too. -+ */ -+#undef slots -+ -+ -+#include <Python.h> -+ -+/* -+ * There is a mis-feature somewhere with the Borland compiler. This works -+ * around it. -+ */ -+#if defined(__BORLANDC__) -+#include <rpc.h> -+#endif -+ -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+ -+/* Sanity check on the Python version. */ -+#if PY_VERSION_HEX < 0x02030000 -+#error "This version of SIP requires Python v2.3 or later" -+#endif -+ -+ -+/* -+ * Define the SIP version number. -+ */ -+#define SIP_VERSION 0x@RM_HEXVERSION@ -+#define SIP_VERSION_STR "@RM_RELEASE@" -+ -+ -+/* -+ * Define the current API version number. SIP must handle modules with the -+ * same major number and with the same or earlier minor number. Whenever -+ * members are added to non-embedded data structures they must be appended and -+ * the minor number incremented. Whenever data structure members are removed -+ * or their offset changed then the major number must be incremented and the -+ * minor number set * to 0. -+ * -+ * History: -+ * -+ * 12.5 Replaced the sipConvertFromSliceObject() macro with -+ * sip_api_convert_from_slice_object() in the public API. -+ * -+ * 12.4 Added sip_api_instance_destroyed_ex() to the private API. -+ * -+ * 12.3 Added SIP_TYPE_SCOPED_ENUM to the sipTypeDef flags. -+ * Added sip_api_convert_to_enum() to the public API. -+ * Added sip_api_convert_to_bool() to the public API. -+ * Added sip_api_long_as_char(), sip_api_long_as_signed_char(), -+ * sip_api_long_as_unsigned_char(), sip_api_long_as_short(), -+ * sip_api_long_as_unsigned_short(), sip_api_long_as_int(), -+ * sip_api_long_as_unsigned_int(), sip_api_long_as_long(), -+ * sip_api_long_as_unsigned_long(), sip_api_long_as_long_long(), -+ * sip_api_long_as_unsigned_long_long() to the public API. -+ * Deprecated sip_api_can_convert_to_enum(). -+ * -+ * 12.2 Added sip_api_print_object() to the public API. -+ * Renamed sip_api_common_dtor() to sip_api_instance_destroyed() and added -+ * it to the public API. -+ * Added sipEventType and sip_api_register_event_handler() to the public -+ * API. -+ * -+ * 12.1 Added sip_api_enable_gc() to the public API. -+ * -+ * 12.0 Added SIP_TYPE_LIMITED_API to the sipTypeDef flags. -+ * Added sip_api_py_type_dict() and sip_api_py_type_name() to the public -+ * API. -+ * Added sip_api_set_new_user_type_handler() to the public API. -+ * Added sip_api_is_user_type() to the public API. -+ * Added sip_api_set_type_user_data() and sip_api_get_type_user_data() to -+ * the public API. -+ * Added sip_api_set_user_object() and sip_api_get_user_object() to the -+ * public API. -+ * Added sip_api_get_method() and sip_api_from_method() to the public API. -+ * Added sip_api_get_c_function() to the public API. -+ * Added sip_api_get_date() and sip_api_from_date() to the public API. -+ * Added sip_api_get_datetime() and sip_api_from_datetime() to the public -+ * API. -+ * Added sip_api_get_time() and sip_api_from_time() to the public API. -+ * Added sip_api_get_frame() to the public API. -+ * Added sip_api_check_plugin_for_type() to the public API. -+ * Added sip_api_unicode_new(), sip_api_unicode_write() and -+ * sip_api_unicode_data() to the public API. -+ * Added sip_api_get_buffer_info() and sip_api_relese_buffer_info() to the -+ * public API. -+ * Added sip_api_call_procedure_method() to the public API. -+ * Added sip_api_is_owned_by_python() to the private API. -+ * Added sip_api_is_derived_class() to the private API. -+ * Removed the im_version member from sipImportedModuleDef. -+ * Removed the im_module member from sipImportedModuleDef. -+ * Removed the em_version member from sipExportedModuleDef. -+ * Removed the em_virthandlers member from sipExportedModuleDef. -+ * Re-ordered the API functions. -+ * -+ * 11.3 Added sip_api_get_interpreter() to the public API. -+ * -+ * 11.2 Added sip_api_get_reference() to the private API. -+ * -+ * 11.1 Added sip_api_invoke_slot_ex(). -+ * -+ * 11.0 Added the pyqt5QtSignal and pyqt5ClassTypeDef structures. -+ * Removed qt_interface from pyqt4ClassTypeDef. -+ * Added hack to pyqt4QtSignal. -+ * -+ * 10.1 Added ctd_final to sipClassTypeDef. -+ * Added ctd_init_mixin to sipClassTypeDef. -+ * Added sip_api_get_mixin_address() to the public API. -+ * Added sip_api_convert_from_new_pytype() to the public API. -+ * Added sip_api_convert_to_array() to the public API. -+ * Added sip_api_convert_to_typed_array() to the public API. -+ * Added sip_api_register_proxy_resolver() to the public API. -+ * Added sip_api_init_mixin() to the private API. -+ * Added qt_interface to pyqt4ClassTypeDef. -+ * -+ * 10.0 Added sip_api_set_destroy_on_exit(). -+ * Added sip_api_enable_autoconversion(). -+ * Removed sip_api_call_error_handler_old(). -+ * Removed sip_api_start_thread(). -+ * -+ * 9.2 Added sip_gilstate_t and SIP_RELEASE_GIL to the public API. -+ * Renamed sip_api_call_error_handler() to -+ * sip_api_call_error_handler_old(). -+ * Added the new sip_api_call_error_handler() to the private API. -+ * -+ * 9.1 Added the capsule type. -+ * Added the 'z' format character to sip_api_build_result(). -+ * Added the 'z', '!' and '$' format characters to -+ * sip_api_parse_result_ex(). -+ * -+ * 9.0 Changed the sipVariableGetterFunc signature. -+ * Added sip_api_parse_result_ex() to the private API. -+ * Added sip_api_call_error_handler() to the private API. -+ * Added em_virterrorhandlers to sipExportedModuleDef. -+ * Re-ordered the API functions. -+ * -+ * 8.1 Revised the sipVariableDef structure. -+ * sip_api_get_address() is now part of the public API. -+ * -+ * 8.0 Changed the size of the sipSimpleWrapper structure. -+ * Added sip_api_get_address(). -+ * -+ * 7.1 Added the 'H' format character to sip_api_parse_result(). -+ * Deprecated the 'D' format character of sip_api_parse_result(). -+ * -+ * 7.0 Added sip_api_parse_kwd_args(). -+ * Added sipErrorState, sip_api_add_exception(). -+ * The type initialisation function is now passed a dictionary of keyword -+ * arguments. -+ * All argument parsers now update a set of error messages rather than an -+ * argument count. -+ * The signatures of sip_api_no_function() and sip_api_no_method() have -+ * changed. -+ * Added ctd_docstring to sipClassTypeDef. -+ * Added vf_docstring to sipVersionedFunctionDef. -+ * -+ * 6.0 Added the sipContainerDef structure to define the contents of a class -+ * or mapped type. Restructured sipClassDef and sipMappedTypeDef -+ * accordingly. -+ * Added the 'r' format character to sip_api_parse_args(). -+ * Added the 'r' format character to sip_api_call_method() and -+ * sip_api_build_result(). -+ * Added the assignment, array and copy allocation helpers. -+ * -+ * 5.0 Added sip_api_is_api_enabled(). -+ * Renamed the td_version_nr member of sipTypeDef to be int and where -1 -+ * indicates it is not versioned. -+ * Added the em_versions member to sipExportedModuleDef. -+ * Added the em_versioned_functions member to sipExportedModuleDef. -+ * -+ * 4.0 Much refactoring. -+ * -+ * 3.8 Added sip_api_register_qt_metatype() and sip_api_deprecated(). -+ * Added qt_register_meta_type() to the Qt support API. -+ * The C/C++ names of enums and types are now always defined in the -+ * relevant structures and don't default to the Python name. -+ * Added the 'XE' format characters to sip_api_parse_args(). -+ * -+ * 3.7 Added sip_api_convert_from_const_void_ptr(), -+ * sip_api_convert_from_void_ptr_and_size() and -+ * sip_api_convert_from_const_void_ptr_and_size(). -+ * Added the 'g' and 'G' format characters (to replace the now deprecated -+ * 'a' and 'A' format characters) to sip_api_build_result(), -+ * sip_api_call_method() and sip_api_parse_result(). -+ * Added the 'k' and 'K' format characters (to replace the now deprecated -+ * 'a' and 'A' format characters) to sip_api_parse_args(). -+ * Added sip_api_invoke_slot(). -+ * Added sip_api_parse_type(). -+ * Added sip_api_is_exact_wrapped_type(). -+ * Added the td_assign and td_qt fields to the sipTypeDef structure. -+ * Added the mt_assign field to the sipMappedType structure. -+ * -+ * 3.6 Added the 'g' format character to sip_api_parse_args(). -+ * -+ * 3.5 Added the td_pickle field to the sipTypeDef structure. -+ * Added sip_api_transfer_break(). -+ * -+ * 3.4 Added qt_find_connection() to the Qt support API. -+ * Added sip_api_string_as_char(), sip_api_unicode_as_wchar(), -+ * sip_api_unicode_as_wstring(), sip_api_find_class(), -+ * sip_api_find_named_enum() and sip_api_parse_signature(). -+ * Added the 'A', 'w' and 'x' format characters to sip_api_parse_args(), -+ * sip_api_parse_result(), sip_api_build_result() and -+ * sip_api_call_method(). -+ * -+ * 3.3 Added sip_api_register_int_types(). -+ * -+ * 3.2 Added sip_api_export_symbol() and sip_api_import_symbol(). -+ * -+ * 3.1 Added sip_api_add_mapped_type_instance(). -+ * -+ * 3.0 Moved the Qt support out of the sip module and into PyQt. This is -+ * such a dramatic change that there is no point in attempting to maintain -+ * backwards compatibility. -+ * -+ * 2.0 Added the td_flags field to the sipTypeDef structure. -+ * Added the first_child, sibling_next, sibling_prev and parent fields to -+ * the sipWrapper structure. -+ * Added the td_traverse and td_clear fields to the sipTypeDef structure. -+ * Added the em_api_minor field to the sipExportedModuleDef structure. -+ * Added sip_api_bad_operator_arg(). -+ * Added sip_api_wrapper_check(). -+ * -+ * 1.1 Added support for __pos__ and __abs__. -+ * -+ * 1.0 Removed all deprecated parts of the API. -+ * Removed the td_proxy field from the sipTypeDef structure. -+ * Removed the create proxy function from the 'q' and 'y' format -+ * characters to sip_api_parse_args(). -+ * Removed sip_api_emit_to_slot(). -+ * Reworked the enum related structures. -+ * -+ * 0.2 Added the 'H' format character to sip_api_parse_args(). -+ * -+ * 0.1 Added sip_api_add_class_instance(). -+ * Added the 't' format character to sip_api_parse_args(). -+ * Deprecated the 'J' and 'K' format characters to sip_api_parse_result(). -+ * -+ * 0.0 Original version. -+ */ -+#define SIP_API_MAJOR_NR 12 -+#define SIP_API_MINOR_NR 5 -+ -+ -+/* -+ * Qt includes this typedef and its meta-object system explicitly converts -+ * types to uint. If these correspond to signal arguments then that conversion -+ * is exposed. Therefore SIP generates code that uses it. This definition is -+ * for the cases that SIP is generating non-Qt related bindings with compilers -+ * that don't include it themselves (i.e. MSVC). -+ */ -+typedef unsigned int uint; -+ -+ -+/* Some Python compatibility stuff. */ -+#if PY_VERSION_HEX >= 0x02050000 -+ -+#define SIP_SSIZE_T Py_ssize_t -+#define SIP_SSIZE_T_FORMAT "%zd" -+ -+#define SIP_MLNAME_CAST(s) (s) -+#define SIP_MLDOC_CAST(s) (s) -+#define SIP_TPNAME_CAST(s) (s) -+ -+#else -+ -+#define SIP_SSIZE_T int -+#define SIP_SSIZE_T_FORMAT "%d" -+ -+#define SIP_MLNAME_CAST(s) ((char *)(s)) -+#define SIP_MLDOC_CAST(s) ((char *)(s)) -+#define SIP_TPNAME_CAST(s) ((char *)(s)) -+ -+#endif -+ -+#if PY_MAJOR_VERSION >= 3 -+ -+#define SIPLong_Check PyLong_Check -+#define SIPLong_FromLong PyLong_FromLong -+#define SIPLong_AsLong PyLong_AsLong -+ -+#define SIPBytes_Check PyBytes_Check -+#define SIPBytes_FromString PyBytes_FromString -+#define SIPBytes_FromStringAndSize PyBytes_FromStringAndSize -+#define SIPBytes_AsString PyBytes_AsString -+#define SIPBytes_Size PyBytes_Size -+#define SIPBytes_AS_STRING PyBytes_AS_STRING -+#define SIPBytes_GET_SIZE PyBytes_GET_SIZE -+ -+#if PY_MINOR_VERSION >= 1 -+#define SIP_USE_PYCAPSULE -+#endif -+ -+#if PY_MINOR_VERSION < 2 -+#define SIP_SUPPORT_PYCOBJECT -+#endif -+ -+#else -+ -+#define SIPLong_Check PyInt_Check -+#define SIPLong_FromLong PyInt_FromLong -+#define SIPLong_AsLong PyInt_AsLong -+ -+#define SIPBytes_Check PyString_Check -+#define SIPBytes_FromString PyString_FromString -+#define SIPBytes_FromStringAndSize PyString_FromStringAndSize -+#define SIPBytes_AsString PyString_AsString -+#define SIPBytes_Size PyString_Size -+#define SIPBytes_AS_STRING PyString_AS_STRING -+#define SIPBytes_GET_SIZE PyString_GET_SIZE -+ -+#if PY_MINOR_VERSION >= 7 -+#define SIP_USE_PYCAPSULE -+#endif -+ -+#define SIP_SUPPORT_PYCOBJECT -+ -+#endif -+ -+#if !defined(Py_REFCNT) -+#define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) -+#endif -+ -+#if !defined(Py_TYPE) -+#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) -+#endif -+ -+#if !defined(PyVarObject_HEAD_INIT) -+#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size, -+#endif -+ -+ -+#if defined(SIP_USE_PYCAPSULE) -+#define SIPCapsule_FromVoidPtr(p, n) PyCapsule_New((p), (n), NULL) -+#define SIPCapsule_AsVoidPtr(p, n) PyCapsule_GetPointer((p), (n)) -+#else -+#define SIPCapsule_FromVoidPtr(p, n) sipConvertFromVoidPtr((p)) -+#define SIPCapsule_AsVoidPtr(p, n) sipConvertToVoidPtr((p)) -+#endif -+ -+ -+/* -+ * The mask that can be passed to sipTrace(). -+ */ -+#define SIP_TRACE_CATCHERS 0x0001 -+#define SIP_TRACE_CTORS 0x0002 -+#define SIP_TRACE_DTORS 0x0004 -+#define SIP_TRACE_INITS 0x0008 -+#define SIP_TRACE_DEALLOCS 0x0010 -+#define SIP_TRACE_METHODS 0x0020 -+ -+ -+/* -+ * Hide some thread dependent stuff. -+ */ -+#ifdef WITH_THREAD -+typedef PyGILState_STATE sip_gilstate_t; -+#define SIP_RELEASE_GIL(gs) PyGILState_Release(gs); -+#define SIP_BLOCK_THREADS {PyGILState_STATE sipGIL = PyGILState_Ensure(); -+#define SIP_UNBLOCK_THREADS PyGILState_Release(sipGIL);} -+#else -+typedef int sip_gilstate_t; -+#define SIP_RELEASE_GIL(gs) -+#define SIP_BLOCK_THREADS -+#define SIP_UNBLOCK_THREADS -+#endif -+ -+ -+/* -+ * Forward declarations of types. -+ */ -+struct _sipBufferDef; -+typedef struct _sipBufferDef sipBufferDef; -+ -+struct _sipBufferInfoDef; -+typedef struct _sipBufferInfoDef sipBufferInfoDef; -+ -+struct _sipCFunctionDef; -+typedef struct _sipCFunctionDef sipCFunctionDef; -+ -+struct _sipDateDef; -+typedef struct _sipDateDef sipDateDef; -+ -+struct _sipEnumTypeObject; -+typedef struct _sipEnumTypeObject sipEnumTypeObject; -+ -+struct _sipMethodDef; -+typedef struct _sipMethodDef sipMethodDef; -+ -+struct _sipSimpleWrapper; -+typedef struct _sipSimpleWrapper sipSimpleWrapper; -+ -+struct _sipTimeDef; -+typedef struct _sipTimeDef sipTimeDef; -+ -+struct _sipTypeDef; -+typedef struct _sipTypeDef sipTypeDef; -+ -+struct _sipWrapperType; -+typedef struct _sipWrapperType sipWrapperType; -+ -+struct _sipWrapper; -+typedef struct _sipWrapper sipWrapper; -+ -+ -+/* -+ * The different events a handler can be registered for. -+ */ -+typedef enum -+{ -+ sipEventWrappedInstance, /* After wrapping a C/C++ instance. */ -+ sipEventCollectingWrapper, /* When garbage collecting a wrapper object. */ -+ sipEventNrEvents -+} sipEventType; -+ -+/* -+ * The event handlers. -+ */ -+typedef void (*sipWrappedInstanceEventHandler)(void *sipCpp); -+typedef void (*sipCollectingWrapperEventHandler)(sipSimpleWrapper *sipSelf); -+ -+ -+/* -+ * The operation an access function is being asked to perform. -+ */ -+typedef enum -+{ -+ UnguardedPointer, /* Return the unguarded pointer. */ -+ GuardedPointer, /* Return the guarded pointer, ie. 0 if it has gone. */ -+ ReleaseGuard /* Release the guard, if any. */ -+} AccessFuncOp; -+ -+ -+/* -+ * Some convenient function pointers. -+ */ -+typedef void *(*sipInitFunc)(sipSimpleWrapper *, PyObject *, PyObject *, -+ PyObject **, PyObject **, PyObject **); -+typedef int (*sipFinalFunc)(PyObject *, void *, PyObject *, PyObject **); -+typedef void *(*sipAccessFunc)(sipSimpleWrapper *, AccessFuncOp); -+typedef int (*sipTraverseFunc)(void *, visitproc, void *); -+typedef int (*sipClearFunc)(void *); -+#if PY_MAJOR_VERSION >= 3 -+typedef int (*sipGetBufferFuncLimited)(PyObject *, void *, sipBufferDef *); -+typedef void (*sipReleaseBufferFuncLimited)(PyObject *, void *); -+#if !defined(Py_LIMITED_API) -+typedef int (*sipGetBufferFunc)(PyObject *, void *, Py_buffer *, int); -+typedef void (*sipReleaseBufferFunc)(PyObject *, void *, Py_buffer *); -+#endif -+#else -+typedef SIP_SSIZE_T (*sipBufferFunc)(PyObject *, void *, SIP_SSIZE_T, void **); -+typedef SIP_SSIZE_T (*sipSegCountFunc)(PyObject *, void *, SIP_SSIZE_T *); -+#endif -+typedef void (*sipDeallocFunc)(sipSimpleWrapper *); -+typedef void *(*sipCastFunc)(void *, const sipTypeDef *); -+typedef const sipTypeDef *(*sipSubClassConvertFunc)(void **); -+typedef int (*sipConvertToFunc)(PyObject *, void **, int *, PyObject *); -+typedef PyObject *(*sipConvertFromFunc)(void *, PyObject *); -+typedef void (*sipVirtErrorHandlerFunc)(sipSimpleWrapper *, sip_gilstate_t); -+typedef int (*sipVirtHandlerFunc)(sip_gilstate_t, sipVirtErrorHandlerFunc, -+ sipSimpleWrapper *, PyObject *, ...); -+typedef void (*sipAssignFunc)(void *, SIP_SSIZE_T, void *); -+typedef void *(*sipArrayFunc)(SIP_SSIZE_T); -+typedef void *(*sipCopyFunc)(const void *, SIP_SSIZE_T); -+typedef void (*sipReleaseFunc)(void *, int); -+typedef PyObject *(*sipPickleFunc)(void *); -+typedef int (*sipAttrGetterFunc)(const sipTypeDef *, PyObject *); -+typedef PyObject *(*sipVariableGetterFunc)(void *, PyObject *, PyObject *); -+typedef int (*sipVariableSetterFunc)(void *, PyObject *, PyObject *); -+typedef void *(*sipProxyResolverFunc)(void *); -+typedef int (*sipNewUserTypeFunc)(sipWrapperType *); -+ -+ -+#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000 -+/* -+ * The meta-type of a wrapper type. -+ */ -+struct _sipWrapperType { -+ /* -+ * The super-metatype. This must be first in the structure so that it can -+ * be cast to a PyTypeObject *. -+ */ -+ PyHeapTypeObject super; -+ -+ /* Set if the type is a user implemented Python sub-class. */ -+ unsigned wt_user_type : 1; -+ -+ /* Set if the type's dictionary contains all lazy attributes. */ -+ unsigned wt_dict_complete : 1; -+ -+ /* Unused and available for future use. */ -+ unsigned wt_unused : 30; -+ -+ /* The generated type structure. */ -+ sipTypeDef *wt_td; -+ -+ /* The list of init extenders. */ -+ struct _sipInitExtenderDef *wt_iextend; -+ -+ /* The handler called whenever a new user type has been created. */ -+ sipNewUserTypeFunc wt_new_user_type_handler; -+ -+ /* -+ * For the user to use. Note that any data structure will leak if the -+ * type is garbage collected. -+ */ -+ void *wt_user_data; -+}; -+ -+ -+/* -+ * The type of a simple C/C++ wrapper object. -+ */ -+struct _sipSimpleWrapper { -+ PyObject_HEAD -+ -+ /* -+ * The data, initially a pointer to the C/C++ object, as interpreted by the -+ * access function. -+ */ -+ void *data; -+ -+ /* The optional access function. */ -+ sipAccessFunc access_func; -+ -+ /* Object flags. */ -+ unsigned sw_flags; -+ -+ /* The optional dictionary of extra references keyed by argument number. */ -+ PyObject *extra_refs; -+ -+ /* For the user to use. */ -+ PyObject *user; -+ -+ /* The instance dictionary. */ -+ PyObject *dict; -+ -+ /* The main instance if this is a mixin. */ -+ PyObject *mixin_main; -+ -+ /* Next object at this address. */ -+ struct _sipSimpleWrapper *next; -+}; -+ -+ -+/* -+ * The type of a C/C++ wrapper object that supports parent/child relationships. -+ */ -+struct _sipWrapper { -+ /* The super-type. */ -+ sipSimpleWrapper super; -+ -+ /* First child object. */ -+ struct _sipWrapper *first_child; -+ -+ /* Next sibling. */ -+ struct _sipWrapper *sibling_next; -+ -+ /* Previous sibling. */ -+ struct _sipWrapper *sibling_prev; -+ -+ /* Owning object. */ -+ struct _sipWrapper *parent; -+}; -+ -+ -+/* -+ * The meta-type of an enum type. (This is exposed only to support the -+ * deprecated sipConvertFromNamedEnum() macro.) -+ */ -+struct _sipEnumTypeObject { -+ /* -+ * The super-metatype. This must be first in the structure so that it can -+ * be cast to a PyTypeObject *. -+ */ -+ PyHeapTypeObject super; -+ -+ /* The generated type structure. */ -+ struct _sipTypeDef *type; -+}; -+#endif -+ -+ -+/* -+ * The information describing an encoded type ID. -+ */ -+typedef struct _sipEncodedTypeDef { -+ /* The type number. */ -+ unsigned sc_type : 16; -+ -+ /* The module number (255 for this one). */ -+ unsigned sc_module : 8; -+ -+ /* A context specific flag. */ -+ unsigned sc_flag : 1; -+} sipEncodedTypeDef; -+ -+ -+/* -+ * The information describing an enum member. -+ */ -+typedef struct _sipEnumMemberDef { -+ /* The member name. */ -+ const char *em_name; -+ -+ /* The member value. */ -+ int em_val; -+ -+ /* The member enum, -ve if anonymous. */ -+ int em_enum; -+} sipEnumMemberDef; -+ -+ -+/* -+ * The information describing static instances. -+ */ -+typedef struct _sipInstancesDef { -+ /* The types. */ -+ struct _sipTypeInstanceDef *id_type; -+ -+ /* The void *. */ -+ struct _sipVoidPtrInstanceDef *id_voidp; -+ -+ /* The chars. */ -+ struct _sipCharInstanceDef *id_char; -+ -+ /* The strings. */ -+ struct _sipStringInstanceDef *id_string; -+ -+ /* The ints. */ -+ struct _sipIntInstanceDef *id_int; -+ -+ /* The longs. */ -+ struct _sipLongInstanceDef *id_long; -+ -+ /* The unsigned longs. */ -+ struct _sipUnsignedLongInstanceDef *id_ulong; -+ -+ /* The long longs. */ -+ struct _sipLongLongInstanceDef *id_llong; -+ -+ /* The unsigned long longs. */ -+ struct _sipUnsignedLongLongInstanceDef *id_ullong; -+ -+ /* The doubles. */ -+ struct _sipDoubleInstanceDef *id_double; -+} sipInstancesDef; -+ -+ -+/* -+ * The information describing a type initialiser extender. -+ */ -+typedef struct _sipInitExtenderDef { -+ /* The API version range index. */ -+ int ie_api_range; -+ -+ /* The extender function. */ -+ sipInitFunc ie_extender; -+ -+ /* The class being extended. */ -+ sipEncodedTypeDef ie_class; -+ -+ /* The next extender for this class. */ -+ struct _sipInitExtenderDef *ie_next; -+} sipInitExtenderDef; -+ -+ -+/* -+ * The information describing a sub-class convertor. -+ */ -+typedef struct _sipSubClassConvertorDef { -+ /* The convertor. */ -+ sipSubClassConvertFunc scc_convertor; -+ -+ /* The encoded base type. */ -+ sipEncodedTypeDef scc_base; -+ -+ /* The base type. */ -+ struct _sipTypeDef *scc_basetype; -+} sipSubClassConvertorDef; -+ -+ -+/* -+ * The structure populated by %BIGetBufferCode when the limited API is enabled. -+ */ -+struct _sipBufferDef { -+ /* The address of the buffer. */ -+ void *bd_buffer; -+ -+ /* The length of the buffer. */ -+ SIP_SSIZE_T bd_length; -+ -+ /* Set if the buffer is read-only. */ -+ int bd_readonly; -+}; -+ -+ -+/* -+ * The structure describing a Python buffer. -+ */ -+struct _sipBufferInfoDef { -+ /* This is internal to sip. */ -+ void *bi_internal; -+ -+ /* The address of the buffer. */ -+ void *bi_buf; -+ -+ /* A reference to the object implementing the buffer interface. */ -+ PyObject *bi_obj; -+ -+ /* The length of the buffer in bytes. */ -+ SIP_SSIZE_T bi_len; -+ -+ /* The number of dimensions. */ -+ int bi_ndim; -+ -+ /* The format of each element of the buffer. */ -+ char *bi_format; -+}; -+ -+ -+/* -+ * The structure describing a Python C function. -+ */ -+struct _sipCFunctionDef { -+ /* The C function. */ -+ PyMethodDef *cf_function; -+ -+ /* The optional bound object. */ -+ PyObject *cf_self; -+}; -+ -+ -+/* -+ * The structure describing a Python method. -+ */ -+struct _sipMethodDef { -+ /* The function that implements the method. */ -+ PyObject *pm_function; -+ -+ /* The bound object. */ -+ PyObject *pm_self; -+ -+#if PY_MAJOR_VERSION < 3 -+ /* The class. */ -+ PyObject *pm_class; -+#endif -+}; -+ -+ -+/* -+ * The structure describing a Python date. -+ */ -+struct _sipDateDef { -+ /* The year. */ -+ int pd_year; -+ -+ /* The month (1-12). */ -+ int pd_month; -+ -+ /* The day (1-31). */ -+ int pd_day; -+}; -+ -+ -+/* -+ * The structure describing a Python time. -+ */ -+struct _sipTimeDef { -+ /* The hour (0-23). */ -+ int pt_hour; -+ -+ /* The minute (0-59). */ -+ int pt_minute; -+ -+ /* The second (0-59). */ -+ int pt_second; -+ -+ /* The microsecond (0-999999). */ -+ int pt_microsecond; -+}; -+ -+ -+/* -+ * The different error states of handwritten code. -+ */ -+typedef enum { -+ sipErrorNone, /* There is no error. */ -+ sipErrorFail, /* The error is a failure. */ -+ sipErrorContinue /* It may not apply if a later operation succeeds. */ -+} sipErrorState; -+ -+ -+/* -+ * The different Python slot types. New slots must be added to the end, -+ * otherwise the major version of the internal ABI must be changed. -+ */ -+typedef enum { -+ str_slot, /* __str__ */ -+ int_slot, /* __int__ */ -+#if PY_MAJOR_VERSION < 3 -+ long_slot, /* __long__ */ -+#endif -+ float_slot, /* __float__ */ -+ len_slot, /* __len__ */ -+ contains_slot, /* __contains__ */ -+ add_slot, /* __add__ for number */ -+ concat_slot, /* __add__ for sequence types */ -+ sub_slot, /* __sub__ */ -+ mul_slot, /* __mul__ for number types */ -+ repeat_slot, /* __mul__ for sequence types */ -+ div_slot, /* __div__ */ -+ mod_slot, /* __mod__ */ -+ floordiv_slot, /* __floordiv__ */ -+ truediv_slot, /* __truediv__ */ -+ and_slot, /* __and__ */ -+ or_slot, /* __or__ */ -+ xor_slot, /* __xor__ */ -+ lshift_slot, /* __lshift__ */ -+ rshift_slot, /* __rshift__ */ -+ iadd_slot, /* __iadd__ for number types */ -+ iconcat_slot, /* __iadd__ for sequence types */ -+ isub_slot, /* __isub__ */ -+ imul_slot, /* __imul__ for number types */ -+ irepeat_slot, /* __imul__ for sequence types */ -+ idiv_slot, /* __idiv__ */ -+ imod_slot, /* __imod__ */ -+ ifloordiv_slot, /* __ifloordiv__ */ -+ itruediv_slot, /* __itruediv__ */ -+ iand_slot, /* __iand__ */ -+ ior_slot, /* __ior__ */ -+ ixor_slot, /* __ixor__ */ -+ ilshift_slot, /* __ilshift__ */ -+ irshift_slot, /* __irshift__ */ -+ invert_slot, /* __invert__ */ -+ call_slot, /* __call__ */ -+ getitem_slot, /* __getitem__ */ -+ setitem_slot, /* __setitem__ */ -+ delitem_slot, /* __delitem__ */ -+ lt_slot, /* __lt__ */ -+ le_slot, /* __le__ */ -+ eq_slot, /* __eq__ */ -+ ne_slot, /* __ne__ */ -+ gt_slot, /* __gt__ */ -+ ge_slot, /* __ge__ */ -+#if PY_MAJOR_VERSION < 3 -+ cmp_slot, /* __cmp__ */ -+#endif -+ bool_slot, /* __bool__, __nonzero__ */ -+ neg_slot, /* __neg__ */ -+ repr_slot, /* __repr__ */ -+ hash_slot, /* __hash__ */ -+ pos_slot, /* __pos__ */ -+ abs_slot, /* __abs__ */ -+#if PY_VERSION_HEX >= 0x02050000 -+ index_slot, /* __index__ */ -+#endif -+ iter_slot, /* __iter__ */ -+ next_slot, /* __next__ */ -+ setattr_slot, /* __setattr__, __delattr__ */ -+ matmul_slot, /* __matmul__ (for Python v3.5 and later) */ -+ imatmul_slot, /* __imatmul__ (for Python v3.5 and later) */ -+ await_slot, /* __await__ (for Python v3.5 and later) */ -+ aiter_slot, /* __aiter__ (for Python v3.5 and later) */ -+ anext_slot, /* __anext__ (for Python v3.5 and later) */ -+} sipPySlotType; -+ -+ -+/* -+ * The information describing a Python slot function. -+ */ -+typedef struct _sipPySlotDef { -+ /* The function. */ -+ void *psd_func; -+ -+ /* The type. */ -+ sipPySlotType psd_type; -+} sipPySlotDef; -+ -+ -+/* -+ * The information describing a Python slot extender. -+ */ -+typedef struct _sipPySlotExtenderDef { -+ /* The function. */ -+ void *pse_func; -+ -+ /* The type. */ -+ sipPySlotType pse_type; -+ -+ /* The encoded class. */ -+ sipEncodedTypeDef pse_class; -+} sipPySlotExtenderDef; -+ -+ -+/* -+ * The information describing a typedef. -+ */ -+typedef struct _sipTypedefDef { -+ /* The typedef name. */ -+ const char *tdd_name; -+ -+ /* The typedef value. */ -+ const char *tdd_type_name; -+} sipTypedefDef; -+ -+ -+/* -+ * The information describing a variable or property. -+ */ -+ -+typedef enum -+{ -+ PropertyVariable, /* A property. */ -+ InstanceVariable, /* An instance variable. */ -+ ClassVariable /* A class (i.e. static) variable. */ -+} sipVariableType; -+ -+typedef struct _sipVariableDef { -+ /* The type of variable. */ -+ sipVariableType vd_type; -+ -+ /* The name. */ -+ const char *vd_name; -+ -+ /* -+ * The getter. If this is a variable (rather than a property) then the -+ * actual type is sipVariableGetterFunc. -+ */ -+ PyMethodDef *vd_getter; -+ -+ /* -+ * The setter. If this is a variable (rather than a property) then the -+ * actual type is sipVariableSetterFunc. It is NULL if the property cannot -+ * be set or the variable is const. -+ */ -+ PyMethodDef *vd_setter; -+ -+ /* The property deleter. */ -+ PyMethodDef *vd_deleter; -+ -+ /* The docstring. */ -+ const char *vd_docstring; -+} sipVariableDef; -+ -+ -+/* -+ * The information describing a type, either a C++ class (or C struct), a C++ -+ * namespace, a mapped type or a named enum. -+ */ -+struct _sipTypeDef { -+ /* The version range index, -1 if the type isn't versioned. */ -+ int td_version; -+ -+ /* The next version of this type. */ -+ struct _sipTypeDef *td_next_version; -+ -+ /* -+ * The module, 0 if the type hasn't been initialised. -+ */ -+ struct _sipExportedModuleDef *td_module; -+ -+ /* Type flags, see the sipType*() macros. */ -+ int td_flags; -+ -+ /* The C/C++ name of the type. */ -+ int td_cname; -+ -+ /* -+ * The Python type object. This needs to be a union until we remove the -+ * deprecated sipClass_* macros. -+ */ -+ union { -+ PyTypeObject *td_py_type; -+ sipWrapperType *td_wrapper_type; -+ } u; -+ -+ /* Any additional fixed data generated by a plugin. */ -+ void *td_plugin_data; -+}; -+ -+ -+/* -+ * The information describing a container (ie. a class, namespace or a mapped -+ * type). -+ */ -+typedef struct _sipContainerDef { -+ /* -+ * The Python name of the type, -1 if this is a namespace extender (in the -+ * context of a class) or doesn't require a namespace (in the context of a -+ * mapped type). */ -+ int cod_name; -+ -+ /* -+ * The scoping type or the namespace this is extending if it is a namespace -+ * extender. -+ */ -+ sipEncodedTypeDef cod_scope; -+ -+ /* The number of lazy methods. */ -+ int cod_nrmethods; -+ -+ /* The table of lazy methods. */ -+ PyMethodDef *cod_methods; -+ -+ /* The number of lazy enum members. */ -+ int cod_nrenummembers; -+ -+ /* The table of lazy enum members. */ -+ sipEnumMemberDef *cod_enummembers; -+ -+ /* The number of variables. */ -+ int cod_nrvariables; -+ -+ /* The table of variables. */ -+ sipVariableDef *cod_variables; -+ -+ /* The static instances. */ -+ sipInstancesDef cod_instances; -+} sipContainerDef; -+ -+ -+/* -+ * The information describing a C++ class (or C struct) or a C++ namespace. -+ */ -+typedef struct _sipClassTypeDef { -+ /* The base type information. */ -+ sipTypeDef ctd_base; -+ -+ /* The container information. */ -+ sipContainerDef ctd_container; -+ -+ /* The docstring. */ -+ const char *ctd_docstring; -+ -+ /* -+ * The meta-type name, -1 to use the meta-type of the first super-type -+ * (normally sipWrapperType). -+ */ -+ int ctd_metatype; -+ -+ /* The super-type name, -1 to use sipWrapper. */ -+ int ctd_supertype; -+ -+ /* The super-types. */ -+ sipEncodedTypeDef *ctd_supers; -+ -+ /* The table of Python slots. */ -+ sipPySlotDef *ctd_pyslots; -+ -+ /* The initialisation function. */ -+ sipInitFunc ctd_init; -+ -+ /* The traverse function. */ -+ sipTraverseFunc ctd_traverse; -+ -+ /* The clear function. */ -+ sipClearFunc ctd_clear; -+ -+#if PY_MAJOR_VERSION >= 3 -+ /* The get buffer function. */ -+#if defined(Py_LIMITED_API) -+ sipGetBufferFuncLimited ctd_getbuffer; -+#else -+ sipGetBufferFunc ctd_getbuffer; -+#endif -+ -+ /* The release buffer function. */ -+#if defined(Py_LIMITED_API) -+ sipReleaseBufferFuncLimited ctd_releasebuffer; -+#else -+ sipReleaseBufferFunc ctd_releasebuffer; -+#endif -+#else -+ /* The read buffer function. */ -+ sipBufferFunc ctd_readbuffer; -+ -+ /* The write buffer function. */ -+ sipBufferFunc ctd_writebuffer; -+ -+ /* The segment count function. */ -+ sipSegCountFunc ctd_segcount; -+ -+ /* The char buffer function. */ -+ sipBufferFunc ctd_charbuffer; -+#endif -+ -+ /* The deallocation function. */ -+ sipDeallocFunc ctd_dealloc; -+ -+ /* The optional assignment function. */ -+ sipAssignFunc ctd_assign; -+ -+ /* The optional array allocation function. */ -+ sipArrayFunc ctd_array; -+ -+ /* The optional copy function. */ -+ sipCopyFunc ctd_copy; -+ -+ /* The release function, 0 if a C struct. */ -+ sipReleaseFunc ctd_release; -+ -+ /* The cast function, 0 if a C struct. */ -+ sipCastFunc ctd_cast; -+ -+ /* The optional convert to function. */ -+ sipConvertToFunc ctd_cto; -+ -+ /* The optional convert from function. */ -+ sipConvertFromFunc ctd_cfrom; -+ -+ /* The next namespace extender. */ -+ struct _sipClassTypeDef *ctd_nsextender; -+ -+ /* The pickle function. */ -+ sipPickleFunc ctd_pickle; -+ -+ /* The finalisation function. */ -+ sipFinalFunc ctd_final; -+ -+ /* The mixin initialisation function. */ -+ initproc ctd_init_mixin; -+} sipClassTypeDef; -+ -+ -+/* -+ * The information describing a mapped type. -+ */ -+typedef struct _sipMappedTypeDef { -+ /* The base type information. */ -+ sipTypeDef mtd_base; -+ -+ /* The container information. */ -+ sipContainerDef mtd_container; -+ -+ /* The optional assignment function. */ -+ sipAssignFunc mtd_assign; -+ -+ /* The optional array allocation function. */ -+ sipArrayFunc mtd_array; -+ -+ /* The optional copy function. */ -+ sipCopyFunc mtd_copy; -+ -+ /* The optional release function. */ -+ sipReleaseFunc mtd_release; -+ -+ /* The convert to function. */ -+ sipConvertToFunc mtd_cto; -+ -+ /* The convert from function. */ -+ sipConvertFromFunc mtd_cfrom; -+} sipMappedTypeDef; -+ -+ -+/* -+ * The information describing a named enum. -+ */ -+typedef struct _sipEnumTypeDef { -+ /* The base type information. */ -+ sipTypeDef etd_base; -+ -+ /* The Python name of the enum. */ -+ int etd_name; -+ -+ /* The scoping type, -1 if it is defined at the module level. */ -+ int etd_scope; -+ -+ /* The Python slots. */ -+ struct _sipPySlotDef *etd_pyslots; -+} sipEnumTypeDef; -+ -+ -+/* -+ * The information describing an external type. -+ */ -+typedef struct _sipExternalTypeDef { -+ /* The index into the type table. */ -+ int et_nr; -+ -+ /* The name of the type. */ -+ const char *et_name; -+} sipExternalTypeDef; -+ -+ -+/* -+ * The information describing a mapped class. This (and anything that uses it) -+ * is deprecated. -+ */ -+typedef sipTypeDef sipMappedType; -+ -+ -+/* -+ * Defines an entry in the module specific list of delayed dtor calls. -+ */ -+typedef struct _sipDelayedDtor { -+ /* The C/C++ instance. */ -+ void *dd_ptr; -+ -+ /* The class name. */ -+ const char *dd_name; -+ -+ /* Non-zero if dd_ptr is a derived class instance. */ -+ int dd_isderived; -+ -+ /* Next in the list. */ -+ struct _sipDelayedDtor *dd_next; -+} sipDelayedDtor; -+ -+ -+/* -+ * Defines an entry in the table of global functions all of whose overloads -+ * are versioned (so their names can't be automatically added to the module -+ * dictionary). -+ */ -+typedef struct _sipVersionedFunctionDef { -+ /* The name, -1 marks the end of the table. */ -+ int vf_name; -+ -+ /* The function itself. */ -+ PyCFunction vf_function; -+ -+ /* The METH_* flags. */ -+ int vf_flags; -+ -+ /* The docstring. */ -+ const char *vf_docstring; -+ -+ /* The API version range index. */ -+ int vf_api_range; -+} sipVersionedFunctionDef; -+ -+ -+/* -+ * Defines a virtual error handler. -+ */ -+typedef struct _sipVirtErrorHandlerDef { -+ /* The name of the handler. */ -+ const char *veh_name; -+ -+ /* The handler function. */ -+ sipVirtErrorHandlerFunc veh_handler; -+} sipVirtErrorHandlerDef; -+ -+ -+/* -+ * Defines a type imported from another module. -+ */ -+typedef union _sipImportedTypeDef { -+ /* The type name before the module is imported. */ -+ const char *it_name; -+ -+ /* The type after the module is imported. */ -+ sipTypeDef *it_td; -+} sipImportedTypeDef; -+ -+ -+/* -+ * Defines a virtual error handler imported from another module. -+ */ -+typedef union _sipImportedVirtErrorHandlerDef { -+ /* The handler name before the module is imported. */ -+ const char *iveh_name; -+ -+ /* The handler after the module is imported. */ -+ sipVirtErrorHandlerFunc iveh_handler; -+} sipImportedVirtErrorHandlerDef; -+ -+ -+/* -+ * Defines an exception imported from another module. -+ */ -+typedef union _sipImportedExceptionDef { -+ /* The exception name before the module is imported. */ -+ const char *iexc_name; -+ -+ /* The exception object after the module is imported. */ -+ PyObject *iexc_object; -+} sipImportedExceptionDef; -+ -+ -+/* -+ * The information describing an imported module. -+ */ -+typedef struct _sipImportedModuleDef { -+ /* The module name. */ -+ const char *im_name; -+ -+ /* The types imported from the module. */ -+ sipImportedTypeDef *im_imported_types; -+ -+ /* The virtual error handlers imported from the module. */ -+ sipImportedVirtErrorHandlerDef *im_imported_veh; -+ -+ /* The exceptions imported from the module. */ -+ sipImportedExceptionDef *im_imported_exceptions; -+} sipImportedModuleDef; -+ -+ -+/* -+ * The main client module structure. -+ */ -+typedef struct _sipExportedModuleDef { -+ /* The next in the list. */ -+ struct _sipExportedModuleDef *em_next; -+ -+ /* The SIP API minor version number. */ -+ unsigned em_api_minor; -+ -+ /* The module name. */ -+ int em_name; -+ -+ /* The module name as an object. */ -+ PyObject *em_nameobj; -+ -+ /* The string pool. */ -+ const char *em_strings; -+ -+ /* The imported modules. */ -+ sipImportedModuleDef *em_imports; -+ -+ /* The optional Qt support API. */ -+ struct _sipQtAPI *em_qt_api; -+ -+ /* The number of types. */ -+ int em_nrtypes; -+ -+ /* The table of types. */ -+ sipTypeDef **em_types; -+ -+ /* The table of external types. */ -+ sipExternalTypeDef *em_external; -+ -+ /* The number of members in global enums. */ -+ int em_nrenummembers; -+ -+ /* The table of members in global enums. */ -+ sipEnumMemberDef *em_enummembers; -+ -+ /* The number of typedefs. */ -+ int em_nrtypedefs; -+ -+ /* The table of typedefs. */ -+ sipTypedefDef *em_typedefs; -+ -+ /* The table of virtual error handlers. */ -+ sipVirtErrorHandlerDef *em_virterrorhandlers; -+ -+ /* The sub-class convertors. */ -+ sipSubClassConvertorDef *em_convertors; -+ -+ /* The static instances. */ -+ sipInstancesDef em_instances; -+ -+ /* The license. */ -+ struct _sipLicenseDef *em_license; -+ -+ /* The table of exception types. */ -+ PyObject **em_exceptions; -+ -+ /* The table of Python slot extenders. */ -+ sipPySlotExtenderDef *em_slotextend; -+ -+ /* The table of initialiser extenders. */ -+ sipInitExtenderDef *em_initextend; -+ -+ /* The delayed dtor handler. */ -+ void (*em_delayeddtors)(const sipDelayedDtor *); -+ -+ /* The list of delayed dtors. */ -+ sipDelayedDtor *em_ddlist; -+ -+ /* -+ * The array of API version definitions. Each definition takes up 3 -+ * elements. If the third element of a 3-tuple is negative then the first -+ * two elements define an API and its default version. All such -+ * definitions will appear at the end of the array. If the first element -+ * of a 3-tuple is negative then that is the last element of the array. -+ */ -+ int *em_versions; -+ -+ /* The optional table of versioned functions. */ -+ sipVersionedFunctionDef *em_versioned_functions; -+} sipExportedModuleDef; -+ -+ -+/* -+ * The information describing a license to be added to a dictionary. -+ */ -+typedef struct _sipLicenseDef { -+ /* The type of license. */ -+ const char *lc_type; -+ -+ /* The licensee. */ -+ const char *lc_licensee; -+ -+ /* The timestamp. */ -+ const char *lc_timestamp; -+ -+ /* The signature. */ -+ const char *lc_signature; -+} sipLicenseDef; -+ -+ -+/* -+ * The information describing a void pointer instance to be added to a -+ * dictionary. -+ */ -+typedef struct _sipVoidPtrInstanceDef { -+ /* The void pointer name. */ -+ const char *vi_name; -+ -+ /* The void pointer value. */ -+ void *vi_val; -+} sipVoidPtrInstanceDef; -+ -+ -+/* -+ * The information describing a char instance to be added to a dictionary. -+ */ -+typedef struct _sipCharInstanceDef { -+ /* The char name. */ -+ const char *ci_name; -+ -+ /* The char value. */ -+ char ci_val; -+ -+ /* The encoding used, either 'A', 'L', '8' or 'N'. */ -+ char ci_encoding; -+} sipCharInstanceDef; -+ -+ -+/* -+ * The information describing a string instance to be added to a dictionary. -+ * This is also used as a hack to add (or fix) other types rather than add a -+ * new table type and so requiring a new major version of the API. -+ */ -+typedef struct _sipStringInstanceDef { -+ /* The string name. */ -+ const char *si_name; -+ -+ /* The string value. */ -+ const char *si_val; -+ -+ /* -+ * The encoding used, either 'A', 'L', '8' or 'N'. 'w' and 'W' are also -+ * used to support the fix for wchar_t. -+ */ -+ char si_encoding; -+} sipStringInstanceDef; -+ -+ -+/* -+ * The information describing an int instance to be added to a dictionary. -+ */ -+typedef struct _sipIntInstanceDef { -+ /* The int name. */ -+ const char *ii_name; -+ -+ /* The int value. */ -+ int ii_val; -+} sipIntInstanceDef; -+ -+ -+/* -+ * The information describing a long instance to be added to a dictionary. -+ */ -+typedef struct _sipLongInstanceDef { -+ /* The long name. */ -+ const char *li_name; -+ -+ /* The long value. */ -+ long li_val; -+} sipLongInstanceDef; -+ -+ -+/* -+ * The information describing an unsigned long instance to be added to a -+ * dictionary. -+ */ -+typedef struct _sipUnsignedLongInstanceDef { -+ /* The unsigned long name. */ -+ const char *uli_name; -+ -+ /* The unsigned long value. */ -+ unsigned long uli_val; -+} sipUnsignedLongInstanceDef; -+ -+ -+/* -+ * The information describing a long long instance to be added to a dictionary. -+ */ -+typedef struct _sipLongLongInstanceDef { -+ /* The long long name. */ -+ const char *lli_name; -+ -+ /* The long long value. */ -+#if defined(HAVE_LONG_LONG) -+ PY_LONG_LONG lli_val; -+#else -+ long lli_val; -+#endif -+} sipLongLongInstanceDef; -+ -+ -+/* -+ * The information describing an unsigned long long instance to be added to a -+ * dictionary. -+ */ -+typedef struct _sipUnsignedLongLongInstanceDef { -+ /* The unsigned long long name. */ -+ const char *ulli_name; -+ -+ /* The unsigned long long value. */ -+#if defined(HAVE_LONG_LONG) -+ unsigned PY_LONG_LONG ulli_val; -+#else -+ unsigned long ulli_val; -+#endif -+} sipUnsignedLongLongInstanceDef; -+ -+ -+/* -+ * The information describing a double instance to be added to a dictionary. -+ */ -+typedef struct _sipDoubleInstanceDef { -+ /* The double name. */ -+ const char *di_name; -+ -+ /* The double value. */ -+ double di_val; -+} sipDoubleInstanceDef; -+ -+ -+/* -+ * The information describing a class or enum instance to be added to a -+ * dictionary. -+ */ -+typedef struct _sipTypeInstanceDef { -+ /* The type instance name. */ -+ const char *ti_name; -+ -+ /* The actual instance. */ -+ void *ti_ptr; -+ -+ /* A pointer to the generated type. */ -+ struct _sipTypeDef **ti_type; -+ -+ /* The wrapping flags. */ -+ int ti_flags; -+} sipTypeInstanceDef; -+ -+ -+/* -+ * Define a mapping between a wrapped type identified by a string and the -+ * corresponding Python type. This is deprecated. -+ */ -+typedef struct _sipStringTypeClassMap { -+ /* The type as a string. */ -+ const char *typeString; -+ -+ /* A pointer to the Python type. */ -+ struct _sipWrapperType **pyType; -+} sipStringTypeClassMap; -+ -+ -+/* -+ * Define a mapping between a wrapped type identified by an integer and the -+ * corresponding Python type. This is deprecated. -+ */ -+typedef struct _sipIntTypeClassMap { -+ /* The type as an integer. */ -+ int typeInt; -+ -+ /* A pointer to the Python type. */ -+ struct _sipWrapperType **pyType; -+} sipIntTypeClassMap; -+ -+ -+/* -+ * A Python method's component parts. This allows us to re-create the method -+ * without changing the reference counts of the components. -+ */ -+typedef struct _sipPyMethod { -+ /* The function. */ -+ PyObject *mfunc; -+ -+ /* Self if it is a bound method. */ -+ PyObject *mself; -+ -+#if PY_MAJOR_VERSION < 3 -+ /* The class. */ -+ PyObject *mclass; -+#endif -+} sipPyMethod; -+ -+ -+/* -+ * A slot (in the Qt, rather than Python, sense). -+ */ -+typedef struct _sipSlot { -+ /* Name if a Qt or Python signal. */ -+ char *name; -+ -+ /* Signal or Qt slot object. */ -+ PyObject *pyobj; -+ -+ /* Python slot method, pyobj is NULL. */ -+ sipPyMethod meth; -+ -+ /* A weak reference to the slot, Py_True if pyobj has an extra reference. */ -+ PyObject *weakSlot; -+} sipSlot; -+ -+ -+/* -+ * The API exported by the SIP module, ie. pointers to all the data and -+ * functions that can be used by generated code. -+ */ -+typedef struct _sipAPIDef { -+ /* -+ * This must be the first entry and it's signature must not change so that -+ * version number mismatches can be detected and reported. -+ */ -+ int (*api_export_module)(sipExportedModuleDef *client, unsigned api_major, -+ unsigned api_minor, void *unused); -+ -+ /* -+ * The following are part of the public API. -+ */ -+ PyTypeObject *api_simplewrapper_type; -+ PyTypeObject *api_wrapper_type; -+ PyTypeObject *api_wrappertype_type; -+ PyTypeObject *api_voidptr_type; -+ -+ void (*api_bad_catcher_result)(PyObject *method); -+ void (*api_bad_length_for_slice)(SIP_SSIZE_T seqlen, SIP_SSIZE_T slicelen); -+ PyObject *(*api_build_result)(int *isErr, const char *fmt, ...); -+ PyObject *(*api_call_method)(int *isErr, PyObject *method, const char *fmt, -+ ...); -+ void (*api_call_procedure_method)(sip_gilstate_t, sipVirtErrorHandlerFunc, -+ sipSimpleWrapper *, PyObject *, const char *, ...); -+ PyObject *(*api_connect_rx)(PyObject *txObj, const char *sig, -+ PyObject *rxObj, const char *slot, int type); -+ SIP_SSIZE_T (*api_convert_from_sequence_index)(SIP_SSIZE_T idx, -+ SIP_SSIZE_T len); -+ int (*api_can_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, -+ int flags); -+ void *(*api_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, -+ PyObject *transferObj, int flags, int *statep, int *iserrp); -+ void *(*api_force_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, -+ PyObject *transferObj, int flags, int *statep, int *iserrp); -+ -+ /* -+ * The following are deprecated parts of the public API. -+ */ -+ int (*api_can_convert_to_enum)(PyObject *pyObj, const sipTypeDef *td); -+ -+ /* -+ * The following are part of the public API. -+ */ -+ void (*api_release_type)(void *cpp, const sipTypeDef *td, int state); -+ PyObject *(*api_convert_from_type)(void *cpp, const sipTypeDef *td, -+ PyObject *transferObj); -+ PyObject *(*api_convert_from_new_type)(void *cpp, const sipTypeDef *td, -+ PyObject *transferObj); -+ PyObject *(*api_convert_from_enum)(int eval, const sipTypeDef *td); -+ int (*api_get_state)(PyObject *transferObj); -+ PyObject *(*api_disconnect_rx)(PyObject *txObj, const char *sig, -+ PyObject *rxObj, const char *slot); -+ void (*api_free)(void *mem); -+ PyObject *(*api_get_pyobject)(void *cppPtr, const sipTypeDef *td); -+ void *(*api_malloc)(size_t nbytes); -+ int (*api_parse_result)(int *isErr, PyObject *method, PyObject *res, -+ const char *fmt, ...); -+ void (*api_trace)(unsigned mask, const char *fmt, ...); -+ void (*api_transfer_back)(PyObject *self); -+ void (*api_transfer_to)(PyObject *self, PyObject *owner); -+ void (*api_transfer_break)(PyObject *self); -+ unsigned long (*api_long_as_unsigned_long)(PyObject *o); -+ PyObject *(*api_convert_from_void_ptr)(void *val); -+ PyObject *(*api_convert_from_const_void_ptr)(const void *val); -+ PyObject *(*api_convert_from_void_ptr_and_size)(void *val, -+ SIP_SSIZE_T size); -+ PyObject *(*api_convert_from_const_void_ptr_and_size)(const void *val, -+ SIP_SSIZE_T size); -+ void *(*api_convert_to_void_ptr)(PyObject *obj); -+ int (*api_export_symbol)(const char *name, void *sym); -+ void *(*api_import_symbol)(const char *name); -+ const sipTypeDef *(*api_find_type)(const char *type); -+ int (*api_register_py_type)(PyTypeObject *type); -+ const sipTypeDef *(*api_type_from_py_type_object)(PyTypeObject *py_type); -+ const sipTypeDef *(*api_type_scope)(const sipTypeDef *td); -+ const char *(*api_resolve_typedef)(const char *name); -+ int (*api_register_attribute_getter)(const sipTypeDef *td, -+ sipAttrGetterFunc getter); -+ int (*api_is_api_enabled)(const char *name, int from, int to); -+ sipErrorState (*api_bad_callable_arg)(int arg_nr, PyObject *arg); -+ void *(*api_get_address)(struct _sipSimpleWrapper *w); -+ void (*api_set_destroy_on_exit)(int); -+ int (*api_enable_autoconversion)(const sipTypeDef *td, int enable); -+ void *(*api_get_mixin_address)(struct _sipSimpleWrapper *w, -+ const sipTypeDef *td); -+ PyObject *(*api_convert_from_new_pytype)(void *cpp, PyTypeObject *py_type, -+ sipWrapper *owner, sipSimpleWrapper **selfp, const char *fmt, ...); -+ PyObject *(*api_convert_to_typed_array)(void *data, const sipTypeDef *td, -+ const char *format, size_t stride, SIP_SSIZE_T len, int flags); -+ PyObject *(*api_convert_to_array)(void *data, const char *format, -+ SIP_SSIZE_T len, int flags); -+ int (*api_register_proxy_resolver)(const sipTypeDef *td, -+ sipProxyResolverFunc resolver); -+ PyInterpreterState *(*api_get_interpreter)(); -+ sipNewUserTypeFunc (*api_set_new_user_type_handler)(const sipTypeDef *, -+ sipNewUserTypeFunc); -+ void (*api_set_type_user_data)(sipWrapperType *, void *); -+ void *(*api_get_type_user_data)(const sipWrapperType *); -+ PyObject *(*api_py_type_dict)(const PyTypeObject *); -+ const char *(*api_py_type_name)(const PyTypeObject *); -+ int (*api_get_method)(PyObject *, sipMethodDef *); -+ PyObject *(*api_from_method)(const sipMethodDef *); -+ int (*api_get_c_function)(PyObject *, sipCFunctionDef *); -+ int (*api_get_date)(PyObject *, sipDateDef *); -+ PyObject *(*api_from_date)(const sipDateDef *); -+ int (*api_get_datetime)(PyObject *, sipDateDef *, sipTimeDef *); -+ PyObject *(*api_from_datetime)(const sipDateDef *, const sipTimeDef *); -+ int (*api_get_time)(PyObject *, sipTimeDef *); -+ PyObject *(*api_from_time)(const sipTimeDef *); -+ int (*api_is_user_type)(const sipWrapperType *); -+ struct _frame *(*api_get_frame)(int); -+ int (*api_check_plugin_for_type)(const sipTypeDef *, const char *); -+ PyObject *(*api_unicode_new)(SIP_SSIZE_T, unsigned, int *, void **); -+ void (*api_unicode_write)(int, void *, int, unsigned); -+ void *(*api_unicode_data)(PyObject *, int *, SIP_SSIZE_T *); -+ int (*api_get_buffer_info)(PyObject *, sipBufferInfoDef *); -+ void (*api_release_buffer_info)(sipBufferInfoDef *); -+ PyObject *(*api_get_user_object)(const sipSimpleWrapper *); -+ void (*api_set_user_object)(sipSimpleWrapper *, PyObject *); -+ -+ /* -+ * The following are not part of the public API. -+ */ -+ int (*api_init_module)(sipExportedModuleDef *client, PyObject *mod_dict); -+ int (*api_parse_args)(PyObject **parseErrp, PyObject *sipArgs, -+ const char *fmt, ...); -+ int (*api_parse_pair)(PyObject **parseErrp, PyObject *arg0, PyObject *arg1, -+ const char *fmt, ...); -+ -+ /* -+ * The following are part of the public API. -+ */ -+ void (*api_instance_destroyed)(sipSimpleWrapper *sipSelf); -+ -+ /* -+ * The following are not part of the public API. -+ */ -+ void (*api_no_function)(PyObject *parseErr, const char *func, -+ const char *doc); -+ void (*api_no_method)(PyObject *parseErr, const char *scope, -+ const char *method, const char *doc); -+ void (*api_abstract_method)(const char *classname, const char *method); -+ void (*api_bad_class)(const char *classname); -+ void *(*api_get_cpp_ptr)(sipSimpleWrapper *w, const sipTypeDef *td); -+ void *(*api_get_complex_cpp_ptr)(sipSimpleWrapper *w); -+ PyObject *(*api_is_py_method)(sip_gilstate_t *gil, char *pymc, -+ sipSimpleWrapper *sipSelf, const char *cname, const char *mname); -+ void (*api_call_hook)(const char *hookname); -+ void (*api_end_thread)(void); -+ void (*api_raise_unknown_exception)(void); -+ void (*api_raise_type_exception)(const sipTypeDef *td, void *ptr); -+ int (*api_add_type_instance)(PyObject *dict, const char *name, -+ void *cppPtr, const sipTypeDef *td); -+ void (*api_bad_operator_arg)(PyObject *self, PyObject *arg, -+ sipPySlotType st); -+ PyObject *(*api_pyslot_extend)(sipExportedModuleDef *mod, sipPySlotType st, -+ const sipTypeDef *type, PyObject *arg0, PyObject *arg1); -+ void (*api_add_delayed_dtor)(sipSimpleWrapper *w); -+ char (*api_bytes_as_char)(PyObject *obj); -+ const char *(*api_bytes_as_string)(PyObject *obj); -+ char (*api_string_as_ascii_char)(PyObject *obj); -+ const char *(*api_string_as_ascii_string)(PyObject **obj); -+ char (*api_string_as_latin1_char)(PyObject *obj); -+ const char *(*api_string_as_latin1_string)(PyObject **obj); -+ char (*api_string_as_utf8_char)(PyObject *obj); -+ const char *(*api_string_as_utf8_string)(PyObject **obj); -+#if defined(HAVE_WCHAR_H) -+ wchar_t (*api_unicode_as_wchar)(PyObject *obj); -+ wchar_t *(*api_unicode_as_wstring)(PyObject *obj); -+#else -+ int (*api_unicode_as_wchar)(PyObject *obj); -+ int *(*api_unicode_as_wstring)(PyObject *obj); -+#endif -+ int (*api_deprecated)(const char *classname, const char *method); -+ void (*api_keep_reference)(PyObject *self, int key, PyObject *obj); -+ int (*api_parse_kwd_args)(PyObject **parseErrp, PyObject *sipArgs, -+ PyObject *sipKwdArgs, const char **kwdlist, PyObject **unused, -+ const char *fmt, ...); -+ void (*api_add_exception)(sipErrorState es, PyObject **parseErrp); -+ int (*api_parse_result_ex)(sip_gilstate_t, sipVirtErrorHandlerFunc, -+ sipSimpleWrapper *, PyObject *method, PyObject *res, -+ const char *fmt, ...); -+ void (*api_call_error_handler)(sipVirtErrorHandlerFunc, -+ sipSimpleWrapper *, sip_gilstate_t); -+ int (*api_init_mixin)(PyObject *self, PyObject *args, PyObject *kwds, -+ const sipClassTypeDef *ctd); -+ PyObject *(*api_get_reference)(PyObject *self, int key); -+ int (*api_is_owned_by_python)(sipSimpleWrapper *); -+ int (*api_is_derived_class)(sipSimpleWrapper *); -+ -+ /* -+ * The following may be used by Qt support code but no other handwritten -+ * code. -+ */ -+ void (*api_free_sipslot)(sipSlot *slot); -+ int (*api_same_slot)(const sipSlot *sp, PyObject *rxObj, const char *slot); -+ void *(*api_convert_rx)(sipWrapper *txSelf, const char *sigargs, -+ PyObject *rxObj, const char *slot, const char **memberp, -+ int flags); -+ PyObject *(*api_invoke_slot)(const sipSlot *slot, PyObject *sigargs); -+ PyObject *(*api_invoke_slot_ex)(const sipSlot *slot, PyObject *sigargs, -+ int check_receiver); -+ int (*api_save_slot)(sipSlot *sp, PyObject *rxObj, const char *slot); -+ void (*api_clear_any_slot_reference)(sipSlot *slot); -+ int (*api_visit_slot)(sipSlot *slot, visitproc visit, void *arg); -+ -+ /* -+ * The following are deprecated parts of the public API. -+ */ -+ PyTypeObject *(*api_find_named_enum)(const char *type); -+ const sipMappedType *(*api_find_mapped_type)(const char *type); -+ sipWrapperType *(*api_find_class)(const char *type); -+ sipWrapperType *(*api_map_int_to_class)(int typeInt, -+ const sipIntTypeClassMap *map, int maplen); -+ sipWrapperType *(*api_map_string_to_class)(const char *typeString, -+ const sipStringTypeClassMap *map, int maplen); -+ -+ /* -+ * The following are part of the public API. -+ */ -+ int (*api_enable_gc)(int enable); -+ void (*api_print_object)(PyObject *o); -+ int (*api_register_event_handler)(sipEventType type, const sipTypeDef *td, -+ void *handler); -+ int (*api_convert_to_enum)(PyObject *obj, const sipTypeDef *td); -+ int (*api_convert_to_bool)(PyObject *obj); -+ int (*api_enable_overflow_checking)(int enable); -+ char (*api_long_as_char)(PyObject *o); -+ signed char (*api_long_as_signed_char)(PyObject *o); -+ unsigned char (*api_long_as_unsigned_char)(PyObject *o); -+ short (*api_long_as_short)(PyObject *o); -+ unsigned short (*api_long_as_unsigned_short)(PyObject *o); -+ int (*api_long_as_int)(PyObject *o); -+ unsigned int (*api_long_as_unsigned_int)(PyObject *o); -+ long (*api_long_as_long)(PyObject *o); -+#if defined(HAVE_LONG_LONG) -+ PY_LONG_LONG (*api_long_as_long_long)(PyObject *o); -+ unsigned PY_LONG_LONG (*api_long_as_unsigned_long_long)(PyObject *o); -+#else -+ void *api_long_as_long_long; -+ void *api_long_as_unsigned_long_long; -+#endif -+ -+ /* -+ * The following are not part of the public API. -+ */ -+ void (*api_instance_destroyed_ex)(sipSimpleWrapper **sipSelfp); -+ -+ /* -+ * The following are part of the public API. -+ */ -+ int (*api_convert_from_slice_object)(PyObject *slice, SIP_SSIZE_T length, -+ SIP_SSIZE_T *start, SIP_SSIZE_T *stop, SIP_SSIZE_T *step, -+ SIP_SSIZE_T *slicelength); -+} sipAPIDef; -+ -+ -+/* -+ * The API implementing the optional Qt support. -+ */ -+typedef struct _sipQtAPI { -+ sipTypeDef **qt_qobject; -+ void *(*qt_create_universal_signal)(void *, const char **); -+ void *(*qt_find_universal_signal)(void *, const char **); -+ void *(*qt_create_universal_slot)(struct _sipWrapper *, const char *, -+ PyObject *, const char *, const char **, int); -+ void (*qt_destroy_universal_slot)(void *); -+ void *(*qt_find_slot)(void *, const char *, PyObject *, const char *, -+ const char **); -+ int (*qt_connect)(void *, const char *, void *, const char *, int); -+ int (*qt_disconnect)(void *, const char *, void *, const char *); -+ int (*qt_same_name)(const char *, const char *); -+ sipSlot *(*qt_find_sipslot)(void *, void **); -+ int (*qt_emit_signal)(PyObject *, const char *, PyObject *); -+ int (*qt_connect_py_signal)(PyObject *, const char *, PyObject *, -+ const char *); -+ void (*qt_disconnect_py_signal)(PyObject *, const char *, PyObject *, -+ const char *); -+} sipQtAPI; -+ -+ -+/* -+ * These are flags that can be passed to sipCanConvertToType(), -+ * sipConvertToType() and sipForceConvertToType(). -+ */ -+#define SIP_NOT_NONE 0x01 /* Disallow None. */ -+#define SIP_NO_CONVERTORS 0x02 /* Disable any type convertors. */ -+ -+ -+/* -+ * These are flags that can be passed to sipConvertToArray(). These are held -+ * in sw_flags. -+ */ -+#define SIP_READ_ONLY 0x01 /* The array is read-only. */ -+#define SIP_OWNS_MEMORY 0x02 /* The array owns its memory. */ -+ -+ -+/* -+ * These are the state flags returned by %ConvertToTypeCode. Note that the -+ * values share the same "flagspace" as the contents of sw_flags. -+ */ -+#define SIP_TEMPORARY 0x01 /* A temporary instance. */ -+#define SIP_DERIVED_CLASS 0x02 /* The instance is derived. */ -+ -+ -+/* -+ * These flags are specific to the Qt support API. -+ */ -+#define SIP_SINGLE_SHOT 0x01 /* The connection is single shot. */ -+ -+ -+/* -+ * Useful macros, not part of the public API. -+ */ -+ -+/* These are held in sw_flags. */ -+#define SIP_INDIRECT 0x0004 /* If there is a level of indirection. */ -+#define SIP_ACCFUNC 0x0008 /* If there is an access function. */ -+#define SIP_NOT_IN_MAP 0x0010 /* If Python object is not in the map. */ -+ -+#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000 -+#define SIP_PY_OWNED 0x0020 /* If owned by Python. */ -+#define SIP_SHARE_MAP 0x0040 /* If the map slot might be occupied. */ -+#define SIP_CPP_HAS_REF 0x0080 /* If C/C++ has a reference. */ -+#define SIP_POSSIBLE_PROXY 0x0100 /* If there might be a proxy slot. */ -+#define SIP_ALIAS 0x0200 /* If it is an alias. */ -+#define SIP_CREATED 0x0400 /* If the C/C++ object has been created. */ -+ -+#define sipIsDerived(sw) ((sw)->sw_flags & SIP_DERIVED_CLASS) -+#define sipIsIndirect(sw) ((sw)->sw_flags & SIP_INDIRECT) -+#define sipIsAccessFunc(sw) ((sw)->sw_flags & SIP_ACCFUNC) -+#define sipNotInMap(sw) ((sw)->sw_flags & SIP_NOT_IN_MAP) -+#define sipSetNotInMap(sw) ((sw)->sw_flags |= SIP_NOT_IN_MAP) -+#define sipIsPyOwned(sw) ((sw)->sw_flags & SIP_PY_OWNED) -+#define sipSetPyOwned(sw) ((sw)->sw_flags |= SIP_PY_OWNED) -+#define sipResetPyOwned(sw) ((sw)->sw_flags &= ~SIP_PY_OWNED) -+#define sipCppHasRef(sw) ((sw)->sw_flags & SIP_CPP_HAS_REF) -+#define sipSetCppHasRef(sw) ((sw)->sw_flags |= SIP_CPP_HAS_REF) -+#define sipResetCppHasRef(sw) ((sw)->sw_flags &= ~SIP_CPP_HAS_REF) -+#define sipPossibleProxy(sw) ((sw)->sw_flags & SIP_POSSIBLE_PROXY) -+#define sipSetPossibleProxy(sw) ((sw)->sw_flags |= SIP_POSSIBLE_PROXY) -+#define sipIsAlias(sw) ((sw)->sw_flags & SIP_ALIAS) -+#define sipWasCreated(sw) ((sw)->sw_flags & SIP_CREATED) -+#endif -+ -+#define SIP_TYPE_TYPE_MASK 0x0007 /* The type type mask. */ -+#define SIP_TYPE_CLASS 0x0000 /* If the type is a C++ class. */ -+#define SIP_TYPE_NAMESPACE 0x0001 /* If the type is a C++ namespace. */ -+#define SIP_TYPE_MAPPED 0x0002 /* If the type is a mapped type. */ -+#define SIP_TYPE_ENUM 0x0003 /* If the type is a named enum. */ -+#define SIP_TYPE_SCOPED_ENUM 0x0004 /* If the type is a scoped enum. */ -+#define SIP_TYPE_ABSTRACT 0x0008 /* If the type is abstract. */ -+#define SIP_TYPE_SCC 0x0010 /* If the type is subject to sub-class convertors. */ -+#define SIP_TYPE_ALLOW_NONE 0x0020 /* If the type can handle None. */ -+#define SIP_TYPE_STUB 0x0040 /* If the type is a stub. */ -+#define SIP_TYPE_NONLAZY 0x0080 /* If the type has a non-lazy method. */ -+#define SIP_TYPE_SUPER_INIT 0x0100 /* If the instance's super init should be called. */ -+#define SIP_TYPE_LIMITED_API 0x0200 /* Use the limited API. If this is more generally required it may need to be moved to the module definition. */ -+ -+ -+/* -+ * The following are part of the public API. -+ */ -+#define sipTypeIsClass(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_CLASS) -+#define sipTypeIsNamespace(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_NAMESPACE) -+#define sipTypeIsMapped(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_MAPPED) -+#define sipTypeIsEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_ENUM) -+#define sipTypeIsScopedEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_SCOPED_ENUM) -+#define sipTypeAsPyTypeObject(td) ((td)->u.td_py_type) -+#define sipTypeName(td) sipNameFromPool((td)->td_module, (td)->td_cname) -+#define sipTypePluginData(td) ((td)->td_plugin_data) -+ -+ -+/* -+ * Note that this was never actually documented as being part of the public -+ * API. It is now deprecated. sipIsUserType() should be used instead. -+ */ -+#define sipIsExactWrappedType(wt) (sipTypeAsPyTypeObject((wt)->wt_td) == (PyTypeObject *)(wt)) -+ -+ -+/* -+ * The following are deprecated parts of the public API. -+ */ -+#define sipClassName(w) PyString_FromString(Py_TYPE(w)->tp_name) -+ -+ -+/* -+ * The following are not part of the public API. -+ */ -+#define sipTypeIsAbstract(td) ((td)->td_flags & SIP_TYPE_ABSTRACT) -+#define sipTypeHasSCC(td) ((td)->td_flags & SIP_TYPE_SCC) -+#define sipTypeAllowNone(td) ((td)->td_flags & SIP_TYPE_ALLOW_NONE) -+#define sipTypeIsStub(td) ((td)->td_flags & SIP_TYPE_STUB) -+#define sipTypeSetStub(td) ((td)->td_flags |= SIP_TYPE_STUB) -+#define sipTypeHasNonlazyMethod(td) ((td)->td_flags & SIP_TYPE_NONLAZY) -+#define sipTypeCallSuperInit(td) ((td)->td_flags & SIP_TYPE_SUPER_INIT) -+#define sipTypeUseLimitedAPI(td) ((td)->td_flags & SIP_TYPE_LIMITED_API) -+ -+/* -+ * Get various names from the string pool for various data types. -+ */ -+#define sipNameFromPool(em, mr) (&((em)->em_strings)[(mr)]) -+#define sipNameOfModule(em) sipNameFromPool((em), (em)->em_name) -+#define sipPyNameOfContainer(cod, td) sipNameFromPool((td)->td_module, (cod)->cod_name) -+#define sipPyNameOfEnum(etd) sipNameFromPool((etd)->etd_base.td_module, (etd)->etd_name) -+ -+ -+/* -+ * The following are PyQt4-specific extensions. In SIP v5 they will be pushed -+ * out to a plugin supplied by PyQt4. -+ */ -+ -+/* -+ * The description of a Qt signal for PyQt4. -+ */ -+typedef struct _pyqt4QtSignal { -+ /* The C++ name and signature of the signal. */ -+ const char *signature; -+ -+ /* The optional docstring. */ -+ const char *docstring; -+ -+ /* -+ * If the signal is an overload of regular methods then this points to the -+ * code that implements those methods. -+ */ -+ PyMethodDef *non_signals; -+ -+ /* -+ * The hack to apply when built against Qt5: -+ * -+ * 0 - no hack -+ * 1 - add an optional None -+ * 2 - add an optional [] -+ * 3 - add an optional False -+ */ -+ int hack; -+} pyqt4QtSignal; -+ -+ -+/* -+ * This is the PyQt4-specific extension to the generated class type structure. -+ */ -+typedef struct _pyqt4ClassPluginDef { -+ /* A pointer to the QObject sub-class's staticMetaObject class variable. */ -+ const void *static_metaobject; -+ -+ /* -+ * A set of flags. At the moment only bit 0 is used to say if the type is -+ * derived from QFlags. -+ */ -+ unsigned flags; -+ -+ /* -+ * The table of signals emitted by the type. These are grouped by signal -+ * name. -+ */ -+ const pyqt4QtSignal *qt_signals; -+} pyqt4ClassPluginDef; -+ -+ -+/* -+ * The following are PyQt5-specific extensions. In SIP v5 they will be pushed -+ * out to a plugin supplied by PyQt5. -+ */ -+ -+/* -+ * The description of a Qt signal for PyQt5. -+ */ -+typedef int (*pyqt5EmitFunc)(void *, PyObject *); -+ -+typedef struct _pyqt5QtSignal { -+ /* The normalised C++ name and signature of the signal. */ -+ const char *signature; -+ -+ /* The optional docstring. */ -+ const char *docstring; -+ -+ /* -+ * If the signal is an overload of regular methods then this points to the -+ * code that implements those methods. -+ */ -+ PyMethodDef *non_signals; -+ -+ /* -+ * If the signal has optional arguments then this function will implement -+ * emit() for the signal. -+ */ -+ pyqt5EmitFunc emitter; -+} pyqt5QtSignal; -+ -+ -+/* -+ * This is the PyQt5-specific extension to the generated class type structure. -+ */ -+typedef struct _pyqt5ClassPluginDef { -+ /* A pointer to the QObject sub-class's staticMetaObject class variable. */ -+ const void *static_metaobject; -+ -+ /* -+ * A set of flags. At the moment only bit 0 is used to say if the type is -+ * derived from QFlags. -+ */ -+ unsigned flags; -+ -+ /* -+ * The table of signals emitted by the type. These are grouped by signal -+ * name. -+ */ -+ const pyqt5QtSignal *qt_signals; -+ -+ /* The name of the interface that the class defines. */ -+ const char *qt_interface; -+} pyqt5ClassPluginDef; -+ -+ -+#ifdef __cplusplus -+} -+#endif -+ -+ -+#endif -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/siplib.c sip/siplib/siplib.c ---- ./sip-4.19.12.orig/siplib/siplib.c 2018-07-05 05:54:58.000000000 -0400 -+++ sip/siplib/siplib.c 2018-09-18 18:00:57.928047976 -0400 -@@ -39,13 +39,22 @@ - - - /* -- * The qualified name of the sip module. The qualified name should be defined -- * in the compiler invocation when creating a package-specific copy. -+ * The qualified and base names of the sip module. These should be defined in -+ * the compiler invocation when creating a package-specific copy. - */ - #if !defined(SIP_MODULE_NAME) --#define SIP_MODULE_NAME "sip" -+#define SIP_MODULE_NAME sip -+#endif -+ -+#if !defined(SIP_MODULE_BASENAME) -+#define SIP_MODULE_BASENAME sip - #endif - -+#define STRINGIFY_EX(s) #s -+#define STRINGIFY(s) STRINGIFY_EX(s) -+ -+#define SIP_MODULE_NAME_STR STRINGIFY(SIP_MODULE_NAME) -+#define SIP_MODULE_BASENAME_STR STRINGIFY(SIP_MODULE_BASENAME) - - /* - * The Python metatype for a C++ wrapper type. We inherit everything from the -@@ -1023,19 +1032,24 @@ - * The Python module initialisation function. - */ - #if PY_MAJOR_VERSION >= 3 --#define SIP_MODULE_ENTRY PyInit_sip -+#define SIP_MODULE_ENTRY_PREFIX PyInit_ - #define SIP_MODULE_TYPE PyObject * - #define SIP_MODULE_DISCARD(m) Py_DECREF(m) - #define SIP_FATAL(s) return NULL - #define SIP_MODULE_RETURN(m) return (m) - #else --#define SIP_MODULE_ENTRY initsip -+#define SIP_MODULE_ENTRY_PREFIX init - #define SIP_MODULE_TYPE void - #define SIP_MODULE_DISCARD(m) - #define SIP_FATAL(s) Py_FatalError(s) - #define SIP_MODULE_RETURN(m) - #endif - -+#define CONCAT_EX(PREFIX, NAME) PREFIX ## NAME -+#define CONCAT(PREFIX, NAME) CONCAT_EX(PREFIX, NAME) -+ -+#define SIP_MODULE_ENTRY CONCAT(SIP_MODULE_ENTRY_PREFIX, SIP_MODULE_BASENAME) -+ - #if defined(SIP_STATIC_MODULE) - SIP_MODULE_TYPE SIP_MODULE_ENTRY(void) - #else -@@ -1069,7 +1083,7 @@ - #if PY_MAJOR_VERSION >= 3 - static PyModuleDef module_def = { - PyModuleDef_HEAD_INIT, -- SIP_MODULE_NAME, /* m_name */ -+ SIP_MODULE_NAME_STR, /* m_name */ - NULL, /* m_doc */ - -1, /* m_size */ - methods, /* m_methods */ -@@ -1099,13 +1113,13 @@ - sipWrapperType_Type.tp_base = &PyType_Type; - - if (PyType_Ready(&sipWrapperType_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrappertype type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrappertype type"); - - if (PyType_Ready((PyTypeObject *)&sipSimpleWrapper_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.simplewrapper type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.simplewrapper type"); - - if (sip_api_register_py_type((PyTypeObject *)&sipSimpleWrapper_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to register sip.simplewrapper type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to register sip.simplewrapper type"); - - #if defined(STACKLESS) - sipWrapper_Type.super.tp_base = (PyTypeObject *)&sipSimpleWrapper_Type; -@@ -1116,33 +1130,33 @@ - #endif - - if (PyType_Ready((PyTypeObject *)&sipWrapper_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrapper type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrapper type"); - - if (PyType_Ready(&sipMethodDescr_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.methoddescriptor type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.methoddescriptor type"); - - if (PyType_Ready(&sipVariableDescr_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.variabledescriptor type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.variabledescriptor type"); - - sipEnumType_Type.tp_base = &PyType_Type; - - if (PyType_Ready(&sipEnumType_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.enumtype type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.enumtype type"); - - if (PyType_Ready(&sipVoidPtr_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.voidptr type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.voidptr type"); - - if (PyType_Ready(&sipArray_Type) < 0) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.array type"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.array type"); - - #if PY_MAJOR_VERSION >= 3 - mod = PyModule_Create(&module_def); - #else -- mod = Py_InitModule(SIP_MODULE_NAME, methods); -+ mod = Py_InitModule(SIP_MODULE_NAME_STR, methods); - #endif - - if (mod == NULL) -- SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip module"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip module"); - - mod_dict = PyModule_GetDict(mod); - -@@ -1153,12 +1167,12 @@ - if (type_unpickler == NULL || enum_unpickler == NULL) - { - SIP_MODULE_DISCARD(mod); -- SIP_FATAL(SIP_MODULE_NAME ": Failed to get pickle helpers"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to get pickle helpers"); - } - - /* Publish the SIP API. */ - #if defined(SIP_USE_PYCAPSULE) -- obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME "._C_API", NULL); -+ obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME_STR "._C_API", NULL); - #else - obj = PyCObject_FromVoidPtr((void *)&sip_api, NULL); - #endif -@@ -1166,7 +1180,7 @@ - if (obj == NULL) - { - SIP_MODULE_DISCARD(mod); -- SIP_FATAL(SIP_MODULE_NAME ": Failed to create _C_API object"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create _C_API object"); - } - - rc = PyDict_SetItemString(mod_dict, "_C_API", obj); -@@ -1175,20 +1189,20 @@ - if (rc < 0) - { - SIP_MODULE_DISCARD(mod); -- SIP_FATAL(SIP_MODULE_NAME ": Failed to add _C_API object to module dictionary"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to add _C_API object to module dictionary"); - } - - /* These will always be needed. */ - if (objectify("__init__", &init_name) < 0) - { - SIP_MODULE_DISCARD(mod); -- SIP_FATAL(SIP_MODULE_NAME ": Failed to objectify '__init__'"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to objectify '__init__'"); - } - - if ((empty_tuple = PyTuple_New(0)) == NULL) - { - SIP_MODULE_DISCARD(mod); -- SIP_FATAL(SIP_MODULE_NAME ": Failed to create empty tuple"); -+ SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create empty tuple"); - } - - /* Add the SIP version number, but don't worry about errors. */ -@@ -1248,7 +1262,7 @@ - * Also install the package-specific module at the top level for backwards - * compatibility. - */ -- if (strcmp(SIP_MODULE_NAME, "sip") != 0) -+ if (strcmp(SIP_MODULE_NAME_STR, "sip") != 0 && strcmp(SIP_MODULE_BASENAME_STR, "sip") == 0) - { - PyObject *modules = PySys_GetObject("modules"); - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/command_line.rst sip/sphinx/command_line.rst ---- ./sip-4.19.12.orig/sphinx/command_line.rst 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sphinx/command_line.rst 2018-09-18 18:00:57.928047976 -0400 -@@ -115,10 +115,9 @@ - - .. versionadded:: 4.19.9 - -- The qualified name of the private copy of the :mod:`sip` module. It should -- be of the form ``package.sip``. See also the -- :option:`--sip-module <configure.py --sip-module>` option of the -- installation script. -+ The fully qualified name of the private copy of the :mod:`sip` module. -+ See also the :option:`--sip-module <configure.py --sip-module>` option of -+ the installation script. - - .. cmdoption:: -o - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py sip/sphinx/conf.py ---- ./sip-4.19.12.orig/sphinx/conf.py 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sphinx/conf.py 1969-12-31 19:00:00.000000000 -0500 -@@ -1,139 +0,0 @@ --# -*- coding: utf-8 -*- --# --# SIP documentation build configuration file, created by --# sphinx-quickstart on Sat May 30 14:28:55 2009. --# --# This file is execfile()d with the current directory set to its containing dir. --# --# Note that not all possible configuration values are present in this --# autogenerated file. --# --# All configuration values have a default; values that are commented out --# serve to show the default. -- --import datetime --import os --import sys -- --# If extensions (or modules to document with autodoc) are in another directory, --# add these directories to sys.path here. If the directory is relative to the --# documentation root, use os.path.abspath to make it absolute, like shown here. --#sys.path.append(os.path.abspath('.')) -- --# -- General configuration ----------------------------------------------------- -- --# Add any Sphinx extension module names here, as strings. They can be extensions --# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. --#extensions = [] -- --# Add any paths that contain templates here, relative to this directory. --templates_path = ['templates'] -- --# The suffix of source filenames. --source_suffix = '.rst' -- --# The encoding of source files. --#source_encoding = 'utf-8' -- --# The master toctree document. --master_doc = 'index' -- --# General information about the project. --project = 'SIP' --copyright = '{0} Riverbank Computing Limited'.format( -- datetime.date.today().year) -- --# The version info for the project you're documenting, acts as replacement for --# |version| and |release|, also used in various other places throughout the --# built documents. --# --# The short X.Y version. --version = '4.19.12' --# The full version, including alpha/beta/rc tags. --release = '4.19.12' -- --# The language for content autogenerated by Sphinx. Refer to documentation --# for a list of supported languages. --#language = None -- --# There are two options for replacing |today|: either, you set today to some --# non-false value, then it is used: --#today = '' --# Else, today_fmt is used as the format for a strftime call. --#today_fmt = '%B %d, %Y' -- --# List of patterns, relative to source directory, that match files and --# directories to ignore when looking for source files. --exclude_patterns = ['html'] -- --# The reST default role (used for this markup: `text`) to use for all documents. --#default_role = None -- --# If true, '()' will be appended to :func: etc. cross-reference text. --#add_function_parentheses = True -- --# If true, the current module name will be prepended to all description --# unit titles (such as .. function::). --#add_module_names = True -- --# If true, sectionauthor and moduleauthor directives will be shown in the --# output. They are ignored by default. --#show_authors = False -- --# The name of the Pygments (syntax highlighting) style to use. --pygments_style = 'sphinx' -- --# A list of ignored prefixes for module index sorting. --#modindex_common_prefix = [] -- -- --# -- Options for HTML output --------------------------------------------------- -- --# The theme to use for HTML and HTML Help pages. --html_theme = 'riverbank' -- --# Add any paths that contain custom themes here, relative to this directory. --html_theme_path = ['.'] -- --# The name for this set of Sphinx documents. If None, it defaults to --# "<project> v<release> documentation". --html_title = "%s v%s Reference Guide" % (project, release) -- --# Output file base name for HTML help builder. --htmlhelp_basename = 'SIPdoc' -- -- --# -- Project-specific extensions ----------------------------------------------- -- --def setup(app): -- """ Define roles specific to SIP. """ -- -- app.add_description_unit('argument-annotation', 'aanno', -- indextemplate='single: %s (argument annotation)') -- -- app.add_description_unit('class-annotation', 'canno', -- indextemplate='single: %s (class annotation)') -- -- app.add_description_unit('enum-annotation', 'eanno', -- indextemplate='single: %s (enum annotation)') -- -- app.add_description_unit('exception-annotation', 'xanno', -- indextemplate='single: %s (exception annotation)') -- -- app.add_description_unit('function-annotation', 'fanno', -- indextemplate='single: %s (function annotation)') -- -- app.add_description_unit('mapped-type-annotation', 'manno', -- indextemplate='single: %s (mapped type annotation)') -- -- app.add_description_unit('typedef-annotation', 'tanno', -- indextemplate='single: %s (typedef annotation)') -- -- app.add_description_unit('variable-annotation', 'vanno', -- indextemplate='single: %s (variable annotation)') -- -- app.add_description_unit('directive', 'directive', -- indextemplate='single: %s (directive)') -- -- app.add_description_unit('sip-type', 'stype', -- indextemplate='single: %s (SIP type)') -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py.in sip/sphinx/conf.py.in ---- ./sip-4.19.12.orig/sphinx/conf.py.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/sphinx/conf.py.in 2018-09-18 17:52:23.310543535 -0400 -@@ -0,0 +1,139 @@ -+# -*- coding: utf-8 -*- -+# -+# SIP documentation build configuration file, created by -+# sphinx-quickstart on Sat May 30 14:28:55 2009. -+# -+# This file is execfile()d with the current directory set to its containing dir. -+# -+# Note that not all possible configuration values are present in this -+# autogenerated file. -+# -+# All configuration values have a default; values that are commented out -+# serve to show the default. -+ -+import datetime -+import os -+import sys -+ -+# If extensions (or modules to document with autodoc) are in another directory, -+# add these directories to sys.path here. If the directory is relative to the -+# documentation root, use os.path.abspath to make it absolute, like shown here. -+#sys.path.append(os.path.abspath('.')) -+ -+# -- General configuration ----------------------------------------------------- -+ -+# Add any Sphinx extension module names here, as strings. They can be extensions -+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -+#extensions = [] -+ -+# Add any paths that contain templates here, relative to this directory. -+templates_path = ['templates'] -+ -+# The suffix of source filenames. -+source_suffix = '.rst' -+ -+# The encoding of source files. -+#source_encoding = 'utf-8' -+ -+# The master toctree document. -+master_doc = 'index' -+ -+# General information about the project. -+project = 'SIP' -+copyright = '{0} Riverbank Computing Limited'.format( -+ datetime.date.today().year) -+ -+# The version info for the project you're documenting, acts as replacement for -+# |version| and |release|, also used in various other places throughout the -+# built documents. -+# -+# The short X.Y version. -+version = '@RM_VERSION@' -+# The full version, including alpha/beta/rc tags. -+release = '@RM_RELEASE@' -+ -+# The language for content autogenerated by Sphinx. Refer to documentation -+# for a list of supported languages. -+#language = None -+ -+# There are two options for replacing |today|: either, you set today to some -+# non-false value, then it is used: -+#today = '' -+# Else, today_fmt is used as the format for a strftime call. -+#today_fmt = '%B %d, %Y' -+ -+# List of patterns, relative to source directory, that match files and -+# directories to ignore when looking for source files. -+exclude_patterns = ['html'] -+ -+# The reST default role (used for this markup: `text`) to use for all documents. -+#default_role = None -+ -+# If true, '()' will be appended to :func: etc. cross-reference text. -+#add_function_parentheses = True -+ -+# If true, the current module name will be prepended to all description -+# unit titles (such as .. function::). -+#add_module_names = True -+ -+# If true, sectionauthor and moduleauthor directives will be shown in the -+# output. They are ignored by default. -+#show_authors = False -+ -+# The name of the Pygments (syntax highlighting) style to use. -+pygments_style = 'sphinx' -+ -+# A list of ignored prefixes for module index sorting. -+#modindex_common_prefix = [] -+ -+ -+# -- Options for HTML output --------------------------------------------------- -+ -+# The theme to use for HTML and HTML Help pages. -+html_theme = 'riverbank' -+ -+# Add any paths that contain custom themes here, relative to this directory. -+html_theme_path = ['.'] -+ -+# The name for this set of Sphinx documents. If None, it defaults to -+# "<project> v<release> documentation". -+html_title = "%s v%s Reference Guide" % (project, release) -+ -+# Output file base name for HTML help builder. -+htmlhelp_basename = 'SIPdoc' -+ -+ -+# -- Project-specific extensions ----------------------------------------------- -+ -+def setup(app): -+ """ Define roles specific to SIP. """ -+ -+ app.add_description_unit('argument-annotation', 'aanno', -+ indextemplate='single: %s (argument annotation)') -+ -+ app.add_description_unit('class-annotation', 'canno', -+ indextemplate='single: %s (class annotation)') -+ -+ app.add_description_unit('enum-annotation', 'eanno', -+ indextemplate='single: %s (enum annotation)') -+ -+ app.add_description_unit('exception-annotation', 'xanno', -+ indextemplate='single: %s (exception annotation)') -+ -+ app.add_description_unit('function-annotation', 'fanno', -+ indextemplate='single: %s (function annotation)') -+ -+ app.add_description_unit('mapped-type-annotation', 'manno', -+ indextemplate='single: %s (mapped type annotation)') -+ -+ app.add_description_unit('typedef-annotation', 'tanno', -+ indextemplate='single: %s (typedef annotation)') -+ -+ app.add_description_unit('variable-annotation', 'vanno', -+ indextemplate='single: %s (variable annotation)') -+ -+ app.add_description_unit('directive', 'directive', -+ indextemplate='single: %s (directive)') -+ -+ app.add_description_unit('sip-type', 'stype', -+ indextemplate='single: %s (SIP type)') -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/installation.rst sip/sphinx/installation.rst ---- ./sip-4.19.12.orig/sphinx/installation.rst 2018-07-05 05:54:58.000000000 -0400 -+++ sip/sphinx/installation.rst 2018-09-18 18:00:57.928047976 -0400 -@@ -160,11 +160,10 @@ - - .. cmdoption:: --sip-module <NAME> - -- The :mod:`sip` module will be created with the name ``<NAME>`` rather than -- the default ``sip``. ``<NAME>`` should be of the form ``package.sip``. -- See :ref:`ref-private-sip` for how to use this to create a private copy of -- the :mod:`sip` module. Also see the :option:`-n <sip -n>` option of the -- code generator. -+ The :mod:`sip` module will be created with the fully qualified name -+ ``<NAME>`` rather than the default ``sip``. See :ref:`ref-private-sip` for -+ how to use this to create a private copy of the :mod:`sip` module. Also -+ see the :option:`-n <sip -n>` option of the code generator. - - .. cmdoption:: --sysroot <DIR> - -@@ -264,7 +263,7 @@ - To get around this problem you can build a private copy of the :mod:`sip` - module that installed as part of your package. To do this you use the - :option:`--sip-module <configure.py --sip-module>` option to specify the fully --qualified package name of your private copy. You can also use the -+qualified name of your private copy. You can also use the - :option:`--no-tools <configure.py --no-tools>` option to specify that nothing - else but the :mod:`sip` module is installed. - -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst sip/sphinx/introduction.rst ---- ./sip-4.19.12.orig/sphinx/introduction.rst 2018-07-05 05:55:19.000000000 -0400 -+++ sip/sphinx/introduction.rst 1969-12-31 19:00:00.000000000 -0500 -@@ -1,193 +0,0 @@ --Introduction --============ -- --This is the reference guide for SIP 4.19.12. SIP is a tool for --automatically generating `Python <https://www.python.org>`__ bindings for C and --C++ libraries. SIP was originally developed in 1998 for --`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python --bindings for the Qt GUI toolkit - but is suitable for generating bindings for --any C or C++ library. -- --This version of SIP generates bindings for Python v2.3 or later, including --Python v3. -- --There are many other similar tools available. One of the original such tools --is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it --started out as a small SWIG. Unlike SWIG, SIP is specifically designed for --bringing together Python and C/C++ and goes to great lengths to make the --integration as tight as possible. -- --The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here --you will always find the latest stable version and the latest version of this --documentation. -- --SIP can also be downloaded from the --`Mercurial <https://www.mercurial-scm.org>`__ repository at --https://www.riverbankcomputing.com/hg/sip. -- -- --License --------- -- --SIP is licensed under similar terms as Python itself. SIP is also licensed --under the GPL (both v2 and v3). It is your choice as to which license you --use. If you choose the GPL then any bindings you create must be distributed --under the terms of the GPL. -- -- --Features ---------- -- --SIP, and the bindings it produces, have the following features: -- --- bindings are fast to load and minimise memory consumption especially when -- only a small sub-set of a large library is being used -- --- automatic conversion between standard Python and C/C++ data types -- --- overloading of functions and methods with different argument signatures -- --- support for Python's keyword argument syntax -- --- support for both explicitly specified and automatically generated docstrings -- --- access to a C++ class's protected methods -- --- the ability to define a Python class that is a sub-class of a C++ class, -- including abstract C++ classes -- --- Python sub-classes can implement the :meth:`__dtor__` method which will be -- called from the C++ class's virtual destructor -- --- support for ordinary C++ functions, class methods, static class methods, -- virtual class methods and abstract class methods -- --- the ability to re-implement C++ virtual and abstract methods in Python -- --- support for global and class variables -- --- support for global and class operators -- --- support for C++ namespaces -- --- support for C++ templates -- --- support for C++ exceptions and wrapping them as Python exceptions -- --- the automatic generation of complementary rich comparison slots -- --- support for deprecation warnings -- --- the ability to define mappings between C++ classes and similar Python data -- types that are automatically invoked -- --- the ability to automatically exploit any available run time type information -- to ensure that the class of a Python instance object matches the class of the -- corresponding C++ instance -- --- the ability to change the type and meta-type of the Python object used to -- wrap a C/C++ data type -- --- full support of the Python global interpreter lock, including the ability to -- specify that a C++ function of method may block, therefore allowing the lock -- to be released and other Python threads to run -- --- support for consolidated modules where the generated wrapper code for a -- number of related modules may be included in a single, possibly private, -- module -- --- support for the concept of ownership of a C++ instance (i.e. what part of the -- code is responsible for calling the instance's destructor) and how the -- ownership may change during the execution of an application -- --- the ability to generate bindings for a C++ class library that itself is built -- on another C++ class library which also has had bindings generated so that -- the different bindings integrate and share code properly -- --- a sophisticated versioning system that allows the full lifetime of a C++ -- class library, including any platform specific or optional features, to be -- described in a single set of specification files -- --- support for the automatic generation of PEP 484 type hint stub files -- --- the ability to include documentation in the specification files which can be -- extracted and subsequently processed by external tools -- --- the ability to include copyright notices and licensing information in the -- specification files that is automatically included in all generated source -- code -- --- a build system, written in Python, that you can extend to configure, compile -- and install your own bindings without worrying about platform specific issues -- --- support for building your extensions using distutils -- --- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X, -- Android and iOS. -- -- --SIP Components ---------------- -- --SIP comprises a number of different components. -- --- The SIP code generator (:program:`sip`). This processes :file:`.sip` -- specification files and generates C or C++ bindings. It is covered in detail -- in :ref:`ref-using`. -- --- The SIP header file (:file:`sip.h`). This contains definitions and data -- structures needed by the generated C and C++ code. -- --- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python -- extension module that is imported automatically by SIP generated bindings and -- provides them with some common utility functions. Historically the module -- was installed in the Python installation's ``site-packages`` directory where -- it was imported by any extension module that needed it, for example -- :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies -- between otherwise unrelated packages. The preferred approach is for each -- package to include it's own private copy of the module that is installed in -- the root directory of the package as described in :ref:`ref-private-sip`. -- See also :ref:`ref-python-api`. -- --- The SIP build system (:file:`sipconfig.py`). This is a pure Python module -- that is created when SIP is configured and encapsulates all the necessary -- information about your system including relevant directory names, compiler -- and linker flags, and version numbers. It also includes several Python -- classes and functions which help you write configuration scripts for your own -- bindings. It is covered in detail in :ref:`ref-build-system`. -- --- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils -- extension that can be used to build your extension modules using distutils -- and is an alternative to writing configuration scripts with the SIP build -- system. This can be as simple as adding your .sip files to the list of files -- needed to build the extension module. It is covered in detail in -- :ref:`ref-distutils`. -- -- --Preparing for SIP v5 ---------------------- -- --The syntax of a SIP specification file will change in SIP v5. The command line --options to the SIP code generator will also change. In order to help users --manage the transition the following approach will be adopted. -- --- Where possible, all incompatible changes will be first implemented in SIP v4. -- --- When an incompatible change is implemented, the old syntax will be deprecated -- (with a warning message) but will be supported for the lifetime of v4. -- --- The use of the :option:`--sip-module <configure.py --sip-module>` option to -- build a private copy of the SIP module will be compulsory. -- -- --Qt Support ------------ -- --SIP has specific support for the creation of bindings for the Qt application --toolkit from The Qt Company.. -- --The SIP code generator understands the signal/slot type safe callback mechanism --that Qt uses to connect objects together. This allows applications to define --new Python signals, and allows any Python callable object to be used as a slot. -- --SIP itself does not require Qt to be installed. -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst.in sip/sphinx/introduction.rst.in ---- ./sip-4.19.12.orig/sphinx/introduction.rst.in 1969-12-31 19:00:00.000000000 -0500 -+++ sip/sphinx/introduction.rst.in 2018-09-18 17:52:23.312543505 -0400 -@@ -0,0 +1,193 @@ -+Introduction -+============ -+ -+This is the reference guide for SIP @RM_RELEASE@. SIP is a tool for -+automatically generating `Python <https://www.python.org>`__ bindings for C and -+C++ libraries. SIP was originally developed in 1998 for -+`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python -+bindings for the Qt GUI toolkit - but is suitable for generating bindings for -+any C or C++ library. -+ -+This version of SIP generates bindings for Python v2.3 or later, including -+Python v3. -+ -+There are many other similar tools available. One of the original such tools -+is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it -+started out as a small SWIG. Unlike SWIG, SIP is specifically designed for -+bringing together Python and C/C++ and goes to great lengths to make the -+integration as tight as possible. -+ -+The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here -+you will always find the latest stable version and the latest version of this -+documentation. -+ -+SIP can also be downloaded from the -+`Mercurial <https://www.mercurial-scm.org>`__ repository at -+https://www.riverbankcomputing.com/hg/sip. -+ -+ -+License -+------- -+ -+SIP is licensed under similar terms as Python itself. SIP is also licensed -+under the GPL (both v2 and v3). It is your choice as to which license you -+use. If you choose the GPL then any bindings you create must be distributed -+under the terms of the GPL. -+ -+ -+Features -+-------- -+ -+SIP, and the bindings it produces, have the following features: -+ -+- bindings are fast to load and minimise memory consumption especially when -+ only a small sub-set of a large library is being used -+ -+- automatic conversion between standard Python and C/C++ data types -+ -+- overloading of functions and methods with different argument signatures -+ -+- support for Python's keyword argument syntax -+ -+- support for both explicitly specified and automatically generated docstrings -+ -+- access to a C++ class's protected methods -+ -+- the ability to define a Python class that is a sub-class of a C++ class, -+ including abstract C++ classes -+ -+- Python sub-classes can implement the :meth:`__dtor__` method which will be -+ called from the C++ class's virtual destructor -+ -+- support for ordinary C++ functions, class methods, static class methods, -+ virtual class methods and abstract class methods -+ -+- the ability to re-implement C++ virtual and abstract methods in Python -+ -+- support for global and class variables -+ -+- support for global and class operators -+ -+- support for C++ namespaces -+ -+- support for C++ templates -+ -+- support for C++ exceptions and wrapping them as Python exceptions -+ -+- the automatic generation of complementary rich comparison slots -+ -+- support for deprecation warnings -+ -+- the ability to define mappings between C++ classes and similar Python data -+ types that are automatically invoked -+ -+- the ability to automatically exploit any available run time type information -+ to ensure that the class of a Python instance object matches the class of the -+ corresponding C++ instance -+ -+- the ability to change the type and meta-type of the Python object used to -+ wrap a C/C++ data type -+ -+- full support of the Python global interpreter lock, including the ability to -+ specify that a C++ function of method may block, therefore allowing the lock -+ to be released and other Python threads to run -+ -+- support for consolidated modules where the generated wrapper code for a -+ number of related modules may be included in a single, possibly private, -+ module -+ -+- support for the concept of ownership of a C++ instance (i.e. what part of the -+ code is responsible for calling the instance's destructor) and how the -+ ownership may change during the execution of an application -+ -+- the ability to generate bindings for a C++ class library that itself is built -+ on another C++ class library which also has had bindings generated so that -+ the different bindings integrate and share code properly -+ -+- a sophisticated versioning system that allows the full lifetime of a C++ -+ class library, including any platform specific or optional features, to be -+ described in a single set of specification files -+ -+- support for the automatic generation of PEP 484 type hint stub files -+ -+- the ability to include documentation in the specification files which can be -+ extracted and subsequently processed by external tools -+ -+- the ability to include copyright notices and licensing information in the -+ specification files that is automatically included in all generated source -+ code -+ -+- a build system, written in Python, that you can extend to configure, compile -+ and install your own bindings without worrying about platform specific issues -+ -+- support for building your extensions using distutils -+ -+- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X, -+ Android and iOS. -+ -+ -+SIP Components -+-------------- -+ -+SIP comprises a number of different components. -+ -+- The SIP code generator (:program:`sip`). This processes :file:`.sip` -+ specification files and generates C or C++ bindings. It is covered in detail -+ in :ref:`ref-using`. -+ -+- The SIP header file (:file:`sip.h`). This contains definitions and data -+ structures needed by the generated C and C++ code. -+ -+- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python -+ extension module that is imported automatically by SIP generated bindings and -+ provides them with some common utility functions. Historically the module -+ was installed in the Python installation's ``site-packages`` directory where -+ it was imported by any extension module that needed it, for example -+ :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies -+ between otherwise unrelated packages. The preferred approach is for each -+ package to include it's own private copy of the module that is installed in -+ the root directory of the package as described in :ref:`ref-private-sip`. -+ See also :ref:`ref-python-api`. -+ -+- The SIP build system (:file:`sipconfig.py`). This is a pure Python module -+ that is created when SIP is configured and encapsulates all the necessary -+ information about your system including relevant directory names, compiler -+ and linker flags, and version numbers. It also includes several Python -+ classes and functions which help you write configuration scripts for your own -+ bindings. It is covered in detail in :ref:`ref-build-system`. -+ -+- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils -+ extension that can be used to build your extension modules using distutils -+ and is an alternative to writing configuration scripts with the SIP build -+ system. This can be as simple as adding your .sip files to the list of files -+ needed to build the extension module. It is covered in detail in -+ :ref:`ref-distutils`. -+ -+ -+Preparing for SIP v5 -+-------------------- -+ -+The syntax of a SIP specification file will change in SIP v5. The command line -+options to the SIP code generator will also change. In order to help users -+manage the transition the following approach will be adopted. -+ -+- Where possible, all incompatible changes will be first implemented in SIP v4. -+ -+- When an incompatible change is implemented, the old syntax will be deprecated -+ (with a warning message) but will be supported for the lifetime of v4. -+ -+- The use of the :option:`--sip-module <configure.py --sip-module>` option to -+ build a private copy of the SIP module will be compulsory. -+ -+ -+Qt Support -+---------- -+ -+SIP has specific support for the creation of bindings for the Qt application -+toolkit from The Qt Company.. -+ -+The SIP code generator understands the signal/slot type safe callback mechanism -+that Qt uses to connect objects together. This allows applications to define -+new Python signals, and allows any Python callable object to be used as a slot. -+ -+SIP itself does not require Qt to be installed. -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/mk.sh sip/test/int_convertors/mk.sh ---- ./sip-4.19.12.orig/test/int_convertors/mk.sh 1969-12-31 19:00:00.000000000 -0500 -+++ sip/test/int_convertors/mk.sh 2018-09-18 17:52:23.314543476 -0400 -@@ -0,0 +1,23 @@ -+PYTHON=3.6 -+PYTHON_ARCH="$PYTHON"m -+#PYTHON=2.7 -+#PYTHON_ARCH=$PYTHON -+ -+QT=5.9.2 -+QT_SHORT=5.9.2 -+ -+PYROOT=/Library/Frameworks/Python.framework/Versions/$PYTHON -+ -+QTROOT=$HOME/bob/Qt$QT/$QT_SHORT/clang_64 -+ -+# Run sip. -+$PYROOT/bin/sip -c . -j 1 test.sip -+#$PYROOT/bin/sip -c . -j 1 -t Qt_5_9_1 -t WS_MACX -I $PYROOT/share/sip/PyQt5 test.sip -+ -+# Compile C++. -+c++ -c -pipe -fPIC -Os -w -I. -I$PYROOT/include/python"$PYTHON_ARCH" -o siptestpart0.o siptestpart0.cpp -+#c++ -c -pipe -fPIC -Os -w -std=gnu++11 -F$QTROOT/lib -I. -I$PYROOT/include/python"$PYTHON_ARCH" -I$QTROOT/lib/QtCore.framework/Headers -o siptestpart0.o siptestpart0.cpp -+ -+# Link C++. -+c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o -+#c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o -F$QTROOT/lib -framework QtCore -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/run_test.py sip/test/int_convertors/run_test.py ---- ./sip-4.19.12.orig/test/int_convertors/run_test.py 1969-12-31 19:00:00.000000000 -0500 -+++ sip/test/int_convertors/run_test.py 2018-09-18 17:52:23.315543462 -0400 -@@ -0,0 +1,1845 @@ -+import sys -+import unittest -+ -+from sip import enableoverflowchecking -+ -+from test import Test -+ -+ -+# The exception raised by a virtual re-implementation. -+_exc = None -+ -+# The saved exception hook. -+_old_hook = None -+ -+ -+def _hook(xtype, xvalue, xtb): -+ """ The replacement exceptionhook. """ -+ -+ global _exc -+ -+ # Save the exception for later. -+ _exc = xvalue -+ -+ -+def install_hook(): -+ """ Install an exception hook that will remember exceptions raised by -+ virtual re-implementations. -+ """ -+ -+ global _exc, _old_hook -+ -+ # Clear the saved exception. -+ _exc = None -+ -+ # Save the old hook and install the new one. -+ _old_hook = sys.excepthook -+ sys.excepthook = _hook -+ -+ -+def uninstall_hook(): -+ """ Restore the original exception hook and re-raise any exception raised -+ by a virtual re-implementation. -+ """ -+ -+ sys.excepthook = _old_hook -+ -+ if _exc is not None: -+ raise _exc -+ -+ -+class InvalidFixture(Test): -+ """ A fixture for testing invalid values. """ -+ -+ def scoped_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return 10 -+ -+ def named_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def bool_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def signed_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def unsigned_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def unsigned_short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def unsigned_int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def unsigned_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ def unsigned_long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return '0' -+ -+ -+class ScopedEnumFixture(Test): -+ """ A fixture for testing scoped enum values. """ -+ -+ def scoped_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return Test.Scoped.scoped -+ -+ -+class NamedEnumFixture(Test): -+ """ A fixture for testing named enum values. """ -+ -+ def __init__(self, value): -+ """ Initialise the object. """ -+ -+ super().__init__() -+ -+ self._value = value -+ -+ def named_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self._value -+ -+ -+class BoolFixture(Test): -+ """ A fixture for testing valid boolean values. """ -+ -+ def __init__(self, value): -+ """ Initialise the object. """ -+ -+ super().__init__() -+ -+ self._value = value -+ -+ def bool_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self._value -+ -+ -+class LimitsFixture(Test): -+ """ The base test fixture for those implementing a range of values. """ -+ -+ def __init__(self, limits): -+ """ Initialise the object. """ -+ -+ super().__init__() -+ -+ self.limits = limits -+ -+ -+class ValidLowerFixture(LimitsFixture): -+ """ A fixture for testing the lower bound of non-overflowing signed values. -+ """ -+ -+ def char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.CHAR_LOWER -+ -+ def signed_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SIGNED_CHAR_LOWER -+ -+ def short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SHORT_LOWER -+ -+ def int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.INT_LOWER -+ -+ def long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LOWER -+ -+ def long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LONG_LOWER -+ -+ -+class ValidUpperFixture(LimitsFixture): -+ """ A fixture for testing the upper bound of non-overflowing values. -+ """ -+ -+ def char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.CHAR_UPPER -+ -+ def signed_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SIGNED_CHAR_UPPER -+ -+ def short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SHORT_UPPER -+ -+ def int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.INT_UPPER -+ -+ def long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_UPPER -+ -+ def long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LONG_UPPER -+ -+ def unsigned_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_CHAR_UPPER -+ -+ def unsigned_short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_SHORT_UPPER -+ -+ def unsigned_int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_INT_UPPER -+ -+ def unsigned_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_LONG_UPPER -+ -+ def unsigned_long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_LONG_LONG_UPPER -+ -+ -+class OverflowLowerFixture(LimitsFixture): -+ """ A fixture for testing the lower bound of overflowing signed values. """ -+ -+ def char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.CHAR_LOWER - 1 -+ -+ def signed_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SIGNED_CHAR_LOWER - 1 -+ -+ def short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SHORT_LOWER - 1 -+ -+ def int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.INT_LOWER - 1 -+ -+ def long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LOWER - 1 -+ -+ def long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LONG_LOWER - 1 -+ -+ -+class OverflowUpperFixture(LimitsFixture): -+ """ A fixture for testing the upper bound of overflowing values. """ -+ -+ def char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.CHAR_UPPER + 1 -+ -+ def signed_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SIGNED_CHAR_UPPER + 1 -+ -+ def short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.SHORT_UPPER + 1 -+ -+ def int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.INT_UPPER + 1 -+ -+ def long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_UPPER + 1 -+ -+ def long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.LONG_LONG_UPPER + 1 -+ -+ def unsigned_char_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_CHAR_UPPER + 1 -+ -+ def unsigned_short_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_SHORT_UPPER + 1 -+ -+ def unsigned_int_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_INT_UPPER + 1 -+ -+ def unsigned_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_LONG_UPPER + 1 -+ -+ def unsigned_long_long_virt(self): -+ """ Re-implemented to return the fixture-specific value. """ -+ -+ return self.limits.UNSIGNED_LONG_LONG_UPPER + 1 -+ -+ -+class TestScopedEnumConvertors(unittest.TestCase): -+ """ This tests the scoped enum convertors with valid values. """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.fixture = ScopedEnumFixture() -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ del self.fixture -+ -+ def test_scoped_get_member(self): -+ """ scoped enum virtual result with a member value. """ -+ -+ self.assertIs(self.fixture.scoped_get(), Test.Scoped.scoped) -+ -+ def test_scoped_set_member(self): -+ """ scoped enum function argument with a member value. """ -+ -+ self.fixture.scoped_set(Test.Scoped.scoped) -+ -+ def test_scoped_var_member(self): -+ """ scoped enum instance variable with a member value. """ -+ -+ self.fixture.scoped_var = Test.Scoped.scoped -+ -+ -+class TestNamedEnumConvertors(unittest.TestCase): -+ """ This tests the named enum convertors with valid values. """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.member_fixture = NamedEnumFixture(Test.named) -+ self.int_fixture = NamedEnumFixture(0) -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ del self.member_fixture -+ del self.int_fixture -+ -+ def test_named_get_member(self): -+ """ named enum virtual result with a member value. """ -+ -+ self.assertEqual(self.member_fixture.named_get(), Test.named) -+ -+ def test_named_set_member(self): -+ """ named enum function argument with a member value. """ -+ -+ self.member_fixture.named_set(Test.named) -+ -+ def test_named_var_member(self): -+ """ named enum instance variable with a member value. """ -+ -+ self.member_fixture.named_var = Test.named -+ -+ def test_named_overload_set(self): -+ """ overloaded named enum function argument. """ -+ -+ self.member_fixture.named_overload_set(Test.named) -+ self.assertIs(self.member_fixture.named_overload, True) -+ -+ def test_named_get_int(self): -+ """ named enum virtual result with an integer value. """ -+ -+ self.assertEqual(self.int_fixture.named_get(), 0) -+ -+ def test_named_set_int(self): -+ """ named enum function argument with an integer value. """ -+ -+ self.int_fixture.named_set(0) -+ -+ def test_named_var_int(self): -+ """ named enum instance variable with an integer value. """ -+ -+ self.int_fixture.named_var = 0 -+ -+ -+class TestBoolConvertors(unittest.TestCase): -+ """ This tests the bool convertors with valid values. """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.true_fixture = BoolFixture(True) -+ self.false_fixture = BoolFixture(False) -+ self.nonzero_fixture = BoolFixture(-1) -+ self.zero_fixture = BoolFixture(0) -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ del self.true_fixture -+ del self.false_fixture -+ del self.nonzero_fixture -+ del self.zero_fixture -+ -+ def test_bool_get_true(self): -+ """ bool virtual result with a True value. """ -+ -+ self.assertIs(self.true_fixture.bool_get(), True) -+ -+ def test_bool_set_true(self): -+ """ bool function argument with a True value. """ -+ -+ self.true_fixture.bool_set(True) -+ -+ def test_bool_var_true(self): -+ """ bool instance variable with a True value. """ -+ -+ self.true_fixture.bool_var = True -+ -+ def test_bool_get_false(self): -+ """ bool virtual result with a True value. """ -+ -+ self.assertIs(self.false_fixture.bool_get(), False) -+ -+ def test_bool_set_false(self): -+ """ bool function argument with a False value. """ -+ -+ self.false_fixture.bool_set(False) -+ -+ def test_bool_var_false(self): -+ """ bool instance variable with a False value. """ -+ -+ self.false_fixture.bool_var = False -+ -+ def test_bool_get_nonzero(self): -+ """ bool virtual result with a non-zero value. """ -+ -+ self.assertIs(self.nonzero_fixture.bool_get(), True) -+ -+ def test_bool_set_nonzero(self): -+ """ bool function argument with a non-zero value. """ -+ -+ self.nonzero_fixture.bool_set(-1) -+ -+ def test_bool_var_nonzero(self): -+ """ bool instance variable with a non-zero value. """ -+ -+ self.nonzero_fixture.bool_var = -1 -+ -+ def test_bool_get_zero(self): -+ """ bool virtual result with a zero value. """ -+ -+ self.assertIs(self.zero_fixture.bool_get(), False) -+ -+ def test_bool_set_zero(self): -+ """ bool function argument with a zero value. """ -+ -+ self.zero_fixture.bool_set(0) -+ -+ def test_bool_var_zero(self): -+ """ bool instance variable with a zero value. """ -+ -+ self.zero_fixture.bool_var = 0 -+ -+ -+class TestIntConvertors(unittest.TestCase): -+ """ This tests the integer convertors with valid values. """ -+ -+ @classmethod -+ def setUpClass(cls): -+ """ Set up a test case. """ -+ -+ # Compute the various test values based on the native sizes. -+ cls.CHAR_LOWER = Test.char_lower() -+ cls.CHAR_UPPER = Test.char_upper() -+ cls.SIGNED_CHAR_LOWER, cls.SIGNED_CHAR_UPPER = cls._signed_bounds( -+ Test.signed_char_sizeof()) -+ cls.SHORT_LOWER, cls.SHORT_UPPER = cls._signed_bounds( -+ Test.short_sizeof()) -+ cls.INT_LOWER, cls.INT_UPPER = cls._signed_bounds(Test.int_sizeof()) -+ cls.LONG_LOWER, cls.LONG_UPPER = cls._signed_bounds(Test.long_sizeof()) -+ cls.LONG_LONG_LOWER, cls.LONG_LONG_UPPER = cls._signed_bounds( -+ Test.long_long_sizeof()) -+ cls.UNSIGNED_CHAR_UPPER = cls._unsigned_upper_bound( -+ Test.unsigned_char_sizeof()) -+ cls.UNSIGNED_SHORT_UPPER = cls._unsigned_upper_bound( -+ Test.unsigned_short_sizeof()) -+ cls.UNSIGNED_INT_UPPER = cls._unsigned_upper_bound( -+ Test.unsigned_int_sizeof()) -+ cls.UNSIGNED_LONG_UPPER = cls._unsigned_upper_bound( -+ Test.unsigned_long_sizeof()) -+ cls.UNSIGNED_LONG_LONG_UPPER = cls._unsigned_upper_bound( -+ Test.unsigned_long_long_sizeof()) -+ -+ @staticmethod -+ def _signed_bounds(nrbytes): -+ """ Return the range of values for a number of bytes representing a -+ signed value. -+ """ -+ -+ v = 1 << ((nrbytes * 8) - 1) -+ -+ return -v, v - 1 -+ -+ @staticmethod -+ def _unsigned_upper_bound(nrbytes): -+ """ Return the upper bound for a number of bytes representing an -+ unsigned value. -+ """ -+ -+ return (1 << (nrbytes * 8)) - 1 -+ -+ -+class TestInvalidValues(TestIntConvertors): -+ """ This tests the integer, boolean and enum convertors with invalid -+ values. -+ """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.fixture = InvalidFixture() -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ del self.fixture -+ -+ def test_scoped_get(self): -+ """ scoped enum virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.scoped_get() -+ uninstall_hook() -+ -+ def test_scoped_set(self): -+ """ scoped enum function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.scoped_set(10) -+ -+ def test_scoped_var(self): -+ """ scoped enum instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.scoped_var = 10 -+ -+ def test_named_get(self): -+ """ named enum virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.named_get() -+ uninstall_hook() -+ -+ def test_named_set(self): -+ """ named enum function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.named_set('0') -+ -+ def test_named_var(self): -+ """ named enum instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.named_var = '0' -+ -+ def test_bool_get(self): -+ """ bool virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.bool_get() -+ uninstall_hook() -+ -+ def test_bool_set(self): -+ """ bool function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.bool_set('0') -+ -+ def test_bool_var(self): -+ """ bool instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.bool_var = '0' -+ -+ def test_char_get(self): -+ """ char virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.char_get() -+ uninstall_hook() -+ -+ def test_char_set(self): -+ """ char function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.char_set('0') -+ -+ def test_char_var(self): -+ """ char instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.char_var = '0' -+ -+ def test_signed_char_get(self): -+ """ signed char virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.signed_char_get() -+ uninstall_hook() -+ -+ def test_signed_char_set(self): -+ """ signed char function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.signed_char_set('0') -+ -+ def test_signed_char_var(self): -+ """ signed char instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.signed_char_var = '0' -+ -+ def test_short_get(self): -+ """ short virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.short_get() -+ uninstall_hook() -+ -+ def test_short_set(self): -+ """ short function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.short_set('0') -+ -+ def test_short_var(self): -+ """ short instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.short_var = '0' -+ -+ def test_int_get(self): -+ """ int virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.int_get() -+ uninstall_hook() -+ -+ def test_int_set(self): -+ """ int function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.int_set('0') -+ -+ def test_int_var(self): -+ """ int instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.int_var = '0' -+ -+ def test_long_get(self): -+ """ long virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.long_get() -+ uninstall_hook() -+ -+ def test_long_set(self): -+ """ long function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.long_set('0') -+ -+ def test_long_var(self): -+ """ long instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.long_var = '0' -+ -+ def test_long_long_get(self): -+ """ long long virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.long_long_get() -+ uninstall_hook() -+ -+ def test_long_long_set(self): -+ """ long long function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.long_long_set('0') -+ -+ def test_long_long_var(self): -+ """ long long instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.long_long_var = '0' -+ -+ def test_unsigned_char_get(self): -+ """ unsigned char virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.unsigned_char_get() -+ uninstall_hook() -+ -+ def test_unsigned_char_set(self): -+ """ unsigned char function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_char_set('0') -+ -+ def test_unsigned_char_var(self): -+ """ unsigned char instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_char_var = '0' -+ -+ def test_unsigned_short_get(self): -+ """ unsigned short virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.unsigned_short_get() -+ uninstall_hook() -+ -+ def test_unsigned_short_set(self): -+ """ unsigned short function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_short_set('0') -+ -+ def test_unsigned_short_var(self): -+ """ unsigned short instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_short_var = '0' -+ -+ def test_unsigned_int_get(self): -+ """ unsigned int virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.unsigned_int_get() -+ uninstall_hook() -+ -+ def test_unsigned_int_set(self): -+ """ unsigned int function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_int_set('0') -+ -+ def test_unsigned_int_var(self): -+ """ unsigned int instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_int_var = '0' -+ -+ def test_unsigned_long_get(self): -+ """ unsigned long virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.unsigned_long_get() -+ uninstall_hook() -+ -+ def test_unsigned_long_set(self): -+ """ unsigned long function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_long_set('0') -+ -+ def test_unsigned_long_var(self): -+ """ unsigned long instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_long_var = '0' -+ -+ def test_unsigned_long_long_get(self): -+ """ unsigned long long virtual result. """ -+ -+ with self.assertRaises(TypeError): -+ install_hook() -+ self.fixture.unsigned_long_long_get() -+ uninstall_hook() -+ -+ def test_unsigned_long_long_set(self): -+ """ unsigned long long function argument. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_long_long_set('0') -+ -+ def test_unsigned_long_long_var(self): -+ """ unsigned long long instance variable. """ -+ -+ with self.assertRaises(TypeError): -+ self.fixture.unsigned_long_long_var = '0' -+ -+ -+class TestValidValues(TestIntConvertors): -+ """ This tests the integer convertors with valid values. """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.lower_fixture = ValidLowerFixture(self) -+ self.upper_fixture = ValidUpperFixture(self) -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ del self.lower_fixture -+ del self.upper_fixture -+ -+ def test_char_get_lower(self): -+ """ char virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.char_get(), self.CHAR_LOWER) -+ -+ def test_char_get_upper(self): -+ """ char virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.char_get(), self.CHAR_UPPER) -+ -+ def test_char_set_lower(self): -+ """ char function argument lower bound. """ -+ -+ self.lower_fixture.char_set(self.CHAR_LOWER) -+ -+ def test_char_set_upper(self): -+ """ char function argument upper bound. """ -+ -+ self.upper_fixture.char_set(self.CHAR_UPPER) -+ -+ def test_char_var_lower(self): -+ """ char instance variable lower bound. """ -+ -+ self.lower_fixture.char_var = self.CHAR_LOWER -+ -+ def test_char_var_upper(self): -+ """ char instance variable upper bound. """ -+ -+ self.upper_fixture.char_var = self.CHAR_UPPER -+ -+ def test_signed_char_get_lower(self): -+ """ signed char virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.signed_char_get(), -+ self.SIGNED_CHAR_LOWER) -+ -+ def test_signed_char_get_upper(self): -+ """ signed char virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.signed_char_get(), -+ self.SIGNED_CHAR_UPPER) -+ -+ def test_signed_char_set_lower(self): -+ """ signed char function argument lower bound. """ -+ -+ self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER) -+ -+ def test_signed_char_set_upper(self): -+ """ signed char function argument upper bound. """ -+ -+ self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER) -+ -+ def test_signed_char_var_lower(self): -+ """ signed char instance variable lower bound. """ -+ -+ self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER -+ -+ def test_signed_char_var_upper(self): -+ """ signed char instance variable upper bound. """ -+ -+ self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER -+ -+ def test_short_get_lower(self): -+ """ short virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.short_get(), self.SHORT_LOWER) -+ -+ def test_short_get_upper(self): -+ """ short virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.short_get(), self.SHORT_UPPER) -+ -+ def test_short_set_lower(self): -+ """ short function argument lower bound. """ -+ -+ self.lower_fixture.short_set(self.SHORT_LOWER) -+ -+ def test_short_set_upper(self): -+ """ short function argument upper bound. """ -+ -+ self.upper_fixture.short_set(self.SHORT_UPPER) -+ -+ def test_short_var_lower(self): -+ """ short instance variable lower bound. """ -+ -+ self.lower_fixture.short_var = self.SHORT_LOWER -+ -+ def test_short_var_upper(self): -+ """ short instance variable upper bound. """ -+ -+ self.upper_fixture.short_var = self.SHORT_UPPER -+ -+ def test_int_get_lower(self): -+ """ int virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.int_get(), self.INT_LOWER) -+ -+ def test_int_get_upper(self): -+ """ int virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.int_get(), self.INT_UPPER) -+ -+ def test_int_set_lower(self): -+ """ int function argument lower bound. """ -+ -+ self.lower_fixture.int_set(self.INT_LOWER) -+ -+ def test_int_set_upper(self): -+ """ int function argument upper bound. """ -+ -+ self.upper_fixture.int_set(self.INT_UPPER) -+ -+ def test_int_var_lower(self): -+ """ int instance variable lower bound. """ -+ -+ self.lower_fixture.int_var = self.INT_LOWER -+ -+ def test_int_var_upper(self): -+ """ int instance variable upper bound. """ -+ -+ self.upper_fixture.int_var = self.INT_UPPER -+ -+ def test_long_get_lower(self): -+ """ long virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.long_get(), self.LONG_LOWER) -+ -+ def test_long_get_upper(self): -+ """ long virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.long_get(), self.LONG_UPPER) -+ -+ def test_long_set_lower(self): -+ """ long function argument lower bound. """ -+ -+ self.lower_fixture.long_set(self.LONG_LOWER) -+ -+ def test_long_set_upper(self): -+ """ long function argument upper bound. """ -+ -+ self.upper_fixture.long_set(self.LONG_UPPER) -+ -+ def test_long_var_lower(self): -+ """ long instance variable lower bound. """ -+ -+ self.lower_fixture.long_var = self.LONG_LOWER -+ -+ def test_long_var_upper(self): -+ """ long instance variable upper bound. """ -+ -+ self.upper_fixture.long_var = self.LONG_UPPER -+ -+ def test_long_long_get_lower(self): -+ """ long long virtual result lower bound. """ -+ -+ self.assertEqual(self.lower_fixture.long_long_get(), -+ self.LONG_LONG_LOWER) -+ -+ def test_long_long_get_upper(self): -+ """ long long virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.long_long_get(), -+ self.LONG_LONG_UPPER) -+ -+ def test_long_long_set_lower(self): -+ """ long long function argument lower bound. """ -+ -+ self.lower_fixture.long_long_set(self.LONG_LONG_LOWER) -+ -+ def test_long_long_set_upper(self): -+ """ long long function argument upper bound. """ -+ -+ self.upper_fixture.long_long_set(self.LONG_LONG_UPPER) -+ -+ def test_long_long_var_lower(self): -+ """ long long instance variable lower bound. """ -+ -+ self.lower_fixture.long_long_var = self.LONG_LONG_LOWER -+ -+ def test_long_long_var_upper(self): -+ """ long long instance variable upper bound. """ -+ -+ self.upper_fixture.long_long_var = self.LONG_LONG_UPPER -+ -+ def test_unsigned_char_get_upper(self): -+ """ unsigned char virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.unsigned_char_get(), -+ self.UNSIGNED_CHAR_UPPER) -+ -+ def test_unsigned_char_set_upper(self): -+ """ unsigned char function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER) -+ -+ def test_unsigned_char_var_upper(self): -+ """ unsigned char instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER -+ -+ def test_unsigned_short_get_upper(self): -+ """ unsigned short virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.unsigned_short_get(), -+ self.UNSIGNED_SHORT_UPPER) -+ -+ def test_unsigned_short_set_upper(self): -+ """ unsigned short function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER) -+ -+ def test_unsigned_short_var_upper(self): -+ """ unsigned short instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER -+ -+ def test_unsigned_int_get_upper(self): -+ """ unsigned int virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.unsigned_int_get(), -+ self.UNSIGNED_INT_UPPER) -+ -+ def test_unsigned_int_set_upper(self): -+ """ unsigned int function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER) -+ -+ def test_unsigned_int_var_upper(self): -+ """ unsigned int instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER -+ -+ def test_unsigned_long_get_upper(self): -+ """ unsigned long virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.unsigned_long_get(), -+ self.UNSIGNED_LONG_UPPER) -+ -+ def test_unsigned_long_set_upper(self): -+ """ unsigned long function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER) -+ -+ def test_unsigned_long_var_upper(self): -+ """ unsigned long instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER -+ -+ def test_unsigned_long_long_get_upper(self): -+ """ unsigned long long virtual result upper bound. """ -+ -+ self.assertEqual(self.upper_fixture.unsigned_long_long_get(), -+ self.UNSIGNED_LONG_LONG_UPPER) -+ -+ def test_unsigned_long_long_set_upper(self): -+ """ unsigned long long function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_long_long_set( -+ self.UNSIGNED_LONG_LONG_UPPER) -+ -+ def test_unsigned_long_long_var_upper(self): -+ """ unsigned long long instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER -+ -+ -+class TestNoOverflowChecking(TestIntConvertors): -+ """ This tests the integer convertors with overflowing values with overflow -+ checking disabled. -+ """ -+ -+ @staticmethod -+ def _long_long_is_long(): -+ """ Return True if (unsigned) long long is the same size as (unsigned) -+ long. -+ """ -+ -+ return Test.long_long_sizeof() == Test.long_sizeof() -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ self.lower_fixture = OverflowLowerFixture(self) -+ self.upper_fixture = OverflowUpperFixture(self) -+ -+ self.was_enabled = enableoverflowchecking(False) -+ -+ def tearDown(self): -+ """ Tidy up after a test. """ -+ -+ enableoverflowchecking(self.was_enabled) -+ -+ del self.lower_fixture -+ del self.upper_fixture -+ -+ def test_char_get_lower(self): -+ """ char virtual result lower bound. """ -+ -+ install_hook() -+ self.lower_fixture.char_get() -+ uninstall_hook() -+ -+ def test_char_get_upper(self): -+ """ char virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.char_get() -+ uninstall_hook() -+ -+ def test_char_set_lower(self): -+ """ char function argument lower bound. """ -+ -+ self.lower_fixture.char_set(self.CHAR_LOWER - 1) -+ -+ def test_char_set_upper(self): -+ """ char function argument upper bound. """ -+ -+ self.upper_fixture.char_set(self.CHAR_UPPER + 1) -+ -+ def test_char_var_lower(self): -+ """ char instance variable lower bound. """ -+ -+ self.lower_fixture.char_var = self.CHAR_LOWER - 1 -+ -+ def test_char_var_upper(self): -+ """ char instance variable upper bound. """ -+ -+ self.upper_fixture.char_var = self.CHAR_UPPER + 1 -+ -+ def test_signed_char_get_lower(self): -+ """ signed char virtual result lower bound. """ -+ -+ install_hook() -+ self.lower_fixture.signed_char_get() -+ uninstall_hook() -+ -+ def test_signed_char_get_upper(self): -+ """ signed char virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.signed_char_get() -+ uninstall_hook() -+ -+ def test_signed_char_set_lower(self): -+ """ signed char function argument lower bound. """ -+ -+ self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER - 1) -+ -+ def test_signed_char_set_upper(self): -+ """ signed char function argument upper bound. """ -+ -+ self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER + 1) -+ -+ def test_signed_char_var_lower(self): -+ """ signed char instance variable lower bound. """ -+ -+ self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER - 1 -+ -+ def test_signed_char_var_upper(self): -+ """ signed char instance variable upper bound. """ -+ -+ self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER + 1 -+ -+ def test_short_get_lower(self): -+ """ short virtual result lower bound. """ -+ -+ install_hook() -+ self.lower_fixture.short_get() -+ uninstall_hook() -+ -+ def test_short_get_upper(self): -+ """ short virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.short_get() -+ uninstall_hook() -+ -+ def test_short_set_lower(self): -+ """ short function argument lower bound. """ -+ -+ self.lower_fixture.short_set(self.SHORT_LOWER - 1) -+ -+ def test_short_set_upper(self): -+ """ short function argument upper bound. """ -+ -+ self.upper_fixture.short_set(self.SHORT_UPPER + 1) -+ -+ def test_short_var_lower(self): -+ """ short instance variable lower bound. """ -+ -+ self.lower_fixture.short_var = self.SHORT_LOWER - 1 -+ -+ def test_short_var_upper(self): -+ """ short instance variable upper bound. """ -+ -+ self.upper_fixture.short_var = self.SHORT_UPPER + 1 -+ -+ def test_int_get_lower(self): -+ """ int virtual result lower bound. """ -+ -+ install_hook() -+ self.lower_fixture.int_get() -+ uninstall_hook() -+ -+ def test_int_get_upper(self): -+ """ int virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.int_get() -+ uninstall_hook() -+ -+ def test_int_set_lower(self): -+ """ int function argument lower bound. """ -+ -+ self.lower_fixture.int_set(self.INT_LOWER - 1) -+ -+ def test_int_set_upper(self): -+ """ int function argument upper bound. """ -+ -+ self.upper_fixture.int_set(self.INT_UPPER + 1) -+ -+ def test_int_var_lower(self): -+ """ int instance variable lower bound. """ -+ -+ self.lower_fixture.int_var = self.INT_LOWER - 1 -+ -+ def test_int_var_upper(self): -+ """ int instance variable upper bound. """ -+ -+ self.upper_fixture.int_var = self.INT_UPPER + 1 -+ -+ def test_long_get_lower(self): -+ """ long virtual result lower bound. """ -+ -+ install_hook() -+ self.lower_fixture.long_get() -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ uninstall_hook() -+ else: -+ uninstall_hook() -+ -+ def test_long_get_upper(self): -+ """ long virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.long_get() -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ uninstall_hook() -+ else: -+ uninstall_hook() -+ -+ def test_long_set_lower(self): -+ """ long function argument lower bound. """ -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_set(self.LONG_LOWER - 1) -+ else: -+ self.lower_fixture.long_set(self.LONG_LOWER - 1) -+ -+ def test_long_set_upper(self): -+ """ long function argument upper bound. """ -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_set(self.LONG_UPPER + 1) -+ else: -+ self.upper_fixture.long_set(self.LONG_UPPER + 1) -+ -+ def test_long_var_lower(self): -+ """ long instance variable lower bound. """ -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_var = self.LONG_LOWER - 1 -+ else: -+ self.lower_fixture.long_var = self.LONG_LOWER - 1 -+ -+ def test_long_var_upper(self): -+ """ long instance variable upper bound. """ -+ -+ if self._long_long_is_long(): -+ # To maintain compatibility with older versions of SIP this -+ # overflows even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_var = self.LONG_UPPER + 1 -+ else: -+ self.upper_fixture.long_var = self.LONG_UPPER + 1 -+ -+ def test_long_long_get_lower(self): -+ """ long long virtual result lower bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ install_hook() -+ self.lower_fixture.long_long_get() -+ uninstall_hook() -+ -+ def test_long_long_get_upper(self): -+ """ long long virtual result upper bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ install_hook() -+ self.upper_fixture.long_long_get() -+ uninstall_hook() -+ -+ def test_long_long_set_lower(self): -+ """ long long function argument lower bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_long_set(self.LONG_LONG_LOWER - 1) -+ -+ def test_long_long_set_upper(self): -+ """ long long function argument upper bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_long_set(self.LONG_LONG_UPPER + 1) -+ -+ def test_long_long_var_lower(self): -+ """ long long instance variable lower bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_long_var = self.LONG_LONG_LOWER - 1 -+ -+ def test_long_long_var_upper(self): -+ """ long long instance variable upper bound. """ -+ -+ # To maintain compatibility with older versions of SIP this overflows -+ # even with overflow checking disabled. -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_long_var = self.LONG_LONG_UPPER + 1 -+ -+ def test_unsigned_char_get_upper(self): -+ """ unsigned char virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.unsigned_char_get() -+ uninstall_hook() -+ -+ def test_unsigned_char_set_upper(self): -+ """ unsigned char function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER + 1) -+ -+ def test_unsigned_char_var_upper(self): -+ """ unsigned char instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER + 1 -+ -+ def test_unsigned_short_get_upper(self): -+ """ unsigned short virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.unsigned_short_get() -+ uninstall_hook() -+ -+ def test_unsigned_short_set_upper(self): -+ """ unsigned short function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER + 1) -+ -+ def test_unsigned_short_var_upper(self): -+ """ unsigned short instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER + 1 -+ -+ def test_unsigned_int_get_upper(self): -+ """ unsigned int virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.unsigned_int_get() -+ uninstall_hook() -+ -+ def test_unsigned_int_set_upper(self): -+ """ unsigned int function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER + 1) -+ -+ def test_unsigned_int_var_upper(self): -+ """ unsigned int instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER + 1 -+ -+ def test_unsigned_long_get_upper(self): -+ """ unsigned long virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.unsigned_long_get() -+ uninstall_hook() -+ -+ def test_unsigned_long_set_upper(self): -+ """ unsigned long function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER + 1) -+ -+ def test_unsigned_long_var_upper(self): -+ """ unsigned long instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER + 1 -+ -+ def test_unsigned_long_long_get_upper(self): -+ """ unsigned long long virtual result upper bound. """ -+ -+ install_hook() -+ self.upper_fixture.unsigned_long_long_get() -+ uninstall_hook() -+ -+ def test_unsigned_long_long_set_upper(self): -+ """ unsigned long long function argument upper bound. """ -+ -+ self.upper_fixture.unsigned_long_long_set( -+ self.UNSIGNED_LONG_LONG_UPPER + 1) -+ -+ def test_unsigned_long_long_var_upper(self): -+ """ unsigned long long instance variable upper bound. """ -+ -+ self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER + 1 -+ -+ -+class TestOverflowChecking(TestNoOverflowChecking): -+ """ This tests the integer convertors with overflowing values with overflow -+ checking enabled. -+ """ -+ -+ def setUp(self): -+ """ Set up a test. """ -+ -+ super().setUp() -+ -+ enableoverflowchecking(True) -+ -+ def test_char_get_lower(self): -+ """ char virtual result lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_get_lower() -+ -+ def test_char_get_upper(self): -+ """ char virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_get_upper() -+ -+ def test_char_set_lower(self): -+ """ char function argument lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_set_lower() -+ -+ def test_char_set_upper(self): -+ """ char function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_set_upper() -+ -+ def test_char_var_lower(self): -+ """ char instance variable lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_var_lower() -+ -+ def test_char_var_upper(self): -+ """ char instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_char_var_upper() -+ -+ def test_signed_char_get_lower(self): -+ """ signed char virtual result lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_get_lower() -+ -+ def test_signed_char_get_upper(self): -+ """ signed char virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_get_upper() -+ -+ def test_signed_char_set_lower(self): -+ """ signed char function argument lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_set_lower() -+ -+ def test_signed_char_set_upper(self): -+ """ signed char function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_set_upper() -+ -+ def test_signed_char_var_lower(self): -+ """ signed char instance variable lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_var_lower() -+ -+ def test_signed_char_var_upper(self): -+ """ signed char instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_signed_char_var_upper() -+ -+ def test_short_get_lower(self): -+ """ short virtual result lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_get_lower() -+ -+ def test_short_get_upper(self): -+ """ short virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_get_upper() -+ -+ def test_short_set_lower(self): -+ """ short function argument lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_set_lower() -+ -+ def test_short_set_upper(self): -+ """ short function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_set_upper() -+ -+ def test_short_var_lower(self): -+ """ short instance variable lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_var_lower() -+ -+ def test_short_var_upper(self): -+ """ short instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_short_var_upper() -+ -+ def test_int_get_lower(self): -+ """ int virtual result lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_get_lower() -+ -+ def test_int_get_upper(self): -+ """ int virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_get_upper() -+ -+ def test_int_set_lower(self): -+ """ int function argument lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_set_lower() -+ -+ def test_int_set_upper(self): -+ """ int function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_set_upper() -+ -+ def test_int_var_lower(self): -+ """ int instance variable lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_var_lower() -+ -+ def test_int_var_upper(self): -+ """ int instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_int_var_upper() -+ -+ def test_long_get_lower(self): -+ """ long virtual result lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ install_hook() -+ self.lower_fixture.long_get() -+ uninstall_hook() -+ -+ def test_long_get_upper(self): -+ """ long virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ install_hook() -+ self.upper_fixture.long_get() -+ uninstall_hook() -+ -+ def test_long_set_lower(self): -+ """ long function argument lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_set(self.LONG_LOWER - 1) -+ -+ def test_long_set_upper(self): -+ """ long function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_set(self.LONG_UPPER + 1) -+ -+ def test_long_var_lower(self): -+ """ long instance variable lower bound. """ -+ -+ with self.assertRaises(OverflowError): -+ self.lower_fixture.long_var = self.LONG_LOWER - 1 -+ -+ def test_long_var_upper(self): -+ """ long instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ self.upper_fixture.long_var = self.LONG_UPPER + 1 -+ -+ def test_long_long_get_lower(self): -+ """ long long virtual result lower bound. """ -+ -+ super().test_long_long_get_lower() -+ -+ def test_long_long_get_upper(self): -+ """ long long virtual result upper bound. """ -+ -+ super().test_long_long_get_upper() -+ -+ def test_long_long_set_lower(self): -+ """ long long function argument lower bound. """ -+ -+ super().test_long_long_set_lower() -+ -+ def test_long_long_set_upper(self): -+ """ long long function argument upper bound. """ -+ -+ super().test_long_long_set_upper() -+ -+ def test_long_long_var_lower(self): -+ """ long long instance variable lower bound. """ -+ -+ super().test_long_long_var_lower() -+ -+ def test_long_long_var_upper(self): -+ """ long long instance variable upper bound. """ -+ -+ super().test_long_long_var_upper() -+ -+ def test_unsigned_char_get_upper(self): -+ """ unsigned char virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_char_get_upper() -+ -+ def test_unsigned_char_set_upper(self): -+ """ unsigned char function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_char_set_upper() -+ -+ def test_unsigned_char_var_upper(self): -+ """ unsigned char instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_char_var_upper() -+ -+ def test_unsigned_short_get_upper(self): -+ """ unsigned short virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_short_get_upper() -+ -+ def test_unsigned_short_set_upper(self): -+ """ unsigned short function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_short_set_upper() -+ -+ def test_unsigned_short_var_upper(self): -+ """ unsigned short instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_short_var_upper() -+ -+ def test_unsigned_int_get_upper(self): -+ """ unsigned int virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_int_get_upper() -+ -+ def test_unsigned_int_set_upper(self): -+ """ unsigned int function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_int_set_upper() -+ -+ def test_unsigned_int_var_upper(self): -+ """ unsigned int instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_int_var_upper() -+ -+ def test_unsigned_long_get_upper(self): -+ """ unsigned long virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_get_upper() -+ -+ def test_unsigned_long_set_upper(self): -+ """ unsigned long function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_set_upper() -+ -+ def test_unsigned_long_var_upper(self): -+ """ unsigned long instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_var_upper() -+ -+ def test_unsigned_long_long_get_upper(self): -+ """ unsigned long long virtual result upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_long_get_upper() -+ -+ def test_unsigned_long_long_set_upper(self): -+ """ unsigned long long function argument upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_long_set_upper() -+ -+ def test_unsigned_long_long_var_upper(self): -+ """ unsigned long long instance variable upper bound. """ -+ -+ with self.assertRaises(OverflowError): -+ super().test_unsigned_long_long_var_upper() -+ -+ -+if __name__ == '__main__': -+ unittest.main() -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.h sip/test/int_convertors/test.h ---- ./sip-4.19.12.orig/test/int_convertors/test.h 1969-12-31 19:00:00.000000000 -0500 -+++ sip/test/int_convertors/test.h 2018-09-18 17:52:23.315543462 -0400 -@@ -0,0 +1,110 @@ -+#if !defined(_TEST_H) -+#define _TEST_H -+ -+#include <limits.h> -+ -+ -+class Test -+{ -+public: -+ enum class Scoped { -+ scoped = 10 -+ }; -+ Scoped scoped_get() {return scoped_virt();} -+ virtual Scoped scoped_virt() {return Scoped::scoped;} -+ static void scoped_set(Scoped) {} -+ Scoped scoped_var; -+ -+ enum Named { -+ named = 10 -+ }; -+ Named named_get() {return named_virt();} -+ virtual Named named_virt() {return named;} -+ static void named_set(Named) {} -+ Named named_var; -+ -+ enum Named2 { -+ named2 = 10 -+ }; -+ void named_overload_set(Named2) {named_overload = false;} -+ void named_overload_set(Named) {named_overload = true;} -+ bool named_overload; -+ -+ bool bool_get() {return bool_virt();} -+ virtual bool bool_virt() {return false;} -+ static void bool_set(bool) {} -+ bool bool_var; -+ -+ static int char_lower() {return CHAR_MIN;} -+ static int char_upper() {return CHAR_MAX;} -+ char char_get() {return char_virt();} -+ virtual char char_virt() {return 0;} -+ static void char_set(char) {} -+ char char_var; -+ -+ static unsigned signed_char_sizeof() {return sizeof (signed char);} -+ signed char signed_char_get() {return signed_char_virt();} -+ virtual signed char signed_char_virt() {return 0;} -+ static void signed_char_set(signed char) {} -+ signed char signed_char_var; -+ -+ static unsigned short_sizeof() {return sizeof (short);} -+ short short_get() {return short_virt();} -+ virtual short short_virt() {return 0;} -+ static void short_set(short) {} -+ short short_var; -+ -+ static unsigned int_sizeof() {return sizeof (int);} -+ int int_get() {return int_virt();} -+ virtual int int_virt() {return 0;} -+ static void int_set(int) {} -+ int int_var; -+ -+ static unsigned long_sizeof() {return sizeof (long);} -+ long long_get() {return long_virt();} -+ virtual long long_virt() {return 0;} -+ static void long_set(long) {} -+ long long_var; -+ -+ static unsigned long_long_sizeof() {return sizeof (long long);} -+ long long long_long_get() {return long_long_virt();} -+ virtual long long long_long_virt() {return 0;} -+ static void long_long_set(long long) {} -+ long long long_long_var; -+ -+ static unsigned unsigned_char_sizeof() {return sizeof (unsigned char);} -+ unsigned char unsigned_char_get() {return unsigned_char_virt();} -+ virtual unsigned char unsigned_char_virt() {return 0;} -+ static void unsigned_char_set(unsigned char) {} -+ unsigned char unsigned_char_var; -+ -+ static unsigned unsigned_short_sizeof() {return sizeof (unsigned short);} -+ unsigned short unsigned_short_get() {return unsigned_short_virt();} -+ virtual unsigned short unsigned_short_virt() {return 0;} -+ static void unsigned_short_set(unsigned short) {} -+ unsigned short unsigned_short_var; -+ -+ static unsigned unsigned_int_sizeof() {return sizeof (unsigned int);} -+ unsigned int unsigned_int_get() {return unsigned_int_virt();} -+ virtual unsigned int unsigned_int_virt() {return 0;} -+ static void unsigned_int_set(unsigned int) {} -+ unsigned int unsigned_int_var; -+ -+ static unsigned unsigned_long_sizeof() {return sizeof (unsigned long);} -+ unsigned long unsigned_long_get() {return unsigned_long_virt();} -+ virtual unsigned long unsigned_long_virt() {return 0;} -+ static void unsigned_long_set(unsigned long) {} -+ unsigned long unsigned_long_var; -+ -+ static unsigned unsigned_long_long_sizeof() { -+ return sizeof (unsigned long long); -+ } -+ unsigned long long unsigned_long_long_get() { -+ return unsigned_long_long_virt(); -+ } -+ virtual unsigned long long unsigned_long_long_virt() {return 0;} -+ static void unsigned_long_long_set(unsigned long long) {} -+ unsigned long long unsigned_long_long_var; -+}; -+ -+#endif -diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.sip sip/test/int_convertors/test.sip ---- ./sip-4.19.12.orig/test/int_convertors/test.sip 1969-12-31 19:00:00.000000000 -0500 -+++ sip/test/int_convertors/test.sip 2018-09-18 17:52:23.315543462 -0400 -@@ -0,0 +1,106 @@ -+%Module(name=test) -+ -+//%Import QtCore/QtCoremod.sip -+ -+class Test -+{ -+%TypeHeaderCode -+#include "test.h" -+%End -+ -+public: -+ enum class Scoped { -+ scoped -+ }; -+ Scoped scoped_get(); -+ virtual Scoped scoped_virt(); -+ static void scoped_set(Scoped); -+ Scoped scoped_var; -+ -+ enum Named { -+ named -+ }; -+ Named named_get(); -+ virtual Named named_virt(); -+ static void named_set(Named); -+ Named named_var; -+ -+ enum Named2 { -+ named2 = 10 -+ }; -+ void named_overload_set(Named2); -+ void named_overload_set(Named); -+ bool named_overload; -+ -+ bool bool_get(); -+ virtual bool bool_virt(); -+ static void bool_set(bool); -+ bool bool_var; -+ -+ static int char_lower(); -+ static int char_upper(); -+ char char_get() /PyInt/; -+ virtual char char_virt() /PyInt/; -+ static void char_set(char /PyInt/); -+ char char_var /PyInt/; -+ -+ static unsigned signed_char_sizeof(); -+ signed char signed_char_get() /PyInt/; -+ virtual signed char signed_char_virt() /PyInt/; -+ static void signed_char_set(signed char /PyInt/); -+ signed char signed_char_var /PyInt/; -+ -+ static unsigned short_sizeof(); -+ short short_get(); -+ virtual short short_virt(); -+ static void short_set(short); -+ short short_var; -+ -+ static unsigned int_sizeof(); -+ int int_get(); -+ virtual int int_virt(); -+ static void int_set(int); -+ int int_var; -+ -+ static unsigned long_sizeof(); -+ long long_get(); -+ virtual long long_virt(); -+ static void long_set(long); -+ long long_var; -+ -+ static unsigned long_long_sizeof(); -+ long long long_long_get(); -+ virtual long long long_long_virt(); -+ static void long_long_set(long long); -+ long long long_long_var; -+ -+ static unsigned unsigned_char_sizeof(); -+ unsigned char unsigned_char_get() /PyInt/; -+ virtual unsigned char unsigned_char_virt() /PyInt/; -+ static void unsigned_char_set(unsigned char /PyInt/); -+ unsigned char unsigned_char_var /PyInt/; -+ -+ static unsigned unsigned_short_sizeof(); -+ unsigned short unsigned_short_get(); -+ virtual unsigned short unsigned_short_virt(); -+ static void unsigned_short_set(unsigned short); -+ unsigned short unsigned_short_var; -+ -+ static unsigned unsigned_int_sizeof(); -+ unsigned int unsigned_int_get(); -+ virtual unsigned int unsigned_int_virt(); -+ static void unsigned_int_set(unsigned int); -+ unsigned int unsigned_int_var; -+ -+ static unsigned unsigned_long_sizeof(); -+ unsigned long unsigned_long_get(); -+ virtual unsigned long unsigned_long_virt(); -+ static void unsigned_long_set(unsigned long); -+ unsigned long unsigned_long_var; -+ -+ static unsigned unsigned_long_long_sizeof(); -+ unsigned long long unsigned_long_long_get(); -+ virtual unsigned long long unsigned_long_long_virt(); -+ static void unsigned_long_long_set(unsigned long long); -+ unsigned long long unsigned_long_long_var; -+}; diff --git a/meta-oe/recipes-devtools/sip/sip_4.19.12.bb b/meta-oe/recipes-devtools/sip/sip_4.19.13.bb index be384fd395..09f15d4217 100644 --- a/meta-oe/recipes-devtools/sip/sip_4.19.12.bb +++ b/meta-oe/recipes-devtools/sip/sip_4.19.13.bb @@ -9,10 +9,9 @@ DEPENDS = "python" inherit python-dir pythonnative SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz \ - file://sip.patch \ " -SRC_URI[md5sum] = "e28b0790dfe4962ce6bbd7c4772f40c9" -SRC_URI[sha256sum] = "24617fc31b983df075500ecac0e99d2fb48bf63ba82d4a17518659e571923822" +SRC_URI[md5sum] = "9124cb8978742685747a5415179a9890" +SRC_URI[sha256sum] = "e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e" BBCLASSEXTEND = "native" |