diff options
| -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 @@ | |||
| 1 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/build.py sip/build.py | ||
| 2 | --- ./sip-4.19.12.orig/build.py 1969-12-31 19:00:00.000000000 -0500 | ||
| 3 | +++ sip/build.py 2018-09-18 17:52:23.269544132 -0400 | ||
| 4 | @@ -0,0 +1,131 @@ | ||
| 5 | +#!/usr/bin/python | ||
| 6 | + | ||
| 7 | +# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 8 | +# | ||
| 9 | +# This file is part of SIP. | ||
| 10 | +# | ||
| 11 | +# This copy of SIP is licensed for use under the terms of the SIP License | ||
| 12 | +# Agreement. See the file LICENSE for more details. | ||
| 13 | +# | ||
| 14 | +# This copy of SIP may also used under the terms of the GNU General Public | ||
| 15 | +# License v2 or v3 as published by the Free Software Foundation which can be | ||
| 16 | +# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. | ||
| 17 | +# | ||
| 18 | +# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 19 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 20 | + | ||
| 21 | + | ||
| 22 | +"""This script prepares a repository copy of SIP for building. It should be | ||
| 23 | +run from a Mercurial repository. It is not part of a packaged release. | ||
| 24 | +""" | ||
| 25 | + | ||
| 26 | + | ||
| 27 | +import os | ||
| 28 | +import sys | ||
| 29 | + | ||
| 30 | + | ||
| 31 | +# Dummy version numbers. | ||
| 32 | +RM_HEXVERSION = '04ffff' | ||
| 33 | +RM_RELEASE = '4.255.255' | ||
| 34 | + | ||
| 35 | + | ||
| 36 | +def _progress(message, quiet): | ||
| 37 | + """ Show a progress message to the user. """ | ||
| 38 | + | ||
| 39 | + if not quiet: | ||
| 40 | + sys.stdout.write(message) | ||
| 41 | + sys.stdout.write("\n") | ||
| 42 | + | ||
| 43 | + | ||
| 44 | +def _patch(name, quiet): | ||
| 45 | + """ Patch a file with version information. """ | ||
| 46 | + | ||
| 47 | + _progress("Creating %s" % name, quiet) | ||
| 48 | + | ||
| 49 | + patched_f = open(name + '.in') | ||
| 50 | + patched = patched_f.read() | ||
| 51 | + patched_f.close() | ||
| 52 | + | ||
| 53 | + patched = patched.replace('@RM_HEXVERSION@', RM_HEXVERSION) | ||
| 54 | + patched = patched.replace('@RM_RELEASE@', RM_RELEASE) | ||
| 55 | + | ||
| 56 | + patched_f = open(name, 'w') | ||
| 57 | + patched_f.write(patched) | ||
| 58 | + patched_f.close() | ||
| 59 | + | ||
| 60 | + | ||
| 61 | +def prepare(quiet): | ||
| 62 | + """ Prepare for configuration and building by creating all the required | ||
| 63 | + additional files. | ||
| 64 | + """ | ||
| 65 | + | ||
| 66 | + sipgen = 'sipgen' | ||
| 67 | + metasrc = os.path.join(sipgen, 'metasrc') | ||
| 68 | + | ||
| 69 | + lexer_l = os.path.join(metasrc, 'lexer.l') | ||
| 70 | + lexer_c = os.path.join(sipgen, 'lexer.c') | ||
| 71 | + _progress("Running flex to create %s" % lexer_c, quiet) | ||
| 72 | + os.system('flex -o%s %s' % (lexer_c, lexer_l)) | ||
| 73 | + | ||
| 74 | + parser_y = os.path.join(metasrc, 'parser.y') | ||
| 75 | + parser_c = os.path.join(sipgen, 'parser.c') | ||
| 76 | + _progress("Running bison to create %s" % parser_c, quiet) | ||
| 77 | + os.system('bison -y -d -o %s %s' % (parser_c, parser_y)) | ||
| 78 | + | ||
| 79 | + _patch(os.path.join('sipgen', 'sip.h'), quiet) | ||
| 80 | + _patch(os.path.join('siplib', 'sip.h'), quiet) | ||
| 81 | + _patch('configure.py', quiet) | ||
| 82 | + | ||
| 83 | + | ||
| 84 | +if __name__ == '__main__': | ||
| 85 | + | ||
| 86 | + def _prepare(options): | ||
| 87 | + """prepare for configuration and building""" | ||
| 88 | + | ||
| 89 | + prepare(options.quiet) | ||
| 90 | + | ||
| 91 | + | ||
| 92 | + actions = (_prepare, ) | ||
| 93 | + | ||
| 94 | + import optparse | ||
| 95 | + | ||
| 96 | + class MyParser(optparse.OptionParser): | ||
| 97 | + | ||
| 98 | + def get_usage(self): | ||
| 99 | + """ Reimplemented to add the description of the actions. We don't | ||
| 100 | + use the description because the default formatter strips newlines. | ||
| 101 | + """ | ||
| 102 | + | ||
| 103 | + usage = optparse.OptionParser.get_usage(self) | ||
| 104 | + | ||
| 105 | + usage += "\n" + __doc__ + "\nActions:\n" | ||
| 106 | + | ||
| 107 | + for action in actions: | ||
| 108 | + usage += " %-9s %s\n" % (action.__name__[1:], action.__doc__) | ||
| 109 | + | ||
| 110 | + return usage | ||
| 111 | + | ||
| 112 | + | ||
| 113 | + action_names = [action.__name__[1:] for action in actions] | ||
| 114 | + | ||
| 115 | + parser = MyParser( | ||
| 116 | + usage="%%prog [options] %s" % '|'.join(action_names)) | ||
| 117 | + | ||
| 118 | + parser.add_option("-q", "--quiet", action='store_true', default=False, | ||
| 119 | + dest='quiet', help="suppress progress messages") | ||
| 120 | + | ||
| 121 | + options, args = parser.parse_args() | ||
| 122 | + | ||
| 123 | + if len(args) != 1: | ||
| 124 | + parser.print_help() | ||
| 125 | + sys.exit(1) | ||
| 126 | + | ||
| 127 | + for action in actions: | ||
| 128 | + if action.__name__[1:] == args[0]: | ||
| 129 | + action(options) | ||
| 130 | + break | ||
| 131 | + else: | ||
| 132 | + parser.print_help() | ||
| 133 | + sys.exit(1) | ||
| 134 | + | ||
| 135 | + sys.exit() | ||
| 136 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/ChangeLog sip/ChangeLog | ||
| 137 | --- ./sip-4.19.12.orig/ChangeLog 2018-07-05 05:55:19.000000000 -0400 | ||
| 138 | +++ sip/ChangeLog 1969-12-31 19:00:00.000000000 -0500 | ||
| 139 | @@ -1,9785 +0,0 @@ | ||
| 140 | -2018-07-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 141 | - | ||
| 142 | - * NEWS: | ||
| 143 | - Released as v4.19.12. | ||
| 144 | - [290a78d4a00d] [4.19.12] <4.19-maint> | ||
| 145 | - | ||
| 146 | - * sphinx/installation.rst, sphinx/using.rst: | ||
| 147 | - Updated the docs regarding private copies of the sip module. | ||
| 148 | - [e30b9d2668c4] <4.19-maint> | ||
| 149 | - | ||
| 150 | - * NEWS, configure.py.in, sphinx/installation.rst: | ||
| 151 | - Added the --no-module option to configure.py. | ||
| 152 | - [02ab8cfda064] <4.19-maint> | ||
| 153 | - | ||
| 154 | - * configure.py.in: | ||
| 155 | - The --no-tools option does not install the sip.h. Fixed .dist-info | ||
| 156 | - for the code generator when --no-tools is specified. | ||
| 157 | - [b3633241320b] <4.19-maint> | ||
| 158 | - | ||
| 159 | -2018-07-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 160 | - | ||
| 161 | - * NEWS: | ||
| 162 | - Updated the NEWS file. | ||
| 163 | - [f4799b368aa1] <4.19-maint> | ||
| 164 | - | ||
| 165 | - * sipgen/main.c: | ||
| 166 | - Fixed the default sip module name. | ||
| 167 | - [30b34699ad64] <4.19-maint> | ||
| 168 | - | ||
| 169 | - * sipgen/gencode.c, siplib/array.c, siplib/sip.h.in, siplib/sipint.h, | ||
| 170 | - siplib/siplib.c, siplib/voidptr.c: | ||
| 171 | - Fixed the implementation of sipConvertFromSliceObject() so that | ||
| 172 | - generated modules still support the limited API. | ||
| 173 | - [5baed8e71fdb] <4.19-maint> | ||
| 174 | - | ||
| 175 | - * configure.py.in: | ||
| 176 | - Include the build system for all builds (not just legacy ones). | ||
| 177 | - [5443d32d2928] <4.19-maint> | ||
| 178 | - | ||
| 179 | - * configure.py.in: | ||
| 180 | - The mk_distinfo.py script now takes a temporary installation | ||
| 181 | - directory as an additional argument. | ||
| 182 | - [048f7a6100c8] <4.19-maint> | ||
| 183 | - | ||
| 184 | - * configure.py.in: | ||
| 185 | - Fixes for invoking mk_distinfo.py for out-of-tree builds. | ||
| 186 | - [ded7362cc94a] <4.19-maint> | ||
| 187 | - | ||
| 188 | - * siplib/siplib.c: | ||
| 189 | - Fixed a bug exposing traditional enum members in a class that also | ||
| 190 | - contains a C++11 scoped enum. | ||
| 191 | - [ccc4eda868de] <4.19-maint> | ||
| 192 | - | ||
| 193 | -2018-07-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 194 | - | ||
| 195 | - * configure.py.in: | ||
| 196 | - Fix for installing sip.h with out-of-tree builds. | ||
| 197 | - [935f8cdab1b7] <4.19-maint> | ||
| 198 | - | ||
| 199 | -2018-06-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 200 | - | ||
| 201 | - * .hgtags: | ||
| 202 | - Added tag 4.19.11 for changeset a7d0f8459788 | ||
| 203 | - [77add4c87760] <4.19-maint> | ||
| 204 | - | ||
| 205 | - * NEWS: | ||
| 206 | - Released as v4.19.11. | ||
| 207 | - [a7d0f8459788] [4.19.11] <4.19-maint> | ||
| 208 | - | ||
| 209 | - * NEWS: | ||
| 210 | - Updated the NEWS file. | ||
| 211 | - [373c872333a4] <4.19-maint> | ||
| 212 | - | ||
| 213 | - * sphinx/using.rst: | ||
| 214 | - Documented the need for the enum34 package for versions of Python | ||
| 215 | - earlier than v3.4. | ||
| 216 | - [379da5a152c4] <4.19-maint> | ||
| 217 | - | ||
| 218 | -2018-06-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 219 | - | ||
| 220 | - * siplib/siplib.c: | ||
| 221 | - Fixed the exception when a keyword argument overflows. | ||
| 222 | - [659e30e2c490] <4.19-maint> | ||
| 223 | - | ||
| 224 | - * siplib/siplib.c: | ||
| 225 | - Fixed a couple of Python v2 exception messages. | ||
| 226 | - [8b2f14850fcd] <4.19-maint> | ||
| 227 | - | ||
| 228 | - * siplib/siplib.c: | ||
| 229 | - Fixed a compilation issue with Python v2. | ||
| 230 | - [fea0057d2c29] <4.19-maint> | ||
| 231 | - | ||
| 232 | -2018-06-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 233 | - | ||
| 234 | - * sipgen/gencode.c: | ||
| 235 | - Handle const signal arguments (that are not pointers or references). | ||
| 236 | - [a7a3d5f49c09] <4.19-maint> | ||
| 237 | - | ||
| 238 | -2018-06-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 239 | - | ||
| 240 | - * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 241 | - sphinx/annotations.rst: | ||
| 242 | - Added the /ScopesStripped/ argument annotation. | ||
| 243 | - [ab62eae89111] <4.19-maint> | ||
| 244 | - | ||
| 245 | -2018-06-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 246 | - | ||
| 247 | - * configure.py.in: | ||
| 248 | - The .dist-info directory now takes account of $(DESTDIR). | ||
| 249 | - [d6a17b9e8f21] <4.19-maint> | ||
| 250 | - | ||
| 251 | - * configure.py.in: | ||
| 252 | - Fixed out-of-tree builds. | ||
| 253 | - [81516a4441db] <4.19-maint> | ||
| 254 | - | ||
| 255 | - * sipgen/gencode.c: | ||
| 256 | - Further fixes for the stripping of scopes from signal arguments. | ||
| 257 | - [44dd1db98cf7] <4.19-maint> | ||
| 258 | - | ||
| 259 | -2018-06-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 260 | - | ||
| 261 | - * .hgtags: | ||
| 262 | - Added tag 4.19.10 for changeset abf14ded1760 | ||
| 263 | - [8597a94e4d25] <4.19-maint> | ||
| 264 | - | ||
| 265 | - * NEWS: | ||
| 266 | - Released as v4.19.10. | ||
| 267 | - [abf14ded1760] [4.19.10] <4.19-maint> | ||
| 268 | - | ||
| 269 | - * sipgen/gencode.c: | ||
| 270 | - Fixed the stripping of scopes from signal arguments. | ||
| 271 | - [ce55e3219bc5] <4.19-maint> | ||
| 272 | - | ||
| 273 | -2018-06-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 274 | - | ||
| 275 | - * .hgtags: | ||
| 276 | - Added tag 4.19.9 for changeset 21bc9fb06802 | ||
| 277 | - [8331b47585f6] <4.19-maint> | ||
| 278 | - | ||
| 279 | - * NEWS: | ||
| 280 | - Released as 4.19.9. | ||
| 281 | - [21bc9fb06802] [4.19.9] <4.19-maint> | ||
| 282 | - | ||
| 283 | - * build.py, configure.py.in: | ||
| 284 | - Fixes for building in situ. | ||
| 285 | - [500aa97cf889] <4.19-maint> | ||
| 286 | - | ||
| 287 | -2018-06-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 288 | - | ||
| 289 | - * NEWS: | ||
| 290 | - Updated the NEWS file. | ||
| 291 | - [0339dce88c21] <4.19-maint> | ||
| 292 | - | ||
| 293 | -2018-06-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 294 | - | ||
| 295 | - * METADATA.in: | ||
| 296 | - Updated the METADATA.in file to account for the private copy for | ||
| 297 | - PyQt5. | ||
| 298 | - [970b0223221f] <4.19-maint> | ||
| 299 | - | ||
| 300 | -2018-06-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 301 | - | ||
| 302 | - * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in, | ||
| 303 | - siplib/sip.h.in, siplib/siplib.c: | ||
| 304 | - The sip.h file no longer needs to be configured by the compiler | ||
| 305 | - invocation for the sip module name. Added the -n option to the code | ||
| 306 | - generator to configure the sip module name. | ||
| 307 | - [d2b3b20484bd] <4.19-maint> | ||
| 308 | - | ||
| 309 | - * sphinx/command_line.rst, sphinx/installation.rst, | ||
| 310 | - sphinx/introduction.rst.in, sphinx/python_api.rst, sphinx/using.rst: | ||
| 311 | - Updated the docs regarding private copies of the sip module. | ||
| 312 | - [76e24a5bc0c3] <4.19-maint> | ||
| 313 | - | ||
| 314 | - * sphinx/build_system.rst, sphinx/directives.rst, | ||
| 315 | - sphinx/installation.rst, sphinx/introduction.rst.in: | ||
| 316 | - Fixed all external links in the documentation. | ||
| 317 | - [31a654cb4d5a] <4.19-maint> | ||
| 318 | - | ||
| 319 | - * configure.py.in, siplib/sip.h.in, siplib/sip.h.in.in, | ||
| 320 | - siplib/siplib.c, siplib/siplib.c.in, siplib/siplib.sbf, | ||
| 321 | - siplib/siplib.sbf.in: | ||
| 322 | - Fixed issues when using the --sip-module option to build the sip | ||
| 323 | - module. | ||
| 324 | - [fc3023a254ce] <4.19-maint> | ||
| 325 | - | ||
| 326 | -2018-06-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 327 | - | ||
| 328 | - * sipgen/gencode.c: | ||
| 329 | - More fixes for the /Transfer/ function annotation when applied to | ||
| 330 | - static methods. | ||
| 331 | - [69938bd3654c] <4.19-maint> | ||
| 332 | - | ||
| 333 | - * sipgen/gencode.c: | ||
| 334 | - Fixed the implemenation of the /Transfer/ method annotation for | ||
| 335 | - static methods. | ||
| 336 | - [e61b036cb050] <4.19-maint> | ||
| 337 | - | ||
| 338 | -2018-06-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 339 | - | ||
| 340 | - * sphinx/c_api.rst: | ||
| 341 | - Clarified the docs for sipSetUserObject(). | ||
| 342 | - [8077330e3c1b] <4.19-maint> | ||
| 343 | - | ||
| 344 | -2018-06-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 345 | - | ||
| 346 | - * siplib/siplib.c.in: | ||
| 347 | - Refactored the new enum visibility support so that normal attribute | ||
| 348 | - lookup in an enum works again (specifically for pickling). | ||
| 349 | - [6d59f2a57159] <4.19-maint> | ||
| 350 | - | ||
| 351 | - * NEWS, siplib/siplib.c.in, sphinx/using.rst: | ||
| 352 | - The members of traditional C/C++ enums are now visible within the | ||
| 353 | - scope of the enum. | ||
| 354 | - [79b93109033f] <4.19-maint> | ||
| 355 | - | ||
| 356 | -2018-06-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 357 | - | ||
| 358 | - * mk_distinfo.py: | ||
| 359 | - Removed the mk_distinfo.py script as it is now added during | ||
| 360 | - preparation. | ||
| 361 | - [b8400f2e1b7b] <4.19-maint> | ||
| 362 | - | ||
| 363 | - * mk_distinfo.py: | ||
| 364 | - Updated the copy of mk_distinfo.py. | ||
| 365 | - [3dd68ef638eb] <4.19-maint> | ||
| 366 | - | ||
| 367 | -2018-06-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 368 | - | ||
| 369 | - * mk_distinfo.py: | ||
| 370 | - Fixed a typo. | ||
| 371 | - [e687d71b4cc9] <4.19-maint> | ||
| 372 | - | ||
| 373 | -2018-05-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 374 | - | ||
| 375 | - * siplib/siplib.c.in: | ||
| 376 | - Fixed building for Python versions prior to v3.3. | ||
| 377 | - [91088a13f975] <4.19-maint> | ||
| 378 | - | ||
| 379 | - * configure.py.in: | ||
| 380 | - Fixes for the .dist-info support on Windows. | ||
| 381 | - [4773b53d98f0] <4.19-maint> | ||
| 382 | - | ||
| 383 | - * configure.py.in: | ||
| 384 | - Handle spaces in path names when building with qmake. | ||
| 385 | - [1757ff19b578] <4.19-maint> | ||
| 386 | - | ||
| 387 | -2018-05-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 388 | - | ||
| 389 | - * NEWS, configure.py.in, mk_distinfo.py, siputils.py, | ||
| 390 | - sphinx/build_system.rst, sphinx/installation.rst: | ||
| 391 | - A PEP 376 .dist-info directory will be created on installation. The | ||
| 392 | - --no-dist-info option was added to configure.py. | ||
| 393 | - [4dea64c9e1a8] <4.19-maint> | ||
| 394 | - | ||
| 395 | -2018-05-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 396 | - | ||
| 397 | - * siplib/siplib.c.in: | ||
| 398 | - Fixed __qualname__ for generated types. | ||
| 399 | - [7cf6d49bb422] <4.19-maint> | ||
| 400 | - | ||
| 401 | -2018-05-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 402 | - | ||
| 403 | - * configure.py.in: | ||
| 404 | - Fixed the sip module's .pro file when building with qmake. | ||
| 405 | - [43635cc7012b] <4.19-maint> | ||
| 406 | - | ||
| 407 | -2018-04-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 408 | - | ||
| 409 | - * METADATA.in: | ||
| 410 | - Fixed a link in the PyPI documentation. | ||
| 411 | - [e343bf878ebc] <4.19-maint> | ||
| 412 | - | ||
| 413 | - * Roadmap.rst: | ||
| 414 | - Updated the roadmap so that it will age more gracefully. | ||
| 415 | - [1f3cbd657f14] <4.19-maint> | ||
| 416 | - | ||
| 417 | -2018-04-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 418 | - | ||
| 419 | - * sphinx/riverbank/static/riverbank.css: | ||
| 420 | - More CSS fixes. | ||
| 421 | - [e413581ca661] <4.19-maint> | ||
| 422 | - | ||
| 423 | -2018-04-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 424 | - | ||
| 425 | - * sphinx/riverbank/static/riverbank.css: | ||
| 426 | - Fixed the CSS for links in headers. | ||
| 427 | - [f125f51ceffb] <4.19-maint> | ||
| 428 | - | ||
| 429 | -2018-03-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 430 | - | ||
| 431 | - * siplib/siplib.c.in: | ||
| 432 | - Removed all calls to the deprecated buffer protocol. | ||
| 433 | - [d9c9937f820a] <4.19-maint> | ||
| 434 | - | ||
| 435 | - * siplib/siplib.c.in: | ||
| 436 | - Fixed the calling of handwritten garbage collection code for classes | ||
| 437 | - that do not directly sub-class the class that is providing the code. | ||
| 438 | - [f968cccc9b77] <4.19-maint> | ||
| 439 | - | ||
| 440 | - * sipgen/gencode.c: | ||
| 441 | - Signal signatures now have a full version appended if a namespace | ||
| 442 | - has been stripped. | ||
| 443 | - [7683ca65278f] <4.19-maint> | ||
| 444 | - | ||
| 445 | -2018-03-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 446 | - | ||
| 447 | - * sipgen/gencode.c: | ||
| 448 | - Signal docstrings can now automatically include the signature. | ||
| 449 | - [34a94ca0260d] <4.19-maint> | ||
| 450 | - | ||
| 451 | -2018-03-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 452 | - | ||
| 453 | - * siplib/sip.h.in.in: | ||
| 454 | - Implemented sipConvertFromSliceObject() for Python v3.7 to avoid | ||
| 455 | - using the deprecated PySlize_GetIndicesEx(). | ||
| 456 | - [ae83f4e7993f] <4.19-maint> | ||
| 457 | - | ||
| 458 | -2018-02-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 459 | - | ||
| 460 | - * .hgtags: | ||
| 461 | - Added tag 4.19.8 for changeset 09748626765f | ||
| 462 | - [6462a294376f] <4.19-maint> | ||
| 463 | - | ||
| 464 | - * NEWS: | ||
| 465 | - Released as v4.19.8. | ||
| 466 | - [09748626765f] [4.19.8] <4.19-maint> | ||
| 467 | - | ||
| 468 | -2018-02-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 469 | - | ||
| 470 | - * README: | ||
| 471 | - Fixed the README. | ||
| 472 | - [f07d0788eef0] <4.19-maint> | ||
| 473 | - | ||
| 474 | -2018-01-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 475 | - | ||
| 476 | - * sphinx/c_api.rst: | ||
| 477 | - Make sure the C API is documented in alphabetical order. | ||
| 478 | - [e930a3c90dc0] <4.19-maint> | ||
| 479 | - | ||
| 480 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 481 | - Make sure that the pointer to the Python object held by the C++ | ||
| 482 | - instance of the generated derived type is reset by the derived | ||
| 483 | - type's dtor. Also make sure it is tested and reset while the GIL is | ||
| 484 | - held in order to avoid race conditions. | ||
| 485 | - [71bfa703c4ee] <4.19-maint> | ||
| 486 | - | ||
| 487 | -2018-01-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 488 | - | ||
| 489 | - * .hgtags: | ||
| 490 | - Added tag 4.19.7 for changeset 7e9dbd15c866 | ||
| 491 | - [9a8622f989f9] <4.19-maint> | ||
| 492 | - | ||
| 493 | - * NEWS: | ||
| 494 | - Released as v4.19.7. | ||
| 495 | - [7e9dbd15c866] [4.19.7] <4.19-maint> | ||
| 496 | - | ||
| 497 | - * NEWS: | ||
| 498 | - Updated the NEWS file. | ||
| 499 | - [3d0a9ebb536c] <4.19-maint> | ||
| 500 | - | ||
| 501 | -2018-01-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 502 | - | ||
| 503 | - * siplib/siplib.c.in: | ||
| 504 | - A significant update to a comment. | ||
| 505 | - [f947546822c3] <4.19-maint> | ||
| 506 | - | ||
| 507 | -2018-01-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 508 | - | ||
| 509 | - * sipgen/metasrc/lexer.l: | ||
| 510 | - Fixed the failed attempt to fix %Docstring argument parsing. | ||
| 511 | - [6054b3268f6f] <4.19-maint> | ||
| 512 | - | ||
| 513 | -2018-01-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 514 | - | ||
| 515 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 516 | - sphinx/directives.rst: | ||
| 517 | - In the context of a class's docstring the signature argument refers | ||
| 518 | - to the concatanated ctor docstrings. | ||
| 519 | - [34ddf9638287] <4.19-maint> | ||
| 520 | - | ||
| 521 | - * sipgen/metasrc/parser.y, sphinx/directives.rst: | ||
| 522 | - Typedefs can now have docstrings. These are only used by those that | ||
| 523 | - instantiate class templates. | ||
| 524 | - [327ad560d853] <4.19-maint> | ||
| 525 | - | ||
| 526 | -2018-01-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 527 | - | ||
| 528 | - * sipgen/gencode.c: | ||
| 529 | - Fixed the generated of a default value that is a global unscoped | ||
| 530 | - enum. | ||
| 531 | - [8f9c478295d3] <4.19-maint> | ||
| 532 | - | ||
| 533 | -2018-01-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 534 | - | ||
| 535 | - * sipgen/gencode.c: | ||
| 536 | - Fixed a missing quote in the docstring support. | ||
| 537 | - [e37301b91a57] <4.19-maint> | ||
| 538 | - | ||
| 539 | -2018-01-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 540 | - | ||
| 541 | - * sipgen/gencode.c: | ||
| 542 | - Fixed the handling of signal docstrings. | ||
| 543 | - [5d4d28286e02] <4.19-maint> | ||
| 544 | - | ||
| 545 | - * sipgen/gencode.c: | ||
| 546 | - Fixed the docstring handling for private ctors and method. | ||
| 547 | - [8186b65687f1] <4.19-maint> | ||
| 548 | - | ||
| 549 | - * sipgen/gencode.c: | ||
| 550 | - Fixed the formats of class docstrings. | ||
| 551 | - [3af2dab08ed3] <4.19-maint> | ||
| 552 | - | ||
| 553 | - * sipgen/gencode.c: | ||
| 554 | - Fixed the formatting of function/method docstrings. | ||
| 555 | - [8e1829fdaf04] <4.19-maint> | ||
| 556 | - | ||
| 557 | -2018-01-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 558 | - | ||
| 559 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 560 | - sipgen/sip.h.in, sphinx/directives.rst: | ||
| 561 | - Initial commit to support embeded signatures in explicit docstrings. | ||
| 562 | - [b3d42a546701] <4.19-maint> | ||
| 563 | - | ||
| 564 | -2018-01-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 565 | - | ||
| 566 | - * sphinx/conf.py.in, sphinx/riverbank/layout.html, | ||
| 567 | - sphinx/riverbank/static/logo.png, | ||
| 568 | - sphinx/riverbank/static/logo_tn.ico, | ||
| 569 | - sphinx/riverbank/static/riverbank.css, sphinx/riverbank/theme.conf, | ||
| 570 | - sphinx/static/classic.css, sphinx/static/logo.png, | ||
| 571 | - sphinx/static/logo_tn.ico: | ||
| 572 | - Switched to the revised Sphinx standards. | ||
| 573 | - [b68eecb348b9] <4.19-maint> | ||
| 574 | - | ||
| 575 | -2017-12-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 576 | - | ||
| 577 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 578 | - Fixed the handling of wchar_t constants. | ||
| 579 | - [c0436cb89959] <4.19-maint> | ||
| 580 | - | ||
| 581 | -2017-12-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 582 | - | ||
| 583 | - * configure.py.in: | ||
| 584 | - Readability improvement. | ||
| 585 | - [6a635db426ea] <4.19-maint> | ||
| 586 | - | ||
| 587 | - * configure.py.in: | ||
| 588 | - Fixed the location to install the code generator in a Windows venv. | ||
| 589 | - [d0f37d83df6f] <4.19-maint> | ||
| 590 | - | ||
| 591 | - * configure.py.in: | ||
| 592 | - Fixed the location of the pythonMN.lib file on Windows when building | ||
| 593 | - in a venv. | ||
| 594 | - [a098e2be83c2] <4.19-maint> | ||
| 595 | - | ||
| 596 | -2017-11-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 597 | - | ||
| 598 | - * .hgtags: | ||
| 599 | - Added tag 4.19.6 for changeset 3f131525d4d5 | ||
| 600 | - [3f3a98f6a67a] <4.19-maint> | ||
| 601 | - | ||
| 602 | - * NEWS: | ||
| 603 | - Released as v4.19.6. | ||
| 604 | - [3f131525d4d5] [4.19.6] <4.19-maint> | ||
| 605 | - | ||
| 606 | -2017-11-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 607 | - | ||
| 608 | - * sphinx/annotations.rst: | ||
| 609 | - Updated the docs for /NewThread/. | ||
| 610 | - [30c7476904af] <4.19-maint> | ||
| 611 | - | ||
| 612 | -2017-11-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 613 | - | ||
| 614 | - * sipgen/gencode.c: | ||
| 615 | - Fixed the handling of the default value of unscoped enums when using | ||
| 616 | - old compilers. | ||
| 617 | - [dd017d3e1454] <4.19-maint> | ||
| 618 | - | ||
| 619 | -2017-11-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 620 | - | ||
| 621 | - * .hgtags: | ||
| 622 | - Added tag 4.19.5 for changeset a572b9daf87f | ||
| 623 | - [e0419013252c] <4.19-maint> | ||
| 624 | - | ||
| 625 | - * NEWS: | ||
| 626 | - Released as v4.19.5. | ||
| 627 | - [a572b9daf87f] [4.19.5] <4.19-maint> | ||
| 628 | - | ||
| 629 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 630 | - Fixed a regression in the conversion of enums which meant that an | ||
| 631 | - object with an __int__ method was accepted as a valid value. | ||
| 632 | - [273b01861a11] <4.19-maint> | ||
| 633 | - | ||
| 634 | -2017-11-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 635 | - | ||
| 636 | - * test/int_convertors/mk.sh, test/int_convertors/run_test.py, | ||
| 637 | - test/int_convertors/test.h, test/int_convertors/test.sip: | ||
| 638 | - Added the test for an overloaded function where the argument of each | ||
| 639 | - overload is a different named enum. | ||
| 640 | - [cac9082bdbd8] <4.19-maint> | ||
| 641 | - | ||
| 642 | -2017-11-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 643 | - | ||
| 644 | - * configure.py.in: | ||
| 645 | - Ensure that when building on macOS using qmake the sip module is a | ||
| 646 | - bundle. | ||
| 647 | - [f945942bc896] <4.19-maint> | ||
| 648 | - | ||
| 649 | -2017-11-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 650 | - | ||
| 651 | - * .hgtags: | ||
| 652 | - Added tag 4.19.4 for changeset ed56fb689db8 | ||
| 653 | - [c56a33a3ef0c] <4.19-maint> | ||
| 654 | - | ||
| 655 | - * NEWS: | ||
| 656 | - Released as v4.19.4. | ||
| 657 | - [ed56fb689db8] [4.19.4] <4.19-maint> | ||
| 658 | - | ||
| 659 | -2017-10-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 660 | - | ||
| 661 | - * siplib/siplib.c.in: | ||
| 662 | - Build fixes for Python v2. | ||
| 663 | - [5b2adad49340] <4.19-maint> | ||
| 664 | - | ||
| 665 | -2017-09-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 666 | - | ||
| 667 | - * sipgen/gencode.c: | ||
| 668 | - Fixed a regression that meant that namespaces were included in the | ||
| 669 | - types of arguments to signals. Probably only affects | ||
| 670 | - PyQtDataVisualization. | ||
| 671 | - [5c94d14871a3] <4.19-maint> | ||
| 672 | - | ||
| 673 | -2017-09-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 674 | - | ||
| 675 | - * sipgen/gencode.c: | ||
| 676 | - Appy a cast to const class pointers to static instances. | ||
| 677 | - [3db4b02ea152] <4.19-maint> | ||
| 678 | - | ||
| 679 | - * sphinx/incompatibilities.rst, sphinx/using.rst: | ||
| 680 | - Added a section on overflow checking to the documentation. | ||
| 681 | - [39409c0a5282] <4.19-maint> | ||
| 682 | - | ||
| 683 | - * sipgen/gencode.c: | ||
| 684 | - Make sure the default value of scoped enums is valid. | ||
| 685 | - [5024429c9126] <4.19-maint> | ||
| 686 | - | ||
| 687 | -2017-09-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 688 | - | ||
| 689 | - * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst, | ||
| 690 | - test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 691 | - test/int_convertors/test.sip: | ||
| 692 | - Deprecated sipCanConvertToEnum(). sipConvertToEnum() now has single- | ||
| 693 | - pass behaviour like the integer convertors. | ||
| 694 | - [2065bdd284cc] <4.19-maint> | ||
| 695 | - | ||
| 696 | -2017-09-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 697 | - | ||
| 698 | - * siplib/int_convertors.c, siplib/siplib.c.in: | ||
| 699 | - Improved the exception text when a virtual should return an enum or | ||
| 700 | - a bool. | ||
| 701 | - [7636b12a0789] <4.19-maint> | ||
| 702 | - | ||
| 703 | - * test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 704 | - test/int_convertors/test.sip: | ||
| 705 | - Added the tests for converting names enums. | ||
| 706 | - [8b5be80fda82] <4.19-maint> | ||
| 707 | - | ||
| 708 | - * siplib/siplib.c.in: | ||
| 709 | - Fixed a regression where sipBadCatcherResult() is called without an | ||
| 710 | - exception. | ||
| 711 | - [894b51685d51] <4.19-maint> | ||
| 712 | - | ||
| 713 | - * test/int_convertors/run_test.py: | ||
| 714 | - Added the remaining bool tests. | ||
| 715 | - [1afb586f55db] <4.19-maint> | ||
| 716 | - | ||
| 717 | - * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, | ||
| 718 | - siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst, | ||
| 719 | - test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 720 | - test/int_convertors/test.sip: | ||
| 721 | - Added sipConvertToBool() to the public API. Implemented the tests | ||
| 722 | - for invalid bool values. | ||
| 723 | - [3e8faabe48a1] <4.19-maint> | ||
| 724 | - | ||
| 725 | - * test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 726 | - test/int_convertors/test.sip: | ||
| 727 | - Added the tests for converting char. | ||
| 728 | - [fb34c9009048] <4.19-maint> | ||
| 729 | - | ||
| 730 | - * test/int_convertors/run_test.py: | ||
| 731 | - Completed the unit tests for unsigned values. | ||
| 732 | - [cbb776ab54f9] <4.19-maint> | ||
| 733 | - | ||
| 734 | -2017-09-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 735 | - | ||
| 736 | - * test/int_convertors/run_test.py: | ||
| 737 | - Added the tests for valid values of unsigned types. | ||
| 738 | - [895e5218b2a2] <4.19-maint> | ||
| 739 | - | ||
| 740 | - * test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 741 | - test/int_convertors/test.sip: | ||
| 742 | - Added tests for virtuals returning invalid values. Added the C++ and | ||
| 743 | - wrappers for the unsigned types tests. | ||
| 744 | - [b42f7afd33bc] <4.19-maint> | ||
| 745 | - | ||
| 746 | - * test/int_convertors/run_test.py: | ||
| 747 | - Fixed the tests for long and long long to account for the legacy | ||
| 748 | - behaviour of the convertors. | ||
| 749 | - [06c124a19f3c] <4.19-maint> | ||
| 750 | - | ||
| 751 | - * test/int_convertors/run_test.py, test/int_convertors/test.h, | ||
| 752 | - test/int_convertors/test.sip: | ||
| 753 | - Implemented the unit tests for int, long and long long integer | ||
| 754 | - conversions. | ||
| 755 | - [55a8a713a6fc] <4.19-maint> | ||
| 756 | - | ||
| 757 | - * test/int_convertors/mk.sh, test/int_convertors/run_test.py, | ||
| 758 | - test/int_convertors/test.h, test/int_convertors/test.sip: | ||
| 759 | - Added the unit tests for signed char and short integer convertors. | ||
| 760 | - [1109afd9d851] <4.19-maint> | ||
| 761 | - | ||
| 762 | - * siplib/siplib.c.in: | ||
| 763 | - The type of the exception raised when a Python re-implementation of | ||
| 764 | - a C++ virtual raises an exception is now the same as that original | ||
| 765 | - exception and not fixed to be TypeError. | ||
| 766 | - [61885f427681] <4.19-maint> | ||
| 767 | - | ||
| 768 | -2017-08-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 769 | - | ||
| 770 | - * sipgen/gencode.c, siplib/siplib.c.in: | ||
| 771 | - Fixed a regression in the generation of slots code. | ||
| 772 | - [9e09f205e404] <4.19-maint> | ||
| 773 | - | ||
| 774 | -2017-08-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 775 | - | ||
| 776 | - * sphinx/c_api.rst: | ||
| 777 | - Backed out the documentation change for sipConvertToEnum(). | ||
| 778 | - [fec7c90f35a2] <4.19-maint> | ||
| 779 | - | ||
| 780 | - * sipgen/gencode.c, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 781 | - Removed the last call to SIPLong_AsLong(). | ||
| 782 | - [b70f7ccc3069] <4.19-maint> | ||
| 783 | - | ||
| 784 | - * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, | ||
| 785 | - siplib/sipint.h, siplib/siplib.c.in, siplib/siplib.sbf.in, | ||
| 786 | - sphinx/c_api.rst: | ||
| 787 | - Added sipLong_AsSignedChar() ot the public API. The generated | ||
| 788 | - variable setters now use the new convertors. | ||
| 789 | - [85bfd5c33ae0] <4.19-maint> | ||
| 790 | - | ||
| 791 | - * siplib/siplib.c.in: | ||
| 792 | - Completed the sip module changes for overflow checking. | ||
| 793 | - [c8029d4cc754] <4.19-maint> | ||
| 794 | - | ||
| 795 | -2017-08-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 796 | - | ||
| 797 | - * siplib/siplib.c.in: | ||
| 798 | - Migration of more module code to the new convertors. | ||
| 799 | - [b035786f41e8] <4.19-maint> | ||
| 800 | - | ||
| 801 | -2017-08-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 802 | - | ||
| 803 | - * siplib/array.c, siplib/voidptr.c: | ||
| 804 | - The array and voidptr types now use the new convertors. | ||
| 805 | - [037839910d09] <4.19-maint> | ||
| 806 | - | ||
| 807 | - * siplib/int_convertors.c: | ||
| 808 | - Completed the implementation of the new integer convertors. | ||
| 809 | - [cae1cf5dfa79] <4.19-maint> | ||
| 810 | - | ||
| 811 | -2017-08-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 812 | - | ||
| 813 | - * sipgen/gencode.c, siplib/int_convertors.c, siplib/sip.h.in.in, | ||
| 814 | - siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 815 | - Implemented the int convertor stubs and documented them. | ||
| 816 | - [3c4d82a590ac] <4.19-maint> | ||
| 817 | - | ||
| 818 | - * siplib/int_convertors.c, siplib/sipint.h, siplib/siplib.c.in: | ||
| 819 | - Refactored the support for int convertors. | ||
| 820 | - [2b1714de0e3f] <4.19-maint> | ||
| 821 | - | ||
| 822 | -2017-08-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 823 | - | ||
| 824 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 825 | - sphinx/c_api.rst, sphinx/python_api.rst: | ||
| 826 | - Implemented sipEnableOverflowChecking() and | ||
| 827 | - sip.enableoverflowchecking() stubs. | ||
| 828 | - [56266006c18f] <4.19-maint> | ||
| 829 | - | ||
| 830 | -2017-08-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 831 | - | ||
| 832 | - * NEWS, sphinx/c_api.rst, sphinx/incompatibilities.rst: | ||
| 833 | - Updated the docs regarding support for scoped enums. | ||
| 834 | - [0cf1c85b12bd] <4.19-maint> | ||
| 835 | - | ||
| 836 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 837 | - Completed the implementation of scoped enums. | ||
| 838 | - [d0b2e8967294] <4.19-maint> | ||
| 839 | - | ||
| 840 | - * siplib/siplib.c.in: | ||
| 841 | - Scoped enums are now created as Python enums. | ||
| 842 | - [ae7df49152e3] <4.19-maint> | ||
| 843 | - | ||
| 844 | - * siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 845 | - More work on scoped enums. | ||
| 846 | - [9a196aece94e] <4.19-maint> | ||
| 847 | - | ||
| 848 | -2017-08-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 849 | - | ||
| 850 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, | ||
| 851 | - siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 852 | - Created the stub of the scoped enums implementation. | ||
| 853 | - [674f800ed250] <4.19-maint> | ||
| 854 | - | ||
| 855 | - * sipgen/type_hints.c: | ||
| 856 | - Removed some unused variables. | ||
| 857 | - [90360e454f86] <4.19-maint> | ||
| 858 | - | ||
| 859 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 860 | - Remove the const from the source object declaration in assignment | ||
| 861 | - helpers. | ||
| 862 | - [2b53ba180983] <4.19-maint> | ||
| 863 | - | ||
| 864 | -2017-08-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 865 | - | ||
| 866 | - * sipgen/metasrc/parser.y: | ||
| 867 | - Completed the parser support for scoped enums. | ||
| 868 | - [11b383822a47] <4.19-maint> | ||
| 869 | - | ||
| 870 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 871 | - sphinx/specification_files.rst: | ||
| 872 | - Added parser support for scoped enums. | ||
| 873 | - [f5b7d5bf0624] <4.19-maint> | ||
| 874 | - | ||
| 875 | - * sipgen/gencode.c: | ||
| 876 | - Use static_cast<int>() when passing values to sipConvertFromEnum(). | ||
| 877 | - [091cfd53e597] <4.19-maint> | ||
| 878 | - | ||
| 879 | -2017-08-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 880 | - | ||
| 881 | - * sipgen/transform.c: | ||
| 882 | - Disallow (rather than ignore) invalid types in Python signatures if | ||
| 883 | - %MethodCode and a C/C++ signature is provided. | ||
| 884 | - [a975983c39c1] <4.19-maint> | ||
| 885 | - | ||
| 886 | -2017-08-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 887 | - | ||
| 888 | - * sipgen/gencode.c: | ||
| 889 | - Fixed a code generation bug in the handling of signals in scoped | ||
| 890 | - classes. | ||
| 891 | - [7c82958d6327] <4.19-maint> | ||
| 892 | - | ||
| 893 | -2017-07-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 894 | - | ||
| 895 | - * sipgen/sip.h.in, sipgen/transform.c: | ||
| 896 | - Fixes for the detection of recursive imports. | ||
| 897 | - [6a7ab03d4efa] <4.19-maint> | ||
| 898 | - | ||
| 899 | -2017-07-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 900 | - | ||
| 901 | - * sipgen/transform.c: | ||
| 902 | - Detect recursive imports as an error. | ||
| 903 | - [ba19c3f5fb29] <4.19-maint> | ||
| 904 | - | ||
| 905 | -2017-07-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 906 | - | ||
| 907 | - * .hgtags: | ||
| 908 | - Added tag 4.19.3 for changeset 14685a6e736e | ||
| 909 | - [2a9f342b7f39] <4.19-maint> | ||
| 910 | - | ||
| 911 | - * NEWS: | ||
| 912 | - Released as v4.19.3. | ||
| 913 | - [14685a6e736e] [4.19.3] <4.19-maint> | ||
| 914 | - | ||
| 915 | -2017-07-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 916 | - | ||
| 917 | - * sipgen/export.c, sipgen/type_hints.c: | ||
| 918 | - Fixes for hidden namespaces in generated XML. | ||
| 919 | - [489321fd2475] <4.19-maint> | ||
| 920 | - | ||
| 921 | -2017-06-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 922 | - | ||
| 923 | - * sphinx/specification_files.rst: | ||
| 924 | - Fixed an out of date statement in the docs. | ||
| 925 | - [21539b0e74c6] <4.19-maint> | ||
| 926 | - | ||
| 927 | -2017-06-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 928 | - | ||
| 929 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 930 | - Don't report template arguments of uninstantiated templates as | ||
| 931 | - undefined classes. | ||
| 932 | - [a69025738247] <4.19-maint> | ||
| 933 | - | ||
| 934 | -2017-06-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 935 | - | ||
| 936 | - * sipgen/metasrc/parser.y: | ||
| 937 | - Allow empty class bodies. | ||
| 938 | - [265b531cb6e4] <4.19-maint> | ||
| 939 | - | ||
| 940 | - * sipgen/gencode.c: | ||
| 941 | - Fixed a bug handling double quotes as the default value of a char | ||
| 942 | - argument. | ||
| 943 | - [d86c23976619] <4.19-maint> | ||
| 944 | - | ||
| 945 | -2017-06-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 946 | - | ||
| 947 | - * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 948 | - sipgen/transform.c: | ||
| 949 | - Completed the implementation of non-strict parsing. | ||
| 950 | - [8b5e498d13dd] <4.19-maint> | ||
| 951 | - | ||
| 952 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 953 | - The relevant data structures now retain the platform information. | ||
| 954 | - [15b6c00166a7] <4.19-maint> | ||
| 955 | - | ||
| 956 | - * sipgen/gencode.c, sipgen/main.c, sipgen/metasrc/parser.y, | ||
| 957 | - sipgen/sip.h.in: | ||
| 958 | - Added the stub of non-strict parsing that saves (but otherwise | ||
| 959 | - ignores) the platform information. | ||
| 960 | - [b05b36a086c2] <4.19-maint> | ||
| 961 | - | ||
| 962 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l: | ||
| 963 | - Improve the handling of string constants to properly support escape | ||
| 964 | - characters. | ||
| 965 | - [495a7635a52d] <4.19-maint> | ||
| 966 | - | ||
| 967 | - * sipgen/metasrc/parser.y: | ||
| 968 | - Make sure any expanded template ctor call is a deep copy. | ||
| 969 | - [141c98e741b6] <4.19-maint> | ||
| 970 | - | ||
| 971 | -2017-06-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 972 | - | ||
| 973 | - * sipgen/metasrc/parser.y: | ||
| 974 | - Expand template ctor calls when they are the default values of an | ||
| 975 | - argument. | ||
| 976 | - [5df8870c61a7] <4.19-maint> | ||
| 977 | - | ||
| 978 | -2017-06-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 979 | - | ||
| 980 | - * sipgen/gencode.c: | ||
| 981 | - Fixed a regression in the invocation of the dtor of shadow classes. | ||
| 982 | - [e833dc3f9a2f] <4.19-maint> | ||
| 983 | - | ||
| 984 | -2017-06-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 985 | - | ||
| 986 | - * .hgignore: | ||
| 987 | - Updated .hgignore for the changed build directory. | ||
| 988 | - [b2fb251d3500] <4.19-maint> | ||
| 989 | - | ||
| 990 | -2017-05-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 991 | - | ||
| 992 | - * siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 993 | - Documented the event handler mechanism. | ||
| 994 | - [aee09bdf1206] <4.19-maint> | ||
| 995 | - | ||
| 996 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 997 | - Implemented sipEventType and sipRegisterEventHandler(). | ||
| 998 | - [2a4bcf305afa] <4.19-maint> | ||
| 999 | - | ||
| 1000 | -2017-05-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1001 | - | ||
| 1002 | - * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in.in, | ||
| 1003 | - siplib/sipint.h, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 1004 | - Renamed sipCommonDtor() to sipInstanceDestroyed() and added it to | ||
| 1005 | - the public API. | ||
| 1006 | - [e7d4e6661fa0] <4.19-maint> | ||
| 1007 | - | ||
| 1008 | - * sipgen/metasrc/parser.y: | ||
| 1009 | - The parser will now accept class template definitions within a | ||
| 1010 | - class. The generated code is untested. | ||
| 1011 | - [ec57a6e03eb3] <4.19-maint> | ||
| 1012 | - | ||
| 1013 | -2017-05-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1014 | - | ||
| 1015 | - * sipgen/type_hints.c: | ||
| 1016 | - Added support for type hints for properties from Scott Maxwell. | ||
| 1017 | - [c861fe0ef6ca] <4.19-maint> | ||
| 1018 | - | ||
| 1019 | -2017-05-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1020 | - | ||
| 1021 | - * sipgen/gencode.c: | ||
| 1022 | - Fixes for 'char *&' argument types. | ||
| 1023 | - [684e23c995a3] <4.19-maint> | ||
| 1024 | - | ||
| 1025 | -2017-05-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1026 | - | ||
| 1027 | - * siplib/siplib.c.in: | ||
| 1028 | - Removed a duplicate call. | ||
| 1029 | - [afe3d3efc82d] <4.19-maint> | ||
| 1030 | - | ||
| 1031 | - * sipgen/gencode.c: | ||
| 1032 | - Don't try and initialise the result of a virtual when the type is a | ||
| 1033 | - template. | ||
| 1034 | - [cce4fe835faf] <4.19-maint> | ||
| 1035 | - | ||
| 1036 | -2017-04-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1037 | - | ||
| 1038 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1039 | - Added sipPrintObject() to the public C API. | ||
| 1040 | - [10e10b1a2d68] <4.19-maint> | ||
| 1041 | - | ||
| 1042 | -2017-04-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1043 | - | ||
| 1044 | - * sipgen/gencode.c, siplib/siplib.c.in: | ||
| 1045 | - Fixed regressions in the handling of exceptions. | ||
| 1046 | - [974a4d77314b] <4.19-maint> | ||
| 1047 | - | ||
| 1048 | - * sipgen/transform.c, sphinx/conf.py.in: | ||
| 1049 | - Minor cosmetic fixes. | ||
| 1050 | - [4ea35fd2187d] <4.19-maint> | ||
| 1051 | - | ||
| 1052 | -2017-04-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1053 | - | ||
| 1054 | - * siplib/siplib.c.in: | ||
| 1055 | - Effectively re-applied changeset dc06058c99dd. If there is a real | ||
| 1056 | - problem here then we don't yet fully understand it. | ||
| 1057 | - [95a493a417e8] <4.19-maint> | ||
| 1058 | - | ||
| 1059 | -2017-04-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1060 | - | ||
| 1061 | - * sipgen/transform.c: | ||
| 1062 | - Fix a regression so that a shadow class is not generated if there is | ||
| 1063 | - a private dtor. | ||
| 1064 | - [6b09a6d578e8] <4.19-maint> | ||
| 1065 | - | ||
| 1066 | -2017-03-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1067 | - | ||
| 1068 | - * .hgtags: | ||
| 1069 | - Added tag 4.19.2 for changeset 1df924860f57 | ||
| 1070 | - [6209a625ac87] <4.19-maint> | ||
| 1071 | - | ||
| 1072 | - * NEWS: | ||
| 1073 | - Released as v4.19.2. | ||
| 1074 | - [1df924860f57] [4.19.2] <4.19-maint> | ||
| 1075 | - | ||
| 1076 | -2017-03-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1077 | - | ||
| 1078 | - * siplib/siplib.c.in: | ||
| 1079 | - Remove an unnecessary comment. | ||
| 1080 | - [1f31effbc614] <4.19-maint> | ||
| 1081 | - | ||
| 1082 | -2017-03-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1083 | - | ||
| 1084 | - * siplib/siplib.c.in: | ||
| 1085 | - Fixed a crash when a user defined class uses sip.wrappertype as it's | ||
| 1086 | - meta-type but is not derived from sip.simplewrapper. | ||
| 1087 | - [f5bab1986fbb] <4.19-maint> | ||
| 1088 | - | ||
| 1089 | -2017-02-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1090 | - | ||
| 1091 | - * .hgtags: | ||
| 1092 | - Added tag 4.19.1 for changeset ee5ea590d186 | ||
| 1093 | - [f45eb310f129] <4.19-maint> | ||
| 1094 | - | ||
| 1095 | - * NEWS: | ||
| 1096 | - Released as v4.19.1. | ||
| 1097 | - [ee5ea590d186] [4.19.1] <4.19-maint> | ||
| 1098 | - | ||
| 1099 | -2017-02-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1100 | - | ||
| 1101 | - * sipgen/gencode.c: | ||
| 1102 | - Fixed another regression in deprecated code. | ||
| 1103 | - [556ca44cc535] <4.19-maint> | ||
| 1104 | - | ||
| 1105 | - * sipgen/gencode.c: | ||
| 1106 | - Fixed some deprecated macros. | ||
| 1107 | - [23a8ef68306d] <4.19-maint> | ||
| 1108 | - | ||
| 1109 | -2017-02-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1110 | - | ||
| 1111 | - * siplib/siplib.c.in: | ||
| 1112 | - Fixed a typo in the implementation of sipEnableGC(). | ||
| 1113 | - [c15936fc6007] <4.19-maint> | ||
| 1114 | - | ||
| 1115 | -2017-02-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1116 | - | ||
| 1117 | - * siplib/siplib.c.in: | ||
| 1118 | - Fixed a doesn't-work-with-old-c-compilers bug. | ||
| 1119 | - [5775566848d1] <4.19-maint> | ||
| 1120 | - | ||
| 1121 | -2017-02-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1122 | - | ||
| 1123 | - * sipgen/transform.c: | ||
| 1124 | - Fixed a regression in the generation of names of protected methods | ||
| 1125 | - in classes imported from other modules. | ||
| 1126 | - [948e06cb1921] <4.19-maint> | ||
| 1127 | - | ||
| 1128 | -2017-02-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1129 | - | ||
| 1130 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c: | ||
| 1131 | - Fixed a regression in determining when a shadow class should be | ||
| 1132 | - generated. | ||
| 1133 | - [71a8ee38b2c6] <4.19-maint> | ||
| 1134 | - | ||
| 1135 | -2017-01-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1136 | - | ||
| 1137 | - * siplib/sip.h.in.in: | ||
| 1138 | - Updated the ABI version number. | ||
| 1139 | - [6b23496bd532] <4.19-maint> | ||
| 1140 | - | ||
| 1141 | - * sphinx/annotations.rst: | ||
| 1142 | - Added a clarification to the /Abstract/ class annotation. | ||
| 1143 | - [adb03184b044] <4.19-maint> | ||
| 1144 | - | ||
| 1145 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1146 | - sphinx/c_api.rst: | ||
| 1147 | - Added sipEnableGC() to the public API. | ||
| 1148 | - [03b120e8fe2f] <4.19-maint> | ||
| 1149 | - | ||
| 1150 | -2017-01-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1151 | - | ||
| 1152 | - * sipgen/metasrc/parser.y: | ||
| 1153 | - Fixed a couple of missing types. | ||
| 1154 | - [9737461081da] <4.19-maint> | ||
| 1155 | - | ||
| 1156 | -2017-01-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1157 | - | ||
| 1158 | - * sipgen/gencode.c: | ||
| 1159 | - More fixes for /NoTypeName/ applied to class templates. | ||
| 1160 | - [8a45855e0d70] <4.19-maint> | ||
| 1161 | - | ||
| 1162 | -2017-01-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1163 | - | ||
| 1164 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 1165 | - The /NoTypeName/ typedef annotation now affects classes | ||
| 1166 | - instantiation from class templates. | ||
| 1167 | - [30d9a5a61ed2] <4.19-maint> | ||
| 1168 | - | ||
| 1169 | -2017-01-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1170 | - | ||
| 1171 | - * NEWS, sipgen/gencode.c, sipgen/metasrc/lexer.l, | ||
| 1172 | - sipgen/metasrc/parser.y, sipgen/sip.h.in, sphinx/directives.rst: | ||
| 1173 | - Added the %PreMethodCode implementation from Robin Dunn. | ||
| 1174 | - [08d77fb135a2] <4.19-maint> | ||
| 1175 | - | ||
| 1176 | - * sipgen/metasrc/parser.y: | ||
| 1177 | - Properly fix the template super-class regression. | ||
| 1178 | - [3b674fc274d5] <4.19-maint> | ||
| 1179 | - | ||
| 1180 | - * sipgen/metasrc/parser.y: | ||
| 1181 | - Backed out changeset b94757bc5637 It fixes the bug but breaks | ||
| 1182 | - everything else. | ||
| 1183 | - [f39e23bcd25b] <4.19-maint> | ||
| 1184 | - | ||
| 1185 | - * sipgen/metasrc/parser.y: | ||
| 1186 | - Fixed a regression in the handling of template arguments specifying | ||
| 1187 | - super-classes. | ||
| 1188 | - [b94757bc5637] <4.19-maint> | ||
| 1189 | - | ||
| 1190 | -2017-01-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1191 | - | ||
| 1192 | - * README, build.py: | ||
| 1193 | - Fixed the build.py script so that it does a complete preparation. | ||
| 1194 | - [85539feb92ea] <4.19-maint> | ||
| 1195 | - | ||
| 1196 | -2017-01-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1197 | - | ||
| 1198 | - * siplib/siplib.c.in: | ||
| 1199 | - Fixed sipGetBufferInfo(). | ||
| 1200 | - [1de5c188f98d] <4.19-maint> | ||
| 1201 | - | ||
| 1202 | -2017-01-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1203 | - | ||
| 1204 | - * sipgen/gencode.c, sipgen/main.c, sipgen/transform.c, | ||
| 1205 | - siplib/siplib.c.in, sphinx/command_line.rst: | ||
| 1206 | - Added the -D command line option so that the generated code is aware | ||
| 1207 | - of Python debug builds. | ||
| 1208 | - [2a21ceefdf2a] <4.19-maint> | ||
| 1209 | - | ||
| 1210 | -2017-01-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1211 | - | ||
| 1212 | - * siplib/siplib.c.in: | ||
| 1213 | - Hopefully a better implementation of changeset dc06058c99dd. | ||
| 1214 | - [4c135d33a5cf] <4.19-maint> | ||
| 1215 | - | ||
| 1216 | - * siplib/siplib.c.in: | ||
| 1217 | - Backed out changeset dc06058c99dd The change is too drastic. | ||
| 1218 | - [d9e95528015e] <4.19-maint> | ||
| 1219 | - | ||
| 1220 | -2017-01-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1221 | - | ||
| 1222 | - * sipgen/transform.c: | ||
| 1223 | - Fixed a regression in the ordering of the generated types table for | ||
| 1224 | - a module. | ||
| 1225 | - [06237437b446] <4.19-maint> | ||
| 1226 | - | ||
| 1227 | -2016-12-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1228 | - | ||
| 1229 | - * .hgtags: | ||
| 1230 | - Added tag 4.19 for changeset 0a4ee5a5511f | ||
| 1231 | - [245c1ac3c34e] | ||
| 1232 | - | ||
| 1233 | - * NEWS: | ||
| 1234 | - Released as v4.19. | ||
| 1235 | - [0a4ee5a5511f] [4.19] | ||
| 1236 | - | ||
| 1237 | -2016-12-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1238 | - | ||
| 1239 | - * sipgen/transform.c: | ||
| 1240 | - Fixed a problem importing the required types for protected methods | ||
| 1241 | - without the public/protected hack. | ||
| 1242 | - [ccf3d8f3cc59] | ||
| 1243 | - | ||
| 1244 | -2016-12-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1245 | - | ||
| 1246 | - * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/python_api.rst: | ||
| 1247 | - Implemented sip.assign() to invoke the C++ assignment operator. | ||
| 1248 | - [4324a0bc03a4] | ||
| 1249 | - | ||
| 1250 | -2016-11-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1251 | - | ||
| 1252 | - * configure.py.in, sphinx/installation.rst: | ||
| 1253 | - Added the --no-stubs and --stubsdir options to configure.py to be | ||
| 1254 | - consistent with other configuration scripts. | ||
| 1255 | - [70e0d9d09265] | ||
| 1256 | - | ||
| 1257 | -2016-11-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1258 | - | ||
| 1259 | - * sipgen/transform.c: | ||
| 1260 | - Fixed the incomplete tidy-up. | ||
| 1261 | - [69aaa13a1883] | ||
| 1262 | - | ||
| 1263 | -2016-11-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1264 | - | ||
| 1265 | - * sipgen/transform.c: | ||
| 1266 | - Fix a warning message. | ||
| 1267 | - [5d7b73925360] | ||
| 1268 | - | ||
| 1269 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 1270 | - Reverted to pre-4.18 handling of the generated cast function. There | ||
| 1271 | - are cases where a C++ derived class does not have the same address | ||
| 1272 | - as its single base class. | ||
| 1273 | - [8e9e02f1bea0] | ||
| 1274 | - | ||
| 1275 | -2016-11-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1276 | - | ||
| 1277 | - * sipgen/metasrc/parser.y: | ||
| 1278 | - Fixed a regression (related to scoped names) that meant that header | ||
| 1279 | - code for template arguments wasn't being included. | ||
| 1280 | - [04796a24e981] | ||
| 1281 | - | ||
| 1282 | -2016-10-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1283 | - | ||
| 1284 | - * sipgen/gencode.c: | ||
| 1285 | - iHandwritten code to be included in the sipAPI*.h file is now placed | ||
| 1286 | - at the end so that it can make use of the generated macros and | ||
| 1287 | - types. | ||
| 1288 | - [ed446493da18] | ||
| 1289 | - | ||
| 1290 | -2016-10-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1291 | - | ||
| 1292 | - * siplib/siplib.c.in: | ||
| 1293 | - Fixed some compiler warnings when building for Python v2. | ||
| 1294 | - [264793ee3fb0] | ||
| 1295 | - | ||
| 1296 | -2016-10-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1297 | - | ||
| 1298 | - * sipgen/transform.c: | ||
| 1299 | - Fixed a regression in the handling of abstratc classes. | ||
| 1300 | - [ce1042e83d1a] | ||
| 1301 | - | ||
| 1302 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 1303 | - More namespace related fixes. | ||
| 1304 | - [73d456c2f5cc] | ||
| 1305 | - | ||
| 1306 | -2016-10-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1307 | - | ||
| 1308 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1309 | - sipgen/transform.c, siplib/siplib.c.in: | ||
| 1310 | - Implemented 'final' support. More fixes for the handling of scopes. | ||
| 1311 | - [1d0d5c659b92] | ||
| 1312 | - | ||
| 1313 | -2016-10-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1314 | - | ||
| 1315 | - * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1316 | - sphinx/specification_files.rst: | ||
| 1317 | - Added parser support for the 'final' keyword. | ||
| 1318 | - [373d57302d56] | ||
| 1319 | - | ||
| 1320 | -2016-10-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1321 | - | ||
| 1322 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c: | ||
| 1323 | - Refactored the support for scopes so that types hav a leading '::'. | ||
| 1324 | - [1f498dfe2888] | ||
| 1325 | - | ||
| 1326 | -2016-10-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1327 | - | ||
| 1328 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1329 | - sipgen/transform.c: | ||
| 1330 | - Fixed the generation of the scope of an operator moved from a | ||
| 1331 | - namespace to a class. | ||
| 1332 | - [f697ee13a3aa] | ||
| 1333 | - | ||
| 1334 | -2016-10-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1335 | - | ||
| 1336 | - * sphinx/directives.rst: | ||
| 1337 | - Documented the %HideNamespace directive. | ||
| 1338 | - [b45a86055567] | ||
| 1339 | - | ||
| 1340 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 1341 | - sipgen/sip.h.in, sipgen/transform.c: | ||
| 1342 | - Implemented the %HideNamespace directive. | ||
| 1343 | - [6b1f471385df] | ||
| 1344 | - | ||
| 1345 | -2016-10-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1346 | - | ||
| 1347 | - * sipgen/gencode.c: | ||
| 1348 | - Make sure the underlying types are generated in tuple builders. | ||
| 1349 | - [0507dfae0588] | ||
| 1350 | - | ||
| 1351 | - * sipgen/gencode.c: | ||
| 1352 | - Virtual handlers use typedef names like all the rest of the | ||
| 1353 | - generated code. | ||
| 1354 | - [c732f0460bc3] | ||
| 1355 | - | ||
| 1356 | -2016-10-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1357 | - | ||
| 1358 | - * sipgen/transform.c: | ||
| 1359 | - Refactored the name lookup code. | ||
| 1360 | - [8bd669cf535f] | ||
| 1361 | - | ||
| 1362 | -2016-09-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1363 | - | ||
| 1364 | - * sipgen/gencode.c: | ||
| 1365 | - Variable getters/setters now only keep a hidden reference for C | ||
| 1366 | - character strings. | ||
| 1367 | - [6ec87337d5e2] | ||
| 1368 | - | ||
| 1369 | - * sipgen/gencode.c: | ||
| 1370 | - Fixed a bad indentation in the generated code. | ||
| 1371 | - [cb1d8e948a2b] | ||
| 1372 | - | ||
| 1373 | -2016-09-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1374 | - | ||
| 1375 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1376 | - sipgen/transform.c, siplib/qtlib.c, siplib/sip.h.in.in, | ||
| 1377 | - siplib/siplib.c.in, sphinx/using.rst: | ||
| 1378 | - Removed anll code generator support for PyQt3. | ||
| 1379 | - [a9cc0cc567aa] | ||
| 1380 | - | ||
| 1381 | -2016-09-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1382 | - | ||
| 1383 | - * sipgen/transform.c: | ||
| 1384 | - A class that sub-classes an abstract class and doesn't provide an | ||
| 1385 | - implementation of an abstract method is itself abstract. | ||
| 1386 | - [472469f1d7ad] | ||
| 1387 | - | ||
| 1388 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1389 | - sipgen/transform.c: | ||
| 1390 | - Fixes for imported types that have multiple implementations. | ||
| 1391 | - [dc02dc4430ec] | ||
| 1392 | - | ||
| 1393 | - * sipgen/transform.c, siplib/sip.h.in.in: | ||
| 1394 | - Fixed the selection of a virtual handler. | ||
| 1395 | - [d6c07e82a3d2] | ||
| 1396 | - | ||
| 1397 | -2016-09-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1398 | - | ||
| 1399 | - * siplib/sip.h.in.in, siplib/sipint.h: | ||
| 1400 | - Fixed some regressions when building with the limited API disabled. | ||
| 1401 | - [8118a2156d11] | ||
| 1402 | - | ||
| 1403 | - * siplib/sip.h.in.in, siplib/sipint.h: | ||
| 1404 | - Exposed some missing macros. | ||
| 1405 | - [d12bb44a9d7d] | ||
| 1406 | - | ||
| 1407 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1408 | - sphinx/c_api.rst: | ||
| 1409 | - Added sipGetUserObject() and sipSetUserObject() to the public API. | ||
| 1410 | - [e0352cc51b67] | ||
| 1411 | - | ||
| 1412 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h, | ||
| 1413 | - siplib/siplib.c.in: | ||
| 1414 | - Added sipIsOwnedByPython() and sipIsDerivedClass() to the private | ||
| 1415 | - API to remove more binary dependencies. | ||
| 1416 | - [17ed5300e0dc] | ||
| 1417 | - | ||
| 1418 | - * sipgen/metasrc/parser.y, siplib/objmap.c, siplib/sip.h.in.in, | ||
| 1419 | - siplib/siplib.c.in: | ||
| 1420 | - Fix some warnings. | ||
| 1421 | - [d0dcc6cd73b9] | ||
| 1422 | - | ||
| 1423 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 1424 | - Refactored how the plugin-specific generated tables are handled. | ||
| 1425 | - [a0fcb2bc14ca] | ||
| 1426 | - | ||
| 1427 | -2016-09-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1428 | - | ||
| 1429 | - * sipgen/transform.c: | ||
| 1430 | - Fixed the auto-generation of default copy ctors. | ||
| 1431 | - [508f9dd396f9] | ||
| 1432 | - | ||
| 1433 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1434 | - Implemented the sipCallProcedureMethod() optimisation. | ||
| 1435 | - [948be90a3f5e] | ||
| 1436 | - | ||
| 1437 | - * sipgen/transform.c, siplib/sip.h.in.in: | ||
| 1438 | - Class based exceptions should now have their type structure | ||
| 1439 | - included. | ||
| 1440 | - [64ac366b669f] | ||
| 1441 | - | ||
| 1442 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1443 | - Reorganised the C API structure. | ||
| 1444 | - [a08c7533a799] | ||
| 1445 | - | ||
| 1446 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1447 | - Completed the refactoring to eliminate binary dependencies. | ||
| 1448 | - [fb3b72523947] | ||
| 1449 | - | ||
| 1450 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1451 | - sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1452 | - Refactored the implementation of exceptions to eliminate the binary | ||
| 1453 | - dependencies. | ||
| 1454 | - [aeb733f23126] | ||
| 1455 | - | ||
| 1456 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1457 | - sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1458 | - Refactored the handling of virtual error handlers to reduce binary | ||
| 1459 | - dependencies. | ||
| 1460 | - [b08f6f3325e8] | ||
| 1461 | - | ||
| 1462 | -2016-09-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1463 | - | ||
| 1464 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 1465 | - Genearte the needed types table at the right time. | ||
| 1466 | - [26331d156a87] | ||
| 1467 | - | ||
| 1468 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 1469 | - Refactoring of the code that inspects a class for its visible | ||
| 1470 | - virtuals. | ||
| 1471 | - [082c756c263d] | ||
| 1472 | - | ||
| 1473 | -2016-09-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1474 | - | ||
| 1475 | - * sipgen/transform.c: | ||
| 1476 | - Fixes for regressions using the type header files in the right | ||
| 1477 | - place. | ||
| 1478 | - [0b1a09bbde7a] | ||
| 1479 | - | ||
| 1480 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1481 | - sipgen/transform.c, siplib/sip.h.in.in: | ||
| 1482 | - Initial refactoring of virtual handlers. | ||
| 1483 | - [d454a9b02d26] | ||
| 1484 | - | ||
| 1485 | -2016-09-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1486 | - | ||
| 1487 | - * sipgen/gencode.c, siplib/siplib.c.in: | ||
| 1488 | - Generate the correct type names for template based types. | ||
| 1489 | - [1f17d1688231] | ||
| 1490 | - | ||
| 1491 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1492 | - sipgen/transform.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1493 | - sphinx/c_api.rst, sphinx/incompatibilities.rst: | ||
| 1494 | - Refactored the handling of generated type structures so that they | ||
| 1495 | - are only referenced by name by an importing module rather than by an | ||
| 1496 | - index into a table. This reduces the binary dependencies between | ||
| 1497 | - modules. | ||
| 1498 | - [667720dbc42d] | ||
| 1499 | - | ||
| 1500 | -2016-09-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1501 | - | ||
| 1502 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 1503 | - siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/directives.rst: | ||
| 1504 | - Removed the support for module version numbers. | ||
| 1505 | - [685029cadb52] | ||
| 1506 | - | ||
| 1507 | -2016-09-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1508 | - | ||
| 1509 | - * siplib/siplib.c.in: | ||
| 1510 | - Fixed silly bugs in the previous change. | ||
| 1511 | - [7df5236aa50f] | ||
| 1512 | - | ||
| 1513 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1514 | - Improved the implementation of sipGetBufferInfo(). | ||
| 1515 | - [7a606d0daf37] | ||
| 1516 | - | ||
| 1517 | -2016-09-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1518 | - | ||
| 1519 | - * sipgen/export.c, sipgen/type_hints.c: | ||
| 1520 | - Fixed the type hint for unsigned const char *. | ||
| 1521 | - [19f9b9eea667] | ||
| 1522 | - | ||
| 1523 | - * siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 1524 | - Updated sipGetBufferInfo() to optionally check the type. | ||
| 1525 | - sipGetBufferInfo() only supports 1-dimensional arrays. | ||
| 1526 | - [985d7877b3a1] | ||
| 1527 | - | ||
| 1528 | -2016-09-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1529 | - | ||
| 1530 | - * siplib/siplib.c.in: | ||
| 1531 | - Further fixes for invoking the new type handler. | ||
| 1532 | - [ecdcfc0f0558] | ||
| 1533 | - | ||
| 1534 | - * siplib/objmap.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1535 | - Fixes for the invocation of the new user type handler. | ||
| 1536 | - [a95c68d37f6e] | ||
| 1537 | - | ||
| 1538 | - * siplib/siplib.c.in: | ||
| 1539 | - Fixed the invocation of the new user type handler. | ||
| 1540 | - [d484574b76e9] | ||
| 1541 | - | ||
| 1542 | -2016-09-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1543 | - | ||
| 1544 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1545 | - sphinx/c_api.rst: | ||
| 1546 | - Added sipGetBufferInfo() and sipReleaseBufferInfo() to the public | ||
| 1547 | - API. | ||
| 1548 | - [c23d7cb8b06e] | ||
| 1549 | - | ||
| 1550 | -2016-09-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1551 | - | ||
| 1552 | - * siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 1553 | - Documented the new Unicode-related functions. | ||
| 1554 | - [c8408349d43c] | ||
| 1555 | - | ||
| 1556 | -2016-09-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1557 | - | ||
| 1558 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1559 | - Added sipUnicodeNew(), sipUnicodeWrite() and sipUnicodeData() to the | ||
| 1560 | - public API. | ||
| 1561 | - [e05849602bef] | ||
| 1562 | - | ||
| 1563 | -2016-08-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1564 | - | ||
| 1565 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1566 | - sphinx/c_api.rst: | ||
| 1567 | - Added sipGetMethod(), sipFromMethod() and sipGetCFunction() ot the | ||
| 1568 | - public API. | ||
| 1569 | - [28f7daaa7542] | ||
| 1570 | - | ||
| 1571 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, | ||
| 1572 | - siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 1573 | - Added sipCheckPluginForType() ot the public API. | ||
| 1574 | - sipSetNewUserTypeHandler() now returns the old handler to allow | ||
| 1575 | - chaining. | ||
| 1576 | - [7e8e4447431b] | ||
| 1577 | - | ||
| 1578 | -2016-08-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1579 | - | ||
| 1580 | - * siplib/descriptors.c, siplib/objmap.c, siplib/sip.h.in.in, | ||
| 1581 | - siplib/siplib.c.in: | ||
| 1582 | - Renamed some structure fields. | ||
| 1583 | - [cb8478e5895d] | ||
| 1584 | - | ||
| 1585 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1586 | - sphinx/c_api.rst: | ||
| 1587 | - Added sipPyTypeDict() to the public API. | ||
| 1588 | - [7f25c1fe8296] | ||
| 1589 | - | ||
| 1590 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1591 | - sphinx/c_api.rst: | ||
| 1592 | - Added sipGetFrame() to the public API. | ||
| 1593 | - [a34c213208b2] | ||
| 1594 | - | ||
| 1595 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1596 | - sphinx/c_api.rst: | ||
| 1597 | - Added sipIsUserType() to the public API. | ||
| 1598 | - [d2477eb9265e] | ||
| 1599 | - | ||
| 1600 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1601 | - sphinx/c_api.rst: | ||
| 1602 | - Added the data and time functions to the public API. | ||
| 1603 | - [7739c16f94c9] | ||
| 1604 | - | ||
| 1605 | -2016-08-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1606 | - | ||
| 1607 | - * sphinx/c_api.rst: | ||
| 1608 | - Documented sipPyTypeName(). | ||
| 1609 | - [c7098cf08c3a] | ||
| 1610 | - | ||
| 1611 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 1612 | - Added sipPyTypeName() to the public API. | ||
| 1613 | - [319512a38c50] | ||
| 1614 | - | ||
| 1615 | - * siplib/sip.h.in.in: | ||
| 1616 | - Fixed the new macros. | ||
| 1617 | - [c361a6924e82] | ||
| 1618 | - | ||
| 1619 | - * siplib/sip.h.in.in: | ||
| 1620 | - Implemented additional portablity macros for the limited API. | ||
| 1621 | - [120e916e8608] | ||
| 1622 | - | ||
| 1623 | - * .hgignore, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1624 | - sphinx/c_api.rst, sphinx/using.rst: | ||
| 1625 | - Implemented sipSetNewUserTypeFunc() sipSetTypeUserData() and | ||
| 1626 | - sipGetTypeUserData(). | ||
| 1627 | - [1f180cf4a42a] | ||
| 1628 | - | ||
| 1629 | -2016-08-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1630 | - | ||
| 1631 | - * siplib/apiversions.c, siplib/array.c, siplib/array.h, | ||
| 1632 | - siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 1633 | - siplib/sip.h.in.in, siplib/sipint.h, siplib/threads.c, | ||
| 1634 | - siplib/voidptr.c, sphinx/c_api.rst, sphinx/directives.rst: | ||
| 1635 | - Added the user field to the sipWrapperType structure as an | ||
| 1636 | - alternative to defining a super-type of sipWrapperType (which isn't | ||
| 1637 | - possible with the limited API). Bumped the major ABI version number. | ||
| 1638 | - [5e9de8cde212] | ||
| 1639 | - | ||
| 1640 | -2016-08-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1641 | - | ||
| 1642 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 1643 | - sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 1644 | - sphinx/directives.rst: | ||
| 1645 | - Added the use_limited_api argument to the %Module directive. Changed | ||
| 1646 | - the API of %BIGetBufferCode when using the limited API. | ||
| 1647 | - [10d7121c07e3] | ||
| 1648 | - | ||
| 1649 | -2016-08-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1650 | - | ||
| 1651 | - * rbproduct.py: | ||
| 1652 | - Merged the 4.18-maint branch into the trunk. | ||
| 1653 | - [d92384aa5baf] | ||
| 1654 | - | ||
| 1655 | - * sipgen/gencode.c: | ||
| 1656 | - Fixed the handling of global unsigned constants. | ||
| 1657 | - [a45bec408ec2] <4.18-maint> | ||
| 1658 | - | ||
| 1659 | - * sphinx/conf.py.in: | ||
| 1660 | - Fixed the copyright notice in the docs. | ||
| 1661 | - [17475357a153] <4.18-maint> | ||
| 1662 | - | ||
| 1663 | -2016-08-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1664 | - | ||
| 1665 | - * README, build.py: | ||
| 1666 | - Removed the old internal build system leaving the minimum needed to | ||
| 1667 | - build from hg without the new build system. | ||
| 1668 | - [dbbced5689a8] <4.18-maint> | ||
| 1669 | - | ||
| 1670 | -2016-07-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1671 | - | ||
| 1672 | - * .hgtags: | ||
| 1673 | - Added tag 4.18.1 for changeset 81021a5690ce | ||
| 1674 | - [8f5b6c8fe5f1] <4.18-maint> | ||
| 1675 | - | ||
| 1676 | - * NEWS: | ||
| 1677 | - Released as v4.18.1. | ||
| 1678 | - [81021a5690ce] [4.18.1] <4.18-maint> | ||
| 1679 | - | ||
| 1680 | -2016-07-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1681 | - | ||
| 1682 | - * Roadmap.rst: | ||
| 1683 | - Updated the Roadmap. | ||
| 1684 | - [1226013f2516] <4.18-maint> | ||
| 1685 | - | ||
| 1686 | - * NEWS: | ||
| 1687 | - Updated the NEWS file. | ||
| 1688 | - [26a4fd92bf59] <4.18-maint> | ||
| 1689 | - | ||
| 1690 | -2016-07-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1691 | - | ||
| 1692 | - * siplib/objmap.c: | ||
| 1693 | - Fixed a problem with stale aliases for objects created by C/C++. | ||
| 1694 | - [b493c6f3e015] <4.18-maint> | ||
| 1695 | - | ||
| 1696 | -2016-06-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1697 | - | ||
| 1698 | - * rb-product, rbproduct.py: | ||
| 1699 | - Replaced the product plugin with a product file. | ||
| 1700 | - [a10b0caa91a8] <4.18-maint> | ||
| 1701 | - | ||
| 1702 | -2016-06-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1703 | - | ||
| 1704 | - * rbproduct.py: | ||
| 1705 | - Product plugin changes for rb-tools API changes. | ||
| 1706 | - [86f51ad3ac30] <4.18-maint> | ||
| 1707 | - | ||
| 1708 | - * rbproduct.py: | ||
| 1709 | - Debugged the product plugin. | ||
| 1710 | - [67a81861273c] <4.18-maint> | ||
| 1711 | - | ||
| 1712 | - * rbproduct.py: | ||
| 1713 | - Added support for a minimal build and release build types. | ||
| 1714 | - [8cc794662db5] <4.18-maint> | ||
| 1715 | - | ||
| 1716 | -2016-06-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1717 | - | ||
| 1718 | - * rbproduct.py: | ||
| 1719 | - Tewaks to the product plugin. | ||
| 1720 | - [b2fd658f11cf] <4.18-maint> | ||
| 1721 | - | ||
| 1722 | -2016-06-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1723 | - | ||
| 1724 | - * rbproduct.py: | ||
| 1725 | - Debugged the support for rb-release. | ||
| 1726 | - [38cdb78872f4] <4.18-maint> | ||
| 1727 | - | ||
| 1728 | -2016-06-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1729 | - | ||
| 1730 | - * rbproduct.py: | ||
| 1731 | - Updated the product plugin to support rb-release. | ||
| 1732 | - [ecb166af3ad3] <4.18-maint> | ||
| 1733 | - | ||
| 1734 | -2016-06-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1735 | - | ||
| 1736 | - * sipgen/gencode.c: | ||
| 1737 | - Fixed a regression in the handling of a cast with a diamond | ||
| 1738 | - hierachy. | ||
| 1739 | - [91206af66161] <4.18-maint> | ||
| 1740 | - | ||
| 1741 | -2016-06-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1742 | - | ||
| 1743 | - * rbproduct.py: | ||
| 1744 | - Implemented the different build types. | ||
| 1745 | - [15184d86e394] <4.18-maint> | ||
| 1746 | - | ||
| 1747 | - * rbproduct.py: | ||
| 1748 | - Updates to the product plugin. | ||
| 1749 | - [23ca59449373] <4.18-maint> | ||
| 1750 | - | ||
| 1751 | -2016-06-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1752 | - | ||
| 1753 | - * rbproduct.py: | ||
| 1754 | - Updated the product plugin to simplify the class hierachy. | ||
| 1755 | - [a977c7f870f7] <4.18-maint> | ||
| 1756 | - | ||
| 1757 | - * .hgignore, rbproduct.py: | ||
| 1758 | - The product plugin will now do a default build. | ||
| 1759 | - [8c433398f573] <4.18-maint> | ||
| 1760 | - | ||
| 1761 | -2016-05-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1762 | - | ||
| 1763 | - * rbproduct.py: | ||
| 1764 | - Updated the product plugin for the latest rbtools changes. | ||
| 1765 | - [a4a0a84984dc] <4.18-maint> | ||
| 1766 | - | ||
| 1767 | -2016-05-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1768 | - | ||
| 1769 | - * configure.py.in: | ||
| 1770 | - Fixed a bug in out-of-source builds. | ||
| 1771 | - [f9602fd24f17] <4.18-maint> | ||
| 1772 | - | ||
| 1773 | -2016-04-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1774 | - | ||
| 1775 | - * METADATA.in: | ||
| 1776 | - Updated the meta-data to say that 64-bit Linux wheels are available | ||
| 1777 | - at PyPI. | ||
| 1778 | - [5602445cb458] <4.18-maint> | ||
| 1779 | - | ||
| 1780 | -2016-04-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1781 | - | ||
| 1782 | - * .hgtags: | ||
| 1783 | - Added tag 4.18 for changeset b51768a1749e | ||
| 1784 | - [1da474e6ccc1] | ||
| 1785 | - | ||
| 1786 | - * NEWS, sphinx/specification_files.rst: | ||
| 1787 | - Released as v4.18. | ||
| 1788 | - [b51768a1749e] [4.18] | ||
| 1789 | - | ||
| 1790 | - * METADATA.in, sipgen/export.c, sipgen/type_hints.c: | ||
| 1791 | - Fixed the type hints for arrays. | ||
| 1792 | - [02a712634ce1] | ||
| 1793 | - | ||
| 1794 | -2016-04-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1795 | - | ||
| 1796 | - * METADATA.in: | ||
| 1797 | - Updated the description in the meta-data. | ||
| 1798 | - [d9eb656132f3] | ||
| 1799 | - | ||
| 1800 | -2016-04-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1801 | - | ||
| 1802 | - * METADATA.in: | ||
| 1803 | - Further tweak to METADATA.in. | ||
| 1804 | - [9acfb4baa44c] | ||
| 1805 | - | ||
| 1806 | - * METADATA.in: | ||
| 1807 | - Use v1.1 meta-data rather than v2.0. | ||
| 1808 | - [8d9645471343] | ||
| 1809 | - | ||
| 1810 | - * METADATA.in: | ||
| 1811 | - Fixed a typo. | ||
| 1812 | - [4a9ee34e65c3] | ||
| 1813 | - | ||
| 1814 | - * METADATA.in, rbproduct.py: | ||
| 1815 | - Added the METADATA.in file. | ||
| 1816 | - [39106871989b] | ||
| 1817 | - | ||
| 1818 | -2016-04-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1819 | - | ||
| 1820 | - * rbproduct.py: | ||
| 1821 | - Updated the product plugin. | ||
| 1822 | - [e42e999389f9] | ||
| 1823 | - | ||
| 1824 | - * rbproduct.py: | ||
| 1825 | - Added the rbtools product plugin. | ||
| 1826 | - [b9ba57967915] | ||
| 1827 | - | ||
| 1828 | -2016-03-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1829 | - | ||
| 1830 | - * sphinx/incompatibilities.rst: | ||
| 1831 | - Fixed a Sphinx warning message. | ||
| 1832 | - [ae966103325c] | ||
| 1833 | - | ||
| 1834 | - * sipgen/main.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 1835 | - Fixed the use of SIP_NORETURN. | ||
| 1836 | - [b3a916e0bc78] | ||
| 1837 | - | ||
| 1838 | -2016-03-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1839 | - | ||
| 1840 | - * sipgen/export.c: | ||
| 1841 | - Fixed a regression in the exporting of the XML API files. | ||
| 1842 | - [c7714bbbdae7] | ||
| 1843 | - | ||
| 1844 | - * build.py, sphinx/build_system.rst, sphinx/c_api.rst, | ||
| 1845 | - sphinx/python_api.rst: | ||
| 1846 | - Adopt the new standards for naming development versions. | ||
| 1847 | - [72140f544ef1] | ||
| 1848 | - | ||
| 1849 | - * sphinx/annotations.rst: | ||
| 1850 | - Fixed a bug in the documentation. | ||
| 1851 | - [9e4ee12928cd] | ||
| 1852 | - | ||
| 1853 | - * .hgignore: | ||
| 1854 | - Added the .hgignore file. | ||
| 1855 | - [e1d2556ce4a2] | ||
| 1856 | - | ||
| 1857 | -2016-03-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1858 | - | ||
| 1859 | - * sipgen/gencode.c: | ||
| 1860 | - __long__ gets translated to __int__ for Python v3. | ||
| 1861 | - [a4f8a7810cc3] | ||
| 1862 | - | ||
| 1863 | -2016-03-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1864 | - | ||
| 1865 | - * sipgen/type_hints.c, sphinx/annotations.rst: | ||
| 1866 | - Type hints are ignored if an argument is constrained. | ||
| 1867 | - [f041cf891a29] | ||
| 1868 | - | ||
| 1869 | - * sipgen/type_hints.c: | ||
| 1870 | - Implement the flattening of Unions in type hints. | ||
| 1871 | - [ff5f0d0251e0] | ||
| 1872 | - | ||
| 1873 | -2016-02-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1874 | - | ||
| 1875 | - * sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 1876 | - Reimplemented the type hint parser so it can handle recursive | ||
| 1877 | - definitions properly. | ||
| 1878 | - [506e30d92b51] | ||
| 1879 | - | ||
| 1880 | -2016-02-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1881 | - | ||
| 1882 | - * sipgen/type_hints.c: | ||
| 1883 | - Fixed type hints for enums in mapped types. | ||
| 1884 | - [efb04ab24462] | ||
| 1885 | - | ||
| 1886 | - * sipgen/type_hints.c: | ||
| 1887 | - Fixed type hints for the return values of functions. | ||
| 1888 | - [b5c392c71f78] | ||
| 1889 | - | ||
| 1890 | - * sipgen/type_hints.c: | ||
| 1891 | - Added Iterable to the list of known typing module objects. | ||
| 1892 | - [a1d1a573a304] | ||
| 1893 | - | ||
| 1894 | -2016-02-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1895 | - | ||
| 1896 | - * sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 1897 | - Fixed the handling of recursively defined type hints. | ||
| 1898 | - [b5abe12b4968] | ||
| 1899 | - | ||
| 1900 | -2016-02-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1901 | - | ||
| 1902 | - * sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 1903 | - The typing module is now imported as a whole rather than individual | ||
| 1904 | - objects. | ||
| 1905 | - [ac67b3f0bd95] | ||
| 1906 | - | ||
| 1907 | -2016-02-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1908 | - | ||
| 1909 | - * sip.pyi: | ||
| 1910 | - Fixed the Buffer type hint. | ||
| 1911 | - [78a799aec114] | ||
| 1912 | - | ||
| 1913 | - * sipgen/type_hints.c: | ||
| 1914 | - Don't generate type hints for the sequence concat and repeat slots | ||
| 1915 | - (and the inplace versions). | ||
| 1916 | - [a5ae3982ff5f] | ||
| 1917 | - | ||
| 1918 | - * sipgen/metasrc/parser.y, sphinx/directives.rst: | ||
| 1919 | - Exported type hint code is no longer included in the module that | ||
| 1920 | - defines it. | ||
| 1921 | - [442b3ed07ae6] | ||
| 1922 | - | ||
| 1923 | - * sipgen/type_hints.c: | ||
| 1924 | - Exclude external classes when looking up a class. | ||
| 1925 | - [61fe4c76a394] | ||
| 1926 | - | ||
| 1927 | - * sipgen/transform.c, sipgen/type_hints.c: | ||
| 1928 | - Fixed type hints and docstrings for const template arguments. | ||
| 1929 | - [679c13adda6a] | ||
| 1930 | - | ||
| 1931 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c, | ||
| 1932 | - sphinx/directives.rst: | ||
| 1933 | - %TypeHintCode can now be used in a class. | ||
| 1934 | - [053c7351dba2] | ||
| 1935 | - | ||
| 1936 | -2016-02-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1937 | - | ||
| 1938 | - * sipgen/type_hints.c: | ||
| 1939 | - Don't generate type hints for slots that can return | ||
| 1940 | - Py_NotImplemented. Make sure callables generate a valid (but vague) | ||
| 1941 | - type hint. | ||
| 1942 | - [883918a8dc36] | ||
| 1943 | - | ||
| 1944 | -2016-02-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1945 | - | ||
| 1946 | - * sip.pyi, sipgen/type_hints.c: | ||
| 1947 | - Tweaks to the type hint support. | ||
| 1948 | - [785978d8f7e3] | ||
| 1949 | - | ||
| 1950 | -2016-02-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1951 | - | ||
| 1952 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 1953 | - sipgen/type_hints.c, sphinx/annotations.rst: | ||
| 1954 | - Added the /TypeHint/, /TypeHintOut/ and /TypeHintValue/ class | ||
| 1955 | - annotations. | ||
| 1956 | - [4f5dc2c51d06] | ||
| 1957 | - | ||
| 1958 | - * sipgen/type_hints.c: | ||
| 1959 | - Moved the old-style signal/slot type hints to PyQt4. | ||
| 1960 | - [4689a40f7e7d] | ||
| 1961 | - | ||
| 1962 | -2016-02-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1963 | - | ||
| 1964 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 1965 | - sphinx/annotations.rst: | ||
| 1966 | - Implemented /TypeHintValue/ as a mapped type annotation. | ||
| 1967 | - [2418e7f7760d] | ||
| 1968 | - | ||
| 1969 | - * build.py: | ||
| 1970 | - Make sure sip.pyi is included in the source package. | ||
| 1971 | - [1eabde271e53] | ||
| 1972 | - | ||
| 1973 | -2016-02-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1974 | - | ||
| 1975 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 1976 | - sipgen/transform.c, siplib/siplib.c.in: | ||
| 1977 | - Eliminate a few compiler warnings. | ||
| 1978 | - [e864a0451a4a] | ||
| 1979 | - | ||
| 1980 | -2016-02-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1981 | - | ||
| 1982 | - * sipgen/type_hints.c: | ||
| 1983 | - More fixes for Optional handling. | ||
| 1984 | - [365d31de81fd] | ||
| 1985 | - | ||
| 1986 | - * sipgen/type_hints.c: | ||
| 1987 | - Use Optional properly. | ||
| 1988 | - [ab7d66d1ea0d] | ||
| 1989 | - | ||
| 1990 | -2016-02-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1991 | - | ||
| 1992 | - * sipgen/type_hints.c: | ||
| 1993 | - PY_TYPE and PY_SLICE aren't actually needed. | ||
| 1994 | - [9778770c65a5] | ||
| 1995 | - | ||
| 1996 | -2016-02-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 1997 | - | ||
| 1998 | - * sipgen/type_hints.c: | ||
| 1999 | - Fixed the translation of Any to object in docstrings. | ||
| 2000 | - [7571d96c1f79] | ||
| 2001 | - | ||
| 2002 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in, | ||
| 2003 | - sipgen/type_hints.c: | ||
| 2004 | - Docstrings now use a format based on type hints. | ||
| 2005 | - [9de9b0470aa6] | ||
| 2006 | - | ||
| 2007 | -2016-02-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2008 | - | ||
| 2009 | - * sipgen/transform.c: | ||
| 2010 | - Don't complain about a lack of %SetCode when /NoSetter/ is | ||
| 2011 | - specified. | ||
| 2012 | - [cf4db5eb171a] | ||
| 2013 | - | ||
| 2014 | - * sipgen/metasrc/parser.y: | ||
| 2015 | - Fixed some typos in error messages. | ||
| 2016 | - [82a34911686f] | ||
| 2017 | - | ||
| 2018 | - * sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 2019 | - sphinx/directives.rst: | ||
| 2020 | - Renamed %ModuleTypeHintCode to %TypeHintCode. | ||
| 2021 | - [73b214c14dde] | ||
| 2022 | - | ||
| 2023 | - * sipgen/type_hints.c, sphinx/annotations.rst: | ||
| 2024 | - Documented the /NoTypeHint/ annotations. | ||
| 2025 | - [26e59a86ca45] | ||
| 2026 | - | ||
| 2027 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2028 | - sipgen/type_hints.c: | ||
| 2029 | - Implemented the /NoTypeHint/ annotation. Fixed a bug to make sure | ||
| 2030 | - type header code is included before enum slot code needs it. | ||
| 2031 | - [1943d4866c73] | ||
| 2032 | - | ||
| 2033 | - * sipgen/metasrc/parser.y, sipgen/type_hints.c: | ||
| 2034 | - More flexible handling of ellipsis when /NoArgParser/ is specified. | ||
| 2035 | - [7097a0008042] | ||
| 2036 | - | ||
| 2037 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 2038 | - Protect against (possible) recursion when handling type hints for | ||
| 2039 | - mapped types. | ||
| 2040 | - [9402857f5eb6] | ||
| 2041 | - | ||
| 2042 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2043 | - sipgen/type_hints.c: | ||
| 2044 | - Fixed class /TypeHintIn/ when used with a template. | ||
| 2045 | - [3a914d9789e0] | ||
| 2046 | - | ||
| 2047 | -2016-02-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2048 | - | ||
| 2049 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c, | ||
| 2050 | - sphinx/annotations.rst: | ||
| 2051 | - Added /TypeHintIn/ as a class annotation. | ||
| 2052 | - [92d3d32ebf64] | ||
| 2053 | - | ||
| 2054 | -2016-02-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2055 | - | ||
| 2056 | - * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2057 | - sipgen/transform.c, sipgen/type_hints.c: | ||
| 2058 | - Completed the implementation of /TypeHintIn/ and /TypeHintOut/. | ||
| 2059 | - [70e9172c61b7] | ||
| 2060 | - | ||
| 2061 | - * sipgen/export.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 2062 | - Implement /TypeHintValue/ as a synonym for /DocValue/ for the | ||
| 2063 | - moment. | ||
| 2064 | - [df8230d91f9f] | ||
| 2065 | - | ||
| 2066 | - * sipgen/metasrc/parser.y, sphinx/annotations.rst: | ||
| 2067 | - Adde the stubs of the /TypeHintIn/, /TypeHintOut/ and | ||
| 2068 | - /TypeHintValue/ annotations. | ||
| 2069 | - [aeb5d848b98a] | ||
| 2070 | - | ||
| 2071 | - * sipgen/metasrc/parser.y, sphinx/annotations.rst: | ||
| 2072 | - Deprecated /DocType/ and /DocValue/. | ||
| 2073 | - [ec369060cd94] | ||
| 2074 | - | ||
| 2075 | - * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/type_hints.c, | ||
| 2076 | - sphinx/command_line.rst: | ||
| 2077 | - Added the -f command line option to treat warnings as errors. | ||
| 2078 | - [fc945a2d732f] | ||
| 2079 | - | ||
| 2080 | -2016-02-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2081 | - | ||
| 2082 | - * sipgen/type_hints.c: | ||
| 2083 | - Added Iterator and Mapping to the objecys imported from typing. | ||
| 2084 | - [6d439bc77538] | ||
| 2085 | - | ||
| 2086 | - * sipgen/type_hints.c: | ||
| 2087 | - Fixed references to mapped types imported from other modules. | ||
| 2088 | - [b579781f2a2a] | ||
| 2089 | - | ||
| 2090 | - * sipgen/type_hints.c: | ||
| 2091 | - Don't try and create type hints for global slots. | ||
| 2092 | - [11562a825b7c] | ||
| 2093 | - | ||
| 2094 | - * sipgen/type_hints.c: | ||
| 2095 | - Bug fix when looking up enums. | ||
| 2096 | - [a4b89fac02d3] | ||
| 2097 | - | ||
| 2098 | - * sipgen/type_hints.c: | ||
| 2099 | - Added PEP 484 support for composite modules. | ||
| 2100 | - [99e626f4fd23] | ||
| 2101 | - | ||
| 2102 | - * sipgen/type_hints.c: | ||
| 2103 | - Fixed PEP 484 support for all callables with a non-default API | ||
| 2104 | - version. | ||
| 2105 | - [b2f8e2fed83d] | ||
| 2106 | - | ||
| 2107 | - * sipgen/type_hints.c: | ||
| 2108 | - Completed the PEP 484 support for mapped types. | ||
| 2109 | - [b06408ae2397] | ||
| 2110 | - | ||
| 2111 | - * sipgen/export.c, sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 2112 | - More PEP 484 bug fixes. | ||
| 2113 | - [3e4df4d97ba5] | ||
| 2114 | - | ||
| 2115 | -2016-01-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2116 | - | ||
| 2117 | - * NEWS, sphinx/directives.rst, sphinx/specification_files.rst: | ||
| 2118 | - Documented the %ExportedTypeHintCode and %ModuleTypeHintCode | ||
| 2119 | - directives. | ||
| 2120 | - [cc7f789360b8] | ||
| 2121 | - | ||
| 2122 | - * NEWS, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 2123 | - sipgen/sip.h.in, sipgen/type_hints.c, sphinx/directives.rst: | ||
| 2124 | - Added the %ExportedTypeHintCode and %ModuleTypeHintCode directives. | ||
| 2125 | - [aef93197b065] | ||
| 2126 | - | ||
| 2127 | - * sipgen/metasrc/parser.y, sipgen/type_hints.c, | ||
| 2128 | - sphinx/annotations.rst: | ||
| 2129 | - Renamed /HintType/ to /TypeHint/. | ||
| 2130 | - [70c8915f680a] | ||
| 2131 | - | ||
| 2132 | -2016-01-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2133 | - | ||
| 2134 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 2135 | - More PEP 484 support. | ||
| 2136 | - [ea6e7a7ae51f] | ||
| 2137 | - | ||
| 2138 | -2016-01-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2139 | - | ||
| 2140 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2141 | - sipgen/type_hints.c: | ||
| 2142 | - More PEP 484 support. | ||
| 2143 | - [aa1228396424] | ||
| 2144 | - | ||
| 2145 | -2016-01-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2146 | - | ||
| 2147 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2148 | - sipgen/type_hints.c: | ||
| 2149 | - Added the stubs for parsing /HintType/ annotations. | ||
| 2150 | - [7c0fac66f27c] | ||
| 2151 | - | ||
| 2152 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2153 | - sipgen/transform.c, sipgen/type_hints.c: | ||
| 2154 | - Improved the lookup of QObject. | ||
| 2155 | - [a2d8330df89d] | ||
| 2156 | - | ||
| 2157 | -2016-01-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2158 | - | ||
| 2159 | - * sipgen/type_hints.c: | ||
| 2160 | - More PEP 484 support. | ||
| 2161 | - [336749ea71c5] | ||
| 2162 | - | ||
| 2163 | - * sipgen/type_hints.c, sphinx/annotations.rst: | ||
| 2164 | - HintType will now fallback to DocType if the latter is specified. | ||
| 2165 | - [4423da336fbb] | ||
| 2166 | - | ||
| 2167 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2168 | - sipgen/type_hints.c, sphinx/annotations.rst: | ||
| 2169 | - Added the /HintType/ annotation. | ||
| 2170 | - [2985d2d641d4] | ||
| 2171 | - | ||
| 2172 | - * sipgen/type_hints.c: | ||
| 2173 | - More PEP 484 support. | ||
| 2174 | - [21e70ef4b15f] | ||
| 2175 | - | ||
| 2176 | -2016-01-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2177 | - | ||
| 2178 | - * sipgen/sip.h.in, sipgen/type_hints.c: | ||
| 2179 | - More PEP 484 support. | ||
| 2180 | - [dd04be5e4e4f] | ||
| 2181 | - | ||
| 2182 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in, | ||
| 2183 | - sipgen/type_hints.c: | ||
| 2184 | - More support for PEP 484. | ||
| 2185 | - [353fe29217fb] | ||
| 2186 | - | ||
| 2187 | - * siplib/siplib.c.in: | ||
| 2188 | - Reverted the use of simplewrapper for mapped types. | ||
| 2189 | - [14ba1e5b1e5b] | ||
| 2190 | - | ||
| 2191 | - * siplib/siplib.c.in: | ||
| 2192 | - Namespaces and mapped types now default to simplewrapper as their | ||
| 2193 | - super-type. | ||
| 2194 | - [f7fd77d1cd4e] | ||
| 2195 | - | ||
| 2196 | -2016-01-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2197 | - | ||
| 2198 | - * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h.in, | ||
| 2199 | - sipgen/sipgen.sbf, sipgen/type_hints.c, sphinx/command_line.rst, | ||
| 2200 | - sphinx/introduction.rst.in: | ||
| 2201 | - Initial support for generating PEP484 type hints. | ||
| 2202 | - [4191467f125a] | ||
| 2203 | - | ||
| 2204 | - * sip.pyi: | ||
| 2205 | - Added None return types to the stub file. | ||
| 2206 | - [314ef3cd76ed] | ||
| 2207 | - | ||
| 2208 | -2016-01-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2209 | - | ||
| 2210 | - * configure.py.in: | ||
| 2211 | - Hard-code the name of the stub file (rather than handle bespoke | ||
| 2212 | - module names). | ||
| 2213 | - [e1e4b29eb1a6] | ||
| 2214 | - | ||
| 2215 | - * configure.py.in, sip.pyi, sphinx/installation.rst: | ||
| 2216 | - Added the sip.pyi type hints stub file. | ||
| 2217 | - [30e58feee19f] | ||
| 2218 | - | ||
| 2219 | -2016-01-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2220 | - | ||
| 2221 | - * sphinx/c_api.rst: | ||
| 2222 | - Minor docs change. | ||
| 2223 | - [dd03f114259c] | ||
| 2224 | - | ||
| 2225 | -2016-01-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2226 | - | ||
| 2227 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2228 | - Deprecated SIP_SLOT. | ||
| 2229 | - [2b821ae5e9f1] | ||
| 2230 | - | ||
| 2231 | - * Roadmap.rst: | ||
| 2232 | - Updated the roadmap. | ||
| 2233 | - [495ebc034f99] | ||
| 2234 | - | ||
| 2235 | - * sphinx/annotations.rst: | ||
| 2236 | - Deprecated the SingleShot annotation. | ||
| 2237 | - [aa46307e00b4] | ||
| 2238 | - | ||
| 2239 | - * sipgen/metasrc/parser.y: | ||
| 2240 | - Deprecated SIP_RXOBJ_CON and SIP_SLOT_CON. | ||
| 2241 | - [affb0c5b465c] | ||
| 2242 | - | ||
| 2243 | -2016-01-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2244 | - | ||
| 2245 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2246 | - Deprecated SIP_SIGNAL. | ||
| 2247 | - [865e00b6ffa0] | ||
| 2248 | - | ||
| 2249 | -2016-01-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2250 | - | ||
| 2251 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2252 | - Deprecated SIP_ANYSLOT. | ||
| 2253 | - [8199aa8980e8] | ||
| 2254 | - | ||
| 2255 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2256 | - Deprecated SIP_QOBJECT. | ||
| 2257 | - [fb9c94746255] | ||
| 2258 | - | ||
| 2259 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2260 | - Deprecated SIP_RXOBJ_DIS. | ||
| 2261 | - [0f26db165557] | ||
| 2262 | - | ||
| 2263 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2264 | - Deprecated SIP_SLOT_DIS. | ||
| 2265 | - [051775601278] | ||
| 2266 | - | ||
| 2267 | -2016-01-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2268 | - | ||
| 2269 | - * Merged the current maintenance branch. | ||
| 2270 | - [b7bd085548b6] | ||
| 2271 | - | ||
| 2272 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 2273 | - Fixes to the handling of fatal errors. | ||
| 2274 | - [f35ebfa4c27f] <4.17-maint> | ||
| 2275 | - | ||
| 2276 | - * Merged the current maintenance branch with the default. | ||
| 2277 | - [d244ec3a2dec] | ||
| 2278 | - | ||
| 2279 | -2016-01-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2280 | - | ||
| 2281 | - * configure.py.in, sipgen/export.c, sipgen/gencode.c, sipgen/main.c, | ||
| 2282 | - sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2283 | - sipgen/transform.c, siplib/siplib.c.in: | ||
| 2284 | - Fixed all compiler warnings. | ||
| 2285 | - [9dbdf30558aa] <4.17-maint> | ||
| 2286 | - | ||
| 2287 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in, siplib/siplib.c.in, | ||
| 2288 | - sphinx/specification_files.rst: | ||
| 2289 | - Some minor tidy-ups. | ||
| 2290 | - [b4edb1990e23] <4.17-maint> | ||
| 2291 | - | ||
| 2292 | - * Merged the current maintenance branch with the default. | ||
| 2293 | - [782cf5e8441e] | ||
| 2294 | - | ||
| 2295 | -2015-12-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2296 | - | ||
| 2297 | - * sipgen/gencode.c: | ||
| 2298 | - Another attempt and preventing accesses to SIP data structures after | ||
| 2299 | - the interpreter has gone. | ||
| 2300 | - [138eb1eded99] <4.17-maint> | ||
| 2301 | - | ||
| 2302 | -2015-12-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2303 | - | ||
| 2304 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 2305 | - sphinx/c_api.rst: | ||
| 2306 | - Added sipGetInterpreter() to the public API. Avoid the Python | ||
| 2307 | - interpreter if it has gone when getting a QMetaObject. | ||
| 2308 | - [61d8f0f6f5c0] <4.17-maint> | ||
| 2309 | - | ||
| 2310 | -2015-12-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2311 | - | ||
| 2312 | - * siplib/siplib.c.in: | ||
| 2313 | - Cleared a benign exception in the handling of mixins. | ||
| 2314 | - [602884540b54] <4.17-maint> | ||
| 2315 | - | ||
| 2316 | -2015-12-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2317 | - | ||
| 2318 | - * siplib/siplib.c.in: | ||
| 2319 | - Fixed the previous fix. | ||
| 2320 | - [17876e15c41d] <4.17-maint> | ||
| 2321 | - | ||
| 2322 | -2015-11-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2323 | - | ||
| 2324 | - * siplib/siplib.c.in: | ||
| 2325 | - Restrict the invocation of sub-class convertors to those that handle | ||
| 2326 | - direct sub-classes. | ||
| 2327 | - [57cbe5142d57] <4.17-maint> | ||
| 2328 | - | ||
| 2329 | -2015-10-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2330 | - | ||
| 2331 | - * siplib/siplib.c.in: | ||
| 2332 | - Invoking sub-class convertor code turns out to be quite expensive so | ||
| 2333 | - check the object map first. Check the object map again if the | ||
| 2334 | - convertor code needed to be invoked. This change is absolutely | ||
| 2335 | - fundamental to the inner workings so may have some unexpected | ||
| 2336 | - consequences. | ||
| 2337 | - [77fde6c0ee2d] <4.17-maint> | ||
| 2338 | - | ||
| 2339 | -2015-10-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2340 | - | ||
| 2341 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c, | ||
| 2342 | - siplib/siplib.c.in: | ||
| 2343 | - Refactored the handling of casts so that cast functions are only | ||
| 2344 | - generated for classes that multiply inherit somewhere in their class | ||
| 2345 | - hierarchy. | ||
| 2346 | - [14bfbaf7431a] <4.17-maint> | ||
| 2347 | - | ||
| 2348 | -2015-10-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2349 | - | ||
| 2350 | - * .hgtags: | ||
| 2351 | - Added tag 4.17 for changeset 0cbb680b4f69 | ||
| 2352 | - [36d16e74cf7f] | ||
| 2353 | - | ||
| 2354 | - * NEWS: | ||
| 2355 | - Released as v4.17. | ||
| 2356 | - [0cbb680b4f69] [4.17] | ||
| 2357 | - | ||
| 2358 | -2015-09-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2359 | - | ||
| 2360 | - * siplib/sip.h.in.in: | ||
| 2361 | - Fix extensions that use Python v3.5 slots but are being built with | ||
| 2362 | - an earlier version. | ||
| 2363 | - [9102d6c3daf0] | ||
| 2364 | - | ||
| 2365 | -2015-09-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2366 | - | ||
| 2367 | - * specs/win32-msvc2015: | ||
| 2368 | - Tweak win32-msvc2015 to suppress a warning message. | ||
| 2369 | - [74754ca3e59f] | ||
| 2370 | - | ||
| 2371 | - * configure.py.in, specs/win32-msvc2010, specs/win32-msvc2015: | ||
| 2372 | - Added win32-msvc2015 to the build system. | ||
| 2373 | - [fca4f2fcbb39] | ||
| 2374 | - | ||
| 2375 | -2015-09-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2376 | - | ||
| 2377 | - * siplib/sip.h.in.in: | ||
| 2378 | - Added a comment about adding new slot types and its effect on the | ||
| 2379 | - ABI. | ||
| 2380 | - [50af972e1652] | ||
| 2381 | - | ||
| 2382 | -2015-09-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2383 | - | ||
| 2384 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2385 | - siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 2386 | - sphinx/specification_files.rst: | ||
| 2387 | - Added support for PEP 492, ie. the __await__, __aiter__ and | ||
| 2388 | - __anext__ special methods. | ||
| 2389 | - [f5d07b919355] | ||
| 2390 | - | ||
| 2391 | - * sipgen/metasrc/parser.y, siplib/siplib.c.in: | ||
| 2392 | - Add __aenter__ and __aexit__ and non-lazy methods. | ||
| 2393 | - [979e23401d1d] | ||
| 2394 | - | ||
| 2395 | - * sipgen/metasrc/parser.y: | ||
| 2396 | - Fixed a regression in the handling of the __len__ annotation. | ||
| 2397 | - [cad3bdaecf3e] | ||
| 2398 | - | ||
| 2399 | - * sphinx/static/default.css: | ||
| 2400 | - Merged the 4.16-main branch into the trunk. | ||
| 2401 | - [b4f30681b90f] | ||
| 2402 | - | ||
| 2403 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2404 | - siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c, | ||
| 2405 | - sphinx/annotations.rst, sphinx/specification_files.rst: | ||
| 2406 | - Implemented support for PEP465 (array infix operator) ie. the | ||
| 2407 | - __matmul__ and __imatmul__ special methods and function annotations | ||
| 2408 | - of the same name. | ||
| 2409 | - [ff867feb8f90] <4.16-maint> | ||
| 2410 | - | ||
| 2411 | - * siplib/voidptr.c: | ||
| 2412 | - Tweaked an exception message to follow the style adopted in Python | ||
| 2413 | - v3.5. | ||
| 2414 | - [e98693bf17d7] <4.16-maint> | ||
| 2415 | - | ||
| 2416 | -2015-08-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2417 | - | ||
| 2418 | - * siplib/siplib.c.in: | ||
| 2419 | - Fixed the error handling of sipCallMethod() when a re-implementation | ||
| 2420 | - raises an exception. | ||
| 2421 | - [27c61f660fba] <4.16-maint> | ||
| 2422 | - | ||
| 2423 | -2015-07-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2424 | - | ||
| 2425 | - * .hgtags: | ||
| 2426 | - Added tag 4.16.9 for changeset 87de938efba2 | ||
| 2427 | - [90aaa31768c9] <4.16-maint> | ||
| 2428 | - | ||
| 2429 | - * NEWS: | ||
| 2430 | - Released as v4.16.9. | ||
| 2431 | - [87de938efba2] [4.16.9] <4.16-maint> | ||
| 2432 | - | ||
| 2433 | - * sipgen/export.c: | ||
| 2434 | - Added the "virtual" attribute to the exported XML. | ||
| 2435 | - [e37fcc2e29e2] <4.16-maint> | ||
| 2436 | - | ||
| 2437 | -2015-07-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2438 | - | ||
| 2439 | - * siplib/siplib.c.in: | ||
| 2440 | - Improved the detail of the text of the exception | ||
| 2441 | - sipBadCatcherResult() raises. | ||
| 2442 | - [4f7ad0a4e353] <4.16-maint> | ||
| 2443 | - | ||
| 2444 | - * siplib/siplib.c.in: | ||
| 2445 | - Allow for an /External/ class being referenced when the module | ||
| 2446 | - containing its implementation hasn't been imported. | ||
| 2447 | - [1574043cc948] <4.16-maint> | ||
| 2448 | - | ||
| 2449 | -2015-07-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2450 | - | ||
| 2451 | - * siplib/siplib.c.in: | ||
| 2452 | - Fix a problem caused by PyQt4 wrapping the QApplication C++ instance | ||
| 2453 | - as multiple Python objects. | ||
| 2454 | - [42a056fbf006] <4.16-maint> | ||
| 2455 | - | ||
| 2456 | -2015-06-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2457 | - | ||
| 2458 | - * siplib/siplib.c.in: | ||
| 2459 | - Remove an object from the map whenever the pointer ot the C/C++ | ||
| 2460 | - instance is cleared. | ||
| 2461 | - [8dd533ab6ce9] <4.16-maint> | ||
| 2462 | - | ||
| 2463 | -2015-06-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2464 | - | ||
| 2465 | - * sipgen/gencode.c: | ||
| 2466 | - Fixed a missing reference in the previous fix. | ||
| 2467 | - [1a2704282933] <4.16-maint> | ||
| 2468 | - | ||
| 2469 | - * sipgen/gencode.c: | ||
| 2470 | - Fixed a regression in the handling of static non-pointer object | ||
| 2471 | - variables. | ||
| 2472 | - [dafbaadea76b] <4.16-maint> | ||
| 2473 | - | ||
| 2474 | -2015-06-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2475 | - | ||
| 2476 | - * .hgtags: | ||
| 2477 | - Added tag 4.16.8 for changeset f87e232098eb | ||
| 2478 | - [95abaccb67d6] <4.16-maint> | ||
| 2479 | - | ||
| 2480 | - * NEWS: | ||
| 2481 | - Released as v4.16.8. | ||
| 2482 | - [f87e232098eb] [4.16.8] <4.16-maint> | ||
| 2483 | - | ||
| 2484 | -2015-06-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2485 | - | ||
| 2486 | - * siplib/sip.h.in.in: | ||
| 2487 | - Bump the internal API version number. | ||
| 2488 | - [6069463e8937] <4.16-maint> | ||
| 2489 | - | ||
| 2490 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, siplib/sip.h.in.in, | ||
| 2491 | - siplib/siplib.c.in: | ||
| 2492 | - Fixed the handling of non-pointer object variables so that they are | ||
| 2493 | - only wrapped once and the Python object cached. | ||
| 2494 | - [11a92ebd4840] <4.16-maint> | ||
| 2495 | - | ||
| 2496 | -2015-06-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2497 | - | ||
| 2498 | - * sphinx/using.rst: | ||
| 2499 | - Fixed a type in the docs. | ||
| 2500 | - [7d0d2cede024] <4.16-maint> | ||
| 2501 | - | ||
| 2502 | -2015-06-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2503 | - | ||
| 2504 | - * NEWS: | ||
| 2505 | - Updated the NEWS file. | ||
| 2506 | - [92c83f02758f] <4.16-maint> | ||
| 2507 | - | ||
| 2508 | -2015-05-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2509 | - | ||
| 2510 | - * sipgen/metasrc/parser.y, sphinx/specification_files.rst: | ||
| 2511 | - Added support for the current Python3 exceptions. | ||
| 2512 | - [79afcf752c2a] <4.16-maint> | ||
| 2513 | - | ||
| 2514 | -2015-05-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2515 | - | ||
| 2516 | - * siplib/siplib.c.in: | ||
| 2517 | - Fixed bugs maintaining the deleted state of wrapped instances. | ||
| 2518 | - [e5674f034e48] <4.16-maint> | ||
| 2519 | - | ||
| 2520 | -2015-03-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2521 | - | ||
| 2522 | - * sipgen/metasrc/parser.y: | ||
| 2523 | - Fixed a regression in v4.16.7 that affects methods with %MethodCode | ||
| 2524 | - and the __len__ annotation. | ||
| 2525 | - [765b6874363f] <4.16-maint> | ||
| 2526 | - | ||
| 2527 | - * .hgtags: | ||
| 2528 | - Added tag 4.16.7 for changeset 9076f70a012c | ||
| 2529 | - [dffe9ad569c9] <4.16-maint> | ||
| 2530 | - | ||
| 2531 | - * NEWS: | ||
| 2532 | - Released as v4.16.7. | ||
| 2533 | - [9076f70a012c] [4.16.7] <4.16-maint> | ||
| 2534 | - | ||
| 2535 | - * sphinx/static/classic.css, sphinx/static/default.css: | ||
| 2536 | - Fixed the stylesheet. | ||
| 2537 | - [af2e27024d33] <4.16-maint> | ||
| 2538 | - | ||
| 2539 | -2015-03-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2540 | - | ||
| 2541 | - * sipgen/gencode.c: | ||
| 2542 | - Fix the declaration of sipRes in the %VirtualCallCode support. | ||
| 2543 | - [bd92aad3cf7d] <4.16-maint> | ||
| 2544 | - | ||
| 2545 | -2015-03-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2546 | - | ||
| 2547 | - * sphinx/specification_files.rst: | ||
| 2548 | - Added %VirtualCallCode to the BNF. | ||
| 2549 | - [cf1ad8f7be68] <4.16-maint> | ||
| 2550 | - | ||
| 2551 | - * sphinx/directives.rst: | ||
| 2552 | - Documented %VirtualCallCode. | ||
| 2553 | - [752beb1cd641] <4.16-maint> | ||
| 2554 | - | ||
| 2555 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 2556 | - sipgen/sip.h.in: | ||
| 2557 | - Renamed %InvokeCode to %VirtualCallCode and only use it in a | ||
| 2558 | - generated virtual reimplementation. | ||
| 2559 | - [82c8303a8041] <4.16-maint> | ||
| 2560 | - | ||
| 2561 | - * sipgen/gencode.c, sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, | ||
| 2562 | - sipgen/sip.h.in: | ||
| 2563 | - Implemented the %InvokeCode directive. | ||
| 2564 | - [d85f3584b06f] <4.16-maint> | ||
| 2565 | - | ||
| 2566 | - * siplib/siplib.c.in: | ||
| 2567 | - Fixed the handling of keyword argument when keywords can be used for | ||
| 2568 | - all arguments. | ||
| 2569 | - [2ae037bbfa23] <4.16-maint> | ||
| 2570 | - | ||
| 2571 | - * sphinx/directives.rst: | ||
| 2572 | - Fixed a documentation typo. | ||
| 2573 | - [fb4c980c92cc] <4.16-maint> | ||
| 2574 | - | ||
| 2575 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 2576 | - Backed out changeset 9e11298be101 A more correct solution is | ||
| 2577 | - required. | ||
| 2578 | - [e212465fed26] <4.16-maint> | ||
| 2579 | - | ||
| 2580 | -2015-03-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2581 | - | ||
| 2582 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 2583 | - Reverted to the pre-v4.15 behavour when generating the scope of a | ||
| 2584 | - call to a virtual implementation where the scope may be ambiguous. | ||
| 2585 | - This may not be the right call, but at least the code compiles. | ||
| 2586 | - [9e11298be101] <4.16-maint> | ||
| 2587 | - | ||
| 2588 | -2015-03-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2589 | - | ||
| 2590 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 2591 | - Fixed a bug where the original typedef of an argument of a mapped | ||
| 2592 | - template type was being corrupted. | ||
| 2593 | - [f652446e2462] <4.16-maint> | ||
| 2594 | - | ||
| 2595 | - * sphinx/conf.py.in: | ||
| 2596 | - Updated for sphinx v1.3. | ||
| 2597 | - [569a9695bc2f] <4.16-maint> | ||
| 2598 | - | ||
| 2599 | - * sipgen/sip.h.in: | ||
| 2600 | - Fixed a regression in the handling of module flags. | ||
| 2601 | - [3f8c05ac8e47] <4.16-maint> | ||
| 2602 | - | ||
| 2603 | -2015-02-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2604 | - | ||
| 2605 | - * .hgtags: | ||
| 2606 | - Added tag 4.16.6 for changeset 1c5f5c8c7416 | ||
| 2607 | - [6c73a1f41add] <4.16-maint> | ||
| 2608 | - | ||
| 2609 | - * NEWS: | ||
| 2610 | - Released v4.16.6. | ||
| 2611 | - [1c5f5c8c7416] [4.16.6] <4.16-maint> | ||
| 2612 | - | ||
| 2613 | - * NEWS: | ||
| 2614 | - Updated the NEWS file. | ||
| 2615 | - [bf261aa4b322] <4.16-maint> | ||
| 2616 | - | ||
| 2617 | -2015-02-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2618 | - | ||
| 2619 | - * sipgen/gencode.c: | ||
| 2620 | - Added support for module-level PyObjects. | ||
| 2621 | - [136913548818] <4.16-maint> | ||
| 2622 | - | ||
| 2623 | -2015-02-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2624 | - | ||
| 2625 | - * configure.py.in: | ||
| 2626 | - Installing into a virtual env should now work. | ||
| 2627 | - [5e133f99d74e] <4.16-maint> | ||
| 2628 | - | ||
| 2629 | - * siplib/siplib.c.in: | ||
| 2630 | - Fixed the handling of an empty dict of keyword arguments. | ||
| 2631 | - [5f5542824235] <4.16-maint> | ||
| 2632 | - | ||
| 2633 | -2015-02-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2634 | - | ||
| 2635 | - * sipgen/main.c, sphinx/command_line.rst: | ||
| 2636 | - The -T command line option is now ignored and deprecated. Timestamps | ||
| 2637 | - in generated files are always disabled. | ||
| 2638 | - [9b1a195afe04] <4.16-maint> | ||
| 2639 | - | ||
| 2640 | - * sipgen/main.c, sphinx/command_line.rst: | ||
| 2641 | - Added support for the '@file' format for passing additional command | ||
| 2642 | - line options in a file. | ||
| 2643 | - [6c270132db87] <4.16-maint> | ||
| 2644 | - | ||
| 2645 | -2015-02-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2646 | - | ||
| 2647 | - * sipgen/main.c, sphinx/command_line.rst: | ||
| 2648 | - Deprecated the -z option to the code generator. | ||
| 2649 | - [b1dff38b9766] <4.16-maint> | ||
| 2650 | - | ||
| 2651 | -2015-02-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2652 | - | ||
| 2653 | - * siplib/siplib.c.in: | ||
| 2654 | - Fixed a couple of compiler warnings. | ||
| 2655 | - [d653de687fd4] <4.16-maint> | ||
| 2656 | - | ||
| 2657 | -2015-02-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2658 | - | ||
| 2659 | - * Merged the current 4.16-maint branch into the trunk. | ||
| 2660 | - [f207b8886557] | ||
| 2661 | - | ||
| 2662 | -2015-01-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2663 | - | ||
| 2664 | - * siplib/siplib.c.in: | ||
| 2665 | - Fixed the lookup of slots. | ||
| 2666 | - [56c254273cd8] <4.16-maint> | ||
| 2667 | - | ||
| 2668 | -2015-01-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2669 | - | ||
| 2670 | - * sipgen/metasrc/parser.y: | ||
| 2671 | - Fixed an invalid deprecation warning. | ||
| 2672 | - [3c5425fa3c80] <4.16-maint> | ||
| 2673 | - | ||
| 2674 | -2015-01-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2675 | - | ||
| 2676 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2677 | - sphinx/annotations.rst: | ||
| 2678 | - Added the /FileExtension/ class annotation. | ||
| 2679 | - [51f7769fe32f] <4.16-maint> | ||
| 2680 | - | ||
| 2681 | - * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c, | ||
| 2682 | - sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c, | ||
| 2683 | - sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2684 | - sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, | ||
| 2685 | - siplib/array.c, siplib/array.h, siplib/bool.cpp, | ||
| 2686 | - siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 2687 | - siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, | ||
| 2688 | - siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, | ||
| 2689 | - siputils.py, sphinx/conf.py.in, sphinx/directives.rst: | ||
| 2690 | - Updated the copyright notices. | ||
| 2691 | - [ccd0bdd9b21c] <4.16-maint> | ||
| 2692 | - | ||
| 2693 | - * siputils.py, sphinx/build_system.rst, sphinx/c_api.rst, | ||
| 2694 | - sphinx/python_api.rst: | ||
| 2695 | - Updated the docs in preparation for snapshots being called previews. | ||
| 2696 | - [c42e02f71e27] <4.16-maint> | ||
| 2697 | - | ||
| 2698 | -2014-12-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2699 | - | ||
| 2700 | - * sipgen/gencode.c: | ||
| 2701 | - Fixed a code generation bug when a C/C++ argument was a pointer to a | ||
| 2702 | - struct/class and the Python argument was a void*. | ||
| 2703 | - [51b0b1f31cea] <4.16-maint> | ||
| 2704 | - | ||
| 2705 | -2014-12-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2706 | - | ||
| 2707 | - * configure.py.in, siputils.py: | ||
| 2708 | - Fixed the --target-py-version flag to configure.py. | ||
| 2709 | - [0e9e078d2d18] <4.16-maint> | ||
| 2710 | - | ||
| 2711 | -2014-12-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2712 | - | ||
| 2713 | - * .hgtags: | ||
| 2714 | - Added tag 4.16.5 for changeset 9c27ed5e0d77 | ||
| 2715 | - [6aa131ac48e8] <4.16-maint> | ||
| 2716 | - | ||
| 2717 | - * NEWS: | ||
| 2718 | - Released as v4.16.5. | ||
| 2719 | - [9c27ed5e0d77] [4.16.5] <4.16-maint> | ||
| 2720 | - | ||
| 2721 | -2014-12-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2722 | - | ||
| 2723 | - * sipgen/gencode.c: | ||
| 2724 | - Fixed SIP_SLOT_CON and SIP_SLOT_DIS so that they generate const | ||
| 2725 | - char*. | ||
| 2726 | - [7f4c922a779f] <4.16-maint> | ||
| 2727 | - | ||
| 2728 | -2014-12-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2729 | - | ||
| 2730 | - * siplib/array.c, siplib/voidptr.c, sphinx/c_api.rst, | ||
| 2731 | - sphinx/python_api.rst: | ||
| 2732 | - Added sip.voidptr.asarray(). | ||
| 2733 | - [d3b5a974ac69] <4.16-maint> | ||
| 2734 | - | ||
| 2735 | -2014-12-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2736 | - | ||
| 2737 | - * siplib/voidptr.c: | ||
| 2738 | - Updated a deprecated definition of method arguments. | ||
| 2739 | - [529b8cd2ab89] <4.16-maint> | ||
| 2740 | - | ||
| 2741 | -2014-11-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2742 | - | ||
| 2743 | - * siputils.py: | ||
| 2744 | - Fixed a regression when adding the VPATH support for moc. | ||
| 2745 | - [c2c285a80412] <4.16-maint> | ||
| 2746 | - | ||
| 2747 | -2014-11-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2748 | - | ||
| 2749 | - * build.py: | ||
| 2750 | - A source package now includes a full ChangeLog. | ||
| 2751 | - [c005a6d2e53e] <4.16-maint> | ||
| 2752 | - | ||
| 2753 | -2014-11-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2754 | - | ||
| 2755 | - * siputils.py: | ||
| 2756 | - Build system fix so that generated Makefiles support VPATH with moc. | ||
| 2757 | - [3f9301ccb08a] <4.16-maint> | ||
| 2758 | - | ||
| 2759 | -2014-11-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2760 | - | ||
| 2761 | - * configure.py.in, siputils.py, sphinx/build_system.rst: | ||
| 2762 | - Fixed bugs with out-of-tree builds. | ||
| 2763 | - [4579c80da1be] <4.16-maint> | ||
| 2764 | - | ||
| 2765 | - * sphinx/build_system.rst, sphinx/distutils.rst: | ||
| 2766 | - Updated the docs regarding the build system and SIP v5. | ||
| 2767 | - [2828a3bb25af] <4.16-maint> | ||
| 2768 | - | ||
| 2769 | - * sphinx/c_api.rst: | ||
| 2770 | - Updated the docs for sip.SIP_VERSION_STR. | ||
| 2771 | - [04e7630e6a41] <4.16-maint> | ||
| 2772 | - | ||
| 2773 | -2014-11-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2774 | - | ||
| 2775 | - * build.py: | ||
| 2776 | - Removed the reference to MacHg in the internal build script. | ||
| 2777 | - [b1668849c472] <4.16-maint> | ||
| 2778 | - | ||
| 2779 | -2014-10-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2780 | - | ||
| 2781 | - * .hgtags: | ||
| 2782 | - Added tag 4.16.4 for changeset c5d0da367a1e | ||
| 2783 | - [cb045f5e074a] <4.16-maint> | ||
| 2784 | - | ||
| 2785 | - * NEWS: | ||
| 2786 | - Released as v4.16.4. | ||
| 2787 | - [c5d0da367a1e] [4.16.4] <4.16-maint> | ||
| 2788 | - | ||
| 2789 | -2014-10-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2790 | - | ||
| 2791 | - * sipgen/gencode.c: | ||
| 2792 | - Fixed a code generation bug related to encoded C string arguments to | ||
| 2793 | - virtuals. | ||
| 2794 | - [f230cfcebc36] <4.16-maint> | ||
| 2795 | - | ||
| 2796 | -2014-10-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2797 | - | ||
| 2798 | - * siplib/descriptors.c: | ||
| 2799 | - Minor fix for Python v2.5 and earlier. | ||
| 2800 | - [3b7f6957ae4b] <4.16-maint> | ||
| 2801 | - | ||
| 2802 | -2014-10-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2803 | - | ||
| 2804 | - * siplib/siplib.c.in: | ||
| 2805 | - Reimplemented the __qualname__ support for enums so that it is | ||
| 2806 | - always non_NULL (because Python accesses the value directly | ||
| 2807 | - internally and doesn't go through the attribute interface). | ||
| 2808 | - [c2cfa151229a] <4.16-maint> | ||
| 2809 | - | ||
| 2810 | -2014-10-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2811 | - | ||
| 2812 | - * siplib/sip.h.in.in, sphinx/c_api.rst: | ||
| 2813 | - Removed SIP_REACQUIRE_GIL as we no longer need it. | ||
| 2814 | - [7e026c2613ec] <4.16-maint> | ||
| 2815 | - | ||
| 2816 | - * sipgen/transform.c: | ||
| 2817 | - Fixed a recent regression in the de-duplication of virtual catchers. | ||
| 2818 | - [65abadff114d] <4.16-maint> | ||
| 2819 | - | ||
| 2820 | -2014-10-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2821 | - | ||
| 2822 | - * siplib/sip.h.in.in, sphinx/c_api.rst: | ||
| 2823 | - Added SIP_REACQUIRE_GIL. | ||
| 2824 | - [9ff042abc188] <4.16-maint> | ||
| 2825 | - | ||
| 2826 | -2014-10-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2827 | - | ||
| 2828 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2829 | - sipgen/transform.c, sphinx/annotations.rst: | ||
| 2830 | - Added the /AbortOnException/ function annotation. | ||
| 2831 | - [835f4d6bcb99] <4.16-maint> | ||
| 2832 | - | ||
| 2833 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/transform.c, | ||
| 2834 | - sphinx/annotations.rst: | ||
| 2835 | - Added the /DisallowNone/ function annotation. | ||
| 2836 | - [8b2f4c02e106] <4.16-maint> | ||
| 2837 | - | ||
| 2838 | - * sipgen/export.c, sipgen/gencode.c, sipgen/metasrc/parser.y, | ||
| 2839 | - sipgen/sip.h.in, sphinx/annotations.rst: | ||
| 2840 | - Implemented the /DisallowNone/ argument annotation. | ||
| 2841 | - [d3a7fd6b1344] <4.16-maint> | ||
| 2842 | - | ||
| 2843 | - * sipgen/metasrc/parser.y, sipgen/transform.c, sphinx/annotations.rst, | ||
| 2844 | - sphinx/c_api.rst: | ||
| 2845 | - Added the AllowNone function annotation. | ||
| 2846 | - [9d52162606b5] <4.16-maint> | ||
| 2847 | - | ||
| 2848 | -2014-09-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2849 | - | ||
| 2850 | - * sipgen/transform.c: | ||
| 2851 | - Virtual handlers with handwritten code can no longer be considered | ||
| 2852 | - to be the same. | ||
| 2853 | - [a4c712b72828] <4.16-maint> | ||
| 2854 | - | ||
| 2855 | -2014-09-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2856 | - | ||
| 2857 | - * .hgtags: | ||
| 2858 | - Added tag 4.16.3 for changeset 8ead57151bd1 | ||
| 2859 | - [de0c3c076ab3] <4.16-maint> | ||
| 2860 | - | ||
| 2861 | - * NEWS: | ||
| 2862 | - Released as v4.16.3. | ||
| 2863 | - [8ead57151bd1] [4.16.3] <4.16-maint> | ||
| 2864 | - | ||
| 2865 | -2014-09-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2866 | - | ||
| 2867 | - * NEWS: | ||
| 2868 | - Updated the NEWS file. | ||
| 2869 | - [b5de96615389] <4.16-maint> | ||
| 2870 | - | ||
| 2871 | -2014-09-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2872 | - | ||
| 2873 | - * siplib/array.c, siplib/bool.cpp, siplib/siplib.c.in: | ||
| 2874 | - Eliminated all compiler warnings when building on Windows with | ||
| 2875 | - qmake. | ||
| 2876 | - [1a321ad68223] <4.16-maint> | ||
| 2877 | - | ||
| 2878 | -2014-09-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2879 | - | ||
| 2880 | - * siplib/siplib.c.in: | ||
| 2881 | - Enums now support PEP 3155 fro Python v3.3 and later. | ||
| 2882 | - [a3f8a9b56659] <4.16-maint> | ||
| 2883 | - | ||
| 2884 | -2014-07-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2885 | - | ||
| 2886 | - * build.py, configure.py.in: | ||
| 2887 | - Added fixes for QTBUG-39300. | ||
| 2888 | - [53f490fe8f52] <4.16-maint> | ||
| 2889 | - | ||
| 2890 | -2014-07-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2891 | - | ||
| 2892 | - * .hgtags: | ||
| 2893 | - Added tag 4.16.2 for changeset 4eb546b2c208 | ||
| 2894 | - [21412c346e75] <4.16-maint> | ||
| 2895 | - | ||
| 2896 | - * NEWS: | ||
| 2897 | - Released as v4.16.2. | ||
| 2898 | - [4eb546b2c208] [4.16.2] <4.16-maint> | ||
| 2899 | - | ||
| 2900 | -2014-06-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2901 | - | ||
| 2902 | - * sipgen/gencode.c: | ||
| 2903 | - Fixed a regression that introduced some "modern" C code. | ||
| 2904 | - [449e2866018a] <4.16-maint> | ||
| 2905 | - | ||
| 2906 | -2014-06-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2907 | - | ||
| 2908 | - * NEWS, sipgen/metasrc/parser.y, sphinx/directives.rst: | ||
| 2909 | - Deprecated the %ConsolidatedModule directive as it won't be | ||
| 2910 | - supported in SIP v5. | ||
| 2911 | - [e4dc9d633742] <4.16-maint> | ||
| 2912 | - | ||
| 2913 | -2014-06-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2914 | - | ||
| 2915 | - * sipgen/gencode.c: | ||
| 2916 | - Fixed a bug with /Out/ class pointer arguments in virtual methods. | ||
| 2917 | - [8abafd34bfab] <4.16-maint> | ||
| 2918 | - | ||
| 2919 | - * sipgen/gencode.c: | ||
| 2920 | - Work around what looks like a Python2 bug in the handling of | ||
| 2921 | - composite modules. | ||
| 2922 | - [f113aea18630] <4.16-maint> | ||
| 2923 | - | ||
| 2924 | -2014-06-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2925 | - | ||
| 2926 | - * .hgtags: | ||
| 2927 | - Added tag 4.16.1 for changeset efd5e09a4024 | ||
| 2928 | - [787e2ce426f7] <4.16-maint> | ||
| 2929 | - | ||
| 2930 | - * NEWS: | ||
| 2931 | - Released as v4.16.1. | ||
| 2932 | - [efd5e09a4024] [4.16.1] <4.16-maint> | ||
| 2933 | - | ||
| 2934 | -2014-06-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2935 | - | ||
| 2936 | - * configure.py.in: | ||
| 2937 | - Fixes for Python v2.6. | ||
| 2938 | - [3974dcb54776] <4.16-maint> | ||
| 2939 | - | ||
| 2940 | -2014-06-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2941 | - | ||
| 2942 | - * sipgen/gencode.c: | ||
| 2943 | - Fixed a regression in the creating of the build file when generating | ||
| 2944 | - individual source files. | ||
| 2945 | - [d9229cce7220] <4.16-maint> | ||
| 2946 | - | ||
| 2947 | -2014-05-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2948 | - | ||
| 2949 | - * .hgtags: | ||
| 2950 | - Added tag 4.16 for changeset d3a907d2acd1 | ||
| 2951 | - [2a310fa9719a] | ||
| 2952 | - | ||
| 2953 | - * NEWS: | ||
| 2954 | - Released as v4.16. | ||
| 2955 | - [d3a907d2acd1] [4.16] | ||
| 2956 | - | ||
| 2957 | -2014-05-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2958 | - | ||
| 2959 | - * siplib/descriptors.c: | ||
| 2960 | - Fixed a regression introduced when getting rid of warning messages. | ||
| 2961 | - [9472e2f08313] | ||
| 2962 | - | ||
| 2963 | -2014-05-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2964 | - | ||
| 2965 | - * configure.py.in: | ||
| 2966 | - Fixed a regression in the handling of the --platform configure.py | ||
| 2967 | - option. | ||
| 2968 | - [1cc4bd967882] | ||
| 2969 | - | ||
| 2970 | -2014-05-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2971 | - | ||
| 2972 | - * siplib/siplib.c.in: | ||
| 2973 | - Eliminated a couple of (benign) warning messages. | ||
| 2974 | - [f6acb8ed7b65] | ||
| 2975 | - | ||
| 2976 | -2014-05-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2977 | - | ||
| 2978 | - * NEWS: | ||
| 2979 | - Updated the NEWS file. | ||
| 2980 | - [d3c64f5117e0] | ||
| 2981 | - | ||
| 2982 | - * sipgen/main.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 2983 | - sphinx/command_line.rst, sphinx/directives.rst, | ||
| 2984 | - sphinx/incompatibilities.rst: | ||
| 2985 | - Changed the handling of timelines so that the latest version is | ||
| 2986 | - enabled if no known version is explicitly enabled. Added the -B | ||
| 2987 | - option to sip to allow timeline backstops to be defined. | ||
| 2988 | - [8a3fb94329aa] | ||
| 2989 | - | ||
| 2990 | -2014-05-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2991 | - | ||
| 2992 | - * configure.py.in: | ||
| 2993 | - Fixed a bug in the handling of configuration files. | ||
| 2994 | - [61da788f455f] | ||
| 2995 | - | ||
| 2996 | -2014-05-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 2997 | - | ||
| 2998 | - * sipgen/gencode.c: | ||
| 2999 | - Don't generate an interface file if it will be empty. | ||
| 3000 | - [3f7d0afde4ce] | ||
| 3001 | - | ||
| 3002 | - * siplib/siplib.c.in: | ||
| 3003 | - Ignore overflows when converting Python ints to C/C++. | ||
| 3004 | - [8065fb1cb418] | ||
| 3005 | - | ||
| 3006 | -2014-05-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3007 | - | ||
| 3008 | - * NEWS, sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 3009 | - sphinx/annotations.rst: | ||
| 3010 | - Added the /NoSetter/ variable annotation. | ||
| 3011 | - [422cc3b4ee5b] | ||
| 3012 | - | ||
| 3013 | - * sipgen/gencode.c: | ||
| 3014 | - Fixed a code generation bug for variables with multi-const types. | ||
| 3015 | - [dd6840986c03] | ||
| 3016 | - | ||
| 3017 | -2014-05-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3018 | - | ||
| 3019 | - * siplib/array.c, siplib/descriptors.c, siplib/siplib.c.in, | ||
| 3020 | - siplib/voidptr.c: | ||
| 3021 | - Fixed building against Python v2.5 and earlier. | ||
| 3022 | - [be46b0f3b785] | ||
| 3023 | - | ||
| 3024 | - * NEWS, configure.py.in, sphinx/installation.rst: | ||
| 3025 | - Added the --no-tools option to configure.py. | ||
| 3026 | - [fcc0fc5d24c4] | ||
| 3027 | - | ||
| 3028 | -2014-05-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3029 | - | ||
| 3030 | - * sphinx/installation.rst: | ||
| 3031 | - Some documentation fixes. | ||
| 3032 | - [210151d0ba6a] | ||
| 3033 | - | ||
| 3034 | - * build.py, configurations/rpi_py3.cfg, sphinx/installation.rst: | ||
| 3035 | - Removed the configurations directory. | ||
| 3036 | - [4b482124587b] | ||
| 3037 | - | ||
| 3038 | - * siplib/apiversions.c, siplib/array.c, siplib/descriptors.c, | ||
| 3039 | - siplib/siplib.c.in, siplib/voidptr.c: | ||
| 3040 | - Eliminated most warning messages. Fixed a memory leak in the | ||
| 3041 | - handling of sip.array. | ||
| 3042 | - [63626dea7508] | ||
| 3043 | - | ||
| 3044 | - * configure.py.in, sphinx/installation.rst: | ||
| 3045 | - Removed the unneeded support for continuation lines in configuration | ||
| 3046 | - files. | ||
| 3047 | - [95f40f9a8967] | ||
| 3048 | - | ||
| 3049 | - * NEWS, build.py, configurations/rpi_py3.cfg, configure.py.in, | ||
| 3050 | - siputils.py, sphinx/installation.rst: | ||
| 3051 | - Removed the --static-root option. Added the --configuration, | ||
| 3052 | - --sysroot and --target-py-version options. Added the Raspberry Pi | ||
| 3053 | - configuration file. | ||
| 3054 | - [e57308c0ef92] | ||
| 3055 | - | ||
| 3056 | -2014-05-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3057 | - | ||
| 3058 | - * NEWS, build.py, configure.py.in, sphinx/installation.rst: | ||
| 3059 | - Added the --use-qmake option to configure.py so that it can be | ||
| 3060 | - cross-compiled. | ||
| 3061 | - [163331dc90b0] | ||
| 3062 | - | ||
| 3063 | -2014-05-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3064 | - | ||
| 3065 | - * build.py, custom/custom.c, custom/customw.c, custom/mkcustom.py, | ||
| 3066 | - sphinx/build_system.rst, sphinx/builtin.rst, sphinx/index.rst: | ||
| 3067 | - Removed the (way out of date and superceded by pyqtdeploy) custom | ||
| 3068 | - directory. | ||
| 3069 | - [4e4a1cbe2f7e] | ||
| 3070 | - | ||
| 3071 | - * NEWS, configure.py.in, sphinx/installation.rst: | ||
| 3072 | - Added the --static-root option to configure.py. | ||
| 3073 | - [c90befbc77d2] | ||
| 3074 | - | ||
| 3075 | -2014-04-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3076 | - | ||
| 3077 | - * siputils.py: | ||
| 3078 | - Handle in-line comments in spec files. | ||
| 3079 | - [044852da62d4] | ||
| 3080 | - | ||
| 3081 | -2014-04-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3082 | - | ||
| 3083 | - * siplib/voidptr.c: | ||
| 3084 | - Fixed the previous fix. (This is C not C++.) | ||
| 3085 | - [a67e996e00d3] | ||
| 3086 | - | ||
| 3087 | -2014-04-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3088 | - | ||
| 3089 | - * NEWS, siplib/voidptr.c: | ||
| 3090 | - Implemented nb_bool for sip.voidptr. | ||
| 3091 | - [7ca5aa6bde10] | ||
| 3092 | - | ||
| 3093 | -2014-04-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3094 | - | ||
| 3095 | - * NEWS, siplib/qtlib.c, siplib/sipint.h: | ||
| 3096 | - Reversed the sense of the argument to check for signal receivers. | ||
| 3097 | - [e14829596147] | ||
| 3098 | - | ||
| 3099 | - * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in, | ||
| 3100 | - siplib/sipint.h, siplib/siplib.c.in: | ||
| 3101 | - Added sipInvokeSlotEx() as support for the upcoming 'check_receiver' | ||
| 3102 | - flag in PyQt's connect(). | ||
| 3103 | - [d7ef32db3967] | ||
| 3104 | - | ||
| 3105 | -2014-04-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3106 | - | ||
| 3107 | - * sipgen/lexer.l, sipgen/parser.y: | ||
| 3108 | - Merged the v4.15 maintenance branch into the trunk. | ||
| 3109 | - [8e55c9f2ba87] | ||
| 3110 | - | ||
| 3111 | -2014-04-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3112 | - | ||
| 3113 | - * sphinx/conf.py.in: | ||
| 3114 | - Fixed the missing logo thumbnail. | ||
| 3115 | - [f53a9094e52e] <4.15-maint> | ||
| 3116 | - | ||
| 3117 | -2014-04-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3118 | - | ||
| 3119 | - * siplib/siplib.c.in, sphinx/build_system.rst, sphinx/using.rst: | ||
| 3120 | - Updated the docs so that pyqtconfig is only mentioned in the context | ||
| 3121 | - of PyQt4. Fixed some typos. | ||
| 3122 | - [efa359fde2a4] <4.15-maint> | ||
| 3123 | - | ||
| 3124 | -2014-03-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3125 | - | ||
| 3126 | - * sipgen/gencode.c: | ||
| 3127 | - Fixed the generation of Qt signal signatures so that they are | ||
| 3128 | - correct for Qt5. | ||
| 3129 | - [3f9633204687] <4.15-maint> | ||
| 3130 | - | ||
| 3131 | -2014-03-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3132 | - | ||
| 3133 | - * sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 3134 | - Fixed the handling of platforms and features that are disabled by | ||
| 3135 | - other platforms or features. | ||
| 3136 | - [0c1b13e45887] <4.15-maint> | ||
| 3137 | - | ||
| 3138 | -2014-03-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3139 | - | ||
| 3140 | - * sipgen/gencode.c: | ||
| 3141 | - Fixed the handling of enums for C++11. | ||
| 3142 | - [85e544458789] <4.15-maint> | ||
| 3143 | - | ||
| 3144 | -2014-03-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3145 | - | ||
| 3146 | - * .hgtags: | ||
| 3147 | - Added tag 4.15.5 for changeset 13906834d910 | ||
| 3148 | - [411bbc879ae6] <4.15-maint> | ||
| 3149 | - | ||
| 3150 | - * NEWS: | ||
| 3151 | - Released as v4.15.5. | ||
| 3152 | - [13906834d910] [4.15.5] <4.15-maint> | ||
| 3153 | - | ||
| 3154 | -2014-03-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3155 | - | ||
| 3156 | - * siplib/siplib.c.in: | ||
| 3157 | - Make sure an object doesn't already have a parent when adding it in | ||
| 3158 | - __init__() (ie. avoid an infinite loop if __init__() is called twice | ||
| 3159 | - for an object). | ||
| 3160 | - [05c32deeaeed] <4.15-maint> | ||
| 3161 | - | ||
| 3162 | -2014-03-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3163 | - | ||
| 3164 | - * NEWS: | ||
| 3165 | - Updated the NEWS file. | ||
| 3166 | - [8d7c37ddc55d] <4.15-maint> | ||
| 3167 | - | ||
| 3168 | -2014-02-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3169 | - | ||
| 3170 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 3171 | - Added the PyQt signal hack #3. All versions of signals with optional | ||
| 3172 | - arguments are now generated for PyQt4 when built against Qt5. | ||
| 3173 | - [22c03a345d4e] <4.15-maint> | ||
| 3174 | - | ||
| 3175 | -2014-02-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3176 | - | ||
| 3177 | - * siputils.py: | ||
| 3178 | - Fixed the creation of wrapper scripts for Python v3.4 on OS/X. | ||
| 3179 | - [93e30c84cbf9] <4.15-maint> | ||
| 3180 | - | ||
| 3181 | -2014-02-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3182 | - | ||
| 3183 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 3184 | - siplib/sip.h.in.in: | ||
| 3185 | - Support for the PyQt4 signal hacks when building against Qt5. | ||
| 3186 | - [8bff7edb3c80] <4.15-maint> | ||
| 3187 | - | ||
| 3188 | -2014-02-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3189 | - | ||
| 3190 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 3191 | - Implemented the PyQt5 signal emitters. | ||
| 3192 | - [4fc63f9adb44] <4.15-maint> | ||
| 3193 | - | ||
| 3194 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 3195 | - siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3196 | - Bumped the internal API to v11.0. The PyQt4 and PyQt5 specific data | ||
| 3197 | - structures are now completely separate in preparation for the signal | ||
| 3198 | - changes needed by PyQt5. Renamed the PyQt4Flags and | ||
| 3199 | - PyQt4NoQMetaObject annotations so that they are not PyQt4 specific. | ||
| 3200 | - [b96a5e69adb6] <4.15-maint> | ||
| 3201 | - | ||
| 3202 | -2014-02-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3203 | - | ||
| 3204 | - * sipgen/gencode.c: | ||
| 3205 | - Fixed a name clash for a type in a module that has the same name as | ||
| 3206 | - the module when building against Python v2. | ||
| 3207 | - [d45411f2a001] <4.15-maint> | ||
| 3208 | - | ||
| 3209 | -2014-02-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3210 | - | ||
| 3211 | - * siputils.py: | ||
| 3212 | - Relax a test in the build system for PyQt v4.10.3 and earlier so | ||
| 3213 | - that we don't have to synch releases. | ||
| 3214 | - [e6e10c9f08b5] <4.15-maint> | ||
| 3215 | - | ||
| 3216 | -2014-02-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3217 | - | ||
| 3218 | - * siplib/siplib.c.in: | ||
| 3219 | - sip.wrapinstance() will now handle addresses >32 bits on Windows64. | ||
| 3220 | - [5a95f257ccca] <4.15-maint> | ||
| 3221 | - | ||
| 3222 | -2014-02-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3223 | - | ||
| 3224 | - * sipgen/gencode.c, sphinx/annotations.rst: | ||
| 3225 | - Fixed the /KeepReference/ function annotation when applied to static | ||
| 3226 | - functions. | ||
| 3227 | - [2737c3074f4d] <4.15-maint> | ||
| 3228 | - | ||
| 3229 | - * siputils.py: | ||
| 3230 | - Removed the requirement that Python must be built as a framework on | ||
| 3231 | - OS/X. | ||
| 3232 | - [fb6dbd80297b] <4.15-maint> | ||
| 3233 | - | ||
| 3234 | -2014-01-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3235 | - | ||
| 3236 | - * sipgen/gencode.c, sipgen/metasrc/parser.y, sipgen/sip.h.in: | ||
| 3237 | - Removed the unnecessary (and broken) support for __unicode__(). | ||
| 3238 | - [0b19f77489ce] <4.15-maint> | ||
| 3239 | - | ||
| 3240 | -2014-01-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3241 | - | ||
| 3242 | - * NEWS, siputils.py, sphinx/build_system.rst: | ||
| 3243 | - The use_arch argument of sipconfig.create_wrapper() will now accept | ||
| 3244 | - a space separated set of architectures. | ||
| 3245 | - [6fe353128007] <4.15-maint> | ||
| 3246 | - | ||
| 3247 | -2014-01-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3248 | - | ||
| 3249 | - * configure.py.in: | ||
| 3250 | - Fixed a bug building on OSX when passing a value of LIBDIR to | ||
| 3251 | - configure.py on the command line. | ||
| 3252 | - [577bff05ca6d] <4.15-maint> | ||
| 3253 | - | ||
| 3254 | -2014-01-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3255 | - | ||
| 3256 | - * .hgtags: | ||
| 3257 | - Added tag 4.15.4 for changeset 4d629a0d7510 | ||
| 3258 | - [79a5b5e82ca3] <4.15-maint> | ||
| 3259 | - | ||
| 3260 | - * NEWS: | ||
| 3261 | - Released as v4.15.4. | ||
| 3262 | - [4d629a0d7510] [4.15.4] <4.15-maint> | ||
| 3263 | - | ||
| 3264 | -2014-01-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3265 | - | ||
| 3266 | - * LICENSE, Roadmap.rst, build.py, configure.py.in, sipgen/export.c, | ||
| 3267 | - sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/main.c, | ||
| 3268 | - sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/sip.h.in, | ||
| 3269 | - sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, | ||
| 3270 | - siplib/array.c, siplib/array.h, siplib/bool.cpp, | ||
| 3271 | - siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 3272 | - siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, | ||
| 3273 | - siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, | ||
| 3274 | - siputils.py, sphinx/conf.py.in, sphinx/directives.rst: | ||
| 3275 | - Updated the copyright notices. | ||
| 3276 | - [b4a30e5b9970] <4.15-maint> | ||
| 3277 | - | ||
| 3278 | -2013-12-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3279 | - | ||
| 3280 | - * siplib/siplib.c.in: | ||
| 3281 | - Allow the pointers used to store the parsed results from Python | ||
| 3282 | - reimplementations to be NULL. | ||
| 3283 | - [7b83d16f7d28] <4.15-maint> | ||
| 3284 | - | ||
| 3285 | - * build.py, sipgen/lexer.l, sipgen/metasrc/README, | ||
| 3286 | - sipgen/metasrc/lexer.l, sipgen/metasrc/parser.y, sipgen/parser.y: | ||
| 3287 | - Moved the lexer and parser meta-source files to a separate directory | ||
| 3288 | - to avoid problems with make accidentaly regenerating them. | ||
| 3289 | - [c8d48c22ebf7] <4.15-maint> | ||
| 3290 | - | ||
| 3291 | - * build.py: | ||
| 3292 | - Remove the __pycache__ directory when cleaning. | ||
| 3293 | - [a0682feb1e94] <4.15-maint> | ||
| 3294 | - | ||
| 3295 | -2013-12-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3296 | - | ||
| 3297 | - * NEWS, siplib/array.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 3298 | - sphinx/c_api.rst: | ||
| 3299 | - Added SIP_SSIZE_T_FORMAT to the C API. | ||
| 3300 | - [e74243fcc265] <4.15-maint> | ||
| 3301 | - | ||
| 3302 | -2013-12-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3303 | - | ||
| 3304 | - * sipgen/gencode.c, sipgen/parser.y: | ||
| 3305 | - Fixed the parsing of C++ types involving multiple const and | ||
| 3306 | - pointers. | ||
| 3307 | - [7a74623b6967] <4.15-maint> | ||
| 3308 | - | ||
| 3309 | -2013-10-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3310 | - | ||
| 3311 | - * siplib/array.c, siplib/objmap.c, siplib/sipint.h, | ||
| 3312 | - siplib/siplib.c.in, siplib/voidptr.c: | ||
| 3313 | - Fixed all the compiler warning messages when building the sip | ||
| 3314 | - module. | ||
| 3315 | - [5e5fdf4cc35c] <4.15-maint> | ||
| 3316 | - | ||
| 3317 | -2013-10-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3318 | - | ||
| 3319 | - * .hgtags: | ||
| 3320 | - Added tag 4.15.3 for changeset a751e48db99a | ||
| 3321 | - [dffbff1c0664] <4.15-maint> | ||
| 3322 | - | ||
| 3323 | - * NEWS: | ||
| 3324 | - Released as v4.15.3. | ||
| 3325 | - [a751e48db99a] [4.15.3] <4.15-maint> | ||
| 3326 | - | ||
| 3327 | -2013-10-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3328 | - | ||
| 3329 | - * sipgen/transform.c: | ||
| 3330 | - Fixed virtual re-implementations so that the number of generated | ||
| 3331 | - Python methods slots is correct and that re-implementations | ||
| 3332 | - explicitly marked as virtual are handled correctly. | ||
| 3333 | - [aa7806ed2405] <4.15-maint> | ||
| 3334 | - | ||
| 3335 | -2013-10-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3336 | - | ||
| 3337 | - * siplib/siplib.c.in: | ||
| 3338 | - Fixed the format of an exception with Python v2. | ||
| 3339 | - [5dc8c370157e] <4.15-maint> | ||
| 3340 | - | ||
| 3341 | -2013-09-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3342 | - | ||
| 3343 | - * .hgtags: | ||
| 3344 | - Added tag 4.15.2 for changeset f8fdf4d1eb87 | ||
| 3345 | - [82b599f547b1] <4.15-maint> | ||
| 3346 | - | ||
| 3347 | - * NEWS: | ||
| 3348 | - Released as v4.15.2. | ||
| 3349 | - [f8fdf4d1eb87] [4.15.2] <4.15-maint> | ||
| 3350 | - | ||
| 3351 | -2013-09-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3352 | - | ||
| 3353 | - * siplib/array.c, siplib/array.h, siplib/sip.h.in.in, | ||
| 3354 | - sphinx/c_api.rst: | ||
| 3355 | - sipConvertToArray() will now optionally take ownership of the array | ||
| 3356 | - memory. Changed the signatures of sipConvertToArray() and | ||
| 3357 | - sipConvertToTypedArray(), but in a source and binary compatible way. | ||
| 3358 | - [908d49322dcf] <4.15-maint> | ||
| 3359 | - | ||
| 3360 | - * siplib/array.c, sphinx/c_api.rst: | ||
| 3361 | - Added support for char, unsigned char, short, int, float and double | ||
| 3362 | - as array types. | ||
| 3363 | - [fc41755d6481] <4.15-maint> | ||
| 3364 | - | ||
| 3365 | -2013-08-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3366 | - | ||
| 3367 | - * sipgen/transform.c: | ||
| 3368 | - Further fixes for the handling of virtual methods. | ||
| 3369 | - [14732b487dda] <4.15-maint> | ||
| 3370 | - | ||
| 3371 | -2013-08-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3372 | - | ||
| 3373 | - * .hgtags: | ||
| 3374 | - Added tag 4.15.1 for changeset 148b813a559c | ||
| 3375 | - [5ef6f2e04687] <4.15-maint> | ||
| 3376 | - | ||
| 3377 | - * NEWS: | ||
| 3378 | - Released as v4.15.1. | ||
| 3379 | - [148b813a559c] [4.15.1] <4.15-maint> | ||
| 3380 | - | ||
| 3381 | - * sipgen/transform.c: | ||
| 3382 | - Fixed a regression in the handling of hidden virtuals. | ||
| 3383 | - [15657c502e42] <4.15-maint> | ||
| 3384 | - | ||
| 3385 | -2013-08-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3386 | - | ||
| 3387 | - * .hgtags: | ||
| 3388 | - Added tag 4.15 for changeset 2f84fb045098 | ||
| 3389 | - [1f9737376184] | ||
| 3390 | - | ||
| 3391 | - * NEWS: | ||
| 3392 | - Released as v4.15. | ||
| 3393 | - [2f84fb045098] [4.15] | ||
| 3394 | - | ||
| 3395 | -2013-08-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3396 | - | ||
| 3397 | - * sphinx/annotations.rst: | ||
| 3398 | - Fixed a mistake in the documentation for /Factory/. | ||
| 3399 | - [4c2fe2e7397e] | ||
| 3400 | - | ||
| 3401 | - * siplib/siplib.c.in: | ||
| 3402 | - Fixed a C++ism that crept into the sip module code. | ||
| 3403 | - [764f7fc80f1f] | ||
| 3404 | - | ||
| 3405 | -2013-08-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3406 | - | ||
| 3407 | - * NEWS: | ||
| 3408 | - Updated the NEWS file. | ||
| 3409 | - [69897cf50dea] | ||
| 3410 | - | ||
| 3411 | -2013-08-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3412 | - | ||
| 3413 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 3414 | - sphinx/c_api.rst: | ||
| 3415 | - Added sipRegisterProxyResolver() to the public API. | ||
| 3416 | - [66235bf9625f] | ||
| 3417 | - | ||
| 3418 | -2013-08-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3419 | - | ||
| 3420 | - * sphinx/c_api.rst: | ||
| 3421 | - Documented sipConvertToArray() and sipConvertToTypedArray(). | ||
| 3422 | - [bf49a3ad5612] | ||
| 3423 | - | ||
| 3424 | -2013-08-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3425 | - | ||
| 3426 | - * siplib/array.c, siplib/sipint.h, siplib/siplib.c.in: | ||
| 3427 | - Fixed the array support. | ||
| 3428 | - [e2d05fb54872] | ||
| 3429 | - | ||
| 3430 | - * sipgen/gencode.c, siplib/array.c, siplib/array.h, | ||
| 3431 | - siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3432 | - Added sipConvertToArray(). | ||
| 3433 | - [660fdd5cb10e] | ||
| 3434 | - | ||
| 3435 | - * sipgen/gencode.c: | ||
| 3436 | - Eliminated unused arguments in the setters of constant variables. | ||
| 3437 | - [e43b7d64c488] | ||
| 3438 | - | ||
| 3439 | -2013-08-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3440 | - | ||
| 3441 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3442 | - sphinx/annotations.rst: | ||
| 3443 | - Added the /NoScope/ enum annotation. | ||
| 3444 | - [aa4646c186d2] | ||
| 3445 | - | ||
| 3446 | - * siplib/array.c, siplib/array.h, siplib/siplib.c.in: | ||
| 3447 | - Properly initialise the sip.array type. | ||
| 3448 | - [a7e4f6c62b8f] | ||
| 3449 | - | ||
| 3450 | - * siplib/array.c, siplib/array.h, siplib/sip.h.in.in, siplib/sipint.h, | ||
| 3451 | - siplib/siplib.c.in: | ||
| 3452 | - Completed the array implementation for wrapped types. | ||
| 3453 | - [9e5b63022e19] | ||
| 3454 | - | ||
| 3455 | -2013-08-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3456 | - | ||
| 3457 | - * sipgen/gencode.c, siplib/array.c, siplib/array.h, | ||
| 3458 | - siplib/sip.h.in.in, siplib/siplib.c.in, siplib/siplib.sbf.in: | ||
| 3459 | - Added the stub of the array support. | ||
| 3460 | - [ffb87d2e0fc5] | ||
| 3461 | - | ||
| 3462 | -2013-07-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3463 | - | ||
| 3464 | - * sphinx/c_api.rst: | ||
| 3465 | - Documented sipConvertFromNewPyType(). | ||
| 3466 | - [ba59d434b206] | ||
| 3467 | - | ||
| 3468 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3469 | - Changed the signature of sipConvertFromNewPyType() to handle | ||
| 3470 | - ownership and hide the internals of generated derived classes. | ||
| 3471 | - [5a9ba502593c] | ||
| 3472 | - | ||
| 3473 | - * sipgen/gencode.c: | ||
| 3474 | - Fixed the PyQt5 generation of qt_metaobject() so that it supports | ||
| 3475 | - QML. | ||
| 3476 | - [2f18c4617542] | ||
| 3477 | - | ||
| 3478 | -2013-07-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3479 | - | ||
| 3480 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/sipint.h, | ||
| 3481 | - siplib/siplib.c.in, siplib/threads.c: | ||
| 3482 | - Added the (as yet undocumented) sipConvertFromNewPyType(). | ||
| 3483 | - [5a65f5bad461] | ||
| 3484 | - | ||
| 3485 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3486 | - sphinx/annotations.rst: | ||
| 3487 | - Added the /ExportDerived/ class annotation. | ||
| 3488 | - [e3c78dfd30b8] | ||
| 3489 | - | ||
| 3490 | -2013-07-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3491 | - | ||
| 3492 | - * siplib/siplib.c.in: | ||
| 3493 | - Clear any exceptions before trying to parse a reimplementation | ||
| 3494 | - result. | ||
| 3495 | - [7bebd55f50b2] | ||
| 3496 | - | ||
| 3497 | -2013-07-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3498 | - | ||
| 3499 | - * siplib/siplib.c.in: | ||
| 3500 | - Fixed a mixin bug where C++ was using the mixin (rather than Python) | ||
| 3501 | - wasn't being detected properly. | ||
| 3502 | - [52d3b8035dca] | ||
| 3503 | - | ||
| 3504 | -2013-07-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3505 | - | ||
| 3506 | - * siplib/siplib.c.in: | ||
| 3507 | - Fixed a bug in the dereferencing of mixins. | ||
| 3508 | - [fc3df3e99932] | ||
| 3509 | - | ||
| 3510 | -2013-07-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3511 | - | ||
| 3512 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3513 | - siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 3514 | - Implemented the PyQt5 plugin, including support for Qt interfaces. | ||
| 3515 | - Added sipGetMixinAddress() to the public API. Python | ||
| 3516 | - reimplementations of abstract mixins are now handled correctly. | ||
| 3517 | - [972540270afa] | ||
| 3518 | - | ||
| 3519 | -2013-07-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3520 | - | ||
| 3521 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3522 | - sipgen/transform.c: | ||
| 3523 | - The parser now handles multiple consts in type declarations. | ||
| 3524 | - [e7b6e4b5b1de] | ||
| 3525 | - | ||
| 3526 | - * sipgen/gencode.c: | ||
| 3527 | - Properly implement /TransferBack/ even for return values that appear | ||
| 3528 | - to be always new because the type may be a mapped collection type | ||
| 3529 | - with elements that might not be new (e. QList<QTreeWidgetItem *>). | ||
| 3530 | - [9c073a101fb6] | ||
| 3531 | - | ||
| 3532 | -2013-07-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3533 | - | ||
| 3534 | - * sipgen/lexer.l: | ||
| 3535 | - Make sure that source locations are always valid (if not always | ||
| 3536 | - absolutely correct). | ||
| 3537 | - [e5a66c9174a6] | ||
| 3538 | - | ||
| 3539 | -2013-07-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3540 | - | ||
| 3541 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in: | ||
| 3542 | - The parser can now handle expressions with casts. | ||
| 3543 | - [54ec565cf24e] | ||
| 3544 | - | ||
| 3545 | - * sipgen/lexer.l: | ||
| 3546 | - Added support for numbers having trailing lLuU. | ||
| 3547 | - [88cc29113b02] | ||
| 3548 | - | ||
| 3549 | -2013-07-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3550 | - | ||
| 3551 | - * sipgen/transform.c: | ||
| 3552 | - Backed out changeset bd5b9927361b The problem is real (but currently | ||
| 3553 | - not triggered), but the fix breaks PyQt. | ||
| 3554 | - [3529b7c08228] | ||
| 3555 | - | ||
| 3556 | -2013-07-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3557 | - | ||
| 3558 | - * sipgen/transform.c: | ||
| 3559 | - Fixed a bug where a method with %VirtualCatcherCode was being used | ||
| 3560 | - by a method without if they had the same signature. | ||
| 3561 | - [bd5b9927361b] | ||
| 3562 | - | ||
| 3563 | - * configure.py.in: | ||
| 3564 | - Invalidate the import caches before trying to import the newly | ||
| 3565 | - created sipconfig.py. | ||
| 3566 | - [1e3ae0d5e790] | ||
| 3567 | - | ||
| 3568 | - * sipgen/gencode.c: | ||
| 3569 | - Fixed the mixin support when the generated class definition may be a | ||
| 3570 | - sub-type. | ||
| 3571 | - [aec935209f0d] | ||
| 3572 | - | ||
| 3573 | -2013-07-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3574 | - | ||
| 3575 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 3576 | - A virtual catcher now calls the super-class implementation by via | ||
| 3577 | - the super-class rather than needing to know exactly where the | ||
| 3578 | - nearest implementation is. | ||
| 3579 | - [58987948b9fd] | ||
| 3580 | - | ||
| 3581 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3582 | - siplib/descriptors.c, siplib/sip.h.in.in, siplib/sipint.h, | ||
| 3583 | - siplib/siplib.c.in, sphinx/annotations.rst: | ||
| 3584 | - Implemented the /Mixin/ class annotation. | ||
| 3585 | - [8b1702ce3226] | ||
| 3586 | - | ||
| 3587 | -2013-07-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3588 | - | ||
| 3589 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 3590 | - sipgen/sip.h.in, siplib/siplib.c.in, sphinx/directives.rst: | ||
| 3591 | - Added the call_super_init argument to the %Module directive. Updated | ||
| 3592 | - the documentation. | ||
| 3593 | - [42950b118753] | ||
| 3594 | - | ||
| 3595 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3596 | - Support for cooperative multi-inheritance must now be explicitly | ||
| 3597 | - enabled because it affects compatibility. Added a shortcut so that | ||
| 3598 | - the cooperative multi-inheritance support is skipped when it isn't | ||
| 3599 | - needed. | ||
| 3600 | - [07984388686f] | ||
| 3601 | - | ||
| 3602 | -2013-06-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3603 | - | ||
| 3604 | - * NEWS, siplib/siplib.c.in: | ||
| 3605 | - Fixed the %Finalisation support so that QObject sub-classes work. | ||
| 3606 | - [17fc8e27b7e9] | ||
| 3607 | - | ||
| 3608 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3609 | - Completed the support for cooperative multi-inheritance. | ||
| 3610 | - [ddd13ea38870] | ||
| 3611 | - | ||
| 3612 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3613 | - Changed the API of td_final to minimise the creation of new dicts. | ||
| 3614 | - Fixed the calling of the super-class's __init__. | ||
| 3615 | - [195f0d1ab91c] | ||
| 3616 | - | ||
| 3617 | -2013-06-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3618 | - | ||
| 3619 | - * siplib/siplib.c.in: | ||
| 3620 | - Instead of calling super() to implement the cooperative multi- | ||
| 3621 | - inheritance, just call the __init__ of the next type in the MRO. | ||
| 3622 | - [da9edad8f7b1] | ||
| 3623 | - | ||
| 3624 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 3625 | - Wrapped classes now support cooperative multi-inheritance with non- | ||
| 3626 | - sip classes. Implemented %FinalisationCode. | ||
| 3627 | - [aaedcb26099e] | ||
| 3628 | - | ||
| 3629 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 3630 | - siplib/sip.h.in.in: | ||
| 3631 | - Added the code generator support for %FinalisationCode. | ||
| 3632 | - [e8b4b1ab730d] | ||
| 3633 | - | ||
| 3634 | -2013-06-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3635 | - | ||
| 3636 | - * Merged the v4.14 maintenance branch. | ||
| 3637 | - [97beee973f94] | ||
| 3638 | - | ||
| 3639 | -2013-06-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3640 | - | ||
| 3641 | - * siplib/voidptr.c: | ||
| 3642 | - Fixed a reference count bug when a sip.voidptr is created from a | ||
| 3643 | - buffer object. | ||
| 3644 | - [02bdf6cc32c1] <4.14-maint> | ||
| 3645 | - | ||
| 3646 | -2013-06-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3647 | - | ||
| 3648 | - * .hgtags: | ||
| 3649 | - Added tag 4.14.7 for changeset ee771b441704 | ||
| 3650 | - [6e6cc6c60a36] <4.14-maint> | ||
| 3651 | - | ||
| 3652 | - * NEWS: | ||
| 3653 | - Released as v4.14.7. | ||
| 3654 | - [ee771b441704] [4.14.7] <4.14-maint> | ||
| 3655 | - | ||
| 3656 | -2013-06-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3657 | - | ||
| 3658 | - * NEWS, build.py, sip.nsi.in, sphinx/installation.rst: | ||
| 3659 | - Removed the Windows installer as we can't have co-existant PyQt4 and | ||
| 3660 | - PyQt5 installers for other reasons. | ||
| 3661 | - [74e1df1d9940] <4.14-maint> | ||
| 3662 | - | ||
| 3663 | -2013-06-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3664 | - | ||
| 3665 | - * NEWS, sip.nsi.in, sphinx/installation.rst: | ||
| 3666 | - Debugged the installer. | ||
| 3667 | - [00678082f72e] <4.14-maint> | ||
| 3668 | - | ||
| 3669 | - * build.py, sip.nsi.in: | ||
| 3670 | - Added the initial (not debugged) installer. | ||
| 3671 | - [d22b19884c62] <4.14-maint> | ||
| 3672 | - | ||
| 3673 | - * sphinx/directives.rst: | ||
| 3674 | - Fixed a broken reference to the Python documentation. | ||
| 3675 | - [38ed755c797d] <4.14-maint> | ||
| 3676 | - | ||
| 3677 | -2013-06-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3678 | - | ||
| 3679 | - * siplib/siplib.c.in: | ||
| 3680 | - Fixed the last fix. | ||
| 3681 | - [67258ffe885a] <4.14-maint> | ||
| 3682 | - | ||
| 3683 | -2013-06-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3684 | - | ||
| 3685 | - * NEWS, sipgen/parser.y, sipgen/sip.h.in, siplib/siplib.c.in, | ||
| 3686 | - sphinx/annotations.rst: | ||
| 3687 | - Added the /Sequence/ function annotation. Added a work around for | ||
| 3688 | - the Python bug whereby nb_inplace_add is wrongly copied to | ||
| 3689 | - sq_inplace_concat if either are missing. | ||
| 3690 | - [029828cabb4d] <4.14-maint> | ||
| 3691 | - | ||
| 3692 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, | ||
| 3693 | - sipgen/sip.h.in, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 3694 | - sphinx/c_api.rst, sphinx/directives.rst, sphinx/python_api.rst: | ||
| 3695 | - Added support for classes to have %ConvertFromTypeCode. Added | ||
| 3696 | - sipEnableAutoconversion() to the C API. Added | ||
| 3697 | - sip.enableautoconversion() to the Python API. | ||
| 3698 | - [4dbbc8c6c054] <4.14-maint> | ||
| 3699 | - | ||
| 3700 | -2013-06-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3701 | - | ||
| 3702 | - * NEWS, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h.in.in, | ||
| 3703 | - siplib/sipint.h, siplib/siplib.c.in, siplib/threads.c: | ||
| 3704 | - Bumped the internal API to 10.0. Removed deprecated parts of the | ||
| 3705 | - private API. Added the stub for the optional convert from class | ||
| 3706 | - code. | ||
| 3707 | - [50319794231a] <4.14-maint> | ||
| 3708 | - | ||
| 3709 | -2013-06-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3710 | - | ||
| 3711 | - * siplib/qtlib.c, siplib/siplib.c.in: | ||
| 3712 | - Add more checks to make sure that PyQt5 isn't accidentally using | ||
| 3713 | - features that will be deprecated in SIP5. | ||
| 3714 | - [c80745f8ee0b] <4.14-maint> | ||
| 3715 | - | ||
| 3716 | -2013-06-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3717 | - | ||
| 3718 | - * siplib/qtlib.c: | ||
| 3719 | - Added assertions for Qt support for all API functions that provide | ||
| 3720 | - Qt support. | ||
| 3721 | - [aa60efc50608] <4.14-maint> | ||
| 3722 | - | ||
| 3723 | -2013-05-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3724 | - | ||
| 3725 | - * siplib/voidptr.c: | ||
| 3726 | - Fixed a bug in converting an int to a voidptr. | ||
| 3727 | - [dd473964ac33] <4.14-maint> | ||
| 3728 | - | ||
| 3729 | -2013-05-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3730 | - | ||
| 3731 | - * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 3732 | - sphinx/c_api.rst: | ||
| 3733 | - Added sipSetDestroyOnExit() to the public C API. | ||
| 3734 | - [40660935c75b] <4.14-maint> | ||
| 3735 | - | ||
| 3736 | -2013-04-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3737 | - | ||
| 3738 | - * sipgen/gencode.c: | ||
| 3739 | - Fixed a code generation bug that affected QObject sub-classes with | ||
| 3740 | - dtor %MethodCode and with the GIL not released by default (ie. | ||
| 3741 | - PyQt5). | ||
| 3742 | - [bd9eccac4407] <4.14-maint> | ||
| 3743 | - | ||
| 3744 | -2013-04-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3745 | - | ||
| 3746 | - * .hgtags: | ||
| 3747 | - Added tag 4.14.6 for changeset 32dcb22f994c | ||
| 3748 | - [23da2e18916b] <4.14-maint> | ||
| 3749 | - | ||
| 3750 | - * NEWS, Roadmap.rst: | ||
| 3751 | - Released as v4.14.6. | ||
| 3752 | - [32dcb22f994c] [4.14.6] <4.14-maint> | ||
| 3753 | - | ||
| 3754 | -2013-04-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3755 | - | ||
| 3756 | - * sipgen/parser.y, sphinx/annotations.rst: | ||
| 3757 | - Documented that sub-classing from classes with different | ||
| 3758 | - implementations is not supported. | ||
| 3759 | - [1773f2100851] <4.14-maint> | ||
| 3760 | - | ||
| 3761 | - * sipgen/parser.y: | ||
| 3762 | - Fixed a grammar bug in the parsing of %Module with no parenthesis. | ||
| 3763 | - [2d5256eda850] <4.14-maint> | ||
| 3764 | - | ||
| 3765 | -2013-04-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3766 | - | ||
| 3767 | - * siplib/siplib.c.in: | ||
| 3768 | - Fixed a bug in the parsing of SIP_ANYSLOT arguments. | ||
| 3769 | - [a9f7473ba9c7] <4.14-maint> | ||
| 3770 | - | ||
| 3771 | -2013-04-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3772 | - | ||
| 3773 | - * sipgen/gencode.c: | ||
| 3774 | - Removed some redundant code generated for a component module. | ||
| 3775 | - [395bf9f00aa6] <4.14-maint> | ||
| 3776 | - | ||
| 3777 | -2013-03-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3778 | - | ||
| 3779 | - * .hgtags: | ||
| 3780 | - Added tag 4.14.5 for changeset e528e634d4db | ||
| 3781 | - [6a2bda53d2c0] <4.14-maint> | ||
| 3782 | - | ||
| 3783 | - * NEWS: | ||
| 3784 | - Released as v4.14.5. | ||
| 3785 | - [e528e634d4db] [4.14.5] <4.14-maint> | ||
| 3786 | - | ||
| 3787 | -2013-03-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3788 | - | ||
| 3789 | - * sipgen/gencode.c: | ||
| 3790 | - Fixed a code generation bug when using /Array, Transfer/. | ||
| 3791 | - [054f1676c300] <4.14-maint> | ||
| 3792 | - | ||
| 3793 | -2013-03-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3794 | - | ||
| 3795 | - * siputils.py: | ||
| 3796 | - Fixed a build system bug for QtWebKit on Linux against Qt v5. | ||
| 3797 | - [c65a525a0a17] <4.14-maint> | ||
| 3798 | - | ||
| 3799 | -2013-03-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3800 | - | ||
| 3801 | - * .hgtags: | ||
| 3802 | - Added tag 4.14.4 for changeset 4c818299f57a | ||
| 3803 | - [72b69b39a7a8] <4.14-maint> | ||
| 3804 | - | ||
| 3805 | - * NEWS: | ||
| 3806 | - Released as v4.14.4. | ||
| 3807 | - [4c818299f57a] [4.14.4] <4.14-maint> | ||
| 3808 | - | ||
| 3809 | -2013-02-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3810 | - | ||
| 3811 | - * configure.py.in, sphinx/installation.rst: | ||
| 3812 | - The --sdk flag to configure.py will now default to the directory | ||
| 3813 | - used by current versions of Xcode. | ||
| 3814 | - [312a27229b3f] <4.14-maint> | ||
| 3815 | - | ||
| 3816 | -2013-02-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3817 | - | ||
| 3818 | - * sipgen/gencode.c, siplib/sipint.h, siplib/siplib.c.in, | ||
| 3819 | - siplib/threads.c: | ||
| 3820 | - The thread support now only creates TLS when it is actually needed. | ||
| 3821 | - This makes sipStartThread() redundant and it is now deprecated. | ||
| 3822 | - Failing to allocate TLS will now raise an exception. | ||
| 3823 | - [34f6f0d52c1e] <4.14-maint> | ||
| 3824 | - | ||
| 3825 | - * NEWS, sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 3826 | - sphinx/c_api.rst, sphinx/directives.rst, | ||
| 3827 | - sphinx/incompatibilities.rst: | ||
| 3828 | - VirtualErrorHandler code is now called with the GIL and from the | ||
| 3829 | - thread that raised the exception. This ensures that the details of | ||
| 3830 | - the exception can be obtained. It also means that the default | ||
| 3831 | - handler (ie. PyErr_Print()) can also get the details. | ||
| 3832 | - VirtualErrorHandler code is now also provided sipGILState so that it | ||
| 3833 | - can call SIP_RELEASE_GIL() prior to changing the execution path. | ||
| 3834 | - [45a50c6d82fe] <4.14-maint> | ||
| 3835 | - | ||
| 3836 | -2013-02-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3837 | - | ||
| 3838 | - * sphinx/introduction.rst.in: | ||
| 3839 | - Documentation updates regarding SIP v5. | ||
| 3840 | - [03f33e7fdfb1] <4.14-maint> | ||
| 3841 | - | ||
| 3842 | -2013-02-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3843 | - | ||
| 3844 | - * NEWS, sipgen/gencode.c: | ||
| 3845 | - Fixed the generation of an unnecessary variable for array arguments. | ||
| 3846 | - [fb45cf6e775b] <4.14-maint> | ||
| 3847 | - | ||
| 3848 | -2013-02-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3849 | - | ||
| 3850 | - * siputils.py: | ||
| 3851 | - The problem of the moc pathname is more widespread. | ||
| 3852 | - [bf2062f2318f] <4.14-maint> | ||
| 3853 | - | ||
| 3854 | - * siputils.py: | ||
| 3855 | - Fix the build of QtWebKit on Windows. Workaround the foward slash | ||
| 3856 | - characters in the moc pathname on Windows/Qt5. | ||
| 3857 | - [13ee5a9fc8bd] <4.14-maint> | ||
| 3858 | - | ||
| 3859 | -2013-02-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3860 | - | ||
| 3861 | - * siputils.py: | ||
| 3862 | - Fixed the QAxContainer dependencies for Qt5. | ||
| 3863 | - [793be65e22b9] <4.14-maint> | ||
| 3864 | - | ||
| 3865 | - * siputils.py: | ||
| 3866 | - Fixed the renaming of QAxContainer for Qt5. | ||
| 3867 | - [7e67f0559595] <4.14-maint> | ||
| 3868 | - | ||
| 3869 | - * siputils.py: | ||
| 3870 | - Fixed the QAxContainer dependency for Qt5. | ||
| 3871 | - [d33f9eaa4394] <4.14-maint> | ||
| 3872 | - | ||
| 3873 | - * siputils.py: | ||
| 3874 | - Build system changes for Qt5 on Windows. | ||
| 3875 | - [9abd1d0f5d3f] <4.14-maint> | ||
| 3876 | - | ||
| 3877 | -2013-01-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3878 | - | ||
| 3879 | - * .hgtags: | ||
| 3880 | - Added tag 4.14.3 for changeset 6e004d396299 | ||
| 3881 | - [c9a29107c8ef] <4.14-maint> | ||
| 3882 | - | ||
| 3883 | - * NEWS: | ||
| 3884 | - Released as v4.14.3. | ||
| 3885 | - [6e004d396299] [4.14.3] <4.14-maint> | ||
| 3886 | - | ||
| 3887 | -2013-01-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3888 | - | ||
| 3889 | - * siplib/siplib.c.in: | ||
| 3890 | - When a Python object is garbage collected SIP no longer creates an | ||
| 3891 | - additional reference to any child Python objects so that those | ||
| 3892 | - children can now be handled by the garbage collector if appropriate. | ||
| 3893 | - We used to keep the extra reference to make sure any additional | ||
| 3894 | - attributes set in the child were preserved, however if the parent is | ||
| 3895 | - being deleted then the C++ object it wraps must have been (or is | ||
| 3896 | - about to be) destroyed, and therefore (if the parent/child | ||
| 3897 | - relationships between the Python objects are correct) the child | ||
| 3898 | - Python object is about to be deleted anyway. Before we relied on the | ||
| 3899 | - C++ child telling us when to garbage collect the Python child via | ||
| 3900 | - its virtual dtor - but this won't work if it was the C++ library | ||
| 3901 | - (rather than the Python application) that created the child. | ||
| 3902 | - [dc06058c99dd] <4.14-maint> | ||
| 3903 | - | ||
| 3904 | -2013-01-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3905 | - | ||
| 3906 | - * siplib/siplib.c.in: | ||
| 3907 | - Backed out changeset 4ec79ea69263 Realised that the (slight) change | ||
| 3908 | - in behaviour could break legitimate use cases. | ||
| 3909 | - [597c864debcc] <4.14-maint> | ||
| 3910 | - | ||
| 3911 | - * siplib/siplib.c.in: | ||
| 3912 | - When a Python object is garbage collected its child Python objects | ||
| 3913 | - are now garbage collected unless they have an instance dict. | ||
| 3914 | - [4ec79ea69263] <4.14-maint> | ||
| 3915 | - | ||
| 3916 | -2013-01-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3917 | - | ||
| 3918 | - * LICENSE, build.py, configure.py.in, sipgen/export.c, | ||
| 3919 | - sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, | ||
| 3920 | - sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf, | ||
| 3921 | - sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp, | ||
| 3922 | - siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 3923 | - siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, | ||
| 3924 | - siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, | ||
| 3925 | - siputils.py, sphinx/conf.py.in, sphinx/directives.rst: | ||
| 3926 | - Updated the copyright notices. | ||
| 3927 | - [ee3b1348996c] <4.14-maint> | ||
| 3928 | - | ||
| 3929 | -2013-01-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3930 | - | ||
| 3931 | - * NEWS, sipgen/gencode.c, sphinx/annotations.rst: | ||
| 3932 | - The /KeepReference/ argument annotation, when applied to factories, | ||
| 3933 | - will now keep the reference with the object created by the factory. | ||
| 3934 | - [0ad6099f31fa] <4.14-maint> | ||
| 3935 | - | ||
| 3936 | -2013-01-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3937 | - | ||
| 3938 | - * siplib/voidptr.c: | ||
| 3939 | - Properly implemented the support for passing objects that implement | ||
| 3940 | - the buffer protocol where a voidptr is expected. | ||
| 3941 | - [171bd8e1e037] <4.14-maint> | ||
| 3942 | - | ||
| 3943 | - * siputils.py: | ||
| 3944 | - Changed the test for a Python framework build so that it works with | ||
| 3945 | - pyvenv. | ||
| 3946 | - [a612391f667c] <4.14-maint> | ||
| 3947 | - | ||
| 3948 | -2012-12-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3949 | - | ||
| 3950 | - * siputils.py: | ||
| 3951 | - Further build system fixes for Linux/Qt5. | ||
| 3952 | - [04dec290a15e] <4.14-maint> | ||
| 3953 | - | ||
| 3954 | - * siputils.py: | ||
| 3955 | - Fix the build system for the Linux specific naming conventions of | ||
| 3956 | - the Qt5 libraries. | ||
| 3957 | - [05cb90880c2b] <4.14-maint> | ||
| 3958 | - | ||
| 3959 | -2012-12-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3960 | - | ||
| 3961 | - * siputils.py: | ||
| 3962 | - Fixed the build system for QtTest in Qt5. | ||
| 3963 | - [55188026fe6d] <4.14-maint> | ||
| 3964 | - | ||
| 3965 | -2012-12-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3966 | - | ||
| 3967 | - * .hgtags: | ||
| 3968 | - Added tag 4.14.2 for changeset e9180a8d374f | ||
| 3969 | - [ed864cf2277f] <4.14-maint> | ||
| 3970 | - | ||
| 3971 | - * NEWS: | ||
| 3972 | - Released as v4.14.2. | ||
| 3973 | - [e9180a8d374f] [4.14.2] <4.14-maint> | ||
| 3974 | - | ||
| 3975 | -2012-12-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3976 | - | ||
| 3977 | - * siputils.py: | ||
| 3978 | - Fixed the build system for Qt v5-rc1. | ||
| 3979 | - [44586b952072] <4.14-maint> | ||
| 3980 | - | ||
| 3981 | -2012-11-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3982 | - | ||
| 3983 | - * siputils.py: | ||
| 3984 | - The build system now knows that QtWebKit is QtWebKitWidgets in Qt5. | ||
| 3985 | - [b8261071d302] <4.14-maint> | ||
| 3986 | - | ||
| 3987 | -2012-11-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 3988 | - | ||
| 3989 | - * NEWS, siplib/siplib.c.in, sphinx/python_api.rst: | ||
| 3990 | - Added sip.setdestroyonexit(). | ||
| 3991 | - [b063e90b6c20] <4.14-maint> | ||
| 3992 | - | ||
| 3993 | - * siplib/voidptr.c: | ||
| 3994 | - Backed out to keep the behaviour the same as memoryview. | ||
| 3995 | - [e8f21b0950c8] <4.14-maint> | ||
| 3996 | - | ||
| 3997 | - * siplib/voidptr.c: | ||
| 3998 | - Backed out to keep the behaviour the same as memoryview. | ||
| 3999 | - [26717fbefb61] <4.14-maint> | ||
| 4000 | - | ||
| 4001 | -2012-11-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4002 | - | ||
| 4003 | - * sipgen/gencode.c: | ||
| 4004 | - Patch from Matt Newell to fix /HoldGIL/ when exceptions are enabled. | ||
| 4005 | - [669ecadaaae1] <4.14-maint> | ||
| 4006 | - | ||
| 4007 | -2012-11-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4008 | - | ||
| 4009 | - * siplib/voidptr.c: | ||
| 4010 | - A simple index of a sip.voidptr now returns an int rather than a | ||
| 4011 | - string/bytes of length 1. | ||
| 4012 | - [80ee79901dc9] <4.14-maint> | ||
| 4013 | - | ||
| 4014 | - * siplib/voidptr.c: | ||
| 4015 | - Fixed simple index item assignment for voidptr. | ||
| 4016 | - [3cb217678514] <4.14-maint> | ||
| 4017 | - | ||
| 4018 | - * siplib/voidptr.c: | ||
| 4019 | - The new buffer interface was backported to v2.6.3. | ||
| 4020 | - [47f4f489055e] <4.14-maint> | ||
| 4021 | - | ||
| 4022 | - * NEWS, siplib/voidptr.c, sphinx/python_api.rst: | ||
| 4023 | - sip.voidptr() will now accept any object that implements the (old or | ||
| 4024 | - new) buffer protocols. | ||
| 4025 | - [cb7799eb557b] <4.14-maint> | ||
| 4026 | - | ||
| 4027 | - * sphinx/python_api.rst: | ||
| 4028 | - Clarified the docs for __getitem__ and __setitem__ for sip.voidptr. | ||
| 4029 | - [32fb8513b196] <4.14-maint> | ||
| 4030 | - | ||
| 4031 | -2012-10-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4032 | - | ||
| 4033 | - * .hgtags: | ||
| 4034 | - Added tag 4.14.1 for changeset d0431cee7920 | ||
| 4035 | - [6b278a98323b] <4.14-maint> | ||
| 4036 | - | ||
| 4037 | - * NEWS: | ||
| 4038 | - Released as v4.14.1. | ||
| 4039 | - [d0431cee7920] [4.14.1] <4.14-maint> | ||
| 4040 | - | ||
| 4041 | -2012-10-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4042 | - | ||
| 4043 | - * siplib/siplib.c.in: | ||
| 4044 | - More buffer support fixes. | ||
| 4045 | - [1fe9c59f0f06] <4.14-maint> | ||
| 4046 | - | ||
| 4047 | - * siplib/siplib.c.in: | ||
| 4048 | - Both the old and new buffer protocols are now checked. | ||
| 4049 | - [7227f121bac9] <4.14-maint> | ||
| 4050 | - | ||
| 4051 | -2012-10-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4052 | - | ||
| 4053 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, | ||
| 4054 | - sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c, | ||
| 4055 | - siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/annotations.rst, | ||
| 4056 | - sphinx/c_api.rst, sphinx/specification_files.rst: | ||
| 4057 | - Added support for types that implement the buffer protocol. | ||
| 4058 | - [4ec285852cba] <4.14-maint> | ||
| 4059 | - | ||
| 4060 | - * siplib/siplib.c.in: | ||
| 4061 | - None may be provided whenever a capsule is expected. | ||
| 4062 | - [b90e3475bdfc] <4.14-maint> | ||
| 4063 | - | ||
| 4064 | -2012-10-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4065 | - | ||
| 4066 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 4067 | - Renamed the sipCapsule_* macros to be consistent with other similar | ||
| 4068 | - ones. | ||
| 4069 | - [1913168e0c8d] <4.14-maint> | ||
| 4070 | - | ||
| 4071 | - * sipgen/export.c: | ||
| 4072 | - The type name of a capsule is now used in docstrings. | ||
| 4073 | - [1c8ce8a61324] <4.14-maint> | ||
| 4074 | - | ||
| 4075 | - * sphinx/directives.rst: | ||
| 4076 | - Fixed a documentation typo. | ||
| 4077 | - [94362407c872] <4.14-maint> | ||
| 4078 | - | ||
| 4079 | -2012-10-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4080 | - | ||
| 4081 | - * sipgen/gencode.c: | ||
| 4082 | - Eliminated a C compiler warning message from the generated code. | ||
| 4083 | - [e60f63cfe0d1] <4.14-maint> | ||
| 4084 | - | ||
| 4085 | - * NEWS, sipgen/parser.y, sipgen/sip.h.in: | ||
| 4086 | - The C prototype foo(void) is now accepted. | ||
| 4087 | - [54aca3c0b75e] <4.14-maint> | ||
| 4088 | - | ||
| 4089 | - * sipgen/lexer.l, sipgen/transform.c: | ||
| 4090 | - Fixed a bug in the saving of line numbers for error messages when | ||
| 4091 | - the error is on the last significant line. | ||
| 4092 | - [7c77e368814f] <4.14-maint> | ||
| 4093 | - | ||
| 4094 | - * NEWS, sipdistutils.py, sphinx/distutils.rst: | ||
| 4095 | - If no sip-opts are defined sipdistutils.py will now use any | ||
| 4096 | - swig_opts passed to the Extension ctor. | ||
| 4097 | - [6fcc431a81bf] <4.14-maint> | ||
| 4098 | - | ||
| 4099 | -2012-10-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4100 | - | ||
| 4101 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, | ||
| 4102 | - sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, | ||
| 4103 | - siplib/siplib.c.in, sphinx/annotations.rst, sphinx/c_api.rst: | ||
| 4104 | - Increased the API version number to 9.1. Added the /Capsule/ typedef | ||
| 4105 | - annotation. Added the 'z' format character to sipBuildResult(). | ||
| 4106 | - Added the 'z' format character to sipParseResult(). | ||
| 4107 | - [f4bc254f96d8] <4.14-maint> | ||
| 4108 | - | ||
| 4109 | -2012-10-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4110 | - | ||
| 4111 | - * sipgen/gencode.c: | ||
| 4112 | - Fixed regressions in the handling of types when generating code for | ||
| 4113 | - C modules. | ||
| 4114 | - [3eba5b9842f0] <4.14-maint> | ||
| 4115 | - | ||
| 4116 | -2012-10-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4117 | - | ||
| 4118 | - * siputils.py: | ||
| 4119 | - Explicity close files in siputils.py to avoid resource warning | ||
| 4120 | - messages. | ||
| 4121 | - [fdc332e116b2] <4.14-maint> | ||
| 4122 | - | ||
| 4123 | -2012-10-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4124 | - | ||
| 4125 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 4126 | - Backed out the changes to the signal table generation (and revert | ||
| 4127 | - the API version to 9.0) because they are no longer needed. | ||
| 4128 | - [38235401ffbc] <4.14-maint> | ||
| 4129 | - | ||
| 4130 | -2012-10-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4131 | - | ||
| 4132 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 4133 | - Renamed PYQT4_SIGNAL_EXPLICIT to PYQT4_SIGNAL_FIXED_ARGS. Renamed | ||
| 4134 | - PYQT4_SIGNAL_MASK to PYQT4_SIGNAL_ARGS_MASK. | ||
| 4135 | - [cfbd55297dcd] <4.14-maint> | ||
| 4136 | - | ||
| 4137 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 4138 | - Added the flags member to the pyqt4QtSignal structure so that PyQT | ||
| 4139 | - can distinguish between explicitly defined signals and those added | ||
| 4140 | - to support optional arguments. | ||
| 4141 | - [81617aa9e051] <4.14-maint> | ||
| 4142 | - | ||
| 4143 | -2012-10-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4144 | - | ||
| 4145 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in: | ||
| 4146 | - Revised the previous change to keep the brackets unless the signal | ||
| 4147 | - has no arguments. (PyQt relies on the format for some of its | ||
| 4148 | - exceptions.) | ||
| 4149 | - [dd884ddcb239] <4.14-maint> | ||
| 4150 | - | ||
| 4151 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h.in: | ||
| 4152 | - Changed the docstrings for signals to use parenthesis rather than | ||
| 4153 | - brackets as it is less confusing. | ||
| 4154 | - [3f6128385aa2] <4.14-maint> | ||
| 4155 | - | ||
| 4156 | -2012-09-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4157 | - | ||
| 4158 | - * .hgtags: | ||
| 4159 | - Added tag 4.14 for changeset 90ea220ecc4b | ||
| 4160 | - [76a18a32f759] | ||
| 4161 | - | ||
| 4162 | - * NEWS: | ||
| 4163 | - Released as v4.14. | ||
| 4164 | - [90ea220ecc4b] [4.14] | ||
| 4165 | - | ||
| 4166 | -2012-09-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4167 | - | ||
| 4168 | - * NEWS: | ||
| 4169 | - Updated the NEWS file. | ||
| 4170 | - [214dd6433474] | ||
| 4171 | - | ||
| 4172 | -2012-09-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4173 | - | ||
| 4174 | - * sphinx/directives.rst, sphinx/embedding.rst, | ||
| 4175 | - sphinx/incompatibilities.rst, sphinx/python_api.rst, | ||
| 4176 | - sphinx/using.rst: | ||
| 4177 | - Got rid of all Sphinx warning messages. | ||
| 4178 | - [cbf911605931] | ||
| 4179 | - | ||
| 4180 | -2012-09-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4181 | - | ||
| 4182 | - * configure.py.in, specs/win32-msvc2008, specs/win32-msvc2010: | ||
| 4183 | - Updated the win32-msvc2008 spec file. Taught the build system about | ||
| 4184 | - MSVC 2010. | ||
| 4185 | - [5d3c5164342a] | ||
| 4186 | - | ||
| 4187 | -2012-09-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4188 | - | ||
| 4189 | - * configure.py.in, siputils.py: | ||
| 4190 | - Taught the build system about Qt5's CXXFLAGS_APP macro. | ||
| 4191 | - [4e2fddd95c07] | ||
| 4192 | - | ||
| 4193 | - * sphinx/annotations.rst: | ||
| 4194 | - Another correction to the /Factory/ documentation. | ||
| 4195 | - [f030580a19f6] | ||
| 4196 | - | ||
| 4197 | -2012-09-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4198 | - | ||
| 4199 | - * sphinx/annotations.rst: | ||
| 4200 | - Fixed the incorrect /Factory/ documentation. | ||
| 4201 | - [3b76a41a1f4a] | ||
| 4202 | - | ||
| 4203 | -2012-09-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4204 | - | ||
| 4205 | - * sipgen/gencode.c: | ||
| 4206 | - Fixed the signature for generated virtual error handler functions. | ||
| 4207 | - [caa74f25dff8] | ||
| 4208 | - | ||
| 4209 | -2012-09-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4210 | - | ||
| 4211 | - * sipgen/parser.y: | ||
| 4212 | - Fixed an initialisation bug in the parser by making it resiliant to | ||
| 4213 | - future changes. | ||
| 4214 | - [fd2e76ea8e16] | ||
| 4215 | - | ||
| 4216 | -2012-09-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4217 | - | ||
| 4218 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in: | ||
| 4219 | - Fixed a few compiler warning messages. | ||
| 4220 | - [a8aaecad7327] | ||
| 4221 | - | ||
| 4222 | -2012-09-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4223 | - | ||
| 4224 | - * NEWS, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, | ||
| 4225 | - sipgen/sip.h.in, sphinx/directives.rst: | ||
| 4226 | - Added support for the SIP_PLATFORM_* and SIP_TIMELINE_* preprocessor | ||
| 4227 | - symbols. | ||
| 4228 | - [664ec65acb33] | ||
| 4229 | - | ||
| 4230 | -2012-09-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4231 | - | ||
| 4232 | - * siputils.py: | ||
| 4233 | - A build system fix for Qt v5-beta1. | ||
| 4234 | - [6d704a7ab6c5] | ||
| 4235 | - | ||
| 4236 | - * siplib/sip.h.in.in: | ||
| 4237 | - Removed the ANY SIP v3 compatibility macro as it causes problems | ||
| 4238 | - with Qt v5. | ||
| 4239 | - [40aeb5a8f98e] | ||
| 4240 | - | ||
| 4241 | -2012-09-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4242 | - | ||
| 4243 | - * sipgen/parser.y, sipgen/transform.c: | ||
| 4244 | - The AllowNone and NoRelease mapped type annotations can now be | ||
| 4245 | - applied to mapped type templates. | ||
| 4246 | - [3da91337f333] | ||
| 4247 | - | ||
| 4248 | - * sphinx/annotations.rst: | ||
| 4249 | - Documented the PyName mapped type annotation. | ||
| 4250 | - [b1a5b8cab2ab] | ||
| 4251 | - | ||
| 4252 | - * sipgen/lexer.l: | ||
| 4253 | - Improved the parsing of floating point literals thanks to Andrea | ||
| 4254 | - Griffini. | ||
| 4255 | - [be35aa0bb4b5] | ||
| 4256 | - | ||
| 4257 | -2012-09-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4258 | - | ||
| 4259 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 4260 | - sphinx/c_api.rst, sphinx/directives.rst: | ||
| 4261 | - Added sipCallErrorHandler() to the private API. A virtual error | ||
| 4262 | - handler is now called with the GIL released. The sipGILState | ||
| 4263 | - variable is no longer passed to an error handler. | ||
| 4264 | - [be42df79035d] | ||
| 4265 | - | ||
| 4266 | -2012-08-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4267 | - | ||
| 4268 | - * NEWS, sphinx/annotations.rst, sphinx/directives.rst: | ||
| 4269 | - Updated the docs regarding the latest virtual error changes. | ||
| 4270 | - [86a4f33db172] | ||
| 4271 | - | ||
| 4272 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4273 | - siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4274 | - Changed the virtual error handler support yet again so that error | ||
| 4275 | - handlers are automatically exported to sub-classes and sub-modules. | ||
| 4276 | - [118500886fa7] | ||
| 4277 | - | ||
| 4278 | -2012-08-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4279 | - | ||
| 4280 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4281 | - Completed the refactoring of virtual handlers to use | ||
| 4282 | - sipParseResultEx(). | ||
| 4283 | - [397b4ade7900] | ||
| 4284 | - | ||
| 4285 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4286 | - Added sipParseResultEx() to the private API as a stub for future | ||
| 4287 | - changes. | ||
| 4288 | - [659fcb20bbc9] | ||
| 4289 | - | ||
| 4290 | - * specs/macx-xcode: | ||
| 4291 | - Merged the 4.13 branch into the trunk. | ||
| 4292 | - [96ef5f43f010] | ||
| 4293 | - | ||
| 4294 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 4295 | - sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, | ||
| 4296 | - sphinx/annotations.rst, sphinx/c_api.rst, sphinx/directives.rst: | ||
| 4297 | - Replaced the virtual error support (again) with the | ||
| 4298 | - %DefaultVirtualErrorHandler directive, the /NoVirtualErrorHandler/ | ||
| 4299 | - and /VirtualErrorHandler/ function annotations, and the | ||
| 4300 | - /VirtualErrorHandler/ class annotation. Added sip_gilstate_t and | ||
| 4301 | - SIP_RELEASE_GIL() to the public API. The Sphinx docs now use C | ||
| 4302 | - domains where appropriate. | ||
| 4303 | - [71c0d64913bc] <4.13-maint> | ||
| 4304 | - | ||
| 4305 | -2012-08-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4306 | - | ||
| 4307 | - * NEWS, sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in, | ||
| 4308 | - siplib/siplib.c.in: | ||
| 4309 | - Bumped the API version number to 9.0. Removed the support for | ||
| 4310 | - pre-9.0 variable structures. Changed the sipVariableGetterFunc | ||
| 4311 | - signature to pass the Python object. | ||
| 4312 | - [d8824768aa51] <4.13-maint> | ||
| 4313 | - | ||
| 4314 | - * sphinx/c_api.rst: | ||
| 4315 | - Updated the documentation for sipConvertToType(). | ||
| 4316 | - [32c2c73f4c27] <4.13-maint> | ||
| 4317 | - | ||
| 4318 | -2012-08-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4319 | - | ||
| 4320 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 4321 | - sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, | ||
| 4322 | - sphinx/annotations.rst, sphinx/directives.rst: | ||
| 4323 | - Changed the support for flagging errors in Python reimplementations | ||
| 4324 | - of virtuals by adding the %VirtualErrorCode directive and removing | ||
| 4325 | - SIPPyException. Also replaced the all_throw_cpp_exception %Module | ||
| 4326 | - argument with all_use_VirtualErrorCode, and the | ||
| 4327 | - /NoThrowsCppException/ and /ThrowsCppException/ function annotations | ||
| 4328 | - with /NoUsesVirtualErrorCode/ and /UsesVirtualErrorCode/. | ||
| 4329 | - [523c3bccb41b] <4.13-maint> | ||
| 4330 | - | ||
| 4331 | -2012-08-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4332 | - | ||
| 4333 | - * sipgen/gencode.c, siplib/sip.h.in.in: | ||
| 4334 | - Fixed the support for virtual handler exceptions so that memory | ||
| 4335 | - isn't leaked and the GIL is released. | ||
| 4336 | - [f644e914b292] <4.13-maint> | ||
| 4337 | - | ||
| 4338 | - * sipgen/transform.c: | ||
| 4339 | - A simply tidy up after the previous change. | ||
| 4340 | - [b3cd21a00d51] <4.13-maint> | ||
| 4341 | - | ||
| 4342 | - * sipgen/transform.c: | ||
| 4343 | - Backed out changeset 1066 and did it properly. | ||
| 4344 | - [368eaa1143bd] <4.13-maint> | ||
| 4345 | - | ||
| 4346 | -2012-08-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4347 | - | ||
| 4348 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 4349 | - sipgen/sip.h.in, sipgen/transform.c, siplib/sip.h.in.in, | ||
| 4350 | - sphinx/annotations.rst, sphinx/directives.rst: | ||
| 4351 | - Added the all_throw_cpp_exception argument to the %Module directive. | ||
| 4352 | - Added the /ThrowCppException/ and /NoThrowCppException/ function | ||
| 4353 | - annotations. | ||
| 4354 | - [5f97352e818f] <4.13-maint> | ||
| 4355 | - | ||
| 4356 | -2012-08-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4357 | - | ||
| 4358 | - * sipgen/transform.c: | ||
| 4359 | - No longer require that the types of the arguments of a C/C++ | ||
| 4360 | - signature are fully defined to SIP. | ||
| 4361 | - [01e11dc52626] <4.13-maint> | ||
| 4362 | - | ||
| 4363 | -2012-08-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4364 | - | ||
| 4365 | - * NEWS, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 4366 | - sipTransferTo() now increments the reference count of an object if | ||
| 4367 | - the owner is Py_None. Fixed a type checking bug in sip.transferto(). | ||
| 4368 | - Deprecated sipTransferBreak(). | ||
| 4369 | - [f59d135ae51c] <4.13-maint> | ||
| 4370 | - | ||
| 4371 | -2012-08-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4372 | - | ||
| 4373 | - * sipgen/gencode.c: | ||
| 4374 | - For Python v2.x unsigned short and unsigned byte are now converted | ||
| 4375 | - to int rather than long objects (to be consistent with the signed | ||
| 4376 | - versions). | ||
| 4377 | - [897e085bdd97] <4.13-maint> | ||
| 4378 | - | ||
| 4379 | - * siplib/siplib.c.in: | ||
| 4380 | - Make sure an exception is raised when converting to a character when | ||
| 4381 | - a string longer than one character is passed. | ||
| 4382 | - [28ea90cba3a9] <4.13-maint> | ||
| 4383 | - | ||
| 4384 | -2012-07-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4385 | - | ||
| 4386 | - * sipdistutils.py: | ||
| 4387 | - Applied a patch from Oliver Nagy to fix sipdistutils.py for Python | ||
| 4388 | - v3. | ||
| 4389 | - [5775580258b3] <4.13-maint> | ||
| 4390 | - | ||
| 4391 | -2012-07-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4392 | - | ||
| 4393 | - * siplib/siplib.c.in: | ||
| 4394 | - Fixed the use of a Python3 specific format character. | ||
| 4395 | - [801ae4c35450] <4.13-maint> | ||
| 4396 | - | ||
| 4397 | -2012-07-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4398 | - | ||
| 4399 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4400 | - sphinx/annotations.rst, sphinx/directives.rst, | ||
| 4401 | - sphinx/specification_files.rst: | ||
| 4402 | - Implemented the %InstanceCode directive. | ||
| 4403 | - [9b330b545c65] <4.13-maint> | ||
| 4404 | - | ||
| 4405 | -2012-07-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4406 | - | ||
| 4407 | - * sipgen/gencode.c: | ||
| 4408 | - Reformatted some comments. | ||
| 4409 | - [fa8592b30bf5] <4.13-maint> | ||
| 4410 | - | ||
| 4411 | - * configure.py.in, sipgen/export.c, sipgen/extracts.c, | ||
| 4412 | - sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c, | ||
| 4413 | - sipgen/sip.h.in, sipgen/sipgen.sbf, sipgen/transform.c, | ||
| 4414 | - siplib/apiversions.c, siplib/bool.cpp, siplib/descriptors.c, | ||
| 4415 | - siplib/objmap.c, siplib/qtlib.c, siplib/sipint.h, | ||
| 4416 | - siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, | ||
| 4417 | - sphinx/conf.py.in, sphinx/directives.rst: | ||
| 4418 | - Updated the dates on various copyright notices. | ||
| 4419 | - [257d223f5d45] <4.13-maint> | ||
| 4420 | - | ||
| 4421 | -2012-06-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4422 | - | ||
| 4423 | - * sphinx/c_api.rst: | ||
| 4424 | - Fixed a documentation typo. | ||
| 4425 | - [e1a825c52e33] <4.13-maint> | ||
| 4426 | - | ||
| 4427 | -2012-06-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4428 | - | ||
| 4429 | - * .hgtags: | ||
| 4430 | - Added tag 4.13.3 for changeset 589228145d51 | ||
| 4431 | - [1cbf533ebe71] <4.13-maint> | ||
| 4432 | - | ||
| 4433 | - * NEWS: | ||
| 4434 | - Released as v4.13.3. | ||
| 4435 | - [589228145d51] [4.13.3] <4.13-maint> | ||
| 4436 | - | ||
| 4437 | -2012-06-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4438 | - | ||
| 4439 | - * NEWS, siplib/siplib.c.in: | ||
| 4440 | - Another fix for the handling of keyword arguments when used with | ||
| 4441 | - unbound methods. | ||
| 4442 | - [377e9e4763f5] <4.13-maint> | ||
| 4443 | - | ||
| 4444 | -2012-06-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4445 | - | ||
| 4446 | - * siplib/siplib.c.in: | ||
| 4447 | - Fixed the handling of keyword arguments when used with unbound | ||
| 4448 | - methods. | ||
| 4449 | - [cdd78f0c72b2] <4.13-maint> | ||
| 4450 | - | ||
| 4451 | -2012-06-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4452 | - | ||
| 4453 | - * sipgen/gencode.c: | ||
| 4454 | - Apply a cast to the argument to | ||
| 4455 | - sipConvertFrom[Const]VoidPtr[AndSize]() when it was defined with a | ||
| 4456 | - typedef. This makes it easier to use typedef as a way of hiding the | ||
| 4457 | - complexities of a type that SIP doesn't handle. | ||
| 4458 | - [c814c38523ff] <4.13-maint> | ||
| 4459 | - | ||
| 4460 | -2012-05-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4461 | - | ||
| 4462 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4463 | - siplib/siplib.c.in, sphinx/annotations.rst, sphinx/directives.rst: | ||
| 4464 | - The /NoRaisesPyExceptions/ and /RaisesPyExceptions/ function | ||
| 4465 | - annotations can no be used with constructors. Updated the NEWS file. | ||
| 4466 | - [482aa7e3f1ab] <4.13-maint> | ||
| 4467 | - | ||
| 4468 | -2012-04-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4469 | - | ||
| 4470 | - * specs/macx-xcode: | ||
| 4471 | - Removed the macx-xcode file at it isn't supported by the build | ||
| 4472 | - system. | ||
| 4473 | - [31ad477ff5ae] <4.13-maint> | ||
| 4474 | - | ||
| 4475 | -2012-04-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4476 | - | ||
| 4477 | - * sipgen/parser.y: | ||
| 4478 | - Removed the free() of a code block filename now that filenames are | ||
| 4479 | - retained for error messages. | ||
| 4480 | - [16ef20290565] <4.13-maint> | ||
| 4481 | - | ||
| 4482 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4483 | - sipgen/transform.c: | ||
| 4484 | - Error messages related to callables should now include the filename | ||
| 4485 | - and line number of the callable in the .sip source file. | ||
| 4486 | - [fa6c71904d78] <4.13-maint> | ||
| 4487 | - | ||
| 4488 | -2012-04-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4489 | - | ||
| 4490 | - * sipgen/gencode.c: | ||
| 4491 | - Fixed the support for keeping an extra reference to a containing | ||
| 4492 | - class when refering to a member variable. | ||
| 4493 | - [fbb9cdbad791] <4.13-maint> | ||
| 4494 | - | ||
| 4495 | -2012-04-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4496 | - | ||
| 4497 | - * siplib/siplib.c.in: | ||
| 4498 | - Eliminate a race condition in sip_api_is_py_method(). | ||
| 4499 | - [871a7b44c8f0] <4.13-maint> | ||
| 4500 | - | ||
| 4501 | -2012-04-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4502 | - | ||
| 4503 | - * siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4504 | - Improved the text of the exception raised when a wrapped C/C++ | ||
| 4505 | - object doesn't exist. | ||
| 4506 | - [dd2d72cac87f] <4.13-maint> | ||
| 4507 | - | ||
| 4508 | -2012-04-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4509 | - | ||
| 4510 | - * siputils.py: | ||
| 4511 | - Taught the build system about Qt5's QtGui module. | ||
| 4512 | - [8d2739f3225f] <4.13-maint> | ||
| 4513 | - | ||
| 4514 | -2012-04-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4515 | - | ||
| 4516 | - * sipgen/parser.y: | ||
| 4517 | - Allow a string as well as an identifier for arguments to various | ||
| 4518 | - name= settings so that name="name" can be used. | ||
| 4519 | - [d5e6a1fa39f2] <4.13-maint> | ||
| 4520 | - | ||
| 4521 | -2012-03-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4522 | - | ||
| 4523 | - * siplib/siplib.c.in: | ||
| 4524 | - Updated the Unicode support for Python v3.3. | ||
| 4525 | - [0870e512d8dd] <4.13-maint> | ||
| 4526 | - | ||
| 4527 | -2012-03-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4528 | - | ||
| 4529 | - * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h.in.in: | ||
| 4530 | - Ensure a reference is kept to the containing object when getting an | ||
| 4531 | - instance variable that is a non-const wrapped object. This should | ||
| 4532 | - (safely) avoid a certain kind of application bug. | ||
| 4533 | - [0dd3cb4eff0e] <4.13-maint> | ||
| 4534 | - | ||
| 4535 | - * siplib/qtlib.c: | ||
| 4536 | - Effectively backed out change 769 because it causes inconsistent | ||
| 4537 | - behaviour when a method is connected to its object's destroyed() | ||
| 4538 | - method. | ||
| 4539 | - [ca0fb2b4bd89] <4.13-maint> | ||
| 4540 | - | ||
| 4541 | -2012-02-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4542 | - | ||
| 4543 | - * siplib/siplib.c.in: | ||
| 4544 | - If a Python reimplementation is a descriptor then use the descriptor | ||
| 4545 | - protocol to bind it (specifically added for Nuitka). | ||
| 4546 | - [88844f85f705] <4.13-maint> | ||
| 4547 | - | ||
| 4548 | -2012-02-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4549 | - | ||
| 4550 | - * .hgtags: | ||
| 4551 | - Added tag 4.13.2 for changeset 4efeefee717e | ||
| 4552 | - [389a142d1997] <4.13-maint> | ||
| 4553 | - | ||
| 4554 | - * NEWS: | ||
| 4555 | - Updated the NEWS file. Released as v4.13.2. | ||
| 4556 | - [4efeefee717e] [4.13.2] <4.13-maint> | ||
| 4557 | - | ||
| 4558 | -2012-02-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4559 | - | ||
| 4560 | - * sipgen/parser.y: | ||
| 4561 | - Fixed bad pointer bugs in the parsing of exceptions. | ||
| 4562 | - [1058b2c18309] <4.13-maint> | ||
| 4563 | - | ||
| 4564 | -2012-01-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4565 | - | ||
| 4566 | - * siplib/objmap.c: | ||
| 4567 | - Handle aliases properly when discovering that an object has been | ||
| 4568 | - deleted. | ||
| 4569 | - [f51e159f6dff] <4.13-maint> | ||
| 4570 | - | ||
| 4571 | -2011-12-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4572 | - | ||
| 4573 | - * .hgtags: | ||
| 4574 | - Added tag 4.13.1 for changeset a782debccd42 | ||
| 4575 | - [8a56d87be977] <4.13-maint> | ||
| 4576 | - | ||
| 4577 | - * NEWS: | ||
| 4578 | - Released as v4.13.1. | ||
| 4579 | - [a782debccd42] [4.13.1] <4.13-maint> | ||
| 4580 | - | ||
| 4581 | -2011-12-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4582 | - | ||
| 4583 | - * sipgen/gencode.c: | ||
| 4584 | - Fixed a bug in the generation of PyQt signal signatures that caused | ||
| 4585 | - a "const" to be wrongly dropped. | ||
| 4586 | - [39cf1d1d8167] <4.13-maint> | ||
| 4587 | - | ||
| 4588 | -2011-12-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4589 | - | ||
| 4590 | - * siplib/siplib.c.in: | ||
| 4591 | - Properly handle %PickleCode returning NULL. | ||
| 4592 | - [29ec1c523114] <4.13-maint> | ||
| 4593 | - | ||
| 4594 | -2011-12-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4595 | - | ||
| 4596 | - * NEWS, Roadmap.rst, sipgen/main.c: | ||
| 4597 | - Deprecation warnings can no longer be suppressed. Updated the NEWS | ||
| 4598 | - file. Updated the Roadmap. | ||
| 4599 | - [358be4ede9fc] <4.13-maint> | ||
| 4600 | - | ||
| 4601 | -2011-12-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4602 | - | ||
| 4603 | - * siplib/objmap.c: | ||
| 4604 | - Completed the support for object aliases when garbage collecting an | ||
| 4605 | - object. | ||
| 4606 | - [7ab562ae0e39] <4.13-maint> | ||
| 4607 | - | ||
| 4608 | - * siplib/objmap.c, siplib/sip.h.in.in, siplib/sipint.h, | ||
| 4609 | - siplib/siplib.c.in: | ||
| 4610 | - When an object that uses multiple inheritance in its class hierachy | ||
| 4611 | - is wrapped, all of its addresses when cast to the different super- | ||
| 4612 | - classes are internally registered as aliases. This means that the | ||
| 4613 | - original object will be found when given an address that is | ||
| 4614 | - different as a result of a cast. (Note that the support for removing | ||
| 4615 | - aliases when the object is garbage collected is not yet done.) | ||
| 4616 | - [da88157d2f03] <4.13-maint> | ||
| 4617 | - | ||
| 4618 | -2011-12-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4619 | - | ||
| 4620 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 4621 | - Backed out 1013. It breaks when the method is overloaded in a super- | ||
| 4622 | - class but only one overload is reimplemented in this class so the | ||
| 4623 | - compiler doesn't see the other overload in the super-class so we | ||
| 4624 | - must refer to it explicitly. | ||
| 4625 | - [82af71f0adcb] <4.13-maint> | ||
| 4626 | - | ||
| 4627 | - * sipgen/gencode.c: | ||
| 4628 | - Backed out 1014. | ||
| 4629 | - [e50d347a15db] <4.13-maint> | ||
| 4630 | - | ||
| 4631 | -2011-11-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4632 | - | ||
| 4633 | - * sipgen/parser.y: | ||
| 4634 | - Fixed the generation of handlers for virtuals defined in templates. | ||
| 4635 | - [98421b9cc511] <4.13-maint> | ||
| 4636 | - | ||
| 4637 | - * siputils.py: | ||
| 4638 | - The build system now handles recursively defined macros. | ||
| 4639 | - [5d7476cbb504] <4.13-maint> | ||
| 4640 | - | ||
| 4641 | -2011-11-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4642 | - | ||
| 4643 | - * sipgen/gencode.c: | ||
| 4644 | - sipSelf is now generated with the correct const qualifier. | ||
| 4645 | - [3c46012c8562] <4.13-maint> | ||
| 4646 | - | ||
| 4647 | - * NEWS, sipgen/parser.y, sphinx/specification_files.rst: | ||
| 4648 | - Protected and private super-classes can now be specified but are | ||
| 4649 | - otherwise ignored. | ||
| 4650 | - [f331e22716d9] <4.13-maint> | ||
| 4651 | - | ||
| 4652 | - * custom/mkcustom.py: | ||
| 4653 | - Support for sys.platform being 'linux3'. | ||
| 4654 | - [01a339a7f2e9] <4.13-maint> | ||
| 4655 | - | ||
| 4656 | -2011-11-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4657 | - | ||
| 4658 | - * NEWS, sipgen/parser.y, sphinx/annotations.rst: | ||
| 4659 | - Added the /PyName/ typedef annotation. | ||
| 4660 | - [8c147224120a] <4.13-maint> | ||
| 4661 | - | ||
| 4662 | -2011-11-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4663 | - | ||
| 4664 | - * siputils.py: | ||
| 4665 | - Fixed the build system for building a debug version of PyQt on OS/X. | ||
| 4666 | - [3b44dc2f0efd] <4.13-maint> | ||
| 4667 | - | ||
| 4668 | - * NEWS, sipgen/parser.y, sipgen/sip.h.in, sipgen/transform.c: | ||
| 4669 | - Class templates now allow template arguments to be used as a super- | ||
| 4670 | - class. | ||
| 4671 | - [08e44ad74137] <4.13-maint> | ||
| 4672 | - | ||
| 4673 | -2011-11-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4674 | - | ||
| 4675 | - * NEWS, sipgen/parser.y: | ||
| 4676 | - Added support for 'public' preceding the name of a class in a super- | ||
| 4677 | - class list. | ||
| 4678 | - [7fbb8a754a81] <4.13-maint> | ||
| 4679 | - | ||
| 4680 | - * sipgen/parser.y, sphinx/annotations.rst, sphinx/directives.rst, | ||
| 4681 | - sphinx/specification_files.rst, sphinx/using.rst: | ||
| 4682 | - Updated the docs where the examples refered to deprecated syntax. | ||
| 4683 | - [36208e0a6773] <4.13-maint> | ||
| 4684 | - | ||
| 4685 | - * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4686 | - sphinx/annotations.rst, sphinx/directives.rst: | ||
| 4687 | - Added the all_raise_py_exception argument to the %Module directive. | ||
| 4688 | - Added the /NoRaisesPyException/ function annotation. | ||
| 4689 | - [bf725fdfd029] <4.13-maint> | ||
| 4690 | - | ||
| 4691 | - * sipgen/gencode.c: | ||
| 4692 | - Fixed the previous change for classes contained in namespaces. | ||
| 4693 | - [09411053ef1b] <4.13-maint> | ||
| 4694 | - | ||
| 4695 | - * sipgen/gencode.c, sipgen/sip.h.in, sipgen/transform.c: | ||
| 4696 | - Virtual catchers will now call the most recent C++ implementation | ||
| 4697 | - (if there is no Python reimplementation) even if it is unknown to | ||
| 4698 | - SIP rather than the most recent implementation that SIP knows about. | ||
| 4699 | - [8893e36b8ca3] <4.13-maint> | ||
| 4700 | - | ||
| 4701 | -2011-11-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4702 | - | ||
| 4703 | - * sipgen/gencode.c: | ||
| 4704 | - Updated some code generator comments. | ||
| 4705 | - [fad4bdca5bbd] <4.13-maint> | ||
| 4706 | - | ||
| 4707 | -2011-11-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4708 | - | ||
| 4709 | - * siputils.py: | ||
| 4710 | - Make sure PyQt's internal static support libraries don't get added | ||
| 4711 | - to rpath. | ||
| 4712 | - [91848382e6fd] <4.13-maint> | ||
| 4713 | - | ||
| 4714 | -2011-11-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4715 | - | ||
| 4716 | - * sipgen/parser.y: | ||
| 4717 | - Added support for void template arguments. | ||
| 4718 | - [1c699c672ed7] <4.13-maint> | ||
| 4719 | - | ||
| 4720 | -2011-10-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4721 | - | ||
| 4722 | - * .hgtags: | ||
| 4723 | - Added tag 4.13 for changeset 0869eb93c773 | ||
| 4724 | - [3b2a3fb3fdda] | ||
| 4725 | - | ||
| 4726 | - * NEWS: | ||
| 4727 | - Released as v4.13. | ||
| 4728 | - [0869eb93c773] [4.13] | ||
| 4729 | - | ||
| 4730 | - * Merged the v4.12 maintenance branch into the trunk. | ||
| 4731 | - [021e97baeeb0] | ||
| 4732 | - | ||
| 4733 | - * NEWS: | ||
| 4734 | - Updated the NEWS file. | ||
| 4735 | - [af334da384fd] <4.12-maint> | ||
| 4736 | - | ||
| 4737 | -2011-10-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4738 | - | ||
| 4739 | - * sipgen/parser.y, sphinx/specification_files.rst: | ||
| 4740 | - '*' and '&' are now accepted as unary operators in expressions used | ||
| 4741 | - to define the values of default arguments. | ||
| 4742 | - [4eba42cb2457] <4.12-maint> | ||
| 4743 | - | ||
| 4744 | - * sipgen/parser.y, sipgen/sip.h.in: | ||
| 4745 | - Further fix for overloads with a variant that is protected and a | ||
| 4746 | - variant that has optional arguments defined in a module that | ||
| 4747 | - supports keyword arguments imported by a module that doesn't. | ||
| 4748 | - [79951a333f30] <4.12-maint> | ||
| 4749 | - | ||
| 4750 | -2011-10-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4751 | - | ||
| 4752 | - * sipgen/gencode.c, sphinx/annotations.rst: | ||
| 4753 | - The /Transfer/ annotation can now be used with the /Array/ | ||
| 4754 | - annotation to prevent the freeing of the temporary array of | ||
| 4755 | - pointers. | ||
| 4756 | - [3a009ee97d60] <4.12-maint> | ||
| 4757 | - | ||
| 4758 | -2011-10-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4759 | - | ||
| 4760 | - * NEWS, siplib/siplib.c.in, sphinx/directives.rst: | ||
| 4761 | - %ConvertToSubClassCode can now cause a restart of the conversion | ||
| 4762 | - process using a different requested type. This enables the correct | ||
| 4763 | - handling of PyQt's QLayoutItem. | ||
| 4764 | - [fa212070a486] <4.12-maint> | ||
| 4765 | - | ||
| 4766 | -2011-10-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4767 | - | ||
| 4768 | - * siplib/siplib.c.in: | ||
| 4769 | - sipIsPyMethod() now allows for an object's type's tp_mro to be NULL. | ||
| 4770 | - This can happen when the only instance of a dynamically created type | ||
| 4771 | - is in the process of being garbage collected. | ||
| 4772 | - [d66046441fa8] <4.12-maint> | ||
| 4773 | - | ||
| 4774 | -2011-10-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4775 | - | ||
| 4776 | - * siplib/siplib.c.in: | ||
| 4777 | - Commit backout. | ||
| 4778 | - [6e11ad753de6] <4.12-maint> | ||
| 4779 | - | ||
| 4780 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4781 | - Backed out changeset 0bcc2ce09ba0 This (and the following changeset) | ||
| 4782 | - doesn't seem to make a difference. | ||
| 4783 | - [2df67f4a3294] <4.12-maint> | ||
| 4784 | - | ||
| 4785 | - * siplib/siplib.c.in: | ||
| 4786 | - Commit backout. | ||
| 4787 | - [4a9b20624f88] <4.12-maint> | ||
| 4788 | - | ||
| 4789 | - * siplib/siplib.c.in: | ||
| 4790 | - Backed out changeset de3fe63e5dec This (and the previous changeset) | ||
| 4791 | - doesn't seem to make a difference. | ||
| 4792 | - [78740eff2bf4] <4.12-maint> | ||
| 4793 | - | ||
| 4794 | -2011-09-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4795 | - | ||
| 4796 | - * siplib/siplib.c.in: | ||
| 4797 | - Add an atexit function that will disable all Python | ||
| 4798 | - reimplementations of virtuals. | ||
| 4799 | - [de6a700f5faa] <4.12-maint> | ||
| 4800 | - | ||
| 4801 | -2011-09-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4802 | - | ||
| 4803 | - * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 4804 | - sphinx/directives.rst: | ||
| 4805 | - Added the %DefaultDocstringFormat directive. Added the format | ||
| 4806 | - argument to the %Docstring directive. | ||
| 4807 | - [dba052605539] <4.12-maint> | ||
| 4808 | - | ||
| 4809 | -2011-09-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4810 | - | ||
| 4811 | - * siplib/siplib.c.in: | ||
| 4812 | - Fixed the previous fix to sipIsPyMethod() so that it doesn't retain | ||
| 4813 | - the GIL. | ||
| 4814 | - [de3fe63e5dec] <4.12-maint> | ||
| 4815 | - | ||
| 4816 | -2011-09-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4817 | - | ||
| 4818 | - * sipgen/gencode.c, siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 4819 | - sipIsPyMethod() now acquires the GIL before checking if the Python | ||
| 4820 | - object has been garbage collected. | ||
| 4821 | - [0bcc2ce09ba0] <4.12-maint> | ||
| 4822 | - | ||
| 4823 | - * siplib/siplib.c.in: | ||
| 4824 | - Fixed a typo in a comment. | ||
| 4825 | - [c4ad84eeed37] <4.12-maint> | ||
| 4826 | - | ||
| 4827 | - * siplib/siplib.c.in: | ||
| 4828 | - Added a missing Py_DECREF() on a (very rarely used) error handling | ||
| 4829 | - path. | ||
| 4830 | - [a99ab15f7b18] <4.12-maint> | ||
| 4831 | - | ||
| 4832 | -2011-09-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4833 | - | ||
| 4834 | - * sipgen/gencode.c: | ||
| 4835 | - Fixed a code generation bug where a module with keyword arguments | ||
| 4836 | - disabled derives from a class imported from a module with them | ||
| 4837 | - enabled. | ||
| 4838 | - [1c3d2412e35a] <4.12-maint> | ||
| 4839 | - | ||
| 4840 | -2011-08-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4841 | - | ||
| 4842 | - * sipgen/gencode.c: | ||
| 4843 | - PyQt will now only delete a QObject if the QObject belongs to the | ||
| 4844 | - current thread, otherwise it calls deleteLater(). | ||
| 4845 | - [c2987628087f] <4.12-maint> | ||
| 4846 | - | ||
| 4847 | -2011-08-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4848 | - | ||
| 4849 | - * .hgtags: | ||
| 4850 | - Added tag 4.12.4 for changeset 7dff386f6d8c | ||
| 4851 | - [49580889fa23] <4.12-maint> | ||
| 4852 | - | ||
| 4853 | - * NEWS: | ||
| 4854 | - Released as v4.12.4. | ||
| 4855 | - [7dff386f6d8c] [4.12.4] <4.12-maint> | ||
| 4856 | - | ||
| 4857 | -2011-07-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4858 | - | ||
| 4859 | - * NEWS, siputils.py: | ||
| 4860 | - Added support for Qt configured with -qtlibinfix based on a patch | ||
| 4861 | - from Ian Scott. | ||
| 4862 | - [d87cea364549] <4.12-maint> | ||
| 4863 | - | ||
| 4864 | - * NEWS, sipgen/gencode.c, siplib/siplib.c.in: | ||
| 4865 | - Switched to using PyLong_AsUnsignedLongMask() and | ||
| 4866 | - PyLong_AsUnsignedLongLongMask() instead of the non-mask versions so | ||
| 4867 | - that overflow is ignored. | ||
| 4868 | - [533e6a9e3e3a] <4.12-maint> | ||
| 4869 | - | ||
| 4870 | -2011-07-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4871 | - | ||
| 4872 | - * sipgen/gencode.c: | ||
| 4873 | - Make sure the %TypeHeaderCode of a /Default/ %Exception is included. | ||
| 4874 | - [bbe43a0bad78] <4.12-maint> | ||
| 4875 | - | ||
| 4876 | -2011-06-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4877 | - | ||
| 4878 | - * siplib/siplib.c.in: | ||
| 4879 | - Fixed a regression introduced in the recent sipIsPyMethod() changes | ||
| 4880 | - in the handling of special methods implemented by object (eg. | ||
| 4881 | - __lt__). | ||
| 4882 | - [f9f4b161c940] <4.12-maint> | ||
| 4883 | - | ||
| 4884 | - * siplib/siplib.c.in: | ||
| 4885 | - Fixed some other warnings from more (undocumented) Python v3.2 | ||
| 4886 | - changes. | ||
| 4887 | - [df42f6bf92c8] <4.12-maint> | ||
| 4888 | - | ||
| 4889 | - * siplib/sip.h.in.in, siplib/voidptr.c: | ||
| 4890 | - Fixed sipConvertFromSliceObject() for Python v3.2. | ||
| 4891 | - [3d0336c32dfa] <4.12-maint> | ||
| 4892 | - | ||
| 4893 | -2011-06-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4894 | - | ||
| 4895 | - * build.py: | ||
| 4896 | - Fixed the build system for MacOS as the development platform. | ||
| 4897 | - [fdd3cecee60d] <4.12-maint> | ||
| 4898 | - | ||
| 4899 | -2011-05-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4900 | - | ||
| 4901 | - * .hgtags: | ||
| 4902 | - Added tag 4.12.3 for changeset 50282bee0c60 | ||
| 4903 | - [54c00a0e9c01] <4.12-maint> | ||
| 4904 | - | ||
| 4905 | - * NEWS: | ||
| 4906 | - Released as v4.12.3. | ||
| 4907 | - [50282bee0c60] [4.12.3] <4.12-maint> | ||
| 4908 | - | ||
| 4909 | -2011-05-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4910 | - | ||
| 4911 | - * sipgen/gencode.c: | ||
| 4912 | - Generated signal signatures no longer remove the reference '&' for | ||
| 4913 | - non-const arguments. | ||
| 4914 | - [274e38133e7a] <4.12-maint> | ||
| 4915 | - | ||
| 4916 | - * siplib/siplib.c.in: | ||
| 4917 | - Fixed the calling of hooks for Python3. | ||
| 4918 | - [192dfa04b3ac] <4.12-maint> | ||
| 4919 | - | ||
| 4920 | -2011-05-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4921 | - | ||
| 4922 | - * siplib/siplib.c.in, sphinx/incompatibilities.rst: | ||
| 4923 | - When searching for a Python reimplementation of a virtual C++ | ||
| 4924 | - method, any object that is not a C++ method wrapper is assumed to be | ||
| 4925 | - valid. Previously, if it wasn't a Python function or method then it | ||
| 4926 | - would be ignored. This is a potential incompatibility, but any code | ||
| 4927 | - that is affected is either buggy or badly written. | ||
| 4928 | - [f95ee221598d] <4.12-maint> | ||
| 4929 | - | ||
| 4930 | -2011-04-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4931 | - | ||
| 4932 | - * .hgtags: | ||
| 4933 | - Added tag 4.12.2 for changeset dd8f52a95d04 | ||
| 4934 | - [b99179c54a07] <4.12-maint> | ||
| 4935 | - | ||
| 4936 | - * NEWS: | ||
| 4937 | - Released as v4.12.2. | ||
| 4938 | - [dd8f52a95d04] [4.12.2] <4.12-maint> | ||
| 4939 | - | ||
| 4940 | -2011-04-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4941 | - | ||
| 4942 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c: | ||
| 4943 | - Added support for global inplace numeric operators. | ||
| 4944 | - [af33bd829af3] <4.12-maint> | ||
| 4945 | - | ||
| 4946 | - * sipdistutils.py: | ||
| 4947 | - Updated the license and copyright information for sipdistutils.py. | ||
| 4948 | - [94f4971497a9] <4.12-maint> | ||
| 4949 | - | ||
| 4950 | -2011-04-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4951 | - | ||
| 4952 | - * sipgen/parser.y: | ||
| 4953 | - Made sure thngs were initialised to 0 properly when parsing new- | ||
| 4954 | - style directives for variables. | ||
| 4955 | - [c3f5a8b89968] <4.12-maint> | ||
| 4956 | - | ||
| 4957 | -2011-04-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4958 | - | ||
| 4959 | - * NEWS, sipgen/parser.y: | ||
| 4960 | - Handwritten code in class templates no longer has types substituted | ||
| 4961 | - in lines that appear to be C preprocessor directives. This prevents | ||
| 4962 | - #include'd file names getting substituted. | ||
| 4963 | - [e039b65daa03] <4.12-maint> | ||
| 4964 | - | ||
| 4965 | -2011-04-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4966 | - | ||
| 4967 | - * siplib/siplib.c.in: | ||
| 4968 | - Fixed a regression in the handling of keyword arguments. | ||
| 4969 | - [f68e042c94f5] <4.12-maint> | ||
| 4970 | - | ||
| 4971 | -2011-03-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4972 | - | ||
| 4973 | - * NEWS: | ||
| 4974 | - Updated the news file. | ||
| 4975 | - [ec9807971e08] <4.12-maint> | ||
| 4976 | - | ||
| 4977 | -2011-03-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4978 | - | ||
| 4979 | - * sipgen/parser.y: | ||
| 4980 | - The names of optional arguments to protected methods are generated | ||
| 4981 | - no matter what module the method is defined in. | ||
| 4982 | - [fe4c052830ff] <4.12-maint> | ||
| 4983 | - | ||
| 4984 | - * sipgen/gencode.c: | ||
| 4985 | - Another fix for the bad protected enum fix. | ||
| 4986 | - [d112d90bcbfd] <4.12-maint> | ||
| 4987 | - | ||
| 4988 | - * sipgen/parser.y: | ||
| 4989 | - Fixed a bug where keyword argument names were being generated when | ||
| 4990 | - being defined in a parent module. | ||
| 4991 | - [3e11c4b7d541] <4.12-maint> | ||
| 4992 | - | ||
| 4993 | -2011-03-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 4994 | - | ||
| 4995 | - * sipgen/parser.y: | ||
| 4996 | - Mapped type template arguments now include "const" if appropriate. | ||
| 4997 | - [22c5009485a8] <4.12-maint> | ||
| 4998 | - | ||
| 4999 | - * sipgen/gencode.c: | ||
| 5000 | - Fixed a regression that caused enums in namespaces to be ignored. | ||
| 5001 | - [f9b89f2c1c7d] <4.12-maint> | ||
| 5002 | - | ||
| 5003 | -2011-03-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5004 | - | ||
| 5005 | - * siplib/siplib.c.in: | ||
| 5006 | - The keyword support now explicitly checks that keywords are | ||
| 5007 | - provided. Python handles this for ordinary methods but not for | ||
| 5008 | - __init__. | ||
| 5009 | - [05718fa95834] <4.12-maint> | ||
| 5010 | - | ||
| 5011 | -2011-03-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5012 | - | ||
| 5013 | - * sipgen/gencode.c: | ||
| 5014 | - Code is no longer generated for protected enums of /Abstract/ | ||
| 5015 | - classes. | ||
| 5016 | - [d349bb35cdcc] <4.12-maint> | ||
| 5017 | - | ||
| 5018 | -2011-03-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5019 | - | ||
| 5020 | - * sipgen/gencode.c: | ||
| 5021 | - The /KeepReference/ function annotation now keeps a reference even | ||
| 5022 | - if the result is already owned by Python. | ||
| 5023 | - [ecb3e795382e] <4.12-maint> | ||
| 5024 | - | ||
| 5025 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c, | ||
| 5026 | - sphinx/annotations.rst: | ||
| 5027 | - /KeepReference/ can now be used as a function annotation. | ||
| 5028 | - [dc7effca2a82] <4.12-maint> | ||
| 5029 | - | ||
| 5030 | - * configure.py.in: | ||
| 5031 | - A fix for when building outside the source directory. | ||
| 5032 | - [942f1b8ac66b] <4.12-maint> | ||
| 5033 | - | ||
| 5034 | -2011-03-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5035 | - | ||
| 5036 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h.in, | ||
| 5037 | - sipgen/transform.c: | ||
| 5038 | - The %TypeHeaderCode from a class template is now included in the | ||
| 5039 | - generated code. | ||
| 5040 | - [b5992208a757] <4.12-maint> | ||
| 5041 | - | ||
| 5042 | -2011-02-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5043 | - | ||
| 5044 | - * sipgen/parser.y, sipgen/transform.c: | ||
| 5045 | - typedefs in class templates are now handled correctly. | ||
| 5046 | - [62e2faa4fb81] <4.12-maint> | ||
| 5047 | - | ||
| 5048 | - * sipgen/transform.c: | ||
| 5049 | - When comparing mapped type templates the number of dereferences of | ||
| 5050 | - the template arguments is now taken into account. | ||
| 5051 | - [9cf3969984a5] <4.12-maint> | ||
| 5052 | - | ||
| 5053 | -2011-02-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5054 | - | ||
| 5055 | - * sipgen/gencode.c: | ||
| 5056 | - %Docstring applied to a Qt signal is no longer ignored. | ||
| 5057 | - [0fae9a0aae28] <4.12-maint> | ||
| 5058 | - | ||
| 5059 | -2011-02-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5060 | - | ||
| 5061 | - * sipgen/gencode.c: | ||
| 5062 | - Fixed /KeepReference/ when used with ctors. | ||
| 5063 | - [1a5475b48b7c] <4.12-maint> | ||
| 5064 | - | ||
| 5065 | -2011-01-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5066 | - | ||
| 5067 | - * .hgtags: | ||
| 5068 | - Added tag 4.12.1 for changeset 6a8117e8b16a | ||
| 5069 | - [2ead36288f97] <4.12-maint> | ||
| 5070 | - | ||
| 5071 | - * NEWS, build.py: | ||
| 5072 | - Released as v4.12.1. | ||
| 5073 | - [6a8117e8b16a] [4.12.1] <4.12-maint> | ||
| 5074 | - | ||
| 5075 | -2011-01-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5076 | - | ||
| 5077 | - * siplib/siplib.c.in: | ||
| 5078 | - Tweaked an exception message to make it easier to mimic in | ||
| 5079 | - handwritten code. | ||
| 5080 | - [426308437843] <4.12-maint> | ||
| 5081 | - | ||
| 5082 | - * sipgen/transform.c: | ||
| 5083 | - sip will now longer complain about callables with the same Python | ||
| 5084 | - signature if either of them has %MethodCode as it assumes that the | ||
| 5085 | - %MethodCode will resolve any potential conflicts. | ||
| 5086 | - [9ed59e5c8070] <4.12-maint> | ||
| 5087 | - | ||
| 5088 | -2011-01-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5089 | - | ||
| 5090 | - * build.py, sphinx/conf.py.in, sphinx/static/default.css, | ||
| 5091 | - sphinx/static/logo.png, sphinx/static/logo_tn.ico: | ||
| 5092 | - Added a new Sphinx stylesheet. | ||
| 5093 | - [c0c94278423e] <4.12-maint> | ||
| 5094 | - | ||
| 5095 | -2011-01-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5096 | - | ||
| 5097 | - * NEWS: | ||
| 5098 | - Updated the NEWS file. | ||
| 5099 | - [fa100876a783] <4.12-maint> | ||
| 5100 | - | ||
| 5101 | -2011-01-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5102 | - | ||
| 5103 | - * LICENSE, build.py, configure.py.in, sipgen/export.c, | ||
| 5104 | - sipgen/extracts.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, | ||
| 5105 | - sipgen/main.c, sipgen/parser.y, sipgen/sip.h.in, sipgen/sipgen.sbf, | ||
| 5106 | - sipgen/transform.c, siplib/apiversions.c, siplib/bool.cpp, | ||
| 5107 | - siplib/descriptors.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 5108 | - siplib/sip.h.in.in, siplib/sipint.h, siplib/siplib.c.in, | ||
| 5109 | - siplib/siplib.sbf.in, siplib/threads.c, siplib/voidptr.c, | ||
| 5110 | - siputils.py, sphinx/conf.py.in, sphinx/directives.rst: | ||
| 5111 | - Updated the copyright notices. | ||
| 5112 | - [42e1cfe37140] <4.12-maint> | ||
| 5113 | - | ||
| 5114 | - * sphinx/directives.rst: | ||
| 5115 | - Fixed a documentation typo. | ||
| 5116 | - [e54f022f78f6] <4.12-maint> | ||
| 5117 | - | ||
| 5118 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 5119 | - sphinx/annotations.rst: | ||
| 5120 | - Added the /RaisesPyException/ function annotation. | ||
| 5121 | - [649736ef0ab2] <4.12-maint> | ||
| 5122 | - | ||
| 5123 | -2011-01-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5124 | - | ||
| 5125 | - * configure.py.in, siputils.py, sphinx/build_system.rst, | ||
| 5126 | - sphinx/installation.rst: | ||
| 5127 | - Added the --deployment-target option to configure.py which should be | ||
| 5128 | - used to work around bugs in the latest versions of Python on | ||
| 5129 | - MacOS/X. | ||
| 5130 | - [18c8fe174f38] <4.12-maint> | ||
| 5131 | - | ||
| 5132 | -2011-01-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5133 | - | ||
| 5134 | - * sipgen/gencode.c: | ||
| 5135 | - Fixed a code generation bug in the %MethodCode error handling for | ||
| 5136 | - zero argument slots. | ||
| 5137 | - [4ed8b04e7e7a] <4.12-maint> | ||
| 5138 | - | ||
| 5139 | -2010-12-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5140 | - | ||
| 5141 | - * sipgen/lexer.l, sipgen/parser.y, sphinx/specification_files.rst: | ||
| 5142 | - Added SIP_SSIZE_T as a pre-defined type so it can be used in .sip | ||
| 5143 | - files. | ||
| 5144 | - [1871ed7f3c9b] <4.12-maint> | ||
| 5145 | - | ||
| 5146 | - * sipgen/parser.y, sphinx/specification_files.rst: | ||
| 5147 | - PyObject * is now a synonym for SIP_PYOBJECT in .sip files. | ||
| 5148 | - [56e378d55db0] <4.12-maint> | ||
| 5149 | - | ||
| 5150 | - * siplib/siplib.c.in, sphinx/python_api.rst: | ||
| 5151 | - Added sip.ispycreated(). | ||
| 5152 | - [e1efc2847290] <4.12-maint> | ||
| 5153 | - | ||
| 5154 | -2010-12-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5155 | - | ||
| 5156 | - * NEWS, sipgen/parser.y, siplib/siplib.c.in, | ||
| 5157 | - sphinx/specification_files.rst: | ||
| 5158 | - Added support for the __getattribute__ and __getattr__ methods. | ||
| 5159 | - [1da2e2e9fa1c] <4.12-maint> | ||
| 5160 | - | ||
| 5161 | -2010-12-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5162 | - | ||
| 5163 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h.in, | ||
| 5164 | - siplib/sip.h.in.in, siplib/siplib.c.in, | ||
| 5165 | - sphinx/specification_files.rst: | ||
| 5166 | - Added support for __setattr__ and __delattr__ methods. | ||
| 5167 | - [3f7a1f5bff74] <4.12-maint> | ||
| 5168 | - | ||
| 5169 | - * siplib/siplib.c.in: | ||
| 5170 | - The lazy attributes of a type are added when the first instance of | ||
| 5171 | - the type is created. This leaves the instance tp_getattro and | ||
| 5172 | - tp_setattro slots available. | ||
| 5173 | - [12a8fc4ee75a] <4.12-maint> | ||
| 5174 | - | ||
| 5175 | -2010-12-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5176 | - | ||
| 5177 | - * NEWS: | ||
| 5178 | - Fixed some errors in the NEWS file. | ||
| 5179 | - [44a6a3833477] <4.12-maint> | ||
| 5180 | - | ||
| 5181 | -2010-12-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5182 | - | ||
| 5183 | - * .hgtags: | ||
| 5184 | - Added tag 4.12 for changeset 4a79f5996bd7 | ||
| 5185 | - [111436ade941] | ||
| 5186 | - | ||
| 5187 | - * NEWS: | ||
| 5188 | - Released as v4.12. | ||
| 5189 | - [4a79f5996bd7] [4.12] | ||
| 5190 | - | ||
| 5191 | - * sipgen/gencode.c: | ||
| 5192 | - A further fix for Python v2.4 and earlier. | ||
| 5193 | - [5e655e94fc64] | ||
| 5194 | - | ||
| 5195 | - * sipgen/gencode.c: | ||
| 5196 | - Fixed the code generated for a composite module an Python v2.4 and | ||
| 5197 | - earlier. | ||
| 5198 | - [00b0fadcf6fc] | ||
| 5199 | - | ||
| 5200 | - * siplib/voidptr.c: | ||
| 5201 | - Add a couple of casts for MSVC2008. | ||
| 5202 | - [68916b34ac59] | ||
| 5203 | - | ||
| 5204 | -2010-12-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5205 | - | ||
| 5206 | - * sphinx/python_api.rst: | ||
| 5207 | - Updated the documentation regarding the sip.simplewrapper type. | ||
| 5208 | - [0f92caeb5770] | ||
| 5209 | - | ||
| 5210 | - * sipgen/parser.y, sipgen/transform.c: | ||
| 5211 | - Fixed a bug looking up mapped types that are templates with enum | ||
| 5212 | - arguments. | ||
| 5213 | - [1212ca61ef1d] | ||
| 5214 | - | ||
| 5215 | -2010-12-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5216 | - | ||
| 5217 | - * sipgen/transform.c: | ||
| 5218 | - Fixed the inclusion of header files for init extenders. | ||
| 5219 | - [171d8f4e9f3a] | ||
| 5220 | - | ||
| 5221 | -2010-12-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5222 | - | ||
| 5223 | - * siplib/voidptr.c: | ||
| 5224 | - sip.voidptr now uses PyLong_AsVoidPtr() for all versions of Python. | ||
| 5225 | - [3d4ccc59c9c3] | ||
| 5226 | - | ||
| 5227 | -2010-12-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5228 | - | ||
| 5229 | - * configure.py.in: | ||
| 5230 | - Improved the configure.py error message when an invalid build macro | ||
| 5231 | - is given. | ||
| 5232 | - [631ded439583] | ||
| 5233 | - | ||
| 5234 | - * Roadmap.rst: | ||
| 5235 | - Removed the section of the roadmap stating that SIP v5 will require | ||
| 5236 | - types to be defined in advance of being used because (after thinking | ||
| 5237 | - about it properly) in would be a complete pain for the user. | ||
| 5238 | - [02eee09f591f] | ||
| 5239 | - | ||
| 5240 | - * sipgen/sip.h, sipgen/sip.h.in: | ||
| 5241 | - Fixed an apparent hg problem with sipgen/sip.h[.in]. | ||
| 5242 | - [1fd9ca0698a0] | ||
| 5243 | - | ||
| 5244 | -2010-12-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5245 | - | ||
| 5246 | - * sipgen/lexer.l, sipgen/sip.h: | ||
| 5247 | - Fixed the parsing of %Extract. | ||
| 5248 | - [393564f2cfeb] | ||
| 5249 | - | ||
| 5250 | - * sipgen/gencode.c: | ||
| 5251 | - Make sure backslashes in generated #line directives are escaped. | ||
| 5252 | - [cc58da4653e7] | ||
| 5253 | - | ||
| 5254 | - * sipgen/parser.y, sipgen/sip.h: | ||
| 5255 | - A deprecation warning is issues for any argument annotations in an | ||
| 5256 | - explicit C/C++ signature. | ||
| 5257 | - [8d0e2a1b1d1c] | ||
| 5258 | - | ||
| 5259 | - * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: | ||
| 5260 | - /AllowNone/ is a valid class annotation. | ||
| 5261 | - [e94d52f996d7] | ||
| 5262 | - | ||
| 5263 | -2010-12-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5264 | - | ||
| 5265 | - * sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst: | ||
| 5266 | - Deprecation warning are now generated for any invalid annotation. | ||
| 5267 | - Updated the docs so that annotations are mentioned in all the | ||
| 5268 | - contexts that they can applied to. | ||
| 5269 | - [a3715d0c74a5] | ||
| 5270 | - | ||
| 5271 | - * NEWS, build.py, sipgen/main.c, sipgen/main.c.in, sipgen/parser.y, | ||
| 5272 | - sipgen/sip.h, sphinx/directives.rst: | ||
| 5273 | - Added the automatic pseudo-%Timeline of SIP version numbers. | ||
| 5274 | - [50fc306bfb6d] | ||
| 5275 | - | ||
| 5276 | - * NEWS, sphinx/annotations.rst: | ||
| 5277 | - Documented /PyInt/ as a typedef annotation. | ||
| 5278 | - [0d8a873e3d30] | ||
| 5279 | - | ||
| 5280 | -2010-12-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5281 | - | ||
| 5282 | - * NEWS, siplib/sip.h.in.in, siplib/siplib.c.in, sphinx/c_api.rst: | ||
| 5283 | - Added sipGetAddress() to the public API. | ||
| 5284 | - [b202f0d04ba6] | ||
| 5285 | - | ||
| 5286 | -2010-11-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5287 | - | ||
| 5288 | - * sipgen/main.c.in, sphinx/command_line.rst: | ||
| 5289 | - Don't try and issue warnings until the -w flag has been parsed. | ||
| 5290 | - [64e98b58216b] | ||
| 5291 | - | ||
| 5292 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c.in, | ||
| 5293 | - sipgen/parser.y, sipgen/sip.h, sphinx/annotations.rst, | ||
| 5294 | - sphinx/command_line.rst, sphinx/directives.rst: | ||
| 5295 | - Added the 'keyword_arguments' argument to %Module. The /KeywordArgs/ | ||
| 5296 | - annotation now takes a string value describing the level of keyword | ||
| 5297 | - argument support. The previous behavior is deprecated. Deprecated | ||
| 5298 | - the /NoKeywordArgs/ annotation. Deprecated the code generator's -k | ||
| 5299 | - command line option. | ||
| 5300 | - [2294802123f4] | ||
| 5301 | - | ||
| 5302 | -2010-11-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5303 | - | ||
| 5304 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 5305 | - More generic parser fixes for directives that allow an argument | ||
| 5306 | - without requiring parentheses. | ||
| 5307 | - [1d6ba419952c] | ||
| 5308 | - | ||
| 5309 | -2010-11-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5310 | - | ||
| 5311 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5312 | - Semi-colons are now not allowed after directives with no sub- | ||
| 5313 | - directives but are now required after the closing brace after sub- | ||
| 5314 | - directives. | ||
| 5315 | - [1a300e9d7f80] | ||
| 5316 | - | ||
| 5317 | - * sipgen/parser.y: | ||
| 5318 | - Tidy up some coding inconsistencies in the parser. | ||
| 5319 | - [c86ace2573fd] | ||
| 5320 | - | ||
| 5321 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 5322 | - The (internal) %Plgin directive now uses the revised syntax. | ||
| 5323 | - [86a793919cd1] | ||
| 5324 | - | ||
| 5325 | - * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst: | ||
| 5326 | - %Timeline now respects %If/%End. | ||
| 5327 | - [d227e7ea1eac] | ||
| 5328 | - | ||
| 5329 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5330 | - %Platforms now respects %If/%End. | ||
| 5331 | - [3c1e4cb9dd4c] | ||
| 5332 | - | ||
| 5333 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5334 | - %Doc and %ExportedDoc now respect %If/%End. | ||
| 5335 | - [e3f95120f8c9] | ||
| 5336 | - | ||
| 5337 | - * sipgen/lexer.l, sipgen/parser.y, sphinx/directives.rst: | ||
| 5338 | - %OptionalInclude is now deprecated. | ||
| 5339 | - [fbfa68d0b559] | ||
| 5340 | - | ||
| 5341 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5342 | - The %MappedType sub-directives now respect %If/%End. | ||
| 5343 | - [afb6cb9b21b9] | ||
| 5344 | - | ||
| 5345 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5346 | - sphinx/annotations.rst, sphinx/conf.py.in, sphinx/directives.rst: | ||
| 5347 | - %License now uses the revised syntax. | ||
| 5348 | - [ebeed9b2838e] | ||
| 5349 | - | ||
| 5350 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5351 | - sphinx/directives.rst: | ||
| 5352 | - %Include now follows the new syntax and includes the functionality | ||
| 5353 | - of %OptionalInclude. | ||
| 5354 | - [b71dca41f194] | ||
| 5355 | - | ||
| 5356 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5357 | - sphinx/directives.rst: | ||
| 5358 | - %Import now uses the revised syntax. | ||
| 5359 | - [df828f381c63] | ||
| 5360 | - | ||
| 5361 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5362 | - sphinx/directives.rst: | ||
| 5363 | - Changed the argument of %DefaultEncoding to 'name' to be consistent | ||
| 5364 | - with other similar directives. | ||
| 5365 | - [66c4f0e60cc5] | ||
| 5366 | - | ||
| 5367 | -2010-11-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5368 | - | ||
| 5369 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5370 | - sphinx/directives.rst: | ||
| 5371 | - %Feature now uses the revised syntax. | ||
| 5372 | - [ca22b358ab05] | ||
| 5373 | - | ||
| 5374 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5375 | - sphinx/directives.rst, sphinx/specification_files.rst: | ||
| 5376 | - %Exception now (sort of) follows the revised syntax. | ||
| 5377 | - [b19d67575786] | ||
| 5378 | - | ||
| 5379 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5380 | - Reverted the change to make %Copying a sub-directive. | ||
| 5381 | - [d59876780e53] | ||
| 5382 | - | ||
| 5383 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5384 | - sphinx/directives.rst: | ||
| 5385 | - %DefaultEncoding now uses the revised syntax. | ||
| 5386 | - [111024e5bcbd] | ||
| 5387 | - | ||
| 5388 | -2010-11-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5389 | - | ||
| 5390 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5391 | - sphinx/directives.rst, sphinx/incompatibilities.rst, | ||
| 5392 | - sphinx/specification_files.rst: | ||
| 5393 | - Fixed some more generic parser issues. %Copying is now a sub- | ||
| 5394 | - directive of each of the different module directives. All the module | ||
| 5395 | - directives now support docstrings. | ||
| 5396 | - [6244dcb1fcb9] | ||
| 5397 | - | ||
| 5398 | - * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: | ||
| 5399 | - %CompositeModule and %Consolidated module now conform to the revised | ||
| 5400 | - syntax. | ||
| 5401 | - [18da01aba948] | ||
| 5402 | - | ||
| 5403 | - * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst, | ||
| 5404 | - sphinx/using.rst: | ||
| 5405 | - %API now uses the revised directive syntax. | ||
| 5406 | - [b7ba07998b37] | ||
| 5407 | - | ||
| 5408 | -2010-11-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5409 | - | ||
| 5410 | - * sipgen/gencode.c: | ||
| 5411 | - Generated #line directives now include the full path name of the | ||
| 5412 | - file. | ||
| 5413 | - [52ed45309f83] | ||
| 5414 | - | ||
| 5415 | - * siplib/siplib.c.in: | ||
| 5416 | - Reverted the broken "fixes" passing sub-int values as varargs. | ||
| 5417 | - [167ff79ec560] | ||
| 5418 | - | ||
| 5419 | -2010-11-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5420 | - | ||
| 5421 | - * sipgen/parser.y, sipgen/sip.h, sphinx/directives.rst: | ||
| 5422 | - The %Module and %Property sub-directives now respect %If/%End. | ||
| 5423 | - %AccessCode, %GetCode and %SetCode are now new-style sub-directives. | ||
| 5424 | - [7dfe49a56ec7] | ||
| 5425 | - | ||
| 5426 | - * Roadmap.rst: | ||
| 5427 | - Added the v5 roadmap. | ||
| 5428 | - [9ddab02f25a6] | ||
| 5429 | - | ||
| 5430 | - * sipgen/parser.y: | ||
| 5431 | - /PyInt/ can now be applied to pointer types. | ||
| 5432 | - [0a986be7f8e4] | ||
| 5433 | - | ||
| 5434 | -2010-11-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5435 | - | ||
| 5436 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, | ||
| 5437 | - sipgen/sip.h, sipgen/transform.c, siplib/siplib.c.in, | ||
| 5438 | - sphinx/annotations.rst, sphinx/c_api.rst: | ||
| 5439 | - Added /PyInt/ as an argument and function annotation. Added the L | ||
| 5440 | - and M format characters to sipBuildResult(), sipCallMethod() and | ||
| 5441 | - sipParseResult(). Fixed a bug in sipParseResult() in the handling of | ||
| 5442 | - encoded strings. | ||
| 5443 | - [372703eb4e88] | ||
| 5444 | - | ||
| 5445 | - * sipgen/gencode.c: | ||
| 5446 | - Fixed a bug maintaining the current line number when generating | ||
| 5447 | - docstrings. | ||
| 5448 | - [2327d077f65a] | ||
| 5449 | - | ||
| 5450 | -2010-11-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5451 | - | ||
| 5452 | - * sipgen/parser.y, sphinx/specification_files.rst: | ||
| 5453 | - Added parser support for empty namespaces. Documented how namespaces | ||
| 5454 | - are implemented and how to achieve the different behaviors. | ||
| 5455 | - [9101c7412e89] | ||
| 5456 | - | ||
| 5457 | - * sphinx/annotations.rst, sphinx/command_line.rst, | ||
| 5458 | - sphinx/directives.rst: | ||
| 5459 | - Documented that -I, %Import and %Include all expect POSIX style | ||
| 5460 | - directory separators. | ||
| 5461 | - [7b0d6bc17f28] | ||
| 5462 | - | ||
| 5463 | -2010-11-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5464 | - | ||
| 5465 | - * siplib/sip.h.in.in, siplib/siplib.c.in, siplib/voidptr.c: | ||
| 5466 | - Eliminate compiler warnings when building the sip module. | ||
| 5467 | - [93040d2c716c] | ||
| 5468 | - | ||
| 5469 | - * siplib/siplib.c.in, siplib/voidptr.c: | ||
| 5470 | - Fixed some Python v3 and MSVC build bugs. | ||
| 5471 | - [43cb06769dd6] | ||
| 5472 | - | ||
| 5473 | -2010-11-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5474 | - | ||
| 5475 | - * NEWS: | ||
| 5476 | - More updates to the NEWS file. | ||
| 5477 | - [c38668e9dd93] | ||
| 5478 | - | ||
| 5479 | - * NEWS: | ||
| 5480 | - Updated the NEWS file. | ||
| 5481 | - [37a725e0b83a] | ||
| 5482 | - | ||
| 5483 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/siplib.c.in: | ||
| 5484 | - Eliminated a couple of warning messages. | ||
| 5485 | - [8d220ed77f02] | ||
| 5486 | - | ||
| 5487 | - * sipgen/parser.y: | ||
| 5488 | - %Module and %Property sub-directives can now be individually | ||
| 5489 | - enclosed in %If/%End. | ||
| 5490 | - [637f2357b1e4] | ||
| 5491 | - | ||
| 5492 | - * sphinx/annotations.rst, sphinx/directives.rst: | ||
| 5493 | - Documented the %AutoPyName directive. | ||
| 5494 | - [e8106eb58553] | ||
| 5495 | - | ||
| 5496 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 5497 | - Added the %AutoPyName directive. | ||
| 5498 | - [85d02c95ebf7] | ||
| 5499 | - | ||
| 5500 | -2010-11-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5501 | - | ||
| 5502 | - * sipgen/gencode.c, sipgen/main.c.in, sipgen/sip.h, | ||
| 5503 | - sphinx/command_line.rst: | ||
| 5504 | - Added the -T command line flag to suppress the timestamp in the | ||
| 5505 | - header of generated source files. | ||
| 5506 | - [d84b9db1d89d] | ||
| 5507 | - | ||
| 5508 | - * sipgen/gencode.c: | ||
| 5509 | - Fixed a bug where keyword strings where being generated for /Out/ | ||
| 5510 | - arguments. | ||
| 5511 | - [2a314426e67a] | ||
| 5512 | - | ||
| 5513 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5514 | - sphinx/directives.rst: | ||
| 5515 | - Replaced the %RealArgNames directive with the use_argument_names | ||
| 5516 | - argument to the %Module directive. | ||
| 5517 | - [0eb004659e3d] | ||
| 5518 | - | ||
| 5519 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5520 | - The %Module directive now respects the %If directive. | ||
| 5521 | - [9b99a6f7d295] | ||
| 5522 | - | ||
| 5523 | - * sphinx/directives.rst: | ||
| 5524 | - Documented the revised %Module directive syntax. | ||
| 5525 | - [0a7d4b89a2eb] | ||
| 5526 | - | ||
| 5527 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 5528 | - %Module now supports the revised directive syntax. Module docstrings | ||
| 5529 | - are now supported. %CModule is deprecated. | ||
| 5530 | - [2606deb743f2] | ||
| 5531 | - | ||
| 5532 | -2010-11-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5533 | - | ||
| 5534 | - * sipgen/gencode.c: | ||
| 5535 | - Fixed a bug in the generated of the variables table. | ||
| 5536 | - [eac351f5cca7] | ||
| 5537 | - | ||
| 5538 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 5539 | - Fixed a bug in the tidying up of temporary class instances in unary | ||
| 5540 | - operators. | ||
| 5541 | - [990299a02451] | ||
| 5542 | - | ||
| 5543 | - * sphinx/directives.rst: | ||
| 5544 | - Documented the %Property directive. | ||
| 5545 | - [455500391b43] | ||
| 5546 | - | ||
| 5547 | - * sipgen/parser.y, sphinx/directives.rst: | ||
| 5548 | - Documented the revised directive syntax. Updated %Extract so that it | ||
| 5549 | - follows the revised syntax completely. %Extract no longer uses a | ||
| 5550 | - quoted string as an identifer. | ||
| 5551 | - [7970e4fa94ef] | ||
| 5552 | - | ||
| 5553 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c, | ||
| 5554 | - siplib/sip.h.in.in, siplib/siplib.c.in: | ||
| 5555 | - Completed the support for %Property. | ||
| 5556 | - [dfd258dec260] | ||
| 5557 | - | ||
| 5558 | - * sipgen/gencode.c, sipgen/sip.h: | ||
| 5559 | - The code generator now generates the property structure. | ||
| 5560 | - [07134d471acd] | ||
| 5561 | - | ||
| 5562 | - * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h.in.in, | ||
| 5563 | - siplib/siplib.c.in: | ||
| 5564 | - Migrated the existing variable support to the new runtime structure. | ||
| 5565 | - [c66412e816ab] | ||
| 5566 | - | ||
| 5567 | -2010-11-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5568 | - | ||
| 5569 | - * sipgen/lexer.l: | ||
| 5570 | - Fixed the parser so that C/C++ argument names don't get confused | ||
| 5571 | - with directive argument names. | ||
| 5572 | - [8bad8295e12f] | ||
| 5573 | - | ||
| 5574 | -2010-11-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5575 | - | ||
| 5576 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 5577 | - Renamed getter to get and setter to set to be consistent with | ||
| 5578 | - %GetCode and %SetCode. | ||
| 5579 | - [eef0c18dd0df] | ||
| 5580 | - | ||
| 5581 | - * sipgen/parser.y, sipgen/transform.c: | ||
| 5582 | - The %Property getters and setters are now validated. | ||
| 5583 | - [caf6e4cee176] | ||
| 5584 | - | ||
| 5585 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 5586 | - Added parser support for %Property. | ||
| 5587 | - [41f66dca2447] | ||
| 5588 | - | ||
| 5589 | - * sipgen/extracts.c, sipgen/lexer.l, sipgen/main.c.in, | ||
| 5590 | - sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf, | ||
| 5591 | - sphinx/command_line.rst, sphinx/directives.rst, | ||
| 5592 | - sphinx/specification_files.rst: | ||
| 5593 | - Added the %Extract directive and the corresponding -X command line | ||
| 5594 | - option. | ||
| 5595 | - [37a7149135a9] | ||
| 5596 | - | ||
| 5597 | -2010-11-04 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5598 | - | ||
| 5599 | - * sipgen/lexer.l, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h, | ||
| 5600 | - sphinx/c_api.rst, sphinx/command_line.rst, sphinx/directives.rst, | ||
| 5601 | - sphinx/introduction.rst.in, sphinx/python_api.rst: | ||
| 5602 | - Issue warning messages from the parser about deprecated syntax. | ||
| 5603 | - Updated the documentation regarding deprecations. | ||
| 5604 | - [3a45afc8d9eb] | ||
| 5605 | - | ||
| 5606 | - * siplib/voidptr.c: | ||
| 5607 | - Fixed a bug in the new sip.voidptr code for Python v2.5 and earlier. | ||
| 5608 | - [7ff903c5cb76] | ||
| 5609 | - | ||
| 5610 | - * sphinx/python_api.rst: | ||
| 5611 | - Updated the sip.voidptr documentation to describe the memoryview- | ||
| 5612 | - like support. | ||
| 5613 | - [b49b90639831] | ||
| 5614 | - | ||
| 5615 | - * sipdistutils.py: | ||
| 5616 | - sipdistutils.py now allows the output directory to be overriden in a | ||
| 5617 | - derived class. | ||
| 5618 | - [5a1f9d9fff30] | ||
| 5619 | - | ||
| 5620 | -2010-11-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5621 | - | ||
| 5622 | - * siplib/voidptr.c: | ||
| 5623 | - Fixed a silly typo in the sip.voidptr changes. | ||
| 5624 | - [af2d7120dd7f] | ||
| 5625 | - | ||
| 5626 | - * siplib/voidptr.c: | ||
| 5627 | - sip.voidptr now supports sub-script assignment for Python v2.4 and | ||
| 5628 | - earlier. | ||
| 5629 | - [14186a17d310] | ||
| 5630 | - | ||
| 5631 | - * siplib/voidptr.c: | ||
| 5632 | - sip.voidptr now supports sub-script assignment for Python v2.5. | ||
| 5633 | - [67ef521ce467] | ||
| 5634 | - | ||
| 5635 | - * siplib/voidptr.c: | ||
| 5636 | - sip.voidptr now supports sub-script assignment (Python v2.6 and | ||
| 5637 | - later only at the moment). | ||
| 5638 | - [4ad087fd7e94] | ||
| 5639 | - | ||
| 5640 | - * siplib/voidptr.c: | ||
| 5641 | - sip.voidptr can now be indexed like memoryview. | ||
| 5642 | - [76620ebb872e] | ||
| 5643 | - | ||
| 5644 | - * siplib/voidptr.c: | ||
| 5645 | - sip.voidptr now fully implements the new buffer protocol for Python | ||
| 5646 | - v2 so that memoryview works. | ||
| 5647 | - [f9dfbda5844f] | ||
| 5648 | - | ||
| 5649 | - * NEWS, build.py, configure.py.in, sipgen/gencode.c, siplib/sip.h.in, | ||
| 5650 | - siplib/sip.h.in.in, siplib/siplib.c, siplib/siplib.c.in, | ||
| 5651 | - siplib/siplib.sbf, siplib/siplib.sbf.in, sphinx/installation.rst, | ||
| 5652 | - sphinx/using.rst: | ||
| 5653 | - Added the --sip-module flag to configure.py to allow private copies | ||
| 5654 | - of the module to be built. | ||
| 5655 | - [8b8e93a159c6] | ||
| 5656 | - | ||
| 5657 | -2010-10-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5658 | - | ||
| 5659 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 5660 | - sphinx/directives.rst, sphinx/specification_files.rst: | ||
| 5661 | - Added the %RealArgNames directive. | ||
| 5662 | - [12acbffd0085] | ||
| 5663 | - | ||
| 5664 | -2010-10-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5665 | - | ||
| 5666 | - * sipgen/lexer.l: | ||
| 5667 | - All directives now start with the first non-whitespace character of | ||
| 5668 | - a line. | ||
| 5669 | - [c5a525178196] | ||
| 5670 | - | ||
| 5671 | - * .hgtags: | ||
| 5672 | - Merged the v4.11 branch into the trunk. | ||
| 5673 | - [a7689cef100b] | ||
| 5674 | - | ||
| 5675 | -2010-10-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5676 | - | ||
| 5677 | - * NEWS: | ||
| 5678 | - Released as v4.11.2. | ||
| 5679 | - [13f57fe7e992] [4.11.2] <4.11-maint> | ||
| 5680 | - | ||
| 5681 | - * sipgen/gencode.c: | ||
| 5682 | - Fixed the implementation of %MethodCode for dtors in C modules. | ||
| 5683 | - [4f26704c5789] <4.11-maint> | ||
| 5684 | - | ||
| 5685 | -2010-10-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5686 | - | ||
| 5687 | - * siplib/siplib.c: | ||
| 5688 | - Make sure that lazy attributes have been added when searching for a | ||
| 5689 | - Python reimplemention of a C++ method. | ||
| 5690 | - [f45ff97a3c66] <4.11-maint> | ||
| 5691 | - | ||
| 5692 | - * siplib/sip.h.in: | ||
| 5693 | - Properly set SIP_SUPPORT_PYCOBJECT in sip.h. | ||
| 5694 | - [f1cf3fef8eb5] <4.11-maint> | ||
| 5695 | - | ||
| 5696 | -2010-10-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5697 | - | ||
| 5698 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h.in, | ||
| 5699 | - siplib/siplib.c: | ||
| 5700 | - __enter__ and __exit__ are now handled as non-lazy methods and are | ||
| 5701 | - added to the type dictionary when the type is created (rather than | ||
| 5702 | - when the first attribute of the first instance is accessed). This | ||
| 5703 | - required by a change in behaviour introduced in Python v2.7 and | ||
| 5704 | - v3.2. | ||
| 5705 | - [5167b98767e2] <4.11-maint> | ||
| 5706 | - | ||
| 5707 | -2010-10-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5708 | - | ||
| 5709 | - * NEWS: | ||
| 5710 | - Updated the NEWS file. | ||
| 5711 | - [ed3deec59b70] <4.11-maint> | ||
| 5712 | - | ||
| 5713 | -2010-10-09 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5714 | - | ||
| 5715 | - * sipgen/gencode.c: | ||
| 5716 | - /KeepReference/ now applies to global functions. | ||
| 5717 | - [52e6a73fd81f] <4.11-maint> | ||
| 5718 | - | ||
| 5719 | - * siplib/siplib.c: | ||
| 5720 | - Fixed a regression in the handling of global class pointers (eg. | ||
| 5721 | - qApp in PyQt3). | ||
| 5722 | - [08328092b36b] <4.11-maint> | ||
| 5723 | - | ||
| 5724 | -2010-10-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5725 | - | ||
| 5726 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 5727 | - /KeepReference/ can now be applied to static methods. | ||
| 5728 | - [43c2359df596] <4.11-maint> | ||
| 5729 | - | ||
| 5730 | -2010-10-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5731 | - | ||
| 5732 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 5733 | - sphinx/directives.rst: | ||
| 5734 | - %TypeCode can now be specified in a %MappedType directive. | ||
| 5735 | - [8727e0eb0f5e] <4.11-maint> | ||
| 5736 | - | ||
| 5737 | - * sipgen/transform.c: | ||
| 5738 | - Mapped types for templates no longer require the template arguments | ||
| 5739 | - to be defined. | ||
| 5740 | - [7ed0e265a218] <4.11-maint> | ||
| 5741 | - | ||
| 5742 | -2010-10-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5743 | - | ||
| 5744 | - * siputils.py: | ||
| 5745 | - Added support for the MSBUILD Makefile generator introduced in Qt | ||
| 5746 | - v4.7 for the win32-msvc2010 target. | ||
| 5747 | - [ff2494c0e443] <4.11-maint> | ||
| 5748 | - | ||
| 5749 | -2010-09-30 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5750 | - | ||
| 5751 | - * sipgen/parser.y: | ||
| 5752 | - A protected class enum will now trigger the generation of a shadow | ||
| 5753 | - class. | ||
| 5754 | - [18681651c2c7] <4.11-maint> | ||
| 5755 | - | ||
| 5756 | -2010-09-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5757 | - | ||
| 5758 | - * sphinx/c_api.rst: | ||
| 5759 | - A minor documentation fix. | ||
| 5760 | - [f6df40935e99] <4.11-maint> | ||
| 5761 | - | ||
| 5762 | -2010-09-24 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5763 | - | ||
| 5764 | - * configure.py.in: | ||
| 5765 | - Fixed the rpaths problem properly (ie. didn't apply the fix to a | ||
| 5766 | - generated file). | ||
| 5767 | - [c93f5da3d4e4] <4.11-maint> | ||
| 5768 | - | ||
| 5769 | - * NEWS, siputils.py: | ||
| 5770 | - Taught the build system about QtDeclarative. Updated the NEWS file. | ||
| 5771 | - [2487fb909ee1] <4.11-maint> | ||
| 5772 | - | ||
| 5773 | -2010-09-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5774 | - | ||
| 5775 | - * siputils.py: | ||
| 5776 | - Fixed rpaths for Qt v4.7. | ||
| 5777 | - [4d12df6526e5] <4.11-maint> | ||
| 5778 | - | ||
| 5779 | -2010-09-14 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5780 | - | ||
| 5781 | - * siplib/sip.h.in: | ||
| 5782 | - Ensured that uint is always defined. | ||
| 5783 | - [b6508f053614] <4.11-maint> | ||
| 5784 | - | ||
| 5785 | -2010-09-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5786 | - | ||
| 5787 | - * .hgtags: | ||
| 5788 | - Added tag 4.11.1 for changeset fdf86b3115cd | ||
| 5789 | - [3213dc5731bb] <4.11-maint> | ||
| 5790 | - | ||
| 5791 | - * NEWS: | ||
| 5792 | - Released as v4.11.1. | ||
| 5793 | - [fdf86b3115cd] [4.11.1] <4.11-maint> | ||
| 5794 | - | ||
| 5795 | -2010-09-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5796 | - | ||
| 5797 | - * siplib/objmap.c: | ||
| 5798 | - When deciding if an entry in the object map is valid the C/C++ | ||
| 5799 | - address is first checked to see if it is still valid. This detects | ||
| 5800 | - the case (if there is a guard in place) where a new C/C++ object has | ||
| 5801 | - been created at the same address of one that has been destroyed (but | ||
| 5802 | - whose Python wrapper is still around). | ||
| 5803 | - | ||
| 5804 | - HG commit message. Lines beginning with 'HG:' are removed. | ||
| 5805 | - [13632c7f0f2c] <4.11-maint> | ||
| 5806 | - | ||
| 5807 | -2010-08-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5808 | - | ||
| 5809 | - * .hgtags: | ||
| 5810 | - Added tag 4.11 for changeset 80f7c6530416 | ||
| 5811 | - [86286537601c] | ||
| 5812 | - | ||
| 5813 | - * NEWS: | ||
| 5814 | - Released as v4.11. | ||
| 5815 | - [80f7c6530416] [4.11] | ||
| 5816 | - | ||
| 5817 | -2010-08-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5818 | - | ||
| 5819 | - * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h.in, siplib/siplib.c, | ||
| 5820 | - sphinx/c_api.rst: | ||
| 5821 | - Objects with handwritten access functions are no longer placed in | ||
| 5822 | - the object map as they don't have a usable key. Reworked the support | ||
| 5823 | - for meta-type aupplied access functions so that the original address | ||
| 5824 | - is still available (even if it is no longer valid) to be used to | ||
| 5825 | - search the object map. | ||
| 5826 | - [c38d259c1879] | ||
| 5827 | - | ||
| 5828 | -2010-08-21 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5829 | - | ||
| 5830 | - * NEWS: | ||
| 5831 | - Updated the NEWS file. | ||
| 5832 | - [7cff86d70dc7] | ||
| 5833 | - | ||
| 5834 | -2010-08-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5835 | - | ||
| 5836 | - * siplib/siplib.c: | ||
| 5837 | - The parsing of encoded strings is now done with two passes so that | ||
| 5838 | - encoding errors are now picked up in the second pass and raise an | ||
| 5839 | - appropriate exception. | ||
| 5840 | - [89ff42be167c] | ||
| 5841 | - | ||
| 5842 | -2010-08-19 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5843 | - | ||
| 5844 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 5845 | - sphinx/annotations.rst: | ||
| 5846 | - The /KeepReference/ annotation now takes an optional integer key | ||
| 5847 | - value. | ||
| 5848 | - [efff0d2932e1] | ||
| 5849 | - | ||
| 5850 | - * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c: | ||
| 5851 | - operator() and __call__() now support keyword arguments. | ||
| 5852 | - [0daacc25c6ce] | ||
| 5853 | - | ||
| 5854 | -2010-08-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5855 | - | ||
| 5856 | - * siplib/sip.h.in, siplib/siplib.c, sphinx/c_api.rst: | ||
| 5857 | - Completed the access function implementation so that any resources | ||
| 5858 | - created by access functions are released appropriately. | ||
| 5859 | - [35cf486718d4] | ||
| 5860 | - | ||
| 5861 | -2010-08-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5862 | - | ||
| 5863 | - * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c, | ||
| 5864 | - sphinx/c_api.rst: | ||
| 5865 | - Removed sipRegisterObjectFinaliser() and assume that the equivalent | ||
| 5866 | - functionality will be provided by a custom meta-class. | ||
| 5867 | - [d028d0cecb7b] | ||
| 5868 | - | ||
| 5869 | - * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c: | ||
| 5870 | - Added sipRegisterObjectFinaliser() and related infrastructure. | ||
| 5871 | - (Though it will probably be replaced by a meta-type based | ||
| 5872 | - implementation.) | ||
| 5873 | - [d525d84c9d61] | ||
| 5874 | - | ||
| 5875 | - * sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h.in, | ||
| 5876 | - siplib/sipint.h, siplib/siplib.c: | ||
| 5877 | - All access to the C/C++ object now goes through | ||
| 5878 | - sip_api_get_address(). Bumped the internal API version to 8.0 | ||
| 5879 | - (because the size of sipSimpleWrapper has changed). | ||
| 5880 | - [956c80d8e9fa] | ||
| 5881 | - | ||
| 5882 | -2010-08-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5883 | - | ||
| 5884 | - * sipgen/parser.y: | ||
| 5885 | - Make sure #line 0 is not generated as the Intel compiler doesn't | ||
| 5886 | - like it. | ||
| 5887 | - [d715222f1f65] | ||
| 5888 | - | ||
| 5889 | - * siplib/voidptr.c, sphinx/c_api.rst, sphinx/embedding.rst, | ||
| 5890 | - sphinx/python_api.rst: | ||
| 5891 | - Added support for Python v3.2. Exposed the SIP_USE_PYCAPSULE macro | ||
| 5892 | - as part of the C API. | ||
| 5893 | - [0e34dc4e0824] | ||
| 5894 | - | ||
| 5895 | -2010-08-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5896 | - | ||
| 5897 | - * sipgen/gencode.c: | ||
| 5898 | - Fixed a code generation bug affecting inplace operators. | ||
| 5899 | - [6cddd9276220] | ||
| 5900 | - | ||
| 5901 | -2010-08-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5902 | - | ||
| 5903 | - * siplib/siplib.c: | ||
| 5904 | - Refactored the calls to assert() when creating types to catch any | ||
| 5905 | - recursive calls. | ||
| 5906 | - [052b642f04a8] | ||
| 5907 | - | ||
| 5908 | -2010-08-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5909 | - | ||
| 5910 | - * sipgen/gencode.c: | ||
| 5911 | - Make sure the %UnitPostIncludeCode is after all #includes. | ||
| 5912 | - [d45e8042c7da] | ||
| 5913 | - | ||
| 5914 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 5915 | - sipgen/sip.h, sphinx/directives.rst: | ||
| 5916 | - Added the %UnitPostIncludeCode directive. | ||
| 5917 | - [058d680384e7] | ||
| 5918 | - | ||
| 5919 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, | ||
| 5920 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 5921 | - sphinx/directives.rst: | ||
| 5922 | - Removed the %RemoveNamespace directive. | ||
| 5923 | - [18fc68280d49] | ||
| 5924 | - | ||
| 5925 | - * sipgen/gencode.c: | ||
| 5926 | - Removed 'const' and '&' from signal signatures so that Qt doesn't | ||
| 5927 | - have to. | ||
| 5928 | - [9e9795fa36a5] | ||
| 5929 | - | ||
| 5930 | - * sipgen/transform.c: | ||
| 5931 | - Fixed a problem with the recent change regarding the original types | ||
| 5932 | - of template based mapped types. | ||
| 5933 | - [83019d3299ea] | ||
| 5934 | - | ||
| 5935 | - * sipgen/gencode.c, sipgen/parser.y: | ||
| 5936 | - Generated code now uses 'uint' rather than 'unsigned'. This is | ||
| 5937 | - because Qt's QMetaObject::normalizedType() converts the latter to | ||
| 5938 | - the former. | ||
| 5939 | - [0923d067541a] | ||
| 5940 | - | ||
| 5941 | - * sipgen/gencode.c: | ||
| 5942 | - The generated typedefs table now always defines a type in terms of a | ||
| 5943 | - base type and never another typedef type. | ||
| 5944 | - [5ed328590fd1] | ||
| 5945 | - | ||
| 5946 | - * sipgen/transform.c: | ||
| 5947 | - Template based mapped types now correctly keep a reference to the | ||
| 5948 | - original types used when invoking the template. | ||
| 5949 | - [691852c6b0b0] | ||
| 5950 | - | ||
| 5951 | -2010-07-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5952 | - | ||
| 5953 | - * sipgen/transform.c: | ||
| 5954 | - Const references are now assumed to be input arguments rather than | ||
| 5955 | - output arguments. | ||
| 5956 | - [d11b7adf095a] | ||
| 5957 | - | ||
| 5958 | -2010-07-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5959 | - | ||
| 5960 | - * sipgen/parser.y: | ||
| 5961 | - An improvement on the previous fix. | ||
| 5962 | - [086a77b99464] | ||
| 5963 | - | ||
| 5964 | - * sipgen/parser.y: | ||
| 5965 | - Fixed global operators that are declared in a namespace. | ||
| 5966 | - [c46ac8f9b1e9] | ||
| 5967 | - | ||
| 5968 | -2010-07-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5969 | - | ||
| 5970 | - * build.py: | ||
| 5971 | - Switched to the new format of snapshot names. | ||
| 5972 | - [4d30378c5622] | ||
| 5973 | - | ||
| 5974 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, | ||
| 5975 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 5976 | - sphinx/directives.rst: | ||
| 5977 | - Implemented the %RemoveNamespace directive. | ||
| 5978 | - [a2eb3fe46f43] | ||
| 5979 | - | ||
| 5980 | - * lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt, | ||
| 5981 | - lib/LICENSE.short, lib/README, lib/configure.py, | ||
| 5982 | - lib/sipdistutils.py, lib/siputils.py, sipgen/main.c, siplib/sip.h, | ||
| 5983 | - sphinx/Makefile, sphinx/conf.py, sphinx/introduction.rst: | ||
| 5984 | - Merged v4.10.5 into the trunk. | ||
| 5985 | - [4cce948441da] | ||
| 5986 | - | ||
| 5987 | -2010-07-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5988 | - | ||
| 5989 | - * NEWS, siplib/sip.h.in, siplib/voidptr.c, sphinx/python_api.rst: | ||
| 5990 | - Released as v4.10.5. Fixed the build regression against Python v3 | ||
| 5991 | - introduced in SIP v4.10.4. Properly fixed the Python v2.7 workaround | ||
| 5992 | - that SIP v4.10.4 was supposed to address. | ||
| 5993 | - [834787fbcb72] [4.10.5] <4.10-maint> | ||
| 5994 | - | ||
| 5995 | -2010-07-15 Phil Thompson <phil@riverbankcomputing.com> | ||
| 5996 | - | ||
| 5997 | - * .hgtags: | ||
| 5998 | - Added tag 4.10.4 for changeset 046c346a71fe | ||
| 5999 | - [d0340fc3658c] <4.10-maint> | ||
| 6000 | - | ||
| 6001 | - * NEWS: | ||
| 6002 | - Released as v4.10.4. | ||
| 6003 | - [046c346a71fe] [4.10.4] <4.10-maint> | ||
| 6004 | - | ||
| 6005 | -2010-07-13 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6006 | - | ||
| 6007 | - * NEWS, sipgen/gencode.c, siplib/siplib.c, siplib/voidptr.c: | ||
| 6008 | - Use PyCapsule when available to work around an apparent bug in | ||
| 6009 | - PyCObject in Python v2.7. | ||
| 6010 | - [f5574a061fd0] <4.10-maint> | ||
| 6011 | - | ||
| 6012 | -2010-07-12 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6013 | - | ||
| 6014 | - * .hgtags: | ||
| 6015 | - Added tag 4.10.3 for changeset 2ec1a8f8560c | ||
| 6016 | - [254b8071446e] <4.10-maint> | ||
| 6017 | - | ||
| 6018 | - * NEWS, README: | ||
| 6019 | - Released as v4.10.3. | ||
| 6020 | - [2ec1a8f8560c] [4.10.3] <4.10-maint> | ||
| 6021 | - | ||
| 6022 | -2010-07-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6023 | - | ||
| 6024 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6025 | - sipgen/transform.c, sphinx/annotations.rst: | ||
| 6026 | - Added support for the __len__ annotation. | ||
| 6027 | - [f760366cea3b] <4.10-maint> | ||
| 6028 | - | ||
| 6029 | - * sipgen/transform.c: | ||
| 6030 | - Assignment helpers are now generated for classes that have a ctor | ||
| 6031 | - where all arguments are optional. | ||
| 6032 | - [3e647ed0f2a2] <4.10-maint> | ||
| 6033 | - | ||
| 6034 | -2010-06-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6035 | - | ||
| 6036 | - * sipgen/gencode.c: | ||
| 6037 | - Fixed the code generator for /NewThread/ methods so that it no | ||
| 6038 | - longer assumes that such methods are abstract (though it still | ||
| 6039 | - assumes they don't return a value) as QThread.run() no longer is. | ||
| 6040 | - [710b71e6f0c6] <4.10-maint> | ||
| 6041 | - | ||
| 6042 | - * siputils.py: | ||
| 6043 | - Fixed a regression introduced when fixing the += problem with spec. | ||
| 6044 | - files. | ||
| 6045 | - [94d177d8f426] <4.10-maint> | ||
| 6046 | - | ||
| 6047 | -2010-06-11 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6048 | - | ||
| 6049 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: | ||
| 6050 | - Changed the generated docstrings for signals to use [] rather than | ||
| 6051 | - () to surround the arguments. | ||
| 6052 | - [1851f2d754e7] <4.10-maint> | ||
| 6053 | - | ||
| 6054 | -2010-06-10 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6055 | - | ||
| 6056 | - * sipgen/gencode.c: | ||
| 6057 | - Fixed a code generation bug where special methods that invoke | ||
| 6058 | - sipNoMethod() were trying to tidy up sipParseErr rather than leaving | ||
| 6059 | - it to sipNoMethod(). | ||
| 6060 | - [90aad46480b2] <4.10-maint> | ||
| 6061 | - | ||
| 6062 | -2010-06-08 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6063 | - | ||
| 6064 | - * sipgen/gencode.c: | ||
| 6065 | - Fixed the previous fix to avoid compiler warning messages. | ||
| 6066 | - [0a3f45fea555] <4.10-maint> | ||
| 6067 | - | ||
| 6068 | - * sipgen/gencode.c: | ||
| 6069 | - Fixed a code generation bug caused by ctor handwritten code that | ||
| 6070 | - sets the error flag and isn't handling unused keyword arguments. | ||
| 6071 | - [d53889ad7abe] <4.10-maint> | ||
| 6072 | - | ||
| 6073 | -2010-06-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6074 | - | ||
| 6075 | - * NEWS, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 6076 | - sphinx/specification_files.rst: | ||
| 6077 | - Added support for Q_SLOT and Q_SIGNAL. | ||
| 6078 | - [cb323da88516] <4.10-maint> | ||
| 6079 | - | ||
| 6080 | -2010-06-05 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6081 | - | ||
| 6082 | - * sipgen/lexer.l: | ||
| 6083 | - Added support for Q_SIGNALS and Q_SLOTS as synonyms for signals and | ||
| 6084 | - slots. | ||
| 6085 | - [daf61465ef3c] <4.10-maint> | ||
| 6086 | - | ||
| 6087 | - * siputils.py: | ||
| 6088 | - Fixed a build system regression introduced when not linking against | ||
| 6089 | - X11 when building QtCore. | ||
| 6090 | - [ee5415b91040] <4.10-maint> | ||
| 6091 | - | ||
| 6092 | -2010-06-03 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6093 | - | ||
| 6094 | - * siputils.py: | ||
| 6095 | - The build system now handles += in spec files properly. | ||
| 6096 | - [f292793d6c99] <4.10-maint> | ||
| 6097 | - | ||
| 6098 | -2010-05-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6099 | - | ||
| 6100 | - * configure.py.in, siputils.py: | ||
| 6101 | - A build system fix for building a static version of QWebKit. | ||
| 6102 | - [de0df36d3162] <4.10-maint> | ||
| 6103 | - | ||
| 6104 | - * sipgen/transform.c: | ||
| 6105 | - Fixed a bug in the error message when reporting an unsupported | ||
| 6106 | - signal argument type. | ||
| 6107 | - [7adbf28d075e] <4.10-maint> | ||
| 6108 | - | ||
| 6109 | -2010-05-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6110 | - | ||
| 6111 | - * sipgen/gencode.c: | ||
| 6112 | - Fix a code generation bug where a protected ctor had a protected | ||
| 6113 | - enum argument. | ||
| 6114 | - [529660fb77a9] <4.10-maint> | ||
| 6115 | - | ||
| 6116 | -2010-04-23 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6117 | - | ||
| 6118 | - * sipgen/main.c.in, siplib/qtlib.c: | ||
| 6119 | - Invoking a slot is ignored if the underlying C++ object no longer | ||
| 6120 | - exists. | ||
| 6121 | - [7387fa17a780] <4.10-maint> | ||
| 6122 | - | ||
| 6123 | -2010-04-16 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6124 | - | ||
| 6125 | - * .hgtags: | ||
| 6126 | - Added tag 4.10.2 for changeset 44ac47d02467 | ||
| 6127 | - [2a980c3f0e3a] <4.10-maint> | ||
| 6128 | - | ||
| 6129 | - * NEWS: | ||
| 6130 | - Released as v4.10.2. | ||
| 6131 | - [44ac47d02467] [4.10.2] <4.10-maint> | ||
| 6132 | - | ||
| 6133 | -2010-04-06 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6134 | - | ||
| 6135 | - * sphinx/using.rst: | ||
| 6136 | - Updated the PyQt example for PyQt4. | ||
| 6137 | - [275fa5a54910] <4.10-maint> | ||
| 6138 | - | ||
| 6139 | -2010-04-01 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6140 | - | ||
| 6141 | - * siplib/siplib.c: | ||
| 6142 | - Fixed a regression in the new-style error handling of C++ ctors that | ||
| 6143 | - raise exceptions. | ||
| 6144 | - [ea295d6e9e9c] <4.10-maint> | ||
| 6145 | - | ||
| 6146 | -2010-03-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6147 | - | ||
| 6148 | - * siputils.py: | ||
| 6149 | - The X11 libraries will only be linked for modules that depend on the | ||
| 6150 | - QtGui module. | ||
| 6151 | - [9fe1eb5bf1ac] <4.10-maint> | ||
| 6152 | - | ||
| 6153 | -2010-03-22 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6154 | - | ||
| 6155 | - * siplib/siplib.c: | ||
| 6156 | - Fixed a bug in the pickle support under Python v3. | ||
| 6157 | - [9c51fda2b963] <4.10-maint> | ||
| 6158 | - | ||
| 6159 | -2010-03-17 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6160 | - | ||
| 6161 | - * .hgtags: | ||
| 6162 | - Added tag 4.10.1 for changeset 812aad0bacea | ||
| 6163 | - [6f759792341f] <4.10-maint> | ||
| 6164 | - | ||
| 6165 | - * NEWS, build.py: | ||
| 6166 | - Fixed the generation of the change log after tagging a release. | ||
| 6167 | - Updated the NEWS file. Released as v4.10.1. | ||
| 6168 | - [812aad0bacea] [4.10.1] <4.10-maint> | ||
| 6169 | - | ||
| 6170 | - * siplib/siplib.c: | ||
| 6171 | - Removed an unused variable left over from the previous commit. | ||
| 6172 | - [0068b2608046] <4.10-maint> | ||
| 6173 | - | ||
| 6174 | - * siplib/siplib.c: | ||
| 6175 | - Fixed the implementation of sip.cast(). | ||
| 6176 | - [93bc3ab3fef5] <4.10-maint> | ||
| 6177 | - | ||
| 6178 | -2010-03-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6179 | - | ||
| 6180 | - * NEWS: | ||
| 6181 | - Updated the NEWS file. | ||
| 6182 | - [752ab6580111] <4.10-maint> | ||
| 6183 | - | ||
| 6184 | -2010-02-26 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6185 | - | ||
| 6186 | - * sipgen/gencode.c: | ||
| 6187 | - Fixed a memory leak with the new error handling and most Python | ||
| 6188 | - special methods. | ||
| 6189 | - [637497440cb5] <4.10-maint> | ||
| 6190 | - | ||
| 6191 | - * sipgen/transform.c: | ||
| 6192 | - Global operators, when moved to the correct class, are now appended | ||
| 6193 | - to the list of any existing overloads to make sure the generated | ||
| 6194 | - code is in the same order as the overloads in the .sip file. | ||
| 6195 | - [5c0eb00cd19b] <4.10-maint> | ||
| 6196 | - | ||
| 6197 | -2010-02-25 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6198 | - | ||
| 6199 | - * sipgen/export.c: | ||
| 6200 | - Arguments in docstrings only have names if they are optional. | ||
| 6201 | - [0f83f6c82600] <4.10-maint> | ||
| 6202 | - | ||
| 6203 | -2010-02-20 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6204 | - | ||
| 6205 | - * sipgen/gencode.c, siplib/sip.h.in, siplib/siplib.c, | ||
| 6206 | - sphinx/c_api.rst, sphinx/incompatibilities.rst: | ||
| 6207 | - Fixed a bug in the handling of /Out/ arguments of virtuals where the | ||
| 6208 | - type was a reference to a class by adding the 'H' format character | ||
| 6209 | - to sipParseResult() (and deprecating the 'D' format character). | ||
| 6210 | - [c723c4de2e22] <4.10-maint> | ||
| 6211 | - | ||
| 6212 | -2010-02-18 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6213 | - | ||
| 6214 | - * sphinx/annotations.rst: | ||
| 6215 | - Fixed a bug in the documentation of the NoCopy annotation. | ||
| 6216 | - [cb2c1ea78ed5] <4.10-maint> | ||
| 6217 | - | ||
| 6218 | -2010-02-07 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6219 | - | ||
| 6220 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6221 | - sphinx/annotations.rst: | ||
| 6222 | - Python reimplementations of C++ virtuals will now be given a copy of | ||
| 6223 | - any const references to classes so that they can keep a reference | ||
| 6224 | - without needing to do their own explicit copy. The previous | ||
| 6225 | - behaviour can be obtained using the new NoCopy annotation. The | ||
| 6226 | - NoCopy annotation can also be applied to functions and methods to | ||
| 6227 | - prevent the automatic copying of const references to classes that | ||
| 6228 | - are returned. | ||
| 6229 | - [724e4236428b] <4.10-maint> | ||
| 6230 | - | ||
| 6231 | -2010-02-02 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6232 | - | ||
| 6233 | - * sipgen/export.c: | ||
| 6234 | - Fixed the XML exporting of mapped type arguments. | ||
| 6235 | - [b514b2f196b8] <4.10-maint> | ||
| 6236 | - | ||
| 6237 | - * siplib/sipint.h, siplib/siplib.c, siplib/siplib.sbf, | ||
| 6238 | - siplib/voidptr.c: | ||
| 6239 | - Moved the voidptr code to a separate file. Eliminated a few | ||
| 6240 | - compilation warnings that have crept into the sip module. Refactored | ||
| 6241 | - the sip module to eliminate the (wrong) forward declaration of the | ||
| 6242 | - static type structures. | ||
| 6243 | - [f07ec31fbdf9] <4.10-maint> | ||
| 6244 | - | ||
| 6245 | - * build.py: | ||
| 6246 | - Fixed a bug in the release action of build.py. | ||
| 6247 | - [bcdd91cbf139] <4.10-maint> | ||
| 6248 | - | ||
| 6249 | -2010-01-31 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6250 | - | ||
| 6251 | - * sipgen/main.c.in: | ||
| 6252 | - Added the -b command line argument to the sip usage text. | ||
| 6253 | - [7ae3aa20dfc0] <4.10-maint> | ||
| 6254 | - | ||
| 6255 | -2010-01-29 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6256 | - | ||
| 6257 | - * build.py: | ||
| 6258 | - Refactored build.py so that it can be easily used as an imported | ||
| 6259 | - module. | ||
| 6260 | - [9170df0b1ea3] <4.10-maint> | ||
| 6261 | - | ||
| 6262 | -2010-01-28 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6263 | - | ||
| 6264 | - * build.py: | ||
| 6265 | - Fixed a regression in the release action of build.py. | ||
| 6266 | - [e3611c1babe7] <4.10-maint> | ||
| 6267 | - | ||
| 6268 | - * build.py: | ||
| 6269 | - Changed the format of the changelog to be closer to the Mercurial | ||
| 6270 | - default. | ||
| 6271 | - [f1d6ba993e7f] <4.10-maint> | ||
| 6272 | - | ||
| 6273 | - * build.py: | ||
| 6274 | - Added the changelog action to build.py. | ||
| 6275 | - [8189b0595d44] <4.10-maint> | ||
| 6276 | - | ||
| 6277 | - * build.py: | ||
| 6278 | - build.py now generates a version number corresponding to the next | ||
| 6279 | - release (as the old build system did). | ||
| 6280 | - [d09c61626663] <4.10-maint> | ||
| 6281 | - | ||
| 6282 | - * build.py: | ||
| 6283 | - build.py now doesn't care about the current working directory. Fixed | ||
| 6284 | - the handling of branch names. | ||
| 6285 | - [3402912a0176] <4.10-maint> | ||
| 6286 | - | ||
| 6287 | -2010-01-27 Phil Thompson <phil@riverbankcomputing.com> | ||
| 6288 | - | ||
| 6289 | - * README: | ||
| 6290 | - Updated the README to document the need for flex, bison and Sphinx. | ||
| 6291 | - [d785bd5471f8] <4.10-maint> | ||
| 6292 | - | ||
| 6293 | - * sphinx/introduction.rst.in: | ||
| 6294 | - Updated the documentation to include the URL of the Mercurial | ||
| 6295 | - repository. | ||
| 6296 | - [0a7fc3830b27] <4.10-maint> | ||
| 6297 | - | ||
| 6298 | - * LICENSE, LICENSE-GPL2, LICENSE-GPL3, README, build.py, | ||
| 6299 | - configure.py.in, lib/LICENSE, lib/LICENSE-GPL2.txt, lib/LICENSE- | ||
| 6300 | - GPL3.txt, lib/LICENSE.short, lib/README, lib/configure.py, | ||
| 6301 | - lib/sipdistutils.py, lib/siputils.py, sipdistutils.py, | ||
| 6302 | - sipgen/export.c, sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, | ||
| 6303 | - sipgen/main.c, sipgen/main.c.in, sipgen/parser.y, sipgen/sip.h, | ||
| 6304 | - sipgen/sipgen.sbf, sipgen/transform.c, siplib/apiversions.c, | ||
| 6305 | - siplib/bool.cpp, siplib/descriptors.c, siplib/objmap.c, | ||
| 6306 | - siplib/qtlib.c, siplib/sip.h, siplib/sip.h.in, siplib/sipint.h, | ||
| 6307 | - siplib/siplib.c, siplib/siplib.sbf, siplib/threads.c, siputils.py, | ||
| 6308 | - sphinx/Makefile, sphinx/conf.py, sphinx/conf.py.in, | ||
| 6309 | - sphinx/introduction.rst, sphinx/introduction.rst.in: | ||
| 6310 | - Refactored the build.py script so that it is a documented utility | ||
| 6311 | - for allowing SIP to be built from a Mercurial repository or archive. | ||
| 6312 | - Updated the directory structure accordingly. | ||
| 6313 | - [3edc3f9c777f] <4.10-maint> | ||
| 6314 | - | ||
| 6315 | -2010-01-27 phil <phil> | ||
| 6316 | - | ||
| 6317 | - * .hgtags: | ||
| 6318 | - Import from SVN. | ||
| 6319 | - [d6529eb1c096] | ||
| 6320 | - | ||
| 6321 | -2010-01-14 phil <phil> | ||
| 6322 | - | ||
| 6323 | - * NEWS, lib/LICENSE.short: | ||
| 6324 | - Released as v4.10. | ||
| 6325 | - [d7aa01036415] [4.10] | ||
| 6326 | - | ||
| 6327 | -2010-01-08 phil <phil> | ||
| 6328 | - | ||
| 6329 | - * lib/siputils.py, sipgen/gencode.c, sipgen/transform.c, | ||
| 6330 | - siplib/siplib.c: | ||
| 6331 | - Taught the build system about QtMultimedia. Removed some potential | ||
| 6332 | - warning messages in virtual catchers with handwritten code. Fixed | ||
| 6333 | - docstrings that might contain C++ rather than Python scoping. | ||
| 6334 | - [d1214a2c892d] | ||
| 6335 | - | ||
| 6336 | -2010-01-02 phil <phil> | ||
| 6337 | - | ||
| 6338 | - * siplib/siplib.c: | ||
| 6339 | - Fixed a crash in the error handling when trying to call sip.wrapper | ||
| 6340 | - or sip.wrappertype explicitly. | ||
| 6341 | - [4f7c7b09a3e4] | ||
| 6342 | - | ||
| 6343 | -2009-12-29 phil <phil> | ||
| 6344 | - | ||
| 6345 | - * siplib/apiversions.c: | ||
| 6346 | - Fixed a memory corruption bug in the implementation of sip.setapi(). | ||
| 6347 | - [11cc05a59770] | ||
| 6348 | - | ||
| 6349 | -2009-12-28 phil <phil> | ||
| 6350 | - | ||
| 6351 | - * siplib/siplib.c: | ||
| 6352 | - A fix for building against Stackless. | ||
| 6353 | - [a3ce099e5002] | ||
| 6354 | - | ||
| 6355 | -2009-12-27 phil <phil> | ||
| 6356 | - | ||
| 6357 | - * siplib/siplib.c: | ||
| 6358 | - Fixed a regression in the parsing of constrained enums. | ||
| 6359 | - [eacac49b64df] | ||
| 6360 | - | ||
| 6361 | - * siplib/siplib.c: | ||
| 6362 | - Fixed a bug in the lookup of virtual reimplementations that may only | ||
| 6363 | - be apparent when looking up Python special methods. | ||
| 6364 | - [97c538d2e634] | ||
| 6365 | - | ||
| 6366 | -2009-12-26 phil <phil> | ||
| 6367 | - | ||
| 6368 | - * siplib/siplib.c: | ||
| 6369 | - Backed out the check for sub-classing from more than one wrapped | ||
| 6370 | - type as it isn't sophisticated enough to handle mixins that share a | ||
| 6371 | - meta-class. | ||
| 6372 | - [34cf41855599] | ||
| 6373 | - | ||
| 6374 | -2009-12-23 phil <phil> | ||
| 6375 | - | ||
| 6376 | - * siplib/siplib.c: | ||
| 6377 | - Added a hack for va_copy() being missing in MSVC. | ||
| 6378 | - [e3bd9f6c1a3a] | ||
| 6379 | - | ||
| 6380 | -2009-12-22 phil <phil> | ||
| 6381 | - | ||
| 6382 | - * lib/siputils.py: | ||
| 6383 | - Another attempt to fix creating script wrappers on MacOS to | ||
| 6384 | - invokethe right version of Python. | ||
| 6385 | - [39d66e33acfd] | ||
| 6386 | - | ||
| 6387 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: | ||
| 6388 | - Fixed a docstring bug handling default values that are literal | ||
| 6389 | - strings. | ||
| 6390 | - [a1fea3306f54] | ||
| 6391 | - | ||
| 6392 | -2009-12-21 phil <phil> | ||
| 6393 | - | ||
| 6394 | - * siplib/siplib.c: | ||
| 6395 | - Fixed a fundamental problem with the parsing of signatures that | ||
| 6396 | - allow keyword arguments where the current position in the format | ||
| 6397 | - string and the var_args was being lost. | ||
| 6398 | - [afa78322cb2d] | ||
| 6399 | - | ||
| 6400 | -2009-12-19 phil <phil> | ||
| 6401 | - | ||
| 6402 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 6403 | - Changed the signature of sipAddException(). Fixed a reference count | ||
| 6404 | - bug in the handling of chained parse errors. | ||
| 6405 | - [1e48cd06b448] | ||
| 6406 | - | ||
| 6407 | -2009-12-17 phil <phil> | ||
| 6408 | - | ||
| 6409 | - * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, | ||
| 6410 | - sphinx/c_api.rst: | ||
| 6411 | - Added sipBadCallableArg() to the C API. | ||
| 6412 | - [4046e5d6ca66] | ||
| 6413 | - | ||
| 6414 | -2009-12-15 phil <phil> | ||
| 6415 | - | ||
| 6416 | - * sipgen/parser.y: | ||
| 6417 | - Fixed a NULL dereference when instantiating an unscoped class | ||
| 6418 | - template. | ||
| 6419 | - [908f41773044] | ||
| 6420 | - | ||
| 6421 | -2009-12-14 phil <phil> | ||
| 6422 | - | ||
| 6423 | - * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, | ||
| 6424 | - sphinx/directives.rst: | ||
| 6425 | - Added support for sipError to %MethodCode to allow code to | ||
| 6426 | - distinguish between user errors and system errors. | ||
| 6427 | - [8cb9ae04484a] | ||
| 6428 | - | ||
| 6429 | -2009-12-12 phil <phil> | ||
| 6430 | - | ||
| 6431 | - * siplib/siplib.c: | ||
| 6432 | - Raise an exception if the automatically generated cast function | ||
| 6433 | - fails (though this, theoretcally, shouldn't happed). Explicitly test | ||
| 6434 | - for attempting to inherit from more than one wrapped type. | ||
| 6435 | - [ae6cee8faa67] | ||
| 6436 | - | ||
| 6437 | -2009-12-11 phil <phil> | ||
| 6438 | - | ||
| 6439 | - * sipgen/gencode.c: | ||
| 6440 | - Fixed the generation of a bad call to sipMalloc() when generating | ||
| 6441 | - for a C library. | ||
| 6442 | - [a174c9456eab] | ||
| 6443 | - | ||
| 6444 | -2009-12-04 phil <phil> | ||
| 6445 | - | ||
| 6446 | - * sipgen/parser.y: | ||
| 6447 | - Finally fixed %DefaultEncoding when set in an imported module. | ||
| 6448 | - [d1eec2d99a95] | ||
| 6449 | - | ||
| 6450 | -2009-12-03 phil <phil> | ||
| 6451 | - | ||
| 6452 | - * siplib/siplib.c: | ||
| 6453 | - Fixed a problem where Python wasn't creating descriptors for any | ||
| 6454 | - enum slots which meant that explicitly calling special methods | ||
| 6455 | - failed to invoke those slots. | ||
| 6456 | - [ca934a1f4132] | ||
| 6457 | - | ||
| 6458 | -2009-12-02 phil <phil> | ||
| 6459 | - | ||
| 6460 | - * NEWS, sipgen/gencode.c, siplib/siplib.c, sphinx/python_api.rst: | ||
| 6461 | - Use capsules for Python v3.1 and later. Added the | ||
| 6462 | - sip.voidptr.ascapsule() method. | ||
| 6463 | - [154f2c63c18d] | ||
| 6464 | - | ||
| 6465 | -2009-11-23 phil <phil> | ||
| 6466 | - | ||
| 6467 | - * NEWS, sipgen/transform.c: | ||
| 6468 | - Fixed a bug where assignment helpers may not be generated for | ||
| 6469 | - classes that have an alternate mapped type implementation. | ||
| 6470 | - [6734e82522ee] | ||
| 6471 | - | ||
| 6472 | -2009-11-17 phil <phil> | ||
| 6473 | - | ||
| 6474 | - * siplib/siplib.c: | ||
| 6475 | - Fixed a problem that meant that circular references in slots | ||
| 6476 | - connected to objects owned by C++ weren't being detected. | ||
| 6477 | - [b38add3f63d9] | ||
| 6478 | - | ||
| 6479 | -2009-11-15 phil <phil> | ||
| 6480 | - | ||
| 6481 | - * sipgen/parser.y: | ||
| 6482 | - Fixed a bug where %DefaultEncoding could be ignored if %Imports were | ||
| 6483 | - being done in an inconvenient order. | ||
| 6484 | - [ae075b6d08ea] | ||
| 6485 | - | ||
| 6486 | - * sphinx/command_line.rst, sphinx/distutils.rst: | ||
| 6487 | - Added the documentation for the updated sipdistutils.py. | ||
| 6488 | - [c5547730f27b] | ||
| 6489 | - | ||
| 6490 | - * lib/sipdistutils.py: | ||
| 6491 | - An updated sipdistutils.py from Giovanni Bajo. | ||
| 6492 | - [62a698e9f9bd] | ||
| 6493 | - | ||
| 6494 | -2009-11-14 phil <phil> | ||
| 6495 | - | ||
| 6496 | - * sipgen/export.c, sipgen/gencode.c, sipgen/sip.h: | ||
| 6497 | - Signal docstrings no longer include default values as they are | ||
| 6498 | - implemented as separate overloads. | ||
| 6499 | - [339a2114ec6d] | ||
| 6500 | - | ||
| 6501 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/sip.h, siplib/sip.h: | ||
| 6502 | - Docstrings are now generated for use by PyQt4 signals. | ||
| 6503 | - [18bb2e74f269] | ||
| 6504 | - | ||
| 6505 | -2009-11-11 phil <phil> | ||
| 6506 | - | ||
| 6507 | - * sipgen/gencode.c: | ||
| 6508 | - The docstrings are now wrapped with PyDoc_STRVAR(). | ||
| 6509 | - [ef3374625928] | ||
| 6510 | - | ||
| 6511 | - * sipgen/transform.c: | ||
| 6512 | - The /DocType/ annotation is now properly supported for typedefs. | ||
| 6513 | - [b3bbd7202a88] | ||
| 6514 | - | ||
| 6515 | - * sipgen/gencode.c: | ||
| 6516 | - No docstrings are generated for any part of a class that isn't the | ||
| 6517 | - default implementation. | ||
| 6518 | - [9db19f2694a2] | ||
| 6519 | - | ||
| 6520 | - * sipgen/heap.c, sipgen/parser.y, sipgen/transform.c: | ||
| 6521 | - Added support for /DocType/ to mapped type templates. | ||
| 6522 | - [74a135153c66] | ||
| 6523 | - | ||
| 6524 | -2009-11-10 phil <phil> | ||
| 6525 | - | ||
| 6526 | - * NEWS, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 6527 | - sipgen/sip.h, siplib/siplib.c, sphinx/directives.rst, | ||
| 6528 | - sphinx/introduction.rst, sphinx/specification_files.rst: | ||
| 6529 | - Added the %Docstring directive to specify explicit docstrings. | ||
| 6530 | - [61b4453a9ff4] | ||
| 6531 | - | ||
| 6532 | - * sipgen/export.c, sipgen/gencode.c, sipgen/transform.c, | ||
| 6533 | - siplib/siplib.c: | ||
| 6534 | - More docstring fixes. Docstrings are not now generated for non- | ||
| 6535 | - default implementations. | ||
| 6536 | - [64779347846b] | ||
| 6537 | - | ||
| 6538 | -2009-11-09 phil <phil> | ||
| 6539 | - | ||
| 6540 | - * NEWS, sipgen/gencode.c: | ||
| 6541 | - A fix for the formatting of function calls in default values for XML | ||
| 6542 | - and docstrings. | ||
| 6543 | - [cfd41d5169d1] | ||
| 6544 | - | ||
| 6545 | - * sipgen/export.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6546 | - sphinx/annotations.rst: | ||
| 6547 | - Added the /DocValue/ argument annotation. | ||
| 6548 | - [63dbaa87cf17] | ||
| 6549 | - | ||
| 6550 | - * NEWS, sipgen/parser.y: | ||
| 6551 | - String annotations can now have feature selectors embedded in them. | ||
| 6552 | - [d8fccc02cc21] | ||
| 6553 | - | ||
| 6554 | -2009-11-08 phil <phil> | ||
| 6555 | - | ||
| 6556 | - * NEWS, sipgen/export.c, sipgen/gencode.c, sipgen/parser.y: | ||
| 6557 | - More docstring fixes. | ||
| 6558 | - [98dc281a1a11] | ||
| 6559 | - | ||
| 6560 | - * sphinx/annotations.rst: | ||
| 6561 | - Updated the docs as /DocType/ is also a function and variable | ||
| 6562 | - annotation. | ||
| 6563 | - [cad85d54df79] | ||
| 6564 | - | ||
| 6565 | - * sipgen/export.c: | ||
| 6566 | - Docstrings now consider all C++ integer types to be "int". | ||
| 6567 | - Docstrings now consider all C++ character types to be "str". | ||
| 6568 | - [72ae0dd8d9dc] | ||
| 6569 | - | ||
| 6570 | -2009-11-07 phil <phil> | ||
| 6571 | - | ||
| 6572 | - * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, | ||
| 6573 | - sipgen/sip.h, siplib/sip.h, sphinx/annotations.rst: | ||
| 6574 | - Added the /DocType/ argument and mapped type annotation. More fixes | ||
| 6575 | - for the docstring support. | ||
| 6576 | - [99ebe42a8e10] | ||
| 6577 | - | ||
| 6578 | - * sipgen/export.c, sipgen/parser.y, sipgen/transform.c: | ||
| 6579 | - Fixed a bug where a default copy ctor might be added when there | ||
| 6580 | - aleady was one when the class had a alternative mapped type | ||
| 6581 | - implementation. | ||
| 6582 | - [0db8f014b7e7] | ||
| 6583 | - | ||
| 6584 | -2009-11-06 phil <phil> | ||
| 6585 | - | ||
| 6586 | - * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6587 | - sipgen/transform.c: | ||
| 6588 | - Completed the basic support for automated docstrings (some tweaking | ||
| 6589 | - still needed). | ||
| 6590 | - [3d914379ef28] | ||
| 6591 | - | ||
| 6592 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 6593 | - Added stub docstring support for methods and classes. | ||
| 6594 | - [b52d1ef306ae] | ||
| 6595 | - | ||
| 6596 | -2009-11-05 phil <phil> | ||
| 6597 | - | ||
| 6598 | - * sipgen/gencode.c, sipgen/main.c, sipgen/sip.h, siplib/apiversions.c, | ||
| 6599 | - siplib/sip.h, siplib/siplib.c, sphinx/command_line.rst, | ||
| 6600 | - sphinx/introduction.rst: | ||
| 6601 | - Added stubbed support for function docstrings. | ||
| 6602 | - [91a545605044] | ||
| 6603 | - | ||
| 6604 | -2009-11-04 phil <phil> | ||
| 6605 | - | ||
| 6606 | - * siplib/siplib.c: | ||
| 6607 | - Fixed building on Python v2. | ||
| 6608 | - [af23791238c1] | ||
| 6609 | - | ||
| 6610 | - * sipgen/gencode.c: | ||
| 6611 | - Fixed a memory leak of class instances annotated with /Out/ when | ||
| 6612 | - catching C++ exceptions. | ||
| 6613 | - [7fe47a8dd71d] | ||
| 6614 | - | ||
| 6615 | - * siplib/siplib.c: | ||
| 6616 | - Completed the basic extended (ie. without docstrings) error messages | ||
| 6617 | - on overload parse failures. | ||
| 6618 | - [fe018c83a8df] | ||
| 6619 | - | ||
| 6620 | - * siplib/siplib.c: | ||
| 6621 | - More support for the extended errors when parsing signatures. | ||
| 6622 | - [e837961dad1d] | ||
| 6623 | - | ||
| 6624 | - * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c: | ||
| 6625 | - Fixed a problem where an overload that didn't take keyword arguments | ||
| 6626 | - wasn't raising an error if one was supplied and there where other | ||
| 6627 | - overloads that did. | ||
| 6628 | - [f405b7102d19] | ||
| 6629 | - | ||
| 6630 | -2009-11-03 phil <phil> | ||
| 6631 | - | ||
| 6632 | - * siplib/siplib.c: | ||
| 6633 | - Added the error detail for unbound methods. Ctor errors now don't | ||
| 6634 | - include the module name (to match other errors). | ||
| 6635 | - [b176dda5f1e9] | ||
| 6636 | - | ||
| 6637 | - * siplib/sip.h, siplib/siplib.c: | ||
| 6638 | - Refactored the new error reporting so that it is much more | ||
| 6639 | - lightweight in the common case of failure to parse an overload. | ||
| 6640 | - [e801eb8ce7e6] | ||
| 6641 | - | ||
| 6642 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 6643 | - The SIP API major version number has changed. Implemented the basics | ||
| 6644 | - of the revised error messages (still missing the message detail | ||
| 6645 | - though). | ||
| 6646 | - [aa4e0e8fd705] | ||
| 6647 | - | ||
| 6648 | -2009-11-02 phil <phil> | ||
| 6649 | - | ||
| 6650 | - * sphinx/directives.rst: | ||
| 6651 | - Fixed a broken Sphinx directive. | ||
| 6652 | - [fc0975814576] | ||
| 6653 | - | ||
| 6654 | -2009-10-30 phil <phil> | ||
| 6655 | - | ||
| 6656 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6657 | - sphinx/annotations.rst, sphinx/directives.rst: | ||
| 6658 | - Added the /Default/ exception annotation to specify an exception | ||
| 6659 | - that will be caught if there is no throw clause. A 'catch (...)' | ||
| 6660 | - block will now always be generated. | ||
| 6661 | - [d65ec4986067] | ||
| 6662 | - | ||
| 6663 | - * siplib/siplib.c: | ||
| 6664 | - Fixed a regression in the monkey patching of instances. | ||
| 6665 | - [94348861afba] | ||
| 6666 | - | ||
| 6667 | - * sphinx/directives.rst: | ||
| 6668 | - ...and another. | ||
| 6669 | - [f90c80feb177] | ||
| 6670 | - | ||
| 6671 | - * sphinx/directives.rst: | ||
| 6672 | - ...and another documentation typo. | ||
| 6673 | - [c3a7ea01b1e5] | ||
| 6674 | - | ||
| 6675 | - * sphinx/directives.rst: | ||
| 6676 | - Fixed a documentation typo. | ||
| 6677 | - [80259f3cc2f5] | ||
| 6678 | - | ||
| 6679 | - * sipgen/gencode.c: | ||
| 6680 | - Fixed a double delete bug with mapped types passed as references | ||
| 6681 | - annotated with /Out/. | ||
| 6682 | - [a788f308bbee] | ||
| 6683 | - | ||
| 6684 | -2009-10-28 phil <phil> | ||
| 6685 | - | ||
| 6686 | - * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst: | ||
| 6687 | - Adde support for out-of-tree building. | ||
| 6688 | - [837ce5451585] | ||
| 6689 | - | ||
| 6690 | - * lib/siputils.py, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, | ||
| 6691 | - sipgen/sip.h, sphinx/build_system.rst, sphinx/c_api.rst, | ||
| 6692 | - sphinx/command_line.rst, sphinx/directives.rst: | ||
| 6693 | - Added support for building with "protected" redefined as "public" to | ||
| 6694 | - reduce the size of generated modules. | ||
| 6695 | - [6601a9a55993] | ||
| 6696 | - | ||
| 6697 | -2009-10-26 phil <phil> | ||
| 6698 | - | ||
| 6699 | - * siplib/siplib.c: | ||
| 6700 | - sipFindType() now handles references as well as pointers. | ||
| 6701 | - [2228a1ad7d3f] | ||
| 6702 | - | ||
| 6703 | - * specs/linux-arm-g++, specs/linux-arm-thumb-g++, specs/linux- | ||
| 6704 | - armv6-g++: | ||
| 6705 | - Added the Linux ARM spec files from David Boddie's PyQt embedded | ||
| 6706 | - patch set. | ||
| 6707 | - [9285dfaea8a2] | ||
| 6708 | - | ||
| 6709 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: | ||
| 6710 | - More keyword argument bug fixing. (PyQt now seems to work with it | ||
| 6711 | - enabled.) | ||
| 6712 | - [d2f15ccd7460] | ||
| 6713 | - | ||
| 6714 | - * sipgen/gencode.c: | ||
| 6715 | - More keyword argument bug fixing. (PyQt now builds again.) | ||
| 6716 | - [709ea5c81d46] | ||
| 6717 | - | ||
| 6718 | -2009-10-25 phil <phil> | ||
| 6719 | - | ||
| 6720 | - * siplib/siplib.c: | ||
| 6721 | - Bug fixing the keyword argument support. | ||
| 6722 | - [9f8d9cc3f521] | ||
| 6723 | - | ||
| 6724 | - * sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6725 | - siplib/sip.h, siplib/siplib.c, sphinx/annotations.rst, | ||
| 6726 | - sphinx/command_line.rst, sphinx/introduction.rst: | ||
| 6727 | - Added support for (optional) keyword arguments - untested. | ||
| 6728 | - [04504a7b338b] | ||
| 6729 | - | ||
| 6730 | -2009-10-24 phil <phil> | ||
| 6731 | - | ||
| 6732 | - * NEWS, sipgen/gencode.c, siplib/siplib.c: | ||
| 6733 | - Merged v4.9.1 back into the trunk. | ||
| 6734 | - [8e50e7601287] | ||
| 6735 | - | ||
| 6736 | -2009-09-26 phil <phil> | ||
| 6737 | - | ||
| 6738 | - * NEWS: | ||
| 6739 | - Released as v4.9. | ||
| 6740 | - [4d26f5a2ec9c] [4.9] | ||
| 6741 | - | ||
| 6742 | -2009-09-19 phil <phil> | ||
| 6743 | - | ||
| 6744 | - * lib/siputils.py: | ||
| 6745 | - Fixed the dependency order of Qt libraries on Windows (which weems | ||
| 6746 | - to only affect MinGW). | ||
| 6747 | - [b3b353012242] | ||
| 6748 | - | ||
| 6749 | -2009-09-16 phil <phil> | ||
| 6750 | - | ||
| 6751 | - * lib/configure.py: | ||
| 6752 | - Fixed a configure.py command line parsing problem on OS/X. | ||
| 6753 | - [26287bd85bfd] | ||
| 6754 | - | ||
| 6755 | - * lib/siputils.py, sphinx/build_system.rst: | ||
| 6756 | - The default build system values of universal and arch are now taken | ||
| 6757 | - from the configuration. | ||
| 6758 | - [33fab9918a24] | ||
| 6759 | - | ||
| 6760 | - * NEWS, siplib/siplib.c, sphinx/python_api.rst: | ||
| 6761 | - Added sip.ispyowned(). | ||
| 6762 | - [ad556c1da3a4] | ||
| 6763 | - | ||
| 6764 | -2009-09-15 phil <phil> | ||
| 6765 | - | ||
| 6766 | - * lib/siputils.py: | ||
| 6767 | - A fix for the last fix. | ||
| 6768 | - [de0e5576ac75] | ||
| 6769 | - | ||
| 6770 | - * lib/siputils.py: | ||
| 6771 | - More fixes for Snow Leopard. | ||
| 6772 | - [64601a49b403] | ||
| 6773 | - | ||
| 6774 | -2009-09-14 phil <phil> | ||
| 6775 | - | ||
| 6776 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c, | ||
| 6777 | - sphinx/annotations.rst: | ||
| 6778 | - Allowed the /NoArgParser/ annotation to be used for class methods. | ||
| 6779 | - [e5ec799a3f70] | ||
| 6780 | - | ||
| 6781 | -2009-09-12 phil <phil> | ||
| 6782 | - | ||
| 6783 | - * sipgen/gencode.c: | ||
| 6784 | - Fixed a problem when a function returns a class instance that SIP | ||
| 6785 | - doesn't think can be copied. | ||
| 6786 | - [bf71880486d0] | ||
| 6787 | - | ||
| 6788 | - * lib/configure.py, lib/siputils.py, sphinx/build_system.rst, | ||
| 6789 | - sphinx/installation.rst: | ||
| 6790 | - The --arch option now only implies a universal binary if it is | ||
| 6791 | - specified more than once. | ||
| 6792 | - [8c16580e8c21] | ||
| 6793 | - | ||
| 6794 | - * lib/configure.py, lib/siputils.py, sphinx/build_system.rst: | ||
| 6795 | - Added support for specifying a MacOS architecture when creating a | ||
| 6796 | - wrapper script. | ||
| 6797 | - [8eeb8a1947b7] | ||
| 6798 | - | ||
| 6799 | -2009-09-11 phil <phil> | ||
| 6800 | - | ||
| 6801 | - * lib/configure.py: | ||
| 6802 | - The MacOS specific configure.py options are no longer enabled on | ||
| 6803 | - other platforms. | ||
| 6804 | - [2dd928167cd9] | ||
| 6805 | - | ||
| 6806 | - * lib/configure.py, sphinx/installation.rst: | ||
| 6807 | - Removed the -a short form of --arch so that it will be the same as | ||
| 6808 | - PyQt. | ||
| 6809 | - [239f8861bc8e] | ||
| 6810 | - | ||
| 6811 | - * NEWS, lib/configure.py, lib/siputils.py, sphinx/build_system.rst, | ||
| 6812 | - sphinx/installation.rst: | ||
| 6813 | - Added the --arch flag to configure.py to allow the architectures to | ||
| 6814 | - be included in a MacOS/X universal binary to be specified. | ||
| 6815 | - [b74bcfcb34b0] | ||
| 6816 | - | ||
| 6817 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 6818 | - Fixed a problem with the name of an API version in modules that sub- | ||
| 6819 | - class from classes with versioned methods in a different module. | ||
| 6820 | - [5b327c45a283] | ||
| 6821 | - | ||
| 6822 | -2009-09-06 phil <phil> | ||
| 6823 | - | ||
| 6824 | - * siplib/siplib.c: | ||
| 6825 | - Added the support for handling keyword arguments to QObject ctors. | ||
| 6826 | - [562b8ecd5e55] | ||
| 6827 | - | ||
| 6828 | -2009-09-04 phil <phil> | ||
| 6829 | - | ||
| 6830 | - * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, | ||
| 6831 | - sphinx/annotations.rst, sphinx/c_api.rst: | ||
| 6832 | - Completed the support for /Array/ applied to classes and mapped | ||
| 6833 | - types. | ||
| 6834 | - [f32ceb5cb246] | ||
| 6835 | - | ||
| 6836 | - * sipgen/gencode.c, sipgen/sip.h, siplib/siplib.c: | ||
| 6837 | - Added support for /Array/ for classes and mapped types for non- | ||
| 6838 | - virtual functions. | ||
| 6839 | - [24bcbdbd0393] | ||
| 6840 | - | ||
| 6841 | -2009-09-03 phil <phil> | ||
| 6842 | - | ||
| 6843 | - * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h: | ||
| 6844 | - Added the extended assignment helper and the array allocation helper | ||
| 6845 | - for the future support of /Array/ for classes and mapped types. | ||
| 6846 | - [61cf6b3635ab] | ||
| 6847 | - | ||
| 6848 | -2009-09-01 phil <phil> | ||
| 6849 | - | ||
| 6850 | - * NEWS, build.py, lib/LICENSE-GPL2.txt, lib/LICENSE-GPL3.txt, | ||
| 6851 | - lib/LICENSE.short, sphinx/introduction.rst: | ||
| 6852 | - Added the GPL as a licensing option. | ||
| 6853 | - [1d372e99f512] | ||
| 6854 | - | ||
| 6855 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, | ||
| 6856 | - siplib/siplib.c, sphinx/specification_files.rst: | ||
| 6857 | - Added support for __iter__ and __next__. | ||
| 6858 | - [d6cd069a434f] | ||
| 6859 | - | ||
| 6860 | -2009-08-21 phil <phil> | ||
| 6861 | - | ||
| 6862 | - * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 6863 | - Added a check for recursive class hierarchies. Fixed the error | ||
| 6864 | - message about type2string() by making sure it handles structs. | ||
| 6865 | - [7af2d9cb07f8] | ||
| 6866 | - | ||
| 6867 | -2009-08-11 phil <phil> | ||
| 6868 | - | ||
| 6869 | - * siplib/siplib.c: | ||
| 6870 | - Fixed sipIsPyMethod() to not use PyObject_GetAttr() so that | ||
| 6871 | - reimplementations defined in mixins will be found. This was a | ||
| 6872 | - regression introduced when attribute lookup was made less lazy when | ||
| 6873 | - getting super() to work properly. | ||
| 6874 | - [710a488b84b4] | ||
| 6875 | - | ||
| 6876 | - * siplib/siplib.c: | ||
| 6877 | - Fixed the conversion of strings to wchar_t arrays as it was using | ||
| 6878 | - calls that appeared in Python v2.6. | ||
| 6879 | - [47cc56c95614] | ||
| 6880 | - | ||
| 6881 | -2009-08-08 phil <phil> | ||
| 6882 | - | ||
| 6883 | - * siplib/siplib.c: | ||
| 6884 | - sipFindType() will now find types given as a pointer. | ||
| 6885 | - [b693f15869c8] | ||
| 6886 | - | ||
| 6887 | -2009-08-06 phil <phil> | ||
| 6888 | - | ||
| 6889 | - * lib/sipdistutils.py: | ||
| 6890 | - Fixed sipdistutils.py for Python v3. | ||
| 6891 | - [4574e78f607f] | ||
| 6892 | - | ||
| 6893 | -2009-08-05 phil <phil> | ||
| 6894 | - | ||
| 6895 | - * siplib/apiversions.c, siplib/sip.h, siplib/siplib.c: | ||
| 6896 | - Fixes for looking up types when some times have no implementation | ||
| 6897 | - for all API versions. | ||
| 6898 | - [e77c51f40fe0] | ||
| 6899 | - | ||
| 6900 | -2009-08-04 phil <phil> | ||
| 6901 | - | ||
| 6902 | - * sipgen/transform.c: | ||
| 6903 | - No longer complain about methods having the same Python signature if | ||
| 6904 | - they all are versioned. | ||
| 6905 | - [076cbeaeb3ad] | ||
| 6906 | - | ||
| 6907 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 6908 | - Init extenders now respect API version numbers. | ||
| 6909 | - [4efa4f7f246b] | ||
| 6910 | - | ||
| 6911 | -2009-08-03 phil <phil> | ||
| 6912 | - | ||
| 6913 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 6914 | - Virtual methods now support API versions. | ||
| 6915 | - [8ec049505369] | ||
| 6916 | - | ||
| 6917 | - * sipgen/gencode.c, sipgen/parser.y, sphinx/annotations.rst: | ||
| 6918 | - Added support for the /API/ annotation to all overloaded methods. | ||
| 6919 | - [fae5b6dd29d0] | ||
| 6920 | - | ||
| 6921 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 6922 | - sphinx/annotations.rst: | ||
| 6923 | - The /API/ annotation is now supported for ctors. | ||
| 6924 | - [a24c25aede8d] | ||
| 6925 | - | ||
| 6926 | -2009-08-02 phil <phil> | ||
| 6927 | - | ||
| 6928 | - * sipgen/gencode.c, sipgen/parser.y, siplib/siplib.c: | ||
| 6929 | - Instantiated class templates now take their API from the scoping | ||
| 6930 | - class. | ||
| 6931 | - [39bf3e3fc6de] | ||
| 6932 | - | ||
| 6933 | -2009-08-01 phil <phil> | ||
| 6934 | - | ||
| 6935 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 6936 | - Operator casts and global slots now handle classes with alternate | ||
| 6937 | - mapped type implementations. (In a limited way, but good enough for | ||
| 6938 | - PyQt.) | ||
| 6939 | - [c2ed8e5bbf11] | ||
| 6940 | - | ||
| 6941 | -2009-07-29 phil <phil> | ||
| 6942 | - | ||
| 6943 | - * siplib/siplib.c: | ||
| 6944 | - Fixed a crash with sipFindType() when the search happens to land on | ||
| 6945 | - an unresolved external type. | ||
| 6946 | - [ec4838cbf038] | ||
| 6947 | - | ||
| 6948 | - * siplib/siplib.c: | ||
| 6949 | - Fixed the Python v3 buffer interface for sip.voidptr. | ||
| 6950 | - [4f800839bd44] | ||
| 6951 | - | ||
| 6952 | -2009-07-25 phil <phil> | ||
| 6953 | - | ||
| 6954 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c, | ||
| 6955 | - sphinx/annotations.rst, sphinx/command_line.rst, | ||
| 6956 | - sphinx/specification_files.rst: | ||
| 6957 | - Fixed the '/' operator for Python v3 and future import for Python | ||
| 6958 | - v2. | ||
| 6959 | - [fe62bcd81fa3] | ||
| 6960 | - | ||
| 6961 | -2009-07-18 phil <phil> | ||
| 6962 | - | ||
| 6963 | - * sipgen/transform.c, sphinx/python_api.rst: | ||
| 6964 | - Fixed a typo in a couple of error messages. | ||
| 6965 | - [c7eb3170f527] | ||
| 6966 | - | ||
| 6967 | -2009-07-09 phil <phil> | ||
| 6968 | - | ||
| 6969 | - * siplib/siplib.c: | ||
| 6970 | - Fixed the nb_index initialiser for sip.voidptr for Python v2.4 and | ||
| 6971 | - earler. | ||
| 6972 | - [672b898935b5] | ||
| 6973 | - | ||
| 6974 | - * siplib/siplib.c: | ||
| 6975 | - Allow the meta-type to be used with with ordinary Python classes, | ||
| 6976 | - not just SIP generated classes. | ||
| 6977 | - [6f724709902c] | ||
| 6978 | - | ||
| 6979 | -2009-07-08 phil <phil> | ||
| 6980 | - | ||
| 6981 | - * sipgen/gencode.c: | ||
| 6982 | - Complete the support for mapped type static methods. | ||
| 6983 | - [f1cf7ebed748] | ||
| 6984 | - | ||
| 6985 | -2009-07-07 phil <phil> | ||
| 6986 | - | ||
| 6987 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 6988 | - Safety commit of (mostly complete) support for static functions in | ||
| 6989 | - mapped types. | ||
| 6990 | - [58aa805c1867] | ||
| 6991 | - | ||
| 6992 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 6993 | - sphinx/annotations.rst: | ||
| 6994 | - Extended the use of /AllowNone/ to classes with %ConvertToType code. | ||
| 6995 | - [102fc846396e] | ||
| 6996 | - | ||
| 6997 | -2009-07-06 phil <phil> | ||
| 6998 | - | ||
| 6999 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, | ||
| 7000 | - siplib/siplib.c, sphinx/annotations.rst: | ||
| 7001 | - Added the /AllowNone/ mapped type annotation for mapped types that | ||
| 7002 | - want to place a special interpretation on None. | ||
| 7003 | - [d449e525c5e8] | ||
| 7004 | - | ||
| 7005 | - * sipgen/gencode.c: | ||
| 7006 | - The generated virtual handler code is now the same for classes and | ||
| 7007 | - for mapped types that might have an alternate class implementation. | ||
| 7008 | - [60ce12a7d248] | ||
| 7009 | - | ||
| 7010 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7011 | - Make sure mapped types honour the /Constrained/ annotation. | ||
| 7012 | - [0a8916fbe3b2] | ||
| 7013 | - | ||
| 7014 | -2009-07-05 phil <phil> | ||
| 7015 | - | ||
| 7016 | - * siplib/apiversions.c, siplib/siplib.c: | ||
| 7017 | - Debugged mapped types with namespaces. | ||
| 7018 | - [1f55210a89de] | ||
| 7019 | - | ||
| 7020 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 7021 | - siplib/descriptors.c, siplib/sip.h, siplib/sipint.h, | ||
| 7022 | - siplib/siplib.c: | ||
| 7023 | - Safety checkin on the run-time support for mapped types with | ||
| 7024 | - namespaces. | ||
| 7025 | - [ec7ba808f36c] | ||
| 7026 | - | ||
| 7027 | -2009-06-29 phil <phil> | ||
| 7028 | - | ||
| 7029 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7030 | - Finished the code generation support for enums in mapped types. | ||
| 7031 | - (Runtime support still to do.) | ||
| 7032 | - [552a2d4950a1] | ||
| 7033 | - | ||
| 7034 | -2009-06-28 phil <phil> | ||
| 7035 | - | ||
| 7036 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7037 | - Safety commit of the support for mapped types containing enums. | ||
| 7038 | - [d94e09ea5add] | ||
| 7039 | - | ||
| 7040 | - * sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, siplib/siplib.c: | ||
| 7041 | - Implemented the sipContainerDef in anticipation of mapped types | ||
| 7042 | - supporting enums (for the moment, static methods and variables at a | ||
| 7043 | - later date). Fixed a problem where API version ranges wheren't being | ||
| 7044 | - reused. | ||
| 7045 | - [28f8f2aa4bcf] | ||
| 7046 | - | ||
| 7047 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 7048 | - siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, | ||
| 7049 | - siplib/siplib.c: | ||
| 7050 | - Fixed a problem with enums in a type with alternate APIs. | ||
| 7051 | - [e320f9cb7d19] | ||
| 7052 | - | ||
| 7053 | -2009-06-27 phil <phil> | ||
| 7054 | - | ||
| 7055 | - * lib/siputils.py: | ||
| 7056 | - Added a workaround to the build system when using virtualenv on | ||
| 7057 | - MacOS. | ||
| 7058 | - [ff5b09d449d5] | ||
| 7059 | - | ||
| 7060 | -2009-06-25 phil <phil> | ||
| 7061 | - | ||
| 7062 | - * sipgen/gencode.c, siplib/siplib.c, sphinx/c_api.rst: | ||
| 7063 | - A Python string object can now be provided when a wide character | ||
| 7064 | - (wchar_t) is expected. | ||
| 7065 | - [5a629389629b] | ||
| 7066 | - | ||
| 7067 | -2009-06-23 phil <phil> | ||
| 7068 | - | ||
| 7069 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7070 | - Some fixes for generated code for mapped types and classes not being | ||
| 7071 | - as completely interchangeable as needed. (Still more to do.) | ||
| 7072 | - [438a66e8e0a4] | ||
| 7073 | - | ||
| 7074 | -2009-06-22 phil <phil> | ||
| 7075 | - | ||
| 7076 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7077 | - Bug fixes to the multi-API type support - PyQt4 now builds again. | ||
| 7078 | - [795308460def] | ||
| 7079 | - | ||
| 7080 | - * siplib/apiversions.c, sphinx/annotations.rst: | ||
| 7081 | - Completed the run-time support for multi-API types. | ||
| 7082 | - [8888d5cd3feb] | ||
| 7083 | - | ||
| 7084 | -2009-06-21 phil <phil> | ||
| 7085 | - | ||
| 7086 | - * sipgen/gencode.c: | ||
| 7087 | - Completed the code generation changes for multi-API types. | ||
| 7088 | - [439a95ba643e] | ||
| 7089 | - | ||
| 7090 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7091 | - More refactoring in preparation for multi-API support for types. | ||
| 7092 | - [a9c3de1478d8] | ||
| 7093 | - | ||
| 7094 | - * sipgen/gencode.c: | ||
| 7095 | - More changes to the multi-API support for types. | ||
| 7096 | - [329493ac7802] | ||
| 7097 | - | ||
| 7098 | -2009-06-20 phil <phil> | ||
| 7099 | - | ||
| 7100 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7101 | - Safety commit of latest changes for support of type API selection. | ||
| 7102 | - [9443ed19b08b] | ||
| 7103 | - | ||
| 7104 | -2009-06-19 phil <phil> | ||
| 7105 | - | ||
| 7106 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7107 | - Safety commit of parser changes to get at the API version of a class | ||
| 7108 | - before it is defined. | ||
| 7109 | - [c209ce56ea4d] | ||
| 7110 | - | ||
| 7111 | -2009-06-18 phil <phil> | ||
| 7112 | - | ||
| 7113 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 7114 | - siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, | ||
| 7115 | - siplib/siplib.c, sphinx/annotations.rst: | ||
| 7116 | - Implemented API selection for global functions. | ||
| 7117 | - [db777d90f374] | ||
| 7118 | - | ||
| 7119 | -2009-06-17 phil <phil> | ||
| 7120 | - | ||
| 7121 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 7122 | - siplib/apiversions.c, siplib/sip.h, sphinx/annotations.rst, | ||
| 7123 | - sphinx/c_api.rst, sphinx/directives.rst, sphinx/using.rst: | ||
| 7124 | - Completed the documentation for the API support. The %API directive | ||
| 7125 | - can now be used any number of times in a module. Added the parser | ||
| 7126 | - support for the API annotation. | ||
| 7127 | - [9e63d5da36bd] | ||
| 7128 | - | ||
| 7129 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 7130 | - siplib/apiversions.c, siplib/sip.h, siplib/sipint.h, | ||
| 7131 | - siplib/siplib.c, sphinx/directives.rst, | ||
| 7132 | - sphinx/specification_files.rst: | ||
| 7133 | - Added support for the %API directive. | ||
| 7134 | - [076c846bb8ca] | ||
| 7135 | - | ||
| 7136 | -2009-06-16 phil <phil> | ||
| 7137 | - | ||
| 7138 | - * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c, | ||
| 7139 | - sphinx/c_api.rst: | ||
| 7140 | - Implemented sipIsAPIEnabled(). | ||
| 7141 | - [ade852c2131a] | ||
| 7142 | - | ||
| 7143 | - * siplib/apiversions.c: | ||
| 7144 | - ...and made sure it compiles. | ||
| 7145 | - [3e8030fe1b76] | ||
| 7146 | - | ||
| 7147 | - * siplib/apiversions.c, siplib/sipint.h, siplib/siplib.c, | ||
| 7148 | - siplib/siplib.sbf, sphinx/python_api.rst, sphinx/using.rst: | ||
| 7149 | - Fixed the reference count of the sip module in the error path if its | ||
| 7150 | - initialisation fails. Added the sip.getapi() and sip.setapi() | ||
| 7151 | - functions. | ||
| 7152 | - [43c34f1c289a] | ||
| 7153 | - | ||
| 7154 | - * NEWS, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 7155 | - sipgen/transform.c, siplib/sip.h, siplib/siplib.c, | ||
| 7156 | - sphinx/specification_files.rst: | ||
| 7157 | - Merged v4.8.1 into the trunk. | ||
| 7158 | - [d1bd8aecab5a] | ||
| 7159 | - | ||
| 7160 | -2009-06-05 phil <phil> | ||
| 7161 | - | ||
| 7162 | - * NEWS: | ||
| 7163 | - Released as v4.8. | ||
| 7164 | - [6e9fb584da32] [4.8] | ||
| 7165 | - | ||
| 7166 | -2009-06-03 phil <phil> | ||
| 7167 | - | ||
| 7168 | - * build.py: | ||
| 7169 | - More internal build system fixes. | ||
| 7170 | - [4f34294143b0] | ||
| 7171 | - | ||
| 7172 | - * NEWS, build.py, siplib/descriptors.c, sphinx/Makefile: | ||
| 7173 | - Fixed a Python v3 portability bug. Fixed the internal build system | ||
| 7174 | - for Python v2.5. | ||
| 7175 | - [144adbee9ea0] | ||
| 7176 | - | ||
| 7177 | -2009-06-02 phil <phil> | ||
| 7178 | - | ||
| 7179 | - * build.py, doc/sipref.txt, sphinx/conf.py, | ||
| 7180 | - sphinx/extensions/siproles.py: | ||
| 7181 | - Switched to the Sphinx documentation. | ||
| 7182 | - [16b6a4f285a6] | ||
| 7183 | - | ||
| 7184 | - * sphinx/build_system.rst, sphinx/builtin.rst, sphinx/distutils.rst, | ||
| 7185 | - sphinx/python_api.rst, sphinx/using.rst: | ||
| 7186 | - Completed the initial Sphinx docs. | ||
| 7187 | - [d9202085c430] | ||
| 7188 | - | ||
| 7189 | - * sphinx/c_api.rst, sphinx/embedding.rst, sphinx/python_api.rst, | ||
| 7190 | - sphinx/using.rst: | ||
| 7191 | - More Sphinx docs. | ||
| 7192 | - [f3c5b7d3dcd4] | ||
| 7193 | - | ||
| 7194 | -2009-06-01 phil <phil> | ||
| 7195 | - | ||
| 7196 | - * sphinx/annotations.rst, sphinx/c_api.rst, sphinx/command_line.rst, | ||
| 7197 | - sphinx/directives.rst, sphinx/extensions/siproles.py, | ||
| 7198 | - sphinx/specification_files.rst, sphinx/using.rst: | ||
| 7199 | - More Sphinx docs. | ||
| 7200 | - [831112f389a5] | ||
| 7201 | - | ||
| 7202 | - * sipgen/transform.c: | ||
| 7203 | - Fixed a bug where nested templates where having their types resolved | ||
| 7204 | - (when they should have been left as templates) which then meant that | ||
| 7205 | - they were being found and were being instantiated again (possibly in | ||
| 7206 | - a different module). | ||
| 7207 | - [79d8261912c8] | ||
| 7208 | - | ||
| 7209 | - * build.py: | ||
| 7210 | - Fixed the build system after removing the TODO file. | ||
| 7211 | - [93ea3b759b5f] | ||
| 7212 | - | ||
| 7213 | -2009-05-31 phil <phil> | ||
| 7214 | - | ||
| 7215 | - * sphinx/annotations.rst, sphinx/builtin.rst, sphinx/c_api.rst, | ||
| 7216 | - sphinx/conf.py, sphinx/directives.rst, | ||
| 7217 | - sphinx/extensions/annotations.py, sphinx/extensions/siproles.py, | ||
| 7218 | - sphinx/incompatibilities.rst, sphinx/installation.rst: | ||
| 7219 | - More Sphinx docs. | ||
| 7220 | - [d28f3153b2f8] | ||
| 7221 | - | ||
| 7222 | - * doc/sipref.txt, sphinx/annotations.rst, sphinx/c_api.rst, | ||
| 7223 | - sphinx/conf.py, sphinx/extensions/annotations.py, | ||
| 7224 | - sphinx/incompatibilities.rst, sphinx/using.rst: | ||
| 7225 | - More Sphinx docs. | ||
| 7226 | - [e4dcbba1bd9d] | ||
| 7227 | - | ||
| 7228 | -2009-05-30 phil <phil> | ||
| 7229 | - | ||
| 7230 | - * sphinx/build_system.rst, sphinx/conf.py, sphinx/distutils.rst, | ||
| 7231 | - sphinx/introduction.rst, sphinx/python_api.rst, sphinx/using.rst: | ||
| 7232 | - Sphinx documentation changes. | ||
| 7233 | - [62644d47ee77] | ||
| 7234 | - | ||
| 7235 | - * TODO, doc/sipref.txt, siplib/siplib.c, sphinx/Makefile, | ||
| 7236 | - sphinx/annotations.rst, sphinx/build_system.rst, sphinx/builtin.rst, | ||
| 7237 | - sphinx/c_api.rst, sphinx/command_line.rst, sphinx/conf.py, | ||
| 7238 | - sphinx/directives.rst, sphinx/distutils.rst, sphinx/embedding.rst, | ||
| 7239 | - sphinx/incompatibilities.rst, sphinx/index.rst, | ||
| 7240 | - sphinx/installation.rst, sphinx/introduction.rst, | ||
| 7241 | - sphinx/python_api.rst, sphinx/specification_files.rst, | ||
| 7242 | - sphinx/using.rst: | ||
| 7243 | - Initial commit of the Sphinx documentation. | ||
| 7244 | - [432d95fdad2f] | ||
| 7245 | - | ||
| 7246 | - * sipgen/parser.y, sipgen/transform.c: | ||
| 7247 | - Reverted the previous fix and fixed the real bug which was that | ||
| 7248 | - %DefaultEncoding wasn't being inherited properly by modules. | ||
| 7249 | - [9abeaff1148a] | ||
| 7250 | - | ||
| 7251 | -2009-05-29 phil <phil> | ||
| 7252 | - | ||
| 7253 | - * sipgen/transform.c: | ||
| 7254 | - Fixed a bug in comparing virtual handlers that had a char* result or | ||
| 7255 | - argument and a default encoding was specified (ie. with Python v3). | ||
| 7256 | - [3c92e9237373] | ||
| 7257 | - | ||
| 7258 | - * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c, | ||
| 7259 | - siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 7260 | - Eliminated more warning messages. | ||
| 7261 | - [a61fb0a096f2] | ||
| 7262 | - | ||
| 7263 | - * sipgen/gencode.c, siplib/sip.h: | ||
| 7264 | - Eliminated some compiler warning messages - particularly for Python | ||
| 7265 | - v2.4. | ||
| 7266 | - [374f079e7228] | ||
| 7267 | - | ||
| 7268 | -2009-05-28 phil <phil> | ||
| 7269 | - | ||
| 7270 | - * sipgen/gencode.c: | ||
| 7271 | - Removed a compiler warning for the generated calls to | ||
| 7272 | - PyInit_Module() for Python v2.5 and v2.6. | ||
| 7273 | - [dc93a8fa4a5b] | ||
| 7274 | - | ||
| 7275 | -2009-05-27 phil <phil> | ||
| 7276 | - | ||
| 7277 | - * sipgen/gencode.c: | ||
| 7278 | - The implicit copying of const& results is disabled for abstract | ||
| 7279 | - classes. | ||
| 7280 | - [705fc12e2144] | ||
| 7281 | - | ||
| 7282 | -2009-05-26 phil <phil> | ||
| 7283 | - | ||
| 7284 | - * sipgen/gencode.c: | ||
| 7285 | - Fixed the generated code for abstract operators. | ||
| 7286 | - [c56cc92b0917] | ||
| 7287 | - | ||
| 7288 | - * siplib/siplib.c: | ||
| 7289 | - Added the missing initialisation of the sipVariableDescr_Type type. | ||
| 7290 | - [2c0779527ed3] | ||
| 7291 | - | ||
| 7292 | -2009-05-25 phil <phil> | ||
| 7293 | - | ||
| 7294 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 7295 | - sipgen/sip.h, siplib/sip.h, siplib/siplib.c: | ||
| 7296 | - __bool__ is now synonymous with __nonzero__. __truediv__ and | ||
| 7297 | - __itruediv__ are now explicit. __div__ and __idiv__ are now Python | ||
| 7298 | - v2 only. Added support for __floordiv__, __ifloordiv__ and | ||
| 7299 | - __index__. | ||
| 7300 | - [537579d9318e] | ||
| 7301 | - | ||
| 7302 | - * sipgen/parser.y: | ||
| 7303 | - Hopefully fixed the regression with specific mapped types not | ||
| 7304 | - properly superceding template mapped types that was affecting PyKDE3 | ||
| 7305 | - and PyKDE4. | ||
| 7306 | - [25a665370099] | ||
| 7307 | - | ||
| 7308 | -2009-05-24 phil <phil> | ||
| 7309 | - | ||
| 7310 | - * siplib/descriptors.c, siplib/sipint.h: | ||
| 7311 | - Added a repr() method to sip.methoddescriptor. | ||
| 7312 | - [149f6c3f12a5] | ||
| 7313 | - | ||
| 7314 | - * sipgen/transform.c: | ||
| 7315 | - Fixed a bug where the name of an automatically generated | ||
| 7316 | - complementary slot wasn't being generated. | ||
| 7317 | - [0f304e850331] | ||
| 7318 | - | ||
| 7319 | - * sipgen/export.c: | ||
| 7320 | - Added support for images in the generated Scintilla API files from a | ||
| 7321 | - patch from Detlev Offenbach. | ||
| 7322 | - [83966cc9950a] | ||
| 7323 | - | ||
| 7324 | -2009-04-30 phil <phil> | ||
| 7325 | - | ||
| 7326 | - * doc/sipref.txt, sipgen/transform.c, siplib/qtlib.c: | ||
| 7327 | - %DefaultSupertype now only changes the default for the current | ||
| 7328 | - module. (%DefaultMetatype still affects importing modules.) This | ||
| 7329 | - should mean that modules that extend PyQt4 will continue to work | ||
| 7330 | - without having to make super-type or meta-type changes. | ||
| 7331 | - [5fc24c675796] | ||
| 7332 | - | ||
| 7333 | -2009-04-24 phil <phil> | ||
| 7334 | - | ||
| 7335 | - * siplib/siplib.c: | ||
| 7336 | - Fixed the lookup of generated slot functions in sub-types. Moved | ||
| 7337 | - some assertions to more appropriate places when a generated slot | ||
| 7338 | - function isn't found. | ||
| 7339 | - [5b59bd703dff] | ||
| 7340 | - | ||
| 7341 | -2009-04-20 phil <phil> | ||
| 7342 | - | ||
| 7343 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 7344 | - Disabled the new implicit copying of const reference results where | ||
| 7345 | - the class doesn't have a public copy ctor. | ||
| 7346 | - [70cd90b1d5b9] | ||
| 7347 | - | ||
| 7348 | -2009-04-18 phil <phil> | ||
| 7349 | - | ||
| 7350 | - * siplib/siplib.c: | ||
| 7351 | - Fixed a problem handling __setitem__ when being used to support | ||
| 7352 | - multi-dimensional mappings. | ||
| 7353 | - [705be62a3cd0] | ||
| 7354 | - | ||
| 7355 | -2009-04-09 phil <phil> | ||
| 7356 | - | ||
| 7357 | - * siplib/siplib.c: | ||
| 7358 | - Print any exception raised by __dtor__. | ||
| 7359 | - [0d56ac42feac] | ||
| 7360 | - | ||
| 7361 | -2009-04-01 phil <phil> | ||
| 7362 | - | ||
| 7363 | - * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c: | ||
| 7364 | - Added support for PyQt4's support for signals that have overloaded | ||
| 7365 | - methods. | ||
| 7366 | - [c0ad968503e4] | ||
| 7367 | - | ||
| 7368 | -2009-03-30 phil <phil> | ||
| 7369 | - | ||
| 7370 | - * sipgen/gencode.c: | ||
| 7371 | - Fixed a compiler warning message if sipCpp isn't used by | ||
| 7372 | - %BIGetBufferCode. | ||
| 7373 | - [26269a7e86f4] | ||
| 7374 | - | ||
| 7375 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7376 | - Fixed the declaration of the module initialisation function when | ||
| 7377 | - building static modules for Python v3. | ||
| 7378 | - [6f48c809c90b] | ||
| 7379 | - | ||
| 7380 | -2009-03-27 phil <phil> | ||
| 7381 | - | ||
| 7382 | - * siplib/siplib.c: | ||
| 7383 | - Fixed a couple of missing calls to clear the error flag while | ||
| 7384 | - parsing strings. | ||
| 7385 | - [2275585e4c08] | ||
| 7386 | - | ||
| 7387 | -2009-03-26 phil <phil> | ||
| 7388 | - | ||
| 7389 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 7390 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, | ||
| 7391 | - siplib/siplib.c: | ||
| 7392 | - Replaced the new /Byte/ annotation with the even newer /Encoding/ | ||
| 7393 | - annotation and %DefaultEncoding directive. | ||
| 7394 | - [7c648d9cdd13] | ||
| 7395 | - | ||
| 7396 | -2009-03-24 phil <phil> | ||
| 7397 | - | ||
| 7398 | - * sipgen/gencode.c: | ||
| 7399 | - Changed the order in which PyQt4 signals are generated so that those | ||
| 7400 | - with optional arguments appear with the most arguments first and | ||
| 7401 | - least last. | ||
| 7402 | - [4d0b9c852cf8] | ||
| 7403 | - | ||
| 7404 | -2009-03-23 phil <phil> | ||
| 7405 | - | ||
| 7406 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 7407 | - Backed out the removal of sipSelfWasArg and supporting code as it | ||
| 7408 | - really is needed. However, changed how it was set so that super() | ||
| 7409 | - should still work. | ||
| 7410 | - [29d1813e4566] | ||
| 7411 | - | ||
| 7412 | -2009-03-21 phil <phil> | ||
| 7413 | - | ||
| 7414 | - * sipgen/gencode.c: | ||
| 7415 | - Fixed a bug in the code generated for protected methods with | ||
| 7416 | - multiple Python names. | ||
| 7417 | - [7aa8d62ddf7c] | ||
| 7418 | - | ||
| 7419 | -2009-03-20 phil <phil> | ||
| 7420 | - | ||
| 7421 | - * siplib/siplib.c: | ||
| 7422 | - Bytes and the buffer protocol are now also supported for non-byte | ||
| 7423 | - char and char * (howver the buffer protocol support seems to be | ||
| 7424 | - broken). | ||
| 7425 | - [1c5b994cd2d6] | ||
| 7426 | - | ||
| 7427 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 7428 | - sipgen/sip.h, sipgen/transform.c, siplib/descriptors.c, | ||
| 7429 | - siplib/sip.h, siplib/siplib.c: | ||
| 7430 | - Many changes to the wrapping of strings for Python v3 so that char | ||
| 7431 | - and char * (unless the /Byte/ annotation is specified) are handled | ||
| 7432 | - as Unicode rather than bytes. Such strings must be able to be | ||
| 7433 | - encoded as Latin-1. Related to the above, the generated code is much | ||
| 7434 | - more careful than it used to be about keeping Python string objects | ||
| 7435 | - alive while their data is being used. | ||
| 7436 | - [49cf3c9e7b69] | ||
| 7437 | - | ||
| 7438 | -2009-03-18 phil <phil> | ||
| 7439 | - | ||
| 7440 | - * sipgen/gencode.c: | ||
| 7441 | - Fixed a long-standing bug in the handling of the /NoArgParser/ | ||
| 7442 | - annotation that only came to light with Python v3. | ||
| 7443 | - [2c44dd616d6d] | ||
| 7444 | - | ||
| 7445 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/transform.c: | ||
| 7446 | - More fixes for consolidated modules. Python v2 and v3 should now be | ||
| 7447 | - working. | ||
| 7448 | - [b966b1df2bb1] | ||
| 7449 | - | ||
| 7450 | -2009-03-17 phil <phil> | ||
| 7451 | - | ||
| 7452 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 7453 | - Some fixes for consolidated module support for both Python v2 and | ||
| 7454 | - v3. | ||
| 7455 | - [b17d4cdf4709] | ||
| 7456 | - | ||
| 7457 | - * lib/siputils.py: | ||
| 7458 | - Tweaked the build system to make it easier for Makefile sub-classes | ||
| 7459 | - to add commands to targets. | ||
| 7460 | - [abe3ecd83256] | ||
| 7461 | - | ||
| 7462 | -2009-03-16 phil <phil> | ||
| 7463 | - | ||
| 7464 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 7465 | - Fixed a bug in generating Python v3 consolidated modules. | ||
| 7466 | - [8fc22b7be6fd] | ||
| 7467 | - | ||
| 7468 | - * siplib/siplib.c: | ||
| 7469 | - Fixed a typo that broke the build of the sip module for Python v2. | ||
| 7470 | - [348b333af022] | ||
| 7471 | - | ||
| 7472 | -2009-03-15 phil <phil> | ||
| 7473 | - | ||
| 7474 | - * siplib/sip.h: | ||
| 7475 | - Tweaks to the Python portability macros. | ||
| 7476 | - [c1f795ce8a5a] | ||
| 7477 | - | ||
| 7478 | - * siplib/sip.h: | ||
| 7479 | - More Python portability macros. | ||
| 7480 | - [b3d39099f350] | ||
| 7481 | - | ||
| 7482 | -2009-03-14 phil <phil> | ||
| 7483 | - | ||
| 7484 | - * lib/configure.py: | ||
| 7485 | - Fixed a Mac build regression handling the location of the SDK. | ||
| 7486 | - [2c8cf43905e1] | ||
| 7487 | - | ||
| 7488 | - * siplib/sip.h: | ||
| 7489 | - Added some more Python porting macros. | ||
| 7490 | - [c046cc5bb268] | ||
| 7491 | - | ||
| 7492 | - * lib/siputils.py: | ||
| 7493 | - Removed a remaining Python v2 specific call from the build system. | ||
| 7494 | - [c1527c576e1d] | ||
| 7495 | - | ||
| 7496 | - * NEWS, sipgen/gencode.c, siplib/sip.h: | ||
| 7497 | - The generated code now supports Python v3. | ||
| 7498 | - [c60f38353478] | ||
| 7499 | - | ||
| 7500 | - * siplib/siplib.c: | ||
| 7501 | - The sip module can now be imported by Python v3. | ||
| 7502 | - [a8bd1e5a5a4b] | ||
| 7503 | - | ||
| 7504 | -2009-03-13 phil <phil> | ||
| 7505 | - | ||
| 7506 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 7507 | - Ported the PyString_ calls in the sip module to Python v3. | ||
| 7508 | - [337e7e627054] | ||
| 7509 | - | ||
| 7510 | - * sipgen/gencode.c: | ||
| 7511 | - Updated the generated module initialisation code for Python v3 - but | ||
| 7512 | - not for consolidated modules yet. | ||
| 7513 | - [985c336dd059] | ||
| 7514 | - | ||
| 7515 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7516 | - Moved to PyLong_* for Python v3. | ||
| 7517 | - [a1d1a376920b] | ||
| 7518 | - | ||
| 7519 | -2009-03-12 phil <phil> | ||
| 7520 | - | ||
| 7521 | - * lib/siputils.py, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 7522 | - siplib/sip.h, siplib/siplib.c: | ||
| 7523 | - More porting of the sip module. It now compiles but still calls | ||
| 7524 | - Python v2 functions. | ||
| 7525 | - [9f4570a090e1] | ||
| 7526 | - | ||
| 7527 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 7528 | - sipgen/parser.y, sipgen/sip.h, siplib/descriptors.c, siplib/sip.h, | ||
| 7529 | - siplib/siplib.c: | ||
| 7530 | - Partially ported the sip module to Python v3. Added the | ||
| 7531 | - %BIGetBufferCode and %BIReleaseBufferCode directives to support the | ||
| 7532 | - buffer interface of Python v3. | ||
| 7533 | - [0631013fd5ae] | ||
| 7534 | - | ||
| 7535 | -2009-03-11 phil <phil> | ||
| 7536 | - | ||
| 7537 | - * doc/sipref.txt, lib/configure.py, lib/siputils.py: | ||
| 7538 | - configure.py now uses optparse. configure.py and the build system | ||
| 7539 | - will now run under Python3. | ||
| 7540 | - [89bbb0b49865] | ||
| 7541 | - | ||
| 7542 | - * siplib/siplib.c: | ||
| 7543 | - Implemented __dict__ for sipsimplewrapper. | ||
| 7544 | - [cf1c9edeb56a] | ||
| 7545 | - | ||
| 7546 | - * sipgen/gencode.c, siplib/sip.h: | ||
| 7547 | - Added the SIP_PYMETHODDEF_CAST compatibility macro for Python v2.4 | ||
| 7548 | - and earlier. | ||
| 7549 | - [43e5b0afa42d] | ||
| 7550 | - | ||
| 7551 | -2009-03-10 phil <phil> | ||
| 7552 | - | ||
| 7553 | - * sipgen/gencode.c: | ||
| 7554 | - Changed the code generated for variable getters so that a copy is | ||
| 7555 | - only returned if the variable is const. | ||
| 7556 | - [22c2ae7bdc37] | ||
| 7557 | - | ||
| 7558 | -2009-03-09 phil <phil> | ||
| 7559 | - | ||
| 7560 | - * sipgen/gencode.c: | ||
| 7561 | - Changed the generation of the string pool to get around MSVC's | ||
| 7562 | - limitation on the size of a string. | ||
| 7563 | - [e15683c4034a] | ||
| 7564 | - | ||
| 7565 | - * NEWS: | ||
| 7566 | - Updated the NEWS file. | ||
| 7567 | - [262f29053a78] | ||
| 7568 | - | ||
| 7569 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7570 | - Made sure all generated code doesn't break strict aliasing. | ||
| 7571 | - [ae62345de148] | ||
| 7572 | - | ||
| 7573 | - * sipgen/gencode.c: | ||
| 7574 | - SIP now automatically copies objects when they are returned as a | ||
| 7575 | - const reference. | ||
| 7576 | - [3d0c7011cb93] | ||
| 7577 | - | ||
| 7578 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 7579 | - A further fix to the order in which modules have their types | ||
| 7580 | - resolved. | ||
| 7581 | - [d7ebeff5a7ce] | ||
| 7582 | - | ||
| 7583 | -2009-03-06 phil <phil> | ||
| 7584 | - | ||
| 7585 | - * lib/siputils.py: | ||
| 7586 | - Taught the build system about the QtScriptTools module. | ||
| 7587 | - [6c0d66e4ef0b] | ||
| 7588 | - | ||
| 7589 | - * sipgen/transform.c: | ||
| 7590 | - Fixed a bug where types were being resolved in outer modules before | ||
| 7591 | - inner modules. This meant that template-based types created on the | ||
| 7592 | - fly might be created in the wrong module. | ||
| 7593 | - [cd2a99e505be] | ||
| 7594 | - | ||
| 7595 | -2009-03-05 phil <phil> | ||
| 7596 | - | ||
| 7597 | - * lib/siputils.py: | ||
| 7598 | - Taught the build system about the new dependency of QtXmlPatterns on | ||
| 7599 | - QtNetwork. | ||
| 7600 | - [50a9e41802c2] | ||
| 7601 | - | ||
| 7602 | -2009-03-04 phil <phil> | ||
| 7603 | - | ||
| 7604 | - * siplib/siplib.c: | ||
| 7605 | - Fixes for the updated method cache. | ||
| 7606 | - [d82c3be07e1b] | ||
| 7607 | - | ||
| 7608 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 7609 | - Greatly simplified the virtual reimplementation method cache now | ||
| 7610 | - that attribute lookup has been cleaned up. | ||
| 7611 | - [0cc40f47e6d5] | ||
| 7612 | - | ||
| 7613 | -2009-03-03 phil <phil> | ||
| 7614 | - | ||
| 7615 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 7616 | - sipgen/sip.h, siplib/sip.h, siplib/siplib.c: | ||
| 7617 | - Implemented the /KeepReference/ argument annotation. | ||
| 7618 | - [c8e2e1961f50] | ||
| 7619 | - | ||
| 7620 | -2009-02-27 phil <phil> | ||
| 7621 | - | ||
| 7622 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7623 | - Added sipCanConvertToEnum() to the public API. | ||
| 7624 | - [2748f0bbb0ab] | ||
| 7625 | - | ||
| 7626 | -2009-02-26 phil <phil> | ||
| 7627 | - | ||
| 7628 | - * siplib/sipint.h, siplib/siplib.c: | ||
| 7629 | - Removed the __dict__ getter as it is no longer needed. Changed the | ||
| 7630 | - declaration of the descriptors as they don't need to be exported. | ||
| 7631 | - [ddd2710b42fd] | ||
| 7632 | - | ||
| 7633 | -2009-02-25 phil <phil> | ||
| 7634 | - | ||
| 7635 | - * NEWS, doc/sipref.txt, siplib/sip.h, siplib/siplib.c: | ||
| 7636 | - Reverted to using type's and object's attribute getters and setters | ||
| 7637 | - now that we populate the type dictionary of a generated type with | ||
| 7638 | - all its lazy attributes in one go. Changed how an external | ||
| 7639 | - attributer getter works now that it only needs to populate the type | ||
| 7640 | - dictionary. | ||
| 7641 | - [8a22253728be] | ||
| 7642 | - | ||
| 7643 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7644 | - Safety checking of the working (but still to be changed) attribute | ||
| 7645 | - lookup code. | ||
| 7646 | - [d7244d817b9f] | ||
| 7647 | - | ||
| 7648 | - * sipgen/gencode.c, siplib/descriptors.c, siplib/sip.h, | ||
| 7649 | - siplib/siplib.c: | ||
| 7650 | - Refactored the support for setting instance variables. | ||
| 7651 | - [cc8a22386009] | ||
| 7652 | - | ||
| 7653 | - * sipgen/gencode.c, sipgen/parser.y, siplib/descriptors.c, | ||
| 7654 | - siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 7655 | - The refactored support for getting variables now works. | ||
| 7656 | - [c3e7dc58b020] | ||
| 7657 | - | ||
| 7658 | -2009-02-24 phil <phil> | ||
| 7659 | - | ||
| 7660 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7661 | - Safety commit of refactored wrapping of class variables. | ||
| 7662 | - [fa8ba6ef243b] | ||
| 7663 | - | ||
| 7664 | -2009-02-23 phil <phil> | ||
| 7665 | - | ||
| 7666 | - * siplib/siplib.c: | ||
| 7667 | - Fixed the problem with looking up external lazy attributes - wrapped | ||
| 7668 | - variables are the only thing not working. | ||
| 7669 | - [ab3e207d555b] | ||
| 7670 | - | ||
| 7671 | - * siplib/descriptors.c, siplib/sip.h, siplib/sipint.h, | ||
| 7672 | - siplib/siplib.c, siplib/siplib.sbf: | ||
| 7673 | - Safety commit of new attribute lookup code. Don't use this - it's | ||
| 7674 | - broken. | ||
| 7675 | - [2673bc2add5c] | ||
| 7676 | - | ||
| 7677 | - * siplib/siplib.c: | ||
| 7678 | - Fixed a reference count leak when an external lazy attribute was a | ||
| 7679 | - descriptor. | ||
| 7680 | - [1047169d1ba8] | ||
| 7681 | - | ||
| 7682 | - * siplib/siplib.c: | ||
| 7683 | - Fixed a crash when accessing a wrapped instance variable as a class | ||
| 7684 | - variable. | ||
| 7685 | - [e922b386c5aa] | ||
| 7686 | - | ||
| 7687 | -2009-02-22 phil <phil> | ||
| 7688 | - | ||
| 7689 | - * siplib/siplib.c: | ||
| 7690 | - Fixed a bug in the refactored attribute lookup. | ||
| 7691 | - [ddad97af22ec] | ||
| 7692 | - | ||
| 7693 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7694 | - Completed the support for the lazy attribute lookup hook. | ||
| 7695 | - [1f7bc8f488a8] | ||
| 7696 | - | ||
| 7697 | -2009-02-21 phil <phil> | ||
| 7698 | - | ||
| 7699 | - * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 7700 | - Added initial support for registering lazy attribute getters. | ||
| 7701 | - [9aae0eb78368] | ||
| 7702 | - | ||
| 7703 | - * sipgen/export.c, sipgen/gencode.c: | ||
| 7704 | - The PyQt4 signal table is now generated. The XML export now marks | ||
| 7705 | - the default signal. | ||
| 7706 | - [dbf0c7f47b6b] | ||
| 7707 | - | ||
| 7708 | -2009-02-20 phil <phil> | ||
| 7709 | - | ||
| 7710 | - * lib/LICENSE, sipgen/gencode.c, siplib/sip.h: | ||
| 7711 | - Added the stub of signal table for PyQt4. | ||
| 7712 | - [f53134503038] | ||
| 7713 | - | ||
| 7714 | -2009-02-16 phil <phil> | ||
| 7715 | - | ||
| 7716 | - * siplib/sip.h, siplib/siplib.c: | ||
| 7717 | - Removed some compiler warnings. | ||
| 7718 | - [a3c24034045a] | ||
| 7719 | - | ||
| 7720 | -2009-02-14 phil <phil> | ||
| 7721 | - | ||
| 7722 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7723 | - More signal/slot refactoring fixes. | ||
| 7724 | - [e1c0b895f0d1] | ||
| 7725 | - | ||
| 7726 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: | ||
| 7727 | - Debugged the signal/slot refactoring. | ||
| 7728 | - [a4a47ea6fd1e] | ||
| 7729 | - | ||
| 7730 | - * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, | ||
| 7731 | - siplib/sipint.h, siplib/siplib.c: | ||
| 7732 | - Safety commit of latest signal/slot refactoring. | ||
| 7733 | - [751cebc544cc] | ||
| 7734 | - | ||
| 7735 | -2009-02-13 phil <phil> | ||
| 7736 | - | ||
| 7737 | - * siplib/qtlib.c, siplib/siplib.c: | ||
| 7738 | - Fixed a build problem with Python 2.4.x and earlier. | ||
| 7739 | - [df846f30a329] | ||
| 7740 | - | ||
| 7741 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 7742 | - sipgen/transform.c, siplib/siplib.c: | ||
| 7743 | - PyQt3 signal support is now enabled with the %Plugin directive | ||
| 7744 | - instead of %SIPOptions. Removed %SIPOptions. | ||
| 7745 | - [d511ad00cc71] | ||
| 7746 | - | ||
| 7747 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 7748 | - siplib/sip.h, siplib/siplib.c: | ||
| 7749 | - The generated typedefs table is now sorted. | ||
| 7750 | - [abd1a7d60330] | ||
| 7751 | - | ||
| 7752 | -2009-02-12 phil <phil> | ||
| 7753 | - | ||
| 7754 | - * siplib/siplib.c: | ||
| 7755 | - An unconstrained enum can now be a sub-class of int. | ||
| 7756 | - [60366594aa80] | ||
| 7757 | - | ||
| 7758 | -2009-02-11 phil <phil> | ||
| 7759 | - | ||
| 7760 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h: | ||
| 7761 | - Renamed TypeFlags to PyQt4Flags. Renamed NoQMetaObject to | ||
| 7762 | - PyQt4NoQMetaObject. Moved the type flags into the PyQt4-specific | ||
| 7763 | - type structure. | ||
| 7764 | - [259fceeadbbe] | ||
| 7765 | - | ||
| 7766 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 7767 | - Removed the registration of wrapped types with the Qt meta-type | ||
| 7768 | - system as it is no longer needed by PyQt4. | ||
| 7769 | - [71f80e789732] | ||
| 7770 | - | ||
| 7771 | -2009-02-07 phil <phil> | ||
| 7772 | - | ||
| 7773 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 7774 | - siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 7775 | - Removed sipAssignType() and moved the helpers to the PyQt4 plugin. | ||
| 7776 | - [305f07cd3ce2] | ||
| 7777 | - | ||
| 7778 | -2009-02-02 phil <phil> | ||
| 7779 | - | ||
| 7780 | - * sipgen/gencode.c, siplib/qtlib.c: | ||
| 7781 | - The QObject.sender() support is now PyQt3 only again. | ||
| 7782 | - [e732e65c15b5] | ||
| 7783 | - | ||
| 7784 | -2009-02-01 phil <phil> | ||
| 7785 | - | ||
| 7786 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7787 | - Fixed a bug in the generation of the sipParseArgs() sub-format | ||
| 7788 | - character for types. | ||
| 7789 | - [fadc9f7074f1] | ||
| 7790 | - | ||
| 7791 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: | ||
| 7792 | - Changed the QObject::sender() support for PyQt4. | ||
| 7793 | - [9d6d9918bb1f] | ||
| 7794 | - | ||
| 7795 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 7796 | - Debugged the merged types table. | ||
| 7797 | - [cf4e643c28b5] | ||
| 7798 | - | ||
| 7799 | -2009-01-31 phil <phil> | ||
| 7800 | - | ||
| 7801 | - * sipgen/gencode.c, sipgen/heap.c, sipgen/sip.h, sipgen/transform.c, | ||
| 7802 | - siplib/sip.h, siplib/siplib.c: | ||
| 7803 | - Safety commit of the merge of the class, mapped types and enum | ||
| 7804 | - tables. | ||
| 7805 | - [33a1dbf992df] | ||
| 7806 | - | ||
| 7807 | -2009-01-30 phil <phil> | ||
| 7808 | - | ||
| 7809 | - * siplib/sip.h, siplib/siplib.c: | ||
| 7810 | - Wrapped classes are now created as they are needed and not in the | ||
| 7811 | - order they appear in the generated class table. Therefore the class, | ||
| 7812 | - mapped type and enum tables can now be merged and ordered by the | ||
| 7813 | - type name (and searched using a binary search). | ||
| 7814 | - [4a72c9cee88f] | ||
| 7815 | - | ||
| 7816 | -2009-01-29 phil <phil> | ||
| 7817 | - | ||
| 7818 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7819 | - Moved the last of the type parsing to PyQt3. | ||
| 7820 | - [b7d7695e3d8e] | ||
| 7821 | - | ||
| 7822 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 7823 | - Moved the registering of int types to PyQt4. | ||
| 7824 | - [e63f85d857bd] | ||
| 7825 | - | ||
| 7826 | -2009-01-28 phil <phil> | ||
| 7827 | - | ||
| 7828 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7829 | - Refactored the support for looking up typedefs. | ||
| 7830 | - [42851fe9a2cb] | ||
| 7831 | - | ||
| 7832 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, | ||
| 7833 | - siplib/siplib.c: | ||
| 7834 | - Moved the type parsing support to PyQt3. | ||
| 7835 | - [531e8244cfd3] | ||
| 7836 | - | ||
| 7837 | -2009-01-27 phil <phil> | ||
| 7838 | - | ||
| 7839 | - * sipgen/gencode.c: | ||
| 7840 | - Removed a remaining call to sipReleaseMappedType(). | ||
| 7841 | - [2a9cbf86c86a] | ||
| 7842 | - | ||
| 7843 | -2009-01-25 phil <phil> | ||
| 7844 | - | ||
| 7845 | - * sipgen/gencode.c: | ||
| 7846 | - Fixed a too-few-arguments-to-a-print bug in the code generator. | ||
| 7847 | - [1260503c2021] | ||
| 7848 | - | ||
| 7849 | - * siplib/siplib.c: | ||
| 7850 | - Fixed compilation issues. | ||
| 7851 | - [635ffd53597b] | ||
| 7852 | - | ||
| 7853 | -2009-01-18 phil <phil> | ||
| 7854 | - | ||
| 7855 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h: | ||
| 7856 | - Replaced sipFindConnection() with sipFindSlot(). | ||
| 7857 | - [30f0174c05f4] | ||
| 7858 | - | ||
| 7859 | -2009-01-13 phil <phil> | ||
| 7860 | - | ||
| 7861 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, | ||
| 7862 | - siplib/siplib.c: | ||
| 7863 | - Replaced sipFreeSignature() with sipFreeSipslot(). | ||
| 7864 | - [e5275f031458] | ||
| 7865 | - | ||
| 7866 | -2009-01-12 phil <phil> | ||
| 7867 | - | ||
| 7868 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, | ||
| 7869 | - siplib/siplib.c: | ||
| 7870 | - Pushed the parsing of signatures into PyQt. | ||
| 7871 | - [b2e616d5c92f] | ||
| 7872 | - | ||
| 7873 | -2009-01-11 phil <phil> | ||
| 7874 | - | ||
| 7875 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, | ||
| 7876 | - siplib/siplib.c: | ||
| 7877 | - Replaced sipConvertRx() with sipConvertRxEx(). | ||
| 7878 | - [cc0e4fe70f50] | ||
| 7879 | - | ||
| 7880 | -2009-01-10 phil <phil> | ||
| 7881 | - | ||
| 7882 | - * sipgen/gencode.c: | ||
| 7883 | - Removed the generation of an old Qt API entry. | ||
| 7884 | - [30f044ed1723] | ||
| 7885 | - | ||
| 7886 | -2009-01-09 phil <phil> | ||
| 7887 | - | ||
| 7888 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: | ||
| 7889 | - Safety commit of partial refactoring of the Qt signal support. | ||
| 7890 | - [429673b02dcd] | ||
| 7891 | - | ||
| 7892 | -2009-01-04 phil <phil> | ||
| 7893 | - | ||
| 7894 | - * lib/LICENSE, lib/LICENSE.short, sipgen/gencode.c: | ||
| 7895 | - Don't import the qt_register_type symbol if it isn't needed. Updated | ||
| 7896 | - copyright notices. | ||
| 7897 | - [f2dbc98f7144] | ||
| 7898 | - | ||
| 7899 | -2008-12-30 phil <phil> | ||
| 7900 | - | ||
| 7901 | - * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: | ||
| 7902 | - sipTypeFromPyTypeObject() now takes a PyTypeObject* rather than a | ||
| 7903 | - PyObject*. | ||
| 7904 | - [077c2ad4451f] | ||
| 7905 | - | ||
| 7906 | - * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/sip.h, | ||
| 7907 | - siplib/sipint.h, siplib/siplib.c, siplib/threads.c: | ||
| 7908 | - Added sipTypeName() and sipTypeScope() to the public SIP API. | ||
| 7909 | - [701c6915d3e3] | ||
| 7910 | - | ||
| 7911 | -2008-12-29 phil <phil> | ||
| 7912 | - | ||
| 7913 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, | ||
| 7914 | - siplib/sipint.h, siplib/siplib.c: | ||
| 7915 | - Migrated sipEnum_* to sipType_*. | ||
| 7916 | - [e0417099f5a9] | ||
| 7917 | - | ||
| 7918 | -2008-12-27 phil <phil> | ||
| 7919 | - | ||
| 7920 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7921 | - sipType_* are now generated for enums. These are used internally but | ||
| 7922 | - the SIP API has not yet been changed. | ||
| 7923 | - [ca45e1d31af2] | ||
| 7924 | - | ||
| 7925 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 7926 | - Broke out the generated type structures for mapped and class types | ||
| 7927 | - to different structures with a common header. | ||
| 7928 | - [ff4bec0abd37] | ||
| 7929 | - | ||
| 7930 | -2008-12-26 phil <phil> | ||
| 7931 | - | ||
| 7932 | - * siplib/siplib.c: | ||
| 7933 | - Wrapped enums now have their own meta-type. This is the hook that | ||
| 7934 | - will allow the C++ name of an enum to be derived from the enum's | ||
| 7935 | - Python type object. | ||
| 7936 | - [ea550b12904c] | ||
| 7937 | - | ||
| 7938 | -2008-12-24 phil <phil> | ||
| 7939 | - | ||
| 7940 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, | ||
| 7941 | - siplib/siplib.c: | ||
| 7942 | - Added sip_api_init_module() to make sure dependent modules can be | ||
| 7943 | - fully initialised before they are needed. | ||
| 7944 | - [fed394659169] | ||
| 7945 | - | ||
| 7946 | - * sipgen/gencode.c, siplib/sip.h: | ||
| 7947 | - Removed the Qt meta-type id from the pyqt4TypeDef structure as we | ||
| 7948 | - want to use it for mapped types as well but we would never know when | ||
| 7949 | - it was safe to cast from a sipTypeDef pointer. | ||
| 7950 | - [92c012de8c02] | ||
| 7951 | - | ||
| 7952 | -2008-12-21 phil <phil> | ||
| 7953 | - | ||
| 7954 | - * sipgen/gencode.c: | ||
| 7955 | - The PyQt4-specific extension to the generated type structure is now | ||
| 7956 | - used for mapped types as well. | ||
| 7957 | - [f49b6d447292] | ||
| 7958 | - | ||
| 7959 | -2008-12-20 phil <phil> | ||
| 7960 | - | ||
| 7961 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 7962 | - siplib/sip.h, siplib/siplib.c: | ||
| 7963 | - Changed the PyQt4-specifc handling of Qt meta-type registration. | ||
| 7964 | - [d112840accfd] | ||
| 7965 | - | ||
| 7966 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7967 | - A generated type structure now has its Python type object set | ||
| 7968 | - earlier so that sub-meta-types can use sipIsExactWrappedType(). | ||
| 7969 | - Calls to QObject::metaObject() are no longer need to trigger the | ||
| 7970 | - creation of the meta-object. | ||
| 7971 | - [8d816e1f3008] | ||
| 7972 | - | ||
| 7973 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 7974 | - sipgen/sip.h, siplib/sip.h: | ||
| 7975 | - Added %Plugin and use it to support pyqt4TypeDef. | ||
| 7976 | - [0f236470d582] | ||
| 7977 | - | ||
| 7978 | -2008-12-19 phil <phil> | ||
| 7979 | - | ||
| 7980 | - * siplib/sip.h: | ||
| 7981 | - Moved the qt_qobject member out of sipWrapperType and into PyQt | ||
| 7982 | - where it belongs. | ||
| 7983 | - [babe6a91d801] | ||
| 7984 | - | ||
| 7985 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 7986 | - Completed the migration of sipClass_* to sipType_*. | ||
| 7987 | - [e7c00163d819] | ||
| 7988 | - | ||
| 7989 | - * doc/sipref.txt: | ||
| 7990 | - Documentation updates. All uses of sipClass_* are only by deprecated | ||
| 7991 | - parts of the API. | ||
| 7992 | - [cfa2b5ca880e] | ||
| 7993 | - | ||
| 7994 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 7995 | - Deprecated the 'B' and 'C' format characters to sipBuildResult() and | ||
| 7996 | - sipCallMethod(). Added the new 'N' format character to | ||
| 7997 | - sipBuildResult() and sipCallMethod(). | ||
| 7998 | - [d685f1b18287] | ||
| 7999 | - | ||
| 8000 | -2008-12-17 phil <phil> | ||
| 8001 | - | ||
| 8002 | - * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: | ||
| 8003 | - Deprecated the 'C' format character of sipParseResult() in favor of | ||
| 8004 | - the existing 'D' character. | ||
| 8005 | - [be1f044d9828] | ||
| 8006 | - | ||
| 8007 | - * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, | ||
| 8008 | - siplib/siplib.c: | ||
| 8009 | - Migrated the sub-class convertor code to using sipType rather than | ||
| 8010 | - sipClass. | ||
| 8011 | - [a4424a9ac5a5] | ||
| 8012 | - | ||
| 8013 | -2008-12-16 phil <phil> | ||
| 8014 | - | ||
| 8015 | - * sipgen/transform.c: | ||
| 8016 | - Fixed a bug where names of mapped type templates where being | ||
| 8017 | - generated for modules that didn't need them. | ||
| 8018 | - [176171583343] | ||
| 8019 | - | ||
| 8020 | -2008-12-14 phil <phil> | ||
| 8021 | - | ||
| 8022 | - * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, | ||
| 8023 | - siplib/sipint.h, siplib/siplib.c: | ||
| 8024 | - Replaced the deprecated sipConvertFromInstance() and | ||
| 8025 | - sipConvertFromNewInstance() with sipConvertFromType() and | ||
| 8026 | - sipConvertFromNewType(). | ||
| 8027 | - [6f6e06ceaace] | ||
| 8028 | - | ||
| 8029 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8030 | - Replaced the deprecated sipForceConvertToInstance() and | ||
| 8031 | - sipForceConvertToMappedType() with sipForceConvertToType(). | ||
| 8032 | - [fc54ee3b5308] | ||
| 8033 | - | ||
| 8034 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8035 | - Replaced the deprecated sipConvertToInstance() and | ||
| 8036 | - sipConvertToMappedType() with sipConvertToType(). | ||
| 8037 | - [8e66284398dd] | ||
| 8038 | - | ||
| 8039 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8040 | - Replaced the deprecated sipCanConvertToInstance() and | ||
| 8041 | - sipCanConvertToMappedType() by sipCanConvertToType(). | ||
| 8042 | - [c1f1b170b263] | ||
| 8043 | - | ||
| 8044 | -2008-12-13 phil <phil> | ||
| 8045 | - | ||
| 8046 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8047 | - Replaced the deprecated sipReleaseInstance() and | ||
| 8048 | - sipReleaseMappedType() with sipReleaseType(). | ||
| 8049 | - [7ce45ed9ae89] | ||
| 8050 | - | ||
| 8051 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8052 | - Replaced the deprecated sipGetWrapper() with sipGetPyObject(). | ||
| 8053 | - [8cb295b72e62] | ||
| 8054 | - | ||
| 8055 | - * doc/sipref.txt, sipgen/gencode.c, siplib/objmap.c, siplib/qtlib.c, | ||
| 8056 | - siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8057 | - More moves from sipClass_* to sipType_*. | ||
| 8058 | - [4e7936a90f99] | ||
| 8059 | - | ||
| 8060 | - * sipgen/gencode.c, siplib/objmap.c, siplib/sip.h, siplib/sipint.h, | ||
| 8061 | - siplib/siplib.c: | ||
| 8062 | - More conversions from sipClass_* to sipType_*. | ||
| 8063 | - [75eed80555d4] | ||
| 8064 | - | ||
| 8065 | -2008-12-12 phil <phil> | ||
| 8066 | - | ||
| 8067 | - * sipgen/gencode.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c, | ||
| 8068 | - siplib/threads.c: | ||
| 8069 | - Merged the adding of type instances. | ||
| 8070 | - [d2db3775a993] | ||
| 8071 | - | ||
| 8072 | -2008-12-08 phil <phil> | ||
| 8073 | - | ||
| 8074 | - * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8075 | - Started the port from sipClass_* to sipType_*. Added support for | ||
| 8076 | - assert() to the build system. | ||
| 8077 | - [231826fe6d04] | ||
| 8078 | - | ||
| 8079 | - * sipgen/gencode.c: | ||
| 8080 | - Renamed sipMappedType_* to sipType_*. | ||
| 8081 | - [8df5a86247e8] | ||
| 8082 | - | ||
| 8083 | -2008-12-07 phil <phil> | ||
| 8084 | - | ||
| 8085 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8086 | - Added sipType_* for wrapped types. sipClass_* is now defined in | ||
| 8087 | - terms of sipType_*. | ||
| 8088 | - [bb37272a3113] | ||
| 8089 | - | ||
| 8090 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8091 | - Deprecated sipClassName(). | ||
| 8092 | - [de0402f5112c] | ||
| 8093 | - | ||
| 8094 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 8095 | - siplib/sip.h, siplib/siplib.c: | ||
| 8096 | - Mapped types are now described by the same sipTypeDef structure that | ||
| 8097 | - describes wrapped types. | ||
| 8098 | - [77ce210b751e] | ||
| 8099 | - | ||
| 8100 | -2008-12-06 phil <phil> | ||
| 8101 | - | ||
| 8102 | - * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: | ||
| 8103 | - Moved the 'user' field from sip.wrapper to sip.simplewrapper because | ||
| 8104 | - PyQt uses it for some non-QObject types. | ||
| 8105 | - [0bb916ce4818] | ||
| 8106 | - | ||
| 8107 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 8108 | - sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 8109 | - Restored %DefaultMetatype and the /Metatype/ class annotation. This | ||
| 8110 | - support is now complete. Documented the meta-type and super-type | ||
| 8111 | - support. | ||
| 8112 | - [15f1b60f808f] | ||
| 8113 | - | ||
| 8114 | -2008-12-03 phil <phil> | ||
| 8115 | - | ||
| 8116 | - * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, | ||
| 8117 | - siplib/siplib.c: | ||
| 8118 | - Code generator changes to support sipSimpleWrapper. | ||
| 8119 | - [ebd5b0b103ae] | ||
| 8120 | - | ||
| 8121 | - * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8122 | - The sip module now compiles again without any unexpected warnings. | ||
| 8123 | - [6fb536d5333e] | ||
| 8124 | - | ||
| 8125 | -2008-12-02 phil <phil> | ||
| 8126 | - | ||
| 8127 | - * siplib/objmap.c, siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, | ||
| 8128 | - siplib/siplib.c: | ||
| 8129 | - Various compilation fixes. | ||
| 8130 | - [ace8e0f95607] | ||
| 8131 | - | ||
| 8132 | -2008-12-01 phil <phil> | ||
| 8133 | - | ||
| 8134 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8135 | - Safety checkin of the support for the new sip.simplewrapper type. | ||
| 8136 | - [3d87512e3a5c] | ||
| 8137 | - | ||
| 8138 | - * NEWS, doc/sipref.txt, siplib/siplib.c: | ||
| 8139 | - Added support for %InitialisationCode. (Actually in the previous | ||
| 8140 | - commit but I forgotto mention it.) The text of an attribute | ||
| 8141 | - exception now mimics that produced by the Python interpreter. | ||
| 8142 | - [70d0f5dc259b] | ||
| 8143 | - | ||
| 8144 | -2008-11-30 phil <phil> | ||
| 8145 | - | ||
| 8146 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 8147 | - sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 8148 | - Refactored the super-type and meta-type support. Meta-types are now | ||
| 8149 | - handled implicitly. | ||
| 8150 | - [2676976c88bf] | ||
| 8151 | - | ||
| 8152 | -2008-11-29 phil <phil> | ||
| 8153 | - | ||
| 8154 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 8155 | - siplib/siplib.c: | ||
| 8156 | - Debugged the metatype support. | ||
| 8157 | - [e7e9b5d303c3] | ||
| 8158 | - | ||
| 8159 | -2008-11-27 phil <phil> | ||
| 8160 | - | ||
| 8161 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 8162 | - The metatypes are now registered and readied. | ||
| 8163 | - [5c4757c83b70] | ||
| 8164 | - | ||
| 8165 | - * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, | ||
| 8166 | - sipgen/transform.c, siplib/siplib.c: | ||
| 8167 | - Fixes for various regressions. | ||
| 8168 | - [eea6dc713727] | ||
| 8169 | - | ||
| 8170 | -2008-11-26 phil <phil> | ||
| 8171 | - | ||
| 8172 | - * sipgen/gencode.c: | ||
| 8173 | - Use the string pool for calls to qRegisterMetaType(). | ||
| 8174 | - [954bd63eb830] | ||
| 8175 | - | ||
| 8176 | - * sipgen/gencode.c, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 8177 | - Completed the code generator support for user defined metatypes. | ||
| 8178 | - [6c09f41b9eec] | ||
| 8179 | - | ||
| 8180 | -2008-11-24 phil <phil> | ||
| 8181 | - | ||
| 8182 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, | ||
| 8183 | - sipgen/transform.c, siplib/sip.h: | ||
| 8184 | - Added the parser support for %Metatype and %DefaultMetatype. | ||
| 8185 | - [6af8f6a12eb5] | ||
| 8186 | - | ||
| 8187 | -2008-11-23 phil <phil> | ||
| 8188 | - | ||
| 8189 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8190 | - The string pool now overlaps strings where possible. | ||
| 8191 | - [4873718f6e82] | ||
| 8192 | - | ||
| 8193 | - * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 8194 | - siplib/sip.h, siplib/siplib.c: | ||
| 8195 | - Enum names now use the string pool. | ||
| 8196 | - [b6414c99a03a] | ||
| 8197 | - | ||
| 8198 | - * sipgen/parser.y, siplib/sip.h, siplib/siplib.c: | ||
| 8199 | - Fixed a regression in the handling of nested namespaces. | ||
| 8200 | - [a49433be0291] | ||
| 8201 | - | ||
| 8202 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 8203 | - siplib/sip.h, siplib/siplib.c: | ||
| 8204 | - Python and C++ type names now use the string pool. The string pool | ||
| 8205 | - is currently broken for namespace extenders. | ||
| 8206 | - [b08a2ca9d7fd] | ||
| 8207 | - | ||
| 8208 | -2008-11-22 phil <phil> | ||
| 8209 | - | ||
| 8210 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 8211 | - sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 8212 | - The generated name cache is now a single (const) string. | ||
| 8213 | - [0296eda5e61a] | ||
| 8214 | - | ||
| 8215 | - * doc/sipref.txt, lib/configure.py, lib/siputils.py, sipgen/gencode.c, | ||
| 8216 | - siplib/sip.h, siplib/siplib.c: | ||
| 8217 | - Removed all deprecated parts of the API and generated code. | ||
| 8218 | - [0a00c20f5c5b] | ||
| 8219 | - | ||
| 8220 | -2008-11-21 phil <phil> | ||
| 8221 | - | ||
| 8222 | - * lib/siputils.py: | ||
| 8223 | - Use "-undefined dynamic_lookup" rather than linking against the | ||
| 8224 | - Python framework on MacOS. | ||
| 8225 | - [773c8920c04f] | ||
| 8226 | - | ||
| 8227 | -2008-11-18 phil <phil> | ||
| 8228 | - | ||
| 8229 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8230 | - Added sipWrapperType_Check() to the public API. | ||
| 8231 | - [42d9ec7403f4] | ||
| 8232 | - | ||
| 8233 | -2008-11-17 phil <phil> | ||
| 8234 | - | ||
| 8235 | - * NEWS, sipgen/gencode.c: | ||
| 8236 | - Merged v4.7.9 into the trunk. | ||
| 8237 | - [63aff4a6e0f0] | ||
| 8238 | - | ||
| 8239 | -2008-11-08 phil <phil> | ||
| 8240 | - | ||
| 8241 | - * NEWS, TODO, build.py, doc/default.css, doc/sipref.txt, lib/LICENSE, | ||
| 8242 | - lib/LICENSE.short, lib/README.HP-UX, lib/THANKS, lib/configure.py, | ||
| 8243 | - lib/siputils.py, sipgen/export.c, sipgen/gencode.c, sipgen/heap.c, | ||
| 8244 | - sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, | ||
| 8245 | - sipgen/transform.c, siplib/objmap.c, siplib/qtlib.c, siplib/sip.h, | ||
| 8246 | - siplib/sipint.h, siplib/siplib.c, specs/linux-icc, | ||
| 8247 | - specs/win32-msvc2005, specs/win32-msvc2008: | ||
| 8248 | - Merged v4.7.8 into the trunk. | ||
| 8249 | - [9cc6147a1067] | ||
| 8250 | - | ||
| 8251 | -2007-07-30 phil <phil> | ||
| 8252 | - | ||
| 8253 | - * NEWS: | ||
| 8254 | - Released as v4.7. | ||
| 8255 | - [a458d43a6fbb] [4.7] | ||
| 8256 | - | ||
| 8257 | -2007-07-28 phil <phil> | ||
| 8258 | - | ||
| 8259 | - * sipgen/gencode.c: | ||
| 8260 | - Fixed a memory leak with mapped types with the /Out/ annotation. | ||
| 8261 | - [5c156cb3b313] | ||
| 8262 | - | ||
| 8263 | -2007-07-27 phil <phil> | ||
| 8264 | - | ||
| 8265 | - * siplib/qtlib.c: | ||
| 8266 | - Fixed a bug preventing wrapped C++ slots from being disconnected. | ||
| 8267 | - [43fc1981c30d] | ||
| 8268 | - | ||
| 8269 | -2007-07-14 phil <phil> | ||
| 8270 | - | ||
| 8271 | - * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8272 | - Rather than only lambda functions being given an extra reference | ||
| 8273 | - when used as a slot, anything other that a method or wrapped C | ||
| 8274 | - function is given an extra reference. Specifically this means that | ||
| 8275 | - partial functions can now be used as slots. | ||
| 8276 | - [2562db168ce9] | ||
| 8277 | - | ||
| 8278 | -2007-07-04 phil <phil> | ||
| 8279 | - | ||
| 8280 | - * sipgen/transform.c: | ||
| 8281 | - Relaxed the restriction that /Out/ arguments couldn't be const. | ||
| 8282 | - [546fba30aac6] | ||
| 8283 | - | ||
| 8284 | -2007-06-25 phil <phil> | ||
| 8285 | - | ||
| 8286 | - * sipgen/gencode.c: | ||
| 8287 | - Fixed a compiler warning message about an unused argument in | ||
| 8288 | - generated code. | ||
| 8289 | - [5713835ff863] | ||
| 8290 | - | ||
| 8291 | - * sipgen/parser.y: | ||
| 8292 | - Fixed a bug in the previous fix so that it only applies to mapped | ||
| 8293 | - types. | ||
| 8294 | - [68a7fd2c1ea4] | ||
| 8295 | - | ||
| 8296 | - * sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8297 | - Fixed a bug where template based types where overwriting the header | ||
| 8298 | - code of any previously defined type based on the same interface | ||
| 8299 | - file. | ||
| 8300 | - [f41edc04b3cf] | ||
| 8301 | - | ||
| 8302 | -2007-06-23 phil <phil> | ||
| 8303 | - | ||
| 8304 | - * NEWS, sipgen/gencode.c: | ||
| 8305 | - Consolidated modules are now generated as either C or C++ (rather | ||
| 8306 | - than always C) so that the name cache names are consistently | ||
| 8307 | - mangled. | ||
| 8308 | - [83c24c956277] | ||
| 8309 | - | ||
| 8310 | -2007-06-22 phil <phil> | ||
| 8311 | - | ||
| 8312 | - * lib/siputils.py: | ||
| 8313 | - Fixed a build system problem for PyQt on Windows against a static | ||
| 8314 | - Qt. | ||
| 8315 | - [3ff5f3d1e074] | ||
| 8316 | - | ||
| 8317 | - * sipgen/gencode.c: | ||
| 8318 | - Fixed silly code generation typo. | ||
| 8319 | - [3232af13c3f6] | ||
| 8320 | - | ||
| 8321 | - * lib/siputils.py: | ||
| 8322 | - Changed the build system so that missing macros default to being | ||
| 8323 | - empty rather than causing an error. (Qt v4.3.0 contains such a | ||
| 8324 | - case.) | ||
| 8325 | - [213c1dd11448] | ||
| 8326 | - | ||
| 8327 | -2007-06-20 phil <phil> | ||
| 8328 | - | ||
| 8329 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, sipgen/main.c, | ||
| 8330 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, | ||
| 8331 | - siplib/siplib.c: | ||
| 8332 | - Split the consolidated module concept into separate consolidated and | ||
| 8333 | - composite module types, which significantly simplifies things. | ||
| 8334 | - [eb0502b5bb27] | ||
| 8335 | - | ||
| 8336 | -2007-06-19 phil <phil> | ||
| 8337 | - | ||
| 8338 | - * lib/siputils.py: | ||
| 8339 | - Updated some comments in the build system. | ||
| 8340 | - [f38ba63f0f97] | ||
| 8341 | - | ||
| 8342 | - * siplib/siplib.c: | ||
| 8343 | - Fixed a bug in the sip module consolidated module support. Otherwise | ||
| 8344 | - everything seems to work. | ||
| 8345 | - [a9d7eeffdf81] | ||
| 8346 | - | ||
| 8347 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8348 | - More consolidated module refactoring. | ||
| 8349 | - [9c629ca01a4a] | ||
| 8350 | - | ||
| 8351 | -2007-06-18 phil <phil> | ||
| 8352 | - | ||
| 8353 | - * sipgen/export.c, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, | ||
| 8354 | - sipgen/sip.h, sipgen/transform.c: | ||
| 8355 | - More consolidated module refactoring. PyQt4 with only QtCore enabled | ||
| 8356 | - now compiles. | ||
| 8357 | - [bec649674da2] | ||
| 8358 | - | ||
| 8359 | -2007-06-16 phil <phil> | ||
| 8360 | - | ||
| 8361 | - * sipgen/gencode.c, sipgen/parser.y: | ||
| 8362 | - More consolidated module support. | ||
| 8363 | - [b7455f328486] | ||
| 8364 | - | ||
| 8365 | -2007-06-12 phil <phil> | ||
| 8366 | - | ||
| 8367 | - * siplib/siplib.c: | ||
| 8368 | - Hopefully fixed a bug in the handling of the 'C' and 'D' format | ||
| 8369 | - characters in sipParseResult(). | ||
| 8370 | - [c28fa1333976] | ||
| 8371 | - | ||
| 8372 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8373 | - More refactoring for consolidated module support. SIP no longer | ||
| 8374 | - generates lots of .h files. Note that SIP is now less tolerant of | ||
| 8375 | - missing #includes in %TypeHeaderCode and %ModuleHeaderCode. | ||
| 8376 | - [ae2dec8da410] | ||
| 8377 | - | ||
| 8378 | -2007-06-04 phil <phil> | ||
| 8379 | - | ||
| 8380 | - * sipgen/gencode.c: | ||
| 8381 | - Removed the need to generate the shadow class definition in a header | ||
| 8382 | - file and put it in the original class's C++ file instead. | ||
| 8383 | - [30cd539612c7] | ||
| 8384 | - | ||
| 8385 | -2007-06-03 phil <phil> | ||
| 8386 | - | ||
| 8387 | - * sipgen/export.c, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 8388 | - sipgen/transform.c: | ||
| 8389 | - More consolidated module refactoring. | ||
| 8390 | - [9fbe5340767f] | ||
| 8391 | - | ||
| 8392 | -2007-06-01 phil <phil> | ||
| 8393 | - | ||
| 8394 | - * sipgen/parser.y: | ||
| 8395 | - Fixed a missing return in parser.y. | ||
| 8396 | - [3f160ab4ae5b] | ||
| 8397 | - | ||
| 8398 | -2007-05-28 phil <phil> | ||
| 8399 | - | ||
| 8400 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8401 | - A bit more consolidated module support. | ||
| 8402 | - [f714935139bb] | ||
| 8403 | - | ||
| 8404 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, | ||
| 8405 | - siplib/siplib.c: | ||
| 8406 | - More work on consolidated modules. | ||
| 8407 | - [bde47f2343cf] | ||
| 8408 | - | ||
| 8409 | -2007-05-27 phil <phil> | ||
| 8410 | - | ||
| 8411 | - * sipgen/gencode.c, sipgen/sip.h, siplib/sip.h, siplib/siplib.c: | ||
| 8412 | - The component stub modules (ie. those requested with the -p flag) | ||
| 8413 | - are now generated. | ||
| 8414 | - [21119384ab4f] | ||
| 8415 | - | ||
| 8416 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/sip.h: | ||
| 8417 | - Added the stubs of the -n and -p command line options for the | ||
| 8418 | - remaining consolidated module support. Documented the | ||
| 8419 | - %ConsolidatedModule directive. | ||
| 8420 | - [744cf0ed0857] | ||
| 8421 | - | ||
| 8422 | -2007-05-24 phil <phil> | ||
| 8423 | - | ||
| 8424 | - * sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h: | ||
| 8425 | - Completed the implementation of %ConsolidatedModule for the simple | ||
| 8426 | - case (where the consolidated module populates itself from the | ||
| 8427 | - component modules). | ||
| 8428 | - [78406f2fdcb4] | ||
| 8429 | - | ||
| 8430 | -2007-05-23 phil <phil> | ||
| 8431 | - | ||
| 8432 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: | ||
| 8433 | - A bit more refactoring for the consolidated module support. | ||
| 8434 | - [51a36ed46e45] | ||
| 8435 | - | ||
| 8436 | - * siplib/objmap.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8437 | - When deciding if an instance is already wrapped, sip only considers | ||
| 8438 | - if the candidate is a sub-class of the expected class. (Before it | ||
| 8439 | - used to consider if the candidate was a super-class of the expected | ||
| 8440 | - class as well. However this shouldn't be necessary as the candidates | ||
| 8441 | - class should be correct if all the sub-class convertor code is | ||
| 8442 | - working properly.) | ||
| 8443 | - [014d6fb553a9] | ||
| 8444 | - | ||
| 8445 | - * sipgen/lexer.l, sipgen/parser.y, sipgen/sip.h, siplib/objmap.c: | ||
| 8446 | - Added the start of the support for %ConsolidatedModule. | ||
| 8447 | - [2cdafc7810be] | ||
| 8448 | - | ||
| 8449 | -2007-05-20 phil <phil> | ||
| 8450 | - | ||
| 8451 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 8452 | - Added the dump() funtion to the sip module. | ||
| 8453 | - [299d67a0fe51] | ||
| 8454 | - | ||
| 8455 | -2007-05-13 phil <phil> | ||
| 8456 | - | ||
| 8457 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8458 | - Added sipTransferBreak() for removing hidden references without | ||
| 8459 | - changing owndership. | ||
| 8460 | - [5d298052a2e5] | ||
| 8461 | - | ||
| 8462 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h: | ||
| 8463 | - Added support for /Transfer/ as a function annotation. | ||
| 8464 | - [ab6bd827b7a0] | ||
| 8465 | - | ||
| 8466 | -2007-05-12 phil <phil> | ||
| 8467 | - | ||
| 8468 | - * lib/siputils.py: | ||
| 8469 | - Added the build system hooks for PyQt's QtScript module. | ||
| 8470 | - [6fdf6cb0ade1] | ||
| 8471 | - | ||
| 8472 | - * sipgen/parser.y: | ||
| 8473 | - Fixed some parser problems related to versioning. | ||
| 8474 | - [a4ffe24c61bd] | ||
| 8475 | - | ||
| 8476 | -2007-05-11 phil <phil> | ||
| 8477 | - | ||
| 8478 | - * sipgen/parser.y: | ||
| 8479 | - Relaxed the restriction that the arguments to mapped type templates | ||
| 8480 | - had to be simple names and not basic types. | ||
| 8481 | - [04d512a7ddee] | ||
| 8482 | - | ||
| 8483 | - * sipgen/gencode.c: | ||
| 8484 | - Generated the sipClass_* for namespaces. | ||
| 8485 | - [234dfbd619d5] | ||
| 8486 | - | ||
| 8487 | -2007-05-07 phil <phil> | ||
| 8488 | - | ||
| 8489 | - * sipgen/gencode.c: | ||
| 8490 | - More fixes to mapped type templates - should be Ok now. | ||
| 8491 | - [3e7528f5ec18] | ||
| 8492 | - | ||
| 8493 | -2007-05-04 phil <phil> | ||
| 8494 | - | ||
| 8495 | - * doc/sipref.txt: | ||
| 8496 | - Fixed a couple of documentation bugs regarding exceptions. | ||
| 8497 | - [21138bd0e4dd] | ||
| 8498 | - | ||
| 8499 | -2007-05-03 phil <phil> | ||
| 8500 | - | ||
| 8501 | - * sipgen/transform.c: | ||
| 8502 | - Fixed a bug where generated .h files for template argument types | ||
| 8503 | - were being included in the mapped type rather than the mapped type's | ||
| 8504 | - own .h file. | ||
| 8505 | - [015e7bc362e3] | ||
| 8506 | - | ||
| 8507 | -2007-04-28 phil <phil> | ||
| 8508 | - | ||
| 8509 | - * siplib/siplib.c: | ||
| 8510 | - Removed the need for the copy_reg module. This marks the completion | ||
| 8511 | - if the pickle support. | ||
| 8512 | - [855e5b2a3bfc] | ||
| 8513 | - | ||
| 8514 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8515 | - Pickling nested types now works. | ||
| 8516 | - [d10779f3268e] | ||
| 8517 | - | ||
| 8518 | - * siplib/siplib.c: | ||
| 8519 | - Minor refactoring of the pickle code prior to adding support for | ||
| 8520 | - nested classes. | ||
| 8521 | - [33badbfc5ee1] | ||
| 8522 | - | ||
| 8523 | -2007-04-27 phil <phil> | ||
| 8524 | - | ||
| 8525 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 8526 | - Named enums that are nested within other types can now be pickled. | ||
| 8527 | - (Note that the pickle format for classes will be changed in the next | ||
| 8528 | - few days to allow nested classes to be pickled in the same way.) | ||
| 8529 | - [ad31cd17972b] | ||
| 8530 | - | ||
| 8531 | -2007-04-26 phil <phil> | ||
| 8532 | - | ||
| 8533 | - * siplib/siplib.c: | ||
| 8534 | - More improvements to the pick code. | ||
| 8535 | - [7387a6436f4f] | ||
| 8536 | - | ||
| 8537 | - * sipgen/gencode.c: | ||
| 8538 | - Slight improvement to the generated pickle code. | ||
| 8539 | - [250d4acde794] | ||
| 8540 | - | ||
| 8541 | -2007-04-22 phil <phil> | ||
| 8542 | - | ||
| 8543 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 8544 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, | ||
| 8545 | - siplib/siplib.c: | ||
| 8546 | - Added %PickleCode to allow wrapped objects to be pickled. | ||
| 8547 | - [45059aeff1d0] | ||
| 8548 | - | ||
| 8549 | - * siplib/siplib.c: | ||
| 8550 | - Module level enums can now be pickled. Removed the None | ||
| 8551 | - implementations of __reduce__ and __reduce_ex__ and fixed the | ||
| 8552 | - segfault that pickling was causing. | ||
| 8553 | - [960a54bd61d7] | ||
| 8554 | - | ||
| 8555 | -2007-04-10 phil <phil> | ||
| 8556 | - | ||
| 8557 | - * NEWS: | ||
| 8558 | - Released as v4.6. | ||
| 8559 | - [9d849b09a8d4] [4.6] | ||
| 8560 | - | ||
| 8561 | -2007-04-07 phil <phil> | ||
| 8562 | - | ||
| 8563 | - * sipgen/export.c: | ||
| 8564 | - Changed the API file generation to generate the __init__ form of a | ||
| 8565 | - ctor as well as the callable type form. | ||
| 8566 | - [316e430f8a37] | ||
| 8567 | - | ||
| 8568 | -2007-04-02 phil <phil> | ||
| 8569 | - | ||
| 8570 | - * NEWS: | ||
| 8571 | - Updated the NEWS file. | ||
| 8572 | - [5c6477d8ee0d] | ||
| 8573 | - | ||
| 8574 | - * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py: | ||
| 8575 | - Added the -n flag to configure.py to build universal binaries on | ||
| 8576 | - MacOS/X. | ||
| 8577 | - [e892f0a63956] | ||
| 8578 | - | ||
| 8579 | - * siplib/siplib.c: | ||
| 8580 | - Fixed a MinGW warning message. | ||
| 8581 | - [79ac369e6efa] | ||
| 8582 | - | ||
| 8583 | - * siplib/siplib.c: | ||
| 8584 | - Backed out the save and restore of the exception state in | ||
| 8585 | - sipWrapper_dealloc() as it can get called when there is no current | ||
| 8586 | - thread state (which results in a segfault). | ||
| 8587 | - [f66e13ead83b] | ||
| 8588 | - | ||
| 8589 | - * NEWS: | ||
| 8590 | - Updated the NEWS file. | ||
| 8591 | - [c7488adf6abf] | ||
| 8592 | - | ||
| 8593 | - * siplib/siplib.c: | ||
| 8594 | - Fixed a bug handling sub-class convertor code with multiple | ||
| 8595 | - inheritance. | ||
| 8596 | - [8ac3a23e1e3c] | ||
| 8597 | - | ||
| 8598 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 8599 | - Virtuals that return a wchar_t * now keep then free the previous | ||
| 8600 | - result to limit the possible memory leaks. | ||
| 8601 | - [48b87ba8bc6a] | ||
| 8602 | - | ||
| 8603 | -2007-04-01 phil <phil> | ||
| 8604 | - | ||
| 8605 | - * sipgen/gencode.c, sipgen/transform.c: | ||
| 8606 | - Fixed a bug in the wchar_t support with const wchar_t * arguments. | ||
| 8607 | - Fixed a bug in the wchar_t support with char and wchar_t being | ||
| 8608 | - considered equivalent. | ||
| 8609 | - [541c7556314d] | ||
| 8610 | - | ||
| 8611 | -2007-03-26 phil <phil> | ||
| 8612 | - | ||
| 8613 | - * siplib/siplib.c: | ||
| 8614 | - Fixed problem where lambda slots connected to QObject.destroyed() | ||
| 8615 | - were cleared before the signal was emitted. | ||
| 8616 | - [2ace696800c4] | ||
| 8617 | - | ||
| 8618 | -2007-03-25 phil <phil> | ||
| 8619 | - | ||
| 8620 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 8621 | - Completed the wchar_t support. | ||
| 8622 | - [14c15deefc3b] | ||
| 8623 | - | ||
| 8624 | -2007-03-24 phil <phil> | ||
| 8625 | - | ||
| 8626 | - * sipgen/export.c, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y, | ||
| 8627 | - sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c, siplib/sip.h, | ||
| 8628 | - siplib/siplib.c: | ||
| 8629 | - Added support for wchar_t - undocumented and certainly untested. | ||
| 8630 | - [14559b49bd9d] | ||
| 8631 | - | ||
| 8632 | -2007-03-10 phil <phil> | ||
| 8633 | - | ||
| 8634 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 8635 | - No longer generate the forward declaration of an opaque class. It | ||
| 8636 | - shouldn't be necessary and means that the class could be a C | ||
| 8637 | - structure. | ||
| 8638 | - [647d2f4b8561] | ||
| 8639 | - | ||
| 8640 | -2007-03-02 phil <phil> | ||
| 8641 | - | ||
| 8642 | - * sipgen/lexer.l: | ||
| 8643 | - SIP should now handle DOS format files on UNIX systems. | ||
| 8644 | - [1935d8be814b] | ||
| 8645 | - | ||
| 8646 | -2007-02-27 phil <phil> | ||
| 8647 | - | ||
| 8648 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/main.c, sipgen/parser.y, | ||
| 8649 | - sipgen/sip.h: | ||
| 8650 | - Undeprecated the -g command line option. Added the /HoldGIL/ | ||
| 8651 | - annotation. | ||
| 8652 | - [fbf1aaec1094] | ||
| 8653 | - | ||
| 8654 | -2007-02-25 phil <phil> | ||
| 8655 | - | ||
| 8656 | - * sipgen/transform.c, siplib/siplib.c: | ||
| 8657 | - Fixed the previous fix related to signatures for the cases where the | ||
| 8658 | - Python and C++ signatures have different numbers of arguments. | ||
| 8659 | - [66f4866a1393] | ||
| 8660 | - | ||
| 8661 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 8662 | - Included Matt Newell's fix for making sure that a sub-class | ||
| 8663 | - convertor returns the most specific type available. | ||
| 8664 | - [7b9b628d5c50] | ||
| 8665 | - | ||
| 8666 | -2007-02-24 phil <phil> | ||
| 8667 | - | ||
| 8668 | - * doc/sipref.txt, sipgen/transform.c: | ||
| 8669 | - Fixed some documentation references to Py_ssize_t. sip now takes C++ | ||
| 8670 | - as well as Python signatures into account when deciding what | ||
| 8671 | - interface files a class need to include. | ||
| 8672 | - [ac3ecfcc08d3] | ||
| 8673 | - | ||
| 8674 | - * doc/sipref.txt, siplib/qtlib.c: | ||
| 8675 | - Leave it to the Qt support code to release the GIL when connecting | ||
| 8676 | - signals. | ||
| 8677 | - [8c907b07ad8f] | ||
| 8678 | - | ||
| 8679 | -2007-02-20 phil <phil> | ||
| 8680 | - | ||
| 8681 | - * siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c: | ||
| 8682 | - An instance dictionary is not longer created automatically. Python | ||
| 8683 | - will create it if and when it is needed. lambda slots are now | ||
| 8684 | - cleaned up in the clear function rather than being left to the slot | ||
| 8685 | - proxy dtor. | ||
| 8686 | - [61eac95ed77e] | ||
| 8687 | - | ||
| 8688 | - * siplib/siplib.c: | ||
| 8689 | - Fixed a bug in the implementation of /Transfer/ when the object was | ||
| 8690 | - aleady owned by C++ but the owning object had been garbage | ||
| 8691 | - collected. | ||
| 8692 | - [4d64b0e0db86] | ||
| 8693 | - | ||
| 8694 | -2007-02-18 phil <phil> | ||
| 8695 | - | ||
| 8696 | - * siplib/siplib.c: | ||
| 8697 | - Fixed a bug in the clearing of reference cycles with lambda slots. | ||
| 8698 | - Although the slot is visited, it is no longer cleared - that is left | ||
| 8699 | - to the proxy dtor. | ||
| 8700 | - [aac8236a8970] | ||
| 8701 | - | ||
| 8702 | -2007-02-16 phil <phil> | ||
| 8703 | - | ||
| 8704 | - * lib/siputils.py, sipgen/gencode.c: | ||
| 8705 | - Fixed a bug in the build system for QtDesigner on Windows. The | ||
| 8706 | - Q_OBJECT support code now uses metaObject() rather than | ||
| 8707 | - staticMetaObject because the latter is private in the ActiveQt | ||
| 8708 | - classes. | ||
| 8709 | - [4b8647dbb036] | ||
| 8710 | - | ||
| 8711 | -2007-02-10 phil <phil> | ||
| 8712 | - | ||
| 8713 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 8714 | - sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 8715 | - Added support for /TypeFlags/. Added sipFindClass() and | ||
| 8716 | - sipFindNamedEnum() to the public API. | ||
| 8717 | - [530b7a1aa547] | ||
| 8718 | - | ||
| 8719 | -2007-02-06 phil <phil> | ||
| 8720 | - | ||
| 8721 | - * sipgen/gencode.c, siplib/sip.h: | ||
| 8722 | - More changes to the Q_OBJECT support. | ||
| 8723 | - [b46c77268a1c] | ||
| 8724 | - | ||
| 8725 | -2007-02-04 phil <phil> | ||
| 8726 | - | ||
| 8727 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h: | ||
| 8728 | - Renamed "Qt4MetaObject" to "Qt4Q_OBJECT". | ||
| 8729 | - [9b8809b3f254] | ||
| 8730 | - | ||
| 8731 | -2007-02-01 phil <phil> | ||
| 8732 | - | ||
| 8733 | - * sipgen/gencode.c: | ||
| 8734 | - Changed the metaObject() hook so that it won't crash if the C++ | ||
| 8735 | - instance has gone. | ||
| 8736 | - [5241cd5c39d3] | ||
| 8737 | - | ||
| 8738 | -2007-01-30 phil <phil> | ||
| 8739 | - | ||
| 8740 | - * sipgen/gencode.c: | ||
| 8741 | - Changed the metaObject() hook again. | ||
| 8742 | - [77da534919cb] | ||
| 8743 | - | ||
| 8744 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8745 | - Changed the metaObject() hooks. | ||
| 8746 | - [272f63959180] | ||
| 8747 | - | ||
| 8748 | -2007-01-27 phil <phil> | ||
| 8749 | - | ||
| 8750 | - * sipgen/gencode.c: | ||
| 8751 | - Changed the way the Qt support API is created so that new SIPs can | ||
| 8752 | - build old PyQts. | ||
| 8753 | - [15c8d8be611d] | ||
| 8754 | - | ||
| 8755 | - * NEWS, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8756 | - Added the hooks to allow PyQt to build a proper meta-object when a | ||
| 8757 | - new Python class is defined. | ||
| 8758 | - [c82c3d1b50aa] | ||
| 8759 | - | ||
| 8760 | -2007-01-25 phil <phil> | ||
| 8761 | - | ||
| 8762 | - * lib/siputils.py, siplib/qtlib.c: | ||
| 8763 | - Fixed a build system bug that affected non-MinGW Windows compilers | ||
| 8764 | - when building static modules. Taught the build system about the | ||
| 8765 | - QtDesigner module. | ||
| 8766 | - [0029d3937d59] | ||
| 8767 | - | ||
| 8768 | -2007-01-23 phil <phil> | ||
| 8769 | - | ||
| 8770 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8771 | - Reimplemented the support for qt_metacall() so that it is a bit | ||
| 8772 | - cleaner and can't be called from Python. | ||
| 8773 | - [c3701e916110] | ||
| 8774 | - | ||
| 8775 | -2007-01-22 phil <phil> | ||
| 8776 | - | ||
| 8777 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c, | ||
| 8778 | - siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8779 | - Added support for the QtMetaClass option. Added sipParseSignature() | ||
| 8780 | - to the private Qt API. (Both of the above are needed for David | ||
| 8781 | - Boddie's support for Python widgets in Qt Designer.) | ||
| 8782 | - [51250dc9185b] | ||
| 8783 | - | ||
| 8784 | -2007-01-21 phil <phil> | ||
| 8785 | - | ||
| 8786 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8787 | - Extended the cyclic garbage collector support for lambda slots so it | ||
| 8788 | - works with SIGNALs as well as PYSIGNALs. Incremented the SIP API | ||
| 8789 | - version number to 3.4. | ||
| 8790 | - [fcf4f2b51bd7] | ||
| 8791 | - | ||
| 8792 | - * siplib/qtlib.c, siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 8793 | - Fixed garbage collection support for lambda slots (at the moment | ||
| 8794 | - only when the slot is connected to a PYSIGNAL). | ||
| 8795 | - [8bf735cda5bf] | ||
| 8796 | - | ||
| 8797 | -2007-01-16 phil <phil> | ||
| 8798 | - | ||
| 8799 | - * siplib/sip.h: | ||
| 8800 | - Added #undef slots to sip.h for when embedding Python 2.3 in Qt | ||
| 8801 | - applications. | ||
| 8802 | - [33ab2adb9d0c] | ||
| 8803 | - | ||
| 8804 | - * sipgen/gencode.c: | ||
| 8805 | - qRegisterMetaType() is now called for every candidate class at | ||
| 8806 | - module initialisation rather than when the first instance is created | ||
| 8807 | - from Python. | ||
| 8808 | - [a31d12e3d9c2] | ||
| 8809 | - | ||
| 8810 | -2007-01-15 phil <phil> | ||
| 8811 | - | ||
| 8812 | - * doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: | ||
| 8813 | - Allowed /TransferThis/ to be specified more than once. | ||
| 8814 | - [e8246e9dc928] | ||
| 8815 | - | ||
| 8816 | - * doc/sipref.txt, lib/LICENSE.short, siplib/threads.c: | ||
| 8817 | - Updated the copyright notices. Fixed a reentrancy problem in | ||
| 8818 | - wrapping objects obtained from C/C++ (thanks to Giovanni Bajo for | ||
| 8819 | - the fix). | ||
| 8820 | - [117d2c42c517] | ||
| 8821 | - | ||
| 8822 | -2007-01-10 phil <phil> | ||
| 8823 | - | ||
| 8824 | - * siplib/sip.h, siplib/siplib.c: | ||
| 8825 | - Added support for __truediv__ and __itruediv__ by making them | ||
| 8826 | - synonyms for __div__ and __idiv__. | ||
| 8827 | - [1c6e71aeb203] | ||
| 8828 | - | ||
| 8829 | -2007-01-07 phil <phil> | ||
| 8830 | - | ||
| 8831 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 8832 | - Hopefully fixed a bug in the generation of the typedefs table that | ||
| 8833 | - wasn't using the full name of foreign modules. | ||
| 8834 | - [a193602041a2] | ||
| 8835 | - | ||
| 8836 | -2006-12-28 phil <phil> | ||
| 8837 | - | ||
| 8838 | - * siplib/sip.h: | ||
| 8839 | - Fixed a bug in the sipResetCppHasRef() macro that breaks the | ||
| 8840 | - /TransferBack/ annotation. | ||
| 8841 | - [30e9fc168db0] | ||
| 8842 | - | ||
| 8843 | -2006-12-20 phil <phil> | ||
| 8844 | - | ||
| 8845 | - * lib/siputils.py: | ||
| 8846 | - Fixed a MacOS specific bug in create_wrapper() in the build system. | ||
| 8847 | - [34641513890f] | ||
| 8848 | - | ||
| 8849 | - * lib/sipdistutils.py: | ||
| 8850 | - Applied a patch to sipdistutils.py from Giovanni Bajo to allow .sip | ||
| 8851 | - files to be used in the "depends" argument to setup(). | ||
| 8852 | - [912613b39701] | ||
| 8853 | - | ||
| 8854 | -2006-12-16 phil <phil> | ||
| 8855 | - | ||
| 8856 | - * NEWS, lib/siputils.py: | ||
| 8857 | - Fixed a bug in the build system that meant that lines in the top | ||
| 8858 | - level mkspec file were being ignored after the last include. | ||
| 8859 | - [c2ee167686b7] | ||
| 8860 | - | ||
| 8861 | -2006-12-09 phil <phil> | ||
| 8862 | - | ||
| 8863 | - * lib/siputils.py: | ||
| 8864 | - Fixed a MacOS build problem caused by another change to Qt installs. | ||
| 8865 | - [90c588f6fa54] | ||
| 8866 | - | ||
| 8867 | - * NEWS, build.py: | ||
| 8868 | - Updated the NEWS file. Fixed the internal build system for later | ||
| 8869 | - versions of docutils. | ||
| 8870 | - [4bcf93b8836e] | ||
| 8871 | - | ||
| 8872 | -2006-12-06 phil <phil> | ||
| 8873 | - | ||
| 8874 | - * NEWS, siplib/qtlib.c: | ||
| 8875 | - "PyQt_PyObject" is now used instead of "PyObject *". lamda functions | ||
| 8876 | - can now be used as slots. | ||
| 8877 | - [33493621d63e] | ||
| 8878 | - | ||
| 8879 | -2006-11-26 phil <phil> | ||
| 8880 | - | ||
| 8881 | - * siplib/sip.h, siplib/siplib.c: | ||
| 8882 | - Fixed an incorrect assumption that if a Python wrapper of a C++ | ||
| 8883 | - owned object was being garbage collected then its Python children | ||
| 8884 | - (ie. things it owns) should also be garbage collected. It may be | ||
| 8885 | - that the parent is a "temporary" object (eg. the argument of a | ||
| 8886 | - reimplementation of a virtual) but the children are "permanent". The | ||
| 8887 | - case in PyQt is the parent argument of | ||
| 8888 | - QAbstractItemDelegate.createEditor(). | ||
| 8889 | - [b981a814a1b2] | ||
| 8890 | - | ||
| 8891 | -2006-11-25 phil <phil> | ||
| 8892 | - | ||
| 8893 | - * doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 8894 | - PEP 353 fixes from Ulli. | ||
| 8895 | - [d22c558be4b9] | ||
| 8896 | - | ||
| 8897 | - * siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 8898 | - Some "char *" to "const char *" fixes from Ulli. | ||
| 8899 | - [208ba44fcddc] | ||
| 8900 | - | ||
| 8901 | -2006-11-18 phil <phil> | ||
| 8902 | - | ||
| 8903 | - * sipgen/transform.c: | ||
| 8904 | - Fixed a broken pointer bug in the API file generation. | ||
| 8905 | - [b80f4ae42e97] | ||
| 8906 | - | ||
| 8907 | -2006-11-17 phil <phil> | ||
| 8908 | - | ||
| 8909 | - * sipgen/export.c, sipgen/lexer.l: | ||
| 8910 | - Fixed a misleading error message when instantiating templates. Fixed | ||
| 8911 | - a bug generating global functions in API files. | ||
| 8912 | - [6b6804bacc4f] | ||
| 8913 | - | ||
| 8914 | -2006-11-11 phil <phil> | ||
| 8915 | - | ||
| 8916 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 8917 | - Fixed a bug with virtual handlers when a module %Imports from two | ||
| 8918 | - other (independent) modules. | ||
| 8919 | - [56ca50343b62] | ||
| 8920 | - | ||
| 8921 | -2006-11-04 phil <phil> | ||
| 8922 | - | ||
| 8923 | - * NEWS: | ||
| 8924 | - Released as v4.5. | ||
| 8925 | - [5982951360f3] [4.5] | ||
| 8926 | - | ||
| 8927 | -2006-10-28 phil <phil> | ||
| 8928 | - | ||
| 8929 | - * lib/siputils.py: | ||
| 8930 | - The build system now handles .prl files on MacOS. | ||
| 8931 | - [25b8444de255] | ||
| 8932 | - | ||
| 8933 | -2006-10-27 phil <phil> | ||
| 8934 | - | ||
| 8935 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 8936 | - sipgen/sip.h, sipgen/transform.c: | ||
| 8937 | - Changed NoDefaultCopyCtor to NoDefaultCtors. Updated the NEWS file. | ||
| 8938 | - [57307ed6d154] | ||
| 8939 | - | ||
| 8940 | -2006-10-22 phil <phil> | ||
| 8941 | - | ||
| 8942 | - * doc/sipref.txt, lib/siputils.py, sipgen/parser.y, sipgen/sip.h, | ||
| 8943 | - sipgen/transform.c, siplib/qtlib.c: | ||
| 8944 | - A fix for configuring QtAssistant in PyQt for Qt v4.2 on MacOS. | ||
| 8945 | - Added the NoDefaultCopyCtor class annotation. | ||
| 8946 | - [ed57b3a6fd1c] | ||
| 8947 | - | ||
| 8948 | -2006-10-21 phil <phil> | ||
| 8949 | - | ||
| 8950 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 8951 | - Fixed a Python 2.4/2.5 change that was missed. Added | ||
| 8952 | - sip.setdeleted(). | ||
| 8953 | - [2db4a119d6c6] | ||
| 8954 | - | ||
| 8955 | -2006-10-20 phil <phil> | ||
| 8956 | - | ||
| 8957 | - * doc/sipref.txt, lib/siputils.py, specs/hurd-g++, specs/solaris-cc: | ||
| 8958 | - Platform portability fixes from Ulli. Fix for conditional includes | ||
| 8959 | - in spec files from Ulli. Qt4 module include directories are now | ||
| 8960 | - searched before the main Qt4 include directory. Handle the change in | ||
| 8961 | - debug libraries in Qt v4.2. | ||
| 8962 | - [3f72b2b88460] | ||
| 8963 | - | ||
| 8964 | -2006-10-15 phil <phil> | ||
| 8965 | - | ||
| 8966 | - * sipgen/parser.y: | ||
| 8967 | - Allow virtual signals if the NoEmitters option is set. | ||
| 8968 | - [6657a8d15171] | ||
| 8969 | - | ||
| 8970 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 8971 | - Fixed a bug where the first argument to a global comparison operator | ||
| 8972 | - was mishandled if it was a pointer rather than a reference. | ||
| 8973 | - [5c5c0d5f6b65] | ||
| 8974 | - | ||
| 8975 | -2006-10-13 phil <phil> | ||
| 8976 | - | ||
| 8977 | - * siplib/siplib.c: | ||
| 8978 | - Improved the previous fix for the incorrect ctor exception. | ||
| 8979 | - [3d9f787fedf8] | ||
| 8980 | - | ||
| 8981 | -2006-10-08 phil <phil> | ||
| 8982 | - | ||
| 8983 | - * lib/siputils.py, siplib/siplib.c: | ||
| 8984 | - Fixed bug where handwritten traverse and clear code wasn't being | ||
| 8985 | - called for derived classes. Fixed an incorrect Python exception | ||
| 8986 | - raised when a C++ exception is thrown by a ctor. The build system | ||
| 8987 | - now displayed an error if a non-framework build of Python is used on | ||
| 8988 | - MacOS. Untested fix for building a static module with MinGW. | ||
| 8989 | - [9c60ee47e4d5] | ||
| 8990 | - | ||
| 8991 | -2006-10-07 phil <phil> | ||
| 8992 | - | ||
| 8993 | - * lib/siputils.py: | ||
| 8994 | - Build system fixes for Qt v4.2.0 based on a patch from Matt Newell. | ||
| 8995 | - [e7f12b65d105] | ||
| 8996 | - | ||
| 8997 | -2006-09-30 phil <phil> | ||
| 8998 | - | ||
| 8999 | - * lib/siputils.py: | ||
| 9000 | - Fixes for building QtTest on Windows. | ||
| 9001 | - [a8b3716e682a] | ||
| 9002 | - | ||
| 9003 | -2006-09-23 phil <phil> | ||
| 9004 | - | ||
| 9005 | - * lib/siputils.py, sipgen/parser.y: | ||
| 9006 | - Taught the build system about QtTest. Fixed a bug in the handling of | ||
| 9007 | - namespaces split across multiple header files. | ||
| 9008 | - [89b8c6c6b8c6] | ||
| 9009 | - | ||
| 9010 | - * TODO, doc/sipref.txt, siplib/siplib.c: | ||
| 9011 | - Added support for hooking into the C++ dtor from Python by | ||
| 9012 | - implementing __dtor__() from a patch by Jean Jacques Lecler. | ||
| 9013 | - [38da61ef1711] | ||
| 9014 | - | ||
| 9015 | - * NEWS, doc/sipref.txt, siplib/siplib.c: | ||
| 9016 | - Added sip.delete() (based on a patch from Jean Jacques Lecler) and | ||
| 9017 | - sip.isdeleted(). | ||
| 9018 | - [8946500be6fa] | ||
| 9019 | - | ||
| 9020 | - * doc/sipref.txt, sipgen/export.c, sipgen/main.c, sipgen/sip.h: | ||
| 9021 | - Removed the -n flag to sip now I think I've decided how to change | ||
| 9022 | - code completion in QScintilla. | ||
| 9023 | - [69cb56ba58f1] | ||
| 9024 | - | ||
| 9025 | -2006-09-22 phil <phil> | ||
| 9026 | - | ||
| 9027 | - * sipgen/parser.y: | ||
| 9028 | - Backed out the check that abstract methods are virtual - because | ||
| 9029 | - they don't have to be. | ||
| 9030 | - [1c753a1e011a] | ||
| 9031 | - | ||
| 9032 | -2006-09-17 phil <phil> | ||
| 9033 | - | ||
| 9034 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 9035 | - sipgen/transform.c: | ||
| 9036 | - Added support for pure virtual dtors. Fixed a bug where abstract | ||
| 9037 | - operators weren't flagging the class as being abstract. | ||
| 9038 | - [867e6aa1d499] | ||
| 9039 | - | ||
| 9040 | -2006-09-03 phil <phil> | ||
| 9041 | - | ||
| 9042 | - * sipgen/gencode.c, siplib/siplib.c: | ||
| 9043 | - Defeated a GCC v4 warning message on generated code. | ||
| 9044 | - [be5889f172fb] | ||
| 9045 | - | ||
| 9046 | -2006-08-17 phil <phil> | ||
| 9047 | - | ||
| 9048 | - * sipgen/gencode.c: | ||
| 9049 | - Minor code generation formatting tidyups. | ||
| 9050 | - [c4397d6c3aca] | ||
| 9051 | - | ||
| 9052 | - * siplib/sip.h, siplib/siplib.c, specs/linux-lsb: | ||
| 9053 | - Added argument type checking to sipRegisterIntTypes(). | ||
| 9054 | - [aa1a3cf373d0] | ||
| 9055 | - | ||
| 9056 | -2006-08-16 phil <phil> | ||
| 9057 | - | ||
| 9058 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 9059 | - Added sipRegisterIntTypes() to the private Qt support API so that | ||
| 9060 | - PyQt4 can implement Q_ENUMS and Q_FLAGS. | ||
| 9061 | - [0909d2f2b376] | ||
| 9062 | - | ||
| 9063 | -2006-08-05 phil <phil> | ||
| 9064 | - | ||
| 9065 | - * lib/siputils.py: | ||
| 9066 | - Added support for QAxContainer in the build system. | ||
| 9067 | - [5ddf72d045fb] | ||
| 9068 | - | ||
| 9069 | -2006-07-19 phil <phil> | ||
| 9070 | - | ||
| 9071 | - * lib/configure.py, lib/siputils.py, specs/hurd-g++, specs/linux-pgcc, | ||
| 9072 | - specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++, | ||
| 9073 | - specs/solaris-g++-64, specs/win32-icc, specs/win32-msvc, | ||
| 9074 | - specs/win32-msvc.net, specs/win32-msvc2005: | ||
| 9075 | - Updated the spec files from Qt v4.1.4. Added (completely untested) | ||
| 9076 | - support for embedding manifests for MSVC v8. | ||
| 9077 | - [db5efb4cac5b] | ||
| 9078 | - | ||
| 9079 | -2006-07-16 phil <phil> | ||
| 9080 | - | ||
| 9081 | - * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: | ||
| 9082 | - More Python v2.5 changes. | ||
| 9083 | - [d54e5c462956] | ||
| 9084 | - | ||
| 9085 | -2006-07-15 phil <phil> | ||
| 9086 | - | ||
| 9087 | - * siplib/objmap.c, siplib/sip.h, siplib/siplib.c: | ||
| 9088 | - The sip module will now build against Python v2.5. (The 64 bit | ||
| 9089 | - changes still need to be done.) | ||
| 9090 | - [00cc5cf214cf] | ||
| 9091 | - | ||
| 9092 | -2006-07-08 phil <phil> | ||
| 9093 | - | ||
| 9094 | - * lib/configure.py: | ||
| 9095 | - Fixed the use of sys.lib in configure.py. | ||
| 9096 | - [a10f12367272] | ||
| 9097 | - | ||
| 9098 | -2006-07-06 phil <phil> | ||
| 9099 | - | ||
| 9100 | - * lib/configure.py: | ||
| 9101 | - configure.py uses sys.lib if it is defined (for some 64 bit Linux | ||
| 9102 | - distros). | ||
| 9103 | - [0dbaacd9a231] | ||
| 9104 | - | ||
| 9105 | -2006-07-04 phil <phil> | ||
| 9106 | - | ||
| 9107 | - * sipgen/gencode.c: | ||
| 9108 | - Always call a dtor if there is one, even if we can't see how the | ||
| 9109 | - instance could have been created. | ||
| 9110 | - [47bb2a6a914a] | ||
| 9111 | - | ||
| 9112 | -2006-07-01 phil <phil> | ||
| 9113 | - | ||
| 9114 | - * sipgen/export.c: | ||
| 9115 | - Fixed default arguments and C++ scoped names in the new API file | ||
| 9116 | - handling. | ||
| 9117 | - [6909ffb3bb65] | ||
| 9118 | - | ||
| 9119 | -2006-06-30 phil <phil> | ||
| 9120 | - | ||
| 9121 | - * NEWS, doc/sipref.txt, sipgen/export.c, sipgen/gencode.c, | ||
| 9122 | - sipgen/genxml.c, sipgen/main.c, sipgen/sip.h, sipgen/sipgen.sbf: | ||
| 9123 | - Added the -n command line option (possibly only temporarily). | ||
| 9124 | - Changed the API generation so that it is more complete and uses | ||
| 9125 | - Python types rather than C/C++ types. | ||
| 9126 | - [1cd867db4c66] | ||
| 9127 | - | ||
| 9128 | -2006-06-29 phil <phil> | ||
| 9129 | - | ||
| 9130 | - * lib/configure.py: | ||
| 9131 | - Added sip_config_args to sipconfig.py. Added __hex__() to | ||
| 9132 | - sip.voidptr. | ||
| 9133 | - [d60d22ffda1c] | ||
| 9134 | - | ||
| 9135 | - * NEWS, doc/sipref.txt, lib/configure.py, siplib/siplib.c: | ||
| 9136 | - | ||
| 9137 | - [16c887e1169c] | ||
| 9138 | - | ||
| 9139 | -2006-06-19 phil <phil> | ||
| 9140 | - | ||
| 9141 | - * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 9142 | - More warning fixes from Ulli. | ||
| 9143 | - [4ba06471ee46] | ||
| 9144 | - | ||
| 9145 | -2006-06-17 phil <phil> | ||
| 9146 | - | ||
| 9147 | - * sipgen/gencode.c: | ||
| 9148 | - Changed the explicit C linkage to retain the benefit of using | ||
| 9149 | - static. | ||
| 9150 | - [b2f02ca5a819] | ||
| 9151 | - | ||
| 9152 | -2006-06-13 phil <phil> | ||
| 9153 | - | ||
| 9154 | - * sipgen/gencode.c, sipgen/parser.y: | ||
| 9155 | - Signals and slots are now const char * rather than char *. | ||
| 9156 | - [a43a225ba180] | ||
| 9157 | - | ||
| 9158 | -2006-06-10 phil <phil> | ||
| 9159 | - | ||
| 9160 | - * doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, siplib/sip.h, | ||
| 9161 | - siplib/siplib.c: | ||
| 9162 | - Fixed the implementation of /TransferBack/ for virtuals. Changed all | ||
| 9163 | - API arguments that take a format string from char * to const char * | ||
| 9164 | - for Solaris. Used explicit C linkage for all generated function | ||
| 9165 | - calls when genarting C++. (May need more work in this area.) | ||
| 9166 | - [2d05ea691d29] | ||
| 9167 | - | ||
| 9168 | -2006-06-06 phil <phil> | ||
| 9169 | - | ||
| 9170 | - * sipgen/genxml.c: | ||
| 9171 | - Changed the XML handling of opaque classes. | ||
| 9172 | - [86888971690a] | ||
| 9173 | - | ||
| 9174 | -2006-06-05 phil <phil> | ||
| 9175 | - | ||
| 9176 | - * sipgen/genxml.c: | ||
| 9177 | - Added support for opaque classes to the XML. | ||
| 9178 | - [427fc4186f14] | ||
| 9179 | - | ||
| 9180 | -2006-06-03 phil <phil> | ||
| 9181 | - | ||
| 9182 | - * sipgen/gencode.c: | ||
| 9183 | - More XML generation changes. | ||
| 9184 | - [b204d646b580] | ||
| 9185 | - | ||
| 9186 | -2006-05-31 phil <phil> | ||
| 9187 | - | ||
| 9188 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: | ||
| 9189 | - More XML generation changes. | ||
| 9190 | - [91acee878afd] | ||
| 9191 | - | ||
| 9192 | -2006-05-30 phil <phil> | ||
| 9193 | - | ||
| 9194 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/parser.y, sipgen/sip.h: | ||
| 9195 | - More XML generation changes. | ||
| 9196 | - [7d79341cfc58] | ||
| 9197 | - | ||
| 9198 | -2006-05-28 phil <phil> | ||
| 9199 | - | ||
| 9200 | - * sipgen/genxml.c: | ||
| 9201 | - More XML generation changes. | ||
| 9202 | - [a95f90a9f6d2] | ||
| 9203 | - | ||
| 9204 | -2006-05-25 phil <phil> | ||
| 9205 | - | ||
| 9206 | - * sipgen/genxml.c, siplib/qtlib.c: | ||
| 9207 | - Fixed bug disconnecting Python signals. | ||
| 9208 | - [7a44ec54ef69] | ||
| 9209 | - | ||
| 9210 | -2006-05-20 phil <phil> | ||
| 9211 | - | ||
| 9212 | - * sipgen/genxml.c: | ||
| 9213 | - More XML generation changes. | ||
| 9214 | - [7e8538e5e080] | ||
| 9215 | - | ||
| 9216 | - * sipgen/genxml.c, sipgen/transform.c: | ||
| 9217 | - Backed out the change that treated "char" and "char *" as equivalent | ||
| 9218 | - when comparing Python signatures. (The former is different to the | ||
| 9219 | - latter if it appears first.) | ||
| 9220 | - [f411eb8c010c] | ||
| 9221 | - | ||
| 9222 | -2006-05-18 phil <phil> | ||
| 9223 | - | ||
| 9224 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: | ||
| 9225 | - More XML generation changes. | ||
| 9226 | - [e42fe590a33c] | ||
| 9227 | - | ||
| 9228 | -2006-05-16 phil <phil> | ||
| 9229 | - | ||
| 9230 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h, sipgen/transform.c: | ||
| 9231 | - Tightened up on detecting clashing Python signatures involving | ||
| 9232 | - strings and longs. Changes to the XML file generation. | ||
| 9233 | - [180930e69638] | ||
| 9234 | - | ||
| 9235 | -2006-05-13 phil <phil> | ||
| 9236 | - | ||
| 9237 | - * siplib/siplib.c: | ||
| 9238 | - Removed some Python API calls made after the interpreter is known to | ||
| 9239 | - have gone. | ||
| 9240 | - [dc80be8d888f] | ||
| 9241 | - | ||
| 9242 | - * siplib/siplib.c: | ||
| 9243 | - Fixed a sip module bug that meant that the Python API might be | ||
| 9244 | - called after the interpreter had gone. | ||
| 9245 | - [a9470b7f1479] | ||
| 9246 | - | ||
| 9247 | - * sipgen/gencode.c: | ||
| 9248 | - Fixed code generation bug with abstract operators. | ||
| 9249 | - [473bd3cea296] | ||
| 9250 | - | ||
| 9251 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 9252 | - sipgen/parser.y, sipgen/sip.h: | ||
| 9253 | - Added %UnitCode. | ||
| 9254 | - [2f3ad3e3a582] | ||
| 9255 | - | ||
| 9256 | -2006-05-11 phil <phil> | ||
| 9257 | - | ||
| 9258 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, | ||
| 9259 | - siplib/siplib.c: | ||
| 9260 | - Added sipExportSymbol() and sipImportSymbol(). Bumped the API | ||
| 9261 | - version number to 3.2. | ||
| 9262 | - [ee671f33f9a8] | ||
| 9263 | - | ||
| 9264 | -2006-05-08 phil <phil> | ||
| 9265 | - | ||
| 9266 | - * sipgen/heap.c: | ||
| 9267 | - Removed (hopefully) two new warning messages. | ||
| 9268 | - [a347b1964dd2] | ||
| 9269 | - | ||
| 9270 | -2006-05-07 phil <phil> | ||
| 9271 | - | ||
| 9272 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 9273 | - sipgen/parser.y, sipgen/sip.h: | ||
| 9274 | - Added support for %ExportedHeaderCode. | ||
| 9275 | - [1fc6cbb5421c] | ||
| 9276 | - | ||
| 9277 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c: | ||
| 9278 | - Fixed bug in handling of virtuals with different Python and C++ | ||
| 9279 | - signatures. | ||
| 9280 | - [7c64bcb52e90] | ||
| 9281 | - | ||
| 9282 | -2006-05-05 phil <phil> | ||
| 9283 | - | ||
| 9284 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/heap.c, | ||
| 9285 | - sipgen/lexer.l, sipgen/main.c, sipgen/parser.y, sipgen/sip.h, | ||
| 9286 | - sipgen/transform.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 9287 | - Fixes for compiler warnings and a couple of minor bugs from Ulli. | ||
| 9288 | - Deprecated %SIPNoEmitters and replaced it with %SIPOptions. Added | ||
| 9289 | - the RegisterTypes option so that appropriate classes are registered | ||
| 9290 | - with Qt automatically when needed - so PyQt4 doesn't need to | ||
| 9291 | - implement qRegisterMetaType(). | ||
| 9292 | - [b80581e367f3] | ||
| 9293 | - | ||
| 9294 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/sip.h: | ||
| 9295 | - Fixed some compiler warnings. | ||
| 9296 | - [5c4467450cbe] | ||
| 9297 | - | ||
| 9298 | -2006-05-01 phil <phil> | ||
| 9299 | - | ||
| 9300 | - * sipgen/genxml.c, sipgen/transform.c: | ||
| 9301 | - More work on the XML generation. | ||
| 9302 | - [cb5eec12561a] | ||
| 9303 | - | ||
| 9304 | -2006-04-30 phil <phil> | ||
| 9305 | - | ||
| 9306 | - * sipgen/gencode.c, sipgen/genxml.c, sipgen/main.c, sipgen/sip.h, | ||
| 9307 | - sipgen/sipgen.sbf: | ||
| 9308 | - Added the -m flag to generate the XML representation of the Pythonic | ||
| 9309 | - API. | ||
| 9310 | - [57d825e6a61f] | ||
| 9311 | - | ||
| 9312 | -2006-04-28 phil <phil> | ||
| 9313 | - | ||
| 9314 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h, siplib/siplib.c: | ||
| 9315 | - Replaced long long with PY_LONG_LONG for MSVC 6. | ||
| 9316 | - [19dc39dffac6] | ||
| 9317 | - | ||
| 9318 | -2006-04-27 phil <phil> | ||
| 9319 | - | ||
| 9320 | - * lib/siputils.py, sipgen/parser.y: | ||
| 9321 | - Fixed bug in handling multiple instances of the same namespace. The | ||
| 9322 | - build system allows Apple's Python to be used if there is also a | ||
| 9323 | - later python.org installation. MacOS modules are now bundles rather | ||
| 9324 | - than dynamic libraries and can now be loaded by Pythons from | ||
| 9325 | - python.org. Released as v4.4.3. | ||
| 9326 | - [809972a88944] | ||
| 9327 | - | ||
| 9328 | -2006-04-21 phil <phil> | ||
| 9329 | - | ||
| 9330 | - * sipgen/gencode.c: | ||
| 9331 | - Fixed the previous const mapped type fix. | ||
| 9332 | - [1a5385651af1] | ||
| 9333 | - | ||
| 9334 | -2006-04-20 phil <phil> | ||
| 9335 | - | ||
| 9336 | - * lib/siputils.py, sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 9337 | - Fixed the GUI enabled interpreter in sipconfig.create_wrapper() for | ||
| 9338 | - MacOS. Fixed static const mapped types. | ||
| 9339 | - [def8fea45725] | ||
| 9340 | - | ||
| 9341 | -2006-04-18 phil <phil> | ||
| 9342 | - | ||
| 9343 | - * doc/sipref.txt, lib/configure.py, lib/siputils.py: | ||
| 9344 | - Fixed the build system for when sys.prefix != sys.exec_prefix. | ||
| 9345 | - [83449c4ab4f2] | ||
| 9346 | - | ||
| 9347 | -2006-04-16 phil <phil> | ||
| 9348 | - | ||
| 9349 | - * doc/sipref.txt, lib/siputils.py: | ||
| 9350 | - Added the export_all argument to the ModuleMakefile constructor of | ||
| 9351 | - the build system so that exports can be handled on a per module | ||
| 9352 | - basis. This is needed to get around a (not properly understood) | ||
| 9353 | - problem with modules that wrap C++ exceptions. | ||
| 9354 | - [89709d0957bd] | ||
| 9355 | - | ||
| 9356 | -2006-04-15 phil <phil> | ||
| 9357 | - | ||
| 9358 | - * lib/siputils.py, siplib/qtlib.c, specs/hurd-g++, specs/solaris-cc: | ||
| 9359 | - The build system now complains if a property is used in a spec file | ||
| 9360 | - when no properties have been defined. Removed Qt specific properties | ||
| 9361 | - from the solaris-cc and hurd-g++ spec files. Fixed the disconnecting | ||
| 9362 | - of short-circuited signals. | ||
| 9363 | - [0c4ee0a3db80] | ||
| 9364 | - | ||
| 9365 | -2006-04-08 phil <phil> | ||
| 9366 | - | ||
| 9367 | - * lib/siputils.py: | ||
| 9368 | - Fixed the build system to better support frameworks on MacOS. | ||
| 9369 | - [864b17931a7b] | ||
| 9370 | - | ||
| 9371 | -2006-04-07 phil <phil> | ||
| 9372 | - | ||
| 9373 | - * doc/sipref.txt, siplib/sip.h, siplib/siplib.c: | ||
| 9374 | - Made sure that all uses of sipMappedType * in the API are const. | ||
| 9375 | - [0d3533b681e3] | ||
| 9376 | - | ||
| 9377 | -2006-04-06 phil <phil> | ||
| 9378 | - | ||
| 9379 | - * lib/siputils.py: | ||
| 9380 | - The sipconfig module now uses qt_data_dir (if set) to find the qmake | ||
| 9381 | - spec files. | ||
| 9382 | - [2f81428640de] | ||
| 9383 | - | ||
| 9384 | -2006-04-05 phil <phil> | ||
| 9385 | - | ||
| 9386 | - * NEWS, TODO, sipgen/parser.y, sipgen/transform.c: | ||
| 9387 | - Merged v4.4.1 into the trunk. SIP now properly detects duplicate | ||
| 9388 | - Python signatures. | ||
| 9389 | - [9c53b26de67b] | ||
| 9390 | - | ||
| 9391 | -2006-04-02 phil <phil> | ||
| 9392 | - | ||
| 9393 | - * siplib/siplib.c: | ||
| 9394 | - Fixed a regression in the handling of __dict__. | ||
| 9395 | - [33a17c1ed42d] | ||
| 9396 | - | ||
| 9397 | -2006-04-01 phil <phil> | ||
| 9398 | - | ||
| 9399 | - * siplib/sip.h, siplib/siplib.c: | ||
| 9400 | - Make the sip module's support for long long and unsigned long long | ||
| 9401 | - conditional on HAVE_LONG_LONG so that it will build with older | ||
| 9402 | - compilers. | ||
| 9403 | - [e655c6a8a748] | ||
| 9404 | - | ||
| 9405 | -2006-03-29 phil <phil> | ||
| 9406 | - | ||
| 9407 | - * NEWS, sipgen/gencode.c: | ||
| 9408 | - Removed extraneous brackets in generated code. | ||
| 9409 | - [a64c7cdb2ee9] | ||
| 9410 | - | ||
| 9411 | -2006-03-28 phil <phil> | ||
| 9412 | - | ||
| 9413 | - * sipgen/gencode.c: | ||
| 9414 | - Fixed some C++ code wrongly appearing in C modules. | ||
| 9415 | - [7e80756dae4d] | ||
| 9416 | - | ||
| 9417 | -2006-03-25 phil <phil> | ||
| 9418 | - | ||
| 9419 | - * NEWS, sipgen/parser.y: | ||
| 9420 | - Fixed a regression in the handling of namespaces. | ||
| 9421 | - [7a22e2205ba9] | ||
| 9422 | - | ||
| 9423 | -2006-03-24 phil <phil> | ||
| 9424 | - | ||
| 9425 | - * NEWS, doc/sipref.txt, sipgen/gencode.c: | ||
| 9426 | - Documented sipModule and sipModuleDict as being available to | ||
| 9427 | - %PostInitialisationCode. Released as v4.4. | ||
| 9428 | - [8acdabcf6a08] [4.4] | ||
| 9429 | - | ||
| 9430 | -2006-03-21 phil <phil> | ||
| 9431 | - | ||
| 9432 | - * doc/sipref.txt, lib/sipdistutils.py, siplib/sip.h, siplib/siplib.c: | ||
| 9433 | - Applied patch for sipdistuils.py from Giovanni. Documented | ||
| 9434 | - sipConvertFromNamedEnum(). Wrapped types now define __reduce_ex__ | ||
| 9435 | - and __reduce__ attributes set to None so that pickle knows they | ||
| 9436 | - can't be pickled. | ||
| 9437 | - [94694c47891e] | ||
| 9438 | - | ||
| 9439 | -2006-03-20 phil <phil> | ||
| 9440 | - | ||
| 9441 | - * siplib/siplib.c: | ||
| 9442 | - Fixed the special handling of the __dict__ attribute so that it | ||
| 9443 | - doesn't apply to Python sub-classes of wrapped classes. | ||
| 9444 | - [6835562cf526] | ||
| 9445 | - | ||
| 9446 | -2006-03-19 phil <phil> | ||
| 9447 | - | ||
| 9448 | - * doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, | ||
| 9449 | - siplib/siplib.c, siplib/threads.c: | ||
| 9450 | - Documentation tweaks. Generate sipSelf for ctor %MethodCode now that | ||
| 9451 | - it's existence is documented. Fixed a second place where slots with | ||
| 9452 | - no underlying C++ instance might be invoked. | ||
| 9453 | - [ba7b9c9371e1] | ||
| 9454 | - | ||
| 9455 | -2006-03-17 phil <phil> | ||
| 9456 | - | ||
| 9457 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 9458 | - Removed __unicode__ from the documentation. Fixed a bug with virtual | ||
| 9459 | - methods that returned a reference to a type that had | ||
| 9460 | - %ConvertToTypeCode. | ||
| 9461 | - [6dc8ddba43ed] | ||
| 9462 | - | ||
| 9463 | -2006-03-15 phil <phil> | ||
| 9464 | - | ||
| 9465 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sipint.h, siplib/siplib.c: | ||
| 9466 | - Removal of a now redundant error message. Fixed a leaking weak | ||
| 9467 | - reference object. Another attempt at fixing calling slots where the | ||
| 9468 | - underlying C++ instance has disappeared. | ||
| 9469 | - [8f7b10cbc372] | ||
| 9470 | - | ||
| 9471 | -2006-03-14 phil <phil> | ||
| 9472 | - | ||
| 9473 | - * lib/siputils.py, sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, | ||
| 9474 | - sipgen/transform.c: | ||
| 9475 | - More const void * fixes. Fixed bug with building debug modules using | ||
| 9476 | - MinGW. Fixed feature where too many names were being generated from | ||
| 9477 | - imported modules. SIP now handles nested imports properly and | ||
| 9478 | - doesn't require all modules to be explcitly imported. | ||
| 9479 | - [f7b3774f05bf] | ||
| 9480 | - | ||
| 9481 | -2006-03-13 phil <phil> | ||
| 9482 | - | ||
| 9483 | - * build.py, doc/sipref.txt, lib/README.Fink, lib/siputils.py, | ||
| 9484 | - sipgen/parser.y: | ||
| 9485 | - Build system changes to support MacOS properly. Fixed crash when | ||
| 9486 | - %TypeHeaderCode was used outside of a scope. | ||
| 9487 | - [fc9cf357273b] | ||
| 9488 | - | ||
| 9489 | -2006-03-12 phil <phil> | ||
| 9490 | - | ||
| 9491 | - * TODO, sipgen/gencode.c: | ||
| 9492 | - Fixed calls to sipConvertFromVoidPtr() with a const argument. | ||
| 9493 | - [1d20b7ddf5b7] | ||
| 9494 | - | ||
| 9495 | -2006-03-11 phil <phil> | ||
| 9496 | - | ||
| 9497 | - * lib/siputils.py: | ||
| 9498 | - Minor changes to sipconfig.py for PyQt4's pyqtconfig.py. | ||
| 9499 | - [5c35ed3d0e90] | ||
| 9500 | - | ||
| 9501 | - * lib/siputils.py, sipgen/parser.y: | ||
| 9502 | - Fixed handling of generating code for the version before the first | ||
| 9503 | - %Timeline version. | ||
| 9504 | - [3ffe3ddaa678] | ||
| 9505 | - | ||
| 9506 | -2006-03-08 phil <phil> | ||
| 9507 | - | ||
| 9508 | - * siplib/qtlib.c: | ||
| 9509 | - Fixed a bug in the handling of QVariant * and PyObject * signal | ||
| 9510 | - arguments. | ||
| 9511 | - [c04f60565120] | ||
| 9512 | - | ||
| 9513 | -2006-03-06 phil <phil> | ||
| 9514 | - | ||
| 9515 | - * sipgen/gencode.c: | ||
| 9516 | - Fixed a regression in handling of enums defined in an imported | ||
| 9517 | - module. | ||
| 9518 | - [305954bab24d] | ||
| 9519 | - | ||
| 9520 | - * sipgen/gencode.c: | ||
| 9521 | - Fixed bug in handling the typedef void hack. | ||
| 9522 | - [f5ec81faf924] | ||
| 9523 | - | ||
| 9524 | -2006-03-05 phil <phil> | ||
| 9525 | - | ||
| 9526 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, siplib/sip.h, | ||
| 9527 | - siplib/siplib.c: | ||
| 9528 | - Fixed bug with abstract classes with %ConvertToSubClassCode. | ||
| 9529 | - Reimplemented namspaces split across modules so that there is a | ||
| 9530 | - single namespace implemented in the original module. | ||
| 9531 | - [e04e87b70f29] | ||
| 9532 | - | ||
| 9533 | - * sipgen/transform.c: | ||
| 9534 | - Fixed missing #include for classes that aren't an immediate parent. | ||
| 9535 | - [5f28954fe478] | ||
| 9536 | - | ||
| 9537 | -2006-03-04 phil <phil> | ||
| 9538 | - | ||
| 9539 | - * sipgen/gencode.c: | ||
| 9540 | - Fixed a regression in the wrappers around protected methods. | ||
| 9541 | - [65fc03434a16] | ||
| 9542 | - | ||
| 9543 | - * siplib/qtlib.c: | ||
| 9544 | - Suppressed the exception about the underlying object disappearing | ||
| 9545 | - when calling a Python slot. This is because we don't automatically | ||
| 9546 | - disconnect Python slots. | ||
| 9547 | - [5a90239b615c] | ||
| 9548 | - | ||
| 9549 | -2006-03-02 phil <phil> | ||
| 9550 | - | ||
| 9551 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, | ||
| 9552 | - siplib/siplib.c: | ||
| 9553 | - Added sipLong_AsUnsignedLong() to work around a bug in | ||
| 9554 | - PyLong_AsUnsignedLong(). | ||
| 9555 | - [ae6bdfc7d774] | ||
| 9556 | - | ||
| 9557 | -2006-02-26 phil <phil> | ||
| 9558 | - | ||
| 9559 | - * sipgen/gencode.c: | ||
| 9560 | - Fixed bug in handling class arguments with /Out/ specified. | ||
| 9561 | - [a39d9d9a8d5a] | ||
| 9562 | - | ||
| 9563 | - * lib/siputils.py, sipgen/gencode.c, sipgen/lexer.l, sipgen/parser.y: | ||
| 9564 | - Recognise NULL as a synonym for 0. Some build system changes for | ||
| 9565 | - Cygwin. Fixed the deletion of temporary instances in catch clauses. | ||
| 9566 | - [1b9e30dd13fb] | ||
| 9567 | - | ||
| 9568 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 9569 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/qtlib.c, | ||
| 9570 | - siplib/sip.h: | ||
| 9571 | - SIP now treats signed char as a type distinct from char. | ||
| 9572 | - [01500c239ace] | ||
| 9573 | - | ||
| 9574 | - * sipgen/gencode.c, sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, | ||
| 9575 | - siplib/sip.h, siplib/siplib.c: | ||
| 9576 | - Tore up the recent changes for handling cross module namespaces. A | ||
| 9577 | - namespace is now defined in each module it is used. That makes | ||
| 9578 | - things easier to implement and should be less confusing for the | ||
| 9579 | - user. The API and data structures should now be stable. | ||
| 9580 | - [02277356e12c] | ||
| 9581 | - | ||
| 9582 | -2006-02-25 phil <phil> | ||
| 9583 | - | ||
| 9584 | - * sipgen/parser.y: | ||
| 9585 | - Fixed bug in handling of variables introduced in the previous | ||
| 9586 | - commit. | ||
| 9587 | - [aadd2d0daa3e] | ||
| 9588 | - | ||
| 9589 | - * sipgen/gencode.c, sipgen/parser.y: | ||
| 9590 | - Added support for variables defined in namespaces defined in other | ||
| 9591 | - modules. | ||
| 9592 | - [a1210912bb6c] | ||
| 9593 | - | ||
| 9594 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 9595 | - Completed the support for enums in namespaces originating in other | ||
| 9596 | - modules. | ||
| 9597 | - [590dbde2e463] | ||
| 9598 | - | ||
| 9599 | -2006-02-21 phil <phil> | ||
| 9600 | - | ||
| 9601 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/siplib.c: | ||
| 9602 | - Added the 't' and 'u' format characters to sipParseArgs(), | ||
| 9603 | - sipParseResult(), sipCallMethod() and sipBuildResult(). unsigned and | ||
| 9604 | - unsigned short are now implemented as Python long objects instead of | ||
| 9605 | - integer objects. | ||
| 9606 | - [f8c047d7f8df] | ||
| 9607 | - | ||
| 9608 | -2006-02-19 phil <phil> | ||
| 9609 | - | ||
| 9610 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: | ||
| 9611 | - Implemented disconnects for universal signals. | ||
| 9612 | - [6cd1a4dc4e73] | ||
| 9613 | - | ||
| 9614 | -2006-02-18 phil <phil> | ||
| 9615 | - | ||
| 9616 | - * sipgen/gencode.c, siplib/qtlib.c, siplib/sip.h: | ||
| 9617 | - Implemented support for signal arguments of type PyObject *. | ||
| 9618 | - Implemented support for shortcircuited Python signals (ie. just the | ||
| 9619 | - name without arguments) that will only work with other | ||
| 9620 | - shortcircuited Python signals and Python slots - bit don't need to | ||
| 9621 | - do any conversions between Python and C++. | ||
| 9622 | - [6748c4088281] | ||
| 9623 | - | ||
| 9624 | -2006-02-17 phil <phil> | ||
| 9625 | - | ||
| 9626 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 9627 | - Fixed bug in the implementation of /TransferBack/ in virtual | ||
| 9628 | - handlers. Fixed bug in methods with a void result and a single /Out/ | ||
| 9629 | - argument that was a mapped type or class. | ||
| 9630 | - [f6486c697de5] | ||
| 9631 | - | ||
| 9632 | -2006-02-16 phil <phil> | ||
| 9633 | - | ||
| 9634 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 9635 | - Fixed bug in generating code that called sipCallMethod(). Updated | ||
| 9636 | - the documentation where it was still referring to the legacy type | ||
| 9637 | - convertors. | ||
| 9638 | - [acdd622dba74] | ||
| 9639 | - | ||
| 9640 | - * sipgen/gencode.c: | ||
| 9641 | - Fixed bug in generated legacy mapped type convertor names. | ||
| 9642 | - [8424561f0d54] | ||
| 9643 | - | ||
| 9644 | -2006-02-15 phil <phil> | ||
| 9645 | - | ||
| 9646 | - * sipgen/gencode.c: | ||
| 9647 | - Fixed bug that could easily result in deleting non-heap instances. | ||
| 9648 | - [9ab37451f8f0] | ||
| 9649 | - | ||
| 9650 | -2006-02-13 phil <phil> | ||
| 9651 | - | ||
| 9652 | - * doc/sipref.txt, lib/siputils.py: | ||
| 9653 | - Fixes to PythonModuleMakefile. | ||
| 9654 | - [684799b183d5] | ||
| 9655 | - | ||
| 9656 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/qtlib.c, | ||
| 9657 | - siplib/sip.h, siplib/sipint.h, siplib/siplib.c: | ||
| 9658 | - Renamed the new sipCheckConvert functions to sipForceConvert | ||
| 9659 | - functions. Added the 'B', 'C' and 'D' format character to | ||
| 9660 | - sipBuildResult() and sipCallMethod(). Removed the 'L' format | ||
| 9661 | - character from sipBuildResult() and sipCallMethod(). Added | ||
| 9662 | - sipConvertFromInstance(), sipConvertFromNewInstance() and | ||
| 9663 | - sipConvertFromMappedType(). | ||
| 9664 | - [f6324b7c7ab1] | ||
| 9665 | - | ||
| 9666 | -2006-02-12 phil <phil> | ||
| 9667 | - | ||
| 9668 | - * NEWS, TODO, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 9669 | - siplib/sip.h, siplib/siplib.c, siplib/threads.c: | ||
| 9670 | - Overhauled how %ConvertToTypeCode should be written - detail below. | ||
| 9671 | - (Still need to overhaul %ConvertFromTypeCode.) Added | ||
| 9672 | - sipCanConvertToInstance(), sipConvertToInstance(), | ||
| 9673 | - sipCheckConvertToInstance() and sipReleaseInstance(). Added | ||
| 9674 | - sipCanConvertToMappedType(), sipConvertToMappedType(), | ||
| 9675 | - sipCheckConvertToMappedType(), sipReleaseMappedType() and | ||
| 9676 | - sipFindMappedType(). Changed the order of the arguments to | ||
| 9677 | - sipConvertToCppTransfer(). Added the 'C' and 'D' format characters | ||
| 9678 | - to sipParseResult(). Changed the meaning of the 'J' and 'M' format | ||
| 9679 | - characters in sipParseArgs(). Removed the sipConvertTo_*() | ||
| 9680 | - functions. Removed sipConvertToCppTransfer(). Took all of the None | ||
| 9681 | - handling out of %ConvertToTypeCode. | ||
| 9682 | - [7122e755a332] | ||
| 9683 | - | ||
| 9684 | -2006-01-28 phil <phil> | ||
| 9685 | - | ||
| 9686 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 9687 | - Fixed the support for __hash__. | ||
| 9688 | - [f57b38d29839] | ||
| 9689 | - | ||
| 9690 | -2006-01-26 phil <phil> | ||
| 9691 | - | ||
| 9692 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/lexer.l, | ||
| 9693 | - sipgen/parser.y, sipgen/sip.h, siplib/qtlib.c, siplib/sip.h, | ||
| 9694 | - siplib/sipint.h: | ||
| 9695 | - Added %SIPNoEmitters to stop SIP generating signal emitters for a | ||
| 9696 | - module and any module that imports it. Changed the signal/slot | ||
| 9697 | - support so that Python signals can be implemented with proxies. | ||
| 9698 | - [ebc0499b0e99] | ||
| 9699 | - | ||
| 9700 | -2006-01-20 phil <phil> | ||
| 9701 | - | ||
| 9702 | - * sipgen/gencode.c, siplib/sip.h, siplib/siplib.c: | ||
| 9703 | - Fixed a bug in sipTransferTo() that caused some objects to be | ||
| 9704 | - garbage collected while ownership was being transferred. Check that | ||
| 9705 | - abstract methods are only ever called as bound methods. | ||
| 9706 | - [7f66705a98e7] | ||
| 9707 | - | ||
| 9708 | -2006-01-19 phil <phil> | ||
| 9709 | - | ||
| 9710 | - * doc/sipref.txt, siplib/siplib.c: | ||
| 9711 | - Updated the documentation for sipConnectRx(). The __dict__ attribute | ||
| 9712 | - of a wrapper type now returns a regular dictionary rather than a | ||
| 9713 | - proxy (because PyDict_Next() doesn't iterate over proxies). | ||
| 9714 | - [b7b57265c54c] | ||
| 9715 | - | ||
| 9716 | -2006-01-14 phil <phil> | ||
| 9717 | - | ||
| 9718 | - * siplib/siplib.c: | ||
| 9719 | - Fixed the searching of signal types. | ||
| 9720 | - [d24efdbe5952] | ||
| 9721 | - | ||
| 9722 | -2006-01-11 phil <phil> | ||
| 9723 | - | ||
| 9724 | - * siplib/siplib.c: | ||
| 9725 | - The previous fix wasn't quite so trivial. | ||
| 9726 | - [a598de0cf451] | ||
| 9727 | - | ||
| 9728 | - * siplib/siplib.c: | ||
| 9729 | - Added missing function prototype. | ||
| 9730 | - [5d6320a5e0a1] | ||
| 9731 | - | ||
| 9732 | -2006-01-10 phil <phil> | ||
| 9733 | - | ||
| 9734 | - * NEWS, doc/sipref.txt, lib/siputils.py, sipgen/gencode.c, | ||
| 9735 | - sipgen/parser.y, sipgen/sip.h, sipgen/transform.c, siplib/sip.h, | ||
| 9736 | - siplib/siplib.c: | ||
| 9737 | - Fixed code generation bugs in new virtual handling code that was | ||
| 9738 | - triggered by PyKDE. Build system changes for MinGW. Added support | ||
| 9739 | - for constrained bools. Generate code to wrap static enum instances | ||
| 9740 | - with inline code rather than through tables (as is done with class | ||
| 9741 | - instances) for Windows. | ||
| 9742 | - [48a76f76e9b8] | ||
| 9743 | - | ||
| 9744 | -2006-01-09 phil <phil> | ||
| 9745 | - | ||
| 9746 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y: | ||
| 9747 | - Changed the signatures of sipForceConvertTo_*() and | ||
| 9748 | - sipConvertFrom_*() back to their SIP 4.3 versions, deprecated them, | ||
| 9749 | - and introduced the Transfer variants. | ||
| 9750 | - [422ea1e3fee9] | ||
| 9751 | - | ||
| 9752 | - * NEWS, doc/sipref.txt, lib/configure.py, lib/siputils.py: | ||
| 9753 | - More build system changes for Windows. Added the platform macro to | ||
| 9754 | - sipconfig.py. The default Windows platform Python 2.4 and later is | ||
| 9755 | - now win32-msvc.net rather than win32-msvc. | ||
| 9756 | - [e9d83bea0e38] | ||
| 9757 | - | ||
| 9758 | -2006-01-08 phil <phil> | ||
| 9759 | - | ||
| 9760 | - * lib/configure.py, lib/siputils.py: | ||
| 9761 | - Various build system changes needed by PyQt4 on Windows. | ||
| 9762 | - [dcbf196c14bb] | ||
| 9763 | - | ||
| 9764 | -2006-01-07 phil <phil> | ||
| 9765 | - | ||
| 9766 | - * lib/LICENSE.short, lib/configure.py, lib/sipdistutils.py, | ||
| 9767 | - lib/siputils.py, specs/aix-g++, specs/aix-g++-64, specs/aix-xlc, | ||
| 9768 | - specs/aix-xlc-64, specs/darwin-g++, specs/freebsd-g++, | ||
| 9769 | - specs/freebsd-g++34, specs/freebsd-g++40, specs/freebsd-icc, specs | ||
| 9770 | - /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-g++, | ||
| 9771 | - specs/hpux-g++-64, specs/hpuxi-acc, specs/hpuxi-acc-32, specs/hpuxi- | ||
| 9772 | - acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64, | ||
| 9773 | - specs/irix-g++, specs/irix-g++-64, specs/linux-cxx, specs/linux- | ||
| 9774 | - ecc-64, specs/linux-g++, specs/linux-g++-32, specs/linux-g++-64, | ||
| 9775 | - specs/linux-icc, specs/linux-kcc, specs/linux-kylix, specs/linux- | ||
| 9776 | - pgcc, specs/lynxos-g++, specs/macx-g++, specs/macx-mwerks, specs | ||
| 9777 | - /macx-pbuilder, specs/macx-xcode, specs/macx-xlc, specs/netbsd-g++, | ||
| 9778 | - specs/openbsd-g++, specs/qnx-g++, specs/sco-cc, specs/sco-g++, specs | ||
| 9779 | - /solaris-cc, specs/solaris-cc-64, specs/solaris-g++, | ||
| 9780 | - specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs | ||
| 9781 | - /unixware-cc, specs/unixware-g++, specs/win32-borland, | ||
| 9782 | - specs/win32-g++, specs/win32-icc, specs/win32-msvc, | ||
| 9783 | - specs/win32-msvc.net, specs/win32-msvc2005: | ||
| 9784 | - Updated the spec files from Qt v4.1. Added support for the $$() | ||
| 9785 | - method of accessing environment variables in qmake spec files. | ||
| 9786 | - sipdistutils.py fix from Giovanni. Changes to the build system for | ||
| 9787 | - the slightly different macro names on Windows. | ||
| 9788 | - [5030a64bab73] | ||
| 9789 | - | ||
| 9790 | -2006-01-04 phil <phil> | ||
| 9791 | - | ||
| 9792 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 9793 | - sipgen/transform.c: | ||
| 9794 | - Added support for the /NoDerived/ annotation. | ||
| 9795 | - [496e87667614] | ||
| 9796 | - | ||
| 9797 | -2006-01-03 phil <phil> | ||
| 9798 | - | ||
| 9799 | - * siplib/siplib.c: | ||
| 9800 | - Fixed bug in handling of delayed dtors. | ||
| 9801 | - [9ad8378e1bbd] | ||
| 9802 | - | ||
| 9803 | -2006-01-02 phil <phil> | ||
| 9804 | - | ||
| 9805 | - * sipgen/transform.c: | ||
| 9806 | - Fixed another bug with the new handling of virtual function calls | ||
| 9807 | - (where re-implementations from another module weren't picked up). | ||
| 9808 | - [b4a5f97c4acd] | ||
| 9809 | - | ||
| 9810 | -2005-12-30 phil <phil> | ||
| 9811 | - | ||
| 9812 | - * sipgen/gencode.c, sipgen/sip.h, sipgen/transform.c: | ||
| 9813 | - Fixed bugs with the new handling of virtuals that caused recursions. | ||
| 9814 | - [e15093e5d260] | ||
| 9815 | - | ||
| 9816 | -2005-12-29 phil <phil> | ||
| 9817 | - | ||
| 9818 | - * lib/siputils.py: | ||
| 9819 | - Taught the build system about the QtAssistantClient library. | ||
| 9820 | - [ef92ee748d4c] | ||
| 9821 | - | ||
| 9822 | - * sipgen/gencode.c: | ||
| 9823 | - Fixed bugs related to global operators with an enum as the first | ||
| 9824 | - argument. | ||
| 9825 | - [2379d714c099] | ||
| 9826 | - | ||
| 9827 | -2005-12-28 phil <phil> | ||
| 9828 | - | ||
| 9829 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, siplib/sip.h, | ||
| 9830 | - siplib/siplib.c: | ||
| 9831 | - Added sipConvertToCppTransfer(). Changed the signatures for the type | ||
| 9832 | - convertor functions. Added the 'L' format character to | ||
| 9833 | - sipBuildResult() and sipCallMethod(). | ||
| 9834 | - [2bf4d76eefe2] | ||
| 9835 | - | ||
| 9836 | -2005-12-27 phil <phil> | ||
| 9837 | - | ||
| 9838 | - * NEWS, doc/sipref.txt, sipgen/gencode.c, sipgen/parser.y, | ||
| 9839 | - sipgen/sip.h, sipgen/transform.c, siplib/sip.h, siplib/siplib.c: | ||
| 9840 | - Added support for the /DelayDtor/ class annotation to control the | ||
| 9841 | - order of dtor calls when the interpreter exits. Fixed bugs with cast | ||
| 9842 | - operators. | ||
| 9843 | - [5a03f38f92c7] | ||
| 9844 | - | ||
| 9845 | -2005-12-26 phil <phil> | ||
| 9846 | - | ||
| 9847 | - * doc/sipref.txt, sipgen/gencode.c: | ||
| 9848 | - Fixed a documentation bug. Slightly changed the declaration of the | ||
| 9849 | - sipProtectVirt wrappers. | ||
| 9850 | - [bc65dd63ac7d] | ||
| 9851 | - | ||
| 9852 | -2005-12-24 phil <phil> | ||
| 9853 | - | ||
| 9854 | - * NEWS, doc/sipref.txt, sipgen/gencode.c: | ||
| 9855 | - Class methods called as class.method(self, ...) is now equivalent to | ||
| 9856 | - this->class::method(...). Class methods called as self.method(...) | ||
| 9857 | - is now equivalent to this->method(...). Introduced sipSelfWasArg and | ||
| 9858 | - the sipProtectVirt wrappers in order to support the above. | ||
| 9859 | - [d49dc239a2d7] | ||
| 9860 | - | ||
| 9861 | -2005-12-22 phil <phil> | ||
| 9862 | - | ||
| 9863 | - * siplib/qtlib.c, siplib/siplib.c: | ||
| 9864 | - SIP no longer complains if a slot to be disconnected isn't actually | ||
| 9865 | - connected (and hopes Qt will then behave appropriately). | ||
| 9866 | - [7e93c92ec9b9] | ||
| 9867 | - | ||
| 9868 | -2005-12-19 phil <phil> | ||
| 9869 | - | ||
| 9870 | - * sipgen/parser.y: | ||
| 9871 | - Backed out the recent change that ignored abstract specifications if | ||
| 9872 | - the methods wasn't virtual. | ||
| 9873 | - [72f23df36c23] | ||
| 9874 | - | ||
| 9875 | - * doc/sipref.txt, lib/siputils.py: | ||
| 9876 | - Various changes to the build system to better support Qt v4. | ||
| 9877 | - [0a793291a2db] | ||
| 9878 | - | ||
| 9879 | -2005-12-18 phil <phil> | ||
| 9880 | - | ||
| 9881 | - * NEWS, doc/sipref.txt, lib/siputils.py: | ||
| 9882 | - Added the PythonModuleMakefile class and create_wrapper() function | ||
| 9883 | - to the build system. | ||
| 9884 | - [70cd55448b1c] | ||
| 9885 | - | ||
| 9886 | -2005-12-15 phil <phil> | ||
| 9887 | - | ||
| 9888 | - * .repoman, NEWS, build.py, doc/sipref.txt, sipgen/main.c, | ||
| 9889 | - siplib/qtlib.c, siplib/qtlib.cpp, siplib/sip.h: | ||
| 9890 | - Internally renamed qtlib.cpp to qtlib.c. Small changes to the | ||
| 9891 | - internal build system caused by the move to SVN. Removed SIP_BUILD | ||
| 9892 | - from sip.h. | ||
| 9893 | - [efe612146497] | ||
| 9894 | - | ||
| 9895 | -2005-12-14 phil <phil> | ||
| 9896 | - | ||
| 9897 | - * .repoman, NEWS, TODO, build.py, custom/custom.c, custom/customw.c, | ||
| 9898 | - custom/mkcustom.py, doc/default.css, doc/sipref.txt, lib/LICENSE, | ||
| 9899 | - lib/LICENSE.short, lib/README, lib/README.Fink, lib/README.HP-UX, | ||
| 9900 | - lib/THANKS, lib/configure.py, lib/sipdistutils.py, lib/siputils.py, | ||
| 9901 | - sipgen/gencode.c, sipgen/heap.c, sipgen/lexer.l, sipgen/main.c, | ||
| 9902 | - sipgen/parser.y, sipgen/sip.h, sipgen/sipgen.sbf, | ||
| 9903 | - sipgen/transform.c, siplib/bool.cpp, siplib/objmap.c, | ||
| 9904 | - siplib/qtlib.cpp, siplib/sip.h, siplib/sipint.h, siplib/siplib.c, | ||
| 9905 | - siplib/siplib.sbf, siplib/threads.c, specs/aix-g++, | ||
| 9906 | - specs/aix-g++-64, specs/aix-xlc, specs/aix-xlc-64, specs/bsdi-g++, | ||
| 9907 | - specs/cygwin-g++, specs/darwin-g++, specs/dgux-g++, | ||
| 9908 | - specs/freebsd-g++, specs/freebsd-g++34, specs/freebsd-icc, specs | ||
| 9909 | - /hpux-acc, specs/hpux-acc-64, specs/hpux-acc-o64, specs/hpux-cc, | ||
| 9910 | - specs/hpux-g++, specs/hpux-g++-64, specs/hpuxi-acc-32, specs/hpuxi- | ||
| 9911 | - acc-64, specs/hurd-g++, specs/irix-cc, specs/irix-cc-64, specs/irix- | ||
| 9912 | - cc-o32, specs/irix-g++, specs/linux-cxx, specs/linux-ecc-64, | ||
| 9913 | - specs/linux-g++, specs/linux-g++-64, specs/linux-icc, specs/linux- | ||
| 9914 | - kcc, specs/linux-kylix, specs/linux-pgcc, specs/lynxos-g++, | ||
| 9915 | - specs/macx-g++, specs/macx-mwerks, specs/macx-pbuilder, specs/macx- | ||
| 9916 | - xlc, specs/netbsd-g++, specs/openbsd-g++, specs/qnx-g++, specs | ||
| 9917 | - /reliant-cds, specs/reliant-cds-64, specs/sco-cc, specs/sco-g++, | ||
| 9918 | - specs/solaris-cc, specs/solaris-cc-64, specs/solaris-g++, | ||
| 9919 | - specs/solaris-g++-64, specs/tru64-cxx, specs/tru64-g++, specs | ||
| 9920 | - /unixware-cc, specs/unixware-g++, specs/win32-borland, | ||
| 9921 | - specs/win32-g++, specs/win32-icc, specs/win32-msvc, | ||
| 9922 | - specs/win32-msvc.net, specs/win32-msvc2005, specs/win32-watcom: | ||
| 9923 | - Initial import of sip from CVS | ||
| 9924 | - [1fd77e66a56d] | ||
| 9925 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py sip/configure.py | ||
| 9926 | --- ./sip-4.19.12.orig/configure.py 2018-07-05 05:55:19.000000000 -0400 | ||
| 9927 | +++ sip/configure.py 2018-09-18 18:12:23.643053242 -0400 | ||
| 9928 | @@ -30,8 +30,8 @@ | ||
| 9929 | |||
| 9930 | |||
| 9931 | # Initialise the globals. | ||
| 9932 | -sip_version = 0x04130c | ||
| 9933 | -sip_version_str = "4.19.12" | ||
| 9934 | +sip_version = 0x04ffff | ||
| 9935 | +sip_version_str = "4.255.255" | ||
| 9936 | py_version = sys.hexversion >> 8 | ||
| 9937 | py_platform = sys.platform | ||
| 9938 | plat_py_site_dir = None | ||
| 9939 | @@ -46,6 +46,7 @@ | ||
| 9940 | sip_inc_dir = '' | ||
| 9941 | sip_root_dir = '' | ||
| 9942 | sip_module_dir = '' | ||
| 9943 | +sip_module_dest_dir = '' | ||
| 9944 | sip_sip_dir = '' | ||
| 9945 | pyi_dir = '' | ||
| 9946 | sysroot = '' | ||
| 9947 | @@ -185,7 +186,7 @@ | ||
| 9948 | siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir) | ||
| 9949 | |||
| 9950 | if not opts.no_module: | ||
| 9951 | - siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dir)) | ||
| 9952 | + siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir)) | ||
| 9953 | |||
| 9954 | if opts.pyi: | ||
| 9955 | siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir) | ||
| 9956 | @@ -302,30 +303,35 @@ | ||
| 9957 | cfg.set_build_macros(macros) | ||
| 9958 | |||
| 9959 | all_installs = [] | ||
| 9960 | - installs = [] | ||
| 9961 | + top_installs = [] | ||
| 9962 | + gen_installs = [] | ||
| 9963 | subdirs = [] | ||
| 9964 | |||
| 9965 | if not opts.no_tools: | ||
| 9966 | subdirs.append('sipgen') | ||
| 9967 | - installs.append( | ||
| 9968 | + top_installs.append( | ||
| 9969 | (["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")], | ||
| 9970 | cfg.sip_root_dir)) | ||
| 9971 | + gen_installs.append( | ||
| 9972 | + (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) | ||
| 9973 | |||
| 9974 | if not opts.no_module: | ||
| 9975 | subdirs.append('siplib') | ||
| 9976 | |||
| 9977 | - all_installs += installs | ||
| 9978 | + all_installs.extend(top_installs) | ||
| 9979 | + all_installs.extend(gen_installs) | ||
| 9980 | |||
| 9981 | # The command to run to generate the dist-info directory. | ||
| 9982 | mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)), | ||
| 9983 | 'mk_distinfo.py') | ||
| 9984 | - distinfo_dir = os.path.join(cfg.sip_root_dir, | ||
| 9985 | + distinfo_dir = os.path.join(cfg.sip_module_dir, | ||
| 9986 | '%s-%s.dist-info' % (sip_module_name.replace('.', '_'), | ||
| 9987 | sip_version_str)) | ||
| 9988 | - run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % (sys.executable, | ||
| 9989 | - mk_distinfo, distinfo_dir) | ||
| 9990 | |||
| 9991 | if opts.use_qmake: | ||
| 9992 | + run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % ( | ||
| 9993 | + sys.executable, mk_distinfo, distinfo_dir) | ||
| 9994 | + | ||
| 9995 | sipconfig.inform("Creating top level .pro file...") | ||
| 9996 | |||
| 9997 | pro = open("sip.pro", "w") | ||
| 9998 | @@ -333,8 +339,9 @@ | ||
| 9999 | pro.write("TEMPLATE = subdirs\n") | ||
| 10000 | pro.write("SUBDIRS = %s\n" % " ".join(subdirs)) | ||
| 10001 | |||
| 10002 | - if installs: | ||
| 10003 | - files, path = installs | ||
| 10004 | + if top_installs: | ||
| 10005 | + # There will only be one element. | ||
| 10006 | + files, path = top_installs[0] | ||
| 10007 | pro.write("\n") | ||
| 10008 | pro.write("build_system.files = %s\n" % " ".join(files)) | ||
| 10009 | pro.write("build_system.path = %s\n" % quote(path)) | ||
| 10010 | @@ -343,22 +350,25 @@ | ||
| 10011 | if opts.distinfo: | ||
| 10012 | pro.write("\n") | ||
| 10013 | pro.write("distinfo.extra = %s\n" % run_mk_distinfo) | ||
| 10014 | - pro.write("distinfo.path = %s\n" % quote(cfg.sip_root_dir)) | ||
| 10015 | + pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir)) | ||
| 10016 | pro.write("INSTALLS += distinfo\n") | ||
| 10017 | |||
| 10018 | pro.close() | ||
| 10019 | else: | ||
| 10020 | + run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % ( | ||
| 10021 | + sys.executable, mk_distinfo, distinfo_dir) | ||
| 10022 | + | ||
| 10023 | sipconfig.inform("Creating top level Makefile...") | ||
| 10024 | |||
| 10025 | # Note that mk_distinfo.py won't exist if we are building from the | ||
| 10026 | # repository. | ||
| 10027 | if opts.distinfo and os.path.isfile(mk_distinfo): | ||
| 10028 | - installs.append((run_mk_distinfo, None)) | ||
| 10029 | + top_installs.append((run_mk_distinfo, None)) | ||
| 10030 | |||
| 10031 | sipconfig.ParentMakefile( | ||
| 10032 | configuration=cfg, | ||
| 10033 | subdirs=subdirs, | ||
| 10034 | - installs=installs | ||
| 10035 | + installs=top_installs | ||
| 10036 | ).generate() | ||
| 10037 | |||
| 10038 | if opts.use_qmake: | ||
| 10039 | @@ -390,6 +400,14 @@ | ||
| 10040 | pro.write("HEADERS = %s\n" % " ".join( | ||
| 10041 | [qmake_quote(h) for h in headers])) | ||
| 10042 | |||
| 10043 | + if gen_installs: | ||
| 10044 | + # There will only be one element. | ||
| 10045 | + files, path = gen_installs[0] | ||
| 10046 | + pro.write("\n") | ||
| 10047 | + pro.write("sip_h.files = %s\n" % " ".join(files)) | ||
| 10048 | + pro.write("sip_h.path = %s\n" % quote(path)) | ||
| 10049 | + pro.write("INSTALLS += sip_h\n") | ||
| 10050 | + | ||
| 10051 | pro.close() | ||
| 10052 | else: | ||
| 10053 | sipconfig.inform("Creating sip code generator Makefile...") | ||
| 10054 | @@ -399,6 +417,7 @@ | ||
| 10055 | build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"), | ||
| 10056 | dir="sipgen", | ||
| 10057 | install_dir=os.path.dirname(cfg.sip_bin), | ||
| 10058 | + installs=gen_installs, | ||
| 10059 | console=1, | ||
| 10060 | warnings=1, | ||
| 10061 | universal=opts.universal, | ||
| 10062 | @@ -406,7 +425,7 @@ | ||
| 10063 | deployment_target=opts.deployment_target | ||
| 10064 | ).generate() | ||
| 10065 | |||
| 10066 | - # The code generator installs. | ||
| 10067 | + # The implied code generator installs. | ||
| 10068 | if not opts.no_tools: | ||
| 10069 | sip_dir, sip_exe = os.path.split(cfg.sip_bin) | ||
| 10070 | if sys.platform == 'win32': | ||
| 10071 | @@ -417,18 +436,18 @@ | ||
| 10072 | # The module installs. | ||
| 10073 | module_installs=[] | ||
| 10074 | |||
| 10075 | - if not opts.no_tools: | ||
| 10076 | - module_installs.append( | ||
| 10077 | - (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) | ||
| 10078 | - | ||
| 10079 | if opts.pyi: | ||
| 10080 | module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir)) | ||
| 10081 | |||
| 10082 | all_installs.extend(module_installs) | ||
| 10083 | |||
| 10084 | if not opts.no_module: | ||
| 10085 | - mod_ext = '.pyd' if sys.platform == 'win32' else '.so' | ||
| 10086 | - all_installs.append(('sip' + mod_ext, cfg.sip_module_dir)) | ||
| 10087 | + if sys.platform == 'win32': | ||
| 10088 | + mod = 'sip.lib' if opts.static else 'sip.pyd' | ||
| 10089 | + else: | ||
| 10090 | + mod = 'libsip.a' if opts.static else 'sip.so' | ||
| 10091 | + | ||
| 10092 | + all_installs.append((mod, sip_module_dest_dir)) | ||
| 10093 | |||
| 10094 | if opts.use_qmake: | ||
| 10095 | sipconfig.inform("Creating sip module .pro file...") | ||
| 10096 | @@ -453,7 +472,11 @@ | ||
| 10097 | |||
| 10098 | if sip_module_name != 'sip': | ||
| 10099 | pro.write("\n") | ||
| 10100 | - pro.write('DEFINES += SIP_MODULE_NAME=\\\\\\"%s\\\\\\"\n' % sip_module_name) | ||
| 10101 | + pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name) | ||
| 10102 | + | ||
| 10103 | + base_name = sip_module_name.split('.')[-1] | ||
| 10104 | + if base_name != 'sip': | ||
| 10105 | + pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name) | ||
| 10106 | |||
| 10107 | if not opts.static: | ||
| 10108 | # These only need to be correct for Windows. | ||
| 10109 | @@ -485,7 +508,7 @@ | ||
| 10110 | """ % (debug_suffix, link_lib_dir)) | ||
| 10111 | |||
| 10112 | pro.write("\n") | ||
| 10113 | - pro.write("target.path = %s\n" % cfg.sip_module_dir) | ||
| 10114 | + pro.write("target.path = %s\n" % sip_module_dest_dir) | ||
| 10115 | pro.write("INSTALLS += target\n") | ||
| 10116 | |||
| 10117 | if opts.pyi: | ||
| 10118 | @@ -494,12 +517,6 @@ | ||
| 10119 | pro.write("sip_pyi.path = %s\n" % pyi_dir) | ||
| 10120 | pro.write("INSTALLS += sip_pyi\n") | ||
| 10121 | |||
| 10122 | - if not opts.no_tools: | ||
| 10123 | - pro.write("\n") | ||
| 10124 | - pro.write("sip_h.files = sip.h\n") | ||
| 10125 | - pro.write("sip_h.path = %s\n" % cfg.sip_inc_dir) | ||
| 10126 | - pro.write("INSTALLS += sip_h\n") | ||
| 10127 | - | ||
| 10128 | c_sources = get_sources("siplib", "*.c") | ||
| 10129 | cpp_sources = get_sources("siplib", "*.cpp") | ||
| 10130 | pro.write("\n") | ||
| 10131 | @@ -521,7 +538,7 @@ | ||
| 10132 | configuration=cfg, | ||
| 10133 | build_file=os.path.join(src_dir, "siplib", "siplib.sbf"), | ||
| 10134 | dir="siplib", | ||
| 10135 | - install_dir=cfg.sip_module_dir, | ||
| 10136 | + install_dir=sip_module_dest_dir, | ||
| 10137 | installs=module_installs, | ||
| 10138 | console=1, | ||
| 10139 | warnings=1, | ||
| 10140 | @@ -533,8 +550,11 @@ | ||
| 10141 | ) | ||
| 10142 | |||
| 10143 | if sip_module_name != 'sip': | ||
| 10144 | - makefile.DEFINES.append( | ||
| 10145 | - 'SIP_MODULE_NAME=\\"%s\\"' % sip_module_name) | ||
| 10146 | + makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name) | ||
| 10147 | + | ||
| 10148 | + base_name = sip_module_name.split('.')[-1] | ||
| 10149 | + if base_name != 'sip': | ||
| 10150 | + makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name) | ||
| 10151 | |||
| 10152 | if src_dir != build_dir: | ||
| 10153 | src_siplib_dir = os.path.join(src_dir, "siplib") | ||
| 10154 | @@ -908,7 +928,7 @@ | ||
| 10155 | global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir | ||
| 10156 | global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir | ||
| 10157 | global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir | ||
| 10158 | - global pyi_dir | ||
| 10159 | + global sip_module_dest_dir, sip_module_name, pyi_dir | ||
| 10160 | |||
| 10161 | # Set defaults. | ||
| 10162 | sip_bin_dir = plat_bin_dir | ||
| 10163 | @@ -941,7 +961,9 @@ | ||
| 10164 | if opts.destdir is not None: | ||
| 10165 | sip_root_dir = opts.destdir | ||
| 10166 | |||
| 10167 | - global sip_module_name | ||
| 10168 | + # The module directory might have been set in a configuration file. | ||
| 10169 | + if not sip_module_dir: | ||
| 10170 | + sip_module_dir = sip_root_dir | ||
| 10171 | |||
| 10172 | sip_module_name = opts.sip_module | ||
| 10173 | |||
| 10174 | @@ -949,10 +971,10 @@ | ||
| 10175 | |||
| 10176 | if len(module_path) > 1: | ||
| 10177 | del module_path[-1] | ||
| 10178 | - module_path.insert(0, sip_root_dir) | ||
| 10179 | - sip_module_dir = os.path.join(*module_path) | ||
| 10180 | + module_path.insert(0, sip_module_dir) | ||
| 10181 | + sip_module_dest_dir = os.path.join(*module_path) | ||
| 10182 | else: | ||
| 10183 | - sip_module_dir = sip_root_dir | ||
| 10184 | + sip_module_dest_dir = sip_module_dir | ||
| 10185 | |||
| 10186 | # Override from the command line. | ||
| 10187 | if opts.platform is not None: | ||
| 10188 | @@ -970,7 +992,7 @@ | ||
| 10189 | if opts.pyidir is not None: | ||
| 10190 | pyi_dir = opts.pyidir | ||
| 10191 | else: | ||
| 10192 | - pyi_dir = sip_module_dir | ||
| 10193 | + pyi_dir = sip_module_dest_dir | ||
| 10194 | |||
| 10195 | # Get the platform specific macros for building. | ||
| 10196 | macros = siputils.parse_build_macros( | ||
| 10197 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/configure.py.in sip/configure.py.in | ||
| 10198 | --- ./sip-4.19.12.orig/configure.py.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 10199 | +++ sip/configure.py.in 2018-09-18 18:00:57.923048048 -0400 | ||
| 10200 | @@ -0,0 +1,1031 @@ | ||
| 10201 | +# This script handles the SIP configuration and generates the Makefiles. | ||
| 10202 | +# | ||
| 10203 | +# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 10204 | +# | ||
| 10205 | +# This file is part of SIP. | ||
| 10206 | +# | ||
| 10207 | +# This copy of SIP is licensed for use under the terms of the SIP License | ||
| 10208 | +# Agreement. See the file LICENSE for more details. | ||
| 10209 | +# | ||
| 10210 | +# This copy of SIP may also used under the terms of the GNU General Public | ||
| 10211 | +# License v2 or v3 as published by the Free Software Foundation which can be | ||
| 10212 | +# found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. | ||
| 10213 | +# | ||
| 10214 | +# SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 10215 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 10216 | + | ||
| 10217 | + | ||
| 10218 | +import sys | ||
| 10219 | +import os | ||
| 10220 | +import glob | ||
| 10221 | +import optparse | ||
| 10222 | +from distutils import sysconfig | ||
| 10223 | + | ||
| 10224 | +try: | ||
| 10225 | + from importlib import invalidate_caches | ||
| 10226 | +except ImportError: | ||
| 10227 | + invalidate_caches = lambda: None | ||
| 10228 | + | ||
| 10229 | +import siputils | ||
| 10230 | + | ||
| 10231 | + | ||
| 10232 | +# Initialise the globals. | ||
| 10233 | +sip_version = 0x@RM_HEXVERSION@ | ||
| 10234 | +sip_version_str = "@RM_RELEASE@" | ||
| 10235 | +py_version = sys.hexversion >> 8 | ||
| 10236 | +py_platform = sys.platform | ||
| 10237 | +plat_py_site_dir = None | ||
| 10238 | +plat_py_inc_dir = None | ||
| 10239 | +plat_py_venv_inc_dir = None | ||
| 10240 | +plat_py_conf_inc_dir = None | ||
| 10241 | +plat_py_lib_dir = None | ||
| 10242 | +plat_sip_dir = None | ||
| 10243 | +plat_bin_dir = None | ||
| 10244 | +platform_specs = [] | ||
| 10245 | +sip_bin_dir = '' | ||
| 10246 | +sip_inc_dir = '' | ||
| 10247 | +sip_root_dir = '' | ||
| 10248 | +sip_module_dir = '' | ||
| 10249 | +sip_module_dest_dir = '' | ||
| 10250 | +sip_sip_dir = '' | ||
| 10251 | +pyi_dir = '' | ||
| 10252 | +sysroot = '' | ||
| 10253 | +src_dir = os.path.dirname(os.path.abspath(__file__)) | ||
| 10254 | +sip_module_name = None | ||
| 10255 | +build_platform = None | ||
| 10256 | + | ||
| 10257 | +# Constants. | ||
| 10258 | +DEFAULT_MACOSX_ARCH = 'i386 ppc' | ||
| 10259 | +MACOSX_SDK_DIRS = ('/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs', '/Developer/SDKs') | ||
| 10260 | + | ||
| 10261 | +# The names of build macros extracted from the platform specific configuration | ||
| 10262 | +# files. | ||
| 10263 | +build_macro_names = [ | ||
| 10264 | + "DEFINES", "CONFIG", | ||
| 10265 | + "CC", | ||
| 10266 | + "CFLAGS", | ||
| 10267 | + "CFLAGS_RELEASE", "CFLAGS_DEBUG", | ||
| 10268 | + "CFLAGS_CONSOLE", "CFLAGS_SHLIB", "CFLAGS_APP", "CFLAGS_THREAD", | ||
| 10269 | + "CFLAGS_MT", "CFLAGS_MT_DBG", "CFLAGS_MT_DLL", "CFLAGS_MT_DLLDBG", | ||
| 10270 | + "CFLAGS_EXCEPTIONS_ON", "CFLAGS_EXCEPTIONS_OFF", | ||
| 10271 | + "CFLAGS_RTTI_ON", "CFLAGS_RTTI_OFF", | ||
| 10272 | + "CFLAGS_STL_ON", "CFLAGS_STL_OFF", | ||
| 10273 | + "CFLAGS_WARN_ON", "CFLAGS_WARN_OFF", | ||
| 10274 | + "CHK_DIR_EXISTS", "COPY", | ||
| 10275 | + "CXX", | ||
| 10276 | + "CXXFLAGS", | ||
| 10277 | + "CXXFLAGS_RELEASE", "CXXFLAGS_DEBUG", | ||
| 10278 | + "CXXFLAGS_CONSOLE", "CXXFLAGS_SHLIB", "CXXFLAGS_APP", "CXXFLAGS_THREAD", | ||
| 10279 | + "CXXFLAGS_MT", "CXXFLAGS_MT_DBG", "CXXFLAGS_MT_DLL", "CXXFLAGS_MT_DLLDBG", | ||
| 10280 | + "CXXFLAGS_EXCEPTIONS_ON", "CXXFLAGS_EXCEPTIONS_OFF", | ||
| 10281 | + "CXXFLAGS_RTTI_ON", "CXXFLAGS_RTTI_OFF", | ||
| 10282 | + "CXXFLAGS_STL_ON", "CXXFLAGS_STL_OFF", | ||
| 10283 | + "CXXFLAGS_WARN_ON", "CXXFLAGS_WARN_OFF", | ||
| 10284 | + "DEL_FILE", | ||
| 10285 | + "EXTENSION_SHLIB", "EXTENSION_PLUGIN", | ||
| 10286 | + "INCDIR", "INCDIR_X11", "INCDIR_OPENGL", | ||
| 10287 | + "LIBS_CORE", "LIBS_GUI", "LIBS_NETWORK", "LIBS_OPENGL", "LIBS_WEBKIT", | ||
| 10288 | + "LINK", "LINK_SHLIB", "AIX_SHLIB", "LINK_SHLIB_CMD", | ||
| 10289 | + "LFLAGS", "LFLAGS_CONSOLE", "LFLAGS_CONSOLE_DLL", "LFLAGS_DEBUG", | ||
| 10290 | + "LFLAGS_DLL", | ||
| 10291 | + "LFLAGS_PLUGIN", "LFLAGS_RELEASE", "LFLAGS_SHLIB", "LFLAGS_SONAME", | ||
| 10292 | + "LFLAGS_THREAD", "LFLAGS_WINDOWS", "LFLAGS_WINDOWS_DLL", "LFLAGS_OPENGL", | ||
| 10293 | + "LIBDIR", "LIBDIR_X11", "LIBDIR_OPENGL", | ||
| 10294 | + "LIBS", "LIBS_CONSOLE", "LIBS_RT", | ||
| 10295 | + "LIBS_RTMT", "LIBS_THREAD", "LIBS_WINDOWS", "LIBS_X11", | ||
| 10296 | + "MAKEFILE_GENERATOR", | ||
| 10297 | + "MKDIR", | ||
| 10298 | + "RPATH", "LFLAGS_RPATH", | ||
| 10299 | + "AR", "RANLIB", "LIB", "STRIP" | ||
| 10300 | +] | ||
| 10301 | + | ||
| 10302 | + | ||
| 10303 | +def show_platforms(): | ||
| 10304 | + """Display the different platform/compilers. | ||
| 10305 | + """ | ||
| 10306 | + sys.stdout.write(""" | ||
| 10307 | +The following platform/compiler configurations are supported: | ||
| 10308 | + | ||
| 10309 | +""") | ||
| 10310 | + | ||
| 10311 | + platform_specs.sort() | ||
| 10312 | + sys.stdout.write(siputils.format(", ".join(platform_specs), leftmargin=2)) | ||
| 10313 | + sys.stdout.write("\n\n") | ||
| 10314 | + | ||
| 10315 | + | ||
| 10316 | +def show_macros(): | ||
| 10317 | + """Display the different build macros. | ||
| 10318 | + """ | ||
| 10319 | + sys.stdout.write(""" | ||
| 10320 | +The following options may be used to adjust the compiler configuration: | ||
| 10321 | + | ||
| 10322 | +""") | ||
| 10323 | + | ||
| 10324 | + build_macro_names.sort() | ||
| 10325 | + sys.stdout.write(siputils.format(", ".join(build_macro_names), leftmargin=2)) | ||
| 10326 | + sys.stdout.write("\n\n") | ||
| 10327 | + | ||
| 10328 | + | ||
| 10329 | +def set_build_platform(): | ||
| 10330 | + """ Initialise the build platform. """ | ||
| 10331 | + | ||
| 10332 | + global build_platform | ||
| 10333 | + | ||
| 10334 | + # Set the platform specific default specification. | ||
| 10335 | + platdefaults = { | ||
| 10336 | + "aix": "aix-xlc", | ||
| 10337 | + "bsd": "bsdi-g++", | ||
| 10338 | + "cygwin": "cygwin-g++", | ||
| 10339 | + "darwin": "macx-g++", | ||
| 10340 | + "dgux": "dgux-g++", | ||
| 10341 | + "freebsd": "freebsd-g++", | ||
| 10342 | + "gnu": "hurd-g++", | ||
| 10343 | + "hp-ux": "hpux-acc", | ||
| 10344 | + "irix": "irix-cc", | ||
| 10345 | + "linux": "linux-g++", | ||
| 10346 | + "lynxos": "lynxos-g++", | ||
| 10347 | + "netbsd": "netbsd-g++", | ||
| 10348 | + "openbsd": "openbsd-g++", | ||
| 10349 | + "openunix": "unixware-cc", | ||
| 10350 | + "osf1": "tru64-cxx", | ||
| 10351 | + "qnx": "qnx-g++", | ||
| 10352 | + "reliantunix": "reliant-cds", | ||
| 10353 | + "sco_sv": "sco-cc", | ||
| 10354 | + "sinix": "reliant-cds", | ||
| 10355 | + "sunos5": "solaris-cc", | ||
| 10356 | + "ultrix": "ultrix-g++", | ||
| 10357 | + "unix_sv": "unixware-g++", | ||
| 10358 | + "unixware": "unixware-cc" | ||
| 10359 | + } | ||
| 10360 | + | ||
| 10361 | + build_platform = "none" | ||
| 10362 | + | ||
| 10363 | + if py_platform == "win32": | ||
| 10364 | + if py_version >= 0x030500: | ||
| 10365 | + build_platform = "win32-msvc2015" | ||
| 10366 | + elif py_version >= 0x030300: | ||
| 10367 | + build_platform = "win32-msvc2010" | ||
| 10368 | + elif py_version >= 0x020600: | ||
| 10369 | + build_platform = "win32-msvc2008" | ||
| 10370 | + elif py_version >= 0x020400: | ||
| 10371 | + build_platform = "win32-msvc.net" | ||
| 10372 | + else: | ||
| 10373 | + build_platform = "win32-msvc" | ||
| 10374 | + else: | ||
| 10375 | + for pd in list(platdefaults.keys()): | ||
| 10376 | + if py_platform[:len(pd)] == pd: | ||
| 10377 | + build_platform = platdefaults[pd] | ||
| 10378 | + break | ||
| 10379 | + | ||
| 10380 | + | ||
| 10381 | +def inform_user(): | ||
| 10382 | + """ Tell the user the option values that are going to be used. """ | ||
| 10383 | + | ||
| 10384 | + if not opts.no_tools: | ||
| 10385 | + siputils.inform("The SIP code generator will be installed in %s." % sip_bin_dir) | ||
| 10386 | + siputils.inform("The sip.h header file will be installed in %s." % sip_inc_dir) | ||
| 10387 | + | ||
| 10388 | + if not opts.no_module: | ||
| 10389 | + siputils.inform("The %s module will be installed in %s." % (sip_module_name, sip_module_dest_dir)) | ||
| 10390 | + | ||
| 10391 | + if opts.pyi: | ||
| 10392 | + siputils.inform("The sip.pyi stub file will be installed in %s." % pyi_dir) | ||
| 10393 | + | ||
| 10394 | + if opts.static: | ||
| 10395 | + siputils.inform("The %s module will be built as a static library." % sip_module_name) | ||
| 10396 | + | ||
| 10397 | + siputils.inform("The default directory to install .sip files in is %s." % sip_sip_dir) | ||
| 10398 | + | ||
| 10399 | + if opts.use_qmake is None: | ||
| 10400 | + siputils.inform("The platform/compiler configuration is %s." % build_platform) | ||
| 10401 | + | ||
| 10402 | + if opts.arch: | ||
| 10403 | + siputils.inform("MacOS/X binaries will be created for %s." % (", ".join(opts.arch.split()))) | ||
| 10404 | + | ||
| 10405 | + if opts.universal: | ||
| 10406 | + siputils.inform("MacOS/X universal binaries will be created using %s." % opts.universal) | ||
| 10407 | + | ||
| 10408 | + if opts.deployment_target: | ||
| 10409 | + siputils.inform("MacOS/X deployment target is %s." % opts.deployment_target) | ||
| 10410 | + | ||
| 10411 | + | ||
| 10412 | +def set_platform_directories(): | ||
| 10413 | + """ Initialise the global variables relating to platform-specific | ||
| 10414 | + directories. | ||
| 10415 | + """ | ||
| 10416 | + global plat_py_site_dir, plat_py_inc_dir, plat_py_venv_inc_dir | ||
| 10417 | + global plat_py_conf_inc_dir, plat_bin_dir, plat_py_lib_dir, plat_sip_dir | ||
| 10418 | + | ||
| 10419 | + # We trust distutils for some stuff. | ||
| 10420 | + plat_py_site_dir = sysconfig.get_python_lib(plat_specific=1) | ||
| 10421 | + plat_py_inc_dir = sysconfig.get_python_inc() | ||
| 10422 | + plat_py_venv_inc_dir = sysconfig.get_python_inc(prefix=sys.prefix) | ||
| 10423 | + plat_py_conf_inc_dir = os.path.dirname(sysconfig.get_config_h_filename()) | ||
| 10424 | + | ||
| 10425 | + if sys.platform == "win32": | ||
| 10426 | + bin_dir = sys.exec_prefix | ||
| 10427 | + | ||
| 10428 | + try: | ||
| 10429 | + # Python v3.3 and later. | ||
| 10430 | + base_prefix = sys.base_prefix | ||
| 10431 | + | ||
| 10432 | + if sys.exec_prefix != sys.base_exec_prefix: | ||
| 10433 | + bin_dir += '\\Scripts' | ||
| 10434 | + | ||
| 10435 | + except AttributeError: | ||
| 10436 | + try: | ||
| 10437 | + # virtualenv for Python v2. | ||
| 10438 | + base_prefix = sys.real_prefix | ||
| 10439 | + bin_dir += '\\Scripts' | ||
| 10440 | + | ||
| 10441 | + except AttributeError: | ||
| 10442 | + # We can't detect the base prefix in Python v3 prior to v3.3. | ||
| 10443 | + base_prefix = sys.prefix | ||
| 10444 | + | ||
| 10445 | + plat_py_lib_dir = base_prefix + "\\libs" | ||
| 10446 | + plat_bin_dir = bin_dir | ||
| 10447 | + plat_sip_dir = sys.prefix + "\\sip" | ||
| 10448 | + else: | ||
| 10449 | + lib_dir = sysconfig.get_python_lib(plat_specific=1, standard_lib=1) | ||
| 10450 | + | ||
| 10451 | + plat_py_lib_dir = lib_dir + "/config" | ||
| 10452 | + plat_bin_dir = sys.exec_prefix + "/bin" | ||
| 10453 | + plat_sip_dir = sys.prefix + "/share/sip" | ||
| 10454 | + | ||
| 10455 | + | ||
| 10456 | +def create_config(module, template, macros): | ||
| 10457 | + """Create the SIP configuration module so that it can be imported by build | ||
| 10458 | + scripts. | ||
| 10459 | + | ||
| 10460 | + module is the module file name. | ||
| 10461 | + template is the template file name. | ||
| 10462 | + macros is the dictionary of build macros. | ||
| 10463 | + """ | ||
| 10464 | + siputils.inform("Creating %s..." % module) | ||
| 10465 | + | ||
| 10466 | + content = { | ||
| 10467 | + "sip_config_args": sys.argv[1:], | ||
| 10468 | + "sip_version": sip_version, | ||
| 10469 | + "sip_version_str": sip_version_str, | ||
| 10470 | + "platform": build_platform, | ||
| 10471 | + "sip_bin": os.path.join(sip_bin_dir, "sip"), | ||
| 10472 | + "sip_inc_dir": sip_inc_dir, | ||
| 10473 | + "sip_root_dir": sip_root_dir, | ||
| 10474 | + "sip_module_dir": sip_module_dir, | ||
| 10475 | + "default_bin_dir": plat_bin_dir, | ||
| 10476 | + "default_mod_dir": plat_py_site_dir, | ||
| 10477 | + "default_sip_dir": sip_sip_dir, | ||
| 10478 | + "py_version": py_version, | ||
| 10479 | + "py_inc_dir": plat_py_inc_dir, | ||
| 10480 | + "py_conf_inc_dir": plat_py_conf_inc_dir, | ||
| 10481 | + "py_lib_dir": plat_py_lib_dir, | ||
| 10482 | + "universal": opts.universal, | ||
| 10483 | + "arch": opts.arch, | ||
| 10484 | + "deployment_target": opts.deployment_target, | ||
| 10485 | + "qt_framework": 0 | ||
| 10486 | + } | ||
| 10487 | + | ||
| 10488 | + siputils.create_config_module(module, template, content, macros) | ||
| 10489 | + | ||
| 10490 | + | ||
| 10491 | +def create_makefiles(macros): | ||
| 10492 | + """Create the Makefiles. | ||
| 10493 | + | ||
| 10494 | + macros is the dictionary of platform specific build macros. | ||
| 10495 | + """ | ||
| 10496 | + # Bootstrap. Make sure we get the right one. | ||
| 10497 | + sys.path.insert(0, os.path.curdir) | ||
| 10498 | + invalidate_caches() | ||
| 10499 | + import sipconfig | ||
| 10500 | + | ||
| 10501 | + cfg = sipconfig.Configuration() | ||
| 10502 | + | ||
| 10503 | + cfg.set_build_macros(macros) | ||
| 10504 | + | ||
| 10505 | + all_installs = [] | ||
| 10506 | + top_installs = [] | ||
| 10507 | + gen_installs = [] | ||
| 10508 | + subdirs = [] | ||
| 10509 | + | ||
| 10510 | + if not opts.no_tools: | ||
| 10511 | + subdirs.append('sipgen') | ||
| 10512 | + top_installs.append( | ||
| 10513 | + (["sipconfig.py", os.path.join(src_dir, "sipdistutils.py")], | ||
| 10514 | + cfg.sip_root_dir)) | ||
| 10515 | + gen_installs.append( | ||
| 10516 | + (os.path.join(src_dir, "siplib", "sip.h"), cfg.sip_inc_dir)) | ||
| 10517 | + | ||
| 10518 | + if not opts.no_module: | ||
| 10519 | + subdirs.append('siplib') | ||
| 10520 | + | ||
| 10521 | + all_installs.extend(top_installs) | ||
| 10522 | + all_installs.extend(gen_installs) | ||
| 10523 | + | ||
| 10524 | + # The command to run to generate the dist-info directory. | ||
| 10525 | + mk_distinfo = os.path.join(os.path.dirname(os.path.abspath(__file__)), | ||
| 10526 | + 'mk_distinfo.py') | ||
| 10527 | + distinfo_dir = os.path.join(cfg.sip_module_dir, | ||
| 10528 | + '%s-%s.dist-info' % (sip_module_name.replace('.', '_'), | ||
| 10529 | + sip_version_str)) | ||
| 10530 | + | ||
| 10531 | + if opts.use_qmake: | ||
| 10532 | + run_mk_distinfo = '%s %s \\\"$(INSTALL_ROOT)\\\" %s installed.txt' % ( | ||
| 10533 | + sys.executable, mk_distinfo, distinfo_dir) | ||
| 10534 | + | ||
| 10535 | + sipconfig.inform("Creating top level .pro file...") | ||
| 10536 | + | ||
| 10537 | + pro = open("sip.pro", "w") | ||
| 10538 | + | ||
| 10539 | + pro.write("TEMPLATE = subdirs\n") | ||
| 10540 | + pro.write("SUBDIRS = %s\n" % " ".join(subdirs)) | ||
| 10541 | + | ||
| 10542 | + if top_installs: | ||
| 10543 | + # There will only be one element. | ||
| 10544 | + files, path = top_installs[0] | ||
| 10545 | + pro.write("\n") | ||
| 10546 | + pro.write("build_system.files = %s\n" % " ".join(files)) | ||
| 10547 | + pro.write("build_system.path = %s\n" % quote(path)) | ||
| 10548 | + pro.write("INSTALLS += build_system\n") | ||
| 10549 | + | ||
| 10550 | + if opts.distinfo: | ||
| 10551 | + pro.write("\n") | ||
| 10552 | + pro.write("distinfo.extra = %s\n" % run_mk_distinfo) | ||
| 10553 | + pro.write("distinfo.path = %s\n" % quote(cfg.sip_module_dir)) | ||
| 10554 | + pro.write("INSTALLS += distinfo\n") | ||
| 10555 | + | ||
| 10556 | + pro.close() | ||
| 10557 | + else: | ||
| 10558 | + run_mk_distinfo = '%s %s "$(DESTDIR)" %s installed.txt' % ( | ||
| 10559 | + sys.executable, mk_distinfo, distinfo_dir) | ||
| 10560 | + | ||
| 10561 | + sipconfig.inform("Creating top level Makefile...") | ||
| 10562 | + | ||
| 10563 | + # Note that mk_distinfo.py won't exist if we are building from the | ||
| 10564 | + # repository. | ||
| 10565 | + if opts.distinfo and os.path.isfile(mk_distinfo): | ||
| 10566 | + top_installs.append((run_mk_distinfo, None)) | ||
| 10567 | + | ||
| 10568 | + sipconfig.ParentMakefile( | ||
| 10569 | + configuration=cfg, | ||
| 10570 | + subdirs=subdirs, | ||
| 10571 | + installs=top_installs | ||
| 10572 | + ).generate() | ||
| 10573 | + | ||
| 10574 | + if opts.use_qmake: | ||
| 10575 | + sipconfig.inform("Creating sip code generator .pro file...") | ||
| 10576 | + | ||
| 10577 | + pro = open(os.path.join("sipgen", "sipgen.pro"), "w") | ||
| 10578 | + | ||
| 10579 | + pro.write("TEMPLATE = app\n") | ||
| 10580 | + pro.write("TARGET = sip\n") | ||
| 10581 | + pro.write("CONFIG -= qt app_bundle\n") | ||
| 10582 | + pro.write("CONFIG += warn_on exceptions_off console %s\n" % ( | ||
| 10583 | + ("debug" if opts.debug else "release"))) | ||
| 10584 | + | ||
| 10585 | + pro.write("\n") | ||
| 10586 | + pro.write("# Work around QTBUG-39300.\n") | ||
| 10587 | + pro.write("CONFIG -= android_install\n") | ||
| 10588 | + | ||
| 10589 | + pro.write("\n") | ||
| 10590 | + pro.write("target.path = %s\n" % os.path.dirname(cfg.sip_bin)) | ||
| 10591 | + pro.write("INSTALLS += target\n") | ||
| 10592 | + | ||
| 10593 | + c_sources = get_sources("sipgen", "*.c") | ||
| 10594 | + pro.write("\n") | ||
| 10595 | + pro.write("SOURCES = %s\n" % " ".join( | ||
| 10596 | + [qmake_quote(s) for s in c_sources])) | ||
| 10597 | + | ||
| 10598 | + headers = get_sources("sipgen", "*.h") | ||
| 10599 | + pro.write("\n") | ||
| 10600 | + pro.write("HEADERS = %s\n" % " ".join( | ||
| 10601 | + [qmake_quote(h) for h in headers])) | ||
| 10602 | + | ||
| 10603 | + if gen_installs: | ||
| 10604 | + # There will only be one element. | ||
| 10605 | + files, path = gen_installs[0] | ||
| 10606 | + pro.write("\n") | ||
| 10607 | + pro.write("sip_h.files = %s\n" % " ".join(files)) | ||
| 10608 | + pro.write("sip_h.path = %s\n" % quote(path)) | ||
| 10609 | + pro.write("INSTALLS += sip_h\n") | ||
| 10610 | + | ||
| 10611 | + pro.close() | ||
| 10612 | + else: | ||
| 10613 | + sipconfig.inform("Creating sip code generator Makefile...") | ||
| 10614 | + | ||
| 10615 | + sipconfig.ProgramMakefile( | ||
| 10616 | + configuration=cfg, | ||
| 10617 | + build_file=os.path.join(src_dir, "sipgen", "sipgen.sbf"), | ||
| 10618 | + dir="sipgen", | ||
| 10619 | + install_dir=os.path.dirname(cfg.sip_bin), | ||
| 10620 | + installs=gen_installs, | ||
| 10621 | + console=1, | ||
| 10622 | + warnings=1, | ||
| 10623 | + universal=opts.universal, | ||
| 10624 | + arch=opts.arch, | ||
| 10625 | + deployment_target=opts.deployment_target | ||
| 10626 | + ).generate() | ||
| 10627 | + | ||
| 10628 | + # The implied code generator installs. | ||
| 10629 | + if not opts.no_tools: | ||
| 10630 | + sip_dir, sip_exe = os.path.split(cfg.sip_bin) | ||
| 10631 | + if sys.platform == 'win32': | ||
| 10632 | + sip_exe += '.exe' | ||
| 10633 | + | ||
| 10634 | + all_installs.append((sip_exe, sip_dir)) | ||
| 10635 | + | ||
| 10636 | + # The module installs. | ||
| 10637 | + module_installs=[] | ||
| 10638 | + | ||
| 10639 | + if opts.pyi: | ||
| 10640 | + module_installs.append((os.path.join(src_dir, 'sip.pyi'), pyi_dir)) | ||
| 10641 | + | ||
| 10642 | + all_installs.extend(module_installs) | ||
| 10643 | + | ||
| 10644 | + if not opts.no_module: | ||
| 10645 | + if sys.platform == 'win32': | ||
| 10646 | + mod = 'sip.lib' if opts.static else 'sip.pyd' | ||
| 10647 | + else: | ||
| 10648 | + mod = 'libsip.a' if opts.static else 'sip.so' | ||
| 10649 | + | ||
| 10650 | + all_installs.append((mod, sip_module_dest_dir)) | ||
| 10651 | + | ||
| 10652 | + if opts.use_qmake: | ||
| 10653 | + sipconfig.inform("Creating sip module .pro file...") | ||
| 10654 | + | ||
| 10655 | + pro = open(os.path.join("siplib", "siplib.pro"), "w") | ||
| 10656 | + | ||
| 10657 | + pro.write("TEMPLATE = lib\n") | ||
| 10658 | + pro.write("TARGET = sip\n") | ||
| 10659 | + pro.write("CONFIG -= qt\n") | ||
| 10660 | + pro.write("CONFIG += warn_on exceptions_off %s %s\n" % ( | ||
| 10661 | + ("staticlib" if opts.static else "plugin plugin_bundle"), | ||
| 10662 | + ("debug" if opts.debug else "release"))) | ||
| 10663 | + | ||
| 10664 | + pro.write("\n") | ||
| 10665 | + pro.write("# Work around QTBUG-39300.\n") | ||
| 10666 | + pro.write("CONFIG -= android_install\n") | ||
| 10667 | + | ||
| 10668 | + pro.write("\n") | ||
| 10669 | + pro.write("INCLUDEPATH += %s\n" % cfg.py_inc_dir) | ||
| 10670 | + if cfg.py_conf_inc_dir != cfg.py_inc_dir: | ||
| 10671 | + pro.write("INCLUDEPATH += %s\n" % cfg.py_conf_inc_dir) | ||
| 10672 | + | ||
| 10673 | + if sip_module_name != 'sip': | ||
| 10674 | + pro.write("\n") | ||
| 10675 | + pro.write('DEFINES += SIP_MODULE_NAME=%s\n' % sip_module_name) | ||
| 10676 | + | ||
| 10677 | + base_name = sip_module_name.split('.')[-1] | ||
| 10678 | + if base_name != 'sip': | ||
| 10679 | + pro.write('DEFINES += SIP_MODULE_BASENAME=%s\n' % base_name) | ||
| 10680 | + | ||
| 10681 | + if not opts.static: | ||
| 10682 | + # These only need to be correct for Windows. | ||
| 10683 | + debug_suffix = "_d" if opts.debug else "" | ||
| 10684 | + link_lib_dir = quote("-L" + cfg.py_lib_dir) | ||
| 10685 | + | ||
| 10686 | + pro.write(""" | ||
| 10687 | +win32 { | ||
| 10688 | + PY_MODULE = sip%s.pyd | ||
| 10689 | + PY_MODULE_SRC = $(DESTDIR_TARGET) | ||
| 10690 | + | ||
| 10691 | + LIBS += %s | ||
| 10692 | +} else { | ||
| 10693 | + PY_MODULE = sip.so | ||
| 10694 | + | ||
| 10695 | + macx { | ||
| 10696 | + PY_MODULE_SRC = $(TARGET).plugin/Contents/MacOS/$(TARGET) | ||
| 10697 | + | ||
| 10698 | + QMAKE_LFLAGS += "-undefined dynamic_lookup" | ||
| 10699 | + } else { | ||
| 10700 | + PY_MODULE_SRC = $(TARGET) | ||
| 10701 | + } | ||
| 10702 | +} | ||
| 10703 | + | ||
| 10704 | +QMAKE_POST_LINK = $(COPY_FILE) $$PY_MODULE_SRC $$PY_MODULE | ||
| 10705 | + | ||
| 10706 | +target.CONFIG = no_check_exist | ||
| 10707 | +target.files = $$PY_MODULE | ||
| 10708 | +""" % (debug_suffix, link_lib_dir)) | ||
| 10709 | + | ||
| 10710 | + pro.write("\n") | ||
| 10711 | + pro.write("target.path = %s\n" % sip_module_dest_dir) | ||
| 10712 | + pro.write("INSTALLS += target\n") | ||
| 10713 | + | ||
| 10714 | + if opts.pyi: | ||
| 10715 | + pro.write("\n") | ||
| 10716 | + pro.write("sip_pyi.files = sip.pyi\n") | ||
| 10717 | + pro.write("sip_pyi.path = %s\n" % pyi_dir) | ||
| 10718 | + pro.write("INSTALLS += sip_pyi\n") | ||
| 10719 | + | ||
| 10720 | + c_sources = get_sources("siplib", "*.c") | ||
| 10721 | + cpp_sources = get_sources("siplib", "*.cpp") | ||
| 10722 | + pro.write("\n") | ||
| 10723 | + pro.write("SOURCES = %s\n" % " ".join( | ||
| 10724 | + [qmake_quote(s) for s in c_sources + cpp_sources])) | ||
| 10725 | + | ||
| 10726 | + headers = get_sources("siplib", "*.h") | ||
| 10727 | + pro.write("\n") | ||
| 10728 | + pro.write("HEADERS = %s\n" % " ".join( | ||
| 10729 | + [qmake_quote(h) for h in headers])) | ||
| 10730 | + | ||
| 10731 | + pro.close() | ||
| 10732 | + else: | ||
| 10733 | + sipconfig.inform("Creating sip module Makefile...") | ||
| 10734 | + | ||
| 10735 | + build_dir = os.getcwd() | ||
| 10736 | + | ||
| 10737 | + makefile = sipconfig.ModuleMakefile( | ||
| 10738 | + configuration=cfg, | ||
| 10739 | + build_file=os.path.join(src_dir, "siplib", "siplib.sbf"), | ||
| 10740 | + dir="siplib", | ||
| 10741 | + install_dir=sip_module_dest_dir, | ||
| 10742 | + installs=module_installs, | ||
| 10743 | + console=1, | ||
| 10744 | + warnings=1, | ||
| 10745 | + static=opts.static, | ||
| 10746 | + debug=opts.debug, | ||
| 10747 | + universal=opts.universal, | ||
| 10748 | + arch=opts.arch, | ||
| 10749 | + deployment_target=opts.deployment_target | ||
| 10750 | + ) | ||
| 10751 | + | ||
| 10752 | + if sip_module_name != 'sip': | ||
| 10753 | + makefile.DEFINES.append('SIP_MODULE_NAME=%s' % sip_module_name) | ||
| 10754 | + | ||
| 10755 | + base_name = sip_module_name.split('.')[-1] | ||
| 10756 | + if base_name != 'sip': | ||
| 10757 | + makefile.DEFINES.append('SIP_MODULE_BASENAME=%s' % base_name) | ||
| 10758 | + | ||
| 10759 | + if src_dir != build_dir: | ||
| 10760 | + src_siplib_dir = os.path.join(src_dir, "siplib") | ||
| 10761 | + makefile.extra_include_dirs.append(src_siplib_dir) | ||
| 10762 | + makefile.extra_source_dirs.append(src_siplib_dir) | ||
| 10763 | + | ||
| 10764 | + makefile.generate() | ||
| 10765 | + | ||
| 10766 | + # Create the file containing all installed files. | ||
| 10767 | + if opts.distinfo: | ||
| 10768 | + installed = open('installed.txt', 'w') | ||
| 10769 | + | ||
| 10770 | + for sources, dst in all_installs: | ||
| 10771 | + if not isinstance(sources, (list, tuple)): | ||
| 10772 | + sources = [sources] | ||
| 10773 | + | ||
| 10774 | + for src in sources: | ||
| 10775 | + installed.write( | ||
| 10776 | + os.path.join(dst, os.path.basename(src)) + '\n') | ||
| 10777 | + | ||
| 10778 | + installed.close() | ||
| 10779 | + | ||
| 10780 | + | ||
| 10781 | +def get_sources(sources_dir, ext): | ||
| 10782 | + """ Get the quoted files with the specified extension from a directory. """ | ||
| 10783 | + | ||
| 10784 | + return [quote(f) for f in glob.glob(os.path.join(src_dir, sources_dir, ext))] | ||
| 10785 | + | ||
| 10786 | + | ||
| 10787 | +def quote(path): | ||
| 10788 | + """ Return a path that is quoted if necessary. """ | ||
| 10789 | + | ||
| 10790 | + if ' ' in path: | ||
| 10791 | + path = '"' + path + '"' | ||
| 10792 | + | ||
| 10793 | + return path | ||
| 10794 | + | ||
| 10795 | + | ||
| 10796 | +def qmake_quote(path): | ||
| 10797 | + """ Return a path quoted for qmake if it contains spaces. path is the | ||
| 10798 | + path. | ||
| 10799 | + """ | ||
| 10800 | + | ||
| 10801 | + if ' ' in path: | ||
| 10802 | + path = '$$quote(%s)' % path | ||
| 10803 | + | ||
| 10804 | + return path | ||
| 10805 | + | ||
| 10806 | + | ||
| 10807 | +# Look out for recursive definitions. | ||
| 10808 | +_extrapolating = [] | ||
| 10809 | + | ||
| 10810 | +def _get_configuration_value(config, name, default=None): | ||
| 10811 | + """ Get a configuration value while extrapolating. """ | ||
| 10812 | + | ||
| 10813 | + value = config.get(name) | ||
| 10814 | + if value is None: | ||
| 10815 | + if default is None: | ||
| 10816 | + siputils.error("Configuration file references non-existent name '%s'." % name) | ||
| 10817 | + | ||
| 10818 | + return default | ||
| 10819 | + | ||
| 10820 | + parts = value.split('%(', 1) | ||
| 10821 | + while len(parts) == 2: | ||
| 10822 | + prefix, tail = parts | ||
| 10823 | + | ||
| 10824 | + parts = tail.split(')', 1) | ||
| 10825 | + if len(parts) != 2: | ||
| 10826 | + siputils.error("Configuration file contains unterminated extrapolated name '%s'." % tail) | ||
| 10827 | + | ||
| 10828 | + xtra_name, suffix = parts | ||
| 10829 | + | ||
| 10830 | + if xtra_name in _extrapolating: | ||
| 10831 | + siputils.error("Configuration file contains a recursive reference to '%s'." % xtra_name) | ||
| 10832 | + | ||
| 10833 | + _extrapolating.append(xtra_name) | ||
| 10834 | + xtra_value = _get_configuration_value(config, xtra_name) | ||
| 10835 | + _extrapolating.pop() | ||
| 10836 | + | ||
| 10837 | + value = prefix + xtra_value + suffix | ||
| 10838 | + | ||
| 10839 | + parts = value.split('%(', 1) | ||
| 10840 | + | ||
| 10841 | + return value | ||
| 10842 | + | ||
| 10843 | + | ||
| 10844 | +def update_from_configuration_file(config_file): | ||
| 10845 | + """ Update a number of globals from values read from a configuration file. | ||
| 10846 | + """ | ||
| 10847 | + | ||
| 10848 | + siputils.inform("Reading configuration from %s..." % config_file) | ||
| 10849 | + | ||
| 10850 | + config = {} | ||
| 10851 | + | ||
| 10852 | + # Read the file into the dict. | ||
| 10853 | + cfg = open(config_file) | ||
| 10854 | + line_nr = 0 | ||
| 10855 | + | ||
| 10856 | + for l in cfg: | ||
| 10857 | + line_nr += 1 | ||
| 10858 | + | ||
| 10859 | + # Strip comments and blank lines. | ||
| 10860 | + l = l.split('#')[0].strip() | ||
| 10861 | + if l == '': | ||
| 10862 | + continue | ||
| 10863 | + | ||
| 10864 | + parts = l.split('=', 1) | ||
| 10865 | + if len(parts) == 2: | ||
| 10866 | + name = parts[0].strip() | ||
| 10867 | + value = parts[1].strip() | ||
| 10868 | + else: | ||
| 10869 | + name = value = '' | ||
| 10870 | + | ||
| 10871 | + if name == '' or value == '': | ||
| 10872 | + siputils.error("%s:%d: Invalid line." % (config_file, line_nr)) | ||
| 10873 | + | ||
| 10874 | + config[name] = value | ||
| 10875 | + last_name = name | ||
| 10876 | + | ||
| 10877 | + cfg.close() | ||
| 10878 | + | ||
| 10879 | + # Enforce the presets. | ||
| 10880 | + version = siputils.version_to_string(py_version).split('.') | ||
| 10881 | + config['py_major'] = version[0] | ||
| 10882 | + config['py_minor'] = version[1] | ||
| 10883 | + config['sysroot'] = sysroot | ||
| 10884 | + | ||
| 10885 | + # Override the relevant values. | ||
| 10886 | + global py_platform, plat_py_conf_inc_dir, plat_py_inc_dir, plat_py_lib_dir | ||
| 10887 | + global sip_bin_dir, sip_inc_dir, sip_module_dir, sip_sip_dir | ||
| 10888 | + | ||
| 10889 | + py_platform = _get_configuration_value(config, 'py_platform', py_platform) | ||
| 10890 | + plat_py_inc_dir = _get_configuration_value(config, 'py_inc_dir', | ||
| 10891 | + plat_py_inc_dir) | ||
| 10892 | + plat_py_lib_dir = _get_configuration_value(config, 'py_pylib_dir', | ||
| 10893 | + plat_py_lib_dir) | ||
| 10894 | + | ||
| 10895 | + # The pyconfig.h directory defaults to the Python.h directory. | ||
| 10896 | + plat_py_conf_inc_dir = _get_configuration_value(config, 'py_conf_inc_dir', | ||
| 10897 | + plat_py_inc_dir) | ||
| 10898 | + | ||
| 10899 | + sip_bin_dir = _get_configuration_value(config, 'sip_bin_dir', sip_bin_dir) | ||
| 10900 | + sip_module_dir = _get_configuration_value(config, 'sip_module_dir', | ||
| 10901 | + sip_module_dir) | ||
| 10902 | + | ||
| 10903 | + # Note that this defaults to any 'py_inc_dir' specified in the | ||
| 10904 | + # configuration file. | ||
| 10905 | + sip_inc_dir = _get_configuration_value(config, 'sip_inc_dir', | ||
| 10906 | + plat_py_inc_dir) | ||
| 10907 | + | ||
| 10908 | + # Note that this is only used when creating sipconfig.py. | ||
| 10909 | + sip_sip_dir = _get_configuration_value(config, 'sip_sip_dir', sip_sip_dir) | ||
| 10910 | + | ||
| 10911 | + | ||
| 10912 | +def create_optparser(sdk_dir): | ||
| 10913 | + """Create the parser for the command line. | ||
| 10914 | + """ | ||
| 10915 | + def store_abspath(option, opt_str, value, parser): | ||
| 10916 | + setattr(parser.values, option.dest, os.path.abspath(value)) | ||
| 10917 | + | ||
| 10918 | + def store_abspath_dir(option, opt_str, value, parser): | ||
| 10919 | + if not os.path.isdir(value): | ||
| 10920 | + raise optparse.OptionValueError("'%s' is not a directory" % value) | ||
| 10921 | + setattr(parser.values, option.dest, os.path.abspath(value)) | ||
| 10922 | + | ||
| 10923 | + def store_abspath_file(option, opt_str, value, parser): | ||
| 10924 | + if not os.path.isfile(value): | ||
| 10925 | + raise optparse.OptionValueError("'%s' is not a file" % value) | ||
| 10926 | + setattr(parser.values, option.dest, os.path.abspath(value)) | ||
| 10927 | + | ||
| 10928 | + def store_version(option, opt_str, value, parser): | ||
| 10929 | + version = siputils.version_from_string(value) | ||
| 10930 | + if version is None: | ||
| 10931 | + raise optparse.OptionValueError( | ||
| 10932 | + "'%s' is not a valid version number" % value) | ||
| 10933 | + setattr(parser.values, option.dest, version) | ||
| 10934 | + | ||
| 10935 | + p = optparse.OptionParser(usage="python %prog [opts] [macro=value] " | ||
| 10936 | + "[macro+=value]", version=sip_version_str) | ||
| 10937 | + | ||
| 10938 | + # Note: we don't use %default to be compatible with Python 2.3. | ||
| 10939 | + p.add_option("-k", "--static", action="store_true", default=False, | ||
| 10940 | + dest="static", help="build the SIP module as a static library") | ||
| 10941 | + p.add_option("-p", "--platform", action="store", type="string", | ||
| 10942 | + metavar="PLATFORM", dest="platform", help="the platform/compiler " | ||
| 10943 | + "configuration [default: %s]" % build_platform) | ||
| 10944 | + p.add_option("-u", "--debug", action="store_true", default=False, | ||
| 10945 | + help="build with debugging symbols") | ||
| 10946 | + p.add_option("--sip-module", action="store", default="sip", type="string", | ||
| 10947 | + metavar="NAME", dest="sip_module", help="the package.module name " | ||
| 10948 | + "of the sip module [default: sip]") | ||
| 10949 | + p.add_option("--configuration", dest='config_file', type='string', | ||
| 10950 | + action='callback', callback=store_abspath_file, metavar="FILE", | ||
| 10951 | + help="FILE contains the target configuration") | ||
| 10952 | + p.add_option("--target-py-version", dest='target_py_version', | ||
| 10953 | + type='string', action='callback', callback=store_version, | ||
| 10954 | + metavar="VERSION", | ||
| 10955 | + help="the major.minor version of the target Python [default: " | ||
| 10956 | + "%s]" % siputils.version_to_string(py_version, parts=2)) | ||
| 10957 | + p.add_option("--sysroot", dest='sysroot', type='string', action='callback', | ||
| 10958 | + callback=store_abspath_dir, metavar="DIR", | ||
| 10959 | + help="DIR is the target system root directory") | ||
| 10960 | + p.add_option("--no-module", action="store_true", default=False, | ||
| 10961 | + dest="no_module", help="disable the installation of the sip " | ||
| 10962 | + "module [default: enabled]") | ||
| 10963 | + p.add_option("--no-tools", action="store_true", default=False, | ||
| 10964 | + dest="no_tools", help="disable the building of the code generator " | ||
| 10965 | + "and the installation of the build system [default: enabled]") | ||
| 10966 | + p.add_option("--use-qmake", action="store_true", default=False, | ||
| 10967 | + dest="use_qmake", help="generate qmake .pro files instead of " | ||
| 10968 | + "Makefiles") | ||
| 10969 | + | ||
| 10970 | + if sys.platform == 'darwin': | ||
| 10971 | + # Get the latest SDK to use as the default. | ||
| 10972 | + sdks = glob.glob(sdk_dir + '/MacOSX*.sdk') | ||
| 10973 | + if len(sdks) > 0: | ||
| 10974 | + sdks.sort() | ||
| 10975 | + _, default_sdk = os.path.split(sdks[-1]) | ||
| 10976 | + else: | ||
| 10977 | + default_sdk = 'MacOSX10.4u.sdk' | ||
| 10978 | + | ||
| 10979 | + g = optparse.OptionGroup(p, title="MacOS X Configuration") | ||
| 10980 | + g.add_option("--arch", action="append", default=[], dest="arch", | ||
| 10981 | + choices=["i386", "x86_64", "ppc"], | ||
| 10982 | + help="build for architecture ARCH") | ||
| 10983 | + g.add_option("--deployment-target", action="store", default='', | ||
| 10984 | + metavar="VERSION", dest="deployment_target", | ||
| 10985 | + help="set the value of the MACOSX_DEPLOYMENT_TARGET " | ||
| 10986 | + "environment variable in generated Makefiles") | ||
| 10987 | + g.add_option("-n", "--universal", action="store_true", default=False, | ||
| 10988 | + dest="universal", | ||
| 10989 | + help="build the SIP code generator and module as universal " | ||
| 10990 | + "binaries") | ||
| 10991 | + g.add_option("-s", "--sdk", action="store", default=default_sdk, | ||
| 10992 | + type="string", metavar="SDK", dest="sdk", | ||
| 10993 | + help="the name of the SDK used when building universal " | ||
| 10994 | + "binaries [default: %s]" % default_sdk) | ||
| 10995 | + p.add_option_group(g) | ||
| 10996 | + | ||
| 10997 | + # Querying. | ||
| 10998 | + g = optparse.OptionGroup(p, title="Query") | ||
| 10999 | + g.add_option("--show-platforms", action="store_true", default=False, | ||
| 11000 | + dest="show_platforms", help="show the list of supported " | ||
| 11001 | + "platform/compiler configurations") | ||
| 11002 | + g.add_option("--show-build-macros", action="store_true", default=False, | ||
| 11003 | + dest="show_build_macros", help="show the list of supported build " | ||
| 11004 | + "macros") | ||
| 11005 | + p.add_option_group(g) | ||
| 11006 | + | ||
| 11007 | + # Installation. | ||
| 11008 | + g = optparse.OptionGroup(p, title="Installation") | ||
| 11009 | + g.add_option("-b", "--bindir", action="callback", type="string", | ||
| 11010 | + metavar="DIR", dest="sipbindir", callback=store_abspath, | ||
| 11011 | + help="where the SIP code generator will be installed [default: " | ||
| 11012 | + "%s]" % plat_bin_dir) | ||
| 11013 | + g.add_option("-d", "--destdir", action="callback", type="string", | ||
| 11014 | + metavar="DIR", dest="destdir", callback=store_abspath, | ||
| 11015 | + help="where the SIP module will be installed [default: " | ||
| 11016 | + "%s]" % plat_py_site_dir) | ||
| 11017 | + g.add_option("-e", "--incdir", action="callback", type="string", | ||
| 11018 | + metavar="DIR", dest="sipincdir", callback=store_abspath, | ||
| 11019 | + help="where the SIP header file will be installed [default: " | ||
| 11020 | + "%s]" % plat_py_venv_inc_dir) | ||
| 11021 | + g.add_option("-v", "--sipdir", action="callback", type="string", | ||
| 11022 | + metavar="DIR", dest="sipsipdir", callback=store_abspath, | ||
| 11023 | + help="where .sip files are normally installed [default: " | ||
| 11024 | + "%s]" % plat_sip_dir) | ||
| 11025 | + g.add_option("--no-dist-info", action="store_false", default=True, | ||
| 11026 | + dest="distinfo", | ||
| 11027 | + help="do not install the dist-info directory") | ||
| 11028 | + g.add_option("--no-stubs", "--no-pyi", action="store_false", default=True, | ||
| 11029 | + dest="pyi", | ||
| 11030 | + help="do not install the sip.pyi stub file") | ||
| 11031 | + g.add_option("--stubsdir", "--pyidir", action="callback", type="string", | ||
| 11032 | + metavar="DIR", dest="pyidir", callback=store_abspath, | ||
| 11033 | + help="where the sip.pyi stub file will be installed [default: " | ||
| 11034 | + "%s]" % plat_py_site_dir) | ||
| 11035 | + p.add_option_group(g) | ||
| 11036 | + | ||
| 11037 | + return p | ||
| 11038 | + | ||
| 11039 | + | ||
| 11040 | +def main(argv): | ||
| 11041 | + """Create the configuration module module. | ||
| 11042 | + | ||
| 11043 | + argv is the list of command line arguments. | ||
| 11044 | + """ | ||
| 11045 | + siputils.inform("This is SIP %s for Python %s on %s." % (sip_version_str, sys.version.split()[0], sys.platform)) | ||
| 11046 | + | ||
| 11047 | + global py_version, build_platform | ||
| 11048 | + | ||
| 11049 | + if py_version < 0x020300: | ||
| 11050 | + siputils.error("This version of SIP requires Python v2.3 or later.") | ||
| 11051 | + | ||
| 11052 | + # Basic initialisation. | ||
| 11053 | + set_platform_directories() | ||
| 11054 | + set_build_platform() | ||
| 11055 | + | ||
| 11056 | + # Build up the list of valid specs. | ||
| 11057 | + for s in os.listdir(os.path.join(src_dir, "specs")): | ||
| 11058 | + platform_specs.append(s) | ||
| 11059 | + | ||
| 11060 | + # Determine the directory containing the default OS/X SDK. | ||
| 11061 | + if sys.platform == 'darwin': | ||
| 11062 | + for sdk_dir in MACOSX_SDK_DIRS: | ||
| 11063 | + if os.path.isdir(sdk_dir): | ||
| 11064 | + break | ||
| 11065 | + else: | ||
| 11066 | + sdk_dir = MACOSX_SDK_DIRS[0] | ||
| 11067 | + else: | ||
| 11068 | + sdk_dir = '' | ||
| 11069 | + | ||
| 11070 | + # Parse the command line. | ||
| 11071 | + global opts | ||
| 11072 | + | ||
| 11073 | + p = create_optparser(sdk_dir) | ||
| 11074 | + opts, args = p.parse_args() | ||
| 11075 | + | ||
| 11076 | + # Override defaults that affect subsequent configuration. | ||
| 11077 | + if opts.target_py_version is not None: | ||
| 11078 | + py_version = opts.target_py_version | ||
| 11079 | + | ||
| 11080 | + if opts.sysroot is not None: | ||
| 11081 | + global sysroot | ||
| 11082 | + sysroot = opts.sysroot | ||
| 11083 | + | ||
| 11084 | + # Make sure MacOS specific options get initialised. | ||
| 11085 | + if sys.platform != 'darwin': | ||
| 11086 | + opts.universal = '' | ||
| 11087 | + opts.arch = [] | ||
| 11088 | + opts.sdk = '' | ||
| 11089 | + opts.deployment_target = '' | ||
| 11090 | + | ||
| 11091 | + # Handle the query options. | ||
| 11092 | + if opts.show_platforms or opts.show_build_macros: | ||
| 11093 | + if opts.show_platforms: | ||
| 11094 | + show_platforms() | ||
| 11095 | + | ||
| 11096 | + if opts.show_build_macros: | ||
| 11097 | + show_macros() | ||
| 11098 | + | ||
| 11099 | + sys.exit() | ||
| 11100 | + | ||
| 11101 | + # Convert the list 'arch' option to a string. Multiple architectures | ||
| 11102 | + # imply a universal binary. | ||
| 11103 | + if len(opts.arch) > 1: | ||
| 11104 | + opts.universal = True | ||
| 11105 | + | ||
| 11106 | + opts.arch = ' '.join(opts.arch) | ||
| 11107 | + | ||
| 11108 | + # Convert the boolean 'universal' option to a string. | ||
| 11109 | + if opts.universal: | ||
| 11110 | + if '/' in opts.sdk: | ||
| 11111 | + opts.universal = os.path.abspath(opts.sdk) | ||
| 11112 | + else: | ||
| 11113 | + opts.universal = sdk_dir + '/' + opts.sdk | ||
| 11114 | + | ||
| 11115 | + if not os.path.isdir(opts.universal): | ||
| 11116 | + 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) | ||
| 11117 | + | ||
| 11118 | + if opts.arch == '': | ||
| 11119 | + opts.arch = DEFAULT_MACOSX_ARCH | ||
| 11120 | + else: | ||
| 11121 | + opts.universal = '' | ||
| 11122 | + | ||
| 11123 | + # No sip module also implies no stubs. | ||
| 11124 | + if opts.no_module: | ||
| 11125 | + opts.pyi = False | ||
| 11126 | + | ||
| 11127 | + # Apply the overrides from any configuration file. | ||
| 11128 | + global plat_bin_dir, plat_py_conf_inc_dir, plat_py_inc_dir | ||
| 11129 | + global plat_py_lib_dir, plat_py_site_dir, plat_sip_dir | ||
| 11130 | + global sip_bin_dir, sip_inc_dir, sip_root_dir, sip_module_dir, sip_sip_dir | ||
| 11131 | + global sip_module_dest_dir, sip_module_name, pyi_dir | ||
| 11132 | + | ||
| 11133 | + # Set defaults. | ||
| 11134 | + sip_bin_dir = plat_bin_dir | ||
| 11135 | + sip_inc_dir = plat_py_venv_inc_dir | ||
| 11136 | + sip_root_dir = plat_py_site_dir | ||
| 11137 | + sip_sip_dir = plat_sip_dir | ||
| 11138 | + | ||
| 11139 | + if opts.config_file is not None: | ||
| 11140 | + update_from_configuration_file(opts.config_file) | ||
| 11141 | + elif sysroot != '': | ||
| 11142 | + def apply_sysroot(d): | ||
| 11143 | + if d.startswith(sys.prefix): | ||
| 11144 | + d = sysroot + d[len(sys.prefix):] | ||
| 11145 | + | ||
| 11146 | + return d | ||
| 11147 | + | ||
| 11148 | + plat_bin_dir = apply_sysroot(plat_bin_dir) | ||
| 11149 | + plat_py_conf_inc_dir = apply_sysroot(plat_py_conf_inc_dir) | ||
| 11150 | + plat_py_inc_dir = apply_sysroot(plat_py_inc_dir) | ||
| 11151 | + plat_py_lib_dir = apply_sysroot(plat_py_lib_dir) | ||
| 11152 | + plat_py_site_dir = apply_sysroot(plat_py_site_dir) | ||
| 11153 | + plat_sip_dir = apply_sysroot(plat_sip_dir) | ||
| 11154 | + | ||
| 11155 | + sip_bin_dir = apply_sysroot(sip_bin_dir) | ||
| 11156 | + sip_inc_dir = apply_sysroot(sip_inc_dir) | ||
| 11157 | + sip_root_dir = apply_sysroot(sip_root_dir) | ||
| 11158 | + sip_sip_dir = apply_sysroot(sip_sip_dir) | ||
| 11159 | + | ||
| 11160 | + # Fix the name of the sip module. | ||
| 11161 | + if opts.destdir is not None: | ||
| 11162 | + sip_root_dir = opts.destdir | ||
| 11163 | + | ||
| 11164 | + # The module directory might have been set in a configuration file. | ||
| 11165 | + if not sip_module_dir: | ||
| 11166 | + sip_module_dir = sip_root_dir | ||
| 11167 | + | ||
| 11168 | + sip_module_name = opts.sip_module | ||
| 11169 | + | ||
| 11170 | + module_path = sip_module_name.split(".") | ||
| 11171 | + | ||
| 11172 | + if len(module_path) > 1: | ||
| 11173 | + del module_path[-1] | ||
| 11174 | + module_path.insert(0, sip_module_dir) | ||
| 11175 | + sip_module_dest_dir = os.path.join(*module_path) | ||
| 11176 | + else: | ||
| 11177 | + sip_module_dest_dir = sip_module_dir | ||
| 11178 | + | ||
| 11179 | + # Override from the command line. | ||
| 11180 | + if opts.platform is not None: | ||
| 11181 | + build_platform = opts.platform | ||
| 11182 | + | ||
| 11183 | + if opts.sipbindir is not None: | ||
| 11184 | + sip_bin_dir = opts.sipbindir | ||
| 11185 | + | ||
| 11186 | + if opts.sipincdir is not None: | ||
| 11187 | + sip_inc_dir = opts.sipincdir | ||
| 11188 | + | ||
| 11189 | + if opts.sipsipdir is not None: | ||
| 11190 | + sip_sip_dir = opts.sipsipdir | ||
| 11191 | + | ||
| 11192 | + if opts.pyidir is not None: | ||
| 11193 | + pyi_dir = opts.pyidir | ||
| 11194 | + else: | ||
| 11195 | + pyi_dir = sip_module_dest_dir | ||
| 11196 | + | ||
| 11197 | + # Get the platform specific macros for building. | ||
| 11198 | + macros = siputils.parse_build_macros( | ||
| 11199 | + os.path.join(src_dir, "specs", build_platform), build_macro_names, | ||
| 11200 | + args) | ||
| 11201 | + | ||
| 11202 | + if macros is None: | ||
| 11203 | + siputils.error("Unsupported macro name specified. Use the --show-build-macros flag to see a list of supported macros.") | ||
| 11204 | + sys.exit(2) | ||
| 11205 | + | ||
| 11206 | + # Tell the user what's been found. | ||
| 11207 | + inform_user() | ||
| 11208 | + | ||
| 11209 | + # Install the configuration module. | ||
| 11210 | + create_config("sipconfig.py", os.path.join(src_dir, "siputils.py"), | ||
| 11211 | + macros) | ||
| 11212 | + | ||
| 11213 | + # Create the Makefiles. | ||
| 11214 | + create_makefiles(macros) | ||
| 11215 | + | ||
| 11216 | + | ||
| 11217 | +############################################################################### | ||
| 11218 | +# The script starts here. | ||
| 11219 | +############################################################################### | ||
| 11220 | + | ||
| 11221 | +if __name__ == "__main__": | ||
| 11222 | + try: | ||
| 11223 | + main(sys.argv) | ||
| 11224 | + except SystemExit: | ||
| 11225 | + raise | ||
| 11226 | + except: | ||
| 11227 | + sys.stderr.write( | ||
| 11228 | +"""An internal error occured. Please report all the output from the program, | ||
| 11229 | +including the following traceback, to support@riverbankcomputing.com. | ||
| 11230 | +""") | ||
| 11231 | + raise | ||
| 11232 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/METADATA.in sip/METADATA.in | ||
| 11233 | --- ./sip-4.19.12.orig/METADATA.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 11234 | +++ sip/METADATA.in 2018-09-18 17:52:23.267544161 -0400 | ||
| 11235 | @@ -0,0 +1,81 @@ | ||
| 11236 | +Metadata-Version: 1.1 | ||
| 11237 | +Name: PyQt5_sip | ||
| 11238 | +Version: @RB_VERSION@ | ||
| 11239 | +Summary: Python extension module support for PyQt5 | ||
| 11240 | +Home-page: https://www.riverbankcomputing.com/software/sip/ | ||
| 11241 | +Author: Riverbank Computing Limited | ||
| 11242 | +Author-email: info@riverbankcomputing.com | ||
| 11243 | +Platform: UNIX | ||
| 11244 | +Platform: OS X | ||
| 11245 | +Platform: Windows | ||
| 11246 | +Platform: iOS | ||
| 11247 | +Platform: Android | ||
| 11248 | + | ||
| 11249 | +SIP - A Python Extension Module Generator for C and C++ Libraries | ||
| 11250 | +================================================================= | ||
| 11251 | + | ||
| 11252 | +What is SIP? | ||
| 11253 | +------------ | ||
| 11254 | + | ||
| 11255 | +One of the features of Python that makes it so powerful is the ability to take | ||
| 11256 | +existing libraries, written in C or C++, and make them available as Python | ||
| 11257 | +extension modules. Such extension modules are often called bindings for the | ||
| 11258 | +library. | ||
| 11259 | + | ||
| 11260 | +SIP is a tool that makes it very easy to create Python bindings for C and C++ | ||
| 11261 | +libraries. It was originally developed to create PyQt, the Python bindings for | ||
| 11262 | +the Qt toolkit, but can be used to create bindings for any C or C++ library. | ||
| 11263 | + | ||
| 11264 | +SIP comprises a code generator and a Python module. The code generator | ||
| 11265 | +processes a set of specification files and generates C or C++ code which is | ||
| 11266 | +then compiled to create the bindings extension module. The Python module | ||
| 11267 | +provides support functions to the automatically generated code. Normally a | ||
| 11268 | +package containing SIP generated bindings includes a private copy of the | ||
| 11269 | +Python module. | ||
| 11270 | + | ||
| 11271 | +The specification files contain a description of the interface of the C or C++ | ||
| 11272 | +library, i.e. the classes, methods, functions and variables. The format of a | ||
| 11273 | +specification file is almost identical to a C or C++ header file, so much so | ||
| 11274 | +that the easiest way of creating a specification file is to edit the | ||
| 11275 | +corresponding header file. | ||
| 11276 | + | ||
| 11277 | +SIP makes it easy to exploit existing C or C++ libraries in a productive | ||
| 11278 | +interpretive programming environment. SIP also makes it easy to take a Python | ||
| 11279 | +application (maybe a prototype) and selectively implement parts of the | ||
| 11280 | +application (maybe for performance reasons) in C or C++. | ||
| 11281 | + | ||
| 11282 | + | ||
| 11283 | +Author | ||
| 11284 | +------ | ||
| 11285 | + | ||
| 11286 | +SIP is copyright (c) Riverbank Computing Limited. Its homepage is | ||
| 11287 | +https://www.riverbankcomputing.com/software/sip/. | ||
| 11288 | + | ||
| 11289 | +Support may be obtained from the PyQt mailing list at | ||
| 11290 | +https://www.riverbankcomputing.com/mailman/listinfo/pyqt/. | ||
| 11291 | + | ||
| 11292 | + | ||
| 11293 | +License | ||
| 11294 | +------- | ||
| 11295 | + | ||
| 11296 | +SIP is released under the GPL v2, GPL v3 licenses, and under a license similar | ||
| 11297 | +to the BSD license. | ||
| 11298 | + | ||
| 11299 | + | ||
| 11300 | +Installation | ||
| 11301 | +------------ | ||
| 11302 | + | ||
| 11303 | +SIP source packages can be dowloaded from | ||
| 11304 | +https://www.riverbankcomputing.com/software/sip/download/. | ||
| 11305 | + | ||
| 11306 | +Wheels containing the private copy of the Python module for PyQt5 for 32 and | ||
| 11307 | +64-bit Windows, 64-bit macOS and 64-bit Linux can be installed from PyPI:: | ||
| 11308 | + | ||
| 11309 | + pip3 install PyQt5_sip | ||
| 11310 | + | ||
| 11311 | + | ||
| 11312 | +Documentation | ||
| 11313 | +------------- | ||
| 11314 | + | ||
| 11315 | +The documentation for the latest release can be found | ||
| 11316 | +`here <http://pyqt.sourceforge.net/Docs/sip4/>`__. | ||
| 11317 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/mk_distinfo.py sip/mk_distinfo.py | ||
| 11318 | --- ./sip-4.19.12.orig/mk_distinfo.py 2018-07-04 12:00:06.000000000 -0400 | ||
| 11319 | +++ sip/mk_distinfo.py 1969-12-31 19:00:00.000000000 -0500 | ||
| 11320 | @@ -1,120 +0,0 @@ | ||
| 11321 | -# This script handles the creation of the PEP 376 .dist-info directory for a | ||
| 11322 | -# package. | ||
| 11323 | -# | ||
| 11324 | -# Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 11325 | -# | ||
| 11326 | -# This script is distributed under the terms of the GNU General Public License | ||
| 11327 | -# v3 as published by the Free Software Foundation. | ||
| 11328 | -# | ||
| 11329 | -# This script is supplied WITHOUT ANY WARRANTY; without even the implied | ||
| 11330 | -# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 11331 | - | ||
| 11332 | - | ||
| 11333 | -import base64 | ||
| 11334 | -import hashlib | ||
| 11335 | -import os | ||
| 11336 | -import shutil | ||
| 11337 | -import sys | ||
| 11338 | - | ||
| 11339 | - | ||
| 11340 | -def error(message): | ||
| 11341 | - """ Display an error message and terminate. """ | ||
| 11342 | - | ||
| 11343 | - sys.stderr.write(message + '\n') | ||
| 11344 | - sys.exit(1) | ||
| 11345 | - | ||
| 11346 | - | ||
| 11347 | -# Parse the command line. | ||
| 11348 | -if len(sys.argv) != 4: | ||
| 11349 | - error("usage: {0} prefix dist-info installed".format(sys.argv[0])) | ||
| 11350 | - | ||
| 11351 | -prefix_dir = sys.argv[1] | ||
| 11352 | -distinfo_dir = sys.argv[2] | ||
| 11353 | -installed_fn = sys.argv[3] | ||
| 11354 | - | ||
| 11355 | -# Read the list of installed files. | ||
| 11356 | -installed_f = open(installed_fn) | ||
| 11357 | -installed = installed_f.read().strip().split('\n') | ||
| 11358 | -installed_f.close() | ||
| 11359 | - | ||
| 11360 | -# The prefix directory corresponds to DESTDIR or INSTALL_ROOT. | ||
| 11361 | -real_distinfo_dir = prefix_dir + distinfo_dir | ||
| 11362 | - | ||
| 11363 | -# Remove any existing dist-info directory and create an empty one. | ||
| 11364 | -if os.path.exists(real_distinfo_dir): | ||
| 11365 | - try: | ||
| 11366 | - shutil.rmtree(real_distinfo_dir) | ||
| 11367 | - except: | ||
| 11368 | - error("unable to delete existing {0}".format(real_distinfo_dir)) | ||
| 11369 | - | ||
| 11370 | -try: | ||
| 11371 | - os.mkdir(real_distinfo_dir) | ||
| 11372 | -except: | ||
| 11373 | - error("unable to create {0}".format(real_distinfo_dir)) | ||
| 11374 | - | ||
| 11375 | -# Create the INSTALLER file. We pretend that pip was the installer. | ||
| 11376 | -installer_fn = os.path.join(distinfo_dir, 'INSTALLER') | ||
| 11377 | -installer_f = open(prefix_dir + installer_fn, 'w') | ||
| 11378 | -installer_f.write('pip\n') | ||
| 11379 | -installer_f.close() | ||
| 11380 | - | ||
| 11381 | -installed.append(installer_fn) | ||
| 11382 | - | ||
| 11383 | -# Create the METADATA file. | ||
| 11384 | -METADATA = '''Metadata-Version: 1.1 | ||
| 11385 | -Name: {0} | ||
| 11386 | -Version: {1} | ||
| 11387 | -''' | ||
| 11388 | - | ||
| 11389 | -distinfo_path, distinfo_base = os.path.split(distinfo_dir) | ||
| 11390 | -pkg_name, version = os.path.splitext(distinfo_base)[0].split('-') | ||
| 11391 | - | ||
| 11392 | -metadata_fn = os.path.join(distinfo_dir, 'METADATA') | ||
| 11393 | -metadata_f = open(prefix_dir + metadata_fn, 'w') | ||
| 11394 | -metadata_f.write(METADATA.format(pkg_name, version)) | ||
| 11395 | -metadata_f.close() | ||
| 11396 | - | ||
| 11397 | -installed.append(metadata_fn) | ||
| 11398 | - | ||
| 11399 | -# Create the RECORD file. | ||
| 11400 | -record_fn = os.path.join(distinfo_dir, 'RECORD') | ||
| 11401 | -record_f = open(prefix_dir + record_fn, 'w') | ||
| 11402 | - | ||
| 11403 | -for name in installed: | ||
| 11404 | - native_name = prefix_dir + name.replace('/', os.sep) | ||
| 11405 | - if os.path.isdir(native_name): | ||
| 11406 | - all_fns = [] | ||
| 11407 | - | ||
| 11408 | - for root, dirs, files in os.walk(native_name): | ||
| 11409 | - for f in files: | ||
| 11410 | - all_fns.append(os.path.join(root, f).replace(os.sep, '/')) | ||
| 11411 | - | ||
| 11412 | - if '__pycache__' in dirs: | ||
| 11413 | - dirs.remove('__pycache__') | ||
| 11414 | - else: | ||
| 11415 | - all_fns = [prefix_dir + name] | ||
| 11416 | - | ||
| 11417 | - for fn in all_fns: | ||
| 11418 | - real_distinfo_path = prefix_dir + distinfo_path | ||
| 11419 | - | ||
| 11420 | - if fn.startswith(real_distinfo_path): | ||
| 11421 | - fn_name = fn[len(real_distinfo_path) + 1:].replace('\\', '/') | ||
| 11422 | - elif fn.startswith(prefix_dir + sys.prefix): | ||
| 11423 | - fn_name = os.path.relpath( | ||
| 11424 | - fn, real_distinfo_path).replace('\\', '/') | ||
| 11425 | - else: | ||
| 11426 | - fn_name = fn[len(prefix_dir):] | ||
| 11427 | - | ||
| 11428 | - fn_f = open(fn, 'rb') | ||
| 11429 | - data = fn_f.read() | ||
| 11430 | - fn_f.close() | ||
| 11431 | - | ||
| 11432 | - digest = base64.urlsafe_b64encode( | ||
| 11433 | - hashlib.sha256(data).digest()).rstrip(b'=').decode('ascii') | ||
| 11434 | - | ||
| 11435 | - record_f.write( | ||
| 11436 | - '{0},sha256={1},{2}\n'.format(fn_name, digest, len(data))) | ||
| 11437 | - | ||
| 11438 | -record_f.write('{0}/RECORD,,\n'.format(distinfo_base)) | ||
| 11439 | - | ||
| 11440 | -record_f.close() | ||
| 11441 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/rb-product sip/rb-product | ||
| 11442 | --- ./sip-4.19.12.orig/rb-product 1969-12-31 19:00:00.000000000 -0500 | ||
| 11443 | +++ sip/rb-product 2018-09-18 17:52:23.269544132 -0400 | ||
| 11444 | @@ -0,0 +1 @@ | ||
| 11445 | +sip | ||
| 11446 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/Roadmap.rst sip/Roadmap.rst | ||
| 11447 | --- ./sip-4.19.12.orig/Roadmap.rst 1969-12-31 19:00:00.000000000 -0500 | ||
| 11448 | +++ sip/Roadmap.rst 2018-09-18 17:52:23.268544146 -0400 | ||
| 11449 | @@ -0,0 +1,75 @@ | ||
| 11450 | +SIP v5 Roadmap | ||
| 11451 | +============== | ||
| 11452 | + | ||
| 11453 | +The next major release of SIP will be v5 and is currently being planned. | ||
| 11454 | + | ||
| 11455 | +The major focus of v5 will be to: | ||
| 11456 | + | ||
| 11457 | +- eliminate inconsistencies in the syntax of specification files | ||
| 11458 | + | ||
| 11459 | +- fill in some gaps in the C/C++ support | ||
| 11460 | + | ||
| 11461 | +- restructure, refactor and rewrite the code as appropriate to ensure that it | ||
| 11462 | + is easy to test, maintain and enhance over the long term. | ||
| 11463 | + | ||
| 11464 | +There is no plan to introduce any significant new functionality. | ||
| 11465 | + | ||
| 11466 | +Any feedback on the roadmap is very welcome. | ||
| 11467 | + | ||
| 11468 | + | ||
| 11469 | +Migration from SIP v4 to v5 | ||
| 11470 | +--------------------------- | ||
| 11471 | + | ||
| 11472 | +SIP v4.19.x will be the final series of SIP v4 releases. All features that | ||
| 11473 | +will be removed in SIP v5 will trigger a deprecation warning. These will be | ||
| 11474 | +Use of the old syntax will trigger deprecation warning messages. These will be | ||
| 11475 | +disabled by default and will be enabled by passing the ``-w`` command line | ||
| 11476 | +option to the code generator. | ||
| 11477 | + | ||
| 11478 | +A set of specification files that does not trigger any deprecation warnings | ||
| 11479 | +with SIP v4.19.x should work unchanged with SIP v5. | ||
| 11480 | + | ||
| 11481 | + | ||
| 11482 | +Roadmap | ||
| 11483 | +------- | ||
| 11484 | + | ||
| 11485 | +Here we list specific changes that are planned. Note that no changes are | ||
| 11486 | +planned for the ``sip`` extension module. | ||
| 11487 | + | ||
| 11488 | +- The syntax of directives will be revised to follow a standard pattern that | ||
| 11489 | + supports arguments and sub-directives in a consistent manner. | ||
| 11490 | + | ||
| 11491 | +- All directives will behave consistently when enclosed in ``%If``/``%End`` | ||
| 11492 | + blocks. | ||
| 11493 | + | ||
| 11494 | +- Support will be added for fixed sized arrays of any type. | ||
| 11495 | + | ||
| 11496 | +- Support for optionally detecting overflows when converting from Python | ||
| 11497 | + integers to C/C++ types will be investigated. | ||
| 11498 | + | ||
| 11499 | +- Invalid annotations will trigger an error message rather than being silently | ||
| 11500 | + ignored. | ||
| 11501 | + | ||
| 11502 | +- Error messages will be improved and will always include a reference to the | ||
| 11503 | + originating file and line number. | ||
| 11504 | + | ||
| 11505 | +- Support for the generation of QScintilla API files will be removed. A | ||
| 11506 | + utility to create these files from the XML export file will be added to | ||
| 11507 | + QScintilla. | ||
| 11508 | + | ||
| 11509 | +- The code generator's ``-I`` command line option will support Windows style | ||
| 11510 | + path names. | ||
| 11511 | + | ||
| 11512 | +- The code generator may be extended using plugins. | ||
| 11513 | + | ||
| 11514 | +- All PyQt specific support will be removed and implemented in appropriate | ||
| 11515 | + plugins that will be distributed as part of PyQt. | ||
| 11516 | + | ||
| 11517 | +- The design of the code generator will allow for the implementation of plugins | ||
| 11518 | + to support generating bindings for languages other than Python. | ||
| 11519 | + | ||
| 11520 | +- The code generator will be reimplemented using Python v3. It will be able to | ||
| 11521 | + be used as a standalone application or a package. | ||
| 11522 | + | ||
| 11523 | +- The build system will be removed. SIP itself will be distributed as a | ||
| 11524 | + ``distutils`` package. | ||
| 11525 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/export.c sip/sipgen/export.c | ||
| 11526 | --- ./sip-4.19.12.orig/sipgen/export.c 2018-07-05 05:54:58.000000000 -0400 | ||
| 11527 | +++ sip/sipgen/export.c 2018-09-24 13:12:20.671276115 -0400 | ||
| 11528 | @@ -1,7 +1,7 @@ | ||
| 11529 | /* | ||
| 11530 | * The XML and API file generator module for SIP. | ||
| 11531 | * | ||
| 11532 | - * Copyright (c) 2015 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 11533 | + * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 11534 | * | ||
| 11535 | * This file is part of SIP. | ||
| 11536 | * | ||
| 11537 | @@ -34,32 +34,34 @@ | ||
| 11538 | |||
| 11539 | static void apiEnums(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp); | ||
| 11540 | static void apiVars(sipSpec *pt, moduleDef *mod, classDef *scope, FILE *fp); | ||
| 11541 | -static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11542 | - int sec, FILE *fp); | ||
| 11543 | -static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11544 | - overDef *od, int sec, FILE *fp); | ||
| 11545 | +static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11546 | + FILE *fp); | ||
| 11547 | +static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11548 | + overDef *od, FILE *fp); | ||
| 11549 | static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma, | ||
| 11550 | - int sec, int names, int defaults, int in_str, FILE *fp); | ||
| 11551 | + int names, int defaults, int in_str, FILE *fp); | ||
| 11552 | static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp); | ||
| 11553 | static void xmlEnums(sipSpec *pt, moduleDef *mod, classDef *scope, int indent, | ||
| 11554 | FILE *fp); | ||
| 11555 | static void xmlVars(sipSpec *pt, moduleDef *mod, classDef *scope, int indent, | ||
| 11556 | FILE *fp); | ||
| 11557 | -static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md, | ||
| 11558 | - overDef *oloads, int indent, FILE *fp); | ||
| 11559 | -static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec, | ||
| 11560 | +static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11561 | + memberDef *md, overDef *oloads, int indent, FILE *fp); | ||
| 11562 | +static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11563 | int indent, FILE *fp); | ||
| 11564 | -static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md, | ||
| 11565 | - overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp); | ||
| 11566 | +static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11567 | + memberDef *md, overDef *od, classDef *xtnds, int stat, int indent, | ||
| 11568 | + FILE *fp); | ||
| 11569 | static void xmlCppSignature(FILE *fp, overDef *od); | ||
| 11570 | -static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer, | ||
| 11571 | - int sec, int indent, FILE *fp); | ||
| 11572 | -static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp); | ||
| 11573 | +static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out, | ||
| 11574 | + KwArgs kwargs, int res_xfer, int indent, FILE *fp); | ||
| 11575 | +static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, | ||
| 11576 | + KwArgs kwargs, FILE *fp); | ||
| 11577 | static void xmlIndent(int indent, FILE *fp); | ||
| 11578 | -static const char *dirAttribute(argDef *ad); | ||
| 11579 | -static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope); | ||
| 11580 | -static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, | ||
| 11581 | - int sec, int names, int defaults, int in_str, int is_signal); | ||
| 11582 | +static void xmlRealName(scopedNameDef *fqcname, FILE *fp); | ||
| 11583 | +static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope); | ||
| 11584 | +static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, | ||
| 11585 | + int names, int defaults, int in_str, int is_signal); | ||
| 11586 | |||
| 11587 | |||
| 11588 | /* | ||
| 11589 | @@ -86,8 +88,7 @@ | ||
| 11590 | if (od->common->slot != no_slot) | ||
| 11591 | continue; | ||
| 11592 | |||
| 11593 | - if (apiOverload(pt, mod, NULL, od, FALSE, fp)) | ||
| 11594 | - apiOverload(pt, mod, NULL, od, TRUE, fp); | ||
| 11595 | + apiOverload(pt, mod, NULL, od, fp); | ||
| 11596 | } | ||
| 11597 | |||
| 11598 | for (cd = pt->classes; cd != NULL; cd = cd->next) | ||
| 11599 | @@ -108,8 +109,7 @@ | ||
| 11600 | if (isPrivateCtor(ct)) | ||
| 11601 | continue; | ||
| 11602 | |||
| 11603 | - if (apiCtor(pt, mod, cd, ct, FALSE, fp)) | ||
| 11604 | - apiCtor(pt, mod, cd, ct, TRUE, fp); | ||
| 11605 | + apiCtor(pt, mod, cd, ct, fp); | ||
| 11606 | } | ||
| 11607 | |||
| 11608 | for (od = cd->overs; od != NULL; od = od->next) | ||
| 11609 | @@ -120,8 +120,7 @@ | ||
| 11610 | if (od->common->slot != no_slot) | ||
| 11611 | continue; | ||
| 11612 | |||
| 11613 | - if (apiOverload(pt, mod, cd, od, FALSE, fp)) | ||
| 11614 | - apiOverload(pt, mod, cd, od, TRUE, fp); | ||
| 11615 | + apiOverload(pt, mod, cd, od, fp); | ||
| 11616 | } | ||
| 11617 | } | ||
| 11618 | |||
| 11619 | @@ -132,10 +131,10 @@ | ||
| 11620 | /* | ||
| 11621 | * Generate an API ctor. | ||
| 11622 | */ | ||
| 11623 | -static int apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11624 | - int sec, FILE *fp) | ||
| 11625 | +static void apiCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11626 | + FILE *fp) | ||
| 11627 | { | ||
| 11628 | - int need_sec = FALSE, need_comma, a; | ||
| 11629 | + int need_comma, a; | ||
| 11630 | |||
| 11631 | /* Do the callable type form. */ | ||
| 11632 | fprintf(fp, "%s.", mod->name); | ||
| 11633 | @@ -148,11 +147,8 @@ | ||
| 11634 | { | ||
| 11635 | argDef *ad = &ct->pysig.args[a]; | ||
| 11636 | |||
| 11637 | - need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, TRUE, TRUE, | ||
| 11638 | - FALSE, fp); | ||
| 11639 | - | ||
| 11640 | - if (ad->atype == rxcon_type || ad->atype == rxdis_type) | ||
| 11641 | - need_sec = TRUE; | ||
| 11642 | + need_comma = apiArgument(pt, ad, FALSE, need_comma, TRUE, TRUE, FALSE, | ||
| 11643 | + fp); | ||
| 11644 | } | ||
| 11645 | |||
| 11646 | fprintf(fp, ")\n"); | ||
| 11647 | @@ -163,12 +159,10 @@ | ||
| 11648 | fprintf(fp, ".__init__?%d(self", CLASS_ID); | ||
| 11649 | |||
| 11650 | for (a = 0; a < ct->pysig.nrArgs; ++a) | ||
| 11651 | - apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, sec, TRUE, TRUE, | ||
| 11652 | - FALSE, fp); | ||
| 11653 | + apiArgument(pt, &ct->pysig.args[a], FALSE, TRUE, TRUE, TRUE, FALSE, | ||
| 11654 | + fp); | ||
| 11655 | |||
| 11656 | fprintf(fp, ")\n"); | ||
| 11657 | - | ||
| 11658 | - return need_sec; | ||
| 11659 | } | ||
| 11660 | |||
| 11661 | |||
| 11662 | @@ -231,21 +225,16 @@ | ||
| 11663 | /* | ||
| 11664 | * Generate a single API overload. | ||
| 11665 | */ | ||
| 11666 | -static int apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11667 | - overDef *od, int sec, FILE *fp) | ||
| 11668 | +static void apiOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11669 | + overDef *od, FILE *fp) | ||
| 11670 | { | ||
| 11671 | - int need_sec; | ||
| 11672 | - | ||
| 11673 | fprintf(fp, "%s.", mod->name); | ||
| 11674 | prScopedPythonName(fp, scope, od->common->pyname->text); | ||
| 11675 | fprintf(fp, "?%d", METHOD_ID); | ||
| 11676 | |||
| 11677 | - need_sec = exportPythonSignature(pt, fp, &od->pysig, sec, TRUE, TRUE, | ||
| 11678 | - FALSE, FALSE); | ||
| 11679 | + exportPythonSignature(pt, fp, &od->pysig, TRUE, TRUE, FALSE, FALSE); | ||
| 11680 | |||
| 11681 | fprintf(fp, "\n"); | ||
| 11682 | - | ||
| 11683 | - return need_sec; | ||
| 11684 | } | ||
| 11685 | |||
| 11686 | |||
| 11687 | @@ -253,7 +242,7 @@ | ||
| 11688 | * Generate the API for an argument. | ||
| 11689 | */ | ||
| 11690 | static int apiArgument(sipSpec *pt, argDef *ad, int out, int need_comma, | ||
| 11691 | - int sec, int names, int defaults, int in_str, FILE *fp) | ||
| 11692 | + int names, int defaults, int in_str, FILE *fp) | ||
| 11693 | { | ||
| 11694 | const char *tname; | ||
| 11695 | classDef *tscope; | ||
| 11696 | @@ -261,10 +250,7 @@ | ||
| 11697 | if (isArraySize(ad)) | ||
| 11698 | return need_comma; | ||
| 11699 | |||
| 11700 | - if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type)) | ||
| 11701 | - return need_comma; | ||
| 11702 | - | ||
| 11703 | - if ((tname = pyType(pt, ad, sec, &tscope)) == NULL) | ||
| 11704 | + if ((tname = pyType(pt, ad, &tscope)) == NULL) | ||
| 11705 | return need_comma; | ||
| 11706 | |||
| 11707 | if (need_comma) | ||
| 11708 | @@ -327,7 +313,7 @@ | ||
| 11709 | xmlVars(pt, mod, NULL, 1, fp); | ||
| 11710 | |||
| 11711 | for (md = mod->othfuncs; md != NULL; md = md->next) | ||
| 11712 | - xmlFunction(pt, NULL, md, mod->overs, 1, fp); | ||
| 11713 | + xmlFunction(pt, mod, NULL, md, mod->overs, 1, fp); | ||
| 11714 | |||
| 11715 | fprintf(fp, "</Module>\n"); | ||
| 11716 | |||
| 11717 | @@ -336,6 +322,26 @@ | ||
| 11718 | |||
| 11719 | |||
| 11720 | /* | ||
| 11721 | + * Generate a 'realname' attribute containing a fully qualified C/C++ name. | ||
| 11722 | + */ | ||
| 11723 | +static void xmlRealName(scopedNameDef *fqcname, FILE *fp) | ||
| 11724 | +{ | ||
| 11725 | + const char *sep = ""; | ||
| 11726 | + scopedNameDef *snd; | ||
| 11727 | + | ||
| 11728 | + fprintf(fp, " realname=\""); | ||
| 11729 | + | ||
| 11730 | + for (snd = removeGlobalScope(fqcname); snd != NULL; snd = snd->next) | ||
| 11731 | + { | ||
| 11732 | + fprintf(fp, "%s%s", sep, snd->name); | ||
| 11733 | + sep = "::"; | ||
| 11734 | + } | ||
| 11735 | + | ||
| 11736 | + fprintf(fp, "\""); | ||
| 11737 | +} | ||
| 11738 | + | ||
| 11739 | + | ||
| 11740 | +/* | ||
| 11741 | * Generate the XML for a class. | ||
| 11742 | */ | ||
| 11743 | static void xmlClass(sipSpec *pt, moduleDef *mod, classDef *cd, FILE *fp) | ||
| 11744 | @@ -358,9 +364,11 @@ | ||
| 11745 | { | ||
| 11746 | xmlIndent(indent++, fp); | ||
| 11747 | fprintf(fp, "<Class name=\""); | ||
| 11748 | - prScopedPythonName(fp, cd->ecd, cd->pyname->text); | ||
| 11749 | + restPyClass(cd, FALSE, fp); | ||
| 11750 | fprintf(fp, "\""); | ||
| 11751 | |||
| 11752 | + xmlRealName(classFQCName(cd), fp); | ||
| 11753 | + | ||
| 11754 | if (cd->picklecode != NULL) | ||
| 11755 | fprintf(fp, " pickle=\"1\""); | ||
| 11756 | |||
| 11757 | @@ -384,7 +392,7 @@ | ||
| 11758 | if (cl != cd->supers) | ||
| 11759 | fprintf(fp, " "); | ||
| 11760 | |||
| 11761 | - prScopedPythonName(fp, cl->cd->ecd, cl->cd->pyname->text); | ||
| 11762 | + restPyClass(cl->cd, TRUE, fp); | ||
| 11763 | } | ||
| 11764 | |||
| 11765 | fprintf(fp, "\""); | ||
| 11766 | @@ -398,15 +406,14 @@ | ||
| 11767 | if (isPrivateCtor(ct)) | ||
| 11768 | continue; | ||
| 11769 | |||
| 11770 | - if (xmlCtor(pt, cd, ct, FALSE, indent, fp)) | ||
| 11771 | - xmlCtor(pt, cd, ct, TRUE, indent, fp); | ||
| 11772 | + xmlCtor(pt, mod, cd, ct, indent, fp); | ||
| 11773 | } | ||
| 11774 | |||
| 11775 | xmlEnums(pt, mod, cd, indent, fp); | ||
| 11776 | xmlVars(pt, mod, cd, indent, fp); | ||
| 11777 | |||
| 11778 | for (md = cd->members; md != NULL; md = md->next) | ||
| 11779 | - xmlFunction(pt, cd, md, cd->overs, indent, fp); | ||
| 11780 | + xmlFunction(pt, mod, cd, md, cd->overs, indent, fp); | ||
| 11781 | |||
| 11782 | if (!isHiddenNamespace(cd)) | ||
| 11783 | { | ||
| 11784 | @@ -438,15 +445,22 @@ | ||
| 11785 | |||
| 11786 | xmlIndent(indent++, fp); | ||
| 11787 | fprintf(fp, "<Enum name=\""); | ||
| 11788 | - prScopedPythonName(fp, ed->ecd, ed->pyname->text); | ||
| 11789 | - fprintf(fp, "\">\n"); | ||
| 11790 | + restPyEnum(ed, FALSE, fp); | ||
| 11791 | + fprintf(fp, "\""); | ||
| 11792 | + | ||
| 11793 | + xmlRealName(ed->fqcname, fp); | ||
| 11794 | + | ||
| 11795 | + fprintf(fp, ">\n"); | ||
| 11796 | |||
| 11797 | for (emd = ed->members; emd != NULL; emd = emd->next) | ||
| 11798 | { | ||
| 11799 | xmlIndent(indent, fp); | ||
| 11800 | - fprintf(fp, "<EnumMember name=\""); | ||
| 11801 | - prScopedPythonName(fp, ed->ecd, emd->pyname->text); | ||
| 11802 | - fprintf(fp, "\"/>\n"); | ||
| 11803 | + fprintf(fp, "<EnumMember name=\"%s\"", emd->pyname->text); | ||
| 11804 | + | ||
| 11805 | + if (strcmp(emd->pyname->text, emd->cname) != 0) | ||
| 11806 | + fprintf(fp, " realname=\"%s\"", emd->cname); | ||
| 11807 | + | ||
| 11808 | + fprintf(fp, "/>\n"); | ||
| 11809 | } | ||
| 11810 | |||
| 11811 | xmlIndent(--indent, fp); | ||
| 11812 | @@ -495,7 +509,7 @@ | ||
| 11813 | if (isStaticVar(vd)) | ||
| 11814 | fprintf(fp, " static=\"1\""); | ||
| 11815 | |||
| 11816 | - xmlType(pt, &vd->type, FALSE, fp); | ||
| 11817 | + xmlType(pt, mod, &vd->type, FALSE, NoKwArgs, fp); | ||
| 11818 | fprintf(fp, "/>\n"); | ||
| 11819 | } | ||
| 11820 | } | ||
| 11821 | @@ -504,10 +518,10 @@ | ||
| 11822 | /* | ||
| 11823 | * Generate the XML for a ctor. | ||
| 11824 | */ | ||
| 11825 | -static int xmlCtor(sipSpec *pt, classDef *scope, ctorDef *ct, int sec, | ||
| 11826 | +static void xmlCtor(sipSpec *pt, moduleDef *mod, classDef *scope, ctorDef *ct, | ||
| 11827 | int indent, FILE *fp) | ||
| 11828 | { | ||
| 11829 | - int a, need_sec; | ||
| 11830 | + int a; | ||
| 11831 | |||
| 11832 | xmlIndent(indent++, fp); | ||
| 11833 | fprintf(fp, "<Function name=\""); | ||
| 11834 | @@ -518,38 +532,34 @@ | ||
| 11835 | if (ct->pysig.nrArgs == 0) | ||
| 11836 | { | ||
| 11837 | fprintf(fp, "/>\n"); | ||
| 11838 | - return FALSE; | ||
| 11839 | + return; | ||
| 11840 | } | ||
| 11841 | |||
| 11842 | fprintf(fp, ">\n"); | ||
| 11843 | |||
| 11844 | - need_sec = FALSE; | ||
| 11845 | - | ||
| 11846 | for (a = 0; a < ct->pysig.nrArgs; ++a) | ||
| 11847 | { | ||
| 11848 | argDef *ad = &ct->pysig.args[a]; | ||
| 11849 | |||
| 11850 | - xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp); | ||
| 11851 | + if (isInArg(ad)) | ||
| 11852 | + xmlArgument(pt, mod, ad, FALSE, ct->kwargs, FALSE, indent, fp); | ||
| 11853 | |||
| 11854 | - if (ad->atype == rxcon_type || ad->atype == rxdis_type) | ||
| 11855 | - need_sec = TRUE; | ||
| 11856 | + if (isOutArg(ad)) | ||
| 11857 | + xmlArgument(pt, mod, ad, TRUE, ct->kwargs, FALSE, indent, fp); | ||
| 11858 | } | ||
| 11859 | |||
| 11860 | xmlIndent(--indent, fp); | ||
| 11861 | fprintf(fp, "</Function>\n"); | ||
| 11862 | - | ||
| 11863 | - return need_sec; | ||
| 11864 | } | ||
| 11865 | |||
| 11866 | |||
| 11867 | /* | ||
| 11868 | * Generate the XML for a function. | ||
| 11869 | */ | ||
| 11870 | -static void xmlFunction(sipSpec *pt, classDef *scope, memberDef *md, | ||
| 11871 | - overDef *oloads, int indent, FILE *fp) | ||
| 11872 | +static void xmlFunction(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11873 | + memberDef *md, overDef *oloads, int indent, FILE *fp) | ||
| 11874 | { | ||
| 11875 | overDef *od; | ||
| 11876 | - const char *default_str = "default=\"1\" "; | ||
| 11877 | |||
| 11878 | for (od = oloads; od != NULL; od = od->next) | ||
| 11879 | { | ||
| 11880 | @@ -564,14 +574,33 @@ | ||
| 11881 | |||
| 11882 | if (isSignal(od)) | ||
| 11883 | { | ||
| 11884 | - xmlIndent(indent, fp); | ||
| 11885 | - fprintf(fp, "<Signal %sname=\"", default_str); | ||
| 11886 | + int a; | ||
| 11887 | + | ||
| 11888 | + xmlIndent(indent++, fp); | ||
| 11889 | + fprintf(fp, "<Signal name=\""); | ||
| 11890 | prScopedPythonName(fp, scope, md->pyname->text); | ||
| 11891 | - fprintf(fp, "\" sig=\""); | ||
| 11892 | - xmlCppSignature(fp, od); | ||
| 11893 | - fprintf(fp, "\"/>\n"); | ||
| 11894 | + /* TODO: add the C++ signature. */ | ||
| 11895 | + /* fprintf(fp, "\" sig=\""); */ | ||
| 11896 | + /* xmlCppSignature(fp, od); */ | ||
| 11897 | |||
| 11898 | - default_str = ""; | ||
| 11899 | + /* Handle the trivial case. */ | ||
| 11900 | + if (od->pysig.nrArgs == 0) | ||
| 11901 | + { | ||
| 11902 | + fprintf(fp, "\"/>\n"); | ||
| 11903 | + continue; | ||
| 11904 | + } | ||
| 11905 | + | ||
| 11906 | + fprintf(fp, "\">\n"); | ||
| 11907 | + | ||
| 11908 | + for (a = 0; a < od->pysig.nrArgs; ++a) | ||
| 11909 | + { | ||
| 11910 | + argDef *ad = &od->pysig.args[a]; | ||
| 11911 | + | ||
| 11912 | + xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp); | ||
| 11913 | + } | ||
| 11914 | + | ||
| 11915 | + xmlIndent(--indent, fp); | ||
| 11916 | + fprintf(fp, "</Signal>\n"); | ||
| 11917 | |||
| 11918 | continue; | ||
| 11919 | } | ||
| 11920 | @@ -585,8 +614,7 @@ | ||
| 11921 | isstat = FALSE; | ||
| 11922 | } | ||
| 11923 | |||
| 11924 | - if (xmlOverload(pt, scope, md, od, xtnds, isstat, FALSE, indent, fp)) | ||
| 11925 | - xmlOverload(pt, scope, md, od, xtnds, isstat, TRUE, indent, fp); | ||
| 11926 | + xmlOverload(pt, mod, scope, md, od, xtnds, isstat, indent, fp); | ||
| 11927 | } | ||
| 11928 | } | ||
| 11929 | |||
| 11930 | @@ -594,10 +622,11 @@ | ||
| 11931 | /* | ||
| 11932 | * Generate the XML for an overload. | ||
| 11933 | */ | ||
| 11934 | -static int xmlOverload(sipSpec *pt, classDef *scope, memberDef *md, | ||
| 11935 | - overDef *od, classDef *xtnds, int stat, int sec, int indent, FILE *fp) | ||
| 11936 | +static void xmlOverload(sipSpec *pt, moduleDef *mod, classDef *scope, | ||
| 11937 | + memberDef *md, overDef *od, classDef *xtnds, int stat, int indent, | ||
| 11938 | + FILE *fp) | ||
| 11939 | { | ||
| 11940 | - int a, need_sec, no_res; | ||
| 11941 | + int a, no_res; | ||
| 11942 | |||
| 11943 | xmlIndent(indent++, fp); | ||
| 11944 | fprintf(fp, "<Function name=\""); | ||
| 11945 | @@ -635,16 +664,14 @@ | ||
| 11946 | if (no_res && od->pysig.nrArgs == 0) | ||
| 11947 | { | ||
| 11948 | fprintf(fp, "/>\n"); | ||
| 11949 | - return FALSE; | ||
| 11950 | + return; | ||
| 11951 | } | ||
| 11952 | |||
| 11953 | fprintf(fp, ">\n"); | ||
| 11954 | |||
| 11955 | if (!no_res) | ||
| 11956 | - xmlArgument(pt, &od->pysig.result, "out", isResultTransferredBack(od), | ||
| 11957 | - FALSE, indent, fp); | ||
| 11958 | - | ||
| 11959 | - need_sec = FALSE; | ||
| 11960 | + xmlArgument(pt, mod, &od->pysig.result, TRUE, NoKwArgs, | ||
| 11961 | + isResultTransferredBack(od), indent, fp); | ||
| 11962 | |||
| 11963 | for (a = 0; a < od->pysig.nrArgs; ++a) | ||
| 11964 | { | ||
| 11965 | @@ -654,16 +681,15 @@ | ||
| 11966 | if (isNumberSlot(md) && a == 0 && od->pysig.nrArgs == 2) | ||
| 11967 | continue; | ||
| 11968 | |||
| 11969 | - xmlArgument(pt, ad, dirAttribute(ad), FALSE, sec, indent, fp); | ||
| 11970 | + if (isInArg(ad)) | ||
| 11971 | + xmlArgument(pt, mod, ad, FALSE, od->kwargs, FALSE, indent, fp); | ||
| 11972 | |||
| 11973 | - if (ad->atype == rxcon_type || ad->atype == rxdis_type) | ||
| 11974 | - need_sec = TRUE; | ||
| 11975 | + if (isOutArg(ad)) | ||
| 11976 | + xmlArgument(pt, mod, ad, TRUE, od->kwargs, FALSE, indent, fp); | ||
| 11977 | } | ||
| 11978 | |||
| 11979 | xmlIndent(--indent, fp); | ||
| 11980 | fprintf(fp, "</Function>\n"); | ||
| 11981 | - | ||
| 11982 | - return need_sec; | ||
| 11983 | } | ||
| 11984 | |||
| 11985 | |||
| 11986 | @@ -679,65 +705,35 @@ | ||
| 11987 | |||
| 11988 | |||
| 11989 | /* | ||
| 11990 | - * Convert an arguments direction to an XML attribute value. | ||
| 11991 | - */ | ||
| 11992 | -static const char *dirAttribute(argDef *ad) | ||
| 11993 | -{ | ||
| 11994 | - if (isInArg(ad)) | ||
| 11995 | - { | ||
| 11996 | - if (isOutArg(ad)) | ||
| 11997 | - return "inout"; | ||
| 11998 | - | ||
| 11999 | - return NULL; | ||
| 12000 | - } | ||
| 12001 | - | ||
| 12002 | - return "out"; | ||
| 12003 | -} | ||
| 12004 | - | ||
| 12005 | - | ||
| 12006 | -/* | ||
| 12007 | * Generate the XML for an argument. | ||
| 12008 | */ | ||
| 12009 | -static void xmlArgument(sipSpec *pt, argDef *ad, const char *dir, int res_xfer, | ||
| 12010 | - int sec, int indent, FILE *fp) | ||
| 12011 | +static void xmlArgument(sipSpec *pt, moduleDef *mod, argDef *ad, int out, | ||
| 12012 | + KwArgs kwargs, int res_xfer, int indent, FILE *fp) | ||
| 12013 | { | ||
| 12014 | if (isArraySize(ad)) | ||
| 12015 | return; | ||
| 12016 | |||
| 12017 | - if (sec && (ad->atype == slotcon_type || ad->atype == slotdis_type)) | ||
| 12018 | - return; | ||
| 12019 | - | ||
| 12020 | xmlIndent(indent, fp); | ||
| 12021 | - fprintf(fp, "<Argument"); | ||
| 12022 | - xmlType(pt, ad, sec, fp); | ||
| 12023 | + fprintf(fp, "<%s", (out ? "Return" : "Argument")); | ||
| 12024 | + xmlType(pt, mod, ad, out, kwargs, fp); | ||
| 12025 | |||
| 12026 | - if (dir != NULL) | ||
| 12027 | - fprintf(fp, " dir=\"%s\"", dir); | ||
| 12028 | + if (!out) | ||
| 12029 | + { | ||
| 12030 | + if (isAllowNone(ad)) | ||
| 12031 | + fprintf(fp, " allownone=\"1\""); | ||
| 12032 | |||
| 12033 | - if (isAllowNone(ad)) | ||
| 12034 | - fprintf(fp, " allownone=\"1\""); | ||
| 12035 | + if (isDisallowNone(ad)) | ||
| 12036 | + fprintf(fp, " disallownone=\"1\""); | ||
| 12037 | |||
| 12038 | - if (isDisallowNone(ad)) | ||
| 12039 | - fprintf(fp, " disallownone=\"1\""); | ||
| 12040 | + if (isTransferred(ad)) | ||
| 12041 | + fprintf(fp, " transfer=\"to\""); | ||
| 12042 | + else if (isThisTransferred(ad)) | ||
| 12043 | + fprintf(fp, " transfer=\"this\""); | ||
| 12044 | + } | ||
| 12045 | |||
| 12046 | - if (isTransferred(ad)) | ||
| 12047 | - fprintf(fp, " transfer=\"to\""); | ||
| 12048 | - else if (isThisTransferred(ad)) | ||
| 12049 | - fprintf(fp, " transfer=\"this\""); | ||
| 12050 | - else if (res_xfer || isTransferredBack(ad)) | ||
| 12051 | + if (res_xfer || isTransferredBack(ad)) | ||
| 12052 | fprintf(fp, " transfer=\"back\""); | ||
| 12053 | |||
| 12054 | - /* | ||
| 12055 | - * Handle the default value, but ignore it if it is an output only | ||
| 12056 | - * argument. | ||
| 12057 | - */ | ||
| 12058 | - if (ad->defval && (dir == NULL || strcmp(dir, "out") != 0)) | ||
| 12059 | - { | ||
| 12060 | - prcode(fp, " default=\""); | ||
| 12061 | - prDefaultValue(ad, FALSE, fp); | ||
| 12062 | - prcode(fp, "\""); | ||
| 12063 | - } | ||
| 12064 | - | ||
| 12065 | fprintf(fp, "/>\n"); | ||
| 12066 | } | ||
| 12067 | |||
| 12068 | @@ -745,73 +741,68 @@ | ||
| 12069 | /* | ||
| 12070 | * Generate the XML for a type. | ||
| 12071 | */ | ||
| 12072 | -static void xmlType(sipSpec *pt, argDef *ad, int sec, FILE *fp) | ||
| 12073 | +static void xmlType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, | ||
| 12074 | + KwArgs kwargs, FILE *fp) | ||
| 12075 | { | ||
| 12076 | - const char *type_type = NULL, *type_name; | ||
| 12077 | + const char *type_name; | ||
| 12078 | classDef *type_scope; | ||
| 12079 | + typeHintDef *thd; | ||
| 12080 | |||
| 12081 | fprintf(fp, " typename=\""); | ||
| 12082 | |||
| 12083 | - switch (ad->atype) | ||
| 12084 | + /* Handle the argument name. */ | ||
| 12085 | + if (!out && ad->name != NULL) | ||
| 12086 | { | ||
| 12087 | - case class_type: | ||
| 12088 | - type_type = (isOpaque(ad->u.cd) ? "opaque" : "class"); | ||
| 12089 | - break; | ||
| 12090 | - | ||
| 12091 | - case enum_type: | ||
| 12092 | - if (ad->u.ed->pyname != NULL) | ||
| 12093 | - type_type = "enum"; | ||
| 12094 | - break; | ||
| 12095 | - | ||
| 12096 | - case rxcon_type: | ||
| 12097 | - case rxdis_type: | ||
| 12098 | - if (!sec) | ||
| 12099 | - type_type = "class"; | ||
| 12100 | - break; | ||
| 12101 | + if (kwargs == AllKwArgs || (kwargs == OptionalKwArgs && ad->defval != NULL)) | ||
| 12102 | + fprintf(fp, "%s: ", ad->name->text); | ||
| 12103 | + } | ||
| 12104 | |||
| 12105 | - case qobject_type: | ||
| 12106 | - type_type = "class"; | ||
| 12107 | - break; | ||
| 12108 | + /* Use any explicit type hint unless the argument is constrained. */ | ||
| 12109 | + thd = (out ? ad->typehint_out : (isConstrained(ad) ? NULL : ad->typehint_in)); | ||
| 12110 | |||
| 12111 | - case slotcon_type: | ||
| 12112 | - case slotdis_type: | ||
| 12113 | + if (thd != NULL) | ||
| 12114 | + { | ||
| 12115 | + pyiTypeHint(pt, thd, mod, out, NULL, FALSE, TRUE, fp); | ||
| 12116 | + } | ||
| 12117 | + else | ||
| 12118 | + { | ||
| 12119 | + switch (ad->atype) | ||
| 12120 | { | ||
| 12121 | - int a; | ||
| 12122 | - | ||
| 12123 | - prcode(fp, "SLOT("); | ||
| 12124 | - | ||
| 12125 | - for (a = 0; a < ad->u.sa->nrArgs; ++a) | ||
| 12126 | - { | ||
| 12127 | - if (a > 0) | ||
| 12128 | - prcode(fp, ", "); | ||
| 12129 | + case class_type: | ||
| 12130 | + restPyClass(ad->u.cd, TRUE, fp); | ||
| 12131 | + break; | ||
| 12132 | |||
| 12133 | - prcode(fp, "%M%B%M", &ad->u.sa->args[a]); | ||
| 12134 | - } | ||
| 12135 | + case enum_type: | ||
| 12136 | + if (ad->u.ed->pyname != NULL) | ||
| 12137 | + restPyEnum(ad->u.ed, TRUE, fp); | ||
| 12138 | + else | ||
| 12139 | + fprintf(fp, "int"); | ||
| 12140 | |||
| 12141 | - prcode(fp, ")"); | ||
| 12142 | - } | ||
| 12143 | + break; | ||
| 12144 | |||
| 12145 | - break; | ||
| 12146 | + case qobject_type: | ||
| 12147 | + restPyClass(pt->qobject_cd, TRUE, fp); | ||
| 12148 | + break; | ||
| 12149 | |||
| 12150 | - case mapped_type: | ||
| 12151 | - type_type = "mappedtype"; | ||
| 12152 | - break; | ||
| 12153 | + case mapped_type: | ||
| 12154 | + /* There would normally be a type hint. */ | ||
| 12155 | + fprintf(fp, "unknown-type"); | ||
| 12156 | + break; | ||
| 12157 | |||
| 12158 | - /* Suppress a compiler warning. */ | ||
| 12159 | - default: | ||
| 12160 | - ; | ||
| 12161 | + default: | ||
| 12162 | + if ((type_name = pyType(pt, ad, &type_scope)) != NULL) | ||
| 12163 | + prScopedPythonName(fp, type_scope, type_name); | ||
| 12164 | + } | ||
| 12165 | } | ||
| 12166 | |||
| 12167 | - if ((type_name = pyType(pt, ad, sec, &type_scope)) != NULL) | ||
| 12168 | - prScopedPythonName(fp, type_scope, type_name); | ||
| 12169 | + if (!out && ad->name != NULL && ad->defval != NULL) | ||
| 12170 | + { | ||
| 12171 | + fprintf(fp, " = "); | ||
| 12172 | + /* TODO: use reST references where appropriate. */ | ||
| 12173 | + prDefaultValue(ad, FALSE, fp); | ||
| 12174 | + } | ||
| 12175 | |||
| 12176 | fprintf(fp, "\""); | ||
| 12177 | - | ||
| 12178 | - if (type_type != NULL) | ||
| 12179 | - fprintf(fp, " typetype=\"%s\"", type_type); | ||
| 12180 | - | ||
| 12181 | - if (ad->name != NULL) | ||
| 12182 | - fprintf(fp, " name=\"%s\"", ad->name->text); | ||
| 12183 | } | ||
| 12184 | |||
| 12185 | |||
| 12186 | @@ -828,7 +819,7 @@ | ||
| 12187 | /* | ||
| 12188 | * Get the Python representation of a type. | ||
| 12189 | */ | ||
| 12190 | -static const char *pyType(sipSpec *pt, argDef *ad, int sec, classDef **scope) | ||
| 12191 | +static const char *pyType(sipSpec *pt, argDef *ad, classDef **scope) | ||
| 12192 | { | ||
| 12193 | const char *type_name; | ||
| 12194 | |||
| 12195 | @@ -947,23 +938,6 @@ | ||
| 12196 | type_name = "int"; | ||
| 12197 | break; | ||
| 12198 | |||
| 12199 | - case signal_type: | ||
| 12200 | - type_name = "SIGNAL()"; | ||
| 12201 | - break; | ||
| 12202 | - | ||
| 12203 | - case slot_type: | ||
| 12204 | - type_name = "SLOT()"; | ||
| 12205 | - break; | ||
| 12206 | - | ||
| 12207 | - case rxcon_type: | ||
| 12208 | - case rxdis_type: | ||
| 12209 | - if (sec) | ||
| 12210 | - type_name = "callable"; | ||
| 12211 | - else | ||
| 12212 | - type_name = "QObject"; | ||
| 12213 | - | ||
| 12214 | - break; | ||
| 12215 | - | ||
| 12216 | case qobject_type: | ||
| 12217 | type_name = "QObject"; | ||
| 12218 | break; | ||
| 12219 | @@ -1046,11 +1020,6 @@ | ||
| 12220 | type_name = "..."; | ||
| 12221 | break; | ||
| 12222 | |||
| 12223 | - case slotcon_type: | ||
| 12224 | - case anyslot_type: | ||
| 12225 | - type_name = "SLOT()"; | ||
| 12226 | - break; | ||
| 12227 | - | ||
| 12228 | default: | ||
| 12229 | type_name = NULL; | ||
| 12230 | } | ||
| 12231 | @@ -1062,10 +1031,10 @@ | ||
| 12232 | /* | ||
| 12233 | * Generate a Python signature. | ||
| 12234 | */ | ||
| 12235 | -static int exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, | ||
| 12236 | - int sec, int names, int defaults, int in_str, int is_signal) | ||
| 12237 | +static void exportPythonSignature(sipSpec *pt, FILE *fp, signatureDef *sd, | ||
| 12238 | + int names, int defaults, int in_str, int is_signal) | ||
| 12239 | { | ||
| 12240 | - int need_sec = FALSE, need_comma = FALSE, is_res, nr_out, a; | ||
| 12241 | + int need_comma = FALSE, is_res, nr_out, a; | ||
| 12242 | |||
| 12243 | if (is_signal) | ||
| 12244 | { | ||
| 12245 | @@ -1089,11 +1058,8 @@ | ||
| 12246 | if (!isInArg(ad)) | ||
| 12247 | continue; | ||
| 12248 | |||
| 12249 | - need_comma = apiArgument(pt, ad, FALSE, need_comma, sec, names, | ||
| 12250 | - defaults, in_str, fp); | ||
| 12251 | - | ||
| 12252 | - if (ad->atype == rxcon_type || ad->atype == rxdis_type) | ||
| 12253 | - need_sec = TRUE; | ||
| 12254 | + need_comma = apiArgument(pt, ad, FALSE, need_comma, names, defaults, | ||
| 12255 | + in_str, fp); | ||
| 12256 | } | ||
| 12257 | |||
| 12258 | if (is_signal) | ||
| 12259 | @@ -1118,7 +1084,7 @@ | ||
| 12260 | fprintf(fp, "("); | ||
| 12261 | |||
| 12262 | if (is_res) | ||
| 12263 | - need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, sec, FALSE, | ||
| 12264 | + need_comma = apiArgument(pt, &sd->result, TRUE, FALSE, FALSE, | ||
| 12265 | FALSE, in_str, fp); | ||
| 12266 | else | ||
| 12267 | need_comma = FALSE; | ||
| 12268 | @@ -1129,13 +1095,43 @@ | ||
| 12269 | |||
| 12270 | if (isOutArg(ad)) | ||
| 12271 | /* We don't want the name in the result tuple. */ | ||
| 12272 | - need_comma = apiArgument(pt, ad, TRUE, need_comma, sec, FALSE, | ||
| 12273 | + need_comma = apiArgument(pt, ad, TRUE, need_comma, FALSE, | ||
| 12274 | FALSE, in_str, fp); | ||
| 12275 | } | ||
| 12276 | |||
| 12277 | if ((is_res && nr_out > 0) || nr_out > 1) | ||
| 12278 | fprintf(fp, ")"); | ||
| 12279 | } | ||
| 12280 | +} | ||
| 12281 | |||
| 12282 | - return need_sec; | ||
| 12283 | + | ||
| 12284 | +/* | ||
| 12285 | + * Generate a fully qualified class name optionally as a reST reference. | ||
| 12286 | + */ | ||
| 12287 | +void restPyClass(classDef *cd, int as_ref, FILE *fp) | ||
| 12288 | +{ | ||
| 12289 | + if (as_ref) | ||
| 12290 | + fprintf(fp, ":sip:class:`~"); | ||
| 12291 | + | ||
| 12292 | + fprintf(fp, "%s.", cd->iff->module->fullname->text); | ||
| 12293 | + prScopedPythonName(fp, cd->ecd, cd->pyname->text); | ||
| 12294 | + | ||
| 12295 | + if (as_ref) | ||
| 12296 | + fprintf(fp, "`"); | ||
| 12297 | +} | ||
| 12298 | + | ||
| 12299 | + | ||
| 12300 | +/* | ||
| 12301 | + * Generate a fully qualified enum name optionally as a reST reference. | ||
| 12302 | + */ | ||
| 12303 | +void restPyEnum(enumDef *ed, int as_ref, FILE *fp) | ||
| 12304 | +{ | ||
| 12305 | + if (as_ref) | ||
| 12306 | + fprintf(fp, ":sip:enum:`~"); | ||
| 12307 | + | ||
| 12308 | + fprintf(fp, "%s.", ed->module->fullname->text); | ||
| 12309 | + prScopedPythonName(fp, ed->ecd, ed->pyname->text); | ||
| 12310 | + | ||
| 12311 | + if (as_ref) | ||
| 12312 | + fprintf(fp, "`"); | ||
| 12313 | } | ||
| 12314 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/lexer.c sip/sipgen/lexer.c | ||
| 12315 | --- ./sip-4.19.12.orig/sipgen/lexer.c 2018-07-05 05:55:19.000000000 -0400 | ||
| 12316 | +++ sip/sipgen/lexer.c 2018-09-18 18:12:23.334057750 -0400 | ||
| 12317 | @@ -1,6 +1,6 @@ | ||
| 12318 | -#line 2 "sip-4.19.12/sipgen/lexer.c" | ||
| 12319 | +#line 2 "sipgen/lexer.c" | ||
| 12320 | |||
| 12321 | -#line 4 "sip-4.19.12/sipgen/lexer.c" | ||
| 12322 | +#line 4 "sipgen/lexer.c" | ||
| 12323 | |||
| 12324 | #define YY_INT_ALIGNED short int | ||
| 12325 | |||
| 12326 | @@ -8,8 +8,8 @@ | ||
| 12327 | |||
| 12328 | #define FLEX_SCANNER | ||
| 12329 | #define YY_FLEX_MAJOR_VERSION 2 | ||
| 12330 | -#define YY_FLEX_MINOR_VERSION 5 | ||
| 12331 | -#define YY_FLEX_SUBMINOR_VERSION 35 | ||
| 12332 | +#define YY_FLEX_MINOR_VERSION 6 | ||
| 12333 | +#define YY_FLEX_SUBMINOR_VERSION 1 | ||
| 12334 | #if YY_FLEX_SUBMINOR_VERSION > 0 | ||
| 12335 | #define FLEX_BETA | ||
| 12336 | #endif | ||
| 12337 | @@ -47,7 +47,6 @@ | ||
| 12338 | typedef uint16_t flex_uint16_t; | ||
| 12339 | typedef int32_t flex_int32_t; | ||
| 12340 | typedef uint32_t flex_uint32_t; | ||
| 12341 | -typedef uint64_t flex_uint64_t; | ||
| 12342 | #else | ||
| 12343 | typedef signed char flex_int8_t; | ||
| 12344 | typedef short int flex_int16_t; | ||
| 12345 | @@ -55,7 +54,6 @@ | ||
| 12346 | typedef unsigned char flex_uint8_t; | ||
| 12347 | typedef unsigned short int flex_uint16_t; | ||
| 12348 | typedef unsigned int flex_uint32_t; | ||
| 12349 | -#endif /* ! C99 */ | ||
| 12350 | |||
| 12351 | /* Limits of integral types. */ | ||
| 12352 | #ifndef INT8_MIN | ||
| 12353 | @@ -86,27 +84,17 @@ | ||
| 12354 | #define UINT32_MAX (4294967295U) | ||
| 12355 | #endif | ||
| 12356 | |||
| 12357 | -#endif /* ! FLEXINT_H */ | ||
| 12358 | - | ||
| 12359 | -#ifdef __cplusplus | ||
| 12360 | - | ||
| 12361 | -/* The "const" storage-class-modifier is valid. */ | ||
| 12362 | -#define YY_USE_CONST | ||
| 12363 | - | ||
| 12364 | -#else /* ! __cplusplus */ | ||
| 12365 | - | ||
| 12366 | -/* C99 requires __STDC__ to be defined as 1. */ | ||
| 12367 | -#if defined (__STDC__) | ||
| 12368 | - | ||
| 12369 | -#define YY_USE_CONST | ||
| 12370 | +#endif /* ! C99 */ | ||
| 12371 | |||
| 12372 | -#endif /* defined (__STDC__) */ | ||
| 12373 | -#endif /* ! __cplusplus */ | ||
| 12374 | +#endif /* ! FLEXINT_H */ | ||
| 12375 | |||
| 12376 | -#ifdef YY_USE_CONST | ||
| 12377 | +/* TODO: this is always defined, so inline it */ | ||
| 12378 | #define yyconst const | ||
| 12379 | + | ||
| 12380 | +#if defined(__GNUC__) && __GNUC__ >= 3 | ||
| 12381 | +#define yynoreturn __attribute__((__noreturn__)) | ||
| 12382 | #else | ||
| 12383 | -#define yyconst | ||
| 12384 | +#define yynoreturn | ||
| 12385 | #endif | ||
| 12386 | |||
| 12387 | /* Returned upon end-of-file. */ | ||
| 12388 | @@ -142,7 +130,15 @@ | ||
| 12389 | |||
| 12390 | /* Size of default input buffer. */ | ||
| 12391 | #ifndef YY_BUF_SIZE | ||
| 12392 | +#ifdef __ia64__ | ||
| 12393 | +/* On IA-64, the buffer size is 16k, not 8k. | ||
| 12394 | + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. | ||
| 12395 | + * Ditto for the __ia64__ case accordingly. | ||
| 12396 | + */ | ||
| 12397 | +#define YY_BUF_SIZE 32768 | ||
| 12398 | +#else | ||
| 12399 | #define YY_BUF_SIZE 16384 | ||
| 12400 | +#endif /* __ia64__ */ | ||
| 12401 | #endif | ||
| 12402 | |||
| 12403 | /* The state buf must be large enough to hold one state per character in the main buffer. | ||
| 12404 | @@ -159,7 +155,7 @@ | ||
| 12405 | typedef size_t yy_size_t; | ||
| 12406 | #endif | ||
| 12407 | |||
| 12408 | -extern yy_size_t yyleng; | ||
| 12409 | +extern int yyleng; | ||
| 12410 | |||
| 12411 | extern FILE *yyin, *yyout; | ||
| 12412 | |||
| 12413 | @@ -168,13 +164,14 @@ | ||
| 12414 | #define EOB_ACT_LAST_MATCH 2 | ||
| 12415 | |||
| 12416 | #define YY_LESS_LINENO(n) | ||
| 12417 | + #define YY_LINENO_REWIND_TO(ptr) | ||
| 12418 | |||
| 12419 | /* Return all but the first "n" matched characters back to the input stream. */ | ||
| 12420 | #define yyless(n) \ | ||
| 12421 | do \ | ||
| 12422 | { \ | ||
| 12423 | /* Undo effects of setting up yytext. */ \ | ||
| 12424 | - int yyless_macro_arg = (n); \ | ||
| 12425 | + yy_size_t yyless_macro_arg = (n); \ | ||
| 12426 | YY_LESS_LINENO(yyless_macro_arg);\ | ||
| 12427 | *yy_cp = (yy_hold_char); \ | ||
| 12428 | YY_RESTORE_YY_MORE_OFFSET \ | ||
| 12429 | @@ -197,12 +194,12 @@ | ||
| 12430 | /* Size of input buffer in bytes, not including room for EOB | ||
| 12431 | * characters. | ||
| 12432 | */ | ||
| 12433 | - yy_size_t yy_buf_size; | ||
| 12434 | + int yy_buf_size; | ||
| 12435 | |||
| 12436 | /* Number of characters read into yy_ch_buf, not including EOB | ||
| 12437 | * characters. | ||
| 12438 | */ | ||
| 12439 | - yy_size_t yy_n_chars; | ||
| 12440 | + int yy_n_chars; | ||
| 12441 | |||
| 12442 | /* Whether we "own" the buffer - i.e., we know we created it, | ||
| 12443 | * and can realloc() it to grow it, and should free() it to | ||
| 12444 | @@ -253,7 +250,7 @@ | ||
| 12445 | /* Stack of input buffers. */ | ||
| 12446 | static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ | ||
| 12447 | static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ | ||
| 12448 | -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ | ||
| 12449 | +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ | ||
| 12450 | |||
| 12451 | /* We provide macros for accessing buffer states in case in the | ||
| 12452 | * future we want to put the buffer states in a more general | ||
| 12453 | @@ -272,11 +269,11 @@ | ||
| 12454 | |||
| 12455 | /* yy_hold_char holds the character lost when yytext is formed. */ | ||
| 12456 | static char yy_hold_char; | ||
| 12457 | -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ | ||
| 12458 | -yy_size_t yyleng; | ||
| 12459 | +static int yy_n_chars; /* number of characters read into yy_ch_buf */ | ||
| 12460 | +int yyleng; | ||
| 12461 | |||
| 12462 | /* Points to current character in buffer. */ | ||
| 12463 | -static char *yy_c_buf_p = (char *) 0; | ||
| 12464 | +static char *yy_c_buf_p = NULL; | ||
| 12465 | static int yy_init = 0; /* whether we need to initialize */ | ||
| 12466 | static int yy_start = 0; /* start state number */ | ||
| 12467 | |||
| 12468 | @@ -301,7 +298,7 @@ | ||
| 12469 | |||
| 12470 | YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); | ||
| 12471 | YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); | ||
| 12472 | -YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len ); | ||
| 12473 | +YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); | ||
| 12474 | |||
| 12475 | void *yyalloc (yy_size_t ); | ||
| 12476 | void *yyrealloc (void *,yy_size_t ); | ||
| 12477 | @@ -335,7 +332,7 @@ | ||
| 12478 | |||
| 12479 | typedef unsigned char YY_CHAR; | ||
| 12480 | |||
| 12481 | -FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; | ||
| 12482 | +FILE *yyin = NULL, *yyout = NULL; | ||
| 12483 | |||
| 12484 | typedef int yy_state_type; | ||
| 12485 | |||
| 12486 | @@ -344,19 +341,22 @@ | ||
| 12487 | int yylineno = 1; | ||
| 12488 | |||
| 12489 | extern char *yytext; | ||
| 12490 | +#ifdef yytext_ptr | ||
| 12491 | +#undef yytext_ptr | ||
| 12492 | +#endif | ||
| 12493 | #define yytext_ptr yytext | ||
| 12494 | |||
| 12495 | static yy_state_type yy_get_previous_state (void ); | ||
| 12496 | static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); | ||
| 12497 | static int yy_get_next_buffer (void ); | ||
| 12498 | -static void yy_fatal_error (yyconst char msg[] ); | ||
| 12499 | +static void yynoreturn yy_fatal_error (yyconst char* msg ); | ||
| 12500 | |||
| 12501 | /* Done after the current pattern has been matched and before the | ||
| 12502 | * corresponding action - sets up yytext. | ||
| 12503 | */ | ||
| 12504 | #define YY_DO_BEFORE_ACTION \ | ||
| 12505 | (yytext_ptr) = yy_bp; \ | ||
| 12506 | - yyleng = (yy_size_t) (yy_cp - yy_bp); \ | ||
| 12507 | + yyleng = (int) (yy_cp - yy_bp); \ | ||
| 12508 | (yy_hold_char) = *yy_cp; \ | ||
| 12509 | *yy_cp = '\0'; \ | ||
| 12510 | (yy_c_buf_p) = yy_cp; | ||
| 12511 | @@ -509,7 +509,7 @@ | ||
| 12512 | 131, 113, 0, 113, 0, 113, 7, 113, 101, 0 | ||
| 12513 | } ; | ||
| 12514 | |||
| 12515 | -static yyconst flex_int32_t yy_ec[256] = | ||
| 12516 | +static yyconst YY_CHAR yy_ec[256] = | ||
| 12517 | { 0, | ||
| 12518 | 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, | ||
| 12519 | 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, | ||
| 12520 | @@ -541,7 +541,7 @@ | ||
| 12521 | 1, 1, 1, 1, 1 | ||
| 12522 | } ; | ||
| 12523 | |||
| 12524 | -static yyconst flex_int32_t yy_meta[70] = | ||
| 12525 | +static yyconst YY_CHAR yy_meta[70] = | ||
| 12526 | { 0, | ||
| 12527 | 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, | ||
| 12528 | 1, 3, 3, 3, 4, 4, 1, 4, 4, 4, | ||
| 12529 | @@ -552,7 +552,7 @@ | ||
| 12530 | 3, 3, 3, 3, 3, 3, 3, 3, 1 | ||
| 12531 | } ; | ||
| 12532 | |||
| 12533 | -static yyconst flex_int16_t yy_base[1239] = | ||
| 12534 | +static yyconst flex_uint16_t yy_base[1239] = | ||
| 12535 | { 0, | ||
| 12536 | 0, 68, 2823, 69, 70, 73, 75, 75, 2817, 80, | ||
| 12537 | 2824, 2827, 2827, 2827, 73, 82, 77, 87, 77, 128, | ||
| 12538 | @@ -832,7 +832,7 @@ | ||
| 12539 | 1230, 1230, 1230, 1230, 1230, 1230, 1230, 1230 | ||
| 12540 | } ; | ||
| 12541 | |||
| 12542 | -static yyconst flex_int16_t yy_nxt[2897] = | ||
| 12543 | +static yyconst flex_uint16_t yy_nxt[2897] = | ||
| 12544 | { 0, | ||
| 12545 | 12, 13, 14, 13, 15, 12, 16, 12, 12, 12, | ||
| 12546 | 12, 17, 18, 19, 20, 21, 22, 23, 23, 23, | ||
| 12547 | @@ -1492,7 +1492,7 @@ | ||
| 12548 | #define YY_MORE_ADJ 0 | ||
| 12549 | #define YY_RESTORE_YY_MORE_OFFSET | ||
| 12550 | char *yytext; | ||
| 12551 | -#line 1 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12552 | +#line 1 "sipgen/metasrc/lexer.l" | ||
| 12553 | /* | ||
| 12554 | * The SIP lexer. | ||
| 12555 | * | ||
| 12556 | @@ -1510,7 +1510,7 @@ | ||
| 12557 | * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 12558 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 12559 | */ | ||
| 12560 | -#line 20 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12561 | +#line 20 "sipgen/metasrc/lexer.l" | ||
| 12562 | #include <stdio.h> | ||
| 12563 | #include <stdlib.h> | ||
| 12564 | #include <string.h> | ||
| 12565 | @@ -1560,7 +1560,7 @@ | ||
| 12566 | |||
| 12567 | |||
| 12568 | |||
| 12569 | -#line 1564 "sip-4.19.12/sipgen/lexer.c" | ||
| 12570 | +#line 1564 "sipgen/lexer.c" | ||
| 12571 | |||
| 12572 | #define INITIAL 0 | ||
| 12573 | #define code 1 | ||
| 12574 | @@ -1597,19 +1597,19 @@ | ||
| 12575 | |||
| 12576 | FILE *yyget_in (void ); | ||
| 12577 | |||
| 12578 | -void yyset_in (FILE * in_str ); | ||
| 12579 | +void yyset_in (FILE * _in_str ); | ||
| 12580 | |||
| 12581 | FILE *yyget_out (void ); | ||
| 12582 | |||
| 12583 | -void yyset_out (FILE * out_str ); | ||
| 12584 | +void yyset_out (FILE * _out_str ); | ||
| 12585 | |||
| 12586 | -yy_size_t yyget_leng (void ); | ||
| 12587 | + int yyget_leng (void ); | ||
| 12588 | |||
| 12589 | char *yyget_text (void ); | ||
| 12590 | |||
| 12591 | int yyget_lineno (void ); | ||
| 12592 | |||
| 12593 | -void yyset_lineno (int line_number ); | ||
| 12594 | +void yyset_lineno (int _line_number ); | ||
| 12595 | |||
| 12596 | /* Macros after this point can all be overridden by user definitions in | ||
| 12597 | * section 1. | ||
| 12598 | @@ -1623,8 +1623,12 @@ | ||
| 12599 | #endif | ||
| 12600 | #endif | ||
| 12601 | |||
| 12602 | +#ifndef YY_NO_UNPUT | ||
| 12603 | + | ||
| 12604 | static void yyunput (int c,char *buf_ptr ); | ||
| 12605 | |||
| 12606 | +#endif | ||
| 12607 | + | ||
| 12608 | #ifndef yytext_ptr | ||
| 12609 | static void yy_flex_strncpy (char *,yyconst char *,int ); | ||
| 12610 | #endif | ||
| 12611 | @@ -1647,7 +1651,7 @@ | ||
| 12612 | static int yy_start_stack_depth = 0; | ||
| 12613 | static int *yy_start_stack = NULL; | ||
| 12614 | |||
| 12615 | - static void yy_push_state (int new_state ); | ||
| 12616 | + static void yy_push_state (int _new_state ); | ||
| 12617 | |||
| 12618 | static void yy_pop_state (void ); | ||
| 12619 | |||
| 12620 | @@ -1655,7 +1659,12 @@ | ||
| 12621 | |||
| 12622 | /* Amount of stuff to slurp up with each read. */ | ||
| 12623 | #ifndef YY_READ_BUF_SIZE | ||
| 12624 | +#ifdef __ia64__ | ||
| 12625 | +/* On IA-64, the buffer size is 16k, not 8k */ | ||
| 12626 | +#define YY_READ_BUF_SIZE 16384 | ||
| 12627 | +#else | ||
| 12628 | #define YY_READ_BUF_SIZE 8192 | ||
| 12629 | +#endif /* __ia64__ */ | ||
| 12630 | #endif | ||
| 12631 | |||
| 12632 | /* Copy whatever the last rule matched to the standard output. */ | ||
| 12633 | @@ -1663,7 +1672,7 @@ | ||
| 12634 | /* This used to be an fputs(), but since the string might contain NUL's, | ||
| 12635 | * we now use fwrite(). | ||
| 12636 | */ | ||
| 12637 | -#define ECHO fwrite( yytext, yyleng, 1, yyout ) | ||
| 12638 | +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) | ||
| 12639 | #endif | ||
| 12640 | |||
| 12641 | /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, | ||
| 12642 | @@ -1674,7 +1683,7 @@ | ||
| 12643 | if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ | ||
| 12644 | { \ | ||
| 12645 | int c = '*'; \ | ||
| 12646 | - yy_size_t n; \ | ||
| 12647 | + int n; \ | ||
| 12648 | for ( n = 0; n < max_size && \ | ||
| 12649 | (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ | ||
| 12650 | buf[n] = (char) c; \ | ||
| 12651 | @@ -1687,7 +1696,7 @@ | ||
| 12652 | else \ | ||
| 12653 | { \ | ||
| 12654 | errno=0; \ | ||
| 12655 | - while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ | ||
| 12656 | + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ | ||
| 12657 | { \ | ||
| 12658 | if( errno != EINTR) \ | ||
| 12659 | { \ | ||
| 12660 | @@ -1742,7 +1751,7 @@ | ||
| 12661 | |||
| 12662 | /* Code executed at the end of each rule. */ | ||
| 12663 | #ifndef YY_BREAK | ||
| 12664 | -#define YY_BREAK break; | ||
| 12665 | +#define YY_BREAK /*LINTED*/break; | ||
| 12666 | #endif | ||
| 12667 | |||
| 12668 | #define YY_RULE_SETUP \ | ||
| 12669 | @@ -1755,15 +1764,10 @@ | ||
| 12670 | */ | ||
| 12671 | YY_DECL | ||
| 12672 | { | ||
| 12673 | - register yy_state_type yy_current_state; | ||
| 12674 | - register char *yy_cp, *yy_bp; | ||
| 12675 | - register int yy_act; | ||
| 12676 | + yy_state_type yy_current_state; | ||
| 12677 | + char *yy_cp, *yy_bp; | ||
| 12678 | + int yy_act; | ||
| 12679 | |||
| 12680 | -#line 74 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12681 | - | ||
| 12682 | - | ||
| 12683 | -#line 1766 "sip-4.19.12/sipgen/lexer.c" | ||
| 12684 | - | ||
| 12685 | if ( !(yy_init) ) | ||
| 12686 | { | ||
| 12687 | (yy_init) = 1; | ||
| 12688 | @@ -1790,7 +1794,13 @@ | ||
| 12689 | yy_load_buffer_state( ); | ||
| 12690 | } | ||
| 12691 | |||
| 12692 | - while ( 1 ) /* loops until end-of-file is reached */ | ||
| 12693 | + { | ||
| 12694 | +#line 74 "sipgen/metasrc/lexer.l" | ||
| 12695 | + | ||
| 12696 | + | ||
| 12697 | +#line 1802 "sipgen/lexer.c" | ||
| 12698 | + | ||
| 12699 | + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ | ||
| 12700 | { | ||
| 12701 | yy_cp = (yy_c_buf_p); | ||
| 12702 | |||
| 12703 | @@ -1807,7 +1817,7 @@ | ||
| 12704 | yy_match: | ||
| 12705 | do | ||
| 12706 | { | ||
| 12707 | - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; | ||
| 12708 | + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; | ||
| 12709 | if ( yy_accept[yy_current_state] ) | ||
| 12710 | { | ||
| 12711 | (yy_last_accepting_state) = yy_current_state; | ||
| 12712 | @@ -1819,7 +1829,7 @@ | ||
| 12713 | if ( yy_current_state >= 1231 ) | ||
| 12714 | yy_c = yy_meta[(unsigned int) yy_c]; | ||
| 12715 | } | ||
| 12716 | - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||
| 12717 | + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; | ||
| 12718 | ++yy_cp; | ||
| 12719 | } | ||
| 12720 | while ( yy_base[yy_current_state] != 2827 ); | ||
| 12721 | @@ -1848,527 +1858,527 @@ | ||
| 12722 | |||
| 12723 | case 1: | ||
| 12724 | YY_RULE_SETUP | ||
| 12725 | -#line 76 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12726 | +#line 76 "sipgen/metasrc/lexer.l" | ||
| 12727 | {BEGIN directive_start; return TK_API;} | ||
| 12728 | YY_BREAK | ||
| 12729 | case 2: | ||
| 12730 | YY_RULE_SETUP | ||
| 12731 | -#line 77 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12732 | +#line 77 "sipgen/metasrc/lexer.l" | ||
| 12733 | {BEGIN directive_start; return TK_AUTOPYNAME;} | ||
| 12734 | YY_BREAK | ||
| 12735 | case 3: | ||
| 12736 | YY_RULE_SETUP | ||
| 12737 | -#line 78 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12738 | +#line 78 "sipgen/metasrc/lexer.l" | ||
| 12739 | {return TK_CMODULE;} | ||
| 12740 | YY_BREAK | ||
| 12741 | case 4: | ||
| 12742 | YY_RULE_SETUP | ||
| 12743 | -#line 79 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12744 | +#line 79 "sipgen/metasrc/lexer.l" | ||
| 12745 | {BEGIN directive_start; return TK_COMPOMODULE;} | ||
| 12746 | YY_BREAK | ||
| 12747 | case 5: | ||
| 12748 | YY_RULE_SETUP | ||
| 12749 | -#line 80 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12750 | +#line 80 "sipgen/metasrc/lexer.l" | ||
| 12751 | {BEGIN directive_start; return TK_CONSMODULE;} | ||
| 12752 | YY_BREAK | ||
| 12753 | case 6: | ||
| 12754 | YY_RULE_SETUP | ||
| 12755 | -#line 81 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12756 | +#line 81 "sipgen/metasrc/lexer.l" | ||
| 12757 | {BEGIN directive_start; return TK_DEFDOCSTRFMT;} | ||
| 12758 | YY_BREAK | ||
| 12759 | case 7: | ||
| 12760 | YY_RULE_SETUP | ||
| 12761 | -#line 82 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12762 | +#line 82 "sipgen/metasrc/lexer.l" | ||
| 12763 | {BEGIN directive_start; return TK_DEFDOCSTRSIG;} | ||
| 12764 | YY_BREAK | ||
| 12765 | case 8: | ||
| 12766 | YY_RULE_SETUP | ||
| 12767 | -#line 83 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12768 | +#line 83 "sipgen/metasrc/lexer.l" | ||
| 12769 | {BEGIN directive_start; return TK_DEFENCODING;} | ||
| 12770 | YY_BREAK | ||
| 12771 | case 9: | ||
| 12772 | YY_RULE_SETUP | ||
| 12773 | -#line 84 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12774 | +#line 84 "sipgen/metasrc/lexer.l" | ||
| 12775 | {BEGIN directive_start; return TK_DEFMETATYPE;} | ||
| 12776 | YY_BREAK | ||
| 12777 | case 10: | ||
| 12778 | YY_RULE_SETUP | ||
| 12779 | -#line 85 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12780 | +#line 85 "sipgen/metasrc/lexer.l" | ||
| 12781 | {BEGIN directive_start; return TK_DEFSUPERTYPE;} | ||
| 12782 | YY_BREAK | ||
| 12783 | case 11: | ||
| 12784 | YY_RULE_SETUP | ||
| 12785 | -#line 86 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12786 | +#line 86 "sipgen/metasrc/lexer.l" | ||
| 12787 | {return TK_END;} | ||
| 12788 | YY_BREAK | ||
| 12789 | case 12: | ||
| 12790 | YY_RULE_SETUP | ||
| 12791 | -#line 87 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12792 | +#line 87 "sipgen/metasrc/lexer.l" | ||
| 12793 | {BEGIN INITIAL; return TK_END;} | ||
| 12794 | YY_BREAK | ||
| 12795 | case 13: | ||
| 12796 | YY_RULE_SETUP | ||
| 12797 | -#line 88 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12798 | +#line 88 "sipgen/metasrc/lexer.l" | ||
| 12799 | {return TK_EXCEPTION;} | ||
| 12800 | YY_BREAK | ||
| 12801 | case 14: | ||
| 12802 | YY_RULE_SETUP | ||
| 12803 | -#line 89 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12804 | +#line 89 "sipgen/metasrc/lexer.l" | ||
| 12805 | {BEGIN directive_start; return TK_FEATURE;} | ||
| 12806 | YY_BREAK | ||
| 12807 | case 15: | ||
| 12808 | YY_RULE_SETUP | ||
| 12809 | -#line 90 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12810 | +#line 90 "sipgen/metasrc/lexer.l" | ||
| 12811 | {BEGIN directive_start; return TK_HIDE_NS;} | ||
| 12812 | YY_BREAK | ||
| 12813 | case 16: | ||
| 12814 | YY_RULE_SETUP | ||
| 12815 | -#line 91 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12816 | +#line 91 "sipgen/metasrc/lexer.l" | ||
| 12817 | {return TK_IF;} | ||
| 12818 | YY_BREAK | ||
| 12819 | case 17: | ||
| 12820 | YY_RULE_SETUP | ||
| 12821 | -#line 92 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12822 | +#line 92 "sipgen/metasrc/lexer.l" | ||
| 12823 | {BEGIN directive_start; return TK_IMPORT;} | ||
| 12824 | YY_BREAK | ||
| 12825 | case 18: | ||
| 12826 | YY_RULE_SETUP | ||
| 12827 | -#line 93 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12828 | +#line 93 "sipgen/metasrc/lexer.l" | ||
| 12829 | {BEGIN directive_start; return TK_INCLUDE;} | ||
| 12830 | YY_BREAK | ||
| 12831 | case 19: | ||
| 12832 | YY_RULE_SETUP | ||
| 12833 | -#line 94 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12834 | +#line 94 "sipgen/metasrc/lexer.l" | ||
| 12835 | {BEGIN directive_start; return TK_LICENSE;} | ||
| 12836 | YY_BREAK | ||
| 12837 | case 20: | ||
| 12838 | YY_RULE_SETUP | ||
| 12839 | -#line 95 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12840 | +#line 95 "sipgen/metasrc/lexer.l" | ||
| 12841 | {return TK_MAPPEDTYPE;} | ||
| 12842 | YY_BREAK | ||
| 12843 | case 21: | ||
| 12844 | YY_RULE_SETUP | ||
| 12845 | -#line 96 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12846 | +#line 96 "sipgen/metasrc/lexer.l" | ||
| 12847 | {BEGIN directive_start; return TK_MODULE;} | ||
| 12848 | YY_BREAK | ||
| 12849 | case 22: | ||
| 12850 | YY_RULE_SETUP | ||
| 12851 | -#line 97 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12852 | +#line 97 "sipgen/metasrc/lexer.l" | ||
| 12853 | {return TK_OPTINCLUDE;} | ||
| 12854 | YY_BREAK | ||
| 12855 | case 23: | ||
| 12856 | YY_RULE_SETUP | ||
| 12857 | -#line 98 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12858 | +#line 98 "sipgen/metasrc/lexer.l" | ||
| 12859 | {return TK_PLATFORMS;} | ||
| 12860 | YY_BREAK | ||
| 12861 | case 24: | ||
| 12862 | YY_RULE_SETUP | ||
| 12863 | -#line 99 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12864 | +#line 99 "sipgen/metasrc/lexer.l" | ||
| 12865 | {BEGIN directive_start; return TK_PLUGIN;} | ||
| 12866 | YY_BREAK | ||
| 12867 | case 25: | ||
| 12868 | YY_RULE_SETUP | ||
| 12869 | -#line 100 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12870 | +#line 100 "sipgen/metasrc/lexer.l" | ||
| 12871 | {BEGIN directive_start; return TK_PROPERTY;} | ||
| 12872 | YY_BREAK | ||
| 12873 | case 26: | ||
| 12874 | YY_RULE_SETUP | ||
| 12875 | -#line 101 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12876 | +#line 101 "sipgen/metasrc/lexer.l" | ||
| 12877 | {return TK_TIMELINE;} | ||
| 12878 | YY_BREAK | ||
| 12879 | case 27: | ||
| 12880 | YY_RULE_SETUP | ||
| 12881 | -#line 103 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12882 | +#line 103 "sipgen/metasrc/lexer.l" | ||
| 12883 | {return TK_CLASS;} | ||
| 12884 | YY_BREAK | ||
| 12885 | case 28: | ||
| 12886 | YY_RULE_SETUP | ||
| 12887 | -#line 104 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12888 | +#line 104 "sipgen/metasrc/lexer.l" | ||
| 12889 | {return TK_STRUCT;} | ||
| 12890 | YY_BREAK | ||
| 12891 | case 29: | ||
| 12892 | YY_RULE_SETUP | ||
| 12893 | -#line 105 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12894 | +#line 105 "sipgen/metasrc/lexer.l" | ||
| 12895 | {return TK_PUBLIC;} | ||
| 12896 | YY_BREAK | ||
| 12897 | case 30: | ||
| 12898 | YY_RULE_SETUP | ||
| 12899 | -#line 106 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12900 | +#line 106 "sipgen/metasrc/lexer.l" | ||
| 12901 | {return TK_PROTECTED;} | ||
| 12902 | YY_BREAK | ||
| 12903 | case 31: | ||
| 12904 | YY_RULE_SETUP | ||
| 12905 | -#line 107 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12906 | +#line 107 "sipgen/metasrc/lexer.l" | ||
| 12907 | {return TK_PRIVATE;} | ||
| 12908 | YY_BREAK | ||
| 12909 | case 32: | ||
| 12910 | YY_RULE_SETUP | ||
| 12911 | -#line 108 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12912 | +#line 108 "sipgen/metasrc/lexer.l" | ||
| 12913 | {return TK_SIGNALS;} | ||
| 12914 | YY_BREAK | ||
| 12915 | case 33: | ||
| 12916 | YY_RULE_SETUP | ||
| 12917 | -#line 109 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12918 | +#line 109 "sipgen/metasrc/lexer.l" | ||
| 12919 | {return TK_SIGNALS;} | ||
| 12920 | YY_BREAK | ||
| 12921 | case 34: | ||
| 12922 | YY_RULE_SETUP | ||
| 12923 | -#line 110 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12924 | +#line 110 "sipgen/metasrc/lexer.l" | ||
| 12925 | {return TK_SIGNAL_METHOD;} | ||
| 12926 | YY_BREAK | ||
| 12927 | case 35: | ||
| 12928 | YY_RULE_SETUP | ||
| 12929 | -#line 111 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12930 | +#line 111 "sipgen/metasrc/lexer.l" | ||
| 12931 | {return TK_SLOTS;} | ||
| 12932 | YY_BREAK | ||
| 12933 | case 36: | ||
| 12934 | YY_RULE_SETUP | ||
| 12935 | -#line 112 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12936 | +#line 112 "sipgen/metasrc/lexer.l" | ||
| 12937 | {return TK_SLOTS;} | ||
| 12938 | YY_BREAK | ||
| 12939 | case 37: | ||
| 12940 | YY_RULE_SETUP | ||
| 12941 | -#line 113 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12942 | +#line 113 "sipgen/metasrc/lexer.l" | ||
| 12943 | {return TK_SLOT_METHOD;} | ||
| 12944 | YY_BREAK | ||
| 12945 | case 38: | ||
| 12946 | YY_RULE_SETUP | ||
| 12947 | -#line 114 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12948 | +#line 114 "sipgen/metasrc/lexer.l" | ||
| 12949 | {return TK_CHAR;} | ||
| 12950 | YY_BREAK | ||
| 12951 | case 39: | ||
| 12952 | YY_RULE_SETUP | ||
| 12953 | -#line 115 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12954 | +#line 115 "sipgen/metasrc/lexer.l" | ||
| 12955 | {return TK_WCHAR_T;} | ||
| 12956 | YY_BREAK | ||
| 12957 | case 40: | ||
| 12958 | YY_RULE_SETUP | ||
| 12959 | -#line 116 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12960 | +#line 116 "sipgen/metasrc/lexer.l" | ||
| 12961 | {return TK_BOOL;} | ||
| 12962 | YY_BREAK | ||
| 12963 | case 41: | ||
| 12964 | YY_RULE_SETUP | ||
| 12965 | -#line 117 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12966 | +#line 117 "sipgen/metasrc/lexer.l" | ||
| 12967 | {return TK_SHORT;} | ||
| 12968 | YY_BREAK | ||
| 12969 | case 42: | ||
| 12970 | YY_RULE_SETUP | ||
| 12971 | -#line 118 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12972 | +#line 118 "sipgen/metasrc/lexer.l" | ||
| 12973 | {return TK_INT;} | ||
| 12974 | YY_BREAK | ||
| 12975 | case 43: | ||
| 12976 | YY_RULE_SETUP | ||
| 12977 | -#line 119 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12978 | +#line 119 "sipgen/metasrc/lexer.l" | ||
| 12979 | {return TK_LONG;} | ||
| 12980 | YY_BREAK | ||
| 12981 | case 44: | ||
| 12982 | YY_RULE_SETUP | ||
| 12983 | -#line 120 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12984 | +#line 120 "sipgen/metasrc/lexer.l" | ||
| 12985 | {return TK_FLOAT;} | ||
| 12986 | YY_BREAK | ||
| 12987 | case 45: | ||
| 12988 | YY_RULE_SETUP | ||
| 12989 | -#line 121 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12990 | +#line 121 "sipgen/metasrc/lexer.l" | ||
| 12991 | {return TK_DOUBLE;} | ||
| 12992 | YY_BREAK | ||
| 12993 | case 46: | ||
| 12994 | YY_RULE_SETUP | ||
| 12995 | -#line 122 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 12996 | +#line 122 "sipgen/metasrc/lexer.l" | ||
| 12997 | {return TK_VOID;} | ||
| 12998 | YY_BREAK | ||
| 12999 | case 47: | ||
| 13000 | YY_RULE_SETUP | ||
| 13001 | -#line 123 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13002 | +#line 123 "sipgen/metasrc/lexer.l" | ||
| 13003 | {return TK_VIRTUAL;} | ||
| 13004 | YY_BREAK | ||
| 13005 | case 48: | ||
| 13006 | YY_RULE_SETUP | ||
| 13007 | -#line 124 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13008 | +#line 124 "sipgen/metasrc/lexer.l" | ||
| 13009 | {return TK_ENUM;} | ||
| 13010 | YY_BREAK | ||
| 13011 | case 49: | ||
| 13012 | YY_RULE_SETUP | ||
| 13013 | -#line 125 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13014 | +#line 125 "sipgen/metasrc/lexer.l" | ||
| 13015 | {return TK_SIGNED;} | ||
| 13016 | YY_BREAK | ||
| 13017 | case 50: | ||
| 13018 | YY_RULE_SETUP | ||
| 13019 | -#line 126 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13020 | +#line 126 "sipgen/metasrc/lexer.l" | ||
| 13021 | {return TK_UNSIGNED;} | ||
| 13022 | YY_BREAK | ||
| 13023 | case 51: | ||
| 13024 | YY_RULE_SETUP | ||
| 13025 | -#line 127 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13026 | +#line 127 "sipgen/metasrc/lexer.l" | ||
| 13027 | {return TK_CONST;} | ||
| 13028 | YY_BREAK | ||
| 13029 | case 52: | ||
| 13030 | YY_RULE_SETUP | ||
| 13031 | -#line 128 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13032 | +#line 128 "sipgen/metasrc/lexer.l" | ||
| 13033 | {return TK_STATIC;} | ||
| 13034 | YY_BREAK | ||
| 13035 | case 53: | ||
| 13036 | YY_RULE_SETUP | ||
| 13037 | -#line 129 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13038 | +#line 129 "sipgen/metasrc/lexer.l" | ||
| 13039 | {return TK_TRUE_VALUE;} | ||
| 13040 | YY_BREAK | ||
| 13041 | case 54: | ||
| 13042 | YY_RULE_SETUP | ||
| 13043 | -#line 130 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13044 | +#line 130 "sipgen/metasrc/lexer.l" | ||
| 13045 | {return TK_FALSE_VALUE;} | ||
| 13046 | YY_BREAK | ||
| 13047 | case 55: | ||
| 13048 | YY_RULE_SETUP | ||
| 13049 | -#line 131 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13050 | +#line 131 "sipgen/metasrc/lexer.l" | ||
| 13051 | {return TK_NULL_VALUE;} | ||
| 13052 | YY_BREAK | ||
| 13053 | case 56: | ||
| 13054 | YY_RULE_SETUP | ||
| 13055 | -#line 132 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13056 | +#line 132 "sipgen/metasrc/lexer.l" | ||
| 13057 | {return TK_TYPEDEF;} | ||
| 13058 | YY_BREAK | ||
| 13059 | case 57: | ||
| 13060 | YY_RULE_SETUP | ||
| 13061 | -#line 133 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13062 | +#line 133 "sipgen/metasrc/lexer.l" | ||
| 13063 | {return TK_NAMESPACE;} | ||
| 13064 | YY_BREAK | ||
| 13065 | case 58: | ||
| 13066 | YY_RULE_SETUP | ||
| 13067 | -#line 134 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13068 | +#line 134 "sipgen/metasrc/lexer.l" | ||
| 13069 | {return TK_OPERATOR;} | ||
| 13070 | YY_BREAK | ||
| 13071 | case 59: | ||
| 13072 | YY_RULE_SETUP | ||
| 13073 | -#line 135 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13074 | +#line 135 "sipgen/metasrc/lexer.l" | ||
| 13075 | {return TK_THROW;} | ||
| 13076 | YY_BREAK | ||
| 13077 | case 60: | ||
| 13078 | YY_RULE_SETUP | ||
| 13079 | -#line 136 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13080 | +#line 136 "sipgen/metasrc/lexer.l" | ||
| 13081 | {return TK_EXPLICIT;} | ||
| 13082 | YY_BREAK | ||
| 13083 | case 61: | ||
| 13084 | YY_RULE_SETUP | ||
| 13085 | -#line 137 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13086 | +#line 137 "sipgen/metasrc/lexer.l" | ||
| 13087 | {return TK_TEMPLATE;} | ||
| 13088 | YY_BREAK | ||
| 13089 | case 62: | ||
| 13090 | YY_RULE_SETUP | ||
| 13091 | -#line 138 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13092 | +#line 138 "sipgen/metasrc/lexer.l" | ||
| 13093 | {return TK_FINAL;} | ||
| 13094 | YY_BREAK | ||
| 13095 | case 63: | ||
| 13096 | YY_RULE_SETUP | ||
| 13097 | -#line 139 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13098 | +#line 139 "sipgen/metasrc/lexer.l" | ||
| 13099 | {return TK_SCOPE;} | ||
| 13100 | YY_BREAK | ||
| 13101 | case 64: | ||
| 13102 | YY_RULE_SETUP | ||
| 13103 | -#line 140 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13104 | +#line 140 "sipgen/metasrc/lexer.l" | ||
| 13105 | {return TK_LOGICAL_OR;} | ||
| 13106 | YY_BREAK | ||
| 13107 | case 65: | ||
| 13108 | YY_RULE_SETUP | ||
| 13109 | -#line 141 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13110 | +#line 141 "sipgen/metasrc/lexer.l" | ||
| 13111 | {return TK_PYOBJECT;} | ||
| 13112 | YY_BREAK | ||
| 13113 | case 66: | ||
| 13114 | YY_RULE_SETUP | ||
| 13115 | -#line 142 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13116 | +#line 142 "sipgen/metasrc/lexer.l" | ||
| 13117 | {return TK_PYTUPLE;} | ||
| 13118 | YY_BREAK | ||
| 13119 | case 67: | ||
| 13120 | YY_RULE_SETUP | ||
| 13121 | -#line 143 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13122 | +#line 143 "sipgen/metasrc/lexer.l" | ||
| 13123 | {return TK_PYLIST;} | ||
| 13124 | YY_BREAK | ||
| 13125 | case 68: | ||
| 13126 | YY_RULE_SETUP | ||
| 13127 | -#line 144 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13128 | +#line 144 "sipgen/metasrc/lexer.l" | ||
| 13129 | {return TK_PYDICT;} | ||
| 13130 | YY_BREAK | ||
| 13131 | case 69: | ||
| 13132 | YY_RULE_SETUP | ||
| 13133 | -#line 145 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13134 | +#line 145 "sipgen/metasrc/lexer.l" | ||
| 13135 | {return TK_PYCALLABLE;} | ||
| 13136 | YY_BREAK | ||
| 13137 | case 70: | ||
| 13138 | YY_RULE_SETUP | ||
| 13139 | -#line 146 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13140 | +#line 146 "sipgen/metasrc/lexer.l" | ||
| 13141 | {return TK_PYSLICE;} | ||
| 13142 | YY_BREAK | ||
| 13143 | case 71: | ||
| 13144 | YY_RULE_SETUP | ||
| 13145 | -#line 147 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13146 | +#line 147 "sipgen/metasrc/lexer.l" | ||
| 13147 | {return TK_PYTYPE;} | ||
| 13148 | YY_BREAK | ||
| 13149 | case 72: | ||
| 13150 | YY_RULE_SETUP | ||
| 13151 | -#line 148 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13152 | +#line 148 "sipgen/metasrc/lexer.l" | ||
| 13153 | {return TK_PYBUFFER;} | ||
| 13154 | YY_BREAK | ||
| 13155 | case 73: | ||
| 13156 | YY_RULE_SETUP | ||
| 13157 | -#line 149 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13158 | +#line 149 "sipgen/metasrc/lexer.l" | ||
| 13159 | {return TK_SIPSIGNAL;} | ||
| 13160 | YY_BREAK | ||
| 13161 | case 74: | ||
| 13162 | YY_RULE_SETUP | ||
| 13163 | -#line 150 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13164 | +#line 150 "sipgen/metasrc/lexer.l" | ||
| 13165 | {return TK_SIPSLOT;} | ||
| 13166 | YY_BREAK | ||
| 13167 | case 75: | ||
| 13168 | YY_RULE_SETUP | ||
| 13169 | -#line 151 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13170 | +#line 151 "sipgen/metasrc/lexer.l" | ||
| 13171 | {return TK_SIPANYSLOT;} | ||
| 13172 | YY_BREAK | ||
| 13173 | case 76: | ||
| 13174 | YY_RULE_SETUP | ||
| 13175 | -#line 152 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13176 | +#line 152 "sipgen/metasrc/lexer.l" | ||
| 13177 | {return TK_SIPRXCON;} | ||
| 13178 | YY_BREAK | ||
| 13179 | case 77: | ||
| 13180 | YY_RULE_SETUP | ||
| 13181 | -#line 153 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13182 | +#line 153 "sipgen/metasrc/lexer.l" | ||
| 13183 | {return TK_SIPRXDIS;} | ||
| 13184 | YY_BREAK | ||
| 13185 | case 78: | ||
| 13186 | YY_RULE_SETUP | ||
| 13187 | -#line 154 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13188 | +#line 154 "sipgen/metasrc/lexer.l" | ||
| 13189 | {return TK_SIPSLOTCON;} | ||
| 13190 | YY_BREAK | ||
| 13191 | case 79: | ||
| 13192 | YY_RULE_SETUP | ||
| 13193 | -#line 155 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13194 | +#line 155 "sipgen/metasrc/lexer.l" | ||
| 13195 | {return TK_SIPSLOTDIS;} | ||
| 13196 | YY_BREAK | ||
| 13197 | case 80: | ||
| 13198 | YY_RULE_SETUP | ||
| 13199 | -#line 156 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13200 | +#line 156 "sipgen/metasrc/lexer.l" | ||
| 13201 | {return TK_SIPSSIZET;} | ||
| 13202 | YY_BREAK | ||
| 13203 | case 81: | ||
| 13204 | YY_RULE_SETUP | ||
| 13205 | -#line 157 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13206 | +#line 157 "sipgen/metasrc/lexer.l" | ||
| 13207 | {return TK_QOBJECT;} | ||
| 13208 | YY_BREAK | ||
| 13209 | case 82: | ||
| 13210 | YY_RULE_SETUP | ||
| 13211 | -#line 158 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13212 | +#line 158 "sipgen/metasrc/lexer.l" | ||
| 13213 | {return TK_ELLIPSIS;} | ||
| 13214 | YY_BREAK | ||
| 13215 | case 83: | ||
| 13216 | YY_RULE_SETUP | ||
| 13217 | -#line 160 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13218 | +#line 160 "sipgen/metasrc/lexer.l" | ||
| 13219 | {return TK_FORMAT;} | ||
| 13220 | YY_BREAK | ||
| 13221 | case 84: | ||
| 13222 | YY_RULE_SETUP | ||
| 13223 | -#line 161 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13224 | +#line 161 "sipgen/metasrc/lexer.l" | ||
| 13225 | {return TK_GET;} | ||
| 13226 | YY_BREAK | ||
| 13227 | case 85: | ||
| 13228 | YY_RULE_SETUP | ||
| 13229 | -#line 162 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13230 | +#line 162 "sipgen/metasrc/lexer.l" | ||
| 13231 | {return TK_ID;} | ||
| 13232 | YY_BREAK | ||
| 13233 | case 86: | ||
| 13234 | YY_RULE_SETUP | ||
| 13235 | -#line 163 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13236 | +#line 163 "sipgen/metasrc/lexer.l" | ||
| 13237 | {return TK_KWARGS;} | ||
| 13238 | YY_BREAK | ||
| 13239 | case 87: | ||
| 13240 | YY_RULE_SETUP | ||
| 13241 | -#line 164 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13242 | +#line 164 "sipgen/metasrc/lexer.l" | ||
| 13243 | {return TK_LANGUAGE;} | ||
| 13244 | YY_BREAK | ||
| 13245 | case 88: | ||
| 13246 | YY_RULE_SETUP | ||
| 13247 | -#line 165 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13248 | +#line 165 "sipgen/metasrc/lexer.l" | ||
| 13249 | {return TK_LICENSEE;} | ||
| 13250 | YY_BREAK | ||
| 13251 | case 89: | ||
| 13252 | YY_RULE_SETUP | ||
| 13253 | -#line 166 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13254 | +#line 166 "sipgen/metasrc/lexer.l" | ||
| 13255 | {return TK_NAME;} | ||
| 13256 | YY_BREAK | ||
| 13257 | case 90: | ||
| 13258 | YY_RULE_SETUP | ||
| 13259 | -#line 167 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13260 | +#line 167 "sipgen/metasrc/lexer.l" | ||
| 13261 | {return TK_OPTIONAL;} | ||
| 13262 | YY_BREAK | ||
| 13263 | case 91: | ||
| 13264 | YY_RULE_SETUP | ||
| 13265 | -#line 168 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13266 | +#line 168 "sipgen/metasrc/lexer.l" | ||
| 13267 | {return TK_ORDER;} | ||
| 13268 | YY_BREAK | ||
| 13269 | case 92: | ||
| 13270 | YY_RULE_SETUP | ||
| 13271 | -#line 169 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13272 | +#line 169 "sipgen/metasrc/lexer.l" | ||
| 13273 | {return TK_REMOVELEADING;} | ||
| 13274 | YY_BREAK | ||
| 13275 | case 93: | ||
| 13276 | YY_RULE_SETUP | ||
| 13277 | -#line 170 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13278 | +#line 170 "sipgen/metasrc/lexer.l" | ||
| 13279 | {return TK_SET;} | ||
| 13280 | YY_BREAK | ||
| 13281 | case 94: | ||
| 13282 | YY_RULE_SETUP | ||
| 13283 | -#line 171 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13284 | +#line 171 "sipgen/metasrc/lexer.l" | ||
| 13285 | {return TK_SIGNATURE;} | ||
| 13286 | YY_BREAK | ||
| 13287 | case 95: | ||
| 13288 | YY_RULE_SETUP | ||
| 13289 | -#line 172 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13290 | +#line 172 "sipgen/metasrc/lexer.l" | ||
| 13291 | {return TK_TIMESTAMP;} | ||
| 13292 | YY_BREAK | ||
| 13293 | case 96: | ||
| 13294 | YY_RULE_SETUP | ||
| 13295 | -#line 173 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13296 | +#line 173 "sipgen/metasrc/lexer.l" | ||
| 13297 | {return TK_TYPE;} | ||
| 13298 | YY_BREAK | ||
| 13299 | case 97: | ||
| 13300 | YY_RULE_SETUP | ||
| 13301 | -#line 174 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13302 | +#line 174 "sipgen/metasrc/lexer.l" | ||
| 13303 | {return TK_USEARGNAMES;} | ||
| 13304 | YY_BREAK | ||
| 13305 | case 98: | ||
| 13306 | YY_RULE_SETUP | ||
| 13307 | -#line 175 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13308 | +#line 175 "sipgen/metasrc/lexer.l" | ||
| 13309 | {return TK_USELIMITEDAPI;} | ||
| 13310 | YY_BREAK | ||
| 13311 | case 99: | ||
| 13312 | YY_RULE_SETUP | ||
| 13313 | -#line 176 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13314 | +#line 176 "sipgen/metasrc/lexer.l" | ||
| 13315 | {return TK_ALLRAISEPYEXC;} | ||
| 13316 | YY_BREAK | ||
| 13317 | case 100: | ||
| 13318 | YY_RULE_SETUP | ||
| 13319 | -#line 177 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13320 | +#line 177 "sipgen/metasrc/lexer.l" | ||
| 13321 | {return TK_CALLSUPERINIT;} | ||
| 13322 | YY_BREAK | ||
| 13323 | case 101: | ||
| 13324 | YY_RULE_SETUP | ||
| 13325 | -#line 178 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13326 | +#line 178 "sipgen/metasrc/lexer.l" | ||
| 13327 | {return TK_DEFERRORHANDLER;} | ||
| 13328 | YY_BREAK | ||
| 13329 | case 102: | ||
| 13330 | YY_RULE_SETUP | ||
| 13331 | -#line 179 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13332 | +#line 179 "sipgen/metasrc/lexer.l" | ||
| 13333 | {return TK_VERSION;} | ||
| 13334 | YY_BREAK | ||
| 13335 | case 103: | ||
| 13336 | YY_RULE_SETUP | ||
| 13337 | -#line 181 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13338 | +#line 181 "sipgen/metasrc/lexer.l" | ||
| 13339 | {return TK_TRUE_VALUE;} | ||
| 13340 | YY_BREAK | ||
| 13341 | case 104: | ||
| 13342 | YY_RULE_SETUP | ||
| 13343 | -#line 182 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13344 | +#line 182 "sipgen/metasrc/lexer.l" | ||
| 13345 | {return TK_FALSE_VALUE;} | ||
| 13346 | YY_BREAK | ||
| 13347 | case 105: | ||
| 13348 | YY_RULE_SETUP | ||
| 13349 | -#line 185 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13350 | +#line 185 "sipgen/metasrc/lexer.l" | ||
| 13351 | { | ||
| 13352 | /* Ignore whitespace. */ | ||
| 13353 | ; | ||
| 13354 | @@ -2376,7 +2386,7 @@ | ||
| 13355 | YY_BREAK | ||
| 13356 | case 106: | ||
| 13357 | YY_RULE_SETUP | ||
| 13358 | -#line 190 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13359 | +#line 190 "sipgen/metasrc/lexer.l" | ||
| 13360 | { | ||
| 13361 | /* | ||
| 13362 | * Maintain the parenthesis depth so that we don't enter the 'code' state | ||
| 13363 | @@ -2391,7 +2401,7 @@ | ||
| 13364 | YY_BREAK | ||
| 13365 | case 107: | ||
| 13366 | YY_RULE_SETUP | ||
| 13367 | -#line 202 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13368 | +#line 202 "sipgen/metasrc/lexer.l" | ||
| 13369 | { | ||
| 13370 | /* Maintain the parenthesis depth. */ | ||
| 13371 | --parenDepth; | ||
| 13372 | @@ -2404,7 +2414,7 @@ | ||
| 13373 | case 108: | ||
| 13374 | /* rule 108 can match eol */ | ||
| 13375 | YY_RULE_SETUP | ||
| 13376 | -#line 211 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13377 | +#line 211 "sipgen/metasrc/lexer.l" | ||
| 13378 | { | ||
| 13379 | /* Maintain the line number. */ | ||
| 13380 | ++inputFileStack[currentFile].sloc.linenr; | ||
| 13381 | @@ -2417,7 +2427,7 @@ | ||
| 13382 | YY_BREAK | ||
| 13383 | case 109: | ||
| 13384 | YY_RULE_SETUP | ||
| 13385 | -#line 221 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13386 | +#line 221 "sipgen/metasrc/lexer.l" | ||
| 13387 | { | ||
| 13388 | /* Ignore C++ style comments. */ | ||
| 13389 | ; | ||
| 13390 | @@ -2425,7 +2435,7 @@ | ||
| 13391 | YY_BREAK | ||
| 13392 | case 110: | ||
| 13393 | YY_RULE_SETUP | ||
| 13394 | -#line 227 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13395 | +#line 227 "sipgen/metasrc/lexer.l" | ||
| 13396 | { | ||
| 13397 | /* A signed decimal number. */ | ||
| 13398 | yylval.number = strtol(yytext,NULL,0); | ||
| 13399 | @@ -2434,7 +2444,7 @@ | ||
| 13400 | YY_BREAK | ||
| 13401 | case 111: | ||
| 13402 | YY_RULE_SETUP | ||
| 13403 | -#line 234 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13404 | +#line 234 "sipgen/metasrc/lexer.l" | ||
| 13405 | { | ||
| 13406 | /* A floating point number. */ | ||
| 13407 | yylval.real = strtod(yytext,NULL); | ||
| 13408 | @@ -2443,7 +2453,7 @@ | ||
| 13409 | YY_BREAK | ||
| 13410 | case 112: | ||
| 13411 | YY_RULE_SETUP | ||
| 13412 | -#line 241 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13413 | +#line 241 "sipgen/metasrc/lexer.l" | ||
| 13414 | { | ||
| 13415 | /* An unsigned hexadecimal number. */ | ||
| 13416 | yylval.number = strtol(yytext,NULL,16); | ||
| 13417 | @@ -2452,7 +2462,7 @@ | ||
| 13418 | YY_BREAK | ||
| 13419 | case 113: | ||
| 13420 | YY_RULE_SETUP | ||
| 13421 | -#line 248 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13422 | +#line 248 "sipgen/metasrc/lexer.l" | ||
| 13423 | { | ||
| 13424 | /* An identifier name. */ | ||
| 13425 | yylval.text = sipStrdup(yytext); | ||
| 13426 | @@ -2461,7 +2471,7 @@ | ||
| 13427 | YY_BREAK | ||
| 13428 | case 114: | ||
| 13429 | YY_RULE_SETUP | ||
| 13430 | -#line 255 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13431 | +#line 255 "sipgen/metasrc/lexer.l" | ||
| 13432 | { | ||
| 13433 | /* A relative pathname. */ | ||
| 13434 | yylval.text = sipStrdup(yytext); | ||
| 13435 | @@ -2471,7 +2481,7 @@ | ||
| 13436 | case 115: | ||
| 13437 | /* rule 115 can match eol */ | ||
| 13438 | YY_RULE_SETUP | ||
| 13439 | -#line 262 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13440 | +#line 262 "sipgen/metasrc/lexer.l" | ||
| 13441 | { | ||
| 13442 | /* A double-quoted string. */ | ||
| 13443 | char ch, *dp, *sp; | ||
| 13444 | @@ -2510,7 +2520,7 @@ | ||
| 13445 | case 116: | ||
| 13446 | /* rule 116 can match eol */ | ||
| 13447 | YY_RULE_SETUP | ||
| 13448 | -#line 298 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13449 | +#line 298 "sipgen/metasrc/lexer.l" | ||
| 13450 | { | ||
| 13451 | /* A single-quoted character. */ | ||
| 13452 | if (strlen(yytext) != 3) | ||
| 13453 | @@ -2523,7 +2533,7 @@ | ||
| 13454 | YY_BREAK | ||
| 13455 | case 117: | ||
| 13456 | YY_RULE_SETUP | ||
| 13457 | -#line 309 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13458 | +#line 309 "sipgen/metasrc/lexer.l" | ||
| 13459 | { | ||
| 13460 | /* Ignore C-style comments. */ | ||
| 13461 | yy_push_state(ccomment); | ||
| 13462 | @@ -2532,28 +2542,28 @@ | ||
| 13463 | case 118: | ||
| 13464 | /* rule 118 can match eol */ | ||
| 13465 | YY_RULE_SETUP | ||
| 13466 | -#line 313 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13467 | +#line 313 "sipgen/metasrc/lexer.l" | ||
| 13468 | { | ||
| 13469 | ++inputFileStack[currentFile].sloc.linenr; | ||
| 13470 | } | ||
| 13471 | YY_BREAK | ||
| 13472 | case 119: | ||
| 13473 | YY_RULE_SETUP | ||
| 13474 | -#line 316 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13475 | +#line 316 "sipgen/metasrc/lexer.l" | ||
| 13476 | { | ||
| 13477 | yy_pop_state(); | ||
| 13478 | } | ||
| 13479 | YY_BREAK | ||
| 13480 | case 120: | ||
| 13481 | YY_RULE_SETUP | ||
| 13482 | -#line 319 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13483 | +#line 319 "sipgen/metasrc/lexer.l" | ||
| 13484 | { | ||
| 13485 | ; | ||
| 13486 | } | ||
| 13487 | YY_BREAK | ||
| 13488 | case 121: | ||
| 13489 | YY_RULE_SETUP | ||
| 13490 | -#line 324 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13491 | +#line 324 "sipgen/metasrc/lexer.l" | ||
| 13492 | { | ||
| 13493 | /* The software license. */ | ||
| 13494 | codeIdx = 0; | ||
| 13495 | @@ -2562,7 +2572,7 @@ | ||
| 13496 | YY_BREAK | ||
| 13497 | case 122: | ||
| 13498 | YY_RULE_SETUP | ||
| 13499 | -#line 330 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13500 | +#line 330 "sipgen/metasrc/lexer.l" | ||
| 13501 | { | ||
| 13502 | /* The start of a from-type code block. */ | ||
| 13503 | codeIdx = 0; | ||
| 13504 | @@ -2571,7 +2581,7 @@ | ||
| 13505 | YY_BREAK | ||
| 13506 | case 123: | ||
| 13507 | YY_RULE_SETUP | ||
| 13508 | -#line 336 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13509 | +#line 336 "sipgen/metasrc/lexer.l" | ||
| 13510 | { | ||
| 13511 | /* The start of a to-type code block. */ | ||
| 13512 | codeIdx = 0; | ||
| 13513 | @@ -2580,7 +2590,7 @@ | ||
| 13514 | YY_BREAK | ||
| 13515 | case 124: | ||
| 13516 | YY_RULE_SETUP | ||
| 13517 | -#line 342 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13518 | +#line 342 "sipgen/metasrc/lexer.l" | ||
| 13519 | { | ||
| 13520 | /* The start of a to-sub-class code block. */ | ||
| 13521 | codeIdx = 0; | ||
| 13522 | @@ -2589,7 +2599,7 @@ | ||
| 13523 | YY_BREAK | ||
| 13524 | case 125: | ||
| 13525 | YY_RULE_SETUP | ||
| 13526 | -#line 348 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13527 | +#line 348 "sipgen/metasrc/lexer.l" | ||
| 13528 | { | ||
| 13529 | /* The start of an exported header code block. */ | ||
| 13530 | codeIdx = 0; | ||
| 13531 | @@ -2598,7 +2608,7 @@ | ||
| 13532 | YY_BREAK | ||
| 13533 | case 126: | ||
| 13534 | YY_RULE_SETUP | ||
| 13535 | -#line 354 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13536 | +#line 354 "sipgen/metasrc/lexer.l" | ||
| 13537 | { | ||
| 13538 | /* The start of part of an extract. */ | ||
| 13539 | codeIdx = 0; | ||
| 13540 | @@ -2610,7 +2620,7 @@ | ||
| 13541 | YY_BREAK | ||
| 13542 | case 127: | ||
| 13543 | YY_RULE_SETUP | ||
| 13544 | -#line 363 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13545 | +#line 363 "sipgen/metasrc/lexer.l" | ||
| 13546 | { | ||
| 13547 | /* The start of a module header code block. */ | ||
| 13548 | codeIdx = 0; | ||
| 13549 | @@ -2619,7 +2629,7 @@ | ||
| 13550 | YY_BREAK | ||
| 13551 | case 128: | ||
| 13552 | YY_RULE_SETUP | ||
| 13553 | -#line 369 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13554 | +#line 369 "sipgen/metasrc/lexer.l" | ||
| 13555 | { | ||
| 13556 | /* The start of a type header code block. */ | ||
| 13557 | codeIdx = 0; | ||
| 13558 | @@ -2628,7 +2638,7 @@ | ||
| 13559 | YY_BREAK | ||
| 13560 | case 129: | ||
| 13561 | YY_RULE_SETUP | ||
| 13562 | -#line 375 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13563 | +#line 375 "sipgen/metasrc/lexer.l" | ||
| 13564 | { | ||
| 13565 | /* The start of a pre-initialisation code block. */ | ||
| 13566 | codeIdx = 0; | ||
| 13567 | @@ -2637,7 +2647,7 @@ | ||
| 13568 | YY_BREAK | ||
| 13569 | case 130: | ||
| 13570 | YY_RULE_SETUP | ||
| 13571 | -#line 381 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13572 | +#line 381 "sipgen/metasrc/lexer.l" | ||
| 13573 | { | ||
| 13574 | /* The start of an initialisation code block. */ | ||
| 13575 | codeIdx = 0; | ||
| 13576 | @@ -2646,7 +2656,7 @@ | ||
| 13577 | YY_BREAK | ||
| 13578 | case 131: | ||
| 13579 | YY_RULE_SETUP | ||
| 13580 | -#line 387 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13581 | +#line 387 "sipgen/metasrc/lexer.l" | ||
| 13582 | { | ||
| 13583 | /* The start of a post-initialisation code block. */ | ||
| 13584 | codeIdx = 0; | ||
| 13585 | @@ -2655,7 +2665,7 @@ | ||
| 13586 | YY_BREAK | ||
| 13587 | case 132: | ||
| 13588 | YY_RULE_SETUP | ||
| 13589 | -#line 393 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13590 | +#line 393 "sipgen/metasrc/lexer.l" | ||
| 13591 | { | ||
| 13592 | /* The start of a class finalisation code block. */ | ||
| 13593 | codeIdx = 0; | ||
| 13594 | @@ -2664,7 +2674,7 @@ | ||
| 13595 | YY_BREAK | ||
| 13596 | case 133: | ||
| 13597 | YY_RULE_SETUP | ||
| 13598 | -#line 399 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13599 | +#line 399 "sipgen/metasrc/lexer.l" | ||
| 13600 | { | ||
| 13601 | /* The start of a unit code block. */ | ||
| 13602 | codeIdx = 0; | ||
| 13603 | @@ -2673,7 +2683,7 @@ | ||
| 13604 | YY_BREAK | ||
| 13605 | case 134: | ||
| 13606 | YY_RULE_SETUP | ||
| 13607 | -#line 405 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13608 | +#line 405 "sipgen/metasrc/lexer.l" | ||
| 13609 | { | ||
| 13610 | /* The start of a unit post-include code block. */ | ||
| 13611 | codeIdx = 0; | ||
| 13612 | @@ -2682,7 +2692,7 @@ | ||
| 13613 | YY_BREAK | ||
| 13614 | case 135: | ||
| 13615 | YY_RULE_SETUP | ||
| 13616 | -#line 411 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13617 | +#line 411 "sipgen/metasrc/lexer.l" | ||
| 13618 | { | ||
| 13619 | /* The start of a module code block. */ | ||
| 13620 | codeIdx = 0; | ||
| 13621 | @@ -2691,7 +2701,7 @@ | ||
| 13622 | YY_BREAK | ||
| 13623 | case 136: | ||
| 13624 | YY_RULE_SETUP | ||
| 13625 | -#line 417 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13626 | +#line 417 "sipgen/metasrc/lexer.l" | ||
| 13627 | { | ||
| 13628 | /* The start of a type code block. */ | ||
| 13629 | codeIdx = 0; | ||
| 13630 | @@ -2700,7 +2710,7 @@ | ||
| 13631 | YY_BREAK | ||
| 13632 | case 137: | ||
| 13633 | YY_RULE_SETUP | ||
| 13634 | -#line 423 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13635 | +#line 423 "sipgen/metasrc/lexer.l" | ||
| 13636 | { | ||
| 13637 | /* The start of a C++ method code block. */ | ||
| 13638 | codeIdx = 0; | ||
| 13639 | @@ -2709,7 +2719,7 @@ | ||
| 13640 | YY_BREAK | ||
| 13641 | case 138: | ||
| 13642 | YY_RULE_SETUP | ||
| 13643 | -#line 429 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13644 | +#line 429 "sipgen/metasrc/lexer.l" | ||
| 13645 | { | ||
| 13646 | /* The start of a C++ code block to insert before the MethodCode. */ | ||
| 13647 | codeIdx = 0; | ||
| 13648 | @@ -2718,7 +2728,7 @@ | ||
| 13649 | YY_BREAK | ||
| 13650 | case 139: | ||
| 13651 | YY_RULE_SETUP | ||
| 13652 | -#line 435 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13653 | +#line 435 "sipgen/metasrc/lexer.l" | ||
| 13654 | { | ||
| 13655 | /* The start of a C++ virtual call code block. */ | ||
| 13656 | codeIdx = 0; | ||
| 13657 | @@ -2727,7 +2737,7 @@ | ||
| 13658 | YY_BREAK | ||
| 13659 | case 140: | ||
| 13660 | YY_RULE_SETUP | ||
| 13661 | -#line 441 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13662 | +#line 441 "sipgen/metasrc/lexer.l" | ||
| 13663 | { | ||
| 13664 | /* The start of a C++ virtual code block. */ | ||
| 13665 | codeIdx = 0; | ||
| 13666 | @@ -2736,7 +2746,7 @@ | ||
| 13667 | YY_BREAK | ||
| 13668 | case 141: | ||
| 13669 | YY_RULE_SETUP | ||
| 13670 | -#line 447 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13671 | +#line 447 "sipgen/metasrc/lexer.l" | ||
| 13672 | { | ||
| 13673 | /* The start of a traverse code block. */ | ||
| 13674 | codeIdx = 0; | ||
| 13675 | @@ -2745,7 +2755,7 @@ | ||
| 13676 | YY_BREAK | ||
| 13677 | case 142: | ||
| 13678 | YY_RULE_SETUP | ||
| 13679 | -#line 453 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13680 | +#line 453 "sipgen/metasrc/lexer.l" | ||
| 13681 | { | ||
| 13682 | /* The start of a clear code block. */ | ||
| 13683 | codeIdx = 0; | ||
| 13684 | @@ -2754,7 +2764,7 @@ | ||
| 13685 | YY_BREAK | ||
| 13686 | case 143: | ||
| 13687 | YY_RULE_SETUP | ||
| 13688 | -#line 459 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13689 | +#line 459 "sipgen/metasrc/lexer.l" | ||
| 13690 | { | ||
| 13691 | /* The start of a get buffer code block. */ | ||
| 13692 | codeIdx = 0; | ||
| 13693 | @@ -2763,7 +2773,7 @@ | ||
| 13694 | YY_BREAK | ||
| 13695 | case 144: | ||
| 13696 | YY_RULE_SETUP | ||
| 13697 | -#line 465 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13698 | +#line 465 "sipgen/metasrc/lexer.l" | ||
| 13699 | { | ||
| 13700 | /* The start of a release buffer code block. */ | ||
| 13701 | codeIdx = 0; | ||
| 13702 | @@ -2772,7 +2782,7 @@ | ||
| 13703 | YY_BREAK | ||
| 13704 | case 145: | ||
| 13705 | YY_RULE_SETUP | ||
| 13706 | -#line 471 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13707 | +#line 471 "sipgen/metasrc/lexer.l" | ||
| 13708 | { | ||
| 13709 | /* The start of a read buffer code block. */ | ||
| 13710 | codeIdx = 0; | ||
| 13711 | @@ -2781,7 +2791,7 @@ | ||
| 13712 | YY_BREAK | ||
| 13713 | case 146: | ||
| 13714 | YY_RULE_SETUP | ||
| 13715 | -#line 477 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13716 | +#line 477 "sipgen/metasrc/lexer.l" | ||
| 13717 | { | ||
| 13718 | /* The start of a write buffer code block. */ | ||
| 13719 | codeIdx = 0; | ||
| 13720 | @@ -2790,7 +2800,7 @@ | ||
| 13721 | YY_BREAK | ||
| 13722 | case 147: | ||
| 13723 | YY_RULE_SETUP | ||
| 13724 | -#line 483 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13725 | +#line 483 "sipgen/metasrc/lexer.l" | ||
| 13726 | { | ||
| 13727 | /* The start of a segment count code block. */ | ||
| 13728 | codeIdx = 0; | ||
| 13729 | @@ -2799,7 +2809,7 @@ | ||
| 13730 | YY_BREAK | ||
| 13731 | case 148: | ||
| 13732 | YY_RULE_SETUP | ||
| 13733 | -#line 489 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13734 | +#line 489 "sipgen/metasrc/lexer.l" | ||
| 13735 | { | ||
| 13736 | /* The start of a char buffer code block. */ | ||
| 13737 | codeIdx = 0; | ||
| 13738 | @@ -2808,7 +2818,7 @@ | ||
| 13739 | YY_BREAK | ||
| 13740 | case 149: | ||
| 13741 | YY_RULE_SETUP | ||
| 13742 | -#line 495 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13743 | +#line 495 "sipgen/metasrc/lexer.l" | ||
| 13744 | { | ||
| 13745 | /* The start of a create instance code block. */ | ||
| 13746 | codeIdx = 0; | ||
| 13747 | @@ -2817,7 +2827,7 @@ | ||
| 13748 | YY_BREAK | ||
| 13749 | case 150: | ||
| 13750 | YY_RULE_SETUP | ||
| 13751 | -#line 501 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13752 | +#line 501 "sipgen/metasrc/lexer.l" | ||
| 13753 | { | ||
| 13754 | /* The start of a pickle code block. */ | ||
| 13755 | codeIdx = 0; | ||
| 13756 | @@ -2826,7 +2836,7 @@ | ||
| 13757 | YY_BREAK | ||
| 13758 | case 151: | ||
| 13759 | YY_RULE_SETUP | ||
| 13760 | -#line 507 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13761 | +#line 507 "sipgen/metasrc/lexer.l" | ||
| 13762 | { | ||
| 13763 | /* The start of a pre-Python code block. */ | ||
| 13764 | deprecated("%PrePythonCode is deprecated"); | ||
| 13765 | @@ -2837,7 +2847,7 @@ | ||
| 13766 | YY_BREAK | ||
| 13767 | case 152: | ||
| 13768 | YY_RULE_SETUP | ||
| 13769 | -#line 515 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13770 | +#line 515 "sipgen/metasrc/lexer.l" | ||
| 13771 | { | ||
| 13772 | /* The start of a raise Python exception code block. */ | ||
| 13773 | codeIdx = 0; | ||
| 13774 | @@ -2846,7 +2856,7 @@ | ||
| 13775 | YY_BREAK | ||
| 13776 | case 153: | ||
| 13777 | YY_RULE_SETUP | ||
| 13778 | -#line 521 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13779 | +#line 521 "sipgen/metasrc/lexer.l" | ||
| 13780 | { | ||
| 13781 | /* The start of an exported type hint code block. */ | ||
| 13782 | codeIdx = 0; | ||
| 13783 | @@ -2855,7 +2865,7 @@ | ||
| 13784 | YY_BREAK | ||
| 13785 | case 154: | ||
| 13786 | YY_RULE_SETUP | ||
| 13787 | -#line 527 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13788 | +#line 527 "sipgen/metasrc/lexer.l" | ||
| 13789 | { | ||
| 13790 | /* The start of a type hint code block. */ | ||
| 13791 | codeIdx = 0; | ||
| 13792 | @@ -2864,7 +2874,7 @@ | ||
| 13793 | YY_BREAK | ||
| 13794 | case 155: | ||
| 13795 | YY_RULE_SETUP | ||
| 13796 | -#line 533 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13797 | +#line 533 "sipgen/metasrc/lexer.l" | ||
| 13798 | { | ||
| 13799 | /* The start of a docstring block. */ | ||
| 13800 | codeIdx = 0; | ||
| 13801 | @@ -2876,7 +2886,7 @@ | ||
| 13802 | YY_BREAK | ||
| 13803 | case 156: | ||
| 13804 | YY_RULE_SETUP | ||
| 13805 | -#line 542 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13806 | +#line 542 "sipgen/metasrc/lexer.l" | ||
| 13807 | { | ||
| 13808 | /* The start of a documentation block. */ | ||
| 13809 | deprecated("%Doc is deprecated, use %Extract instead"); | ||
| 13810 | @@ -2887,7 +2897,7 @@ | ||
| 13811 | YY_BREAK | ||
| 13812 | case 157: | ||
| 13813 | YY_RULE_SETUP | ||
| 13814 | -#line 550 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13815 | +#line 550 "sipgen/metasrc/lexer.l" | ||
| 13816 | { | ||
| 13817 | /* The start of an exported documentation block. */ | ||
| 13818 | deprecated("%ExportedDoc is deprecated, use %Extract instead"); | ||
| 13819 | @@ -2898,7 +2908,7 @@ | ||
| 13820 | YY_BREAK | ||
| 13821 | case 158: | ||
| 13822 | YY_RULE_SETUP | ||
| 13823 | -#line 558 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13824 | +#line 558 "sipgen/metasrc/lexer.l" | ||
| 13825 | { | ||
| 13826 | /* The start of a Makefile code block. */ | ||
| 13827 | deprecated("%Makefile is deprecated"); | ||
| 13828 | @@ -2909,7 +2919,7 @@ | ||
| 13829 | YY_BREAK | ||
| 13830 | case 159: | ||
| 13831 | YY_RULE_SETUP | ||
| 13832 | -#line 566 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13833 | +#line 566 "sipgen/metasrc/lexer.l" | ||
| 13834 | { | ||
| 13835 | /* The start of an access code block. */ | ||
| 13836 | codeIdx = 0; | ||
| 13837 | @@ -2918,7 +2928,7 @@ | ||
| 13838 | YY_BREAK | ||
| 13839 | case 160: | ||
| 13840 | YY_RULE_SETUP | ||
| 13841 | -#line 572 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13842 | +#line 572 "sipgen/metasrc/lexer.l" | ||
| 13843 | { | ||
| 13844 | /* The start of a get code block. */ | ||
| 13845 | codeIdx = 0; | ||
| 13846 | @@ -2927,7 +2937,7 @@ | ||
| 13847 | YY_BREAK | ||
| 13848 | case 161: | ||
| 13849 | YY_RULE_SETUP | ||
| 13850 | -#line 578 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13851 | +#line 578 "sipgen/metasrc/lexer.l" | ||
| 13852 | { | ||
| 13853 | /* The start of a set code block. */ | ||
| 13854 | codeIdx = 0; | ||
| 13855 | @@ -2936,7 +2946,7 @@ | ||
| 13856 | YY_BREAK | ||
| 13857 | case 162: | ||
| 13858 | YY_RULE_SETUP | ||
| 13859 | -#line 584 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13860 | +#line 584 "sipgen/metasrc/lexer.l" | ||
| 13861 | { | ||
| 13862 | /* The start of part of a virtual error handler. */ | ||
| 13863 | codeIdx = 0; | ||
| 13864 | @@ -2948,7 +2958,7 @@ | ||
| 13865 | YY_BREAK | ||
| 13866 | case 163: | ||
| 13867 | YY_RULE_SETUP | ||
| 13868 | -#line 593 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13869 | +#line 593 "sipgen/metasrc/lexer.l" | ||
| 13870 | { | ||
| 13871 | /* The end of a code block. */ | ||
| 13872 | BEGIN INITIAL; | ||
| 13873 | @@ -2959,7 +2969,7 @@ | ||
| 13874 | case 164: | ||
| 13875 | /* rule 164 can match eol */ | ||
| 13876 | YY_RULE_SETUP | ||
| 13877 | -#line 600 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13878 | +#line 600 "sipgen/metasrc/lexer.l" | ||
| 13879 | { | ||
| 13880 | /* The end of a code line . */ | ||
| 13881 | struct inputFile *ifp; | ||
| 13882 | @@ -2981,7 +2991,7 @@ | ||
| 13883 | YY_BREAK | ||
| 13884 | case 165: | ||
| 13885 | YY_RULE_SETUP | ||
| 13886 | -#line 619 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13887 | +#line 619 "sipgen/metasrc/lexer.l" | ||
| 13888 | { | ||
| 13889 | /* The contents of a code line. */ | ||
| 13890 | if (codeIdx == MAX_CODE_LINE_LENGTH) | ||
| 13891 | @@ -2992,7 +3002,7 @@ | ||
| 13892 | YY_BREAK | ||
| 13893 | case 166: | ||
| 13894 | YY_RULE_SETUP | ||
| 13895 | -#line 627 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13896 | +#line 627 "sipgen/metasrc/lexer.l" | ||
| 13897 | { | ||
| 13898 | /* Anything else is returned as is. */ | ||
| 13899 | return yytext[0]; | ||
| 13900 | @@ -3000,10 +3010,10 @@ | ||
| 13901 | YY_BREAK | ||
| 13902 | case 167: | ||
| 13903 | YY_RULE_SETUP | ||
| 13904 | -#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 13905 | +#line 632 "sipgen/metasrc/lexer.l" | ||
| 13906 | ECHO; | ||
| 13907 | YY_BREAK | ||
| 13908 | -#line 3007 "sip-4.19.12/sipgen/lexer.c" | ||
| 13909 | +#line 3017 "sipgen/lexer.c" | ||
| 13910 | case YY_STATE_EOF(INITIAL): | ||
| 13911 | case YY_STATE_EOF(code): | ||
| 13912 | case YY_STATE_EOF(ccomment): | ||
| 13913 | @@ -3138,6 +3148,7 @@ | ||
| 13914 | "fatal flex scanner internal error--no action found" ); | ||
| 13915 | } /* end of action switch */ | ||
| 13916 | } /* end of scanning one token */ | ||
| 13917 | + } /* end of user's declarations */ | ||
| 13918 | } /* end of yylex */ | ||
| 13919 | |||
| 13920 | /* yy_get_next_buffer - try to read in a new buffer | ||
| 13921 | @@ -3149,9 +3160,9 @@ | ||
| 13922 | */ | ||
| 13923 | static int yy_get_next_buffer (void) | ||
| 13924 | { | ||
| 13925 | - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; | ||
| 13926 | - register char *source = (yytext_ptr); | ||
| 13927 | - register int number_to_move, i; | ||
| 13928 | + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; | ||
| 13929 | + char *source = (yytext_ptr); | ||
| 13930 | + yy_size_t number_to_move, i; | ||
| 13931 | int ret_val; | ||
| 13932 | |||
| 13933 | if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) | ||
| 13934 | @@ -3180,7 +3191,7 @@ | ||
| 13935 | /* Try to read more data. */ | ||
| 13936 | |||
| 13937 | /* First move last chars to start of buffer. */ | ||
| 13938 | - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; | ||
| 13939 | + number_to_move = (yy_size_t) ((yy_c_buf_p) - (yytext_ptr)) - 1; | ||
| 13940 | |||
| 13941 | for ( i = 0; i < number_to_move; ++i ) | ||
| 13942 | *(dest++) = *(source++); | ||
| 13943 | @@ -3193,21 +3204,21 @@ | ||
| 13944 | |||
| 13945 | else | ||
| 13946 | { | ||
| 13947 | - yy_size_t num_to_read = | ||
| 13948 | + int num_to_read = | ||
| 13949 | YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; | ||
| 13950 | |||
| 13951 | while ( num_to_read <= 0 ) | ||
| 13952 | { /* Not enough room in the buffer - grow it. */ | ||
| 13953 | |||
| 13954 | /* just a shorter name for the current buffer */ | ||
| 13955 | - YY_BUFFER_STATE b = YY_CURRENT_BUFFER; | ||
| 13956 | + YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; | ||
| 13957 | |||
| 13958 | int yy_c_buf_p_offset = | ||
| 13959 | (int) ((yy_c_buf_p) - b->yy_ch_buf); | ||
| 13960 | |||
| 13961 | if ( b->yy_is_our_buffer ) | ||
| 13962 | { | ||
| 13963 | - yy_size_t new_size = b->yy_buf_size * 2; | ||
| 13964 | + int new_size = b->yy_buf_size * 2; | ||
| 13965 | |||
| 13966 | if ( new_size <= 0 ) | ||
| 13967 | b->yy_buf_size += b->yy_buf_size / 8; | ||
| 13968 | @@ -3216,11 +3227,11 @@ | ||
| 13969 | |||
| 13970 | b->yy_ch_buf = (char *) | ||
| 13971 | /* Include room in for 2 EOB chars. */ | ||
| 13972 | - yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); | ||
| 13973 | + yyrealloc((void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ); | ||
| 13974 | } | ||
| 13975 | else | ||
| 13976 | /* Can't grow it, we don't own it. */ | ||
| 13977 | - b->yy_ch_buf = 0; | ||
| 13978 | + b->yy_ch_buf = NULL; | ||
| 13979 | |||
| 13980 | if ( ! b->yy_ch_buf ) | ||
| 13981 | YY_FATAL_ERROR( | ||
| 13982 | @@ -3262,10 +3273,10 @@ | ||
| 13983 | else | ||
| 13984 | ret_val = EOB_ACT_CONTINUE_SCAN; | ||
| 13985 | |||
| 13986 | - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { | ||
| 13987 | + if ((int) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { | ||
| 13988 | /* Extend the array by 50%, plus the number we really need. */ | ||
| 13989 | - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); | ||
| 13990 | - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); | ||
| 13991 | + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); | ||
| 13992 | + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ); | ||
| 13993 | if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) | ||
| 13994 | YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); | ||
| 13995 | } | ||
| 13996 | @@ -3283,15 +3294,15 @@ | ||
| 13997 | |||
| 13998 | static yy_state_type yy_get_previous_state (void) | ||
| 13999 | { | ||
| 14000 | - register yy_state_type yy_current_state; | ||
| 14001 | - register char *yy_cp; | ||
| 14002 | + yy_state_type yy_current_state; | ||
| 14003 | + char *yy_cp; | ||
| 14004 | |||
| 14005 | yy_current_state = (yy_start); | ||
| 14006 | yy_current_state += YY_AT_BOL(); | ||
| 14007 | |||
| 14008 | for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) | ||
| 14009 | { | ||
| 14010 | - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); | ||
| 14011 | + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); | ||
| 14012 | if ( yy_accept[yy_current_state] ) | ||
| 14013 | { | ||
| 14014 | (yy_last_accepting_state) = yy_current_state; | ||
| 14015 | @@ -3303,7 +3314,7 @@ | ||
| 14016 | if ( yy_current_state >= 1231 ) | ||
| 14017 | yy_c = yy_meta[(unsigned int) yy_c]; | ||
| 14018 | } | ||
| 14019 | - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||
| 14020 | + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; | ||
| 14021 | } | ||
| 14022 | |||
| 14023 | return yy_current_state; | ||
| 14024 | @@ -3316,10 +3327,10 @@ | ||
| 14025 | */ | ||
| 14026 | static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) | ||
| 14027 | { | ||
| 14028 | - register int yy_is_jam; | ||
| 14029 | - register char *yy_cp = (yy_c_buf_p); | ||
| 14030 | + int yy_is_jam; | ||
| 14031 | + char *yy_cp = (yy_c_buf_p); | ||
| 14032 | |||
| 14033 | - register YY_CHAR yy_c = 1; | ||
| 14034 | + YY_CHAR yy_c = 1; | ||
| 14035 | if ( yy_accept[yy_current_state] ) | ||
| 14036 | { | ||
| 14037 | (yy_last_accepting_state) = yy_current_state; | ||
| 14038 | @@ -3331,15 +3342,17 @@ | ||
| 14039 | if ( yy_current_state >= 1231 ) | ||
| 14040 | yy_c = yy_meta[(unsigned int) yy_c]; | ||
| 14041 | } | ||
| 14042 | - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; | ||
| 14043 | + yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c]; | ||
| 14044 | yy_is_jam = (yy_current_state == 1230); | ||
| 14045 | |||
| 14046 | - return yy_is_jam ? 0 : yy_current_state; | ||
| 14047 | + return yy_is_jam ? 0 : yy_current_state; | ||
| 14048 | } | ||
| 14049 | |||
| 14050 | - static void yyunput (int c, register char * yy_bp ) | ||
| 14051 | +#ifndef YY_NO_UNPUT | ||
| 14052 | + | ||
| 14053 | + static void yyunput (int c, char * yy_bp ) | ||
| 14054 | { | ||
| 14055 | - register char *yy_cp; | ||
| 14056 | + char *yy_cp; | ||
| 14057 | |||
| 14058 | yy_cp = (yy_c_buf_p); | ||
| 14059 | |||
| 14060 | @@ -3349,10 +3362,10 @@ | ||
| 14061 | if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) | ||
| 14062 | { /* need to shift things up to make room */ | ||
| 14063 | /* +2 for EOB chars. */ | ||
| 14064 | - register yy_size_t number_to_move = (yy_n_chars) + 2; | ||
| 14065 | - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ | ||
| 14066 | + int number_to_move = (yy_n_chars) + 2; | ||
| 14067 | + char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ | ||
| 14068 | YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; | ||
| 14069 | - register char *source = | ||
| 14070 | + char *source = | ||
| 14071 | &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; | ||
| 14072 | |||
| 14073 | while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) | ||
| 14074 | @@ -3361,7 +3374,7 @@ | ||
| 14075 | yy_cp += (int) (dest - source); | ||
| 14076 | yy_bp += (int) (dest - source); | ||
| 14077 | YY_CURRENT_BUFFER_LVALUE->yy_n_chars = | ||
| 14078 | - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; | ||
| 14079 | + (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; | ||
| 14080 | |||
| 14081 | if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) | ||
| 14082 | YY_FATAL_ERROR( "flex scanner push-back overflow" ); | ||
| 14083 | @@ -3374,6 +3387,8 @@ | ||
| 14084 | (yy_c_buf_p) = yy_cp; | ||
| 14085 | } | ||
| 14086 | |||
| 14087 | +#endif | ||
| 14088 | + | ||
| 14089 | #ifndef YY_NO_INPUT | ||
| 14090 | #ifdef __cplusplus | ||
| 14091 | static int yyinput (void) | ||
| 14092 | @@ -3398,7 +3413,7 @@ | ||
| 14093 | |||
| 14094 | else | ||
| 14095 | { /* need more input */ | ||
| 14096 | - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); | ||
| 14097 | + int offset = (yy_c_buf_p) - (yytext_ptr); | ||
| 14098 | ++(yy_c_buf_p); | ||
| 14099 | |||
| 14100 | switch ( yy_get_next_buffer( ) ) | ||
| 14101 | @@ -3530,7 +3545,7 @@ | ||
| 14102 | /* yy_ch_buf has to be 2 characters longer than the size given because | ||
| 14103 | * we need to put in 2 end-of-buffer characters. | ||
| 14104 | */ | ||
| 14105 | - b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); | ||
| 14106 | + b->yy_ch_buf = (char *) yyalloc((yy_size_t) (b->yy_buf_size + 2) ); | ||
| 14107 | if ( ! b->yy_ch_buf ) | ||
| 14108 | YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); | ||
| 14109 | |||
| 14110 | @@ -3560,10 +3575,6 @@ | ||
| 14111 | yyfree((void *) b ); | ||
| 14112 | } | ||
| 14113 | |||
| 14114 | -#ifndef __cplusplus | ||
| 14115 | -extern int isatty (int ); | ||
| 14116 | -#endif /* __cplusplus */ | ||
| 14117 | - | ||
| 14118 | /* Initializes or reinitializes a buffer. | ||
| 14119 | * This function is sometimes called more than once on the same buffer, | ||
| 14120 | * such as during a yyrestart() or at EOF. | ||
| 14121 | @@ -3676,7 +3687,7 @@ | ||
| 14122 | */ | ||
| 14123 | static void yyensure_buffer_stack (void) | ||
| 14124 | { | ||
| 14125 | - yy_size_t num_to_alloc; | ||
| 14126 | + int num_to_alloc; | ||
| 14127 | |||
| 14128 | if (!(yy_buffer_stack)) { | ||
| 14129 | |||
| 14130 | @@ -3684,7 +3695,7 @@ | ||
| 14131 | * scanner will even need a stack. We use 2 instead of 1 to avoid an | ||
| 14132 | * immediate realloc on the next call. | ||
| 14133 | */ | ||
| 14134 | - num_to_alloc = 1; | ||
| 14135 | + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ | ||
| 14136 | (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc | ||
| 14137 | (num_to_alloc * sizeof(struct yy_buffer_state*) | ||
| 14138 | ); | ||
| 14139 | @@ -3701,7 +3712,7 @@ | ||
| 14140 | if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ | ||
| 14141 | |||
| 14142 | /* Increase the buffer to prepare for a possible push. */ | ||
| 14143 | - int grow_size = 8 /* arbitrary grow size */; | ||
| 14144 | + yy_size_t grow_size = 8 /* arbitrary grow size */; | ||
| 14145 | |||
| 14146 | num_to_alloc = (yy_buffer_stack_max) + grow_size; | ||
| 14147 | (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc | ||
| 14148 | @@ -3731,16 +3742,16 @@ | ||
| 14149 | base[size-2] != YY_END_OF_BUFFER_CHAR || | ||
| 14150 | base[size-1] != YY_END_OF_BUFFER_CHAR ) | ||
| 14151 | /* They forgot to leave room for the EOB's. */ | ||
| 14152 | - return 0; | ||
| 14153 | + return NULL; | ||
| 14154 | |||
| 14155 | b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); | ||
| 14156 | if ( ! b ) | ||
| 14157 | YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); | ||
| 14158 | |||
| 14159 | - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ | ||
| 14160 | + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ | ||
| 14161 | b->yy_buf_pos = b->yy_ch_buf = base; | ||
| 14162 | b->yy_is_our_buffer = 0; | ||
| 14163 | - b->yy_input_file = 0; | ||
| 14164 | + b->yy_input_file = NULL; | ||
| 14165 | b->yy_n_chars = b->yy_buf_size; | ||
| 14166 | b->yy_is_interactive = 0; | ||
| 14167 | b->yy_at_bol = 1; | ||
| 14168 | @@ -3763,24 +3774,25 @@ | ||
| 14169 | YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) | ||
| 14170 | { | ||
| 14171 | |||
| 14172 | - return yy_scan_bytes(yystr,strlen(yystr) ); | ||
| 14173 | + return yy_scan_bytes(yystr,(int) strlen(yystr) ); | ||
| 14174 | } | ||
| 14175 | |||
| 14176 | /** Setup the input buffer state to scan the given bytes. The next call to yylex() will | ||
| 14177 | * scan from a @e copy of @a bytes. | ||
| 14178 | - * @param bytes the byte buffer to scan | ||
| 14179 | - * @param len the number of bytes in the buffer pointed to by @a bytes. | ||
| 14180 | + * @param yybytes the byte buffer to scan | ||
| 14181 | + * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. | ||
| 14182 | * | ||
| 14183 | * @return the newly allocated buffer state object. | ||
| 14184 | */ | ||
| 14185 | -YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) | ||
| 14186 | +YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) | ||
| 14187 | { | ||
| 14188 | YY_BUFFER_STATE b; | ||
| 14189 | char *buf; | ||
| 14190 | - yy_size_t n, i; | ||
| 14191 | + yy_size_t n; | ||
| 14192 | + yy_size_t i; | ||
| 14193 | |||
| 14194 | /* Get memory for full buffer, including space for trailing EOB's. */ | ||
| 14195 | - n = _yybytes_len + 2; | ||
| 14196 | + n = (yy_size_t) _yybytes_len + 2; | ||
| 14197 | buf = (char *) yyalloc(n ); | ||
| 14198 | if ( ! buf ) | ||
| 14199 | YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); | ||
| 14200 | @@ -3802,14 +3814,14 @@ | ||
| 14201 | return b; | ||
| 14202 | } | ||
| 14203 | |||
| 14204 | - static void yy_push_state (int new_state ) | ||
| 14205 | + static void yy_push_state (int _new_state ) | ||
| 14206 | { | ||
| 14207 | if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) | ||
| 14208 | { | ||
| 14209 | yy_size_t new_size; | ||
| 14210 | |||
| 14211 | (yy_start_stack_depth) += YY_START_STACK_INCR; | ||
| 14212 | - new_size = (yy_start_stack_depth) * sizeof( int ); | ||
| 14213 | + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); | ||
| 14214 | |||
| 14215 | if ( ! (yy_start_stack) ) | ||
| 14216 | (yy_start_stack) = (int *) yyalloc(new_size ); | ||
| 14217 | @@ -3823,7 +3835,7 @@ | ||
| 14218 | |||
| 14219 | (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; | ||
| 14220 | |||
| 14221 | - BEGIN(new_state); | ||
| 14222 | + BEGIN(_new_state); | ||
| 14223 | } | ||
| 14224 | |||
| 14225 | static void yy_pop_state (void) | ||
| 14226 | @@ -3843,9 +3855,9 @@ | ||
| 14227 | #define YY_EXIT_FAILURE 2 | ||
| 14228 | #endif | ||
| 14229 | |||
| 14230 | -static void yy_fatal_error (yyconst char* msg ) | ||
| 14231 | +static void yynoreturn yy_fatal_error (yyconst char* msg ) | ||
| 14232 | { | ||
| 14233 | - (void) fprintf( stderr, "%s\n", msg ); | ||
| 14234 | + (void) fprintf( stderr, "%s\n", msg ); | ||
| 14235 | exit( YY_EXIT_FAILURE ); | ||
| 14236 | } | ||
| 14237 | |||
| 14238 | @@ -3856,7 +3868,7 @@ | ||
| 14239 | do \ | ||
| 14240 | { \ | ||
| 14241 | /* Undo effects of setting up yytext. */ \ | ||
| 14242 | - int yyless_macro_arg = (n); \ | ||
| 14243 | + yy_size_t yyless_macro_arg = (n); \ | ||
| 14244 | YY_LESS_LINENO(yyless_macro_arg);\ | ||
| 14245 | yytext[yyleng] = (yy_hold_char); \ | ||
| 14246 | (yy_c_buf_p) = yytext + yyless_macro_arg; \ | ||
| 14247 | @@ -3896,7 +3908,7 @@ | ||
| 14248 | /** Get the length of the current token. | ||
| 14249 | * | ||
| 14250 | */ | ||
| 14251 | -yy_size_t yyget_leng (void) | ||
| 14252 | +int yyget_leng (void) | ||
| 14253 | { | ||
| 14254 | return yyleng; | ||
| 14255 | } | ||
| 14256 | @@ -3911,29 +3923,29 @@ | ||
| 14257 | } | ||
| 14258 | |||
| 14259 | /** Set the current line number. | ||
| 14260 | - * @param line_number | ||
| 14261 | + * @param _line_number line number | ||
| 14262 | * | ||
| 14263 | */ | ||
| 14264 | -void yyset_lineno (int line_number ) | ||
| 14265 | +void yyset_lineno (int _line_number ) | ||
| 14266 | { | ||
| 14267 | |||
| 14268 | - yylineno = line_number; | ||
| 14269 | + yylineno = _line_number; | ||
| 14270 | } | ||
| 14271 | |||
| 14272 | /** Set the input stream. This does not discard the current | ||
| 14273 | * input buffer. | ||
| 14274 | - * @param in_str A readable stream. | ||
| 14275 | + * @param _in_str A readable stream. | ||
| 14276 | * | ||
| 14277 | * @see yy_switch_to_buffer | ||
| 14278 | */ | ||
| 14279 | -void yyset_in (FILE * in_str ) | ||
| 14280 | +void yyset_in (FILE * _in_str ) | ||
| 14281 | { | ||
| 14282 | - yyin = in_str ; | ||
| 14283 | + yyin = _in_str ; | ||
| 14284 | } | ||
| 14285 | |||
| 14286 | -void yyset_out (FILE * out_str ) | ||
| 14287 | +void yyset_out (FILE * _out_str ) | ||
| 14288 | { | ||
| 14289 | - yyout = out_str ; | ||
| 14290 | + yyout = _out_str ; | ||
| 14291 | } | ||
| 14292 | |||
| 14293 | int yyget_debug (void) | ||
| 14294 | @@ -3941,9 +3953,9 @@ | ||
| 14295 | return yy_flex_debug; | ||
| 14296 | } | ||
| 14297 | |||
| 14298 | -void yyset_debug (int bdebug ) | ||
| 14299 | +void yyset_debug (int _bdebug ) | ||
| 14300 | { | ||
| 14301 | - yy_flex_debug = bdebug ; | ||
| 14302 | + yy_flex_debug = _bdebug ; | ||
| 14303 | } | ||
| 14304 | |||
| 14305 | static int yy_init_globals (void) | ||
| 14306 | @@ -3952,10 +3964,10 @@ | ||
| 14307 | * This function is called from yylex_destroy(), so don't allocate here. | ||
| 14308 | */ | ||
| 14309 | |||
| 14310 | - (yy_buffer_stack) = 0; | ||
| 14311 | + (yy_buffer_stack) = NULL; | ||
| 14312 | (yy_buffer_stack_top) = 0; | ||
| 14313 | (yy_buffer_stack_max) = 0; | ||
| 14314 | - (yy_c_buf_p) = (char *) 0; | ||
| 14315 | + (yy_c_buf_p) = NULL; | ||
| 14316 | (yy_init) = 0; | ||
| 14317 | (yy_start) = 0; | ||
| 14318 | |||
| 14319 | @@ -3968,8 +3980,8 @@ | ||
| 14320 | yyin = stdin; | ||
| 14321 | yyout = stdout; | ||
| 14322 | #else | ||
| 14323 | - yyin = (FILE *) 0; | ||
| 14324 | - yyout = (FILE *) 0; | ||
| 14325 | + yyin = NULL; | ||
| 14326 | + yyout = NULL; | ||
| 14327 | #endif | ||
| 14328 | |||
| 14329 | /* For future reference: Set errno on error, since we are called by | ||
| 14330 | @@ -4011,7 +4023,8 @@ | ||
| 14331 | #ifndef yytext_ptr | ||
| 14332 | static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) | ||
| 14333 | { | ||
| 14334 | - register int i; | ||
| 14335 | + | ||
| 14336 | + int i; | ||
| 14337 | for ( i = 0; i < n; ++i ) | ||
| 14338 | s1[i] = s2[i]; | ||
| 14339 | } | ||
| 14340 | @@ -4020,7 +4033,7 @@ | ||
| 14341 | #ifdef YY_NEED_STRLEN | ||
| 14342 | static int yy_flex_strlen (yyconst char * s ) | ||
| 14343 | { | ||
| 14344 | - register int n; | ||
| 14345 | + int n; | ||
| 14346 | for ( n = 0; s[n]; ++n ) | ||
| 14347 | ; | ||
| 14348 | |||
| 14349 | @@ -4030,11 +4043,12 @@ | ||
| 14350 | |||
| 14351 | void *yyalloc (yy_size_t size ) | ||
| 14352 | { | ||
| 14353 | - return (void *) malloc( size ); | ||
| 14354 | + return malloc(size); | ||
| 14355 | } | ||
| 14356 | |||
| 14357 | void *yyrealloc (void * ptr, yy_size_t size ) | ||
| 14358 | { | ||
| 14359 | + | ||
| 14360 | /* The cast to (char *) in the following accommodates both | ||
| 14361 | * implementations that use char* generic pointers, and those | ||
| 14362 | * that use void* generic pointers. It works with the latter | ||
| 14363 | @@ -4042,17 +4056,17 @@ | ||
| 14364 | * any pointer type to void*, and deal with argument conversions | ||
| 14365 | * as though doing an assignment. | ||
| 14366 | */ | ||
| 14367 | - return (void *) realloc( (char *) ptr, size ); | ||
| 14368 | + return realloc(ptr, size); | ||
| 14369 | } | ||
| 14370 | |||
| 14371 | void yyfree (void * ptr ) | ||
| 14372 | { | ||
| 14373 | - free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ | ||
| 14374 | + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ | ||
| 14375 | } | ||
| 14376 | |||
| 14377 | #define YYTABLES_NAME "yytables" | ||
| 14378 | |||
| 14379 | -#line 632 "sip-4.19.12/sipgen/metasrc/lexer.l" | ||
| 14380 | +#line 632 "sipgen/metasrc/lexer.l" | ||
| 14381 | |||
| 14382 | |||
| 14383 | |||
| 14384 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/metasrc/parser.y sip/sipgen/metasrc/parser.y | ||
| 14385 | --- ./sip-4.19.12.orig/sipgen/metasrc/parser.y 2018-07-05 05:54:58.000000000 -0400 | ||
| 14386 | +++ sip/sipgen/metasrc/parser.y 2018-09-24 13:12:20.673276084 -0400 | ||
| 14387 | @@ -7586,7 +7586,7 @@ | ||
| 14388 | if (getDeprecated(optflgs)) | ||
| 14389 | setIsDeprecated(od); | ||
| 14390 | |||
| 14391 | - if (!isPrivate(od) && !isSignal(od) && (od->common->slot == no_slot || od->common->slot == call_slot)) | ||
| 14392 | + if (!isPrivate(od) && (od->common->slot == no_slot || od->common->slot == call_slot)) | ||
| 14393 | { | ||
| 14394 | od->kwargs = keywordArgs(mod, optflgs, &od->pysig, hasProtected(od->common)); | ||
| 14395 | |||
| 14396 | @@ -7598,7 +7598,7 @@ | ||
| 14397 | * we need to make sure that any other overloads' keyword argument | ||
| 14398 | * names are marked as used. | ||
| 14399 | */ | ||
| 14400 | - if (isProtected(od) && !inMainModule()) | ||
| 14401 | + if (!isSignal(od) && isProtected(od) && !inMainModule()) | ||
| 14402 | { | ||
| 14403 | overDef *kwod; | ||
| 14404 | |||
| 14405 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.c sip/sipgen/parser.c | ||
| 14406 | --- ./sip-4.19.12.orig/sipgen/parser.c 2018-07-05 05:55:19.000000000 -0400 | ||
| 14407 | +++ sip/sipgen/parser.c 2018-09-18 18:12:23.641053271 -0400 | ||
| 14408 | @@ -1,14 +1,13 @@ | ||
| 14409 | -/* A Bison parser, made by GNU Bison 2.3. */ | ||
| 14410 | +/* A Bison parser, made by GNU Bison 3.0.4. */ | ||
| 14411 | |||
| 14412 | -/* Skeleton implementation for Bison's Yacc-like parsers in C | ||
| 14413 | +/* Bison implementation for Yacc-like parsers in C | ||
| 14414 | |||
| 14415 | - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 | ||
| 14416 | - Free Software Foundation, Inc. | ||
| 14417 | + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. | ||
| 14418 | |||
| 14419 | - This program is free software; you can redistribute it and/or modify | ||
| 14420 | + This program is free software: you can redistribute it and/or modify | ||
| 14421 | it under the terms of the GNU General Public License as published by | ||
| 14422 | - the Free Software Foundation; either version 2, or (at your option) | ||
| 14423 | - any later version. | ||
| 14424 | + the Free Software Foundation, either version 3 of the License, or | ||
| 14425 | + (at your option) any later version. | ||
| 14426 | |||
| 14427 | This program is distributed in the hope that it will be useful, | ||
| 14428 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14429 | @@ -16,9 +15,7 @@ | ||
| 14430 | GNU General Public License for more details. | ||
| 14431 | |||
| 14432 | You should have received a copy of the GNU General Public License | ||
| 14433 | - along with this program; if not, write to the Free Software | ||
| 14434 | - Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 14435 | - Boston, MA 02110-1301, USA. */ | ||
| 14436 | + along with this program. If not, see <http://www.gnu.org/licenses/>. */ | ||
| 14437 | |||
| 14438 | /* As a special exception, you may create a larger work that contains | ||
| 14439 | part or all of the Bison parser skeleton and distribute that work | ||
| 14440 | @@ -47,7 +44,7 @@ | ||
| 14441 | #define YYBISON 1 | ||
| 14442 | |||
| 14443 | /* Bison version. */ | ||
| 14444 | -#define YYBISON_VERSION "2.3" | ||
| 14445 | +#define YYBISON_VERSION "3.0.4" | ||
| 14446 | |||
| 14447 | /* Skeleton name. */ | ||
| 14448 | #define YYSKELETON_NAME "yacc.c" | ||
| 14449 | @@ -55,324 +52,17 @@ | ||
| 14450 | /* Pure parsers. */ | ||
| 14451 | #define YYPURE 0 | ||
| 14452 | |||
| 14453 | -/* Using locations. */ | ||
| 14454 | -#define YYLSP_NEEDED 0 | ||
| 14455 | - | ||
| 14456 | - | ||
| 14457 | +/* Push parsers. */ | ||
| 14458 | +#define YYPUSH 0 | ||
| 14459 | |||
| 14460 | -/* Tokens. */ | ||
| 14461 | -#ifndef YYTOKENTYPE | ||
| 14462 | -# define YYTOKENTYPE | ||
| 14463 | - /* Put the tokens into the symbol table, so that GDB and other debuggers | ||
| 14464 | - know about them. */ | ||
| 14465 | - enum yytokentype { | ||
| 14466 | - TK_API = 258, | ||
| 14467 | - TK_AUTOPYNAME = 259, | ||
| 14468 | - TK_DEFDOCSTRFMT = 260, | ||
| 14469 | - TK_DEFDOCSTRSIG = 261, | ||
| 14470 | - TK_DEFENCODING = 262, | ||
| 14471 | - TK_PLUGIN = 263, | ||
| 14472 | - TK_VIRTERRORHANDLER = 264, | ||
| 14473 | - TK_EXPTYPEHINTCODE = 265, | ||
| 14474 | - TK_TYPEHINTCODE = 266, | ||
| 14475 | - TK_DOCSTRING = 267, | ||
| 14476 | - TK_DOC = 268, | ||
| 14477 | - TK_EXPORTEDDOC = 269, | ||
| 14478 | - TK_EXTRACT = 270, | ||
| 14479 | - TK_MAKEFILE = 271, | ||
| 14480 | - TK_ACCESSCODE = 272, | ||
| 14481 | - TK_GETCODE = 273, | ||
| 14482 | - TK_SETCODE = 274, | ||
| 14483 | - TK_PREINITCODE = 275, | ||
| 14484 | - TK_INITCODE = 276, | ||
| 14485 | - TK_POSTINITCODE = 277, | ||
| 14486 | - TK_FINALCODE = 278, | ||
| 14487 | - TK_UNITCODE = 279, | ||
| 14488 | - TK_UNITPOSTINCLUDECODE = 280, | ||
| 14489 | - TK_MODCODE = 281, | ||
| 14490 | - TK_TYPECODE = 282, | ||
| 14491 | - TK_PREPYCODE = 283, | ||
| 14492 | - TK_COPYING = 284, | ||
| 14493 | - TK_MAPPEDTYPE = 285, | ||
| 14494 | - TK_CODELINE = 286, | ||
| 14495 | - TK_IF = 287, | ||
| 14496 | - TK_END = 288, | ||
| 14497 | - TK_NAME_VALUE = 289, | ||
| 14498 | - TK_PATH_VALUE = 290, | ||
| 14499 | - TK_STRING_VALUE = 291, | ||
| 14500 | - TK_VIRTUALCATCHERCODE = 292, | ||
| 14501 | - TK_TRAVERSECODE = 293, | ||
| 14502 | - TK_CLEARCODE = 294, | ||
| 14503 | - TK_GETBUFFERCODE = 295, | ||
| 14504 | - TK_RELEASEBUFFERCODE = 296, | ||
| 14505 | - TK_READBUFFERCODE = 297, | ||
| 14506 | - TK_WRITEBUFFERCODE = 298, | ||
| 14507 | - TK_SEGCOUNTCODE = 299, | ||
| 14508 | - TK_CHARBUFFERCODE = 300, | ||
| 14509 | - TK_PICKLECODE = 301, | ||
| 14510 | - TK_VIRTUALCALLCODE = 302, | ||
| 14511 | - TK_METHODCODE = 303, | ||
| 14512 | - TK_PREMETHODCODE = 304, | ||
| 14513 | - TK_INSTANCECODE = 305, | ||
| 14514 | - TK_FROMTYPE = 306, | ||
| 14515 | - TK_TOTYPE = 307, | ||
| 14516 | - TK_TOSUBCLASS = 308, | ||
| 14517 | - TK_INCLUDE = 309, | ||
| 14518 | - TK_OPTINCLUDE = 310, | ||
| 14519 | - TK_IMPORT = 311, | ||
| 14520 | - TK_EXPHEADERCODE = 312, | ||
| 14521 | - TK_MODHEADERCODE = 313, | ||
| 14522 | - TK_TYPEHEADERCODE = 314, | ||
| 14523 | - TK_MODULE = 315, | ||
| 14524 | - TK_CMODULE = 316, | ||
| 14525 | - TK_CONSMODULE = 317, | ||
| 14526 | - TK_COMPOMODULE = 318, | ||
| 14527 | - TK_CLASS = 319, | ||
| 14528 | - TK_STRUCT = 320, | ||
| 14529 | - TK_PUBLIC = 321, | ||
| 14530 | - TK_PROTECTED = 322, | ||
| 14531 | - TK_PRIVATE = 323, | ||
| 14532 | - TK_SIGNALS = 324, | ||
| 14533 | - TK_SIGNAL_METHOD = 325, | ||
| 14534 | - TK_SLOTS = 326, | ||
| 14535 | - TK_SLOT_METHOD = 327, | ||
| 14536 | - TK_BOOL = 328, | ||
| 14537 | - TK_SHORT = 329, | ||
| 14538 | - TK_INT = 330, | ||
| 14539 | - TK_LONG = 331, | ||
| 14540 | - TK_FLOAT = 332, | ||
| 14541 | - TK_DOUBLE = 333, | ||
| 14542 | - TK_CHAR = 334, | ||
| 14543 | - TK_WCHAR_T = 335, | ||
| 14544 | - TK_VOID = 336, | ||
| 14545 | - TK_PYOBJECT = 337, | ||
| 14546 | - TK_PYTUPLE = 338, | ||
| 14547 | - TK_PYLIST = 339, | ||
| 14548 | - TK_PYDICT = 340, | ||
| 14549 | - TK_PYCALLABLE = 341, | ||
| 14550 | - TK_PYSLICE = 342, | ||
| 14551 | - TK_PYTYPE = 343, | ||
| 14552 | - TK_PYBUFFER = 344, | ||
| 14553 | - TK_VIRTUAL = 345, | ||
| 14554 | - TK_ENUM = 346, | ||
| 14555 | - TK_SIGNED = 347, | ||
| 14556 | - TK_UNSIGNED = 348, | ||
| 14557 | - TK_SCOPE = 349, | ||
| 14558 | - TK_LOGICAL_OR = 350, | ||
| 14559 | - TK_CONST = 351, | ||
| 14560 | - TK_STATIC = 352, | ||
| 14561 | - TK_SIPSIGNAL = 353, | ||
| 14562 | - TK_SIPSLOT = 354, | ||
| 14563 | - TK_SIPANYSLOT = 355, | ||
| 14564 | - TK_SIPRXCON = 356, | ||
| 14565 | - TK_SIPRXDIS = 357, | ||
| 14566 | - TK_SIPSLOTCON = 358, | ||
| 14567 | - TK_SIPSLOTDIS = 359, | ||
| 14568 | - TK_SIPSSIZET = 360, | ||
| 14569 | - TK_NUMBER_VALUE = 361, | ||
| 14570 | - TK_REAL_VALUE = 362, | ||
| 14571 | - TK_TYPEDEF = 363, | ||
| 14572 | - TK_NAMESPACE = 364, | ||
| 14573 | - TK_TIMELINE = 365, | ||
| 14574 | - TK_PLATFORMS = 366, | ||
| 14575 | - TK_FEATURE = 367, | ||
| 14576 | - TK_LICENSE = 368, | ||
| 14577 | - TK_QCHAR_VALUE = 369, | ||
| 14578 | - TK_TRUE_VALUE = 370, | ||
| 14579 | - TK_FALSE_VALUE = 371, | ||
| 14580 | - TK_NULL_VALUE = 372, | ||
| 14581 | - TK_OPERATOR = 373, | ||
| 14582 | - TK_THROW = 374, | ||
| 14583 | - TK_QOBJECT = 375, | ||
| 14584 | - TK_EXCEPTION = 376, | ||
| 14585 | - TK_RAISECODE = 377, | ||
| 14586 | - TK_VIRTERRORCODE = 378, | ||
| 14587 | - TK_EXPLICIT = 379, | ||
| 14588 | - TK_TEMPLATE = 380, | ||
| 14589 | - TK_FINAL = 381, | ||
| 14590 | - TK_ELLIPSIS = 382, | ||
| 14591 | - TK_DEFMETATYPE = 383, | ||
| 14592 | - TK_DEFSUPERTYPE = 384, | ||
| 14593 | - TK_PROPERTY = 385, | ||
| 14594 | - TK_HIDE_NS = 386, | ||
| 14595 | - TK_FORMAT = 387, | ||
| 14596 | - TK_GET = 388, | ||
| 14597 | - TK_ID = 389, | ||
| 14598 | - TK_KWARGS = 390, | ||
| 14599 | - TK_LANGUAGE = 391, | ||
| 14600 | - TK_LICENSEE = 392, | ||
| 14601 | - TK_NAME = 393, | ||
| 14602 | - TK_OPTIONAL = 394, | ||
| 14603 | - TK_ORDER = 395, | ||
| 14604 | - TK_REMOVELEADING = 396, | ||
| 14605 | - TK_SET = 397, | ||
| 14606 | - TK_SIGNATURE = 398, | ||
| 14607 | - TK_TIMESTAMP = 399, | ||
| 14608 | - TK_TYPE = 400, | ||
| 14609 | - TK_USEARGNAMES = 401, | ||
| 14610 | - TK_USELIMITEDAPI = 402, | ||
| 14611 | - TK_ALLRAISEPYEXC = 403, | ||
| 14612 | - TK_CALLSUPERINIT = 404, | ||
| 14613 | - TK_DEFERRORHANDLER = 405, | ||
| 14614 | - TK_VERSION = 406 | ||
| 14615 | - }; | ||
| 14616 | -#endif | ||
| 14617 | -/* Tokens. */ | ||
| 14618 | -#define TK_API 258 | ||
| 14619 | -#define TK_AUTOPYNAME 259 | ||
| 14620 | -#define TK_DEFDOCSTRFMT 260 | ||
| 14621 | -#define TK_DEFDOCSTRSIG 261 | ||
| 14622 | -#define TK_DEFENCODING 262 | ||
| 14623 | -#define TK_PLUGIN 263 | ||
| 14624 | -#define TK_VIRTERRORHANDLER 264 | ||
| 14625 | -#define TK_EXPTYPEHINTCODE 265 | ||
| 14626 | -#define TK_TYPEHINTCODE 266 | ||
| 14627 | -#define TK_DOCSTRING 267 | ||
| 14628 | -#define TK_DOC 268 | ||
| 14629 | -#define TK_EXPORTEDDOC 269 | ||
| 14630 | -#define TK_EXTRACT 270 | ||
| 14631 | -#define TK_MAKEFILE 271 | ||
| 14632 | -#define TK_ACCESSCODE 272 | ||
| 14633 | -#define TK_GETCODE 273 | ||
| 14634 | -#define TK_SETCODE 274 | ||
| 14635 | -#define TK_PREINITCODE 275 | ||
| 14636 | -#define TK_INITCODE 276 | ||
| 14637 | -#define TK_POSTINITCODE 277 | ||
| 14638 | -#define TK_FINALCODE 278 | ||
| 14639 | -#define TK_UNITCODE 279 | ||
| 14640 | -#define TK_UNITPOSTINCLUDECODE 280 | ||
| 14641 | -#define TK_MODCODE 281 | ||
| 14642 | -#define TK_TYPECODE 282 | ||
| 14643 | -#define TK_PREPYCODE 283 | ||
| 14644 | -#define TK_COPYING 284 | ||
| 14645 | -#define TK_MAPPEDTYPE 285 | ||
| 14646 | -#define TK_CODELINE 286 | ||
| 14647 | -#define TK_IF 287 | ||
| 14648 | -#define TK_END 288 | ||
| 14649 | -#define TK_NAME_VALUE 289 | ||
| 14650 | -#define TK_PATH_VALUE 290 | ||
| 14651 | -#define TK_STRING_VALUE 291 | ||
| 14652 | -#define TK_VIRTUALCATCHERCODE 292 | ||
| 14653 | -#define TK_TRAVERSECODE 293 | ||
| 14654 | -#define TK_CLEARCODE 294 | ||
| 14655 | -#define TK_GETBUFFERCODE 295 | ||
| 14656 | -#define TK_RELEASEBUFFERCODE 296 | ||
| 14657 | -#define TK_READBUFFERCODE 297 | ||
| 14658 | -#define TK_WRITEBUFFERCODE 298 | ||
| 14659 | -#define TK_SEGCOUNTCODE 299 | ||
| 14660 | -#define TK_CHARBUFFERCODE 300 | ||
| 14661 | -#define TK_PICKLECODE 301 | ||
| 14662 | -#define TK_VIRTUALCALLCODE 302 | ||
| 14663 | -#define TK_METHODCODE 303 | ||
| 14664 | -#define TK_PREMETHODCODE 304 | ||
| 14665 | -#define TK_INSTANCECODE 305 | ||
| 14666 | -#define TK_FROMTYPE 306 | ||
| 14667 | -#define TK_TOTYPE 307 | ||
| 14668 | -#define TK_TOSUBCLASS 308 | ||
| 14669 | -#define TK_INCLUDE 309 | ||
| 14670 | -#define TK_OPTINCLUDE 310 | ||
| 14671 | -#define TK_IMPORT 311 | ||
| 14672 | -#define TK_EXPHEADERCODE 312 | ||
| 14673 | -#define TK_MODHEADERCODE 313 | ||
| 14674 | -#define TK_TYPEHEADERCODE 314 | ||
| 14675 | -#define TK_MODULE 315 | ||
| 14676 | -#define TK_CMODULE 316 | ||
| 14677 | -#define TK_CONSMODULE 317 | ||
| 14678 | -#define TK_COMPOMODULE 318 | ||
| 14679 | -#define TK_CLASS 319 | ||
| 14680 | -#define TK_STRUCT 320 | ||
| 14681 | -#define TK_PUBLIC 321 | ||
| 14682 | -#define TK_PROTECTED 322 | ||
| 14683 | -#define TK_PRIVATE 323 | ||
| 14684 | -#define TK_SIGNALS 324 | ||
| 14685 | -#define TK_SIGNAL_METHOD 325 | ||
| 14686 | -#define TK_SLOTS 326 | ||
| 14687 | -#define TK_SLOT_METHOD 327 | ||
| 14688 | -#define TK_BOOL 328 | ||
| 14689 | -#define TK_SHORT 329 | ||
| 14690 | -#define TK_INT 330 | ||
| 14691 | -#define TK_LONG 331 | ||
| 14692 | -#define TK_FLOAT 332 | ||
| 14693 | -#define TK_DOUBLE 333 | ||
| 14694 | -#define TK_CHAR 334 | ||
| 14695 | -#define TK_WCHAR_T 335 | ||
| 14696 | -#define TK_VOID 336 | ||
| 14697 | -#define TK_PYOBJECT 337 | ||
| 14698 | -#define TK_PYTUPLE 338 | ||
| 14699 | -#define TK_PYLIST 339 | ||
| 14700 | -#define TK_PYDICT 340 | ||
| 14701 | -#define TK_PYCALLABLE 341 | ||
| 14702 | -#define TK_PYSLICE 342 | ||
| 14703 | -#define TK_PYTYPE 343 | ||
| 14704 | -#define TK_PYBUFFER 344 | ||
| 14705 | -#define TK_VIRTUAL 345 | ||
| 14706 | -#define TK_ENUM 346 | ||
| 14707 | -#define TK_SIGNED 347 | ||
| 14708 | -#define TK_UNSIGNED 348 | ||
| 14709 | -#define TK_SCOPE 349 | ||
| 14710 | -#define TK_LOGICAL_OR 350 | ||
| 14711 | -#define TK_CONST 351 | ||
| 14712 | -#define TK_STATIC 352 | ||
| 14713 | -#define TK_SIPSIGNAL 353 | ||
| 14714 | -#define TK_SIPSLOT 354 | ||
| 14715 | -#define TK_SIPANYSLOT 355 | ||
| 14716 | -#define TK_SIPRXCON 356 | ||
| 14717 | -#define TK_SIPRXDIS 357 | ||
| 14718 | -#define TK_SIPSLOTCON 358 | ||
| 14719 | -#define TK_SIPSLOTDIS 359 | ||
| 14720 | -#define TK_SIPSSIZET 360 | ||
| 14721 | -#define TK_NUMBER_VALUE 361 | ||
| 14722 | -#define TK_REAL_VALUE 362 | ||
| 14723 | -#define TK_TYPEDEF 363 | ||
| 14724 | -#define TK_NAMESPACE 364 | ||
| 14725 | -#define TK_TIMELINE 365 | ||
| 14726 | -#define TK_PLATFORMS 366 | ||
| 14727 | -#define TK_FEATURE 367 | ||
| 14728 | -#define TK_LICENSE 368 | ||
| 14729 | -#define TK_QCHAR_VALUE 369 | ||
| 14730 | -#define TK_TRUE_VALUE 370 | ||
| 14731 | -#define TK_FALSE_VALUE 371 | ||
| 14732 | -#define TK_NULL_VALUE 372 | ||
| 14733 | -#define TK_OPERATOR 373 | ||
| 14734 | -#define TK_THROW 374 | ||
| 14735 | -#define TK_QOBJECT 375 | ||
| 14736 | -#define TK_EXCEPTION 376 | ||
| 14737 | -#define TK_RAISECODE 377 | ||
| 14738 | -#define TK_VIRTERRORCODE 378 | ||
| 14739 | -#define TK_EXPLICIT 379 | ||
| 14740 | -#define TK_TEMPLATE 380 | ||
| 14741 | -#define TK_FINAL 381 | ||
| 14742 | -#define TK_ELLIPSIS 382 | ||
| 14743 | -#define TK_DEFMETATYPE 383 | ||
| 14744 | -#define TK_DEFSUPERTYPE 384 | ||
| 14745 | -#define TK_PROPERTY 385 | ||
| 14746 | -#define TK_HIDE_NS 386 | ||
| 14747 | -#define TK_FORMAT 387 | ||
| 14748 | -#define TK_GET 388 | ||
| 14749 | -#define TK_ID 389 | ||
| 14750 | -#define TK_KWARGS 390 | ||
| 14751 | -#define TK_LANGUAGE 391 | ||
| 14752 | -#define TK_LICENSEE 392 | ||
| 14753 | -#define TK_NAME 393 | ||
| 14754 | -#define TK_OPTIONAL 394 | ||
| 14755 | -#define TK_ORDER 395 | ||
| 14756 | -#define TK_REMOVELEADING 396 | ||
| 14757 | -#define TK_SET 397 | ||
| 14758 | -#define TK_SIGNATURE 398 | ||
| 14759 | -#define TK_TIMESTAMP 399 | ||
| 14760 | -#define TK_TYPE 400 | ||
| 14761 | -#define TK_USEARGNAMES 401 | ||
| 14762 | -#define TK_USELIMITEDAPI 402 | ||
| 14763 | -#define TK_ALLRAISEPYEXC 403 | ||
| 14764 | -#define TK_CALLSUPERINIT 404 | ||
| 14765 | -#define TK_DEFERRORHANDLER 405 | ||
| 14766 | -#define TK_VERSION 406 | ||
| 14767 | +/* Pull parsers. */ | ||
| 14768 | +#define YYPULL 1 | ||
| 14769 | |||
| 14770 | |||
| 14771 | |||
| 14772 | |||
| 14773 | /* Copy the first part of user declarations. */ | ||
| 14774 | -#line 19 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 14775 | +#line 19 "sipgen/metasrc/parser.y" /* yacc.c:339 */ | ||
| 14776 | |||
| 14777 | #include <stdlib.h> | ||
| 14778 | #include <string.h> | ||
| 14779 | @@ -556,11 +246,15 @@ | ||
| 14780 | static void checkEllipsis(signatureDef *sd); | ||
| 14781 | static scopedNameDef *fullyQualifiedName(scopedNameDef *snd); | ||
| 14782 | |||
| 14783 | +#line 250 "sipgen/parser.c" /* yacc.c:339 */ | ||
| 14784 | |||
| 14785 | -/* Enabling traces. */ | ||
| 14786 | -#ifndef YYDEBUG | ||
| 14787 | -# define YYDEBUG 0 | ||
| 14788 | -#endif | ||
| 14789 | +# ifndef YY_NULLPTR | ||
| 14790 | +# if defined __cplusplus && 201103L <= __cplusplus | ||
| 14791 | +# define YY_NULLPTR nullptr | ||
| 14792 | +# else | ||
| 14793 | +# define YY_NULLPTR 0 | ||
| 14794 | +# endif | ||
| 14795 | +# endif | ||
| 14796 | |||
| 14797 | /* Enabling verbose error messages. */ | ||
| 14798 | #ifdef YYERROR_VERBOSE | ||
| 14799 | @@ -570,15 +264,332 @@ | ||
| 14800 | # define YYERROR_VERBOSE 0 | ||
| 14801 | #endif | ||
| 14802 | |||
| 14803 | -/* Enabling the token table. */ | ||
| 14804 | -#ifndef YYTOKEN_TABLE | ||
| 14805 | -# define YYTOKEN_TABLE 0 | ||
| 14806 | +/* In a future release of Bison, this section will be replaced | ||
| 14807 | + by #include "parser.h". */ | ||
| 14808 | +#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED | ||
| 14809 | +# define YY_YY_SIPGEN_PARSER_H_INCLUDED | ||
| 14810 | +/* Debug traces. */ | ||
| 14811 | +#ifndef YYDEBUG | ||
| 14812 | +# define YYDEBUG 0 | ||
| 14813 | +#endif | ||
| 14814 | +#if YYDEBUG | ||
| 14815 | +extern int yydebug; | ||
| 14816 | #endif | ||
| 14817 | |||
| 14818 | +/* Token type. */ | ||
| 14819 | +#ifndef YYTOKENTYPE | ||
| 14820 | +# define YYTOKENTYPE | ||
| 14821 | + enum yytokentype | ||
| 14822 | + { | ||
| 14823 | + TK_API = 258, | ||
| 14824 | + TK_AUTOPYNAME = 259, | ||
| 14825 | + TK_DEFDOCSTRFMT = 260, | ||
| 14826 | + TK_DEFDOCSTRSIG = 261, | ||
| 14827 | + TK_DEFENCODING = 262, | ||
| 14828 | + TK_PLUGIN = 263, | ||
| 14829 | + TK_VIRTERRORHANDLER = 264, | ||
| 14830 | + TK_EXPTYPEHINTCODE = 265, | ||
| 14831 | + TK_TYPEHINTCODE = 266, | ||
| 14832 | + TK_DOCSTRING = 267, | ||
| 14833 | + TK_DOC = 268, | ||
| 14834 | + TK_EXPORTEDDOC = 269, | ||
| 14835 | + TK_EXTRACT = 270, | ||
| 14836 | + TK_MAKEFILE = 271, | ||
| 14837 | + TK_ACCESSCODE = 272, | ||
| 14838 | + TK_GETCODE = 273, | ||
| 14839 | + TK_SETCODE = 274, | ||
| 14840 | + TK_PREINITCODE = 275, | ||
| 14841 | + TK_INITCODE = 276, | ||
| 14842 | + TK_POSTINITCODE = 277, | ||
| 14843 | + TK_FINALCODE = 278, | ||
| 14844 | + TK_UNITCODE = 279, | ||
| 14845 | + TK_UNITPOSTINCLUDECODE = 280, | ||
| 14846 | + TK_MODCODE = 281, | ||
| 14847 | + TK_TYPECODE = 282, | ||
| 14848 | + TK_PREPYCODE = 283, | ||
| 14849 | + TK_COPYING = 284, | ||
| 14850 | + TK_MAPPEDTYPE = 285, | ||
| 14851 | + TK_CODELINE = 286, | ||
| 14852 | + TK_IF = 287, | ||
| 14853 | + TK_END = 288, | ||
| 14854 | + TK_NAME_VALUE = 289, | ||
| 14855 | + TK_PATH_VALUE = 290, | ||
| 14856 | + TK_STRING_VALUE = 291, | ||
| 14857 | + TK_VIRTUALCATCHERCODE = 292, | ||
| 14858 | + TK_TRAVERSECODE = 293, | ||
| 14859 | + TK_CLEARCODE = 294, | ||
| 14860 | + TK_GETBUFFERCODE = 295, | ||
| 14861 | + TK_RELEASEBUFFERCODE = 296, | ||
| 14862 | + TK_READBUFFERCODE = 297, | ||
| 14863 | + TK_WRITEBUFFERCODE = 298, | ||
| 14864 | + TK_SEGCOUNTCODE = 299, | ||
| 14865 | + TK_CHARBUFFERCODE = 300, | ||
| 14866 | + TK_PICKLECODE = 301, | ||
| 14867 | + TK_VIRTUALCALLCODE = 302, | ||
| 14868 | + TK_METHODCODE = 303, | ||
| 14869 | + TK_PREMETHODCODE = 304, | ||
| 14870 | + TK_INSTANCECODE = 305, | ||
| 14871 | + TK_FROMTYPE = 306, | ||
| 14872 | + TK_TOTYPE = 307, | ||
| 14873 | + TK_TOSUBCLASS = 308, | ||
| 14874 | + TK_INCLUDE = 309, | ||
| 14875 | + TK_OPTINCLUDE = 310, | ||
| 14876 | + TK_IMPORT = 311, | ||
| 14877 | + TK_EXPHEADERCODE = 312, | ||
| 14878 | + TK_MODHEADERCODE = 313, | ||
| 14879 | + TK_TYPEHEADERCODE = 314, | ||
| 14880 | + TK_MODULE = 315, | ||
| 14881 | + TK_CMODULE = 316, | ||
| 14882 | + TK_CONSMODULE = 317, | ||
| 14883 | + TK_COMPOMODULE = 318, | ||
| 14884 | + TK_CLASS = 319, | ||
| 14885 | + TK_STRUCT = 320, | ||
| 14886 | + TK_PUBLIC = 321, | ||
| 14887 | + TK_PROTECTED = 322, | ||
| 14888 | + TK_PRIVATE = 323, | ||
| 14889 | + TK_SIGNALS = 324, | ||
| 14890 | + TK_SIGNAL_METHOD = 325, | ||
| 14891 | + TK_SLOTS = 326, | ||
| 14892 | + TK_SLOT_METHOD = 327, | ||
| 14893 | + TK_BOOL = 328, | ||
| 14894 | + TK_SHORT = 329, | ||
| 14895 | + TK_INT = 330, | ||
| 14896 | + TK_LONG = 331, | ||
| 14897 | + TK_FLOAT = 332, | ||
| 14898 | + TK_DOUBLE = 333, | ||
| 14899 | + TK_CHAR = 334, | ||
| 14900 | + TK_WCHAR_T = 335, | ||
| 14901 | + TK_VOID = 336, | ||
| 14902 | + TK_PYOBJECT = 337, | ||
| 14903 | + TK_PYTUPLE = 338, | ||
| 14904 | + TK_PYLIST = 339, | ||
| 14905 | + TK_PYDICT = 340, | ||
| 14906 | + TK_PYCALLABLE = 341, | ||
| 14907 | + TK_PYSLICE = 342, | ||
| 14908 | + TK_PYTYPE = 343, | ||
| 14909 | + TK_PYBUFFER = 344, | ||
| 14910 | + TK_VIRTUAL = 345, | ||
| 14911 | + TK_ENUM = 346, | ||
| 14912 | + TK_SIGNED = 347, | ||
| 14913 | + TK_UNSIGNED = 348, | ||
| 14914 | + TK_SCOPE = 349, | ||
| 14915 | + TK_LOGICAL_OR = 350, | ||
| 14916 | + TK_CONST = 351, | ||
| 14917 | + TK_STATIC = 352, | ||
| 14918 | + TK_SIPSIGNAL = 353, | ||
| 14919 | + TK_SIPSLOT = 354, | ||
| 14920 | + TK_SIPANYSLOT = 355, | ||
| 14921 | + TK_SIPRXCON = 356, | ||
| 14922 | + TK_SIPRXDIS = 357, | ||
| 14923 | + TK_SIPSLOTCON = 358, | ||
| 14924 | + TK_SIPSLOTDIS = 359, | ||
| 14925 | + TK_SIPSSIZET = 360, | ||
| 14926 | + TK_NUMBER_VALUE = 361, | ||
| 14927 | + TK_REAL_VALUE = 362, | ||
| 14928 | + TK_TYPEDEF = 363, | ||
| 14929 | + TK_NAMESPACE = 364, | ||
| 14930 | + TK_TIMELINE = 365, | ||
| 14931 | + TK_PLATFORMS = 366, | ||
| 14932 | + TK_FEATURE = 367, | ||
| 14933 | + TK_LICENSE = 368, | ||
| 14934 | + TK_QCHAR_VALUE = 369, | ||
| 14935 | + TK_TRUE_VALUE = 370, | ||
| 14936 | + TK_FALSE_VALUE = 371, | ||
| 14937 | + TK_NULL_VALUE = 372, | ||
| 14938 | + TK_OPERATOR = 373, | ||
| 14939 | + TK_THROW = 374, | ||
| 14940 | + TK_QOBJECT = 375, | ||
| 14941 | + TK_EXCEPTION = 376, | ||
| 14942 | + TK_RAISECODE = 377, | ||
| 14943 | + TK_VIRTERRORCODE = 378, | ||
| 14944 | + TK_EXPLICIT = 379, | ||
| 14945 | + TK_TEMPLATE = 380, | ||
| 14946 | + TK_FINAL = 381, | ||
| 14947 | + TK_ELLIPSIS = 382, | ||
| 14948 | + TK_DEFMETATYPE = 383, | ||
| 14949 | + TK_DEFSUPERTYPE = 384, | ||
| 14950 | + TK_PROPERTY = 385, | ||
| 14951 | + TK_HIDE_NS = 386, | ||
| 14952 | + TK_FORMAT = 387, | ||
| 14953 | + TK_GET = 388, | ||
| 14954 | + TK_ID = 389, | ||
| 14955 | + TK_KWARGS = 390, | ||
| 14956 | + TK_LANGUAGE = 391, | ||
| 14957 | + TK_LICENSEE = 392, | ||
| 14958 | + TK_NAME = 393, | ||
| 14959 | + TK_OPTIONAL = 394, | ||
| 14960 | + TK_ORDER = 395, | ||
| 14961 | + TK_REMOVELEADING = 396, | ||
| 14962 | + TK_SET = 397, | ||
| 14963 | + TK_SIGNATURE = 398, | ||
| 14964 | + TK_TIMESTAMP = 399, | ||
| 14965 | + TK_TYPE = 400, | ||
| 14966 | + TK_USEARGNAMES = 401, | ||
| 14967 | + TK_USELIMITEDAPI = 402, | ||
| 14968 | + TK_ALLRAISEPYEXC = 403, | ||
| 14969 | + TK_CALLSUPERINIT = 404, | ||
| 14970 | + TK_DEFERRORHANDLER = 405, | ||
| 14971 | + TK_VERSION = 406 | ||
| 14972 | + }; | ||
| 14973 | +#endif | ||
| 14974 | +/* Tokens. */ | ||
| 14975 | +#define TK_API 258 | ||
| 14976 | +#define TK_AUTOPYNAME 259 | ||
| 14977 | +#define TK_DEFDOCSTRFMT 260 | ||
| 14978 | +#define TK_DEFDOCSTRSIG 261 | ||
| 14979 | +#define TK_DEFENCODING 262 | ||
| 14980 | +#define TK_PLUGIN 263 | ||
| 14981 | +#define TK_VIRTERRORHANDLER 264 | ||
| 14982 | +#define TK_EXPTYPEHINTCODE 265 | ||
| 14983 | +#define TK_TYPEHINTCODE 266 | ||
| 14984 | +#define TK_DOCSTRING 267 | ||
| 14985 | +#define TK_DOC 268 | ||
| 14986 | +#define TK_EXPORTEDDOC 269 | ||
| 14987 | +#define TK_EXTRACT 270 | ||
| 14988 | +#define TK_MAKEFILE 271 | ||
| 14989 | +#define TK_ACCESSCODE 272 | ||
| 14990 | +#define TK_GETCODE 273 | ||
| 14991 | +#define TK_SETCODE 274 | ||
| 14992 | +#define TK_PREINITCODE 275 | ||
| 14993 | +#define TK_INITCODE 276 | ||
| 14994 | +#define TK_POSTINITCODE 277 | ||
| 14995 | +#define TK_FINALCODE 278 | ||
| 14996 | +#define TK_UNITCODE 279 | ||
| 14997 | +#define TK_UNITPOSTINCLUDECODE 280 | ||
| 14998 | +#define TK_MODCODE 281 | ||
| 14999 | +#define TK_TYPECODE 282 | ||
| 15000 | +#define TK_PREPYCODE 283 | ||
| 15001 | +#define TK_COPYING 284 | ||
| 15002 | +#define TK_MAPPEDTYPE 285 | ||
| 15003 | +#define TK_CODELINE 286 | ||
| 15004 | +#define TK_IF 287 | ||
| 15005 | +#define TK_END 288 | ||
| 15006 | +#define TK_NAME_VALUE 289 | ||
| 15007 | +#define TK_PATH_VALUE 290 | ||
| 15008 | +#define TK_STRING_VALUE 291 | ||
| 15009 | +#define TK_VIRTUALCATCHERCODE 292 | ||
| 15010 | +#define TK_TRAVERSECODE 293 | ||
| 15011 | +#define TK_CLEARCODE 294 | ||
| 15012 | +#define TK_GETBUFFERCODE 295 | ||
| 15013 | +#define TK_RELEASEBUFFERCODE 296 | ||
| 15014 | +#define TK_READBUFFERCODE 297 | ||
| 15015 | +#define TK_WRITEBUFFERCODE 298 | ||
| 15016 | +#define TK_SEGCOUNTCODE 299 | ||
| 15017 | +#define TK_CHARBUFFERCODE 300 | ||
| 15018 | +#define TK_PICKLECODE 301 | ||
| 15019 | +#define TK_VIRTUALCALLCODE 302 | ||
| 15020 | +#define TK_METHODCODE 303 | ||
| 15021 | +#define TK_PREMETHODCODE 304 | ||
| 15022 | +#define TK_INSTANCECODE 305 | ||
| 15023 | +#define TK_FROMTYPE 306 | ||
| 15024 | +#define TK_TOTYPE 307 | ||
| 15025 | +#define TK_TOSUBCLASS 308 | ||
| 15026 | +#define TK_INCLUDE 309 | ||
| 15027 | +#define TK_OPTINCLUDE 310 | ||
| 15028 | +#define TK_IMPORT 311 | ||
| 15029 | +#define TK_EXPHEADERCODE 312 | ||
| 15030 | +#define TK_MODHEADERCODE 313 | ||
| 15031 | +#define TK_TYPEHEADERCODE 314 | ||
| 15032 | +#define TK_MODULE 315 | ||
| 15033 | +#define TK_CMODULE 316 | ||
| 15034 | +#define TK_CONSMODULE 317 | ||
| 15035 | +#define TK_COMPOMODULE 318 | ||
| 15036 | +#define TK_CLASS 319 | ||
| 15037 | +#define TK_STRUCT 320 | ||
| 15038 | +#define TK_PUBLIC 321 | ||
| 15039 | +#define TK_PROTECTED 322 | ||
| 15040 | +#define TK_PRIVATE 323 | ||
| 15041 | +#define TK_SIGNALS 324 | ||
| 15042 | +#define TK_SIGNAL_METHOD 325 | ||
| 15043 | +#define TK_SLOTS 326 | ||
| 15044 | +#define TK_SLOT_METHOD 327 | ||
| 15045 | +#define TK_BOOL 328 | ||
| 15046 | +#define TK_SHORT 329 | ||
| 15047 | +#define TK_INT 330 | ||
| 15048 | +#define TK_LONG 331 | ||
| 15049 | +#define TK_FLOAT 332 | ||
| 15050 | +#define TK_DOUBLE 333 | ||
| 15051 | +#define TK_CHAR 334 | ||
| 15052 | +#define TK_WCHAR_T 335 | ||
| 15053 | +#define TK_VOID 336 | ||
| 15054 | +#define TK_PYOBJECT 337 | ||
| 15055 | +#define TK_PYTUPLE 338 | ||
| 15056 | +#define TK_PYLIST 339 | ||
| 15057 | +#define TK_PYDICT 340 | ||
| 15058 | +#define TK_PYCALLABLE 341 | ||
| 15059 | +#define TK_PYSLICE 342 | ||
| 15060 | +#define TK_PYTYPE 343 | ||
| 15061 | +#define TK_PYBUFFER 344 | ||
| 15062 | +#define TK_VIRTUAL 345 | ||
| 15063 | +#define TK_ENUM 346 | ||
| 15064 | +#define TK_SIGNED 347 | ||
| 15065 | +#define TK_UNSIGNED 348 | ||
| 15066 | +#define TK_SCOPE 349 | ||
| 15067 | +#define TK_LOGICAL_OR 350 | ||
| 15068 | +#define TK_CONST 351 | ||
| 15069 | +#define TK_STATIC 352 | ||
| 15070 | +#define TK_SIPSIGNAL 353 | ||
| 15071 | +#define TK_SIPSLOT 354 | ||
| 15072 | +#define TK_SIPANYSLOT 355 | ||
| 15073 | +#define TK_SIPRXCON 356 | ||
| 15074 | +#define TK_SIPRXDIS 357 | ||
| 15075 | +#define TK_SIPSLOTCON 358 | ||
| 15076 | +#define TK_SIPSLOTDIS 359 | ||
| 15077 | +#define TK_SIPSSIZET 360 | ||
| 15078 | +#define TK_NUMBER_VALUE 361 | ||
| 15079 | +#define TK_REAL_VALUE 362 | ||
| 15080 | +#define TK_TYPEDEF 363 | ||
| 15081 | +#define TK_NAMESPACE 364 | ||
| 15082 | +#define TK_TIMELINE 365 | ||
| 15083 | +#define TK_PLATFORMS 366 | ||
| 15084 | +#define TK_FEATURE 367 | ||
| 15085 | +#define TK_LICENSE 368 | ||
| 15086 | +#define TK_QCHAR_VALUE 369 | ||
| 15087 | +#define TK_TRUE_VALUE 370 | ||
| 15088 | +#define TK_FALSE_VALUE 371 | ||
| 15089 | +#define TK_NULL_VALUE 372 | ||
| 15090 | +#define TK_OPERATOR 373 | ||
| 15091 | +#define TK_THROW 374 | ||
| 15092 | +#define TK_QOBJECT 375 | ||
| 15093 | +#define TK_EXCEPTION 376 | ||
| 15094 | +#define TK_RAISECODE 377 | ||
| 15095 | +#define TK_VIRTERRORCODE 378 | ||
| 15096 | +#define TK_EXPLICIT 379 | ||
| 15097 | +#define TK_TEMPLATE 380 | ||
| 15098 | +#define TK_FINAL 381 | ||
| 15099 | +#define TK_ELLIPSIS 382 | ||
| 15100 | +#define TK_DEFMETATYPE 383 | ||
| 15101 | +#define TK_DEFSUPERTYPE 384 | ||
| 15102 | +#define TK_PROPERTY 385 | ||
| 15103 | +#define TK_HIDE_NS 386 | ||
| 15104 | +#define TK_FORMAT 387 | ||
| 15105 | +#define TK_GET 388 | ||
| 15106 | +#define TK_ID 389 | ||
| 15107 | +#define TK_KWARGS 390 | ||
| 15108 | +#define TK_LANGUAGE 391 | ||
| 15109 | +#define TK_LICENSEE 392 | ||
| 15110 | +#define TK_NAME 393 | ||
| 15111 | +#define TK_OPTIONAL 394 | ||
| 15112 | +#define TK_ORDER 395 | ||
| 15113 | +#define TK_REMOVELEADING 396 | ||
| 15114 | +#define TK_SET 397 | ||
| 15115 | +#define TK_SIGNATURE 398 | ||
| 15116 | +#define TK_TIMESTAMP 399 | ||
| 15117 | +#define TK_TYPE 400 | ||
| 15118 | +#define TK_USEARGNAMES 401 | ||
| 15119 | +#define TK_USELIMITEDAPI 402 | ||
| 15120 | +#define TK_ALLRAISEPYEXC 403 | ||
| 15121 | +#define TK_CALLSUPERINIT 404 | ||
| 15122 | +#define TK_DEFERRORHANDLER 405 | ||
| 15123 | +#define TK_VERSION 406 | ||
| 15124 | + | ||
| 15125 | +/* Value type. */ | ||
| 15126 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | ||
| 15127 | -typedef union YYSTYPE | ||
| 15128 | -#line 203 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 15129 | + | ||
| 15130 | +union YYSTYPE | ||
| 15131 | { | ||
| 15132 | +#line 203 "sipgen/metasrc/parser.y" /* yacc.c:355 */ | ||
| 15133 | + | ||
| 15134 | char qchar; | ||
| 15135 | char *text; | ||
| 15136 | long number; | ||
| 15137 | @@ -621,22 +632,25 @@ | ||
| 15138 | variableCfg variable; | ||
| 15139 | vehCfg veh; | ||
| 15140 | int token; | ||
| 15141 | -} | ||
| 15142 | -/* Line 193 of yacc.c. */ | ||
| 15143 | -#line 627 "sip-4.19.12/sipgen/parser.c" | ||
| 15144 | - YYSTYPE; | ||
| 15145 | -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ | ||
| 15146 | -# define YYSTYPE_IS_DECLARED 1 | ||
| 15147 | + | ||
| 15148 | +#line 637 "sipgen/parser.c" /* yacc.c:355 */ | ||
| 15149 | +}; | ||
| 15150 | + | ||
| 15151 | +typedef union YYSTYPE YYSTYPE; | ||
| 15152 | # define YYSTYPE_IS_TRIVIAL 1 | ||
| 15153 | +# define YYSTYPE_IS_DECLARED 1 | ||
| 15154 | #endif | ||
| 15155 | |||
| 15156 | |||
| 15157 | +extern YYSTYPE yylval; | ||
| 15158 | |||
| 15159 | -/* Copy the second part of user declarations. */ | ||
| 15160 | +int yyparse (void); | ||
| 15161 | |||
| 15162 | +#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */ | ||
| 15163 | |||
| 15164 | -/* Line 216 of yacc.c. */ | ||
| 15165 | -#line 640 "sip-4.19.12/sipgen/parser.c" | ||
| 15166 | +/* Copy the second part of user declarations. */ | ||
| 15167 | + | ||
| 15168 | +#line 654 "sipgen/parser.c" /* yacc.c:358 */ | ||
| 15169 | |||
| 15170 | #ifdef short | ||
| 15171 | # undef short | ||
| 15172 | @@ -650,11 +664,8 @@ | ||
| 15173 | |||
| 15174 | #ifdef YYTYPE_INT8 | ||
| 15175 | typedef YYTYPE_INT8 yytype_int8; | ||
| 15176 | -#elif (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15177 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15178 | -typedef signed char yytype_int8; | ||
| 15179 | #else | ||
| 15180 | -typedef short int yytype_int8; | ||
| 15181 | +typedef signed char yytype_int8; | ||
| 15182 | #endif | ||
| 15183 | |||
| 15184 | #ifdef YYTYPE_UINT16 | ||
| 15185 | @@ -674,8 +685,7 @@ | ||
| 15186 | # define YYSIZE_T __SIZE_TYPE__ | ||
| 15187 | # elif defined size_t | ||
| 15188 | # define YYSIZE_T size_t | ||
| 15189 | -# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15190 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15191 | +# elif ! defined YYSIZE_T | ||
| 15192 | # include <stddef.h> /* INFRINGES ON USER NAME SPACE */ | ||
| 15193 | # define YYSIZE_T size_t | ||
| 15194 | # else | ||
| 15195 | @@ -689,39 +699,68 @@ | ||
| 15196 | # if defined YYENABLE_NLS && YYENABLE_NLS | ||
| 15197 | # if ENABLE_NLS | ||
| 15198 | # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ | ||
| 15199 | -# define YY_(msgid) dgettext ("bison-runtime", msgid) | ||
| 15200 | +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) | ||
| 15201 | # endif | ||
| 15202 | # endif | ||
| 15203 | # ifndef YY_ | ||
| 15204 | -# define YY_(msgid) msgid | ||
| 15205 | +# define YY_(Msgid) Msgid | ||
| 15206 | +# endif | ||
| 15207 | +#endif | ||
| 15208 | + | ||
| 15209 | +#ifndef YY_ATTRIBUTE | ||
| 15210 | +# if (defined __GNUC__ \ | ||
| 15211 | + && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ | ||
| 15212 | + || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C | ||
| 15213 | +# define YY_ATTRIBUTE(Spec) __attribute__(Spec) | ||
| 15214 | +# else | ||
| 15215 | +# define YY_ATTRIBUTE(Spec) /* empty */ | ||
| 15216 | +# endif | ||
| 15217 | +#endif | ||
| 15218 | + | ||
| 15219 | +#ifndef YY_ATTRIBUTE_PURE | ||
| 15220 | +# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) | ||
| 15221 | +#endif | ||
| 15222 | + | ||
| 15223 | +#ifndef YY_ATTRIBUTE_UNUSED | ||
| 15224 | +# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) | ||
| 15225 | +#endif | ||
| 15226 | + | ||
| 15227 | +#if !defined _Noreturn \ | ||
| 15228 | + && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) | ||
| 15229 | +# if defined _MSC_VER && 1200 <= _MSC_VER | ||
| 15230 | +# define _Noreturn __declspec (noreturn) | ||
| 15231 | +# else | ||
| 15232 | +# define _Noreturn YY_ATTRIBUTE ((__noreturn__)) | ||
| 15233 | # endif | ||
| 15234 | #endif | ||
| 15235 | |||
| 15236 | /* Suppress unused-variable warnings by "using" E. */ | ||
| 15237 | #if ! defined lint || defined __GNUC__ | ||
| 15238 | -# define YYUSE(e) ((void) (e)) | ||
| 15239 | +# define YYUSE(E) ((void) (E)) | ||
| 15240 | #else | ||
| 15241 | -# define YYUSE(e) /* empty */ | ||
| 15242 | +# define YYUSE(E) /* empty */ | ||
| 15243 | #endif | ||
| 15244 | |||
| 15245 | -/* Identity function, used to suppress warnings about constant conditions. */ | ||
| 15246 | -#ifndef lint | ||
| 15247 | -# define YYID(n) (n) | ||
| 15248 | -#else | ||
| 15249 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15250 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15251 | -static int | ||
| 15252 | -YYID (int i) | ||
| 15253 | +#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ | ||
| 15254 | +/* Suppress an incorrect diagnostic about yylval being uninitialized. */ | ||
| 15255 | +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ | ||
| 15256 | + _Pragma ("GCC diagnostic push") \ | ||
| 15257 | + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ | ||
| 15258 | + _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") | ||
| 15259 | +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ | ||
| 15260 | + _Pragma ("GCC diagnostic pop") | ||
| 15261 | #else | ||
| 15262 | -static int | ||
| 15263 | -YYID (i) | ||
| 15264 | - int i; | ||
| 15265 | +# define YY_INITIAL_VALUE(Value) Value | ||
| 15266 | #endif | ||
| 15267 | -{ | ||
| 15268 | - return i; | ||
| 15269 | -} | ||
| 15270 | +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | ||
| 15271 | +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | ||
| 15272 | +# define YY_IGNORE_MAYBE_UNINITIALIZED_END | ||
| 15273 | +#endif | ||
| 15274 | +#ifndef YY_INITIAL_VALUE | ||
| 15275 | +# define YY_INITIAL_VALUE(Value) /* Nothing. */ | ||
| 15276 | #endif | ||
| 15277 | |||
| 15278 | + | ||
| 15279 | #if ! defined yyoverflow || YYERROR_VERBOSE | ||
| 15280 | |||
| 15281 | /* The parser invokes alloca or malloc; define the necessary symbols. */ | ||
| 15282 | @@ -739,11 +778,11 @@ | ||
| 15283 | # define alloca _alloca | ||
| 15284 | # else | ||
| 15285 | # define YYSTACK_ALLOC alloca | ||
| 15286 | -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15287 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15288 | +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS | ||
| 15289 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | ||
| 15290 | -# ifndef _STDLIB_H | ||
| 15291 | -# define _STDLIB_H 1 | ||
| 15292 | + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ | ||
| 15293 | +# ifndef EXIT_SUCCESS | ||
| 15294 | +# define EXIT_SUCCESS 0 | ||
| 15295 | # endif | ||
| 15296 | # endif | ||
| 15297 | # endif | ||
| 15298 | @@ -751,8 +790,8 @@ | ||
| 15299 | # endif | ||
| 15300 | |||
| 15301 | # ifdef YYSTACK_ALLOC | ||
| 15302 | - /* Pacify GCC's `empty if-body' warning. */ | ||
| 15303 | -# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0)) | ||
| 15304 | + /* Pacify GCC's 'empty if-body' warning. */ | ||
| 15305 | +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) | ||
| 15306 | # ifndef YYSTACK_ALLOC_MAXIMUM | ||
| 15307 | /* The OS might guarantee only one guard page at the bottom of the stack, | ||
| 15308 | and a page size can be as small as 4096 bytes. So we cannot safely | ||
| 15309 | @@ -766,25 +805,23 @@ | ||
| 15310 | # ifndef YYSTACK_ALLOC_MAXIMUM | ||
| 15311 | # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM | ||
| 15312 | # endif | ||
| 15313 | -# if (defined __cplusplus && ! defined _STDLIB_H \ | ||
| 15314 | +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ | ||
| 15315 | && ! ((defined YYMALLOC || defined malloc) \ | ||
| 15316 | - && (defined YYFREE || defined free))) | ||
| 15317 | + && (defined YYFREE || defined free))) | ||
| 15318 | # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ | ||
| 15319 | -# ifndef _STDLIB_H | ||
| 15320 | -# define _STDLIB_H 1 | ||
| 15321 | +# ifndef EXIT_SUCCESS | ||
| 15322 | +# define EXIT_SUCCESS 0 | ||
| 15323 | # endif | ||
| 15324 | # endif | ||
| 15325 | # ifndef YYMALLOC | ||
| 15326 | # define YYMALLOC malloc | ||
| 15327 | -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15328 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15329 | +# if ! defined malloc && ! defined EXIT_SUCCESS | ||
| 15330 | void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ | ||
| 15331 | # endif | ||
| 15332 | # endif | ||
| 15333 | # ifndef YYFREE | ||
| 15334 | # define YYFREE free | ||
| 15335 | -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 15336 | - || defined __cplusplus || defined _MSC_VER) | ||
| 15337 | +# if ! defined free && ! defined EXIT_SUCCESS | ||
| 15338 | void free (void *); /* INFRINGES ON USER NAME SPACE */ | ||
| 15339 | # endif | ||
| 15340 | # endif | ||
| 15341 | @@ -794,14 +831,14 @@ | ||
| 15342 | |||
| 15343 | #if (! defined yyoverflow \ | ||
| 15344 | && (! defined __cplusplus \ | ||
| 15345 | - || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) | ||
| 15346 | + || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) | ||
| 15347 | |||
| 15348 | /* A type that is properly aligned for any stack member. */ | ||
| 15349 | union yyalloc | ||
| 15350 | { | ||
| 15351 | - yytype_int16 yyss; | ||
| 15352 | - YYSTYPE yyvs; | ||
| 15353 | - }; | ||
| 15354 | + yytype_int16 yyss_alloc; | ||
| 15355 | + YYSTYPE yyvs_alloc; | ||
| 15356 | +}; | ||
| 15357 | |||
| 15358 | /* The size of the maximum gap between one aligned stack and the next. */ | ||
| 15359 | # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) | ||
| 15360 | @@ -812,42 +849,46 @@ | ||
| 15361 | ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ | ||
| 15362 | + YYSTACK_GAP_MAXIMUM) | ||
| 15363 | |||
| 15364 | -/* Copy COUNT objects from FROM to TO. The source and destination do | ||
| 15365 | - not overlap. */ | ||
| 15366 | -# ifndef YYCOPY | ||
| 15367 | -# if defined __GNUC__ && 1 < __GNUC__ | ||
| 15368 | -# define YYCOPY(To, From, Count) \ | ||
| 15369 | - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) | ||
| 15370 | -# else | ||
| 15371 | -# define YYCOPY(To, From, Count) \ | ||
| 15372 | - do \ | ||
| 15373 | - { \ | ||
| 15374 | - YYSIZE_T yyi; \ | ||
| 15375 | - for (yyi = 0; yyi < (Count); yyi++) \ | ||
| 15376 | - (To)[yyi] = (From)[yyi]; \ | ||
| 15377 | - } \ | ||
| 15378 | - while (YYID (0)) | ||
| 15379 | -# endif | ||
| 15380 | -# endif | ||
| 15381 | +# define YYCOPY_NEEDED 1 | ||
| 15382 | |||
| 15383 | /* Relocate STACK from its old location to the new one. The | ||
| 15384 | local variables YYSIZE and YYSTACKSIZE give the old and new number of | ||
| 15385 | elements in the stack, and YYPTR gives the new location of the | ||
| 15386 | stack. Advance YYPTR to a properly aligned location for the next | ||
| 15387 | stack. */ | ||
| 15388 | -# define YYSTACK_RELOCATE(Stack) \ | ||
| 15389 | - do \ | ||
| 15390 | - { \ | ||
| 15391 | - YYSIZE_T yynewbytes; \ | ||
| 15392 | - YYCOPY (&yyptr->Stack, Stack, yysize); \ | ||
| 15393 | - Stack = &yyptr->Stack; \ | ||
| 15394 | - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | ||
| 15395 | - yyptr += yynewbytes / sizeof (*yyptr); \ | ||
| 15396 | - } \ | ||
| 15397 | - while (YYID (0)) | ||
| 15398 | +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \ | ||
| 15399 | + do \ | ||
| 15400 | + { \ | ||
| 15401 | + YYSIZE_T yynewbytes; \ | ||
| 15402 | + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ | ||
| 15403 | + Stack = &yyptr->Stack_alloc; \ | ||
| 15404 | + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ | ||
| 15405 | + yyptr += yynewbytes / sizeof (*yyptr); \ | ||
| 15406 | + } \ | ||
| 15407 | + while (0) | ||
| 15408 | |||
| 15409 | #endif | ||
| 15410 | |||
| 15411 | +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED | ||
| 15412 | +/* Copy COUNT objects from SRC to DST. The source and destination do | ||
| 15413 | + not overlap. */ | ||
| 15414 | +# ifndef YYCOPY | ||
| 15415 | +# if defined __GNUC__ && 1 < __GNUC__ | ||
| 15416 | +# define YYCOPY(Dst, Src, Count) \ | ||
| 15417 | + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) | ||
| 15418 | +# else | ||
| 15419 | +# define YYCOPY(Dst, Src, Count) \ | ||
| 15420 | + do \ | ||
| 15421 | + { \ | ||
| 15422 | + YYSIZE_T yyi; \ | ||
| 15423 | + for (yyi = 0; yyi < (Count); yyi++) \ | ||
| 15424 | + (Dst)[yyi] = (Src)[yyi]; \ | ||
| 15425 | + } \ | ||
| 15426 | + while (0) | ||
| 15427 | +# endif | ||
| 15428 | +# endif | ||
| 15429 | +#endif /* !YYCOPY_NEEDED */ | ||
| 15430 | + | ||
| 15431 | /* YYFINAL -- State number of the termination state. */ | ||
| 15432 | #define YYFINAL 4 | ||
| 15433 | /* YYLAST -- Last index in YYTABLE. */ | ||
| 15434 | @@ -859,17 +900,19 @@ | ||
| 15435 | #define YYNNTS 254 | ||
| 15436 | /* YYNRULES -- Number of rules. */ | ||
| 15437 | #define YYNRULES 594 | ||
| 15438 | -/* YYNRULES -- Number of states. */ | ||
| 15439 | +/* YYNSTATES -- Number of states. */ | ||
| 15440 | #define YYNSTATES 1042 | ||
| 15441 | |||
| 15442 | -/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ | ||
| 15443 | +/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned | ||
| 15444 | + by yylex, with out-of-bounds checking. */ | ||
| 15445 | #define YYUNDEFTOK 2 | ||
| 15446 | #define YYMAXUTOK 406 | ||
| 15447 | |||
| 15448 | -#define YYTRANSLATE(YYX) \ | ||
| 15449 | +#define YYTRANSLATE(YYX) \ | ||
| 15450 | ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) | ||
| 15451 | |||
| 15452 | -/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ | ||
| 15453 | +/* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM | ||
| 15454 | + as returned by yylex, without out-of-bounds checking. */ | ||
| 15455 | static const yytype_uint8 yytranslate[] = | ||
| 15456 | { | ||
| 15457 | 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 15458 | @@ -916,250 +959,7 @@ | ||
| 15459 | }; | ||
| 15460 | |||
| 15461 | #if YYDEBUG | ||
| 15462 | -/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in | ||
| 15463 | - YYRHS. */ | ||
| 15464 | -static const yytype_uint16 yyprhs[] = | ||
| 15465 | -{ | ||
| 15466 | - 0, 0, 3, 5, 8, 9, 12, 14, 16, 18, | ||
| 15467 | - 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, | ||
| 15468 | - 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, | ||
| 15469 | - 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, | ||
| 15470 | - 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, | ||
| 15471 | - 100, 102, 104, 106, 108, 110, 112, 115, 117, 121, | ||
| 15472 | - 123, 127, 131, 134, 136, 140, 142, 146, 150, 153, | ||
| 15473 | - 155, 159, 161, 165, 169, 172, 174, 178, 180, 184, | ||
| 15474 | - 188, 192, 194, 198, 200, 204, 208, 211, 214, 218, | ||
| 15475 | - 220, 224, 228, 232, 238, 239, 243, 248, 250, 253, | ||
| 15476 | - 255, 257, 259, 261, 264, 265, 271, 272, 279, 284, | ||
| 15477 | - 286, 289, 291, 293, 295, 297, 300, 303, 305, 307, | ||
| 15478 | - 309, 324, 325, 331, 332, 336, 338, 341, 342, 348, | ||
| 15479 | - 350, 353, 355, 358, 360, 364, 366, 370, 374, 375, | ||
| 15480 | - 381, 383, 386, 388, 389, 395, 397, 400, 404, 409, | ||
| 15481 | - 411, 415, 417, 421, 422, 424, 428, 430, 434, 438, | ||
| 15482 | - 442, 446, 450, 453, 455, 459, 461, 465, 469, 472, | ||
| 15483 | - 474, 478, 480, 484, 488, 491, 493, 497, 499, 503, | ||
| 15484 | - 507, 511, 513, 517, 519, 523, 527, 528, 533, 535, | ||
| 15485 | - 538, 540, 542, 544, 548, 550, 554, 556, 560, 564, | ||
| 15486 | - 565, 570, 572, 575, 577, 579, 581, 585, 589, 590, | ||
| 15487 | - 594, 598, 600, 604, 608, 612, 616, 620, 624, 628, | ||
| 15488 | - 632, 636, 640, 641, 646, 648, 651, 653, 655, 657, | ||
| 15489 | - 659, 661, 663, 664, 666, 669, 671, 675, 677, 681, | ||
| 15490 | - 685, 689, 692, 695, 697, 701, 703, 707, 711, 712, | ||
| 15491 | - 715, 716, 719, 720, 723, 726, 729, 732, 735, 738, | ||
| 15492 | - 741, 744, 747, 750, 753, 756, 759, 762, 765, 768, | ||
| 15493 | - 771, 774, 777, 780, 783, 786, 789, 792, 795, 798, | ||
| 15494 | - 801, 804, 807, 810, 814, 816, 820, 824, 828, 829, | ||
| 15495 | - 831, 835, 837, 841, 845, 849, 850, 852, 856, 858, | ||
| 15496 | - 862, 864, 868, 872, 876, 881, 884, 886, 889, 890, | ||
| 15497 | - 900, 901, 903, 905, 906, 908, 909, 911, 912, 914, | ||
| 15498 | - 916, 919, 921, 923, 928, 929, 931, 932, 935, 936, | ||
| 15499 | - 939, 941, 945, 947, 949, 951, 953, 955, 957, 958, | ||
| 15500 | - 960, 962, 964, 966, 968, 970, 974, 975, 979, 982, | ||
| 15501 | - 984, 986, 990, 992, 994, 996, 998, 1003, 1005, 1007, | ||
| 15502 | - 1009, 1011, 1013, 1015, 1016, 1018, 1022, 1029, 1042, 1043, | ||
| 15503 | - 1044, 1053, 1054, 1058, 1063, 1064, 1065, 1074, 1075, 1078, | ||
| 15504 | - 1080, 1084, 1087, 1088, 1090, 1092, 1094, 1095, 1099, 1100, | ||
| 15505 | - 1102, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, | ||
| 15506 | - 1123, 1125, 1127, 1129, 1131, 1133, 1135, 1137, 1139, 1141, | ||
| 15507 | - 1143, 1145, 1147, 1149, 1151, 1153, 1155, 1157, 1159, 1161, | ||
| 15508 | - 1164, 1167, 1170, 1174, 1178, 1182, 1185, 1189, 1193, 1195, | ||
| 15509 | - 1199, 1203, 1207, 1211, 1212, 1217, 1219, 1222, 1224, 1226, | ||
| 15510 | - 1228, 1230, 1232, 1233, 1235, 1248, 1249, 1253, 1255, 1267, | ||
| 15511 | - 1268, 1269, 1276, 1277, 1278, 1286, 1287, 1289, 1307, 1315, | ||
| 15512 | - 1333, 1350, 1352, 1354, 1356, 1358, 1360, 1362, 1364, 1366, | ||
| 15513 | - 1369, 1372, 1375, 1378, 1381, 1384, 1387, 1390, 1393, 1396, | ||
| 15514 | - 1400, 1404, 1406, 1409, 1412, 1414, 1417, 1420, 1423, 1425, | ||
| 15515 | - 1428, 1429, 1431, 1432, 1434, 1435, 1438, 1439, 1443, 1445, | ||
| 15516 | - 1449, 1451, 1455, 1457, 1463, 1465, 1467, 1468, 1471, 1472, | ||
| 15517 | - 1475, 1476, 1479, 1480, 1483, 1485, 1486, 1488, 1492, 1497, | ||
| 15518 | - 1502, 1507, 1511, 1515, 1522, 1529, 1533, 1536, 1537, 1541, | ||
| 15519 | - 1542, 1546, 1548, 1549, 1553, 1555, 1557, 1559, 1560, 1564, | ||
| 15520 | - 1566, 1575, 1576, 1580, 1582, 1585, 1587, 1589, 1592, 1595, | ||
| 15521 | - 1598, 1603, 1607, 1611, 1612, 1614, 1615, 1619, 1622, 1624, | ||
| 15522 | - 1629, 1632, 1635, 1637, 1639, 1642, 1644, 1646, 1649, 1652, | ||
| 15523 | - 1656, 1658, 1660, 1662, 1665, 1668, 1670, 1672, 1674, 1676, | ||
| 15524 | - 1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, | ||
| 15525 | - 1700, 1701, 1706, 1707, 1709 | ||
| 15526 | -}; | ||
| 15527 | - | ||
| 15528 | -/* YYRHS -- A `-1'-separated list of the rules' RHS. */ | ||
| 15529 | -static const yytype_int16 yyrhs[] = | ||
| 15530 | -{ | ||
| 15531 | - 175, 0, -1, 176, -1, 175, 176, -1, -1, 177, | ||
| 15532 | - 178, -1, 269, -1, 255, -1, 262, -1, 192, -1, | ||
| 15533 | - 291, -1, 279, -1, 283, -1, 284, -1, 200, -1, | ||
| 15534 | - 230, -1, 222, -1, 226, -1, 239, -1, 180, -1, | ||
| 15535 | - 184, -1, 188, -1, 243, -1, 247, -1, 251, -1, | ||
| 15536 | - 292, -1, 293, -1, 306, -1, 308, -1, 309, -1, | ||
| 15537 | - 310, -1, 311, -1, 312, -1, 313, -1, 314, -1, | ||
| 15538 | - 315, -1, 317, -1, 318, -1, 328, -1, 332, -1, | ||
| 15539 | - 210, -1, 212, -1, 196, -1, 179, -1, 234, -1, | ||
| 15540 | - 238, -1, 218, -1, 358, -1, 364, -1, 361, -1, | ||
| 15541 | - 204, -1, 357, -1, 335, -1, 392, -1, 416, -1, | ||
| 15542 | - 294, -1, 5, 181, -1, 36, -1, 152, 182, 153, | ||
| 15543 | - -1, 183, -1, 182, 154, 183, -1, 138, 155, 36, | ||
| 15544 | - -1, 6, 185, -1, 36, -1, 152, 186, 153, -1, | ||
| 15545 | - 187, -1, 186, 154, 187, -1, 138, 155, 36, -1, | ||
| 15546 | - 7, 189, -1, 36, -1, 152, 190, 153, -1, 191, | ||
| 15547 | - -1, 190, 154, 191, -1, 138, 155, 36, -1, 8, | ||
| 15548 | - 193, -1, 34, -1, 152, 194, 153, -1, 195, -1, | ||
| 15549 | - 194, 154, 195, -1, 138, 155, 34, -1, 9, 197, | ||
| 15550 | - 333, -1, 34, -1, 152, 198, 153, -1, 199, -1, | ||
| 15551 | - 198, 154, 199, -1, 138, 155, 34, -1, 3, 201, | ||
| 15552 | - -1, 34, 106, -1, 152, 202, 153, -1, 203, -1, | ||
| 15553 | - 202, 154, 203, -1, 138, 155, 381, -1, 151, 155, | ||
| 15554 | - 106, -1, 121, 351, 205, 397, 206, -1, -1, 152, | ||
| 15555 | - 351, 153, -1, 156, 207, 157, 158, -1, 208, -1, | ||
| 15556 | - 207, 208, -1, 234, -1, 238, -1, 209, -1, 294, | ||
| 15557 | - -1, 122, 333, -1, -1, 30, 424, 397, 211, 214, | ||
| 15558 | - -1, -1, 363, 30, 424, 397, 213, 214, -1, 156, | ||
| 15559 | - 215, 157, 158, -1, 216, -1, 215, 216, -1, 234, | ||
| 15560 | - -1, 238, -1, 294, -1, 307, -1, 51, 333, -1, | ||
| 15561 | - 52, 333, -1, 303, -1, 335, -1, 217, -1, 97, | ||
| 15562 | - 420, 34, 152, 405, 153, 394, 426, 397, 389, 158, | ||
| 15563 | - 327, 403, 402, -1, -1, 109, 34, 219, 220, 158, | ||
| 15564 | - -1, -1, 156, 221, 157, -1, 179, -1, 221, 179, | ||
| 15565 | - -1, -1, 111, 223, 156, 224, 157, -1, 225, -1, | ||
| 15566 | - 224, 225, -1, 34, -1, 112, 227, -1, 34, -1, | ||
| 15567 | - 152, 228, 153, -1, 229, -1, 228, 154, 229, -1, | ||
| 15568 | - 138, 155, 381, -1, -1, 110, 231, 156, 232, 157, | ||
| 15569 | - -1, 233, -1, 232, 233, -1, 34, -1, -1, 32, | ||
| 15570 | - 152, 235, 237, 153, -1, 34, -1, 159, 34, -1, | ||
| 15571 | - 236, 95, 34, -1, 236, 95, 159, 34, -1, 236, | ||
| 15572 | - -1, 339, 160, 339, -1, 33, -1, 113, 240, 397, | ||
| 15573 | - -1, -1, 36, -1, 152, 241, 153, -1, 242, -1, | ||
| 15574 | - 241, 154, 242, -1, 145, 155, 36, -1, 137, 155, | ||
| 15575 | - 36, -1, 143, 155, 36, -1, 144, 155, 36, -1, | ||
| 15576 | - 128, 244, -1, 277, -1, 152, 245, 153, -1, 246, | ||
| 15577 | - -1, 245, 154, 246, -1, 138, 155, 277, -1, 129, | ||
| 15578 | - 248, -1, 277, -1, 152, 249, 153, -1, 250, -1, | ||
| 15579 | - 249, 154, 250, -1, 138, 155, 277, -1, 131, 252, | ||
| 15580 | - -1, 351, -1, 152, 253, 153, -1, 254, -1, 253, | ||
| 15581 | - 154, 254, -1, 138, 155, 351, -1, 62, 256, 259, | ||
| 15582 | - -1, 277, -1, 152, 257, 153, -1, 258, -1, 257, | ||
| 15583 | - 154, 258, -1, 138, 155, 277, -1, -1, 156, 260, | ||
| 15584 | - 157, 158, -1, 261, -1, 260, 261, -1, 234, -1, | ||
| 15585 | - 238, -1, 323, -1, 63, 263, 266, -1, 277, -1, | ||
| 15586 | - 152, 264, 153, -1, 265, -1, 264, 154, 265, -1, | ||
| 15587 | - 138, 155, 277, -1, -1, 156, 267, 157, 158, -1, | ||
| 15588 | - 268, -1, 267, 268, -1, 234, -1, 238, -1, 323, | ||
| 15589 | - -1, 60, 270, 274, -1, 61, 277, 278, -1, -1, | ||
| 15590 | - 277, 271, 278, -1, 152, 272, 153, -1, 273, -1, | ||
| 15591 | - 272, 154, 273, -1, 135, 155, 36, -1, 136, 155, | ||
| 15592 | - 36, -1, 138, 155, 277, -1, 146, 155, 354, -1, | ||
| 15593 | - 147, 155, 354, -1, 148, 155, 354, -1, 149, 155, | ||
| 15594 | - 354, -1, 150, 155, 34, -1, 151, 155, 106, -1, | ||
| 15595 | - -1, 156, 275, 157, 158, -1, 276, -1, 275, 276, | ||
| 15596 | - -1, 234, -1, 238, -1, 319, -1, 323, -1, 34, | ||
| 15597 | - -1, 35, -1, -1, 106, -1, 54, 280, -1, 35, | ||
| 15598 | - -1, 152, 281, 153, -1, 282, -1, 281, 154, 282, | ||
| 15599 | - -1, 138, 155, 35, -1, 139, 155, 354, -1, 55, | ||
| 15600 | - 35, -1, 56, 285, -1, 35, -1, 152, 286, 153, | ||
| 15601 | - -1, 287, -1, 286, 154, 287, -1, 138, 155, 35, | ||
| 15602 | - -1, -1, 17, 333, -1, -1, 18, 333, -1, -1, | ||
| 15603 | - 19, 333, -1, 29, 333, -1, 57, 333, -1, 58, | ||
| 15604 | - 333, -1, 59, 333, -1, 38, 333, -1, 39, 333, | ||
| 15605 | - -1, 40, 333, -1, 41, 333, -1, 42, 333, -1, | ||
| 15606 | - 43, 333, -1, 44, 333, -1, 45, 333, -1, 50, | ||
| 15607 | - 333, -1, 46, 333, -1, 23, 333, -1, 26, 333, | ||
| 15608 | - -1, 27, 333, -1, 20, 333, -1, 21, 333, -1, | ||
| 15609 | - 22, 333, -1, 24, 333, -1, 25, 333, -1, 28, | ||
| 15610 | - 333, -1, 10, 333, -1, 11, 333, -1, 11, 333, | ||
| 15611 | - -1, 13, 333, -1, 14, 333, -1, 4, 320, -1, | ||
| 15612 | - 152, 321, 153, -1, 322, -1, 321, 154, 322, -1, | ||
| 15613 | - 141, 155, 36, -1, 12, 324, 333, -1, -1, 36, | ||
| 15614 | - -1, 152, 325, 153, -1, 326, -1, 325, 154, 326, | ||
| 15615 | - -1, 132, 155, 36, -1, 143, 155, 36, -1, -1, | ||
| 15616 | - 323, -1, 15, 329, 333, -1, 34, -1, 152, 330, | ||
| 15617 | - 153, -1, 331, -1, 330, 154, 331, -1, 134, 155, | ||
| 15618 | - 34, -1, 140, 155, 106, -1, 16, 35, 338, 333, | ||
| 15619 | - -1, 334, 33, -1, 31, -1, 334, 31, -1, -1, | ||
| 15620 | - 91, 337, 339, 397, 336, 156, 340, 157, 158, -1, | ||
| 15621 | - -1, 64, -1, 65, -1, -1, 35, -1, -1, 34, | ||
| 15622 | - -1, -1, 341, -1, 342, -1, 341, 342, -1, 234, | ||
| 15623 | - -1, 238, -1, 34, 344, 397, 343, -1, -1, 154, | ||
| 15624 | - -1, -1, 155, 349, -1, -1, 155, 346, -1, 349, | ||
| 15625 | - -1, 346, 347, 349, -1, 160, -1, 161, -1, 162, | ||
| 15626 | - -1, 163, -1, 164, -1, 165, -1, -1, 159, -1, | ||
| 15627 | - 166, -1, 160, -1, 161, -1, 162, -1, 164, -1, | ||
| 15628 | - 350, 348, 355, -1, -1, 152, 351, 153, -1, 94, | ||
| 15629 | - 352, -1, 352, -1, 353, -1, 352, 94, 353, -1, | ||
| 15630 | - 34, -1, 115, -1, 116, -1, 351, -1, 424, 152, | ||
| 15631 | - 356, 153, -1, 107, -1, 106, -1, 354, -1, 117, | ||
| 15632 | - -1, 36, -1, 114, -1, -1, 346, -1, 356, 154, | ||
| 15633 | - 346, -1, 108, 420, 34, 397, 158, 327, -1, 108, | ||
| 15634 | - 420, 152, 162, 34, 153, 152, 425, 153, 397, 158, | ||
| 15635 | - 327, -1, -1, -1, 65, 351, 359, 367, 397, 360, | ||
| 15636 | - 371, 158, -1, -1, 363, 362, 364, -1, 125, 167, | ||
| 15637 | - 425, 168, -1, -1, -1, 64, 351, 365, 367, 397, | ||
| 15638 | - 366, 371, 158, -1, -1, 169, 368, -1, 369, -1, | ||
| 15639 | - 368, 154, 369, -1, 370, 351, -1, -1, 66, -1, | ||
| 15640 | - 67, -1, 68, -1, -1, 156, 372, 157, -1, -1, | ||
| 15641 | - 373, -1, 372, 373, -1, 234, -1, 238, -1, 218, | ||
| 15642 | - -1, 358, -1, 364, -1, 361, -1, 204, -1, 357, | ||
| 15643 | - -1, 335, -1, 374, -1, 323, -1, 307, -1, 294, | ||
| 15644 | - -1, 295, -1, 296, -1, 297, -1, 298, -1, 299, | ||
| 15645 | - -1, 300, -1, 301, -1, 302, -1, 303, -1, 304, | ||
| 15646 | - -1, 305, -1, 316, -1, 384, -1, 383, -1, 408, | ||
| 15647 | - -1, 53, 333, -1, 52, 333, -1, 51, 333, -1, | ||
| 15648 | - 66, 382, 169, -1, 67, 382, 169, -1, 68, 382, | ||
| 15649 | - 169, -1, 69, 169, -1, 130, 375, 378, -1, 152, | ||
| 15650 | - 376, 153, -1, 377, -1, 376, 154, 377, -1, 133, | ||
| 15651 | - 155, 34, -1, 138, 155, 381, -1, 142, 155, 34, | ||
| 15652 | - -1, -1, 156, 379, 157, 158, -1, 380, -1, 379, | ||
| 15653 | - 380, -1, 234, -1, 238, -1, 323, -1, 34, -1, | ||
| 15654 | - 36, -1, -1, 71, -1, 391, 166, 34, 152, 153, | ||
| 15655 | - 426, 396, 397, 158, 403, 402, 404, -1, -1, 124, | ||
| 15656 | - 385, 386, -1, 386, -1, 34, 152, 405, 153, 426, | ||
| 15657 | - 397, 387, 158, 327, 403, 402, -1, -1, -1, 170, | ||
| 15658 | - 388, 152, 405, 153, 171, -1, -1, -1, 170, 390, | ||
| 15659 | - 420, 152, 405, 153, 171, -1, -1, 90, -1, 420, | ||
| 15660 | - 34, 152, 405, 153, 394, 395, 426, 396, 397, 389, | ||
| 15661 | - 158, 327, 403, 402, 404, 401, -1, 420, 118, 155, | ||
| 15662 | - 152, 420, 153, 158, -1, 420, 118, 393, 152, 405, | ||
| 15663 | - 153, 394, 395, 426, 396, 397, 389, 158, 403, 402, | ||
| 15664 | - 404, 401, -1, 118, 420, 152, 405, 153, 394, 395, | ||
| 15665 | - 426, 396, 397, 389, 158, 403, 402, 404, 401, -1, | ||
| 15666 | - 161, -1, 160, -1, 162, -1, 163, -1, 172, -1, | ||
| 15667 | - 164, -1, 165, -1, 173, -1, 167, 167, -1, 168, | ||
| 15668 | - 168, -1, 161, 155, -1, 160, 155, -1, 162, 155, | ||
| 15669 | - -1, 163, 155, -1, 172, 155, -1, 164, 155, -1, | ||
| 15670 | - 165, 155, -1, 173, 155, -1, 167, 167, 155, -1, | ||
| 15671 | - 168, 168, 155, -1, 166, -1, 152, 153, -1, 170, | ||
| 15672 | - 171, -1, 167, -1, 167, 155, -1, 155, 155, -1, | ||
| 15673 | - 159, 155, -1, 168, -1, 168, 155, -1, -1, 96, | ||
| 15674 | - -1, -1, 126, -1, -1, 155, 106, -1, -1, 163, | ||
| 15675 | - 398, 163, -1, 399, -1, 398, 154, 399, -1, 34, | ||
| 15676 | - -1, 34, 155, 400, -1, 277, -1, 34, 169, 278, | ||
| 15677 | - 160, 278, -1, 36, -1, 106, -1, -1, 47, 333, | ||
| 15678 | - -1, -1, 48, 333, -1, -1, 49, 333, -1, -1, | ||
| 15679 | - 37, 333, -1, 406, -1, -1, 407, -1, 406, 154, | ||
| 15680 | - 407, -1, 98, 339, 397, 345, -1, 99, 339, 397, | ||
| 15681 | - 345, -1, 100, 339, 397, 345, -1, 101, 339, 397, | ||
| 15682 | - -1, 102, 339, 397, -1, 103, 152, 405, 153, 339, | ||
| 15683 | - 397, -1, 104, 152, 405, 153, 339, 397, -1, 120, | ||
| 15684 | - 339, 397, -1, 421, 345, -1, -1, 70, 409, 411, | ||
| 15685 | - -1, -1, 72, 410, 411, -1, 411, -1, -1, 97, | ||
| 15686 | - 412, 413, -1, 413, -1, 414, -1, 416, -1, -1, | ||
| 15687 | - 90, 415, 392, -1, 392, -1, 420, 34, 397, 417, | ||
| 15688 | - 158, 288, 289, 290, -1, -1, 156, 418, 157, -1, | ||
| 15689 | - 419, -1, 418, 419, -1, 234, -1, 238, -1, 17, | ||
| 15690 | - 333, -1, 18, 333, -1, 19, 333, -1, 96, 424, | ||
| 15691 | - 423, 422, -1, 424, 423, 422, -1, 420, 339, 397, | ||
| 15692 | - -1, -1, 164, -1, -1, 423, 162, 96, -1, 423, | ||
| 15693 | - 162, -1, 351, -1, 351, 167, 425, 168, -1, 65, | ||
| 15694 | - 351, -1, 93, 74, -1, 74, -1, 93, -1, 93, | ||
| 15695 | - 75, -1, 75, -1, 76, -1, 93, 76, -1, 76, | ||
| 15696 | - 76, -1, 93, 76, 76, -1, 77, -1, 78, -1, | ||
| 15697 | - 73, -1, 92, 79, -1, 93, 79, -1, 79, -1, | ||
| 15698 | - 80, -1, 81, -1, 82, -1, 83, -1, 84, -1, | ||
| 15699 | - 85, -1, 86, -1, 87, -1, 88, -1, 89, -1, | ||
| 15700 | - 105, -1, 127, -1, 420, -1, 425, 154, 420, -1, | ||
| 15701 | - -1, 119, 152, 427, 153, -1, -1, 351, -1, 427, | ||
| 15702 | - 154, 351, -1 | ||
| 15703 | -}; | ||
| 15704 | - | ||
| 15705 | -/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ | ||
| 15706 | + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ | ||
| 15707 | static const yytype_uint16 yyrline[] = | ||
| 15708 | { | ||
| 15709 | 0, 576, 576, 577, 580, 580, 599, 600, 601, 602, | ||
| 15710 | @@ -1225,7 +1025,7 @@ | ||
| 15711 | }; | ||
| 15712 | #endif | ||
| 15713 | |||
| 15714 | -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE | ||
| 15715 | +#if YYDEBUG || YYERROR_VERBOSE || 0 | ||
| 15716 | /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. | ||
| 15717 | First, the terminals, then, starting at YYNTOKENS, nonterminals. */ | ||
| 15718 | static const char *const yytname[] = | ||
| 15719 | @@ -1268,7 +1068,7 @@ | ||
| 15720 | "TK_CALLSUPERINIT", "TK_DEFERRORHANDLER", "TK_VERSION", "'('", "')'", | ||
| 15721 | "','", "'='", "'{'", "'}'", "';'", "'!'", "'-'", "'+'", "'*'", "'/'", | ||
| 15722 | "'&'", "'|'", "'~'", "'<'", "'>'", "':'", "'['", "']'", "'%'", "'^'", | ||
| 15723 | - "$accept", "specification", "statement", "@1", "modstatement", | ||
| 15724 | + "$accept", "specification", "statement", "$@1", "modstatement", | ||
| 15725 | "nsstatement", "defdocstringfmt", "defdocstringfmt_args", | ||
| 15726 | "defdocstringfmt_arg_list", "defdocstringfmt_arg", "defdocstringsig", | ||
| 15727 | "defdocstringsig_args", "defdocstringsig_arg_list", | ||
| 15728 | @@ -1278,13 +1078,13 @@ | ||
| 15729 | "veh_arg_list", "veh_arg", "api", "api_args", "api_arg_list", "api_arg", | ||
| 15730 | "exception", "baseexception", "exception_body", | ||
| 15731 | "exception_body_directives", "exception_body_directive", "raisecode", | ||
| 15732 | - "mappedtype", "@2", "mappedtypetmpl", "@3", "mtdefinition", "mtbody", | ||
| 15733 | - "mtline", "mtfunction", "namespace", "@4", "optnsbody", "nsbody", | ||
| 15734 | - "platforms", "@5", "platformlist", "platform", "feature", "feature_args", | ||
| 15735 | - "feature_arg_list", "feature_arg", "timeline", "@6", "qualifierlist", | ||
| 15736 | - "qualifiername", "ifstart", "@7", "oredqualifiers", "qualifiers", | ||
| 15737 | - "ifend", "license", "license_args", "license_arg_list", "license_arg", | ||
| 15738 | - "defmetatype", "defmetatype_args", "defmetatype_arg_list", | ||
| 15739 | + "mappedtype", "$@2", "mappedtypetmpl", "$@3", "mtdefinition", "mtbody", | ||
| 15740 | + "mtline", "mtfunction", "namespace", "$@4", "optnsbody", "nsbody", | ||
| 15741 | + "platforms", "$@5", "platformlist", "platform", "feature", | ||
| 15742 | + "feature_args", "feature_arg_list", "feature_arg", "timeline", "$@6", | ||
| 15743 | + "qualifierlist", "qualifiername", "ifstart", "$@7", "oredqualifiers", | ||
| 15744 | + "qualifiers", "ifend", "license", "license_args", "license_arg_list", | ||
| 15745 | + "license_arg", "defmetatype", "defmetatype_args", "defmetatype_arg_list", | ||
| 15746 | "defmetatype_arg", "defsupertype", "defsupertype_args", | ||
| 15747 | "defsupertype_arg_list", "defsupertype_arg", "hiddenns", "hiddenns_args", | ||
| 15748 | "hiddenns_arg_list", "hiddenns_arg", "consmodule", "consmodule_args", | ||
| 15749 | @@ -1292,7 +1092,7 @@ | ||
| 15750 | "consmodule_body_directives", "consmodule_body_directive", "compmodule", | ||
| 15751 | "compmodule_args", "compmodule_arg_list", "compmodule_arg", | ||
| 15752 | "compmodule_body", "compmodule_body_directives", | ||
| 15753 | - "compmodule_body_directive", "module", "module_args", "@8", | ||
| 15754 | + "compmodule_body_directive", "module", "module_args", "$@8", | ||
| 15755 | "module_arg_list", "module_arg", "module_body", "module_body_directives", | ||
| 15756 | "module_body_directive", "dottedname", "optnumber", "include", | ||
| 15757 | "include_args", "include_arg_list", "include_arg", "optinclude", | ||
| 15758 | @@ -1307,31 +1107,31 @@ | ||
| 15759 | "autopyname_args", "autopyname_arg_list", "autopyname_arg", "docstring", | ||
| 15760 | "docstring_args", "docstring_arg_list", "docstring_arg", "optdocstring", | ||
| 15761 | "extract", "extract_args", "extract_arg_list", "extract_arg", "makefile", | ||
| 15762 | - "codeblock", "codelines", "enum", "@9", "optenumkey", "optfilename", | ||
| 15763 | + "codeblock", "codelines", "enum", "$@9", "optenumkey", "optfilename", | ||
| 15764 | "optname", "optenumbody", "enumbody", "enumline", "optcomma", | ||
| 15765 | "optenumassign", "optassign", "expr", "binop", "optunop", "value", | ||
| 15766 | "optcast", "scopedname", "scopednamehead", "scopepart", "bool_value", | ||
| 15767 | - "simplevalue", "exprlist", "typedef", "struct", "@10", "@11", | ||
| 15768 | - "classtmpl", "@12", "template", "class", "@13", "@14", "superclasses", | ||
| 15769 | + "simplevalue", "exprlist", "typedef", "struct", "$@10", "$@11", | ||
| 15770 | + "classtmpl", "$@12", "template", "class", "$@13", "$@14", "superclasses", | ||
| 15771 | "superlist", "superclass", "class_access", "optclassbody", "classbody", | ||
| 15772 | "classline", "property", "property_args", "property_arg_list", | ||
| 15773 | "property_arg", "property_body", "property_body_directives", | ||
| 15774 | "property_body_directive", "name_or_string", "optslot", "dtor", "ctor", | ||
| 15775 | - "@15", "simplector", "optctorsig", "@16", "optsig", "@17", "optvirtual", | ||
| 15776 | - "function", "operatorname", "optconst", "optfinal", "optabstract", | ||
| 15777 | - "optflags", "flaglist", "flag", "flagvalue", "virtualcallcode", | ||
| 15778 | - "methodcode", "premethodcode", "virtualcatchercode", "arglist", | ||
| 15779 | - "rawarglist", "argvalue", "varmember", "@18", "@19", "simple_varmem", | ||
| 15780 | - "@20", "varmem", "member", "@21", "variable", "variable_body", | ||
| 15781 | - "variable_body_directives", "variable_body_directive", "cpptype", | ||
| 15782 | - "argtype", "optref", "deref", "basetype", "cpptypelist", "optexceptions", | ||
| 15783 | - "exceptionlist", 0 | ||
| 15784 | + "$@15", "simplector", "optctorsig", "$@16", "optsig", "$@17", | ||
| 15785 | + "optvirtual", "function", "operatorname", "optconst", "optfinal", | ||
| 15786 | + "optabstract", "optflags", "flaglist", "flag", "flagvalue", | ||
| 15787 | + "virtualcallcode", "methodcode", "premethodcode", "virtualcatchercode", | ||
| 15788 | + "arglist", "rawarglist", "argvalue", "varmember", "$@18", "$@19", | ||
| 15789 | + "simple_varmem", "$@20", "varmem", "member", "$@21", "variable", | ||
| 15790 | + "variable_body", "variable_body_directives", "variable_body_directive", | ||
| 15791 | + "cpptype", "argtype", "optref", "deref", "basetype", "cpptypelist", | ||
| 15792 | + "optexceptions", "exceptionlist", YY_NULLPTR | ||
| 15793 | }; | ||
| 15794 | #endif | ||
| 15795 | |||
| 15796 | # ifdef YYPRINT | ||
| 15797 | -/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to | ||
| 15798 | - token YYLEX-NUM. */ | ||
| 15799 | +/* YYTOKNUM[NUM] -- (External) token number corresponding to the | ||
| 15800 | + (internal) symbol number NUM (which must be that of a token). */ | ||
| 15801 | static const yytype_uint16 yytoknum[] = | ||
| 15802 | { | ||
| 15803 | 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, | ||
| 15804 | @@ -1355,282 +1155,18 @@ | ||
| 15805 | }; | ||
| 15806 | # endif | ||
| 15807 | |||
| 15808 | -/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | ||
| 15809 | -static const yytype_uint16 yyr1[] = | ||
| 15810 | -{ | ||
| 15811 | - 0, 174, 175, 175, 177, 176, 178, 178, 178, 178, | ||
| 15812 | - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 15813 | - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 15814 | - 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 15815 | - 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, | ||
| 15816 | - 179, 179, 179, 179, 179, 179, 180, 181, 181, 182, | ||
| 15817 | - 182, 183, 184, 185, 185, 186, 186, 187, 188, 189, | ||
| 15818 | - 189, 190, 190, 191, 192, 193, 193, 194, 194, 195, | ||
| 15819 | - 196, 197, 197, 198, 198, 199, 200, 201, 201, 202, | ||
| 15820 | - 202, 203, 203, 204, 205, 205, 206, 207, 207, 208, | ||
| 15821 | - 208, 208, 208, 209, 211, 210, 213, 212, 214, 215, | ||
| 15822 | - 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, | ||
| 15823 | - 217, 219, 218, 220, 220, 221, 221, 223, 222, 224, | ||
| 15824 | - 224, 225, 226, 227, 227, 228, 228, 229, 231, 230, | ||
| 15825 | - 232, 232, 233, 235, 234, 236, 236, 236, 236, 237, | ||
| 15826 | - 237, 238, 239, 240, 240, 240, 241, 241, 242, 242, | ||
| 15827 | - 242, 242, 243, 244, 244, 245, 245, 246, 247, 248, | ||
| 15828 | - 248, 249, 249, 250, 251, 252, 252, 253, 253, 254, | ||
| 15829 | - 255, 256, 256, 257, 257, 258, 259, 259, 260, 260, | ||
| 15830 | - 261, 261, 261, 262, 263, 263, 264, 264, 265, 266, | ||
| 15831 | - 266, 267, 267, 268, 268, 268, 269, 269, 271, 270, | ||
| 15832 | - 270, 272, 272, 273, 273, 273, 273, 273, 273, 273, | ||
| 15833 | - 273, 273, 274, 274, 275, 275, 276, 276, 276, 276, | ||
| 15834 | - 277, 277, 278, 278, 279, 280, 280, 281, 281, 282, | ||
| 15835 | - 282, 283, 284, 285, 285, 286, 286, 287, 288, 288, | ||
| 15836 | - 289, 289, 290, 290, 291, 292, 293, 294, 295, 296, | ||
| 15837 | - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, | ||
| 15838 | - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, | ||
| 15839 | - 317, 318, 319, 320, 321, 321, 322, 323, 324, 324, | ||
| 15840 | - 324, 325, 325, 326, 326, 327, 327, 328, 329, 329, | ||
| 15841 | - 330, 330, 331, 331, 332, 333, 334, 334, 336, 335, | ||
| 15842 | - 337, 337, 337, 338, 338, 339, 339, 340, 340, 341, | ||
| 15843 | - 341, 342, 342, 342, 343, 343, 344, 344, 345, 345, | ||
| 15844 | - 346, 346, 347, 347, 347, 347, 347, 347, 348, 348, | ||
| 15845 | - 348, 348, 348, 348, 348, 349, 350, 350, 351, 351, | ||
| 15846 | - 352, 352, 353, 354, 354, 355, 355, 355, 355, 355, | ||
| 15847 | - 355, 355, 355, 356, 356, 356, 357, 357, 359, 360, | ||
| 15848 | - 358, 362, 361, 363, 365, 366, 364, 367, 367, 368, | ||
| 15849 | - 368, 369, 370, 370, 370, 370, 371, 371, 372, 372, | ||
| 15850 | - 372, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 15851 | - 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 15852 | - 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 15853 | - 373, 373, 373, 373, 373, 373, 374, 375, 376, 376, | ||
| 15854 | - 377, 377, 377, 378, 378, 379, 379, 380, 380, 380, | ||
| 15855 | - 381, 381, 382, 382, 383, 385, 384, 384, 386, 387, | ||
| 15856 | - 388, 387, 389, 390, 389, 391, 391, 392, 392, 392, | ||
| 15857 | - 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 15858 | - 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 15859 | - 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 15860 | - 394, 394, 395, 395, 396, 396, 397, 397, 398, 398, | ||
| 15861 | - 399, 399, 400, 400, 400, 400, 401, 401, 402, 402, | ||
| 15862 | - 403, 403, 404, 404, 405, 406, 406, 406, 407, 407, | ||
| 15863 | - 407, 407, 407, 407, 407, 407, 407, 409, 408, 410, | ||
| 15864 | - 408, 408, 412, 411, 411, 413, 413, 415, 414, 414, | ||
| 15865 | - 416, 417, 417, 418, 418, 419, 419, 419, 419, 419, | ||
| 15866 | - 420, 420, 421, 422, 422, 423, 423, 423, 424, 424, | ||
| 15867 | - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, | ||
| 15868 | - 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, | ||
| 15869 | - 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, | ||
| 15870 | - 426, 426, 427, 427, 427 | ||
| 15871 | -}; | ||
| 15872 | +#define YYPACT_NINF -848 | ||
| 15873 | |||
| 15874 | -/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ | ||
| 15875 | -static const yytype_uint8 yyr2[] = | ||
| 15876 | -{ | ||
| 15877 | - 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, | ||
| 15878 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15879 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15880 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15881 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15882 | - 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, | ||
| 15883 | - 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, | ||
| 15884 | - 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, | ||
| 15885 | - 3, 1, 3, 1, 3, 3, 2, 2, 3, 1, | ||
| 15886 | - 3, 3, 3, 5, 0, 3, 4, 1, 2, 1, | ||
| 15887 | - 1, 1, 1, 2, 0, 5, 0, 6, 4, 1, | ||
| 15888 | - 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, | ||
| 15889 | - 14, 0, 5, 0, 3, 1, 2, 0, 5, 1, | ||
| 15890 | - 2, 1, 2, 1, 3, 1, 3, 3, 0, 5, | ||
| 15891 | - 1, 2, 1, 0, 5, 1, 2, 3, 4, 1, | ||
| 15892 | - 3, 1, 3, 0, 1, 3, 1, 3, 3, 3, | ||
| 15893 | - 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, | ||
| 15894 | - 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, | ||
| 15895 | - 3, 1, 3, 1, 3, 3, 0, 4, 1, 2, | ||
| 15896 | - 1, 1, 1, 3, 1, 3, 1, 3, 3, 0, | ||
| 15897 | - 4, 1, 2, 1, 1, 1, 3, 3, 0, 3, | ||
| 15898 | - 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, | ||
| 15899 | - 3, 3, 0, 4, 1, 2, 1, 1, 1, 1, | ||
| 15900 | - 1, 1, 0, 1, 2, 1, 3, 1, 3, 3, | ||
| 15901 | - 3, 2, 2, 1, 3, 1, 3, 3, 0, 2, | ||
| 15902 | - 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, | ||
| 15903 | - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 15904 | - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 15905 | - 2, 2, 2, 3, 1, 3, 3, 3, 0, 1, | ||
| 15906 | - 3, 1, 3, 3, 3, 0, 1, 3, 1, 3, | ||
| 15907 | - 1, 3, 3, 3, 4, 2, 1, 2, 0, 9, | ||
| 15908 | - 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, | ||
| 15909 | - 2, 1, 1, 4, 0, 1, 0, 2, 0, 2, | ||
| 15910 | - 1, 3, 1, 1, 1, 1, 1, 1, 0, 1, | ||
| 15911 | - 1, 1, 1, 1, 1, 3, 0, 3, 2, 1, | ||
| 15912 | - 1, 3, 1, 1, 1, 1, 4, 1, 1, 1, | ||
| 15913 | - 1, 1, 1, 0, 1, 3, 6, 12, 0, 0, | ||
| 15914 | - 8, 0, 3, 4, 0, 0, 8, 0, 2, 1, | ||
| 15915 | - 3, 2, 0, 1, 1, 1, 0, 3, 0, 1, | ||
| 15916 | - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15917 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 15918 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, | ||
| 15919 | - 2, 2, 3, 3, 3, 2, 3, 3, 1, 3, | ||
| 15920 | - 3, 3, 3, 0, 4, 1, 2, 1, 1, 1, | ||
| 15921 | - 1, 1, 0, 1, 12, 0, 3, 1, 11, 0, | ||
| 15922 | - 0, 6, 0, 0, 7, 0, 1, 17, 7, 17, | ||
| 15923 | - 16, 1, 1, 1, 1, 1, 1, 1, 1, 2, | ||
| 15924 | - 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, | ||
| 15925 | - 3, 1, 2, 2, 1, 2, 2, 2, 1, 2, | ||
| 15926 | - 0, 1, 0, 1, 0, 2, 0, 3, 1, 3, | ||
| 15927 | - 1, 3, 1, 5, 1, 1, 0, 2, 0, 2, | ||
| 15928 | - 0, 2, 0, 2, 1, 0, 1, 3, 4, 4, | ||
| 15929 | - 4, 3, 3, 6, 6, 3, 2, 0, 3, 0, | ||
| 15930 | - 3, 1, 0, 3, 1, 1, 1, 0, 3, 1, | ||
| 15931 | - 8, 0, 3, 1, 2, 1, 1, 2, 2, 2, | ||
| 15932 | - 4, 3, 3, 0, 1, 0, 3, 2, 1, 4, | ||
| 15933 | - 2, 2, 1, 1, 2, 1, 1, 2, 2, 3, | ||
| 15934 | - 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, | ||
| 15935 | - 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, | ||
| 15936 | - 0, 4, 0, 1, 3 | ||
| 15937 | -}; | ||
| 15938 | +#define yypact_value_is_default(Yystate) \ | ||
| 15939 | + (!!((Yystate) == (-848))) | ||
| 15940 | |||
| 15941 | -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state | ||
| 15942 | - STATE-NUM when YYTABLE doesn't specify something else to do. Zero | ||
| 15943 | - means the default is an error. */ | ||
| 15944 | -static const yytype_uint16 yydefact[] = | ||
| 15945 | -{ | ||
| 15946 | - 4, 4, 2, 0, 1, 3, 0, 0, 0, 0, | ||
| 15947 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 15948 | - 0, 0, 0, 0, 0, 0, 0, 0, 151, 352, | ||
| 15949 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 15950 | - 0, 0, 572, 562, 565, 566, 570, 571, 575, 576, | ||
| 15951 | - 577, 578, 579, 580, 581, 582, 583, 584, 585, 310, | ||
| 15952 | - 0, 563, 0, 0, 586, 0, 0, 138, 127, 0, | ||
| 15953 | - 153, 0, 0, 0, 587, 0, 0, 0, 5, 43, | ||
| 15954 | - 19, 20, 21, 9, 42, 14, 50, 40, 41, 46, | ||
| 15955 | - 16, 17, 15, 44, 45, 18, 22, 23, 24, 7, | ||
| 15956 | - 8, 6, 11, 12, 13, 10, 25, 26, 55, 27, | ||
| 15957 | - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, | ||
| 15958 | - 38, 39, 52, 558, 349, 350, 51, 47, 49, 371, | ||
| 15959 | - 48, 53, 54, 0, 555, 0, 0, 86, 57, 0, | ||
| 15960 | - 56, 63, 0, 62, 69, 0, 68, 75, 0, 74, | ||
| 15961 | - 81, 0, 0, 306, 277, 0, 278, 280, 281, 298, | ||
| 15962 | - 0, 0, 313, 271, 272, 273, 274, 275, 269, 276, | ||
| 15963 | - 254, 0, 496, 143, 235, 0, 234, 241, 243, 0, | ||
| 15964 | - 242, 255, 256, 257, 230, 231, 0, 222, 208, 232, | ||
| 15965 | - 0, 186, 181, 0, 199, 194, 374, 368, 568, 311, | ||
| 15966 | - 312, 315, 573, 561, 564, 567, 574, 348, 555, 0, | ||
| 15967 | - 121, 0, 0, 133, 0, 132, 154, 0, 496, 0, | ||
| 15968 | - 94, 0, 0, 162, 163, 0, 168, 169, 0, 174, | ||
| 15969 | - 175, 0, 0, 0, 0, 496, 0, 553, 87, 0, | ||
| 15970 | - 0, 0, 89, 0, 0, 59, 0, 0, 65, 0, | ||
| 15971 | - 0, 71, 0, 0, 77, 0, 0, 83, 80, 307, | ||
| 15972 | - 305, 0, 0, 0, 300, 297, 314, 0, 560, 0, | ||
| 15973 | - 104, 315, 0, 0, 0, 237, 0, 0, 245, 0, | ||
| 15974 | - 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, | ||
| 15975 | - 0, 206, 232, 233, 207, 0, 0, 183, 0, 180, | ||
| 15976 | - 0, 0, 196, 0, 193, 377, 377, 316, 496, 569, | ||
| 15977 | - 553, 496, 0, 123, 0, 0, 0, 0, 135, 0, | ||
| 15978 | - 0, 0, 0, 0, 156, 152, 515, 0, 496, 588, | ||
| 15979 | - 0, 0, 0, 165, 0, 0, 171, 0, 0, 177, | ||
| 15980 | - 0, 351, 496, 372, 515, 541, 0, 0, 0, 462, | ||
| 15981 | - 461, 463, 464, 466, 467, 481, 484, 488, 0, 465, | ||
| 15982 | - 468, 0, 557, 554, 551, 0, 0, 88, 0, 0, | ||
| 15983 | - 58, 0, 0, 64, 0, 0, 70, 0, 0, 76, | ||
| 15984 | - 0, 0, 82, 0, 0, 0, 299, 0, 304, 500, | ||
| 15985 | - 0, 498, 0, 145, 0, 149, 0, 0, 0, 0, | ||
| 15986 | - 236, 0, 0, 244, 0, 0, 0, 0, 0, 0, | ||
| 15987 | - 0, 0, 0, 0, 210, 0, 0, 288, 226, 227, | ||
| 15988 | - 0, 224, 228, 229, 209, 0, 182, 0, 190, 191, | ||
| 15989 | - 0, 188, 192, 0, 195, 0, 203, 204, 0, 201, | ||
| 15990 | - 205, 382, 496, 496, 308, 550, 0, 0, 0, 0, | ||
| 15991 | - 142, 0, 140, 131, 0, 129, 0, 134, 0, 0, | ||
| 15992 | - 0, 0, 0, 155, 0, 315, 315, 315, 315, 315, | ||
| 15993 | - 0, 0, 315, 0, 514, 516, 315, 328, 0, 0, | ||
| 15994 | - 0, 373, 0, 164, 0, 0, 170, 0, 0, 176, | ||
| 15995 | - 0, 559, 106, 0, 0, 0, 482, 0, 486, 487, | ||
| 15996 | - 472, 471, 473, 474, 476, 477, 485, 469, 489, 470, | ||
| 15997 | - 483, 475, 478, 515, 556, 440, 441, 91, 92, 90, | ||
| 15998 | - 61, 60, 67, 66, 73, 72, 79, 78, 85, 84, | ||
| 15999 | - 302, 303, 301, 0, 0, 497, 0, 105, 146, 0, | ||
| 16000 | - 144, 315, 239, 353, 354, 240, 238, 247, 246, 213, | ||
| 16001 | - 214, 215, 216, 217, 218, 219, 220, 221, 212, 0, | ||
| 16002 | - 282, 289, 0, 0, 0, 225, 185, 184, 0, 189, | ||
| 16003 | - 198, 197, 0, 202, 383, 384, 385, 378, 379, 0, | ||
| 16004 | - 375, 369, 0, 295, 0, 125, 0, 371, 122, 139, | ||
| 16005 | - 141, 128, 130, 137, 136, 159, 160, 161, 158, 157, | ||
| 16006 | - 496, 496, 496, 496, 496, 515, 515, 496, 490, 0, | ||
| 16007 | - 496, 346, 526, 95, 0, 93, 589, 167, 166, 173, | ||
| 16008 | - 172, 179, 178, 0, 490, 0, 0, 0, 545, 546, | ||
| 16009 | - 0, 543, 248, 0, 479, 480, 0, 230, 504, 505, | ||
| 16010 | - 502, 501, 499, 0, 0, 0, 0, 0, 0, 109, | ||
| 16011 | - 119, 111, 112, 113, 117, 114, 118, 147, 0, 150, | ||
| 16012 | - 0, 0, 284, 0, 0, 0, 291, 287, 223, 187, | ||
| 16013 | - 200, 382, 381, 386, 386, 317, 296, 366, 0, 124, | ||
| 16014 | - 126, 328, 328, 328, 521, 522, 0, 0, 525, 491, | ||
| 16015 | - 492, 517, 552, 0, 329, 330, 338, 0, 0, 97, | ||
| 16016 | - 101, 99, 100, 102, 107, 492, 547, 548, 549, 542, | ||
| 16017 | - 544, 0, 250, 0, 490, 232, 270, 266, 115, 116, | ||
| 16018 | - 0, 0, 110, 148, 0, 283, 0, 0, 0, 290, | ||
| 16019 | - 0, 380, 388, 0, 0, 326, 321, 322, 0, 318, | ||
| 16020 | - 319, 0, 518, 519, 520, 315, 315, 493, 590, 0, | ||
| 16021 | - 332, 333, 334, 335, 336, 337, 346, 339, 341, 342, | ||
| 16022 | - 343, 344, 340, 0, 103, 0, 98, 590, 249, 0, | ||
| 16023 | - 252, 458, 492, 0, 0, 108, 286, 285, 293, 294, | ||
| 16024 | - 292, 0, 0, 352, 0, 0, 0, 0, 0, 0, | ||
| 16025 | - 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, | ||
| 16026 | - 527, 529, 537, 532, 445, 0, 397, 393, 391, 392, | ||
| 16027 | - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, | ||
| 16028 | - 413, 414, 402, 415, 401, 399, 398, 394, 396, 395, | ||
| 16029 | - 455, 389, 400, 417, 416, 447, 0, 539, 418, 531, | ||
| 16030 | - 534, 535, 536, 376, 370, 346, 496, 0, 320, 0, | ||
| 16031 | - 496, 496, 0, 494, 347, 331, 361, 358, 357, 362, | ||
| 16032 | - 360, 355, 359, 345, 0, 96, 494, 251, 0, 540, | ||
| 16033 | - 590, 232, 515, 279, 268, 515, 258, 259, 260, 261, | ||
| 16034 | - 262, 263, 264, 265, 267, 421, 420, 419, 443, 0, | ||
| 16035 | - 0, 0, 425, 0, 0, 0, 0, 0, 0, 433, | ||
| 16036 | - 387, 390, 0, 327, 324, 309, 496, 523, 524, 592, | ||
| 16037 | - 0, 496, 346, 496, 253, 494, 503, 0, 0, 422, | ||
| 16038 | - 423, 424, 537, 528, 530, 538, 0, 533, 0, 446, | ||
| 16039 | - 0, 0, 0, 0, 428, 0, 426, 0, 325, 323, | ||
| 16040 | - 0, 593, 0, 495, 452, 364, 0, 452, 496, 490, | ||
| 16041 | - 590, 0, 0, 0, 0, 427, 0, 437, 438, 439, | ||
| 16042 | - 0, 435, 0, 295, 591, 0, 453, 0, 356, 346, | ||
| 16043 | - 0, 452, 590, 496, 430, 431, 432, 429, 0, 436, | ||
| 16044 | - 590, 367, 594, 0, 510, 365, 295, 0, 496, 449, | ||
| 16045 | - 434, 494, 0, 0, 508, 510, 510, 452, 450, 0, | ||
| 16046 | - 496, 515, 511, 0, 512, 508, 508, 0, 0, 295, | ||
| 16047 | - 0, 0, 509, 0, 506, 512, 512, 295, 515, 510, | ||
| 16048 | - 510, 0, 513, 0, 460, 506, 506, 510, 0, 508, | ||
| 16049 | - 508, 454, 507, 457, 459, 508, 0, 448, 512, 120, | ||
| 16050 | - 451, 444 | ||
| 16051 | -}; | ||
| 16052 | +#define YYTABLE_NINF -561 | ||
| 16053 | |||
| 16054 | -/* YYDEFGOTO[NTERM-NUM]. */ | ||
| 16055 | -static const yytype_int16 yydefgoto[] = | ||
| 16056 | -{ | ||
| 16057 | - -1, 1, 2, 3, 78, 79, 80, 140, 244, 245, | ||
| 16058 | - 81, 143, 247, 248, 82, 146, 250, 251, 83, 149, | ||
| 16059 | - 253, 254, 84, 152, 256, 257, 85, 137, 241, 242, | ||
| 16060 | - 86, 328, 615, 698, 699, 700, 87, 392, 88, 623, | ||
| 16061 | - 537, 648, 649, 650, 89, 313, 449, 586, 90, 212, | ||
| 16062 | - 454, 455, 91, 215, 317, 318, 92, 211, 451, 452, | ||
| 16063 | - 93, 271, 395, 396, 94, 95, 218, 323, 324, 96, | ||
| 16064 | - 223, 332, 333, 97, 226, 335, 336, 98, 229, 338, | ||
| 16065 | - 339, 99, 191, 296, 297, 299, 430, 431, 100, 194, | ||
| 16066 | - 301, 302, 304, 438, 439, 101, 187, 292, 288, 289, | ||
| 16067 | - 291, 420, 421, 188, 294, 102, 176, 274, 275, 103, | ||
| 16068 | - 104, 180, 277, 278, 712, 770, 869, 105, 106, 107, | ||
| 16069 | - 108, 811, 812, 813, 814, 815, 816, 817, 818, 654, | ||
| 16070 | - 820, 821, 109, 655, 110, 111, 112, 113, 114, 115, | ||
| 16071 | - 116, 117, 823, 118, 119, 422, 560, 661, 662, 676, | ||
| 16072 | - 563, 665, 666, 677, 120, 161, 263, 264, 121, 154, | ||
| 16073 | - 155, 122, 582, 201, 267, 308, 738, 739, 740, 939, | ||
| 16074 | - 846, 612, 694, 756, 763, 695, 696, 123, 124, 125, | ||
| 16075 | - 545, 863, 946, 126, 127, 306, 674, 128, 234, 587, | ||
| 16076 | - 130, 305, 673, 442, 577, 578, 579, 733, 830, 831, | ||
| 16077 | - 832, 899, 933, 934, 936, 960, 961, 517, 889, 833, | ||
| 16078 | - 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361, | ||
| 16079 | - 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994, | ||
| 16080 | - 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840, | ||
| 16081 | - 841, 895, 842, 495, 630, 631, 476, 477, 364, 237, | ||
| 16082 | - 134, 330, 853, 942 | ||
| 16083 | -}; | ||
| 16084 | +#define yytable_value_is_error(Yytable_value) \ | ||
| 16085 | + 0 | ||
| 16086 | |||
| 16087 | -/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | ||
| 16088 | - STATE-NUM. */ | ||
| 16089 | -#define YYPACT_NINF -848 | ||
| 16090 | + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing | ||
| 16091 | + STATE-NUM. */ | ||
| 16092 | static const yytype_int16 yypact[] = | ||
| 16093 | { | ||
| 16094 | -848, 264, -848, 1011, -848, -848, 67, 30, 64, 89, | ||
| 16095 | @@ -1740,7 +1276,119 @@ | ||
| 16096 | -848, -848 | ||
| 16097 | }; | ||
| 16098 | |||
| 16099 | -/* YYPGOTO[NTERM-NUM]. */ | ||
| 16100 | + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. | ||
| 16101 | + Performed when YYTABLE does not specify something else to do. Zero | ||
| 16102 | + means the default is an error. */ | ||
| 16103 | +static const yytype_uint16 yydefact[] = | ||
| 16104 | +{ | ||
| 16105 | + 4, 4, 2, 0, 1, 3, 0, 0, 0, 0, | ||
| 16106 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 16107 | + 0, 0, 0, 0, 0, 0, 0, 0, 151, 352, | ||
| 16108 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | ||
| 16109 | + 0, 0, 572, 562, 565, 566, 570, 571, 575, 576, | ||
| 16110 | + 577, 578, 579, 580, 581, 582, 583, 584, 585, 310, | ||
| 16111 | + 0, 563, 0, 0, 586, 0, 0, 138, 127, 0, | ||
| 16112 | + 153, 0, 0, 0, 587, 0, 0, 0, 5, 43, | ||
| 16113 | + 19, 20, 21, 9, 42, 14, 50, 40, 41, 46, | ||
| 16114 | + 16, 17, 15, 44, 45, 18, 22, 23, 24, 7, | ||
| 16115 | + 8, 6, 11, 12, 13, 10, 25, 26, 55, 27, | ||
| 16116 | + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, | ||
| 16117 | + 38, 39, 52, 558, 349, 350, 51, 47, 49, 371, | ||
| 16118 | + 48, 53, 54, 0, 555, 0, 0, 86, 57, 0, | ||
| 16119 | + 56, 63, 0, 62, 69, 0, 68, 75, 0, 74, | ||
| 16120 | + 81, 0, 0, 306, 277, 0, 278, 280, 281, 298, | ||
| 16121 | + 0, 0, 313, 271, 272, 273, 274, 275, 269, 276, | ||
| 16122 | + 254, 0, 496, 143, 235, 0, 234, 241, 243, 0, | ||
| 16123 | + 242, 255, 256, 257, 230, 231, 0, 222, 208, 232, | ||
| 16124 | + 0, 186, 181, 0, 199, 194, 374, 368, 568, 311, | ||
| 16125 | + 312, 315, 573, 561, 564, 567, 574, 348, 555, 0, | ||
| 16126 | + 121, 0, 0, 133, 0, 132, 154, 0, 496, 0, | ||
| 16127 | + 94, 0, 0, 162, 163, 0, 168, 169, 0, 174, | ||
| 16128 | + 175, 0, 0, 0, 0, 496, 0, 553, 87, 0, | ||
| 16129 | + 0, 0, 89, 0, 0, 59, 0, 0, 65, 0, | ||
| 16130 | + 0, 71, 0, 0, 77, 0, 0, 83, 80, 307, | ||
| 16131 | + 305, 0, 0, 0, 300, 297, 314, 0, 560, 0, | ||
| 16132 | + 104, 315, 0, 0, 0, 237, 0, 0, 245, 0, | ||
| 16133 | + 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, | ||
| 16134 | + 0, 206, 232, 233, 207, 0, 0, 183, 0, 180, | ||
| 16135 | + 0, 0, 196, 0, 193, 377, 377, 316, 496, 569, | ||
| 16136 | + 553, 496, 0, 123, 0, 0, 0, 0, 135, 0, | ||
| 16137 | + 0, 0, 0, 0, 156, 152, 515, 0, 496, 588, | ||
| 16138 | + 0, 0, 0, 165, 0, 0, 171, 0, 0, 177, | ||
| 16139 | + 0, 351, 496, 372, 515, 541, 0, 0, 0, 462, | ||
| 16140 | + 461, 463, 464, 466, 467, 481, 484, 488, 0, 465, | ||
| 16141 | + 468, 0, 557, 554, 551, 0, 0, 88, 0, 0, | ||
| 16142 | + 58, 0, 0, 64, 0, 0, 70, 0, 0, 76, | ||
| 16143 | + 0, 0, 82, 0, 0, 0, 299, 0, 304, 500, | ||
| 16144 | + 0, 498, 0, 145, 0, 149, 0, 0, 0, 0, | ||
| 16145 | + 236, 0, 0, 244, 0, 0, 0, 0, 0, 0, | ||
| 16146 | + 0, 0, 0, 0, 210, 0, 0, 288, 226, 227, | ||
| 16147 | + 0, 224, 228, 229, 209, 0, 182, 0, 190, 191, | ||
| 16148 | + 0, 188, 192, 0, 195, 0, 203, 204, 0, 201, | ||
| 16149 | + 205, 382, 496, 496, 308, 550, 0, 0, 0, 0, | ||
| 16150 | + 142, 0, 140, 131, 0, 129, 0, 134, 0, 0, | ||
| 16151 | + 0, 0, 0, 155, 0, 315, 315, 315, 315, 315, | ||
| 16152 | + 0, 0, 315, 0, 514, 516, 315, 328, 0, 0, | ||
| 16153 | + 0, 373, 0, 164, 0, 0, 170, 0, 0, 176, | ||
| 16154 | + 0, 559, 106, 0, 0, 0, 482, 0, 486, 487, | ||
| 16155 | + 472, 471, 473, 474, 476, 477, 485, 469, 489, 470, | ||
| 16156 | + 483, 475, 478, 515, 556, 440, 441, 91, 92, 90, | ||
| 16157 | + 61, 60, 67, 66, 73, 72, 79, 78, 85, 84, | ||
| 16158 | + 302, 303, 301, 0, 0, 497, 0, 105, 146, 0, | ||
| 16159 | + 144, 315, 239, 353, 354, 240, 238, 247, 246, 213, | ||
| 16160 | + 214, 215, 216, 217, 218, 219, 220, 221, 212, 0, | ||
| 16161 | + 282, 289, 0, 0, 0, 225, 185, 184, 0, 189, | ||
| 16162 | + 198, 197, 0, 202, 383, 384, 385, 378, 379, 0, | ||
| 16163 | + 375, 369, 0, 295, 0, 125, 0, 371, 122, 139, | ||
| 16164 | + 141, 128, 130, 137, 136, 159, 160, 161, 158, 157, | ||
| 16165 | + 496, 496, 496, 496, 496, 515, 515, 496, 490, 0, | ||
| 16166 | + 496, 346, 526, 95, 0, 93, 589, 167, 166, 173, | ||
| 16167 | + 172, 179, 178, 0, 490, 0, 0, 0, 545, 546, | ||
| 16168 | + 0, 543, 248, 0, 479, 480, 0, 230, 504, 505, | ||
| 16169 | + 502, 501, 499, 0, 0, 0, 0, 0, 0, 109, | ||
| 16170 | + 119, 111, 112, 113, 117, 114, 118, 147, 0, 150, | ||
| 16171 | + 0, 0, 284, 0, 0, 0, 291, 287, 223, 187, | ||
| 16172 | + 200, 382, 381, 386, 386, 317, 296, 366, 0, 124, | ||
| 16173 | + 126, 328, 328, 328, 521, 522, 0, 0, 525, 491, | ||
| 16174 | + 492, 517, 552, 0, 329, 330, 338, 0, 0, 97, | ||
| 16175 | + 101, 99, 100, 102, 107, 492, 547, 548, 549, 542, | ||
| 16176 | + 544, 0, 250, 0, 490, 232, 270, 266, 115, 116, | ||
| 16177 | + 0, 0, 110, 148, 0, 283, 0, 0, 0, 290, | ||
| 16178 | + 0, 380, 388, 0, 0, 326, 321, 322, 0, 318, | ||
| 16179 | + 319, 0, 518, 519, 520, 315, 315, 493, 590, 0, | ||
| 16180 | + 332, 333, 334, 335, 336, 337, 346, 339, 341, 342, | ||
| 16181 | + 343, 344, 340, 0, 103, 0, 98, 590, 249, 0, | ||
| 16182 | + 252, 458, 492, 0, 0, 108, 286, 285, 293, 294, | ||
| 16183 | + 292, 0, 0, 352, 0, 0, 0, 0, 0, 0, | ||
| 16184 | + 0, 0, 0, 0, 0, 0, 442, 442, 442, 0, | ||
| 16185 | + 527, 529, 537, 532, 445, 0, 397, 393, 391, 392, | ||
| 16186 | + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, | ||
| 16187 | + 413, 414, 402, 415, 401, 399, 398, 394, 396, 395, | ||
| 16188 | + 455, 389, 400, 417, 416, 447, 0, 539, 418, 531, | ||
| 16189 | + 534, 535, 536, 376, 370, 346, 496, 0, 320, 0, | ||
| 16190 | + 496, 496, 0, 494, 347, 331, 361, 358, 357, 362, | ||
| 16191 | + 360, 355, 359, 345, 0, 96, 494, 251, 0, 540, | ||
| 16192 | + 590, 232, 515, 279, 268, 515, 258, 259, 260, 261, | ||
| 16193 | + 262, 263, 264, 265, 267, 421, 420, 419, 443, 0, | ||
| 16194 | + 0, 0, 425, 0, 0, 0, 0, 0, 0, 433, | ||
| 16195 | + 387, 390, 0, 327, 324, 309, 496, 523, 524, 592, | ||
| 16196 | + 0, 496, 346, 496, 253, 494, 503, 0, 0, 422, | ||
| 16197 | + 423, 424, 537, 528, 530, 538, 0, 533, 0, 446, | ||
| 16198 | + 0, 0, 0, 0, 428, 0, 426, 0, 325, 323, | ||
| 16199 | + 0, 593, 0, 495, 452, 364, 0, 452, 496, 490, | ||
| 16200 | + 590, 0, 0, 0, 0, 427, 0, 437, 438, 439, | ||
| 16201 | + 0, 435, 0, 295, 591, 0, 453, 0, 356, 346, | ||
| 16202 | + 0, 452, 590, 496, 430, 431, 432, 429, 0, 436, | ||
| 16203 | + 590, 367, 594, 0, 510, 365, 295, 0, 496, 449, | ||
| 16204 | + 434, 494, 0, 0, 508, 510, 510, 452, 450, 0, | ||
| 16205 | + 496, 515, 511, 0, 512, 508, 508, 0, 0, 295, | ||
| 16206 | + 0, 0, 509, 0, 506, 512, 512, 295, 515, 510, | ||
| 16207 | + 510, 0, 513, 0, 460, 506, 506, 510, 0, 508, | ||
| 16208 | + 508, 454, 507, 457, 459, 508, 0, 448, 512, 120, | ||
| 16209 | + 451, 444 | ||
| 16210 | +}; | ||
| 16211 | + | ||
| 16212 | + /* YYPGOTO[NTERM-NUM]. */ | ||
| 16213 | static const yytype_int16 yypgoto[] = | ||
| 16214 | { | ||
| 16215 | -848, -848, 761, -848, -848, -397, -848, -848, -848, 427, | ||
| 16216 | @@ -1771,11 +1419,40 @@ | ||
| 16217 | -10, -204, -732, -848 | ||
| 16218 | }; | ||
| 16219 | |||
| 16220 | -/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If | ||
| 16221 | - positive, shift that token. If negative, reduce the rule which | ||
| 16222 | - number is the opposite. If zero, do what YYDEFACT says. | ||
| 16223 | - If YYTABLE_NINF, syntax error. */ | ||
| 16224 | -#define YYTABLE_NINF -561 | ||
| 16225 | + /* YYDEFGOTO[NTERM-NUM]. */ | ||
| 16226 | +static const yytype_int16 yydefgoto[] = | ||
| 16227 | +{ | ||
| 16228 | + -1, 1, 2, 3, 78, 79, 80, 140, 244, 245, | ||
| 16229 | + 81, 143, 247, 248, 82, 146, 250, 251, 83, 149, | ||
| 16230 | + 253, 254, 84, 152, 256, 257, 85, 137, 241, 242, | ||
| 16231 | + 86, 328, 615, 698, 699, 700, 87, 392, 88, 623, | ||
| 16232 | + 537, 648, 649, 650, 89, 313, 449, 586, 90, 212, | ||
| 16233 | + 454, 455, 91, 215, 317, 318, 92, 211, 451, 452, | ||
| 16234 | + 93, 271, 395, 396, 94, 95, 218, 323, 324, 96, | ||
| 16235 | + 223, 332, 333, 97, 226, 335, 336, 98, 229, 338, | ||
| 16236 | + 339, 99, 191, 296, 297, 299, 430, 431, 100, 194, | ||
| 16237 | + 301, 302, 304, 438, 439, 101, 187, 292, 288, 289, | ||
| 16238 | + 291, 420, 421, 188, 294, 102, 176, 274, 275, 103, | ||
| 16239 | + 104, 180, 277, 278, 712, 770, 869, 105, 106, 107, | ||
| 16240 | + 108, 811, 812, 813, 814, 815, 816, 817, 818, 654, | ||
| 16241 | + 820, 821, 109, 655, 110, 111, 112, 113, 114, 115, | ||
| 16242 | + 116, 117, 823, 118, 119, 422, 560, 661, 662, 676, | ||
| 16243 | + 563, 665, 666, 677, 120, 161, 263, 264, 121, 154, | ||
| 16244 | + 155, 122, 582, 201, 267, 308, 738, 739, 740, 939, | ||
| 16245 | + 846, 612, 694, 756, 763, 695, 696, 123, 124, 125, | ||
| 16246 | + 545, 863, 946, 126, 127, 306, 674, 128, 234, 587, | ||
| 16247 | + 130, 305, 673, 442, 577, 578, 579, 733, 830, 831, | ||
| 16248 | + 832, 899, 933, 934, 936, 960, 961, 517, 889, 833, | ||
| 16249 | + 834, 897, 835, 999, 1008, 967, 983, 836, 837, 361, | ||
| 16250 | + 690, 748, 911, 270, 390, 391, 641, 1024, 1004, 994, | ||
| 16251 | + 1014, 473, 474, 475, 838, 893, 894, 839, 896, 840, | ||
| 16252 | + 841, 895, 842, 495, 630, 631, 476, 477, 364, 237, | ||
| 16253 | + 134, 330, 853, 942 | ||
| 16254 | +}; | ||
| 16255 | + | ||
| 16256 | + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If | ||
| 16257 | + positive, shift that token. If negative, reduce the rule whose | ||
| 16258 | + number is the opposite. If YYTABLE_NINF, syntax error. */ | ||
| 16259 | static const yytype_int16 yytable[] = | ||
| 16260 | { | ||
| 16261 | 156, 157, 158, 133, 493, 163, 164, 165, 166, 167, | ||
| 16262 | @@ -2108,8 +1785,8 @@ | ||
| 16263 | -1, 127 | ||
| 16264 | }; | ||
| 16265 | |||
| 16266 | -/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | ||
| 16267 | - symbol of state STATE-NUM. */ | ||
| 16268 | + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing | ||
| 16269 | + symbol of state STATE-NUM. */ | ||
| 16270 | static const yytype_uint16 yystos[] = | ||
| 16271 | { | ||
| 16272 | 0, 175, 176, 177, 0, 176, 3, 5, 6, 7, | ||
| 16273 | @@ -2219,95 +1896,171 @@ | ||
| 16274 | 171, 404 | ||
| 16275 | }; | ||
| 16276 | |||
| 16277 | -#define yyerrok (yyerrstatus = 0) | ||
| 16278 | -#define yyclearin (yychar = YYEMPTY) | ||
| 16279 | -#define YYEMPTY (-2) | ||
| 16280 | -#define YYEOF 0 | ||
| 16281 | + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ | ||
| 16282 | +static const yytype_uint16 yyr1[] = | ||
| 16283 | +{ | ||
| 16284 | + 0, 174, 175, 175, 177, 176, 178, 178, 178, 178, | ||
| 16285 | + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 16286 | + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 16287 | + 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, | ||
| 16288 | + 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, | ||
| 16289 | + 179, 179, 179, 179, 179, 179, 180, 181, 181, 182, | ||
| 16290 | + 182, 183, 184, 185, 185, 186, 186, 187, 188, 189, | ||
| 16291 | + 189, 190, 190, 191, 192, 193, 193, 194, 194, 195, | ||
| 16292 | + 196, 197, 197, 198, 198, 199, 200, 201, 201, 202, | ||
| 16293 | + 202, 203, 203, 204, 205, 205, 206, 207, 207, 208, | ||
| 16294 | + 208, 208, 208, 209, 211, 210, 213, 212, 214, 215, | ||
| 16295 | + 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, | ||
| 16296 | + 217, 219, 218, 220, 220, 221, 221, 223, 222, 224, | ||
| 16297 | + 224, 225, 226, 227, 227, 228, 228, 229, 231, 230, | ||
| 16298 | + 232, 232, 233, 235, 234, 236, 236, 236, 236, 237, | ||
| 16299 | + 237, 238, 239, 240, 240, 240, 241, 241, 242, 242, | ||
| 16300 | + 242, 242, 243, 244, 244, 245, 245, 246, 247, 248, | ||
| 16301 | + 248, 249, 249, 250, 251, 252, 252, 253, 253, 254, | ||
| 16302 | + 255, 256, 256, 257, 257, 258, 259, 259, 260, 260, | ||
| 16303 | + 261, 261, 261, 262, 263, 263, 264, 264, 265, 266, | ||
| 16304 | + 266, 267, 267, 268, 268, 268, 269, 269, 271, 270, | ||
| 16305 | + 270, 272, 272, 273, 273, 273, 273, 273, 273, 273, | ||
| 16306 | + 273, 273, 274, 274, 275, 275, 276, 276, 276, 276, | ||
| 16307 | + 277, 277, 278, 278, 279, 280, 280, 281, 281, 282, | ||
| 16308 | + 282, 283, 284, 285, 285, 286, 286, 287, 288, 288, | ||
| 16309 | + 289, 289, 290, 290, 291, 292, 293, 294, 295, 296, | ||
| 16310 | + 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, | ||
| 16311 | + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, | ||
| 16312 | + 317, 318, 319, 320, 321, 321, 322, 323, 324, 324, | ||
| 16313 | + 324, 325, 325, 326, 326, 327, 327, 328, 329, 329, | ||
| 16314 | + 330, 330, 331, 331, 332, 333, 334, 334, 336, 335, | ||
| 16315 | + 337, 337, 337, 338, 338, 339, 339, 340, 340, 341, | ||
| 16316 | + 341, 342, 342, 342, 343, 343, 344, 344, 345, 345, | ||
| 16317 | + 346, 346, 347, 347, 347, 347, 347, 347, 348, 348, | ||
| 16318 | + 348, 348, 348, 348, 348, 349, 350, 350, 351, 351, | ||
| 16319 | + 352, 352, 353, 354, 354, 355, 355, 355, 355, 355, | ||
| 16320 | + 355, 355, 355, 356, 356, 356, 357, 357, 359, 360, | ||
| 16321 | + 358, 362, 361, 363, 365, 366, 364, 367, 367, 368, | ||
| 16322 | + 368, 369, 370, 370, 370, 370, 371, 371, 372, 372, | ||
| 16323 | + 372, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 16324 | + 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 16325 | + 373, 373, 373, 373, 373, 373, 373, 373, 373, 373, | ||
| 16326 | + 373, 373, 373, 373, 373, 373, 374, 375, 376, 376, | ||
| 16327 | + 377, 377, 377, 378, 378, 379, 379, 380, 380, 380, | ||
| 16328 | + 381, 381, 382, 382, 383, 385, 384, 384, 386, 387, | ||
| 16329 | + 388, 387, 389, 390, 389, 391, 391, 392, 392, 392, | ||
| 16330 | + 392, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 16331 | + 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 16332 | + 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, | ||
| 16333 | + 394, 394, 395, 395, 396, 396, 397, 397, 398, 398, | ||
| 16334 | + 399, 399, 400, 400, 400, 400, 401, 401, 402, 402, | ||
| 16335 | + 403, 403, 404, 404, 405, 406, 406, 406, 407, 407, | ||
| 16336 | + 407, 407, 407, 407, 407, 407, 407, 409, 408, 410, | ||
| 16337 | + 408, 408, 412, 411, 411, 413, 413, 415, 414, 414, | ||
| 16338 | + 416, 417, 417, 418, 418, 419, 419, 419, 419, 419, | ||
| 16339 | + 420, 420, 421, 422, 422, 423, 423, 423, 424, 424, | ||
| 16340 | + 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, | ||
| 16341 | + 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, | ||
| 16342 | + 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, | ||
| 16343 | + 426, 426, 427, 427, 427 | ||
| 16344 | +}; | ||
| 16345 | |||
| 16346 | -#define YYACCEPT goto yyacceptlab | ||
| 16347 | -#define YYABORT goto yyabortlab | ||
| 16348 | -#define YYERROR goto yyerrorlab | ||
| 16349 | + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ | ||
| 16350 | +static const yytype_uint8 yyr2[] = | ||
| 16351 | +{ | ||
| 16352 | + 0, 2, 1, 2, 0, 2, 1, 1, 1, 1, | ||
| 16353 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16354 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16355 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16356 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16357 | + 1, 1, 1, 1, 1, 1, 2, 1, 3, 1, | ||
| 16358 | + 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, | ||
| 16359 | + 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, | ||
| 16360 | + 3, 1, 3, 1, 3, 3, 2, 2, 3, 1, | ||
| 16361 | + 3, 3, 3, 5, 0, 3, 4, 1, 2, 1, | ||
| 16362 | + 1, 1, 1, 2, 0, 5, 0, 6, 4, 1, | ||
| 16363 | + 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, | ||
| 16364 | + 14, 0, 5, 0, 3, 1, 2, 0, 5, 1, | ||
| 16365 | + 2, 1, 2, 1, 3, 1, 3, 3, 0, 5, | ||
| 16366 | + 1, 2, 1, 0, 5, 1, 2, 3, 4, 1, | ||
| 16367 | + 3, 1, 3, 0, 1, 3, 1, 3, 3, 3, | ||
| 16368 | + 3, 3, 2, 1, 3, 1, 3, 3, 2, 1, | ||
| 16369 | + 3, 1, 3, 3, 2, 1, 3, 1, 3, 3, | ||
| 16370 | + 3, 1, 3, 1, 3, 3, 0, 4, 1, 2, | ||
| 16371 | + 1, 1, 1, 3, 1, 3, 1, 3, 3, 0, | ||
| 16372 | + 4, 1, 2, 1, 1, 1, 3, 3, 0, 3, | ||
| 16373 | + 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, | ||
| 16374 | + 3, 3, 0, 4, 1, 2, 1, 1, 1, 1, | ||
| 16375 | + 1, 1, 0, 1, 2, 1, 3, 1, 3, 3, | ||
| 16376 | + 3, 2, 2, 1, 3, 1, 3, 3, 0, 2, | ||
| 16377 | + 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, | ||
| 16378 | + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 16379 | + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | ||
| 16380 | + 2, 2, 2, 3, 1, 3, 3, 3, 0, 1, | ||
| 16381 | + 3, 1, 3, 3, 3, 0, 1, 3, 1, 3, | ||
| 16382 | + 1, 3, 3, 3, 4, 2, 1, 2, 0, 9, | ||
| 16383 | + 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, | ||
| 16384 | + 2, 1, 1, 4, 0, 1, 0, 2, 0, 2, | ||
| 16385 | + 1, 3, 1, 1, 1, 1, 1, 1, 0, 1, | ||
| 16386 | + 1, 1, 1, 1, 1, 3, 0, 3, 2, 1, | ||
| 16387 | + 1, 3, 1, 1, 1, 1, 4, 1, 1, 1, | ||
| 16388 | + 1, 1, 1, 0, 1, 3, 6, 12, 0, 0, | ||
| 16389 | + 8, 0, 3, 4, 0, 0, 8, 0, 2, 1, | ||
| 16390 | + 3, 2, 0, 1, 1, 1, 0, 3, 0, 1, | ||
| 16391 | + 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16392 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, | ||
| 16393 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, | ||
| 16394 | + 2, 2, 3, 3, 3, 2, 3, 3, 1, 3, | ||
| 16395 | + 3, 3, 3, 0, 4, 1, 2, 1, 1, 1, | ||
| 16396 | + 1, 1, 0, 1, 12, 0, 3, 1, 11, 0, | ||
| 16397 | + 0, 6, 0, 0, 7, 0, 1, 17, 7, 17, | ||
| 16398 | + 16, 1, 1, 1, 1, 1, 1, 1, 1, 2, | ||
| 16399 | + 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, | ||
| 16400 | + 3, 1, 2, 2, 1, 2, 2, 2, 1, 2, | ||
| 16401 | + 0, 1, 0, 1, 0, 2, 0, 3, 1, 3, | ||
| 16402 | + 1, 3, 1, 5, 1, 1, 0, 2, 0, 2, | ||
| 16403 | + 0, 2, 0, 2, 1, 0, 1, 3, 4, 4, | ||
| 16404 | + 4, 3, 3, 6, 6, 3, 2, 0, 3, 0, | ||
| 16405 | + 3, 1, 0, 3, 1, 1, 1, 0, 3, 1, | ||
| 16406 | + 8, 0, 3, 1, 2, 1, 1, 2, 2, 2, | ||
| 16407 | + 4, 3, 3, 0, 1, 0, 3, 2, 1, 4, | ||
| 16408 | + 2, 2, 1, 1, 2, 1, 1, 2, 2, 3, | ||
| 16409 | + 1, 1, 1, 2, 2, 1, 1, 1, 1, 1, | ||
| 16410 | + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, | ||
| 16411 | + 0, 4, 0, 1, 3 | ||
| 16412 | +}; | ||
| 16413 | |||
| 16414 | |||
| 16415 | -/* Like YYERROR except do call yyerror. This remains here temporarily | ||
| 16416 | - to ease the transition to the new meaning of YYERROR, for GCC. | ||
| 16417 | - Once GCC version 2 has supplanted version 1, this can go. */ | ||
| 16418 | +#define yyerrok (yyerrstatus = 0) | ||
| 16419 | +#define yyclearin (yychar = YYEMPTY) | ||
| 16420 | +#define YYEMPTY (-2) | ||
| 16421 | +#define YYEOF 0 | ||
| 16422 | + | ||
| 16423 | +#define YYACCEPT goto yyacceptlab | ||
| 16424 | +#define YYABORT goto yyabortlab | ||
| 16425 | +#define YYERROR goto yyerrorlab | ||
| 16426 | |||
| 16427 | -#define YYFAIL goto yyerrlab | ||
| 16428 | |||
| 16429 | #define YYRECOVERING() (!!yyerrstatus) | ||
| 16430 | |||
| 16431 | -#define YYBACKUP(Token, Value) \ | ||
| 16432 | -do \ | ||
| 16433 | - if (yychar == YYEMPTY && yylen == 1) \ | ||
| 16434 | - { \ | ||
| 16435 | - yychar = (Token); \ | ||
| 16436 | - yylval = (Value); \ | ||
| 16437 | - yytoken = YYTRANSLATE (yychar); \ | ||
| 16438 | - YYPOPSTACK (1); \ | ||
| 16439 | - goto yybackup; \ | ||
| 16440 | - } \ | ||
| 16441 | - else \ | ||
| 16442 | - { \ | ||
| 16443 | +#define YYBACKUP(Token, Value) \ | ||
| 16444 | +do \ | ||
| 16445 | + if (yychar == YYEMPTY) \ | ||
| 16446 | + { \ | ||
| 16447 | + yychar = (Token); \ | ||
| 16448 | + yylval = (Value); \ | ||
| 16449 | + YYPOPSTACK (yylen); \ | ||
| 16450 | + yystate = *yyssp; \ | ||
| 16451 | + goto yybackup; \ | ||
| 16452 | + } \ | ||
| 16453 | + else \ | ||
| 16454 | + { \ | ||
| 16455 | yyerror (YY_("syntax error: cannot back up")); \ | ||
| 16456 | - YYERROR; \ | ||
| 16457 | - } \ | ||
| 16458 | -while (YYID (0)) | ||
| 16459 | - | ||
| 16460 | - | ||
| 16461 | -#define YYTERROR 1 | ||
| 16462 | -#define YYERRCODE 256 | ||
| 16463 | - | ||
| 16464 | - | ||
| 16465 | -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. | ||
| 16466 | - If N is 0, then set CURRENT to the empty location which ends | ||
| 16467 | - the previous symbol: RHS[0] (always defined). */ | ||
| 16468 | - | ||
| 16469 | -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) | ||
| 16470 | -#ifndef YYLLOC_DEFAULT | ||
| 16471 | -# define YYLLOC_DEFAULT(Current, Rhs, N) \ | ||
| 16472 | - do \ | ||
| 16473 | - if (YYID (N)) \ | ||
| 16474 | - { \ | ||
| 16475 | - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ | ||
| 16476 | - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ | ||
| 16477 | - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ | ||
| 16478 | - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ | ||
| 16479 | - } \ | ||
| 16480 | - else \ | ||
| 16481 | - { \ | ||
| 16482 | - (Current).first_line = (Current).last_line = \ | ||
| 16483 | - YYRHSLOC (Rhs, 0).last_line; \ | ||
| 16484 | - (Current).first_column = (Current).last_column = \ | ||
| 16485 | - YYRHSLOC (Rhs, 0).last_column; \ | ||
| 16486 | - } \ | ||
| 16487 | - while (YYID (0)) | ||
| 16488 | -#endif | ||
| 16489 | - | ||
| 16490 | - | ||
| 16491 | -/* YY_LOCATION_PRINT -- Print the location on the stream. | ||
| 16492 | - This macro was not mandated originally: define only if we know | ||
| 16493 | - we won't break user code: when these are the locations we know. */ | ||
| 16494 | - | ||
| 16495 | -#ifndef YY_LOCATION_PRINT | ||
| 16496 | -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL | ||
| 16497 | -# define YY_LOCATION_PRINT(File, Loc) \ | ||
| 16498 | - fprintf (File, "%d.%d-%d.%d", \ | ||
| 16499 | - (Loc).first_line, (Loc).first_column, \ | ||
| 16500 | - (Loc).last_line, (Loc).last_column) | ||
| 16501 | -# else | ||
| 16502 | -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) | ||
| 16503 | -# endif | ||
| 16504 | -#endif | ||
| 16505 | + YYERROR; \ | ||
| 16506 | + } \ | ||
| 16507 | +while (0) | ||
| 16508 | |||
| 16509 | +/* Error token number */ | ||
| 16510 | +#define YYTERROR 1 | ||
| 16511 | +#define YYERRCODE 256 | ||
| 16512 | |||
| 16513 | -/* YYLEX -- calling `yylex' with the right arguments. */ | ||
| 16514 | |||
| 16515 | -#ifdef YYLEX_PARAM | ||
| 16516 | -# define YYLEX yylex (YYLEX_PARAM) | ||
| 16517 | -#else | ||
| 16518 | -# define YYLEX yylex () | ||
| 16519 | -#endif | ||
| 16520 | |||
| 16521 | /* Enable debugging if requested. */ | ||
| 16522 | #if YYDEBUG | ||
| 16523 | @@ -2317,54 +2070,46 @@ | ||
| 16524 | # define YYFPRINTF fprintf | ||
| 16525 | # endif | ||
| 16526 | |||
| 16527 | -# define YYDPRINTF(Args) \ | ||
| 16528 | -do { \ | ||
| 16529 | - if (yydebug) \ | ||
| 16530 | - YYFPRINTF Args; \ | ||
| 16531 | -} while (YYID (0)) | ||
| 16532 | +# define YYDPRINTF(Args) \ | ||
| 16533 | +do { \ | ||
| 16534 | + if (yydebug) \ | ||
| 16535 | + YYFPRINTF Args; \ | ||
| 16536 | +} while (0) | ||
| 16537 | |||
| 16538 | -# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ | ||
| 16539 | -do { \ | ||
| 16540 | - if (yydebug) \ | ||
| 16541 | - { \ | ||
| 16542 | - YYFPRINTF (stderr, "%s ", Title); \ | ||
| 16543 | - yy_symbol_print (stderr, \ | ||
| 16544 | - Type, Value); \ | ||
| 16545 | - YYFPRINTF (stderr, "\n"); \ | ||
| 16546 | - } \ | ||
| 16547 | -} while (YYID (0)) | ||
| 16548 | +/* This macro is provided for backward compatibility. */ | ||
| 16549 | +#ifndef YY_LOCATION_PRINT | ||
| 16550 | +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) | ||
| 16551 | +#endif | ||
| 16552 | |||
| 16553 | |||
| 16554 | -/*--------------------------------. | ||
| 16555 | -| Print this symbol on YYOUTPUT. | | ||
| 16556 | -`--------------------------------*/ | ||
| 16557 | +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ | ||
| 16558 | +do { \ | ||
| 16559 | + if (yydebug) \ | ||
| 16560 | + { \ | ||
| 16561 | + YYFPRINTF (stderr, "%s ", Title); \ | ||
| 16562 | + yy_symbol_print (stderr, \ | ||
| 16563 | + Type, Value); \ | ||
| 16564 | + YYFPRINTF (stderr, "\n"); \ | ||
| 16565 | + } \ | ||
| 16566 | +} while (0) | ||
| 16567 | + | ||
| 16568 | + | ||
| 16569 | +/*----------------------------------------. | ||
| 16570 | +| Print this symbol's value on YYOUTPUT. | | ||
| 16571 | +`----------------------------------------*/ | ||
| 16572 | |||
| 16573 | -/*ARGSUSED*/ | ||
| 16574 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16575 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16576 | static void | ||
| 16577 | yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) | ||
| 16578 | -#else | ||
| 16579 | -static void | ||
| 16580 | -yy_symbol_value_print (yyoutput, yytype, yyvaluep) | ||
| 16581 | - FILE *yyoutput; | ||
| 16582 | - int yytype; | ||
| 16583 | - YYSTYPE const * const yyvaluep; | ||
| 16584 | -#endif | ||
| 16585 | { | ||
| 16586 | + FILE *yyo = yyoutput; | ||
| 16587 | + YYUSE (yyo); | ||
| 16588 | if (!yyvaluep) | ||
| 16589 | return; | ||
| 16590 | # ifdef YYPRINT | ||
| 16591 | if (yytype < YYNTOKENS) | ||
| 16592 | YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); | ||
| 16593 | -# else | ||
| 16594 | - YYUSE (yyoutput); | ||
| 16595 | # endif | ||
| 16596 | - switch (yytype) | ||
| 16597 | - { | ||
| 16598 | - default: | ||
| 16599 | - break; | ||
| 16600 | - } | ||
| 16601 | + YYUSE (yytype); | ||
| 16602 | } | ||
| 16603 | |||
| 16604 | |||
| 16605 | @@ -2372,22 +2117,11 @@ | ||
| 16606 | | Print this symbol on YYOUTPUT. | | ||
| 16607 | `--------------------------------*/ | ||
| 16608 | |||
| 16609 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16610 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16611 | static void | ||
| 16612 | yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) | ||
| 16613 | -#else | ||
| 16614 | -static void | ||
| 16615 | -yy_symbol_print (yyoutput, yytype, yyvaluep) | ||
| 16616 | - FILE *yyoutput; | ||
| 16617 | - int yytype; | ||
| 16618 | - YYSTYPE const * const yyvaluep; | ||
| 16619 | -#endif | ||
| 16620 | { | ||
| 16621 | - if (yytype < YYNTOKENS) | ||
| 16622 | - YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); | ||
| 16623 | - else | ||
| 16624 | - YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); | ||
| 16625 | + YYFPRINTF (yyoutput, "%s %s (", | ||
| 16626 | + yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); | ||
| 16627 | |||
| 16628 | yy_symbol_value_print (yyoutput, yytype, yyvaluep); | ||
| 16629 | YYFPRINTF (yyoutput, ")"); | ||
| 16630 | @@ -2398,66 +2132,54 @@ | ||
| 16631 | | TOP (included). | | ||
| 16632 | `------------------------------------------------------------------*/ | ||
| 16633 | |||
| 16634 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16635 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16636 | -static void | ||
| 16637 | -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top) | ||
| 16638 | -#else | ||
| 16639 | static void | ||
| 16640 | -yy_stack_print (bottom, top) | ||
| 16641 | - yytype_int16 *bottom; | ||
| 16642 | - yytype_int16 *top; | ||
| 16643 | -#endif | ||
| 16644 | +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) | ||
| 16645 | { | ||
| 16646 | YYFPRINTF (stderr, "Stack now"); | ||
| 16647 | - for (; bottom <= top; ++bottom) | ||
| 16648 | - YYFPRINTF (stderr, " %d", *bottom); | ||
| 16649 | + for (; yybottom <= yytop; yybottom++) | ||
| 16650 | + { | ||
| 16651 | + int yybot = *yybottom; | ||
| 16652 | + YYFPRINTF (stderr, " %d", yybot); | ||
| 16653 | + } | ||
| 16654 | YYFPRINTF (stderr, "\n"); | ||
| 16655 | } | ||
| 16656 | |||
| 16657 | -# define YY_STACK_PRINT(Bottom, Top) \ | ||
| 16658 | -do { \ | ||
| 16659 | - if (yydebug) \ | ||
| 16660 | - yy_stack_print ((Bottom), (Top)); \ | ||
| 16661 | -} while (YYID (0)) | ||
| 16662 | +# define YY_STACK_PRINT(Bottom, Top) \ | ||
| 16663 | +do { \ | ||
| 16664 | + if (yydebug) \ | ||
| 16665 | + yy_stack_print ((Bottom), (Top)); \ | ||
| 16666 | +} while (0) | ||
| 16667 | |||
| 16668 | |||
| 16669 | /*------------------------------------------------. | ||
| 16670 | | Report that the YYRULE is going to be reduced. | | ||
| 16671 | `------------------------------------------------*/ | ||
| 16672 | |||
| 16673 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16674 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16675 | static void | ||
| 16676 | -yy_reduce_print (YYSTYPE *yyvsp, int yyrule) | ||
| 16677 | -#else | ||
| 16678 | -static void | ||
| 16679 | -yy_reduce_print (yyvsp, yyrule) | ||
| 16680 | - YYSTYPE *yyvsp; | ||
| 16681 | - int yyrule; | ||
| 16682 | -#endif | ||
| 16683 | +yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) | ||
| 16684 | { | ||
| 16685 | + unsigned long int yylno = yyrline[yyrule]; | ||
| 16686 | int yynrhs = yyr2[yyrule]; | ||
| 16687 | int yyi; | ||
| 16688 | - unsigned long int yylno = yyrline[yyrule]; | ||
| 16689 | YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", | ||
| 16690 | - yyrule - 1, yylno); | ||
| 16691 | + yyrule - 1, yylno); | ||
| 16692 | /* The symbols being reduced. */ | ||
| 16693 | for (yyi = 0; yyi < yynrhs; yyi++) | ||
| 16694 | { | ||
| 16695 | - fprintf (stderr, " $%d = ", yyi + 1); | ||
| 16696 | - yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi], | ||
| 16697 | - &(yyvsp[(yyi + 1) - (yynrhs)]) | ||
| 16698 | - ); | ||
| 16699 | - fprintf (stderr, "\n"); | ||
| 16700 | + YYFPRINTF (stderr, " $%d = ", yyi + 1); | ||
| 16701 | + yy_symbol_print (stderr, | ||
| 16702 | + yystos[yyssp[yyi + 1 - yynrhs]], | ||
| 16703 | + &(yyvsp[(yyi + 1) - (yynrhs)]) | ||
| 16704 | + ); | ||
| 16705 | + YYFPRINTF (stderr, "\n"); | ||
| 16706 | } | ||
| 16707 | } | ||
| 16708 | |||
| 16709 | -# define YY_REDUCE_PRINT(Rule) \ | ||
| 16710 | -do { \ | ||
| 16711 | - if (yydebug) \ | ||
| 16712 | - yy_reduce_print (yyvsp, Rule); \ | ||
| 16713 | -} while (YYID (0)) | ||
| 16714 | +# define YY_REDUCE_PRINT(Rule) \ | ||
| 16715 | +do { \ | ||
| 16716 | + if (yydebug) \ | ||
| 16717 | + yy_reduce_print (yyssp, yyvsp, Rule); \ | ||
| 16718 | +} while (0) | ||
| 16719 | |||
| 16720 | /* Nonzero means print parse trace. It is left uninitialized so that | ||
| 16721 | multiple parsers can coexist. */ | ||
| 16722 | @@ -2471,7 +2193,7 @@ | ||
| 16723 | |||
| 16724 | |||
| 16725 | /* YYINITDEPTH -- initial size of the parser's stacks. */ | ||
| 16726 | -#ifndef YYINITDEPTH | ||
| 16727 | +#ifndef YYINITDEPTH | ||
| 16728 | # define YYINITDEPTH 200 | ||
| 16729 | #endif | ||
| 16730 | |||
| 16731 | @@ -2486,7 +2208,6 @@ | ||
| 16732 | # define YYMAXDEPTH 10000 | ||
| 16733 | #endif | ||
| 16734 | |||
| 16735 | - | ||
| 16736 | |||
| 16737 | #if YYERROR_VERBOSE | ||
| 16738 | |||
| 16739 | @@ -2495,15 +2216,8 @@ | ||
| 16740 | # define yystrlen strlen | ||
| 16741 | # else | ||
| 16742 | /* Return the length of YYSTR. */ | ||
| 16743 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16744 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16745 | static YYSIZE_T | ||
| 16746 | yystrlen (const char *yystr) | ||
| 16747 | -#else | ||
| 16748 | -static YYSIZE_T | ||
| 16749 | -yystrlen (yystr) | ||
| 16750 | - const char *yystr; | ||
| 16751 | -#endif | ||
| 16752 | { | ||
| 16753 | YYSIZE_T yylen; | ||
| 16754 | for (yylen = 0; yystr[yylen]; yylen++) | ||
| 16755 | @@ -2519,16 +2233,8 @@ | ||
| 16756 | # else | ||
| 16757 | /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in | ||
| 16758 | YYDEST. */ | ||
| 16759 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 16760 | - || defined __cplusplus || defined _MSC_VER) | ||
| 16761 | static char * | ||
| 16762 | yystpcpy (char *yydest, const char *yysrc) | ||
| 16763 | -#else | ||
| 16764 | -static char * | ||
| 16765 | -yystpcpy (yydest, yysrc) | ||
| 16766 | - char *yydest; | ||
| 16767 | - const char *yysrc; | ||
| 16768 | -#endif | ||
| 16769 | { | ||
| 16770 | char *yyd = yydest; | ||
| 16771 | const char *yys = yysrc; | ||
| 16772 | @@ -2558,27 +2264,27 @@ | ||
| 16773 | char const *yyp = yystr; | ||
| 16774 | |||
| 16775 | for (;;) | ||
| 16776 | - switch (*++yyp) | ||
| 16777 | - { | ||
| 16778 | - case '\'': | ||
| 16779 | - case ',': | ||
| 16780 | - goto do_not_strip_quotes; | ||
| 16781 | + switch (*++yyp) | ||
| 16782 | + { | ||
| 16783 | + case '\'': | ||
| 16784 | + case ',': | ||
| 16785 | + goto do_not_strip_quotes; | ||
| 16786 | |||
| 16787 | - case '\\': | ||
| 16788 | - if (*++yyp != '\\') | ||
| 16789 | - goto do_not_strip_quotes; | ||
| 16790 | - /* Fall through. */ | ||
| 16791 | - default: | ||
| 16792 | - if (yyres) | ||
| 16793 | - yyres[yyn] = *yyp; | ||
| 16794 | - yyn++; | ||
| 16795 | - break; | ||
| 16796 | + case '\\': | ||
| 16797 | + if (*++yyp != '\\') | ||
| 16798 | + goto do_not_strip_quotes; | ||
| 16799 | + /* Fall through. */ | ||
| 16800 | + default: | ||
| 16801 | + if (yyres) | ||
| 16802 | + yyres[yyn] = *yyp; | ||
| 16803 | + yyn++; | ||
| 16804 | + break; | ||
| 16805 | |||
| 16806 | - case '"': | ||
| 16807 | - if (yyres) | ||
| 16808 | - yyres[yyn] = '\0'; | ||
| 16809 | - return yyn; | ||
| 16810 | - } | ||
| 16811 | + case '"': | ||
| 16812 | + if (yyres) | ||
| 16813 | + yyres[yyn] = '\0'; | ||
| 16814 | + return yyn; | ||
| 16815 | + } | ||
| 16816 | do_not_strip_quotes: ; | ||
| 16817 | } | ||
| 16818 | |||
| 16819 | @@ -2589,211 +2295,209 @@ | ||
| 16820 | } | ||
| 16821 | # endif | ||
| 16822 | |||
| 16823 | -/* Copy into YYRESULT an error message about the unexpected token | ||
| 16824 | - YYCHAR while in state YYSTATE. Return the number of bytes copied, | ||
| 16825 | - including the terminating null byte. If YYRESULT is null, do not | ||
| 16826 | - copy anything; just return the number of bytes that would be | ||
| 16827 | - copied. As a special case, return 0 if an ordinary "syntax error" | ||
| 16828 | - message will do. Return YYSIZE_MAXIMUM if overflow occurs during | ||
| 16829 | - size calculation. */ | ||
| 16830 | -static YYSIZE_T | ||
| 16831 | -yysyntax_error (char *yyresult, int yystate, int yychar) | ||
| 16832 | +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message | ||
| 16833 | + about the unexpected token YYTOKEN for the state stack whose top is | ||
| 16834 | + YYSSP. | ||
| 16835 | + | ||
| 16836 | + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is | ||
| 16837 | + not large enough to hold the message. In that case, also set | ||
| 16838 | + *YYMSG_ALLOC to the required number of bytes. Return 2 if the | ||
| 16839 | + required number of bytes is too large to store. */ | ||
| 16840 | +static int | ||
| 16841 | +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, | ||
| 16842 | + yytype_int16 *yyssp, int yytoken) | ||
| 16843 | { | ||
| 16844 | - int yyn = yypact[yystate]; | ||
| 16845 | + YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); | ||
| 16846 | + YYSIZE_T yysize = yysize0; | ||
| 16847 | + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; | ||
| 16848 | + /* Internationalized format string. */ | ||
| 16849 | + const char *yyformat = YY_NULLPTR; | ||
| 16850 | + /* Arguments of yyformat. */ | ||
| 16851 | + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; | ||
| 16852 | + /* Number of reported tokens (one for the "unexpected", one per | ||
| 16853 | + "expected"). */ | ||
| 16854 | + int yycount = 0; | ||
| 16855 | |||
| 16856 | - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) | ||
| 16857 | - return 0; | ||
| 16858 | - else | ||
| 16859 | + /* There are many possibilities here to consider: | ||
| 16860 | + - If this state is a consistent state with a default action, then | ||
| 16861 | + the only way this function was invoked is if the default action | ||
| 16862 | + is an error action. In that case, don't check for expected | ||
| 16863 | + tokens because there are none. | ||
| 16864 | + - The only way there can be no lookahead present (in yychar) is if | ||
| 16865 | + this state is a consistent state with a default action. Thus, | ||
| 16866 | + detecting the absence of a lookahead is sufficient to determine | ||
| 16867 | + that there is no unexpected or expected token to report. In that | ||
| 16868 | + case, just report a simple "syntax error". | ||
| 16869 | + - Don't assume there isn't a lookahead just because this state is a | ||
| 16870 | + consistent state with a default action. There might have been a | ||
| 16871 | + previous inconsistent state, consistent state with a non-default | ||
| 16872 | + action, or user semantic action that manipulated yychar. | ||
| 16873 | + - Of course, the expected token list depends on states to have | ||
| 16874 | + correct lookahead information, and it depends on the parser not | ||
| 16875 | + to perform extra reductions after fetching a lookahead from the | ||
| 16876 | + scanner and before detecting a syntax error. Thus, state merging | ||
| 16877 | + (from LALR or IELR) and default reductions corrupt the expected | ||
| 16878 | + token list. However, the list is correct for canonical LR with | ||
| 16879 | + one exception: it will still contain any token that will not be | ||
| 16880 | + accepted due to an error action in a later state. | ||
| 16881 | + */ | ||
| 16882 | + if (yytoken != YYEMPTY) | ||
| 16883 | { | ||
| 16884 | - int yytype = YYTRANSLATE (yychar); | ||
| 16885 | - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); | ||
| 16886 | - YYSIZE_T yysize = yysize0; | ||
| 16887 | - YYSIZE_T yysize1; | ||
| 16888 | - int yysize_overflow = 0; | ||
| 16889 | - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; | ||
| 16890 | - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; | ||
| 16891 | - int yyx; | ||
| 16892 | - | ||
| 16893 | -# if 0 | ||
| 16894 | - /* This is so xgettext sees the translatable formats that are | ||
| 16895 | - constructed on the fly. */ | ||
| 16896 | - YY_("syntax error, unexpected %s"); | ||
| 16897 | - YY_("syntax error, unexpected %s, expecting %s"); | ||
| 16898 | - YY_("syntax error, unexpected %s, expecting %s or %s"); | ||
| 16899 | - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); | ||
| 16900 | - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); | ||
| 16901 | -# endif | ||
| 16902 | - char *yyfmt; | ||
| 16903 | - char const *yyf; | ||
| 16904 | - static char const yyunexpected[] = "syntax error, unexpected %s"; | ||
| 16905 | - static char const yyexpecting[] = ", expecting %s"; | ||
| 16906 | - static char const yyor[] = " or %s"; | ||
| 16907 | - char yyformat[sizeof yyunexpected | ||
| 16908 | - + sizeof yyexpecting - 1 | ||
| 16909 | - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) | ||
| 16910 | - * (sizeof yyor - 1))]; | ||
| 16911 | - char const *yyprefix = yyexpecting; | ||
| 16912 | - | ||
| 16913 | - /* Start YYX at -YYN if negative to avoid negative indexes in | ||
| 16914 | - YYCHECK. */ | ||
| 16915 | - int yyxbegin = yyn < 0 ? -yyn : 0; | ||
| 16916 | - | ||
| 16917 | - /* Stay within bounds of both yycheck and yytname. */ | ||
| 16918 | - int yychecklim = YYLAST - yyn + 1; | ||
| 16919 | - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; | ||
| 16920 | - int yycount = 1; | ||
| 16921 | - | ||
| 16922 | - yyarg[0] = yytname[yytype]; | ||
| 16923 | - yyfmt = yystpcpy (yyformat, yyunexpected); | ||
| 16924 | + int yyn = yypact[*yyssp]; | ||
| 16925 | + yyarg[yycount++] = yytname[yytoken]; | ||
| 16926 | + if (!yypact_value_is_default (yyn)) | ||
| 16927 | + { | ||
| 16928 | + /* Start YYX at -YYN if negative to avoid negative indexes in | ||
| 16929 | + YYCHECK. In other words, skip the first -YYN actions for | ||
| 16930 | + this state because they are default actions. */ | ||
| 16931 | + int yyxbegin = yyn < 0 ? -yyn : 0; | ||
| 16932 | + /* Stay within bounds of both yycheck and yytname. */ | ||
| 16933 | + int yychecklim = YYLAST - yyn + 1; | ||
| 16934 | + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; | ||
| 16935 | + int yyx; | ||
| 16936 | |||
| 16937 | - for (yyx = yyxbegin; yyx < yyxend; ++yyx) | ||
| 16938 | - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) | ||
| 16939 | - { | ||
| 16940 | - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) | ||
| 16941 | - { | ||
| 16942 | - yycount = 1; | ||
| 16943 | - yysize = yysize0; | ||
| 16944 | - yyformat[sizeof yyunexpected - 1] = '\0'; | ||
| 16945 | - break; | ||
| 16946 | - } | ||
| 16947 | - yyarg[yycount++] = yytname[yyx]; | ||
| 16948 | - yysize1 = yysize + yytnamerr (0, yytname[yyx]); | ||
| 16949 | - yysize_overflow |= (yysize1 < yysize); | ||
| 16950 | - yysize = yysize1; | ||
| 16951 | - yyfmt = yystpcpy (yyfmt, yyprefix); | ||
| 16952 | - yyprefix = yyor; | ||
| 16953 | - } | ||
| 16954 | + for (yyx = yyxbegin; yyx < yyxend; ++yyx) | ||
| 16955 | + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR | ||
| 16956 | + && !yytable_value_is_error (yytable[yyx + yyn])) | ||
| 16957 | + { | ||
| 16958 | + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) | ||
| 16959 | + { | ||
| 16960 | + yycount = 1; | ||
| 16961 | + yysize = yysize0; | ||
| 16962 | + break; | ||
| 16963 | + } | ||
| 16964 | + yyarg[yycount++] = yytname[yyx]; | ||
| 16965 | + { | ||
| 16966 | + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); | ||
| 16967 | + if (! (yysize <= yysize1 | ||
| 16968 | + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | ||
| 16969 | + return 2; | ||
| 16970 | + yysize = yysize1; | ||
| 16971 | + } | ||
| 16972 | + } | ||
| 16973 | + } | ||
| 16974 | + } | ||
| 16975 | |||
| 16976 | - yyf = YY_(yyformat); | ||
| 16977 | - yysize1 = yysize + yystrlen (yyf); | ||
| 16978 | - yysize_overflow |= (yysize1 < yysize); | ||
| 16979 | - yysize = yysize1; | ||
| 16980 | + switch (yycount) | ||
| 16981 | + { | ||
| 16982 | +# define YYCASE_(N, S) \ | ||
| 16983 | + case N: \ | ||
| 16984 | + yyformat = S; \ | ||
| 16985 | + break | ||
| 16986 | + YYCASE_(0, YY_("syntax error")); | ||
| 16987 | + YYCASE_(1, YY_("syntax error, unexpected %s")); | ||
| 16988 | + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); | ||
| 16989 | + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); | ||
| 16990 | + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); | ||
| 16991 | + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); | ||
| 16992 | +# undef YYCASE_ | ||
| 16993 | + } | ||
| 16994 | |||
| 16995 | - if (yysize_overflow) | ||
| 16996 | - return YYSIZE_MAXIMUM; | ||
| 16997 | + { | ||
| 16998 | + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); | ||
| 16999 | + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) | ||
| 17000 | + return 2; | ||
| 17001 | + yysize = yysize1; | ||
| 17002 | + } | ||
| 17003 | |||
| 17004 | - if (yyresult) | ||
| 17005 | - { | ||
| 17006 | - /* Avoid sprintf, as that infringes on the user's name space. | ||
| 17007 | - Don't have undefined behavior even if the translation | ||
| 17008 | - produced a string with the wrong number of "%s"s. */ | ||
| 17009 | - char *yyp = yyresult; | ||
| 17010 | - int yyi = 0; | ||
| 17011 | - while ((*yyp = *yyf) != '\0') | ||
| 17012 | - { | ||
| 17013 | - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) | ||
| 17014 | - { | ||
| 17015 | - yyp += yytnamerr (yyp, yyarg[yyi++]); | ||
| 17016 | - yyf += 2; | ||
| 17017 | - } | ||
| 17018 | - else | ||
| 17019 | - { | ||
| 17020 | - yyp++; | ||
| 17021 | - yyf++; | ||
| 17022 | - } | ||
| 17023 | - } | ||
| 17024 | - } | ||
| 17025 | - return yysize; | ||
| 17026 | + if (*yymsg_alloc < yysize) | ||
| 17027 | + { | ||
| 17028 | + *yymsg_alloc = 2 * yysize; | ||
| 17029 | + if (! (yysize <= *yymsg_alloc | ||
| 17030 | + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) | ||
| 17031 | + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; | ||
| 17032 | + return 1; | ||
| 17033 | } | ||
| 17034 | + | ||
| 17035 | + /* Avoid sprintf, as that infringes on the user's name space. | ||
| 17036 | + Don't have undefined behavior even if the translation | ||
| 17037 | + produced a string with the wrong number of "%s"s. */ | ||
| 17038 | + { | ||
| 17039 | + char *yyp = *yymsg; | ||
| 17040 | + int yyi = 0; | ||
| 17041 | + while ((*yyp = *yyformat) != '\0') | ||
| 17042 | + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) | ||
| 17043 | + { | ||
| 17044 | + yyp += yytnamerr (yyp, yyarg[yyi++]); | ||
| 17045 | + yyformat += 2; | ||
| 17046 | + } | ||
| 17047 | + else | ||
| 17048 | + { | ||
| 17049 | + yyp++; | ||
| 17050 | + yyformat++; | ||
| 17051 | + } | ||
| 17052 | + } | ||
| 17053 | + return 0; | ||
| 17054 | } | ||
| 17055 | #endif /* YYERROR_VERBOSE */ | ||
| 17056 | - | ||
| 17057 | |||
| 17058 | /*-----------------------------------------------. | ||
| 17059 | | Release the memory associated to this symbol. | | ||
| 17060 | `-----------------------------------------------*/ | ||
| 17061 | |||
| 17062 | -/*ARGSUSED*/ | ||
| 17063 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 17064 | - || defined __cplusplus || defined _MSC_VER) | ||
| 17065 | static void | ||
| 17066 | yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep) | ||
| 17067 | -#else | ||
| 17068 | -static void | ||
| 17069 | -yydestruct (yymsg, yytype, yyvaluep) | ||
| 17070 | - const char *yymsg; | ||
| 17071 | - int yytype; | ||
| 17072 | - YYSTYPE *yyvaluep; | ||
| 17073 | -#endif | ||
| 17074 | { | ||
| 17075 | YYUSE (yyvaluep); | ||
| 17076 | - | ||
| 17077 | if (!yymsg) | ||
| 17078 | yymsg = "Deleting"; | ||
| 17079 | YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); | ||
| 17080 | |||
| 17081 | - switch (yytype) | ||
| 17082 | - { | ||
| 17083 | - | ||
| 17084 | - default: | ||
| 17085 | - break; | ||
| 17086 | - } | ||
| 17087 | + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | ||
| 17088 | + YYUSE (yytype); | ||
| 17089 | + YY_IGNORE_MAYBE_UNINITIALIZED_END | ||
| 17090 | } | ||
| 17091 | - | ||
| 17092 | - | ||
| 17093 | -/* Prevent warnings from -Wmissing-prototypes. */ | ||
| 17094 | |||
| 17095 | -#ifdef YYPARSE_PARAM | ||
| 17096 | -#if defined __STDC__ || defined __cplusplus | ||
| 17097 | -int yyparse (void *YYPARSE_PARAM); | ||
| 17098 | -#else | ||
| 17099 | -int yyparse (); | ||
| 17100 | -#endif | ||
| 17101 | -#else /* ! YYPARSE_PARAM */ | ||
| 17102 | -#if defined __STDC__ || defined __cplusplus | ||
| 17103 | -int yyparse (void); | ||
| 17104 | -#else | ||
| 17105 | -int yyparse (); | ||
| 17106 | -#endif | ||
| 17107 | -#endif /* ! YYPARSE_PARAM */ | ||
| 17108 | |||
| 17109 | |||
| 17110 | |||
| 17111 | -/* The look-ahead symbol. */ | ||
| 17112 | +/* The lookahead symbol. */ | ||
| 17113 | int yychar; | ||
| 17114 | |||
| 17115 | -/* The semantic value of the look-ahead symbol. */ | ||
| 17116 | +/* The semantic value of the lookahead symbol. */ | ||
| 17117 | YYSTYPE yylval; | ||
| 17118 | - | ||
| 17119 | /* Number of syntax errors so far. */ | ||
| 17120 | int yynerrs; | ||
| 17121 | |||
| 17122 | |||
| 17123 | - | ||
| 17124 | /*----------. | ||
| 17125 | | yyparse. | | ||
| 17126 | `----------*/ | ||
| 17127 | |||
| 17128 | -#ifdef YYPARSE_PARAM | ||
| 17129 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 17130 | - || defined __cplusplus || defined _MSC_VER) | ||
| 17131 | -int | ||
| 17132 | -yyparse (void *YYPARSE_PARAM) | ||
| 17133 | -#else | ||
| 17134 | -int | ||
| 17135 | -yyparse (YYPARSE_PARAM) | ||
| 17136 | - void *YYPARSE_PARAM; | ||
| 17137 | -#endif | ||
| 17138 | -#else /* ! YYPARSE_PARAM */ | ||
| 17139 | -#if (defined __STDC__ || defined __C99__FUNC__ \ | ||
| 17140 | - || defined __cplusplus || defined _MSC_VER) | ||
| 17141 | int | ||
| 17142 | yyparse (void) | ||
| 17143 | -#else | ||
| 17144 | -int | ||
| 17145 | -yyparse () | ||
| 17146 | - | ||
| 17147 | -#endif | ||
| 17148 | -#endif | ||
| 17149 | { | ||
| 17150 | - | ||
| 17151 | - int yystate; | ||
| 17152 | + int yystate; | ||
| 17153 | + /* Number of tokens to shift before error messages enabled. */ | ||
| 17154 | + int yyerrstatus; | ||
| 17155 | + | ||
| 17156 | + /* The stacks and their tools: | ||
| 17157 | + 'yyss': related to states. | ||
| 17158 | + 'yyvs': related to semantic values. | ||
| 17159 | + | ||
| 17160 | + Refer to the stacks through separate pointers, to allow yyoverflow | ||
| 17161 | + to reallocate them elsewhere. */ | ||
| 17162 | + | ||
| 17163 | + /* The state stack. */ | ||
| 17164 | + yytype_int16 yyssa[YYINITDEPTH]; | ||
| 17165 | + yytype_int16 *yyss; | ||
| 17166 | + yytype_int16 *yyssp; | ||
| 17167 | + | ||
| 17168 | + /* The semantic value stack. */ | ||
| 17169 | + YYSTYPE yyvsa[YYINITDEPTH]; | ||
| 17170 | + YYSTYPE *yyvs; | ||
| 17171 | + YYSTYPE *yyvsp; | ||
| 17172 | + | ||
| 17173 | + YYSIZE_T yystacksize; | ||
| 17174 | + | ||
| 17175 | int yyn; | ||
| 17176 | int yyresult; | ||
| 17177 | - /* Number of tokens to shift before error messages enabled. */ | ||
| 17178 | - int yyerrstatus; | ||
| 17179 | - /* Look-ahead token as an internal (translated) token number. */ | ||
| 17180 | + /* Lookahead token as an internal (translated) token number. */ | ||
| 17181 | int yytoken = 0; | ||
| 17182 | + /* The variables used to return semantic value and location from the | ||
| 17183 | + action routines. */ | ||
| 17184 | + YYSTYPE yyval; | ||
| 17185 | + | ||
| 17186 | #if YYERROR_VERBOSE | ||
| 17187 | /* Buffer for error messages, and its allocated size. */ | ||
| 17188 | char yymsgbuf[128]; | ||
| 17189 | @@ -2801,54 +2505,22 @@ | ||
| 17190 | YYSIZE_T yymsg_alloc = sizeof yymsgbuf; | ||
| 17191 | #endif | ||
| 17192 | |||
| 17193 | - /* Three stacks and their tools: | ||
| 17194 | - `yyss': related to states, | ||
| 17195 | - `yyvs': related to semantic values, | ||
| 17196 | - `yyls': related to locations. | ||
| 17197 | - | ||
| 17198 | - Refer to the stacks thru separate pointers, to allow yyoverflow | ||
| 17199 | - to reallocate them elsewhere. */ | ||
| 17200 | - | ||
| 17201 | - /* The state stack. */ | ||
| 17202 | - yytype_int16 yyssa[YYINITDEPTH]; | ||
| 17203 | - yytype_int16 *yyss = yyssa; | ||
| 17204 | - yytype_int16 *yyssp; | ||
| 17205 | - | ||
| 17206 | - /* The semantic value stack. */ | ||
| 17207 | - YYSTYPE yyvsa[YYINITDEPTH]; | ||
| 17208 | - YYSTYPE *yyvs = yyvsa; | ||
| 17209 | - YYSTYPE *yyvsp; | ||
| 17210 | - | ||
| 17211 | - | ||
| 17212 | - | ||
| 17213 | #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) | ||
| 17214 | |||
| 17215 | - YYSIZE_T yystacksize = YYINITDEPTH; | ||
| 17216 | - | ||
| 17217 | - /* The variables used to return semantic value and location from the | ||
| 17218 | - action routines. */ | ||
| 17219 | - YYSTYPE yyval; | ||
| 17220 | - | ||
| 17221 | - | ||
| 17222 | /* The number of symbols on the RHS of the reduced rule. | ||
| 17223 | Keep to zero when no symbol should be popped. */ | ||
| 17224 | int yylen = 0; | ||
| 17225 | |||
| 17226 | + yyssp = yyss = yyssa; | ||
| 17227 | + yyvsp = yyvs = yyvsa; | ||
| 17228 | + yystacksize = YYINITDEPTH; | ||
| 17229 | + | ||
| 17230 | YYDPRINTF ((stderr, "Starting parse\n")); | ||
| 17231 | |||
| 17232 | yystate = 0; | ||
| 17233 | yyerrstatus = 0; | ||
| 17234 | yynerrs = 0; | ||
| 17235 | - yychar = YYEMPTY; /* Cause a token to be read. */ | ||
| 17236 | - | ||
| 17237 | - /* Initialize stack pointers. | ||
| 17238 | - Waste one element of value and location stack | ||
| 17239 | - so that they stay on the same level as the state stack. | ||
| 17240 | - The wasted elements are never initialized. */ | ||
| 17241 | - | ||
| 17242 | - yyssp = yyss; | ||
| 17243 | - yyvsp = yyvs; | ||
| 17244 | - | ||
| 17245 | + yychar = YYEMPTY; /* Cause a token to be read. */ | ||
| 17246 | goto yysetstate; | ||
| 17247 | |||
| 17248 | /*------------------------------------------------------------. | ||
| 17249 | @@ -2869,25 +2541,23 @@ | ||
| 17250 | |||
| 17251 | #ifdef yyoverflow | ||
| 17252 | { | ||
| 17253 | - /* Give user a chance to reallocate the stack. Use copies of | ||
| 17254 | - these so that the &'s don't force the real ones into | ||
| 17255 | - memory. */ | ||
| 17256 | - YYSTYPE *yyvs1 = yyvs; | ||
| 17257 | - yytype_int16 *yyss1 = yyss; | ||
| 17258 | - | ||
| 17259 | - | ||
| 17260 | - /* Each stack pointer address is followed by the size of the | ||
| 17261 | - data in use in that stack, in bytes. This used to be a | ||
| 17262 | - conditional around just the two extra args, but that might | ||
| 17263 | - be undefined if yyoverflow is a macro. */ | ||
| 17264 | - yyoverflow (YY_("memory exhausted"), | ||
| 17265 | - &yyss1, yysize * sizeof (*yyssp), | ||
| 17266 | - &yyvs1, yysize * sizeof (*yyvsp), | ||
| 17267 | + /* Give user a chance to reallocate the stack. Use copies of | ||
| 17268 | + these so that the &'s don't force the real ones into | ||
| 17269 | + memory. */ | ||
| 17270 | + YYSTYPE *yyvs1 = yyvs; | ||
| 17271 | + yytype_int16 *yyss1 = yyss; | ||
| 17272 | |||
| 17273 | - &yystacksize); | ||
| 17274 | + /* Each stack pointer address is followed by the size of the | ||
| 17275 | + data in use in that stack, in bytes. This used to be a | ||
| 17276 | + conditional around just the two extra args, but that might | ||
| 17277 | + be undefined if yyoverflow is a macro. */ | ||
| 17278 | + yyoverflow (YY_("memory exhausted"), | ||
| 17279 | + &yyss1, yysize * sizeof (*yyssp), | ||
| 17280 | + &yyvs1, yysize * sizeof (*yyvsp), | ||
| 17281 | + &yystacksize); | ||
| 17282 | |||
| 17283 | - yyss = yyss1; | ||
| 17284 | - yyvs = yyvs1; | ||
| 17285 | + yyss = yyss1; | ||
| 17286 | + yyvs = yyvs1; | ||
| 17287 | } | ||
| 17288 | #else /* no yyoverflow */ | ||
| 17289 | # ifndef YYSTACK_RELOCATE | ||
| 17290 | @@ -2895,23 +2565,22 @@ | ||
| 17291 | # else | ||
| 17292 | /* Extend the stack our own way. */ | ||
| 17293 | if (YYMAXDEPTH <= yystacksize) | ||
| 17294 | - goto yyexhaustedlab; | ||
| 17295 | + goto yyexhaustedlab; | ||
| 17296 | yystacksize *= 2; | ||
| 17297 | if (YYMAXDEPTH < yystacksize) | ||
| 17298 | - yystacksize = YYMAXDEPTH; | ||
| 17299 | + yystacksize = YYMAXDEPTH; | ||
| 17300 | |||
| 17301 | { | ||
| 17302 | - yytype_int16 *yyss1 = yyss; | ||
| 17303 | - union yyalloc *yyptr = | ||
| 17304 | - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); | ||
| 17305 | - if (! yyptr) | ||
| 17306 | - goto yyexhaustedlab; | ||
| 17307 | - YYSTACK_RELOCATE (yyss); | ||
| 17308 | - YYSTACK_RELOCATE (yyvs); | ||
| 17309 | - | ||
| 17310 | + yytype_int16 *yyss1 = yyss; | ||
| 17311 | + union yyalloc *yyptr = | ||
| 17312 | + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); | ||
| 17313 | + if (! yyptr) | ||
| 17314 | + goto yyexhaustedlab; | ||
| 17315 | + YYSTACK_RELOCATE (yyss_alloc, yyss); | ||
| 17316 | + YYSTACK_RELOCATE (yyvs_alloc, yyvs); | ||
| 17317 | # undef YYSTACK_RELOCATE | ||
| 17318 | - if (yyss1 != yyssa) | ||
| 17319 | - YYSTACK_FREE (yyss1); | ||
| 17320 | + if (yyss1 != yyssa) | ||
| 17321 | + YYSTACK_FREE (yyss1); | ||
| 17322 | } | ||
| 17323 | # endif | ||
| 17324 | #endif /* no yyoverflow */ | ||
| 17325 | @@ -2919,16 +2588,18 @@ | ||
| 17326 | yyssp = yyss + yysize - 1; | ||
| 17327 | yyvsp = yyvs + yysize - 1; | ||
| 17328 | |||
| 17329 | - | ||
| 17330 | YYDPRINTF ((stderr, "Stack size increased to %lu\n", | ||
| 17331 | - (unsigned long int) yystacksize)); | ||
| 17332 | + (unsigned long int) yystacksize)); | ||
| 17333 | |||
| 17334 | if (yyss + yystacksize - 1 <= yyssp) | ||
| 17335 | - YYABORT; | ||
| 17336 | + YYABORT; | ||
| 17337 | } | ||
| 17338 | |||
| 17339 | YYDPRINTF ((stderr, "Entering state %d\n", yystate)); | ||
| 17340 | |||
| 17341 | + if (yystate == YYFINAL) | ||
| 17342 | + YYACCEPT; | ||
| 17343 | + | ||
| 17344 | goto yybackup; | ||
| 17345 | |||
| 17346 | /*-----------. | ||
| 17347 | @@ -2937,20 +2608,20 @@ | ||
| 17348 | yybackup: | ||
| 17349 | |||
| 17350 | /* Do appropriate processing given the current state. Read a | ||
| 17351 | - look-ahead token if we need one and don't already have one. */ | ||
| 17352 | + lookahead token if we need one and don't already have one. */ | ||
| 17353 | |||
| 17354 | - /* First try to decide what to do without reference to look-ahead token. */ | ||
| 17355 | + /* First try to decide what to do without reference to lookahead token. */ | ||
| 17356 | yyn = yypact[yystate]; | ||
| 17357 | - if (yyn == YYPACT_NINF) | ||
| 17358 | + if (yypact_value_is_default (yyn)) | ||
| 17359 | goto yydefault; | ||
| 17360 | |||
| 17361 | - /* Not known => get a look-ahead token if don't already have one. */ | ||
| 17362 | + /* Not known => get a lookahead token if don't already have one. */ | ||
| 17363 | |||
| 17364 | - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ | ||
| 17365 | + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ | ||
| 17366 | if (yychar == YYEMPTY) | ||
| 17367 | { | ||
| 17368 | YYDPRINTF ((stderr, "Reading a token: ")); | ||
| 17369 | - yychar = YYLEX; | ||
| 17370 | + yychar = yylex (); | ||
| 17371 | } | ||
| 17372 | |||
| 17373 | if (yychar <= YYEOF) | ||
| 17374 | @@ -2972,29 +2643,27 @@ | ||
| 17375 | yyn = yytable[yyn]; | ||
| 17376 | if (yyn <= 0) | ||
| 17377 | { | ||
| 17378 | - if (yyn == 0 || yyn == YYTABLE_NINF) | ||
| 17379 | - goto yyerrlab; | ||
| 17380 | + if (yytable_value_is_error (yyn)) | ||
| 17381 | + goto yyerrlab; | ||
| 17382 | yyn = -yyn; | ||
| 17383 | goto yyreduce; | ||
| 17384 | } | ||
| 17385 | |||
| 17386 | - if (yyn == YYFINAL) | ||
| 17387 | - YYACCEPT; | ||
| 17388 | - | ||
| 17389 | /* Count tokens shifted since error; after three, turn off error | ||
| 17390 | status. */ | ||
| 17391 | if (yyerrstatus) | ||
| 17392 | yyerrstatus--; | ||
| 17393 | |||
| 17394 | - /* Shift the look-ahead token. */ | ||
| 17395 | + /* Shift the lookahead token. */ | ||
| 17396 | YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); | ||
| 17397 | |||
| 17398 | - /* Discard the shifted token unless it is eof. */ | ||
| 17399 | - if (yychar != YYEOF) | ||
| 17400 | - yychar = YYEMPTY; | ||
| 17401 | + /* Discard the shifted token. */ | ||
| 17402 | + yychar = YYEMPTY; | ||
| 17403 | |||
| 17404 | yystate = yyn; | ||
| 17405 | + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | ||
| 17406 | *++yyvsp = yylval; | ||
| 17407 | + YY_IGNORE_MAYBE_UNINITIALIZED_END | ||
| 17408 | |||
| 17409 | goto yynewstate; | ||
| 17410 | |||
| 17411 | @@ -3017,7 +2686,7 @@ | ||
| 17412 | yylen = yyr2[yyn]; | ||
| 17413 | |||
| 17414 | /* If YYLEN is nonzero, implement the default value of the action: | ||
| 17415 | - `$$ = $1'. | ||
| 17416 | + '$$ = $1'. | ||
| 17417 | |||
| 17418 | Otherwise, the following line sets YYVAL to garbage. | ||
| 17419 | This behavior is undocumented and Bison | ||
| 17420 | @@ -3031,7 +2700,7 @@ | ||
| 17421 | switch (yyn) | ||
| 17422 | { | ||
| 17423 | case 4: | ||
| 17424 | -#line 580 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17425 | +#line 580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17426 | { | ||
| 17427 | /* | ||
| 17428 | * We don't do these in parserEOF() because the parser is reading | ||
| 17429 | @@ -3049,10 +2718,11 @@ | ||
| 17430 | previousFile = NULL; | ||
| 17431 | } | ||
| 17432 | } | ||
| 17433 | +#line 2722 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17434 | break; | ||
| 17435 | |||
| 17436 | case 55: | ||
| 17437 | -#line 650 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17438 | +#line 650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17439 | { | ||
| 17440 | if (notSkipping()) | ||
| 17441 | { | ||
| 17442 | @@ -3061,151 +2731,167 @@ | ||
| 17443 | if (scope == NULL) | ||
| 17444 | yyerror("%TypeHeaderCode can only be used in a namespace, class or mapped type"); | ||
| 17445 | |||
| 17446 | - appendCodeBlock(&scope->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); | ||
| 17447 | + appendCodeBlock(&scope->iff->hdrcode, (yyvsp[0].codeb)); | ||
| 17448 | } | ||
| 17449 | } | ||
| 17450 | +#line 2738 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17451 | break; | ||
| 17452 | |||
| 17453 | case 56: | ||
| 17454 | -#line 663 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17455 | +#line 663 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17456 | { | ||
| 17457 | if (notSkipping()) | ||
| 17458 | - currentModule->defdocstringfmt = convertFormat((yyvsp[(2) - (2)].defdocstringfmt).name); | ||
| 17459 | + currentModule->defdocstringfmt = convertFormat((yyvsp[0].defdocstringfmt).name); | ||
| 17460 | } | ||
| 17461 | +#line 2747 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17462 | break; | ||
| 17463 | |||
| 17464 | case 57: | ||
| 17465 | -#line 669 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17466 | +#line 669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17467 | { | ||
| 17468 | resetLexerState(); | ||
| 17469 | |||
| 17470 | - (yyval.defdocstringfmt).name = (yyvsp[(1) - (1)].text); | ||
| 17471 | + (yyval.defdocstringfmt).name = (yyvsp[0].text); | ||
| 17472 | } | ||
| 17473 | +#line 2757 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17474 | break; | ||
| 17475 | |||
| 17476 | case 58: | ||
| 17477 | -#line 674 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17478 | +#line 674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17479 | { | ||
| 17480 | - (yyval.defdocstringfmt) = (yyvsp[(2) - (3)].defdocstringfmt); | ||
| 17481 | + (yyval.defdocstringfmt) = (yyvsp[-1].defdocstringfmt); | ||
| 17482 | } | ||
| 17483 | +#line 2765 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17484 | break; | ||
| 17485 | |||
| 17486 | case 60: | ||
| 17487 | -#line 680 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17488 | +#line 680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17489 | { | ||
| 17490 | - (yyval.defdocstringfmt) = (yyvsp[(1) - (3)].defdocstringfmt); | ||
| 17491 | + (yyval.defdocstringfmt) = (yyvsp[-2].defdocstringfmt); | ||
| 17492 | |||
| 17493 | - switch ((yyvsp[(3) - (3)].defdocstringfmt).token) | ||
| 17494 | + switch ((yyvsp[0].defdocstringfmt).token) | ||
| 17495 | { | ||
| 17496 | - case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].defdocstringfmt).name; break; | ||
| 17497 | + case TK_NAME: (yyval.defdocstringfmt).name = (yyvsp[0].defdocstringfmt).name; break; | ||
| 17498 | } | ||
| 17499 | } | ||
| 17500 | +#line 2778 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17501 | break; | ||
| 17502 | |||
| 17503 | case 61: | ||
| 17504 | -#line 690 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17505 | +#line 690 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17506 | { | ||
| 17507 | (yyval.defdocstringfmt).token = TK_NAME; | ||
| 17508 | |||
| 17509 | - (yyval.defdocstringfmt).name = (yyvsp[(3) - (3)].text); | ||
| 17510 | + (yyval.defdocstringfmt).name = (yyvsp[0].text); | ||
| 17511 | } | ||
| 17512 | +#line 2788 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17513 | break; | ||
| 17514 | |||
| 17515 | case 62: | ||
| 17516 | -#line 697 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17517 | +#line 697 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17518 | { | ||
| 17519 | if (notSkipping()) | ||
| 17520 | - currentModule->defdocstringsig = convertSignature((yyvsp[(2) - (2)].defdocstringsig).name); | ||
| 17521 | + currentModule->defdocstringsig = convertSignature((yyvsp[0].defdocstringsig).name); | ||
| 17522 | } | ||
| 17523 | +#line 2797 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17524 | break; | ||
| 17525 | |||
| 17526 | case 63: | ||
| 17527 | -#line 703 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17528 | +#line 703 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17529 | { | ||
| 17530 | resetLexerState(); | ||
| 17531 | |||
| 17532 | - (yyval.defdocstringsig).name = (yyvsp[(1) - (1)].text); | ||
| 17533 | + (yyval.defdocstringsig).name = (yyvsp[0].text); | ||
| 17534 | } | ||
| 17535 | +#line 2807 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17536 | break; | ||
| 17537 | |||
| 17538 | case 64: | ||
| 17539 | -#line 708 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17540 | +#line 708 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17541 | { | ||
| 17542 | - (yyval.defdocstringsig) = (yyvsp[(2) - (3)].defdocstringsig); | ||
| 17543 | + (yyval.defdocstringsig) = (yyvsp[-1].defdocstringsig); | ||
| 17544 | } | ||
| 17545 | +#line 2815 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17546 | break; | ||
| 17547 | |||
| 17548 | case 66: | ||
| 17549 | -#line 714 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17550 | +#line 714 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17551 | { | ||
| 17552 | - (yyval.defdocstringsig) = (yyvsp[(1) - (3)].defdocstringsig); | ||
| 17553 | + (yyval.defdocstringsig) = (yyvsp[-2].defdocstringsig); | ||
| 17554 | |||
| 17555 | - switch ((yyvsp[(3) - (3)].defdocstringsig).token) | ||
| 17556 | + switch ((yyvsp[0].defdocstringsig).token) | ||
| 17557 | { | ||
| 17558 | - case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].defdocstringsig).name; break; | ||
| 17559 | + case TK_NAME: (yyval.defdocstringsig).name = (yyvsp[0].defdocstringsig).name; break; | ||
| 17560 | } | ||
| 17561 | } | ||
| 17562 | +#line 2828 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17563 | break; | ||
| 17564 | |||
| 17565 | case 67: | ||
| 17566 | -#line 724 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17567 | +#line 724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17568 | { | ||
| 17569 | (yyval.defdocstringsig).token = TK_NAME; | ||
| 17570 | |||
| 17571 | - (yyval.defdocstringsig).name = (yyvsp[(3) - (3)].text); | ||
| 17572 | + (yyval.defdocstringsig).name = (yyvsp[0].text); | ||
| 17573 | } | ||
| 17574 | +#line 2838 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17575 | break; | ||
| 17576 | |||
| 17577 | case 68: | ||
| 17578 | -#line 731 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17579 | +#line 731 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17580 | { | ||
| 17581 | if (notSkipping()) | ||
| 17582 | { | ||
| 17583 | - if ((currentModule->encoding = convertEncoding((yyvsp[(2) - (2)].defencoding).name)) == no_type) | ||
| 17584 | + if ((currentModule->encoding = convertEncoding((yyvsp[0].defencoding).name)) == no_type) | ||
| 17585 | yyerror("The %DefaultEncoding name must be one of \"ASCII\", \"Latin-1\", \"UTF-8\" or \"None\""); | ||
| 17586 | } | ||
| 17587 | } | ||
| 17588 | +#line 2850 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17589 | break; | ||
| 17590 | |||
| 17591 | case 69: | ||
| 17592 | -#line 740 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17593 | +#line 740 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17594 | { | ||
| 17595 | resetLexerState(); | ||
| 17596 | |||
| 17597 | - (yyval.defencoding).name = (yyvsp[(1) - (1)].text); | ||
| 17598 | + (yyval.defencoding).name = (yyvsp[0].text); | ||
| 17599 | } | ||
| 17600 | +#line 2860 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17601 | break; | ||
| 17602 | |||
| 17603 | case 70: | ||
| 17604 | -#line 745 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17605 | +#line 745 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17606 | { | ||
| 17607 | - (yyval.defencoding) = (yyvsp[(2) - (3)].defencoding); | ||
| 17608 | + (yyval.defencoding) = (yyvsp[-1].defencoding); | ||
| 17609 | } | ||
| 17610 | +#line 2868 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17611 | break; | ||
| 17612 | |||
| 17613 | case 72: | ||
| 17614 | -#line 751 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17615 | +#line 751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17616 | { | ||
| 17617 | - (yyval.defencoding) = (yyvsp[(1) - (3)].defencoding); | ||
| 17618 | + (yyval.defencoding) = (yyvsp[-2].defencoding); | ||
| 17619 | |||
| 17620 | - switch ((yyvsp[(3) - (3)].defencoding).token) | ||
| 17621 | + switch ((yyvsp[0].defencoding).token) | ||
| 17622 | { | ||
| 17623 | - case TK_NAME: (yyval.defencoding).name = (yyvsp[(3) - (3)].defencoding).name; break; | ||
| 17624 | + case TK_NAME: (yyval.defencoding).name = (yyvsp[0].defencoding).name; break; | ||
| 17625 | } | ||
| 17626 | } | ||
| 17627 | +#line 2881 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17628 | break; | ||
| 17629 | |||
| 17630 | case 73: | ||
| 17631 | -#line 761 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17632 | +#line 761 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17633 | { | ||
| 17634 | (yyval.defencoding).token = TK_NAME; | ||
| 17635 | |||
| 17636 | - (yyval.defencoding).name = (yyvsp[(3) - (3)].text); | ||
| 17637 | + (yyval.defencoding).name = (yyvsp[0].text); | ||
| 17638 | } | ||
| 17639 | +#line 2891 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17640 | break; | ||
| 17641 | |||
| 17642 | case 74: | ||
| 17643 | -#line 768 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17644 | +#line 768 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17645 | { | ||
| 17646 | /* | ||
| 17647 | * Note that %Plugin is internal in SIP v4. The current thinking | ||
| 17648 | @@ -3213,51 +2899,56 @@ | ||
| 17649 | */ | ||
| 17650 | |||
| 17651 | if (notSkipping()) | ||
| 17652 | - appendString(¤tSpec->plugins, (yyvsp[(2) - (2)].plugin).name); | ||
| 17653 | + appendString(¤tSpec->plugins, (yyvsp[0].plugin).name); | ||
| 17654 | } | ||
| 17655 | +#line 2905 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17656 | break; | ||
| 17657 | |||
| 17658 | case 75: | ||
| 17659 | -#line 779 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17660 | +#line 779 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17661 | { | ||
| 17662 | resetLexerState(); | ||
| 17663 | |||
| 17664 | - (yyval.plugin).name = (yyvsp[(1) - (1)].text); | ||
| 17665 | + (yyval.plugin).name = (yyvsp[0].text); | ||
| 17666 | } | ||
| 17667 | +#line 2915 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17668 | break; | ||
| 17669 | |||
| 17670 | case 76: | ||
| 17671 | -#line 784 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17672 | +#line 784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17673 | { | ||
| 17674 | - (yyval.plugin) = (yyvsp[(2) - (3)].plugin); | ||
| 17675 | + (yyval.plugin) = (yyvsp[-1].plugin); | ||
| 17676 | } | ||
| 17677 | +#line 2923 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17678 | break; | ||
| 17679 | |||
| 17680 | case 78: | ||
| 17681 | -#line 790 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17682 | +#line 790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17683 | { | ||
| 17684 | - (yyval.plugin) = (yyvsp[(1) - (3)].plugin); | ||
| 17685 | + (yyval.plugin) = (yyvsp[-2].plugin); | ||
| 17686 | |||
| 17687 | - switch ((yyvsp[(3) - (3)].plugin).token) | ||
| 17688 | + switch ((yyvsp[0].plugin).token) | ||
| 17689 | { | ||
| 17690 | - case TK_NAME: (yyval.plugin).name = (yyvsp[(3) - (3)].plugin).name; break; | ||
| 17691 | + case TK_NAME: (yyval.plugin).name = (yyvsp[0].plugin).name; break; | ||
| 17692 | } | ||
| 17693 | } | ||
| 17694 | +#line 2936 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17695 | break; | ||
| 17696 | |||
| 17697 | case 79: | ||
| 17698 | -#line 800 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17699 | +#line 800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17700 | { | ||
| 17701 | (yyval.plugin).token = TK_NAME; | ||
| 17702 | |||
| 17703 | - (yyval.plugin).name = (yyvsp[(3) - (3)].text); | ||
| 17704 | + (yyval.plugin).name = (yyvsp[0].text); | ||
| 17705 | } | ||
| 17706 | +#line 2946 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17707 | break; | ||
| 17708 | |||
| 17709 | case 80: | ||
| 17710 | -#line 807 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17711 | +#line 807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17712 | { | ||
| 17713 | - if ((yyvsp[(2) - (3)].veh).name == NULL) | ||
| 17714 | + if ((yyvsp[-1].veh).name == NULL) | ||
| 17715 | yyerror("%VirtualErrorHandler must have a 'name' argument"); | ||
| 17716 | |||
| 17717 | if (notSkipping()) | ||
| 17718 | @@ -3266,7 +2957,7 @@ | ||
| 17719 | |||
| 17720 | /* Check there isn't already a handler with the same name. */ | ||
| 17721 | for (tailp = ¤tSpec->errorhandlers; (veh = *tailp) != NULL; tailp = &veh->next) | ||
| 17722 | - if (strcmp(veh->name, (yyvsp[(2) - (3)].veh).name) == 0) | ||
| 17723 | + if (strcmp(veh->name, (yyvsp[-1].veh).name) == 0) | ||
| 17724 | break; | ||
| 17725 | |||
| 17726 | if (veh != NULL) | ||
| 17727 | @@ -3274,8 +2965,8 @@ | ||
| 17728 | |||
| 17729 | veh = sipMalloc(sizeof (virtErrorHandler)); | ||
| 17730 | |||
| 17731 | - veh->name = (yyvsp[(2) - (3)].veh).name; | ||
| 17732 | - appendCodeBlock(&veh->code, (yyvsp[(3) - (3)].codeb)); | ||
| 17733 | + veh->name = (yyvsp[-1].veh).name; | ||
| 17734 | + appendCodeBlock(&veh->code, (yyvsp[0].codeb)); | ||
| 17735 | veh->mod = currentModule; | ||
| 17736 | veh->index = -1; | ||
| 17737 | veh->next = NULL; | ||
| 17738 | @@ -3283,62 +2974,67 @@ | ||
| 17739 | *tailp = veh; | ||
| 17740 | } | ||
| 17741 | } | ||
| 17742 | +#line 2978 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17743 | break; | ||
| 17744 | |||
| 17745 | case 81: | ||
| 17746 | -#line 836 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17747 | +#line 836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17748 | { | ||
| 17749 | resetLexerState(); | ||
| 17750 | |||
| 17751 | - (yyval.veh).name = (yyvsp[(1) - (1)].text); | ||
| 17752 | + (yyval.veh).name = (yyvsp[0].text); | ||
| 17753 | } | ||
| 17754 | +#line 2988 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17755 | break; | ||
| 17756 | |||
| 17757 | case 82: | ||
| 17758 | -#line 841 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17759 | +#line 841 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17760 | { | ||
| 17761 | - (yyval.veh) = (yyvsp[(2) - (3)].veh); | ||
| 17762 | + (yyval.veh) = (yyvsp[-1].veh); | ||
| 17763 | } | ||
| 17764 | +#line 2996 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17765 | break; | ||
| 17766 | |||
| 17767 | case 84: | ||
| 17768 | -#line 847 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17769 | +#line 847 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17770 | { | ||
| 17771 | - (yyval.veh) = (yyvsp[(1) - (3)].veh); | ||
| 17772 | + (yyval.veh) = (yyvsp[-2].veh); | ||
| 17773 | |||
| 17774 | - switch ((yyvsp[(3) - (3)].veh).token) | ||
| 17775 | + switch ((yyvsp[0].veh).token) | ||
| 17776 | { | ||
| 17777 | - case TK_NAME: (yyval.veh).name = (yyvsp[(3) - (3)].veh).name; break; | ||
| 17778 | + case TK_NAME: (yyval.veh).name = (yyvsp[0].veh).name; break; | ||
| 17779 | } | ||
| 17780 | } | ||
| 17781 | +#line 3009 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17782 | break; | ||
| 17783 | |||
| 17784 | case 85: | ||
| 17785 | -#line 857 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17786 | +#line 857 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17787 | { | ||
| 17788 | (yyval.veh).token = TK_NAME; | ||
| 17789 | |||
| 17790 | - (yyval.veh).name = (yyvsp[(3) - (3)].text); | ||
| 17791 | + (yyval.veh).name = (yyvsp[0].text); | ||
| 17792 | } | ||
| 17793 | +#line 3019 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17794 | break; | ||
| 17795 | |||
| 17796 | case 86: | ||
| 17797 | -#line 864 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17798 | +#line 864 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17799 | { | ||
| 17800 | if (notSkipping()) | ||
| 17801 | { | ||
| 17802 | apiVersionRangeDef *avd; | ||
| 17803 | |||
| 17804 | - if (findAPI(currentSpec, (yyvsp[(2) - (2)].api).name) != NULL) | ||
| 17805 | + if (findAPI(currentSpec, (yyvsp[0].api).name) != NULL) | ||
| 17806 | yyerror("The API name in the %API directive has already been defined"); | ||
| 17807 | |||
| 17808 | - if ((yyvsp[(2) - (2)].api).version < 1) | ||
| 17809 | + if ((yyvsp[0].api).version < 1) | ||
| 17810 | yyerror("The version number in the %API directive must be greater than or equal to 1"); | ||
| 17811 | |||
| 17812 | avd = sipMalloc(sizeof (apiVersionRangeDef)); | ||
| 17813 | |||
| 17814 | - avd->api_name = cacheName(currentSpec, (yyvsp[(2) - (2)].api).name); | ||
| 17815 | - avd->from = (yyvsp[(2) - (2)].api).version; | ||
| 17816 | + avd->api_name = cacheName(currentSpec, (yyvsp[0].api).name); | ||
| 17817 | + avd->from = (yyvsp[0].api).version; | ||
| 17818 | avd->to = -1; | ||
| 17819 | |||
| 17820 | avd->next = currentModule->api_versions; | ||
| 17821 | @@ -3348,62 +3044,68 @@ | ||
| 17822 | setIsUsedName(avd->api_name); | ||
| 17823 | } | ||
| 17824 | } | ||
| 17825 | +#line 3048 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17826 | break; | ||
| 17827 | |||
| 17828 | case 87: | ||
| 17829 | -#line 890 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17830 | +#line 890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17831 | { | ||
| 17832 | resetLexerState(); | ||
| 17833 | |||
| 17834 | deprecated("%API name and version number should be specified using the 'name' and 'version' arguments"); | ||
| 17835 | |||
| 17836 | - (yyval.api).name = (yyvsp[(1) - (2)].text); | ||
| 17837 | - (yyval.api).version = (yyvsp[(2) - (2)].number); | ||
| 17838 | + (yyval.api).name = (yyvsp[-1].text); | ||
| 17839 | + (yyval.api).version = (yyvsp[0].number); | ||
| 17840 | } | ||
| 17841 | +#line 3061 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17842 | break; | ||
| 17843 | |||
| 17844 | case 88: | ||
| 17845 | -#line 898 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17846 | +#line 898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17847 | { | ||
| 17848 | - (yyval.api) = (yyvsp[(2) - (3)].api); | ||
| 17849 | + (yyval.api) = (yyvsp[-1].api); | ||
| 17850 | } | ||
| 17851 | +#line 3069 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17852 | break; | ||
| 17853 | |||
| 17854 | case 90: | ||
| 17855 | -#line 904 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17856 | +#line 904 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17857 | { | ||
| 17858 | - (yyval.api) = (yyvsp[(1) - (3)].api); | ||
| 17859 | + (yyval.api) = (yyvsp[-2].api); | ||
| 17860 | |||
| 17861 | - switch ((yyvsp[(3) - (3)].api).token) | ||
| 17862 | + switch ((yyvsp[0].api).token) | ||
| 17863 | { | ||
| 17864 | - case TK_NAME: (yyval.api).name = (yyvsp[(3) - (3)].api).name; break; | ||
| 17865 | - case TK_VERSION: (yyval.api).version = (yyvsp[(3) - (3)].api).version; break; | ||
| 17866 | + case TK_NAME: (yyval.api).name = (yyvsp[0].api).name; break; | ||
| 17867 | + case TK_VERSION: (yyval.api).version = (yyvsp[0].api).version; break; | ||
| 17868 | } | ||
| 17869 | } | ||
| 17870 | +#line 3083 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17871 | break; | ||
| 17872 | |||
| 17873 | case 91: | ||
| 17874 | -#line 915 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17875 | +#line 915 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17876 | { | ||
| 17877 | (yyval.api).token = TK_NAME; | ||
| 17878 | |||
| 17879 | - (yyval.api).name = (yyvsp[(3) - (3)].text); | ||
| 17880 | + (yyval.api).name = (yyvsp[0].text); | ||
| 17881 | (yyval.api).version = 0; | ||
| 17882 | } | ||
| 17883 | +#line 3094 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17884 | break; | ||
| 17885 | |||
| 17886 | case 92: | ||
| 17887 | -#line 921 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17888 | +#line 921 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17889 | { | ||
| 17890 | (yyval.api).token = TK_VERSION; | ||
| 17891 | |||
| 17892 | (yyval.api).name = NULL; | ||
| 17893 | - (yyval.api).version = (yyvsp[(3) - (3)].number); | ||
| 17894 | + (yyval.api).version = (yyvsp[0].number); | ||
| 17895 | } | ||
| 17896 | +#line 3105 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17897 | break; | ||
| 17898 | |||
| 17899 | case 93: | ||
| 17900 | -#line 929 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17901 | +#line 929 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17902 | { | ||
| 17903 | if (notSkipping()) | ||
| 17904 | { | ||
| 17905 | @@ -3416,20 +3118,20 @@ | ||
| 17906 | exceptionDef *xd; | ||
| 17907 | const char *pyname; | ||
| 17908 | |||
| 17909 | - checkAnnos(&(yyvsp[(4) - (5)].optflags), annos); | ||
| 17910 | + checkAnnos(&(yyvsp[-1].optflags), annos); | ||
| 17911 | |||
| 17912 | if (currentSpec->genc) | ||
| 17913 | yyerror("%Exception not allowed in a C module"); | ||
| 17914 | |||
| 17915 | - if ((yyvsp[(5) - (5)].exception).raise_code == NULL) | ||
| 17916 | + if ((yyvsp[0].exception).raise_code == NULL) | ||
| 17917 | yyerror("%Exception must have a %RaiseCode sub-directive"); | ||
| 17918 | |||
| 17919 | - pyname = getPythonName(currentModule, &(yyvsp[(4) - (5)].optflags), scopedNameTail((yyvsp[(2) - (5)].scpvalp))); | ||
| 17920 | + pyname = getPythonName(currentModule, &(yyvsp[-1].optflags), scopedNameTail((yyvsp[-3].scpvalp))); | ||
| 17921 | |||
| 17922 | checkAttributes(currentSpec, currentModule, NULL, NULL, | ||
| 17923 | pyname, FALSE); | ||
| 17924 | |||
| 17925 | - xd = findException(currentSpec, (yyvsp[(2) - (5)].scpvalp), TRUE); | ||
| 17926 | + xd = findException(currentSpec, (yyvsp[-3].scpvalp), TRUE); | ||
| 17927 | |||
| 17928 | if (xd->cd != NULL) | ||
| 17929 | yyerror("%Exception name has already been seen as a class name - it must be defined before being used"); | ||
| 17930 | @@ -3439,28 +3141,30 @@ | ||
| 17931 | |||
| 17932 | /* Complete the definition. */ | ||
| 17933 | xd->iff->module = currentModule; | ||
| 17934 | - appendCodeBlock(&xd->iff->hdrcode, (yyvsp[(5) - (5)].exception).type_header_code); | ||
| 17935 | + appendCodeBlock(&xd->iff->hdrcode, (yyvsp[0].exception).type_header_code); | ||
| 17936 | xd->pyname = pyname; | ||
| 17937 | - xd->bibase = (yyvsp[(3) - (5)].exceptionbase).bibase; | ||
| 17938 | - xd->base = (yyvsp[(3) - (5)].exceptionbase).base; | ||
| 17939 | - appendCodeBlock(&xd->raisecode, (yyvsp[(5) - (5)].exception).raise_code); | ||
| 17940 | + xd->bibase = (yyvsp[-2].exceptionbase).bibase; | ||
| 17941 | + xd->base = (yyvsp[-2].exceptionbase).base; | ||
| 17942 | + appendCodeBlock(&xd->raisecode, (yyvsp[0].exception).raise_code); | ||
| 17943 | |||
| 17944 | - if (getOptFlag(&(yyvsp[(4) - (5)].optflags), "Default", bool_flag) != NULL) | ||
| 17945 | + if (getOptFlag(&(yyvsp[-1].optflags), "Default", bool_flag) != NULL) | ||
| 17946 | currentModule->defexception = xd; | ||
| 17947 | } | ||
| 17948 | } | ||
| 17949 | +#line 3155 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17950 | break; | ||
| 17951 | |||
| 17952 | case 94: | ||
| 17953 | -#line 976 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17954 | +#line 976 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17955 | { | ||
| 17956 | (yyval.exceptionbase).bibase = NULL; | ||
| 17957 | (yyval.exceptionbase).base = NULL; | ||
| 17958 | } | ||
| 17959 | +#line 3164 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17960 | break; | ||
| 17961 | |||
| 17962 | case 95: | ||
| 17963 | -#line 980 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 17964 | +#line 980 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 17965 | { | ||
| 17966 | exceptionDef *xd; | ||
| 17967 | |||
| 17968 | @@ -3469,13 +3173,13 @@ | ||
| 17969 | |||
| 17970 | /* See if it is a defined exception. */ | ||
| 17971 | for (xd = currentSpec->exceptions; xd != NULL; xd = xd->next) | ||
| 17972 | - if (compareScopedNames(xd->iff->fqcname, (yyvsp[(2) - (3)].scpvalp)) == 0) | ||
| 17973 | + if (compareScopedNames(xd->iff->fqcname, (yyvsp[-1].scpvalp)) == 0) | ||
| 17974 | { | ||
| 17975 | (yyval.exceptionbase).base = xd; | ||
| 17976 | break; | ||
| 17977 | } | ||
| 17978 | |||
| 17979 | - if (xd == NULL && (yyvsp[(2) - (3)].scpvalp)->next == NULL && strncmp((yyvsp[(2) - (3)].scpvalp)->name, "SIP_", 4) == 0) | ||
| 17980 | + if (xd == NULL && (yyvsp[-1].scpvalp)->next == NULL && strncmp((yyvsp[-1].scpvalp)->name, "SIP_", 4) == 0) | ||
| 17981 | { | ||
| 17982 | /* See if it is a builtin exception. */ | ||
| 17983 | |||
| 17984 | @@ -3556,7 +3260,7 @@ | ||
| 17985 | char **cp; | ||
| 17986 | |||
| 17987 | for (cp = builtins; *cp != NULL; ++cp) | ||
| 17988 | - if (strcmp((yyvsp[(2) - (3)].scpvalp)->name + 4, *cp) == 0) | ||
| 17989 | + if (strcmp((yyvsp[-1].scpvalp)->name + 4, *cp) == 0) | ||
| 17990 | { | ||
| 17991 | (yyval.exceptionbase).bibase = *cp; | ||
| 17992 | break; | ||
| 17993 | @@ -3566,49 +3270,54 @@ | ||
| 17994 | if ((yyval.exceptionbase).bibase == NULL && (yyval.exceptionbase).base == NULL) | ||
| 17995 | yyerror("Unknown exception base type"); | ||
| 17996 | } | ||
| 17997 | +#line 3274 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 17998 | break; | ||
| 17999 | |||
| 18000 | case 96: | ||
| 18001 | -#line 1087 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18002 | +#line 1087 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18003 | { | ||
| 18004 | - (yyval.exception) = (yyvsp[(2) - (4)].exception); | ||
| 18005 | + (yyval.exception) = (yyvsp[-2].exception); | ||
| 18006 | } | ||
| 18007 | +#line 3282 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18008 | break; | ||
| 18009 | |||
| 18010 | case 98: | ||
| 18011 | -#line 1093 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18012 | +#line 1093 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18013 | { | ||
| 18014 | - (yyval.exception) = (yyvsp[(1) - (2)].exception); | ||
| 18015 | + (yyval.exception) = (yyvsp[-1].exception); | ||
| 18016 | |||
| 18017 | - switch ((yyvsp[(2) - (2)].exception).token) | ||
| 18018 | + switch ((yyvsp[0].exception).token) | ||
| 18019 | { | ||
| 18020 | - case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[(2) - (2)].exception).raise_code; break; | ||
| 18021 | - case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[(2) - (2)].exception).type_header_code; break; | ||
| 18022 | + case TK_RAISECODE: (yyval.exception).raise_code = (yyvsp[0].exception).raise_code; break; | ||
| 18023 | + case TK_TYPEHEADERCODE: (yyval.exception).type_header_code = (yyvsp[0].exception).type_header_code; break; | ||
| 18024 | } | ||
| 18025 | } | ||
| 18026 | +#line 3296 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18027 | break; | ||
| 18028 | |||
| 18029 | case 99: | ||
| 18030 | -#line 1104 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18031 | +#line 1104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18032 | { | ||
| 18033 | (yyval.exception).token = TK_IF; | ||
| 18034 | } | ||
| 18035 | +#line 3304 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18036 | break; | ||
| 18037 | |||
| 18038 | case 100: | ||
| 18039 | -#line 1107 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18040 | +#line 1107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18041 | { | ||
| 18042 | (yyval.exception).token = TK_END; | ||
| 18043 | } | ||
| 18044 | +#line 3312 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18045 | break; | ||
| 18046 | |||
| 18047 | case 101: | ||
| 18048 | -#line 1110 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18049 | +#line 1110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18050 | { | ||
| 18051 | if (notSkipping()) | ||
| 18052 | { | ||
| 18053 | (yyval.exception).token = TK_RAISECODE; | ||
| 18054 | - (yyval.exception).raise_code = (yyvsp[(1) - (1)].codeb); | ||
| 18055 | + (yyval.exception).raise_code = (yyvsp[0].codeb); | ||
| 18056 | } | ||
| 18057 | else | ||
| 18058 | { | ||
| 18059 | @@ -3618,15 +3327,16 @@ | ||
| 18060 | |||
| 18061 | (yyval.exception).type_header_code = NULL; | ||
| 18062 | } | ||
| 18063 | +#line 3331 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18064 | break; | ||
| 18065 | |||
| 18066 | case 102: | ||
| 18067 | -#line 1124 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18068 | +#line 1124 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18069 | { | ||
| 18070 | if (notSkipping()) | ||
| 18071 | { | ||
| 18072 | (yyval.exception).token = TK_TYPEHEADERCODE; | ||
| 18073 | - (yyval.exception).type_header_code = (yyvsp[(1) - (1)].codeb); | ||
| 18074 | + (yyval.exception).type_header_code = (yyvsp[0].codeb); | ||
| 18075 | } | ||
| 18076 | else | ||
| 18077 | { | ||
| 18078 | @@ -3636,17 +3346,19 @@ | ||
| 18079 | |||
| 18080 | (yyval.exception).raise_code = NULL; | ||
| 18081 | } | ||
| 18082 | +#line 3350 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18083 | break; | ||
| 18084 | |||
| 18085 | case 103: | ||
| 18086 | -#line 1140 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18087 | +#line 1140 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18088 | { | ||
| 18089 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 18090 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 18091 | } | ||
| 18092 | +#line 3358 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18093 | break; | ||
| 18094 | |||
| 18095 | case 104: | ||
| 18096 | -#line 1145 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18097 | +#line 1145 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18098 | { | ||
| 18099 | if (notSkipping()) | ||
| 18100 | { | ||
| 18101 | @@ -3663,15 +3375,16 @@ | ||
| 18102 | NULL | ||
| 18103 | }; | ||
| 18104 | |||
| 18105 | - checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); | ||
| 18106 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 18107 | |||
| 18108 | - currentMappedType = newMappedType(currentSpec, &(yyvsp[(2) - (3)].memArg), &(yyvsp[(3) - (3)].optflags)); | ||
| 18109 | + currentMappedType = newMappedType(currentSpec, &(yyvsp[-1].memArg), &(yyvsp[0].optflags)); | ||
| 18110 | } | ||
| 18111 | } | ||
| 18112 | +#line 3384 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18113 | break; | ||
| 18114 | |||
| 18115 | case 106: | ||
| 18116 | -#line 1168 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18117 | +#line 1168 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18118 | { | ||
| 18119 | if (notSkipping()) | ||
| 18120 | { | ||
| 18121 | @@ -3690,7 +3403,7 @@ | ||
| 18122 | mappedTypeTmplDef *mtt; | ||
| 18123 | ifaceFileDef *iff; | ||
| 18124 | |||
| 18125 | - checkAnnos(&(yyvsp[(4) - (4)].optflags), annos); | ||
| 18126 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 18127 | |||
| 18128 | if (currentSpec->genc) | ||
| 18129 | yyerror("%MappedType templates not allowed in a C module"); | ||
| 18130 | @@ -3699,32 +3412,32 @@ | ||
| 18131 | * Check the template arguments are basic types or simple | ||
| 18132 | * names. | ||
| 18133 | */ | ||
| 18134 | - for (a = 0; a < (yyvsp[(1) - (4)].signature).nrArgs; ++a) | ||
| 18135 | + for (a = 0; a < (yyvsp[-3].signature).nrArgs; ++a) | ||
| 18136 | { | ||
| 18137 | - argDef *ad = &(yyvsp[(1) - (4)].signature).args[a]; | ||
| 18138 | + argDef *ad = &(yyvsp[-3].signature).args[a]; | ||
| 18139 | |||
| 18140 | if (ad->atype == defined_type && ad->u.snd->next != NULL) | ||
| 18141 | yyerror("%MappedType template arguments must be simple names"); | ||
| 18142 | } | ||
| 18143 | |||
| 18144 | - if ((yyvsp[(3) - (4)].memArg).atype != template_type) | ||
| 18145 | + if ((yyvsp[-1].memArg).atype != template_type) | ||
| 18146 | yyerror("%MappedType template must map a template type"); | ||
| 18147 | |||
| 18148 | - (yyvsp[(3) - (4)].memArg).u.td->fqname = fullyQualifiedName((yyvsp[(3) - (4)].memArg).u.td->fqname); | ||
| 18149 | + (yyvsp[-1].memArg).u.td->fqname = fullyQualifiedName((yyvsp[-1].memArg).u.td->fqname); | ||
| 18150 | |||
| 18151 | /* Check a template hasn't already been provided. */ | ||
| 18152 | for (mtt = currentSpec->mappedtypetemplates; mtt != NULL; mtt = mtt->next) | ||
| 18153 | - 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)) | ||
| 18154 | + 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)) | ||
| 18155 | yyerror("%MappedType template for this type has already been defined"); | ||
| 18156 | |||
| 18157 | - (yyvsp[(3) - (4)].memArg).nrderefs = 0; | ||
| 18158 | - (yyvsp[(3) - (4)].memArg).argflags = 0; | ||
| 18159 | + (yyvsp[-1].memArg).nrderefs = 0; | ||
| 18160 | + (yyvsp[-1].memArg).argflags = 0; | ||
| 18161 | |||
| 18162 | mtt = sipMalloc(sizeof (mappedTypeTmplDef)); | ||
| 18163 | |||
| 18164 | - mtt->sig = (yyvsp[(1) - (4)].signature); | ||
| 18165 | - mtt->mt = allocMappedType(currentSpec, &(yyvsp[(3) - (4)].memArg)); | ||
| 18166 | - mappedTypeAnnos(mtt->mt, &(yyvsp[(4) - (4)].optflags)); | ||
| 18167 | + mtt->sig = (yyvsp[-3].signature); | ||
| 18168 | + mtt->mt = allocMappedType(currentSpec, &(yyvsp[-1].memArg)); | ||
| 18169 | + mappedTypeAnnos(mtt->mt, &(yyvsp[0].optflags)); | ||
| 18170 | mtt->next = currentSpec->mappedtypetemplates; | ||
| 18171 | |||
| 18172 | currentSpec->mappedtypetemplates = mtt; | ||
| 18173 | @@ -3737,10 +3450,11 @@ | ||
| 18174 | mtt->mt->iff = iff; | ||
| 18175 | } | ||
| 18176 | } | ||
| 18177 | +#line 3454 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18178 | break; | ||
| 18179 | |||
| 18180 | case 108: | ||
| 18181 | -#line 1235 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18182 | +#line 1235 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18183 | { | ||
| 18184 | if (notSkipping()) | ||
| 18185 | { | ||
| 18186 | @@ -3753,82 +3467,89 @@ | ||
| 18187 | currentMappedType = NULL; | ||
| 18188 | } | ||
| 18189 | } | ||
| 18190 | +#line 3471 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18191 | break; | ||
| 18192 | |||
| 18193 | case 113: | ||
| 18194 | -#line 1255 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18195 | +#line 1255 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18196 | { | ||
| 18197 | if (notSkipping()) | ||
| 18198 | - appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); | ||
| 18199 | + appendCodeBlock(¤tMappedType->iff->hdrcode, (yyvsp[0].codeb)); | ||
| 18200 | } | ||
| 18201 | +#line 3480 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18202 | break; | ||
| 18203 | |||
| 18204 | case 114: | ||
| 18205 | -#line 1259 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18206 | +#line 1259 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18207 | { | ||
| 18208 | if (notSkipping()) | ||
| 18209 | - appendCodeBlock(¤tMappedType->typecode, (yyvsp[(1) - (1)].codeb)); | ||
| 18210 | + appendCodeBlock(¤tMappedType->typecode, (yyvsp[0].codeb)); | ||
| 18211 | } | ||
| 18212 | +#line 3489 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18213 | break; | ||
| 18214 | |||
| 18215 | case 115: | ||
| 18216 | -#line 1263 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18217 | +#line 1263 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18218 | { | ||
| 18219 | if (notSkipping()) | ||
| 18220 | { | ||
| 18221 | if (currentMappedType->convfromcode != NULL) | ||
| 18222 | yyerror("%MappedType has more than one %ConvertFromTypeCode directive"); | ||
| 18223 | |||
| 18224 | - appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[(2) - (2)].codeb)); | ||
| 18225 | + appendCodeBlock(¤tMappedType->convfromcode, (yyvsp[0].codeb)); | ||
| 18226 | } | ||
| 18227 | } | ||
| 18228 | +#line 3503 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18229 | break; | ||
| 18230 | |||
| 18231 | case 116: | ||
| 18232 | -#line 1272 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18233 | +#line 1272 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18234 | { | ||
| 18235 | if (notSkipping()) | ||
| 18236 | { | ||
| 18237 | if (currentMappedType->convtocode != NULL) | ||
| 18238 | yyerror("%MappedType has more than one %ConvertToTypeCode directive"); | ||
| 18239 | |||
| 18240 | - appendCodeBlock(¤tMappedType->convtocode, (yyvsp[(2) - (2)].codeb)); | ||
| 18241 | + appendCodeBlock(¤tMappedType->convtocode, (yyvsp[0].codeb)); | ||
| 18242 | } | ||
| 18243 | } | ||
| 18244 | +#line 3517 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18245 | break; | ||
| 18246 | |||
| 18247 | case 117: | ||
| 18248 | -#line 1281 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18249 | +#line 1281 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18250 | { | ||
| 18251 | if (notSkipping()) | ||
| 18252 | { | ||
| 18253 | if (currentMappedType->instancecode != NULL) | ||
| 18254 | yyerror("%MappedType has more than one %InstanceCode directive"); | ||
| 18255 | |||
| 18256 | - appendCodeBlock(¤tMappedType->instancecode, (yyvsp[(1) - (1)].codeb)); | ||
| 18257 | + appendCodeBlock(¤tMappedType->instancecode, (yyvsp[0].codeb)); | ||
| 18258 | } | ||
| 18259 | } | ||
| 18260 | +#line 3531 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18261 | break; | ||
| 18262 | |||
| 18263 | case 120: | ||
| 18264 | -#line 1294 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18265 | +#line 1294 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18266 | { | ||
| 18267 | if (notSkipping()) | ||
| 18268 | { | ||
| 18269 | - applyTypeFlags(currentModule, &(yyvsp[(2) - (14)].memArg), &(yyvsp[(9) - (14)].optflags)); | ||
| 18270 | + applyTypeFlags(currentModule, &(yyvsp[-12].memArg), &(yyvsp[-5].optflags)); | ||
| 18271 | |||
| 18272 | - (yyvsp[(5) - (14)].signature).result = (yyvsp[(2) - (14)].memArg); | ||
| 18273 | + (yyvsp[-9].signature).result = (yyvsp[-12].memArg); | ||
| 18274 | |||
| 18275 | newFunction(currentSpec, currentModule, NULL, NULL, | ||
| 18276 | - currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[(3) - (14)].text), | ||
| 18277 | - &(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), | ||
| 18278 | - FALSE, (yyvsp[(13) - (14)].codeb)); | ||
| 18279 | + currentMappedType, 0, TRUE, FALSE, FALSE, FALSE, (yyvsp[-11].text), | ||
| 18280 | + &(yyvsp[-9].signature), (yyvsp[-7].number), FALSE, &(yyvsp[-5].optflags), (yyvsp[0].codeb), NULL, NULL, (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), (yyvsp[-2].docstr), | ||
| 18281 | + FALSE, (yyvsp[-1].codeb)); | ||
| 18282 | } | ||
| 18283 | } | ||
| 18284 | +#line 3549 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18285 | break; | ||
| 18286 | |||
| 18287 | case 121: | ||
| 18288 | -#line 1309 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18289 | +#line 1309 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18290 | { | ||
| 18291 | if (currentSpec -> genc) | ||
| 18292 | yyerror("namespace definition not allowed in a C module"); | ||
| 18293 | @@ -3844,17 +3565,18 @@ | ||
| 18294 | scope = NULL; | ||
| 18295 | |||
| 18296 | ns = newClass(currentSpec, namespace_iface, NULL, | ||
| 18297 | - text2scopedName(scope, (yyvsp[(2) - (2)].text)), NULL, NULL, NULL, NULL); | ||
| 18298 | + text2scopedName(scope, (yyvsp[0].text)), NULL, NULL, NULL, NULL); | ||
| 18299 | |||
| 18300 | pushScope(ns); | ||
| 18301 | |||
| 18302 | sectionFlags = 0; | ||
| 18303 | } | ||
| 18304 | } | ||
| 18305 | +#line 3576 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18306 | break; | ||
| 18307 | |||
| 18308 | case 122: | ||
| 18309 | -#line 1330 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18310 | +#line 1330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18311 | { | ||
| 18312 | if (notSkipping()) | ||
| 18313 | { | ||
| 18314 | @@ -3869,10 +3591,11 @@ | ||
| 18315 | popScope(); | ||
| 18316 | } | ||
| 18317 | } | ||
| 18318 | +#line 3595 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18319 | break; | ||
| 18320 | |||
| 18321 | case 127: | ||
| 18322 | -#line 1354 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18323 | +#line 1354 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18324 | { | ||
| 18325 | if (notSkipping()) | ||
| 18326 | { | ||
| 18327 | @@ -3883,10 +3606,11 @@ | ||
| 18328 | yyerror("%Platforms has already been defined for this module"); | ||
| 18329 | } | ||
| 18330 | } | ||
| 18331 | +#line 3610 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18332 | break; | ||
| 18333 | |||
| 18334 | case 128: | ||
| 18335 | -#line 1364 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18336 | +#line 1364 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18337 | { | ||
| 18338 | if (notSkipping()) | ||
| 18339 | { | ||
| 18340 | @@ -3904,70 +3628,78 @@ | ||
| 18341 | yyerror("No more than one of these %Platforms must be specified with the -t flag"); | ||
| 18342 | } | ||
| 18343 | } | ||
| 18344 | +#line 3632 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18345 | break; | ||
| 18346 | |||
| 18347 | case 131: | ||
| 18348 | -#line 1387 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18349 | +#line 1387 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18350 | { | ||
| 18351 | - newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(1) - (1)].text), | ||
| 18352 | + newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].text), | ||
| 18353 | platform_qualifier); | ||
| 18354 | } | ||
| 18355 | +#line 3641 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18356 | break; | ||
| 18357 | |||
| 18358 | case 132: | ||
| 18359 | -#line 1393 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18360 | +#line 1393 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18361 | { | ||
| 18362 | - newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[(2) - (2)].feature).name, | ||
| 18363 | + newQualifier(currentModule, -1, -1, notSkipping(), (yyvsp[0].feature).name, | ||
| 18364 | feature_qualifier); | ||
| 18365 | } | ||
| 18366 | +#line 3650 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18367 | break; | ||
| 18368 | |||
| 18369 | case 133: | ||
| 18370 | -#line 1399 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18371 | +#line 1399 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18372 | { | ||
| 18373 | resetLexerState(); | ||
| 18374 | |||
| 18375 | - (yyval.feature).name = (yyvsp[(1) - (1)].text); | ||
| 18376 | + (yyval.feature).name = (yyvsp[0].text); | ||
| 18377 | } | ||
| 18378 | +#line 3660 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18379 | break; | ||
| 18380 | |||
| 18381 | case 134: | ||
| 18382 | -#line 1404 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18383 | +#line 1404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18384 | { | ||
| 18385 | - (yyval.feature) = (yyvsp[(2) - (3)].feature); | ||
| 18386 | + (yyval.feature) = (yyvsp[-1].feature); | ||
| 18387 | } | ||
| 18388 | +#line 3668 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18389 | break; | ||
| 18390 | |||
| 18391 | case 136: | ||
| 18392 | -#line 1410 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18393 | +#line 1410 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18394 | { | ||
| 18395 | - (yyval.feature) = (yyvsp[(1) - (3)].feature); | ||
| 18396 | + (yyval.feature) = (yyvsp[-2].feature); | ||
| 18397 | |||
| 18398 | - switch ((yyvsp[(3) - (3)].feature).token) | ||
| 18399 | + switch ((yyvsp[0].feature).token) | ||
| 18400 | { | ||
| 18401 | - case TK_NAME: (yyval.feature).name = (yyvsp[(3) - (3)].feature).name; break; | ||
| 18402 | + case TK_NAME: (yyval.feature).name = (yyvsp[0].feature).name; break; | ||
| 18403 | } | ||
| 18404 | } | ||
| 18405 | +#line 3681 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18406 | break; | ||
| 18407 | |||
| 18408 | case 137: | ||
| 18409 | -#line 1420 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18410 | +#line 1420 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18411 | { | ||
| 18412 | (yyval.feature).token = TK_NAME; | ||
| 18413 | |||
| 18414 | - (yyval.feature).name = (yyvsp[(3) - (3)].text); | ||
| 18415 | + (yyval.feature).name = (yyvsp[0].text); | ||
| 18416 | } | ||
| 18417 | +#line 3691 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18418 | break; | ||
| 18419 | |||
| 18420 | case 138: | ||
| 18421 | -#line 1427 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18422 | +#line 1427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18423 | { | ||
| 18424 | currentTimelineOrder = 0; | ||
| 18425 | } | ||
| 18426 | +#line 3699 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18427 | break; | ||
| 18428 | |||
| 18429 | case 139: | ||
| 18430 | -#line 1430 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18431 | +#line 1430 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18432 | { | ||
| 18433 | if (notSkipping()) | ||
| 18434 | { | ||
| 18435 | @@ -3989,25 +3721,28 @@ | ||
| 18436 | currentModule->nrtimelines++; | ||
| 18437 | } | ||
| 18438 | } | ||
| 18439 | +#line 3725 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18440 | break; | ||
| 18441 | |||
| 18442 | case 142: | ||
| 18443 | -#line 1457 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18444 | +#line 1457 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18445 | { | ||
| 18446 | newQualifier(currentModule, currentModule->nrtimelines, | ||
| 18447 | - currentTimelineOrder++, TRUE, (yyvsp[(1) - (1)].text), time_qualifier); | ||
| 18448 | + currentTimelineOrder++, TRUE, (yyvsp[0].text), time_qualifier); | ||
| 18449 | } | ||
| 18450 | +#line 3734 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18451 | break; | ||
| 18452 | |||
| 18453 | case 143: | ||
| 18454 | -#line 1463 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18455 | +#line 1463 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18456 | { | ||
| 18457 | currentPlatforms = NULL; | ||
| 18458 | } | ||
| 18459 | +#line 3742 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18460 | break; | ||
| 18461 | |||
| 18462 | case 144: | ||
| 18463 | -#line 1465 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18464 | +#line 1465 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18465 | { | ||
| 18466 | if (stackPtr >= MAX_NESTED_IF) | ||
| 18467 | yyerror("Internal error: increase the value of MAX_NESTED_IF"); | ||
| 18468 | @@ -4015,102 +3750,110 @@ | ||
| 18469 | /* Nested %Ifs are implicit logical ands. */ | ||
| 18470 | |||
| 18471 | if (stackPtr > 0) | ||
| 18472 | - (yyvsp[(4) - (5)].boolean) = ((yyvsp[(4) - (5)].boolean) && skipStack[stackPtr - 1]); | ||
| 18473 | + (yyvsp[-1].boolean) = ((yyvsp[-1].boolean) && skipStack[stackPtr - 1]); | ||
| 18474 | |||
| 18475 | - skipStack[stackPtr] = (yyvsp[(4) - (5)].boolean); | ||
| 18476 | + skipStack[stackPtr] = (yyvsp[-1].boolean); | ||
| 18477 | |||
| 18478 | platformStack[stackPtr] = currentPlatforms; | ||
| 18479 | |||
| 18480 | ++stackPtr; | ||
| 18481 | } | ||
| 18482 | +#line 3762 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18483 | break; | ||
| 18484 | |||
| 18485 | case 145: | ||
| 18486 | -#line 1482 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18487 | +#line 1482 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18488 | { | ||
| 18489 | - (yyval.boolean) = platOrFeature((yyvsp[(1) - (1)].text), FALSE); | ||
| 18490 | + (yyval.boolean) = platOrFeature((yyvsp[0].text), FALSE); | ||
| 18491 | } | ||
| 18492 | +#line 3770 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18493 | break; | ||
| 18494 | |||
| 18495 | case 146: | ||
| 18496 | -#line 1485 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18497 | +#line 1485 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18498 | { | ||
| 18499 | - (yyval.boolean) = platOrFeature((yyvsp[(2) - (2)].text), TRUE); | ||
| 18500 | + (yyval.boolean) = platOrFeature((yyvsp[0].text), TRUE); | ||
| 18501 | } | ||
| 18502 | +#line 3778 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18503 | break; | ||
| 18504 | |||
| 18505 | case 147: | ||
| 18506 | -#line 1488 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18507 | +#line 1488 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18508 | { | ||
| 18509 | - (yyval.boolean) = (platOrFeature((yyvsp[(3) - (3)].text), FALSE) || (yyvsp[(1) - (3)].boolean)); | ||
| 18510 | + (yyval.boolean) = (platOrFeature((yyvsp[0].text), FALSE) || (yyvsp[-2].boolean)); | ||
| 18511 | } | ||
| 18512 | +#line 3786 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18513 | break; | ||
| 18514 | |||
| 18515 | case 148: | ||
| 18516 | -#line 1491 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18517 | +#line 1491 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18518 | { | ||
| 18519 | - (yyval.boolean) = (platOrFeature((yyvsp[(4) - (4)].text), TRUE) || (yyvsp[(1) - (4)].boolean)); | ||
| 18520 | + (yyval.boolean) = (platOrFeature((yyvsp[0].text), TRUE) || (yyvsp[-3].boolean)); | ||
| 18521 | } | ||
| 18522 | +#line 3794 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18523 | break; | ||
| 18524 | |||
| 18525 | case 150: | ||
| 18526 | -#line 1497 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18527 | +#line 1497 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18528 | { | ||
| 18529 | - (yyval.boolean) = timePeriod((yyvsp[(1) - (3)].text), (yyvsp[(3) - (3)].text)); | ||
| 18530 | + (yyval.boolean) = timePeriod((yyvsp[-2].text), (yyvsp[0].text)); | ||
| 18531 | } | ||
| 18532 | +#line 3802 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18533 | break; | ||
| 18534 | |||
| 18535 | case 151: | ||
| 18536 | -#line 1502 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18537 | +#line 1502 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18538 | { | ||
| 18539 | if (stackPtr-- <= 0) | ||
| 18540 | yyerror("Too many %End directives"); | ||
| 18541 | |||
| 18542 | currentPlatforms = (stackPtr == 0 ? NULL : platformStack[stackPtr - 1]); | ||
| 18543 | } | ||
| 18544 | +#line 3813 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18545 | break; | ||
| 18546 | |||
| 18547 | case 152: | ||
| 18548 | -#line 1510 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18549 | +#line 1510 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18550 | { | ||
| 18551 | optFlag *of; | ||
| 18552 | |||
| 18553 | - if ((yyvsp[(3) - (3)].optflags).nrFlags != 0) | ||
| 18554 | + if ((yyvsp[0].optflags).nrFlags != 0) | ||
| 18555 | deprecated("%License annotations are deprecated, use arguments instead"); | ||
| 18556 | |||
| 18557 | - if ((yyvsp[(2) - (3)].license).type == NULL) | ||
| 18558 | - if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Type", string_flag)) != NULL) | ||
| 18559 | - (yyvsp[(2) - (3)].license).type = of->fvalue.sval; | ||
| 18560 | + if ((yyvsp[-1].license).type == NULL) | ||
| 18561 | + if ((of = getOptFlag(&(yyvsp[0].optflags), "Type", string_flag)) != NULL) | ||
| 18562 | + (yyvsp[-1].license).type = of->fvalue.sval; | ||
| 18563 | |||
| 18564 | - if ((yyvsp[(2) - (3)].license).licensee == NULL) | ||
| 18565 | - if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Licensee", string_flag)) != NULL) | ||
| 18566 | - (yyvsp[(2) - (3)].license).licensee = of->fvalue.sval; | ||
| 18567 | + if ((yyvsp[-1].license).licensee == NULL) | ||
| 18568 | + if ((of = getOptFlag(&(yyvsp[0].optflags), "Licensee", string_flag)) != NULL) | ||
| 18569 | + (yyvsp[-1].license).licensee = of->fvalue.sval; | ||
| 18570 | |||
| 18571 | - if ((yyvsp[(2) - (3)].license).signature == NULL) | ||
| 18572 | - if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Signature", string_flag)) != NULL) | ||
| 18573 | - (yyvsp[(2) - (3)].license).signature = of->fvalue.sval; | ||
| 18574 | + if ((yyvsp[-1].license).signature == NULL) | ||
| 18575 | + if ((of = getOptFlag(&(yyvsp[0].optflags), "Signature", string_flag)) != NULL) | ||
| 18576 | + (yyvsp[-1].license).signature = of->fvalue.sval; | ||
| 18577 | |||
| 18578 | - if ((yyvsp[(2) - (3)].license).timestamp == NULL) | ||
| 18579 | - if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "Timestamp", string_flag)) != NULL) | ||
| 18580 | - (yyvsp[(2) - (3)].license).timestamp = of->fvalue.sval; | ||
| 18581 | + if ((yyvsp[-1].license).timestamp == NULL) | ||
| 18582 | + if ((of = getOptFlag(&(yyvsp[0].optflags), "Timestamp", string_flag)) != NULL) | ||
| 18583 | + (yyvsp[-1].license).timestamp = of->fvalue.sval; | ||
| 18584 | |||
| 18585 | - if ((yyvsp[(2) - (3)].license).type == NULL) | ||
| 18586 | + if ((yyvsp[-1].license).type == NULL) | ||
| 18587 | yyerror("%License must have a 'type' argument"); | ||
| 18588 | |||
| 18589 | if (notSkipping()) | ||
| 18590 | { | ||
| 18591 | currentModule->license = sipMalloc(sizeof (licenseDef)); | ||
| 18592 | |||
| 18593 | - currentModule->license->type = (yyvsp[(2) - (3)].license).type; | ||
| 18594 | - currentModule->license->licensee = (yyvsp[(2) - (3)].license).licensee; | ||
| 18595 | - currentModule->license->sig = (yyvsp[(2) - (3)].license).signature; | ||
| 18596 | - currentModule->license->timestamp = (yyvsp[(2) - (3)].license).timestamp; | ||
| 18597 | + currentModule->license->type = (yyvsp[-1].license).type; | ||
| 18598 | + currentModule->license->licensee = (yyvsp[-1].license).licensee; | ||
| 18599 | + currentModule->license->sig = (yyvsp[-1].license).signature; | ||
| 18600 | + currentModule->license->timestamp = (yyvsp[-1].license).timestamp; | ||
| 18601 | } | ||
| 18602 | } | ||
| 18603 | +#line 3853 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18604 | break; | ||
| 18605 | |||
| 18606 | case 153: | ||
| 18607 | -#line 1547 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18608 | +#line 1547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18609 | { | ||
| 18610 | resetLexerState(); | ||
| 18611 | |||
| 18612 | @@ -4119,241 +3862,264 @@ | ||
| 18613 | (yyval.license).signature = NULL; | ||
| 18614 | (yyval.license).timestamp = NULL; | ||
| 18615 | } | ||
| 18616 | +#line 3866 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18617 | break; | ||
| 18618 | |||
| 18619 | case 154: | ||
| 18620 | -#line 1555 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18621 | +#line 1555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18622 | { | ||
| 18623 | - (yyval.license).type = (yyvsp[(1) - (1)].text); | ||
| 18624 | + (yyval.license).type = (yyvsp[0].text); | ||
| 18625 | (yyval.license).licensee = NULL; | ||
| 18626 | (yyval.license).signature = NULL; | ||
| 18627 | (yyval.license).timestamp = NULL; | ||
| 18628 | } | ||
| 18629 | +#line 3877 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18630 | break; | ||
| 18631 | |||
| 18632 | case 155: | ||
| 18633 | -#line 1561 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18634 | +#line 1561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18635 | { | ||
| 18636 | - (yyval.license) = (yyvsp[(2) - (3)].license); | ||
| 18637 | + (yyval.license) = (yyvsp[-1].license); | ||
| 18638 | } | ||
| 18639 | +#line 3885 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18640 | break; | ||
| 18641 | |||
| 18642 | case 157: | ||
| 18643 | -#line 1567 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18644 | +#line 1567 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18645 | { | ||
| 18646 | - (yyval.license) = (yyvsp[(1) - (3)].license); | ||
| 18647 | + (yyval.license) = (yyvsp[-2].license); | ||
| 18648 | |||
| 18649 | - switch ((yyvsp[(3) - (3)].license).token) | ||
| 18650 | + switch ((yyvsp[0].license).token) | ||
| 18651 | { | ||
| 18652 | - case TK_TYPE: (yyval.license).type = (yyvsp[(3) - (3)].license).type; break; | ||
| 18653 | - case TK_LICENSEE: (yyval.license).licensee = (yyvsp[(3) - (3)].license).licensee; break; | ||
| 18654 | - case TK_SIGNATURE: (yyval.license).signature = (yyvsp[(3) - (3)].license).signature; break; | ||
| 18655 | - case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[(3) - (3)].license).timestamp; break; | ||
| 18656 | + case TK_TYPE: (yyval.license).type = (yyvsp[0].license).type; break; | ||
| 18657 | + case TK_LICENSEE: (yyval.license).licensee = (yyvsp[0].license).licensee; break; | ||
| 18658 | + case TK_SIGNATURE: (yyval.license).signature = (yyvsp[0].license).signature; break; | ||
| 18659 | + case TK_TIMESTAMP: (yyval.license).timestamp = (yyvsp[0].license).timestamp; break; | ||
| 18660 | } | ||
| 18661 | } | ||
| 18662 | +#line 3901 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18663 | break; | ||
| 18664 | |||
| 18665 | case 158: | ||
| 18666 | -#line 1580 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18667 | +#line 1580 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18668 | { | ||
| 18669 | (yyval.license).token = TK_NAME; | ||
| 18670 | |||
| 18671 | - (yyval.license).type = (yyvsp[(3) - (3)].text); | ||
| 18672 | + (yyval.license).type = (yyvsp[0].text); | ||
| 18673 | (yyval.license).licensee = NULL; | ||
| 18674 | (yyval.license).signature = NULL; | ||
| 18675 | (yyval.license).timestamp = NULL; | ||
| 18676 | } | ||
| 18677 | +#line 3914 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18678 | break; | ||
| 18679 | |||
| 18680 | case 159: | ||
| 18681 | -#line 1588 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18682 | +#line 1588 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18683 | { | ||
| 18684 | (yyval.license).token = TK_LICENSEE; | ||
| 18685 | |||
| 18686 | (yyval.license).type = NULL; | ||
| 18687 | - (yyval.license).licensee = (yyvsp[(3) - (3)].text); | ||
| 18688 | + (yyval.license).licensee = (yyvsp[0].text); | ||
| 18689 | (yyval.license).signature = NULL; | ||
| 18690 | (yyval.license).timestamp = NULL; | ||
| 18691 | } | ||
| 18692 | +#line 3927 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18693 | break; | ||
| 18694 | |||
| 18695 | case 160: | ||
| 18696 | -#line 1596 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18697 | +#line 1596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18698 | { | ||
| 18699 | (yyval.license).token = TK_SIGNATURE; | ||
| 18700 | |||
| 18701 | (yyval.license).type = NULL; | ||
| 18702 | (yyval.license).licensee = NULL; | ||
| 18703 | - (yyval.license).signature = (yyvsp[(3) - (3)].text); | ||
| 18704 | + (yyval.license).signature = (yyvsp[0].text); | ||
| 18705 | (yyval.license).timestamp = NULL; | ||
| 18706 | } | ||
| 18707 | +#line 3940 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18708 | break; | ||
| 18709 | |||
| 18710 | case 161: | ||
| 18711 | -#line 1604 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18712 | +#line 1604 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18713 | { | ||
| 18714 | (yyval.license).token = TK_TIMESTAMP; | ||
| 18715 | |||
| 18716 | (yyval.license).type = NULL; | ||
| 18717 | (yyval.license).licensee = NULL; | ||
| 18718 | (yyval.license).signature = NULL; | ||
| 18719 | - (yyval.license).timestamp = (yyvsp[(3) - (3)].text); | ||
| 18720 | + (yyval.license).timestamp = (yyvsp[0].text); | ||
| 18721 | } | ||
| 18722 | +#line 3953 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18723 | break; | ||
| 18724 | |||
| 18725 | case 162: | ||
| 18726 | -#line 1614 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18727 | +#line 1614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18728 | { | ||
| 18729 | if (notSkipping()) | ||
| 18730 | { | ||
| 18731 | if (currentModule->defmetatype != NULL) | ||
| 18732 | yyerror("%DefaultMetatype has already been defined for this module"); | ||
| 18733 | |||
| 18734 | - currentModule->defmetatype = cacheName(currentSpec, (yyvsp[(2) - (2)].defmetatype).name); | ||
| 18735 | + currentModule->defmetatype = cacheName(currentSpec, (yyvsp[0].defmetatype).name); | ||
| 18736 | } | ||
| 18737 | } | ||
| 18738 | +#line 3967 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18739 | break; | ||
| 18740 | |||
| 18741 | case 163: | ||
| 18742 | -#line 1625 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18743 | +#line 1625 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18744 | { | ||
| 18745 | resetLexerState(); | ||
| 18746 | |||
| 18747 | - (yyval.defmetatype).name = (yyvsp[(1) - (1)].text); | ||
| 18748 | + (yyval.defmetatype).name = (yyvsp[0].text); | ||
| 18749 | } | ||
| 18750 | +#line 3977 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18751 | break; | ||
| 18752 | |||
| 18753 | case 164: | ||
| 18754 | -#line 1630 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18755 | +#line 1630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18756 | { | ||
| 18757 | - (yyval.defmetatype) = (yyvsp[(2) - (3)].defmetatype); | ||
| 18758 | + (yyval.defmetatype) = (yyvsp[-1].defmetatype); | ||
| 18759 | } | ||
| 18760 | +#line 3985 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18761 | break; | ||
| 18762 | |||
| 18763 | case 166: | ||
| 18764 | -#line 1636 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18765 | +#line 1636 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18766 | { | ||
| 18767 | - (yyval.defmetatype) = (yyvsp[(1) - (3)].defmetatype); | ||
| 18768 | + (yyval.defmetatype) = (yyvsp[-2].defmetatype); | ||
| 18769 | |||
| 18770 | - switch ((yyvsp[(3) - (3)].defmetatype).token) | ||
| 18771 | + switch ((yyvsp[0].defmetatype).token) | ||
| 18772 | { | ||
| 18773 | - case TK_NAME: (yyval.defmetatype).name = (yyvsp[(3) - (3)].defmetatype).name; break; | ||
| 18774 | + case TK_NAME: (yyval.defmetatype).name = (yyvsp[0].defmetatype).name; break; | ||
| 18775 | } | ||
| 18776 | } | ||
| 18777 | +#line 3998 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18778 | break; | ||
| 18779 | |||
| 18780 | case 167: | ||
| 18781 | -#line 1646 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18782 | +#line 1646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18783 | { | ||
| 18784 | (yyval.defmetatype).token = TK_NAME; | ||
| 18785 | |||
| 18786 | - (yyval.defmetatype).name = (yyvsp[(3) - (3)].text); | ||
| 18787 | + (yyval.defmetatype).name = (yyvsp[0].text); | ||
| 18788 | } | ||
| 18789 | +#line 4008 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18790 | break; | ||
| 18791 | |||
| 18792 | case 168: | ||
| 18793 | -#line 1653 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18794 | +#line 1653 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18795 | { | ||
| 18796 | if (notSkipping()) | ||
| 18797 | { | ||
| 18798 | if (currentModule->defsupertype != NULL) | ||
| 18799 | yyerror("%DefaultSupertype has already been defined for this module"); | ||
| 18800 | |||
| 18801 | - currentModule->defsupertype = cacheName(currentSpec, (yyvsp[(2) - (2)].defsupertype).name); | ||
| 18802 | + currentModule->defsupertype = cacheName(currentSpec, (yyvsp[0].defsupertype).name); | ||
| 18803 | } | ||
| 18804 | } | ||
| 18805 | +#line 4022 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18806 | break; | ||
| 18807 | |||
| 18808 | case 169: | ||
| 18809 | -#line 1664 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18810 | +#line 1664 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18811 | { | ||
| 18812 | resetLexerState(); | ||
| 18813 | |||
| 18814 | - (yyval.defsupertype).name = (yyvsp[(1) - (1)].text); | ||
| 18815 | + (yyval.defsupertype).name = (yyvsp[0].text); | ||
| 18816 | } | ||
| 18817 | +#line 4032 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18818 | break; | ||
| 18819 | |||
| 18820 | case 170: | ||
| 18821 | -#line 1669 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18822 | +#line 1669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18823 | { | ||
| 18824 | - (yyval.defsupertype) = (yyvsp[(2) - (3)].defsupertype); | ||
| 18825 | + (yyval.defsupertype) = (yyvsp[-1].defsupertype); | ||
| 18826 | } | ||
| 18827 | +#line 4040 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18828 | break; | ||
| 18829 | |||
| 18830 | case 172: | ||
| 18831 | -#line 1675 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18832 | +#line 1675 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18833 | { | ||
| 18834 | - (yyval.defsupertype) = (yyvsp[(1) - (3)].defsupertype); | ||
| 18835 | + (yyval.defsupertype) = (yyvsp[-2].defsupertype); | ||
| 18836 | |||
| 18837 | - switch ((yyvsp[(3) - (3)].defsupertype).token) | ||
| 18838 | + switch ((yyvsp[0].defsupertype).token) | ||
| 18839 | { | ||
| 18840 | - case TK_NAME: (yyval.defsupertype).name = (yyvsp[(3) - (3)].defsupertype).name; break; | ||
| 18841 | + case TK_NAME: (yyval.defsupertype).name = (yyvsp[0].defsupertype).name; break; | ||
| 18842 | } | ||
| 18843 | } | ||
| 18844 | +#line 4053 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18845 | break; | ||
| 18846 | |||
| 18847 | case 173: | ||
| 18848 | -#line 1685 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18849 | +#line 1685 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18850 | { | ||
| 18851 | (yyval.defsupertype).token = TK_NAME; | ||
| 18852 | |||
| 18853 | - (yyval.defsupertype).name = (yyvsp[(3) - (3)].text); | ||
| 18854 | + (yyval.defsupertype).name = (yyvsp[0].text); | ||
| 18855 | } | ||
| 18856 | +#line 4063 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18857 | break; | ||
| 18858 | |||
| 18859 | case 174: | ||
| 18860 | -#line 1692 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18861 | +#line 1692 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18862 | { | ||
| 18863 | if (notSkipping()) | ||
| 18864 | { | ||
| 18865 | classDef *ns; | ||
| 18866 | |||
| 18867 | ns = newClass(currentSpec, namespace_iface, NULL, | ||
| 18868 | - fullyQualifiedName((yyvsp[(2) - (2)].hiddenns).name), NULL, NULL, NULL, NULL); | ||
| 18869 | + fullyQualifiedName((yyvsp[0].hiddenns).name), NULL, NULL, NULL, NULL); | ||
| 18870 | setHiddenNamespace(ns); | ||
| 18871 | } | ||
| 18872 | } | ||
| 18873 | +#line 4078 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18874 | break; | ||
| 18875 | |||
| 18876 | case 175: | ||
| 18877 | -#line 1704 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18878 | +#line 1704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18879 | { | ||
| 18880 | resetLexerState(); | ||
| 18881 | |||
| 18882 | - (yyval.hiddenns).name = (yyvsp[(1) - (1)].scpvalp); | ||
| 18883 | + (yyval.hiddenns).name = (yyvsp[0].scpvalp); | ||
| 18884 | } | ||
| 18885 | +#line 4088 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18886 | break; | ||
| 18887 | |||
| 18888 | case 176: | ||
| 18889 | -#line 1709 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18890 | +#line 1709 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18891 | { | ||
| 18892 | - (yyval.hiddenns) = (yyvsp[(2) - (3)].hiddenns); | ||
| 18893 | + (yyval.hiddenns) = (yyvsp[-1].hiddenns); | ||
| 18894 | } | ||
| 18895 | +#line 4096 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18896 | break; | ||
| 18897 | |||
| 18898 | case 178: | ||
| 18899 | -#line 1715 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18900 | +#line 1715 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18901 | { | ||
| 18902 | - (yyval.hiddenns) = (yyvsp[(1) - (3)].hiddenns); | ||
| 18903 | + (yyval.hiddenns) = (yyvsp[-2].hiddenns); | ||
| 18904 | |||
| 18905 | - switch ((yyvsp[(3) - (3)].hiddenns).token) | ||
| 18906 | + switch ((yyvsp[0].hiddenns).token) | ||
| 18907 | { | ||
| 18908 | - case TK_NAME: (yyval.hiddenns).name = (yyvsp[(3) - (3)].hiddenns).name; break; | ||
| 18909 | + case TK_NAME: (yyval.hiddenns).name = (yyvsp[0].hiddenns).name; break; | ||
| 18910 | } | ||
| 18911 | } | ||
| 18912 | +#line 4109 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18913 | break; | ||
| 18914 | |||
| 18915 | case 179: | ||
| 18916 | -#line 1725 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18917 | +#line 1725 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18918 | { | ||
| 18919 | (yyval.hiddenns).token = TK_NAME; | ||
| 18920 | |||
| 18921 | - (yyval.hiddenns).name = (yyvsp[(3) - (3)].scpvalp); | ||
| 18922 | + (yyval.hiddenns).name = (yyvsp[0].scpvalp); | ||
| 18923 | } | ||
| 18924 | +#line 4119 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18925 | break; | ||
| 18926 | |||
| 18927 | case 180: | ||
| 18928 | -#line 1732 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18929 | +#line 1732 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18930 | { | ||
| 18931 | deprecated("%ConsolidatedModule is deprecated and will not be supported by SIP v5"); | ||
| 18932 | |||
| 18933 | @@ -4366,99 +4132,109 @@ | ||
| 18934 | if (currentModule->fullname != NULL) | ||
| 18935 | yyerror("%ConsolidatedModule must appear before any %Module or %CModule directive"); | ||
| 18936 | |||
| 18937 | - setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].consmodule).name); | ||
| 18938 | - currentModule->docstring = (yyvsp[(3) - (3)].consmodule).docstring; | ||
| 18939 | + setModuleName(currentSpec, currentModule, (yyvsp[-1].consmodule).name); | ||
| 18940 | + currentModule->docstring = (yyvsp[0].consmodule).docstring; | ||
| 18941 | |||
| 18942 | setIsConsolidated(currentModule); | ||
| 18943 | } | ||
| 18944 | } | ||
| 18945 | +#line 4142 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18946 | break; | ||
| 18947 | |||
| 18948 | case 181: | ||
| 18949 | -#line 1752 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18950 | +#line 1752 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18951 | { | ||
| 18952 | resetLexerState(); | ||
| 18953 | |||
| 18954 | - (yyval.consmodule).name = (yyvsp[(1) - (1)].text); | ||
| 18955 | + (yyval.consmodule).name = (yyvsp[0].text); | ||
| 18956 | } | ||
| 18957 | +#line 4152 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18958 | break; | ||
| 18959 | |||
| 18960 | case 182: | ||
| 18961 | -#line 1757 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18962 | +#line 1757 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18963 | { | ||
| 18964 | - (yyval.consmodule) = (yyvsp[(2) - (3)].consmodule); | ||
| 18965 | + (yyval.consmodule) = (yyvsp[-1].consmodule); | ||
| 18966 | } | ||
| 18967 | +#line 4160 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18968 | break; | ||
| 18969 | |||
| 18970 | case 184: | ||
| 18971 | -#line 1763 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18972 | +#line 1763 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18973 | { | ||
| 18974 | - (yyval.consmodule) = (yyvsp[(1) - (3)].consmodule); | ||
| 18975 | + (yyval.consmodule) = (yyvsp[-2].consmodule); | ||
| 18976 | |||
| 18977 | - switch ((yyvsp[(3) - (3)].consmodule).token) | ||
| 18978 | + switch ((yyvsp[0].consmodule).token) | ||
| 18979 | { | ||
| 18980 | - case TK_NAME: (yyval.consmodule).name = (yyvsp[(3) - (3)].consmodule).name; break; | ||
| 18981 | + case TK_NAME: (yyval.consmodule).name = (yyvsp[0].consmodule).name; break; | ||
| 18982 | } | ||
| 18983 | } | ||
| 18984 | +#line 4173 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18985 | break; | ||
| 18986 | |||
| 18987 | case 185: | ||
| 18988 | -#line 1773 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 18989 | +#line 1773 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 18990 | { | ||
| 18991 | (yyval.consmodule).token = TK_NAME; | ||
| 18992 | |||
| 18993 | - (yyval.consmodule).name = (yyvsp[(3) - (3)].text); | ||
| 18994 | + (yyval.consmodule).name = (yyvsp[0].text); | ||
| 18995 | } | ||
| 18996 | +#line 4183 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 18997 | break; | ||
| 18998 | |||
| 18999 | case 186: | ||
| 19000 | -#line 1780 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19001 | +#line 1780 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19002 | { | ||
| 19003 | (yyval.consmodule).token = 0; | ||
| 19004 | (yyval.consmodule).docstring = NULL; | ||
| 19005 | } | ||
| 19006 | +#line 4192 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19007 | break; | ||
| 19008 | |||
| 19009 | case 187: | ||
| 19010 | -#line 1784 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19011 | +#line 1784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19012 | { | ||
| 19013 | - (yyval.consmodule) = (yyvsp[(2) - (4)].consmodule); | ||
| 19014 | + (yyval.consmodule) = (yyvsp[-2].consmodule); | ||
| 19015 | } | ||
| 19016 | +#line 4200 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19017 | break; | ||
| 19018 | |||
| 19019 | case 189: | ||
| 19020 | -#line 1790 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19021 | +#line 1790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19022 | { | ||
| 19023 | - (yyval.consmodule) = (yyvsp[(1) - (2)].consmodule); | ||
| 19024 | + (yyval.consmodule) = (yyvsp[-1].consmodule); | ||
| 19025 | |||
| 19026 | - switch ((yyvsp[(2) - (2)].consmodule).token) | ||
| 19027 | + switch ((yyvsp[0].consmodule).token) | ||
| 19028 | { | ||
| 19029 | - case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[(2) - (2)].consmodule).docstring; break; | ||
| 19030 | + case TK_DOCSTRING: (yyval.consmodule).docstring = (yyvsp[0].consmodule).docstring; break; | ||
| 19031 | } | ||
| 19032 | } | ||
| 19033 | +#line 4213 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19034 | break; | ||
| 19035 | |||
| 19036 | case 190: | ||
| 19037 | -#line 1800 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19038 | +#line 1800 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19039 | { | ||
| 19040 | (yyval.consmodule).token = TK_IF; | ||
| 19041 | } | ||
| 19042 | +#line 4221 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19043 | break; | ||
| 19044 | |||
| 19045 | case 191: | ||
| 19046 | -#line 1803 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19047 | +#line 1803 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19048 | { | ||
| 19049 | (yyval.consmodule).token = TK_END; | ||
| 19050 | } | ||
| 19051 | +#line 4229 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19052 | break; | ||
| 19053 | |||
| 19054 | case 192: | ||
| 19055 | -#line 1806 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19056 | +#line 1806 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19057 | { | ||
| 19058 | if (notSkipping()) | ||
| 19059 | { | ||
| 19060 | (yyval.consmodule).token = TK_DOCSTRING; | ||
| 19061 | - (yyval.consmodule).docstring = (yyvsp[(1) - (1)].docstr); | ||
| 19062 | + (yyval.consmodule).docstring = (yyvsp[0].docstr); | ||
| 19063 | } | ||
| 19064 | else | ||
| 19065 | { | ||
| 19066 | @@ -4466,10 +4242,11 @@ | ||
| 19067 | (yyval.consmodule).docstring = NULL; | ||
| 19068 | } | ||
| 19069 | } | ||
| 19070 | +#line 4246 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19071 | break; | ||
| 19072 | |||
| 19073 | case 193: | ||
| 19074 | -#line 1820 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19075 | +#line 1820 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19076 | { | ||
| 19077 | if (notSkipping()) | ||
| 19078 | { | ||
| 19079 | @@ -4480,99 +4257,109 @@ | ||
| 19080 | if (currentModule->fullname != NULL) | ||
| 19081 | yyerror("%CompositeModule must appear before any %Module directive"); | ||
| 19082 | |||
| 19083 | - setModuleName(currentSpec, currentModule, (yyvsp[(2) - (3)].compmodule).name); | ||
| 19084 | - currentModule->docstring = (yyvsp[(3) - (3)].compmodule).docstring; | ||
| 19085 | + setModuleName(currentSpec, currentModule, (yyvsp[-1].compmodule).name); | ||
| 19086 | + currentModule->docstring = (yyvsp[0].compmodule).docstring; | ||
| 19087 | |||
| 19088 | setIsComposite(currentModule); | ||
| 19089 | } | ||
| 19090 | } | ||
| 19091 | +#line 4267 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19092 | break; | ||
| 19093 | |||
| 19094 | case 194: | ||
| 19095 | -#line 1838 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19096 | +#line 1838 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19097 | { | ||
| 19098 | resetLexerState(); | ||
| 19099 | |||
| 19100 | - (yyval.compmodule).name = (yyvsp[(1) - (1)].text); | ||
| 19101 | + (yyval.compmodule).name = (yyvsp[0].text); | ||
| 19102 | } | ||
| 19103 | +#line 4277 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19104 | break; | ||
| 19105 | |||
| 19106 | case 195: | ||
| 19107 | -#line 1843 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19108 | +#line 1843 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19109 | { | ||
| 19110 | - (yyval.compmodule) = (yyvsp[(2) - (3)].compmodule); | ||
| 19111 | + (yyval.compmodule) = (yyvsp[-1].compmodule); | ||
| 19112 | } | ||
| 19113 | +#line 4285 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19114 | break; | ||
| 19115 | |||
| 19116 | case 197: | ||
| 19117 | -#line 1849 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19118 | +#line 1849 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19119 | { | ||
| 19120 | - (yyval.compmodule) = (yyvsp[(1) - (3)].compmodule); | ||
| 19121 | + (yyval.compmodule) = (yyvsp[-2].compmodule); | ||
| 19122 | |||
| 19123 | - switch ((yyvsp[(3) - (3)].compmodule).token) | ||
| 19124 | + switch ((yyvsp[0].compmodule).token) | ||
| 19125 | { | ||
| 19126 | - case TK_NAME: (yyval.compmodule).name = (yyvsp[(3) - (3)].compmodule).name; break; | ||
| 19127 | + case TK_NAME: (yyval.compmodule).name = (yyvsp[0].compmodule).name; break; | ||
| 19128 | } | ||
| 19129 | } | ||
| 19130 | +#line 4298 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19131 | break; | ||
| 19132 | |||
| 19133 | case 198: | ||
| 19134 | -#line 1859 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19135 | +#line 1859 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19136 | { | ||
| 19137 | (yyval.compmodule).token = TK_NAME; | ||
| 19138 | |||
| 19139 | - (yyval.compmodule).name = (yyvsp[(3) - (3)].text); | ||
| 19140 | + (yyval.compmodule).name = (yyvsp[0].text); | ||
| 19141 | } | ||
| 19142 | +#line 4308 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19143 | break; | ||
| 19144 | |||
| 19145 | case 199: | ||
| 19146 | -#line 1866 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19147 | +#line 1866 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19148 | { | ||
| 19149 | (yyval.compmodule).token = 0; | ||
| 19150 | (yyval.compmodule).docstring = NULL; | ||
| 19151 | } | ||
| 19152 | +#line 4317 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19153 | break; | ||
| 19154 | |||
| 19155 | case 200: | ||
| 19156 | -#line 1870 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19157 | +#line 1870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19158 | { | ||
| 19159 | - (yyval.compmodule) = (yyvsp[(2) - (4)].compmodule); | ||
| 19160 | + (yyval.compmodule) = (yyvsp[-2].compmodule); | ||
| 19161 | } | ||
| 19162 | +#line 4325 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19163 | break; | ||
| 19164 | |||
| 19165 | case 202: | ||
| 19166 | -#line 1876 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19167 | +#line 1876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19168 | { | ||
| 19169 | - (yyval.compmodule) = (yyvsp[(1) - (2)].compmodule); | ||
| 19170 | + (yyval.compmodule) = (yyvsp[-1].compmodule); | ||
| 19171 | |||
| 19172 | - switch ((yyvsp[(2) - (2)].compmodule).token) | ||
| 19173 | + switch ((yyvsp[0].compmodule).token) | ||
| 19174 | { | ||
| 19175 | - case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[(2) - (2)].compmodule).docstring; break; | ||
| 19176 | + case TK_DOCSTRING: (yyval.compmodule).docstring = (yyvsp[0].compmodule).docstring; break; | ||
| 19177 | } | ||
| 19178 | } | ||
| 19179 | +#line 4338 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19180 | break; | ||
| 19181 | |||
| 19182 | case 203: | ||
| 19183 | -#line 1886 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19184 | +#line 1886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19185 | { | ||
| 19186 | (yyval.compmodule).token = TK_IF; | ||
| 19187 | } | ||
| 19188 | +#line 4346 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19189 | break; | ||
| 19190 | |||
| 19191 | case 204: | ||
| 19192 | -#line 1889 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19193 | +#line 1889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19194 | { | ||
| 19195 | (yyval.compmodule).token = TK_END; | ||
| 19196 | } | ||
| 19197 | +#line 4354 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19198 | break; | ||
| 19199 | |||
| 19200 | case 205: | ||
| 19201 | -#line 1892 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19202 | +#line 1892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19203 | { | ||
| 19204 | if (notSkipping()) | ||
| 19205 | { | ||
| 19206 | (yyval.compmodule).token = TK_DOCSTRING; | ||
| 19207 | - (yyval.compmodule).docstring = (yyvsp[(1) - (1)].docstr); | ||
| 19208 | + (yyval.compmodule).docstring = (yyvsp[0].docstr); | ||
| 19209 | } | ||
| 19210 | else | ||
| 19211 | { | ||
| 19212 | @@ -4580,90 +4367,97 @@ | ||
| 19213 | (yyval.compmodule).docstring = NULL; | ||
| 19214 | } | ||
| 19215 | } | ||
| 19216 | +#line 4371 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19217 | break; | ||
| 19218 | |||
| 19219 | case 206: | ||
| 19220 | -#line 1906 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19221 | +#line 1906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19222 | { | ||
| 19223 | - if ((yyvsp[(2) - (3)].module).name == NULL) | ||
| 19224 | + if ((yyvsp[-1].module).name == NULL) | ||
| 19225 | yyerror("%Module must have a 'name' argument"); | ||
| 19226 | |||
| 19227 | if (notSkipping()) | ||
| 19228 | currentModule = configureModule(currentSpec, currentModule, | ||
| 19229 | - currentContext.filename, (yyvsp[(2) - (3)].module).name, (yyvsp[(2) - (3)].module).c_module, | ||
| 19230 | - (yyvsp[(2) - (3)].module).kwargs, (yyvsp[(2) - (3)].module).use_arg_names, (yyvsp[(2) - (3)].module).use_limited_api, | ||
| 19231 | - (yyvsp[(2) - (3)].module).call_super_init, (yyvsp[(2) - (3)].module).all_raise_py_exc, | ||
| 19232 | - (yyvsp[(2) - (3)].module).def_error_handler, (yyvsp[(3) - (3)].module).docstring); | ||
| 19233 | + currentContext.filename, (yyvsp[-1].module).name, (yyvsp[-1].module).c_module, | ||
| 19234 | + (yyvsp[-1].module).kwargs, (yyvsp[-1].module).use_arg_names, (yyvsp[-1].module).use_limited_api, | ||
| 19235 | + (yyvsp[-1].module).call_super_init, (yyvsp[-1].module).all_raise_py_exc, | ||
| 19236 | + (yyvsp[-1].module).def_error_handler, (yyvsp[0].module).docstring); | ||
| 19237 | } | ||
| 19238 | +#line 4387 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19239 | break; | ||
| 19240 | |||
| 19241 | case 207: | ||
| 19242 | -#line 1917 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19243 | +#line 1917 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19244 | { | ||
| 19245 | deprecated("%CModule is deprecated, use %Module and the 'language' argument instead"); | ||
| 19246 | |||
| 19247 | if (notSkipping()) | ||
| 19248 | currentModule = configureModule(currentSpec, currentModule, | ||
| 19249 | - currentContext.filename, (yyvsp[(2) - (3)].text), TRUE, defaultKwArgs, | ||
| 19250 | + currentContext.filename, (yyvsp[-1].text), TRUE, defaultKwArgs, | ||
| 19251 | FALSE, FALSE, -1, FALSE, NULL, NULL); | ||
| 19252 | } | ||
| 19253 | +#line 4400 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19254 | break; | ||
| 19255 | |||
| 19256 | case 208: | ||
| 19257 | -#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19258 | +#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19259 | {resetLexerState();} | ||
| 19260 | +#line 4406 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19261 | break; | ||
| 19262 | |||
| 19263 | case 209: | ||
| 19264 | -#line 1927 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19265 | +#line 1927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19266 | { | ||
| 19267 | - if ((yyvsp[(3) - (3)].number) >= 0) | ||
| 19268 | + if ((yyvsp[0].number) >= 0) | ||
| 19269 | deprecated("%Module version number should be specified using the 'version' argument"); | ||
| 19270 | |||
| 19271 | (yyval.module).c_module = FALSE; | ||
| 19272 | (yyval.module).kwargs = defaultKwArgs; | ||
| 19273 | - (yyval.module).name = (yyvsp[(1) - (3)].text); | ||
| 19274 | + (yyval.module).name = (yyvsp[-2].text); | ||
| 19275 | (yyval.module).use_arg_names = FALSE; | ||
| 19276 | (yyval.module).use_limited_api = FALSE; | ||
| 19277 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19278 | (yyval.module).call_super_init = -1; | ||
| 19279 | (yyval.module).def_error_handler = NULL; | ||
| 19280 | } | ||
| 19281 | +#line 4424 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19282 | break; | ||
| 19283 | |||
| 19284 | case 210: | ||
| 19285 | -#line 1940 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19286 | +#line 1940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19287 | { | ||
| 19288 | - (yyval.module) = (yyvsp[(2) - (3)].module); | ||
| 19289 | + (yyval.module) = (yyvsp[-1].module); | ||
| 19290 | } | ||
| 19291 | +#line 4432 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19292 | break; | ||
| 19293 | |||
| 19294 | case 212: | ||
| 19295 | -#line 1946 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19296 | +#line 1946 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19297 | { | ||
| 19298 | - (yyval.module) = (yyvsp[(1) - (3)].module); | ||
| 19299 | + (yyval.module) = (yyvsp[-2].module); | ||
| 19300 | |||
| 19301 | - switch ((yyvsp[(3) - (3)].module).token) | ||
| 19302 | + switch ((yyvsp[0].module).token) | ||
| 19303 | { | ||
| 19304 | - case TK_KWARGS: (yyval.module).kwargs = (yyvsp[(3) - (3)].module).kwargs; break; | ||
| 19305 | - case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[(3) - (3)].module).c_module; break; | ||
| 19306 | - case TK_NAME: (yyval.module).name = (yyvsp[(3) - (3)].module).name; break; | ||
| 19307 | - case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[(3) - (3)].module).use_arg_names; break; | ||
| 19308 | - case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[(3) - (3)].module).use_limited_api; break; | ||
| 19309 | - case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].module).all_raise_py_exc; break; | ||
| 19310 | - case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[(3) - (3)].module).call_super_init; break; | ||
| 19311 | - case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[(3) - (3)].module).def_error_handler; break; | ||
| 19312 | + case TK_KWARGS: (yyval.module).kwargs = (yyvsp[0].module).kwargs; break; | ||
| 19313 | + case TK_LANGUAGE: (yyval.module).c_module = (yyvsp[0].module).c_module; break; | ||
| 19314 | + case TK_NAME: (yyval.module).name = (yyvsp[0].module).name; break; | ||
| 19315 | + case TK_USEARGNAMES: (yyval.module).use_arg_names = (yyvsp[0].module).use_arg_names; break; | ||
| 19316 | + case TK_USELIMITEDAPI: (yyval.module).use_limited_api = (yyvsp[0].module).use_limited_api; break; | ||
| 19317 | + case TK_ALLRAISEPYEXC: (yyval.module).all_raise_py_exc = (yyvsp[0].module).all_raise_py_exc; break; | ||
| 19318 | + case TK_CALLSUPERINIT: (yyval.module).call_super_init = (yyvsp[0].module).call_super_init; break; | ||
| 19319 | + case TK_DEFERRORHANDLER: (yyval.module).def_error_handler = (yyvsp[0].module).def_error_handler; break; | ||
| 19320 | } | ||
| 19321 | } | ||
| 19322 | +#line 4452 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19323 | break; | ||
| 19324 | |||
| 19325 | case 213: | ||
| 19326 | -#line 1963 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19327 | +#line 1963 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19328 | { | ||
| 19329 | (yyval.module).token = TK_KWARGS; | ||
| 19330 | |||
| 19331 | (yyval.module).c_module = FALSE; | ||
| 19332 | - (yyval.module).kwargs = convertKwArgs((yyvsp[(3) - (3)].text)); | ||
| 19333 | + (yyval.module).kwargs = convertKwArgs((yyvsp[0].text)); | ||
| 19334 | (yyval.module).name = NULL; | ||
| 19335 | (yyval.module).use_arg_names = FALSE; | ||
| 19336 | (yyval.module).use_limited_api = FALSE; | ||
| 19337 | @@ -4671,16 +4465,17 @@ | ||
| 19338 | (yyval.module).call_super_init = -1; | ||
| 19339 | (yyval.module).def_error_handler = NULL; | ||
| 19340 | } | ||
| 19341 | +#line 4469 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19342 | break; | ||
| 19343 | |||
| 19344 | case 214: | ||
| 19345 | -#line 1975 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19346 | +#line 1975 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19347 | { | ||
| 19348 | (yyval.module).token = TK_LANGUAGE; | ||
| 19349 | |||
| 19350 | - if (strcmp((yyvsp[(3) - (3)].text), "C++") == 0) | ||
| 19351 | + if (strcmp((yyvsp[0].text), "C++") == 0) | ||
| 19352 | (yyval.module).c_module = FALSE; | ||
| 19353 | - else if (strcmp((yyvsp[(3) - (3)].text), "C") == 0) | ||
| 19354 | + else if (strcmp((yyvsp[0].text), "C") == 0) | ||
| 19355 | (yyval.module).c_module = TRUE; | ||
| 19356 | else | ||
| 19357 | yyerror("%Module 'language' argument must be either \"C++\" or \"C\""); | ||
| 19358 | @@ -4693,42 +4488,45 @@ | ||
| 19359 | (yyval.module).call_super_init = -1; | ||
| 19360 | (yyval.module).def_error_handler = NULL; | ||
| 19361 | } | ||
| 19362 | +#line 4492 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19363 | break; | ||
| 19364 | |||
| 19365 | case 215: | ||
| 19366 | -#line 1993 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19367 | +#line 1993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19368 | { | ||
| 19369 | (yyval.module).token = TK_NAME; | ||
| 19370 | |||
| 19371 | (yyval.module).c_module = FALSE; | ||
| 19372 | (yyval.module).kwargs = defaultKwArgs; | ||
| 19373 | - (yyval.module).name = (yyvsp[(3) - (3)].text); | ||
| 19374 | + (yyval.module).name = (yyvsp[0].text); | ||
| 19375 | (yyval.module).use_arg_names = FALSE; | ||
| 19376 | (yyval.module).use_limited_api = FALSE; | ||
| 19377 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19378 | (yyval.module).call_super_init = -1; | ||
| 19379 | (yyval.module).def_error_handler = NULL; | ||
| 19380 | } | ||
| 19381 | +#line 4509 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19382 | break; | ||
| 19383 | |||
| 19384 | case 216: | ||
| 19385 | -#line 2005 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19386 | +#line 2005 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19387 | { | ||
| 19388 | (yyval.module).token = TK_USEARGNAMES; | ||
| 19389 | |||
| 19390 | (yyval.module).c_module = FALSE; | ||
| 19391 | (yyval.module).kwargs = defaultKwArgs; | ||
| 19392 | (yyval.module).name = NULL; | ||
| 19393 | - (yyval.module).use_arg_names = (yyvsp[(3) - (3)].boolean); | ||
| 19394 | + (yyval.module).use_arg_names = (yyvsp[0].boolean); | ||
| 19395 | (yyval.module).use_limited_api = FALSE; | ||
| 19396 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19397 | (yyval.module).call_super_init = -1; | ||
| 19398 | (yyval.module).def_error_handler = NULL; | ||
| 19399 | } | ||
| 19400 | +#line 4526 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19401 | break; | ||
| 19402 | |||
| 19403 | case 217: | ||
| 19404 | -#line 2017 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19405 | +#line 2017 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19406 | { | ||
| 19407 | (yyval.module).token = TK_USELIMITEDAPI; | ||
| 19408 | |||
| 19409 | @@ -4736,15 +4534,16 @@ | ||
| 19410 | (yyval.module).kwargs = defaultKwArgs; | ||
| 19411 | (yyval.module).name = NULL; | ||
| 19412 | (yyval.module).use_arg_names = FALSE; | ||
| 19413 | - (yyval.module).use_limited_api = (yyvsp[(3) - (3)].boolean); | ||
| 19414 | + (yyval.module).use_limited_api = (yyvsp[0].boolean); | ||
| 19415 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19416 | (yyval.module).call_super_init = -1; | ||
| 19417 | (yyval.module).def_error_handler = NULL; | ||
| 19418 | } | ||
| 19419 | +#line 4543 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19420 | break; | ||
| 19421 | |||
| 19422 | case 218: | ||
| 19423 | -#line 2029 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19424 | +#line 2029 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19425 | { | ||
| 19426 | (yyval.module).token = TK_ALLRAISEPYEXC; | ||
| 19427 | |||
| 19428 | @@ -4753,14 +4552,15 @@ | ||
| 19429 | (yyval.module).name = NULL; | ||
| 19430 | (yyval.module).use_arg_names = FALSE; | ||
| 19431 | (yyval.module).use_limited_api = FALSE; | ||
| 19432 | - (yyval.module).all_raise_py_exc = (yyvsp[(3) - (3)].boolean); | ||
| 19433 | + (yyval.module).all_raise_py_exc = (yyvsp[0].boolean); | ||
| 19434 | (yyval.module).call_super_init = -1; | ||
| 19435 | (yyval.module).def_error_handler = NULL; | ||
| 19436 | } | ||
| 19437 | +#line 4560 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19438 | break; | ||
| 19439 | |||
| 19440 | case 219: | ||
| 19441 | -#line 2041 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19442 | +#line 2041 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19443 | { | ||
| 19444 | (yyval.module).token = TK_CALLSUPERINIT; | ||
| 19445 | |||
| 19446 | @@ -4770,13 +4570,14 @@ | ||
| 19447 | (yyval.module).use_arg_names = FALSE; | ||
| 19448 | (yyval.module).use_limited_api = FALSE; | ||
| 19449 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19450 | - (yyval.module).call_super_init = (yyvsp[(3) - (3)].boolean); | ||
| 19451 | + (yyval.module).call_super_init = (yyvsp[0].boolean); | ||
| 19452 | (yyval.module).def_error_handler = NULL; | ||
| 19453 | } | ||
| 19454 | +#line 4577 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19455 | break; | ||
| 19456 | |||
| 19457 | case 220: | ||
| 19458 | -#line 2053 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19459 | +#line 2053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19460 | { | ||
| 19461 | (yyval.module).token = TK_DEFERRORHANDLER; | ||
| 19462 | |||
| 19463 | @@ -4787,16 +4588,17 @@ | ||
| 19464 | (yyval.module).use_limited_api = FALSE; | ||
| 19465 | (yyval.module).all_raise_py_exc = FALSE; | ||
| 19466 | (yyval.module).call_super_init = -1; | ||
| 19467 | - (yyval.module).def_error_handler = (yyvsp[(3) - (3)].text); | ||
| 19468 | + (yyval.module).def_error_handler = (yyvsp[0].text); | ||
| 19469 | } | ||
| 19470 | +#line 4594 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19471 | break; | ||
| 19472 | |||
| 19473 | case 221: | ||
| 19474 | -#line 2065 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19475 | +#line 2065 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19476 | { | ||
| 19477 | deprecated("%Module version numbers are deprecated and ignored"); | ||
| 19478 | |||
| 19479 | - if ((yyvsp[(3) - (3)].number) < 0) | ||
| 19480 | + if ((yyvsp[0].number) < 0) | ||
| 19481 | yyerror("%Module 'version' argument cannot be negative"); | ||
| 19482 | |||
| 19483 | (yyval.module).token = TK_VERSION; | ||
| 19484 | @@ -4810,63 +4612,70 @@ | ||
| 19485 | (yyval.module).call_super_init = -1; | ||
| 19486 | (yyval.module).def_error_handler = NULL; | ||
| 19487 | } | ||
| 19488 | +#line 4616 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19489 | break; | ||
| 19490 | |||
| 19491 | case 222: | ||
| 19492 | -#line 2084 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19493 | +#line 2084 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19494 | { | ||
| 19495 | (yyval.module).token = 0; | ||
| 19496 | (yyval.module).docstring = NULL; | ||
| 19497 | } | ||
| 19498 | +#line 4625 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19499 | break; | ||
| 19500 | |||
| 19501 | case 223: | ||
| 19502 | -#line 2088 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19503 | +#line 2088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19504 | { | ||
| 19505 | - (yyval.module) = (yyvsp[(2) - (4)].module); | ||
| 19506 | + (yyval.module) = (yyvsp[-2].module); | ||
| 19507 | } | ||
| 19508 | +#line 4633 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19509 | break; | ||
| 19510 | |||
| 19511 | case 225: | ||
| 19512 | -#line 2094 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19513 | +#line 2094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19514 | { | ||
| 19515 | - (yyval.module) = (yyvsp[(1) - (2)].module); | ||
| 19516 | + (yyval.module) = (yyvsp[-1].module); | ||
| 19517 | |||
| 19518 | - switch ((yyvsp[(2) - (2)].module).token) | ||
| 19519 | + switch ((yyvsp[0].module).token) | ||
| 19520 | { | ||
| 19521 | - case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[(2) - (2)].module).docstring; break; | ||
| 19522 | + case TK_DOCSTRING: (yyval.module).docstring = (yyvsp[0].module).docstring; break; | ||
| 19523 | } | ||
| 19524 | } | ||
| 19525 | +#line 4646 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19526 | break; | ||
| 19527 | |||
| 19528 | case 226: | ||
| 19529 | -#line 2104 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19530 | +#line 2104 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19531 | { | ||
| 19532 | (yyval.module).token = TK_IF; | ||
| 19533 | } | ||
| 19534 | +#line 4654 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19535 | break; | ||
| 19536 | |||
| 19537 | case 227: | ||
| 19538 | -#line 2107 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19539 | +#line 2107 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19540 | { | ||
| 19541 | (yyval.module).token = TK_END; | ||
| 19542 | } | ||
| 19543 | +#line 4662 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19544 | break; | ||
| 19545 | |||
| 19546 | case 228: | ||
| 19547 | -#line 2110 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19548 | +#line 2110 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19549 | { | ||
| 19550 | (yyval.module).token = TK_AUTOPYNAME; | ||
| 19551 | } | ||
| 19552 | +#line 4670 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19553 | break; | ||
| 19554 | |||
| 19555 | case 229: | ||
| 19556 | -#line 2113 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19557 | +#line 2113 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19558 | { | ||
| 19559 | if (notSkipping()) | ||
| 19560 | { | ||
| 19561 | (yyval.module).token = TK_DOCSTRING; | ||
| 19562 | - (yyval.module).docstring = (yyvsp[(1) - (1)].docstr); | ||
| 19563 | + (yyval.module).docstring = (yyvsp[0].docstr); | ||
| 19564 | } | ||
| 19565 | else | ||
| 19566 | { | ||
| 19567 | @@ -4874,10 +4683,11 @@ | ||
| 19568 | (yyval.module).docstring = NULL; | ||
| 19569 | } | ||
| 19570 | } | ||
| 19571 | +#line 4687 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19572 | break; | ||
| 19573 | |||
| 19574 | case 231: | ||
| 19575 | -#line 2128 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19576 | +#line 2128 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19577 | { | ||
| 19578 | /* | ||
| 19579 | * The grammar design is a bit broken and this is the easiest way | ||
| 19580 | @@ -4886,435 +4696,487 @@ | ||
| 19581 | |||
| 19582 | char *cp; | ||
| 19583 | |||
| 19584 | - for (cp = (yyvsp[(1) - (1)].text); *cp != '\0'; ++cp) | ||
| 19585 | + for (cp = (yyvsp[0].text); *cp != '\0'; ++cp) | ||
| 19586 | if (*cp != '.' && *cp != '_' && !isalnum(*cp)) | ||
| 19587 | yyerror("Invalid character in name"); | ||
| 19588 | |||
| 19589 | - (yyval.text) = (yyvsp[(1) - (1)].text); | ||
| 19590 | + (yyval.text) = (yyvsp[0].text); | ||
| 19591 | } | ||
| 19592 | +#line 4706 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19593 | break; | ||
| 19594 | |||
| 19595 | case 232: | ||
| 19596 | -#line 2144 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19597 | +#line 2144 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19598 | { | ||
| 19599 | (yyval.number) = -1; | ||
| 19600 | } | ||
| 19601 | +#line 4714 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19602 | break; | ||
| 19603 | |||
| 19604 | case 234: | ||
| 19605 | -#line 2150 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19606 | +#line 2150 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19607 | { | ||
| 19608 | - if ((yyvsp[(2) - (2)].include).name == NULL) | ||
| 19609 | + if ((yyvsp[0].include).name == NULL) | ||
| 19610 | yyerror("%Include must have a 'name' argument"); | ||
| 19611 | |||
| 19612 | if (notSkipping()) | ||
| 19613 | - parseFile(NULL, (yyvsp[(2) - (2)].include).name, NULL, (yyvsp[(2) - (2)].include).optional); | ||
| 19614 | + parseFile(NULL, (yyvsp[0].include).name, NULL, (yyvsp[0].include).optional); | ||
| 19615 | } | ||
| 19616 | +#line 4726 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19617 | break; | ||
| 19618 | |||
| 19619 | case 235: | ||
| 19620 | -#line 2159 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19621 | +#line 2159 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19622 | { | ||
| 19623 | resetLexerState(); | ||
| 19624 | |||
| 19625 | - (yyval.include).name = (yyvsp[(1) - (1)].text); | ||
| 19626 | + (yyval.include).name = (yyvsp[0].text); | ||
| 19627 | (yyval.include).optional = FALSE; | ||
| 19628 | } | ||
| 19629 | +#line 4737 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19630 | break; | ||
| 19631 | |||
| 19632 | case 236: | ||
| 19633 | -#line 2165 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19634 | +#line 2165 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19635 | { | ||
| 19636 | - (yyval.include) = (yyvsp[(2) - (3)].include); | ||
| 19637 | + (yyval.include) = (yyvsp[-1].include); | ||
| 19638 | } | ||
| 19639 | +#line 4745 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19640 | break; | ||
| 19641 | |||
| 19642 | case 238: | ||
| 19643 | -#line 2171 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19644 | +#line 2171 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19645 | { | ||
| 19646 | - (yyval.include) = (yyvsp[(1) - (3)].include); | ||
| 19647 | + (yyval.include) = (yyvsp[-2].include); | ||
| 19648 | |||
| 19649 | - switch ((yyvsp[(3) - (3)].include).token) | ||
| 19650 | + switch ((yyvsp[0].include).token) | ||
| 19651 | { | ||
| 19652 | - case TK_NAME: (yyval.include).name = (yyvsp[(3) - (3)].include).name; break; | ||
| 19653 | - case TK_OPTIONAL: (yyval.include).optional = (yyvsp[(3) - (3)].include).optional; break; | ||
| 19654 | + case TK_NAME: (yyval.include).name = (yyvsp[0].include).name; break; | ||
| 19655 | + case TK_OPTIONAL: (yyval.include).optional = (yyvsp[0].include).optional; break; | ||
| 19656 | } | ||
| 19657 | } | ||
| 19658 | +#line 4759 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19659 | break; | ||
| 19660 | |||
| 19661 | case 239: | ||
| 19662 | -#line 2182 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19663 | +#line 2182 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19664 | { | ||
| 19665 | (yyval.include).token = TK_NAME; | ||
| 19666 | |||
| 19667 | - (yyval.include).name = (yyvsp[(3) - (3)].text); | ||
| 19668 | + (yyval.include).name = (yyvsp[0].text); | ||
| 19669 | (yyval.include).optional = FALSE; | ||
| 19670 | } | ||
| 19671 | +#line 4770 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19672 | break; | ||
| 19673 | |||
| 19674 | case 240: | ||
| 19675 | -#line 2188 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19676 | +#line 2188 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19677 | { | ||
| 19678 | (yyval.include).token = TK_OPTIONAL; | ||
| 19679 | |||
| 19680 | (yyval.include).name = NULL; | ||
| 19681 | - (yyval.include).optional = (yyvsp[(3) - (3)].boolean); | ||
| 19682 | + (yyval.include).optional = (yyvsp[0].boolean); | ||
| 19683 | } | ||
| 19684 | +#line 4781 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19685 | break; | ||
| 19686 | |||
| 19687 | case 241: | ||
| 19688 | -#line 2196 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19689 | +#line 2196 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19690 | { | ||
| 19691 | deprecated("%OptionalInclude is deprecated, use %Include and the 'optional' argument instead"); | ||
| 19692 | |||
| 19693 | if (notSkipping()) | ||
| 19694 | - parseFile(NULL, (yyvsp[(2) - (2)].text), NULL, TRUE); | ||
| 19695 | + parseFile(NULL, (yyvsp[0].text), NULL, TRUE); | ||
| 19696 | } | ||
| 19697 | +#line 4792 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19698 | break; | ||
| 19699 | |||
| 19700 | case 242: | ||
| 19701 | -#line 2204 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19702 | +#line 2204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19703 | { | ||
| 19704 | if (notSkipping()) | ||
| 19705 | - newImport((yyvsp[(2) - (2)].import).name); | ||
| 19706 | + newImport((yyvsp[0].import).name); | ||
| 19707 | } | ||
| 19708 | +#line 4801 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19709 | break; | ||
| 19710 | |||
| 19711 | case 243: | ||
| 19712 | -#line 2210 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19713 | +#line 2210 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19714 | { | ||
| 19715 | resetLexerState(); | ||
| 19716 | |||
| 19717 | - (yyval.import).name = (yyvsp[(1) - (1)].text); | ||
| 19718 | + (yyval.import).name = (yyvsp[0].text); | ||
| 19719 | } | ||
| 19720 | +#line 4811 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19721 | break; | ||
| 19722 | |||
| 19723 | case 244: | ||
| 19724 | -#line 2215 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19725 | +#line 2215 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19726 | { | ||
| 19727 | - (yyval.import) = (yyvsp[(2) - (3)].import); | ||
| 19728 | + (yyval.import) = (yyvsp[-1].import); | ||
| 19729 | } | ||
| 19730 | +#line 4819 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19731 | break; | ||
| 19732 | |||
| 19733 | case 246: | ||
| 19734 | -#line 2221 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19735 | +#line 2221 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19736 | { | ||
| 19737 | - (yyval.import) = (yyvsp[(1) - (3)].import); | ||
| 19738 | + (yyval.import) = (yyvsp[-2].import); | ||
| 19739 | |||
| 19740 | - switch ((yyvsp[(3) - (3)].import).token) | ||
| 19741 | + switch ((yyvsp[0].import).token) | ||
| 19742 | { | ||
| 19743 | - case TK_NAME: (yyval.import).name = (yyvsp[(3) - (3)].import).name; break; | ||
| 19744 | + case TK_NAME: (yyval.import).name = (yyvsp[0].import).name; break; | ||
| 19745 | } | ||
| 19746 | } | ||
| 19747 | +#line 4832 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19748 | break; | ||
| 19749 | |||
| 19750 | case 247: | ||
| 19751 | -#line 2231 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19752 | +#line 2231 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19753 | { | ||
| 19754 | (yyval.import).token = TK_NAME; | ||
| 19755 | |||
| 19756 | - (yyval.import).name = (yyvsp[(3) - (3)].text); | ||
| 19757 | + (yyval.import).name = (yyvsp[0].text); | ||
| 19758 | } | ||
| 19759 | +#line 4842 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19760 | break; | ||
| 19761 | |||
| 19762 | case 248: | ||
| 19763 | -#line 2238 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19764 | +#line 2238 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19765 | { | ||
| 19766 | (yyval.codeb) = NULL; | ||
| 19767 | } | ||
| 19768 | +#line 4850 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19769 | break; | ||
| 19770 | |||
| 19771 | case 249: | ||
| 19772 | -#line 2241 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19773 | +#line 2241 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19774 | { | ||
| 19775 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19776 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19777 | } | ||
| 19778 | +#line 4858 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19779 | break; | ||
| 19780 | |||
| 19781 | case 250: | ||
| 19782 | -#line 2246 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19783 | +#line 2246 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19784 | { | ||
| 19785 | (yyval.codeb) = NULL; | ||
| 19786 | } | ||
| 19787 | +#line 4866 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19788 | break; | ||
| 19789 | |||
| 19790 | case 251: | ||
| 19791 | -#line 2249 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19792 | +#line 2249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19793 | { | ||
| 19794 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19795 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19796 | } | ||
| 19797 | +#line 4874 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19798 | break; | ||
| 19799 | |||
| 19800 | case 252: | ||
| 19801 | -#line 2254 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19802 | +#line 2254 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19803 | { | ||
| 19804 | (yyval.codeb) = NULL; | ||
| 19805 | } | ||
| 19806 | +#line 4882 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19807 | break; | ||
| 19808 | |||
| 19809 | case 253: | ||
| 19810 | -#line 2257 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19811 | +#line 2257 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19812 | { | ||
| 19813 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19814 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19815 | } | ||
| 19816 | +#line 4890 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19817 | break; | ||
| 19818 | |||
| 19819 | case 254: | ||
| 19820 | -#line 2262 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19821 | +#line 2262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19822 | { | ||
| 19823 | if (notSkipping()) | ||
| 19824 | - appendCodeBlock(¤tModule->copying, (yyvsp[(2) - (2)].codeb)); | ||
| 19825 | + appendCodeBlock(¤tModule->copying, (yyvsp[0].codeb)); | ||
| 19826 | } | ||
| 19827 | +#line 4899 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19828 | break; | ||
| 19829 | |||
| 19830 | case 255: | ||
| 19831 | -#line 2268 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19832 | +#line 2268 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19833 | { | ||
| 19834 | if (notSkipping()) | ||
| 19835 | - appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[(2) - (2)].codeb)); | ||
| 19836 | + appendCodeBlock(¤tSpec->exphdrcode, (yyvsp[0].codeb)); | ||
| 19837 | } | ||
| 19838 | +#line 4908 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19839 | break; | ||
| 19840 | |||
| 19841 | case 256: | ||
| 19842 | -#line 2274 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19843 | +#line 2274 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19844 | { | ||
| 19845 | if (notSkipping()) | ||
| 19846 | - appendCodeBlock(¤tModule->hdrcode, (yyvsp[(2) - (2)].codeb)); | ||
| 19847 | + appendCodeBlock(¤tModule->hdrcode, (yyvsp[0].codeb)); | ||
| 19848 | } | ||
| 19849 | +#line 4917 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19850 | break; | ||
| 19851 | |||
| 19852 | case 257: | ||
| 19853 | -#line 2280 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19854 | +#line 2280 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19855 | { | ||
| 19856 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19857 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19858 | } | ||
| 19859 | +#line 4925 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19860 | break; | ||
| 19861 | |||
| 19862 | case 258: | ||
| 19863 | -#line 2285 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19864 | +#line 2285 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19865 | { | ||
| 19866 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19867 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19868 | } | ||
| 19869 | +#line 4933 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19870 | break; | ||
| 19871 | |||
| 19872 | case 259: | ||
| 19873 | -#line 2290 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19874 | +#line 2290 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19875 | { | ||
| 19876 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19877 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19878 | } | ||
| 19879 | +#line 4941 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19880 | break; | ||
| 19881 | |||
| 19882 | case 260: | ||
| 19883 | -#line 2295 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19884 | +#line 2295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19885 | { | ||
| 19886 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19887 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19888 | } | ||
| 19889 | +#line 4949 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19890 | break; | ||
| 19891 | |||
| 19892 | case 261: | ||
| 19893 | -#line 2300 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19894 | +#line 2300 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19895 | { | ||
| 19896 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19897 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19898 | } | ||
| 19899 | +#line 4957 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19900 | break; | ||
| 19901 | |||
| 19902 | case 262: | ||
| 19903 | -#line 2305 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19904 | +#line 2305 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19905 | { | ||
| 19906 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19907 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19908 | } | ||
| 19909 | +#line 4965 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19910 | break; | ||
| 19911 | |||
| 19912 | case 263: | ||
| 19913 | -#line 2310 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19914 | +#line 2310 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19915 | { | ||
| 19916 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19917 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19918 | } | ||
| 19919 | +#line 4973 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19920 | break; | ||
| 19921 | |||
| 19922 | case 264: | ||
| 19923 | -#line 2315 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19924 | +#line 2315 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19925 | { | ||
| 19926 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19927 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19928 | } | ||
| 19929 | +#line 4981 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19930 | break; | ||
| 19931 | |||
| 19932 | case 265: | ||
| 19933 | -#line 2320 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19934 | +#line 2320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19935 | { | ||
| 19936 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19937 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19938 | } | ||
| 19939 | +#line 4989 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19940 | break; | ||
| 19941 | |||
| 19942 | case 266: | ||
| 19943 | -#line 2325 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19944 | +#line 2325 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19945 | { | ||
| 19946 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19947 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19948 | } | ||
| 19949 | +#line 4997 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19950 | break; | ||
| 19951 | |||
| 19952 | case 267: | ||
| 19953 | -#line 2330 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19954 | +#line 2330 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19955 | { | ||
| 19956 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19957 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19958 | } | ||
| 19959 | +#line 5005 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19960 | break; | ||
| 19961 | |||
| 19962 | case 268: | ||
| 19963 | -#line 2335 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19964 | +#line 2335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19965 | { | ||
| 19966 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19967 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19968 | } | ||
| 19969 | +#line 5013 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19970 | break; | ||
| 19971 | |||
| 19972 | case 269: | ||
| 19973 | -#line 2340 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19974 | +#line 2340 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19975 | { | ||
| 19976 | if (notSkipping()) | ||
| 19977 | - appendCodeBlock(¤tModule->cppcode, (yyvsp[(2) - (2)].codeb)); | ||
| 19978 | + appendCodeBlock(¤tModule->cppcode, (yyvsp[0].codeb)); | ||
| 19979 | } | ||
| 19980 | +#line 5022 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19981 | break; | ||
| 19982 | |||
| 19983 | case 270: | ||
| 19984 | -#line 2346 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19985 | +#line 2346 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19986 | { | ||
| 19987 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 19988 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 19989 | } | ||
| 19990 | +#line 5030 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 19991 | break; | ||
| 19992 | |||
| 19993 | case 271: | ||
| 19994 | -#line 2351 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 19995 | +#line 2351 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 19996 | { | ||
| 19997 | if (notSkipping()) | ||
| 19998 | - appendCodeBlock(¤tModule->preinitcode, (yyvsp[(2) - (2)].codeb)); | ||
| 19999 | + appendCodeBlock(¤tModule->preinitcode, (yyvsp[0].codeb)); | ||
| 20000 | } | ||
| 20001 | +#line 5039 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20002 | break; | ||
| 20003 | |||
| 20004 | case 272: | ||
| 20005 | -#line 2357 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20006 | +#line 2357 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20007 | { | ||
| 20008 | if (notSkipping()) | ||
| 20009 | - appendCodeBlock(¤tModule->initcode, (yyvsp[(2) - (2)].codeb)); | ||
| 20010 | + appendCodeBlock(¤tModule->initcode, (yyvsp[0].codeb)); | ||
| 20011 | } | ||
| 20012 | +#line 5048 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20013 | break; | ||
| 20014 | |||
| 20015 | case 273: | ||
| 20016 | -#line 2363 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20017 | +#line 2363 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20018 | { | ||
| 20019 | if (notSkipping()) | ||
| 20020 | - appendCodeBlock(¤tModule->postinitcode, (yyvsp[(2) - (2)].codeb)); | ||
| 20021 | + appendCodeBlock(¤tModule->postinitcode, (yyvsp[0].codeb)); | ||
| 20022 | } | ||
| 20023 | +#line 5057 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20024 | break; | ||
| 20025 | |||
| 20026 | case 274: | ||
| 20027 | -#line 2369 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20028 | +#line 2369 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20029 | { | ||
| 20030 | if (notSkipping()) | ||
| 20031 | - appendCodeBlock(¤tModule->unitcode, (yyvsp[(2) - (2)].codeb)); | ||
| 20032 | + appendCodeBlock(¤tModule->unitcode, (yyvsp[0].codeb)); | ||
| 20033 | } | ||
| 20034 | +#line 5066 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20035 | break; | ||
| 20036 | |||
| 20037 | case 275: | ||
| 20038 | -#line 2375 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20039 | +#line 2375 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20040 | { | ||
| 20041 | if (notSkipping()) | ||
| 20042 | - appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[(2) - (2)].codeb)); | ||
| 20043 | + appendCodeBlock(¤tModule->unitpostinccode, (yyvsp[0].codeb)); | ||
| 20044 | } | ||
| 20045 | +#line 5075 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20046 | break; | ||
| 20047 | |||
| 20048 | case 276: | ||
| 20049 | -#line 2381 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20050 | +#line 2381 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20051 | { | ||
| 20052 | /* Deprecated. */ | ||
| 20053 | } | ||
| 20054 | +#line 5083 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20055 | break; | ||
| 20056 | |||
| 20057 | case 277: | ||
| 20058 | -#line 2386 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20059 | +#line 2386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20060 | { | ||
| 20061 | if (notSkipping() && !inMainModule()) | ||
| 20062 | - appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[(2) - (2)].codeb)); | ||
| 20063 | + appendCodeBlock(¤tSpec->exptypehintcode, (yyvsp[0].codeb)); | ||
| 20064 | } | ||
| 20065 | +#line 5092 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20066 | break; | ||
| 20067 | |||
| 20068 | case 278: | ||
| 20069 | -#line 2392 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20070 | +#line 2392 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20071 | { | ||
| 20072 | if (notSkipping()) | ||
| 20073 | - appendCodeBlock(¤tModule->typehintcode, (yyvsp[(2) - (2)].codeb)); | ||
| 20074 | + appendCodeBlock(¤tModule->typehintcode, (yyvsp[0].codeb)); | ||
| 20075 | } | ||
| 20076 | +#line 5101 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20077 | break; | ||
| 20078 | |||
| 20079 | case 279: | ||
| 20080 | -#line 2398 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20081 | +#line 2398 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20082 | { | ||
| 20083 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 20084 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 20085 | } | ||
| 20086 | +#line 5109 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20087 | break; | ||
| 20088 | |||
| 20089 | case 280: | ||
| 20090 | -#line 2403 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20091 | +#line 2403 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20092 | { | ||
| 20093 | if (notSkipping() && inMainModule()) | ||
| 20094 | - appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb)); | ||
| 20095 | + appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb)); | ||
| 20096 | } | ||
| 20097 | +#line 5118 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20098 | break; | ||
| 20099 | |||
| 20100 | case 281: | ||
| 20101 | -#line 2409 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20102 | +#line 2409 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20103 | { | ||
| 20104 | if (notSkipping()) | ||
| 20105 | - appendCodeBlock(¤tSpec->docs, (yyvsp[(2) - (2)].codeb)); | ||
| 20106 | + appendCodeBlock(¤tSpec->docs, (yyvsp[0].codeb)); | ||
| 20107 | } | ||
| 20108 | +#line 5127 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20109 | break; | ||
| 20110 | |||
| 20111 | case 282: | ||
| 20112 | -#line 2415 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20113 | +#line 2415 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20114 | { | ||
| 20115 | if (notSkipping()) | ||
| 20116 | - addAutoPyName(currentModule, (yyvsp[(2) - (2)].autopyname).remove_leading); | ||
| 20117 | + addAutoPyName(currentModule, (yyvsp[0].autopyname).remove_leading); | ||
| 20118 | } | ||
| 20119 | +#line 5136 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20120 | break; | ||
| 20121 | |||
| 20122 | case 283: | ||
| 20123 | -#line 2421 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20124 | +#line 2421 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20125 | { | ||
| 20126 | - (yyval.autopyname) = (yyvsp[(2) - (3)].autopyname); | ||
| 20127 | + (yyval.autopyname) = (yyvsp[-1].autopyname); | ||
| 20128 | } | ||
| 20129 | +#line 5144 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20130 | break; | ||
| 20131 | |||
| 20132 | case 285: | ||
| 20133 | -#line 2427 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20134 | +#line 2427 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20135 | { | ||
| 20136 | - (yyval.autopyname) = (yyvsp[(1) - (3)].autopyname); | ||
| 20137 | + (yyval.autopyname) = (yyvsp[-2].autopyname); | ||
| 20138 | |||
| 20139 | - switch ((yyvsp[(3) - (3)].autopyname).token) | ||
| 20140 | + switch ((yyvsp[0].autopyname).token) | ||
| 20141 | { | ||
| 20142 | - case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].autopyname).remove_leading; break; | ||
| 20143 | + case TK_REMOVELEADING: (yyval.autopyname).remove_leading = (yyvsp[0].autopyname).remove_leading; break; | ||
| 20144 | } | ||
| 20145 | } | ||
| 20146 | +#line 5157 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20147 | break; | ||
| 20148 | |||
| 20149 | case 286: | ||
| 20150 | -#line 2437 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20151 | +#line 2437 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20152 | { | ||
| 20153 | (yyval.autopyname).token = TK_REMOVELEADING; | ||
| 20154 | |||
| 20155 | - (yyval.autopyname).remove_leading = (yyvsp[(3) - (3)].text); | ||
| 20156 | + (yyval.autopyname).remove_leading = (yyvsp[0].text); | ||
| 20157 | } | ||
| 20158 | +#line 5167 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20159 | break; | ||
| 20160 | |||
| 20161 | case 287: | ||
| 20162 | -#line 2444 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20163 | +#line 2444 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20164 | { | ||
| 20165 | (yyval.docstr) = sipMalloc(sizeof(docstringDef)); | ||
| 20166 | |||
| 20167 | - (yyval.docstr)->signature = (yyvsp[(2) - (3)].docstring).signature; | ||
| 20168 | - (yyval.docstr)->text = (yyvsp[(3) - (3)].codeb)->frag; | ||
| 20169 | - free((yyvsp[(3) - (3)].codeb)); | ||
| 20170 | + (yyval.docstr)->signature = (yyvsp[-1].docstring).signature; | ||
| 20171 | + (yyval.docstr)->text = (yyvsp[0].codeb)->frag; | ||
| 20172 | + free((yyvsp[0].codeb)); | ||
| 20173 | |||
| 20174 | /* Format the docstring. */ | ||
| 20175 | - if ((yyvsp[(2) - (3)].docstring).format == deindented) | ||
| 20176 | + if ((yyvsp[-1].docstring).format == deindented) | ||
| 20177 | { | ||
| 20178 | const char *cp; | ||
| 20179 | char *dp; | ||
| 20180 | @@ -5388,158 +5250,174 @@ | ||
| 20181 | *dp = '\0'; | ||
| 20182 | } | ||
| 20183 | } | ||
| 20184 | +#line 5254 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20185 | break; | ||
| 20186 | |||
| 20187 | case 288: | ||
| 20188 | -#line 2528 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20189 | +#line 2528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20190 | { | ||
| 20191 | (yyval.docstring).format = currentModule->defdocstringfmt; | ||
| 20192 | (yyval.docstring).signature = currentModule->defdocstringsig; | ||
| 20193 | } | ||
| 20194 | +#line 5263 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20195 | break; | ||
| 20196 | |||
| 20197 | case 289: | ||
| 20198 | -#line 2532 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20199 | +#line 2532 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20200 | { | ||
| 20201 | resetLexerState(); | ||
| 20202 | |||
| 20203 | - (yyval.docstring).format = convertFormat((yyvsp[(1) - (1)].text)); | ||
| 20204 | + (yyval.docstring).format = convertFormat((yyvsp[0].text)); | ||
| 20205 | (yyval.docstring).signature = currentModule->defdocstringsig; | ||
| 20206 | } | ||
| 20207 | +#line 5274 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20208 | break; | ||
| 20209 | |||
| 20210 | case 290: | ||
| 20211 | -#line 2538 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20212 | +#line 2538 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20213 | { | ||
| 20214 | - (yyval.docstring) = (yyvsp[(2) - (3)].docstring); | ||
| 20215 | + (yyval.docstring) = (yyvsp[-1].docstring); | ||
| 20216 | } | ||
| 20217 | +#line 5282 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20218 | break; | ||
| 20219 | |||
| 20220 | case 292: | ||
| 20221 | -#line 2544 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20222 | +#line 2544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20223 | { | ||
| 20224 | - (yyval.docstring) = (yyvsp[(1) - (3)].docstring); | ||
| 20225 | + (yyval.docstring) = (yyvsp[-2].docstring); | ||
| 20226 | |||
| 20227 | - switch ((yyvsp[(3) - (3)].docstring).token) | ||
| 20228 | + switch ((yyvsp[0].docstring).token) | ||
| 20229 | { | ||
| 20230 | - case TK_FORMAT: (yyval.docstring).format = (yyvsp[(3) - (3)].docstring).format; break; | ||
| 20231 | - case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[(3) - (3)].docstring).signature; break; | ||
| 20232 | + case TK_FORMAT: (yyval.docstring).format = (yyvsp[0].docstring).format; break; | ||
| 20233 | + case TK_SIGNATURE: (yyval.docstring).signature = (yyvsp[0].docstring).signature; break; | ||
| 20234 | } | ||
| 20235 | } | ||
| 20236 | +#line 5296 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20237 | break; | ||
| 20238 | |||
| 20239 | case 293: | ||
| 20240 | -#line 2555 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20241 | +#line 2555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20242 | { | ||
| 20243 | (yyval.docstring).token = TK_FORMAT; | ||
| 20244 | |||
| 20245 | - (yyval.docstring).format = convertFormat((yyvsp[(3) - (3)].text)); | ||
| 20246 | + (yyval.docstring).format = convertFormat((yyvsp[0].text)); | ||
| 20247 | (yyval.docstring).signature = currentModule->defdocstringsig; | ||
| 20248 | } | ||
| 20249 | +#line 5307 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20250 | break; | ||
| 20251 | |||
| 20252 | case 294: | ||
| 20253 | -#line 2561 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20254 | +#line 2561 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20255 | { | ||
| 20256 | (yyval.docstring).token = TK_SIGNATURE; | ||
| 20257 | |||
| 20258 | (yyval.docstring).format = currentModule->defdocstringfmt; | ||
| 20259 | - (yyval.docstring).signature = convertSignature((yyvsp[(3) - (3)].text)); | ||
| 20260 | + (yyval.docstring).signature = convertSignature((yyvsp[0].text)); | ||
| 20261 | } | ||
| 20262 | +#line 5318 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20263 | break; | ||
| 20264 | |||
| 20265 | case 295: | ||
| 20266 | -#line 2569 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20267 | +#line 2569 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20268 | { | ||
| 20269 | (yyval.docstr) = NULL; | ||
| 20270 | } | ||
| 20271 | +#line 5326 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20272 | break; | ||
| 20273 | |||
| 20274 | case 297: | ||
| 20275 | -#line 2575 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20276 | +#line 2575 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20277 | { | ||
| 20278 | - if ((yyvsp[(2) - (3)].extract).id == NULL) | ||
| 20279 | + if ((yyvsp[-1].extract).id == NULL) | ||
| 20280 | yyerror("%Extract must have an 'id' argument"); | ||
| 20281 | |||
| 20282 | if (notSkipping()) | ||
| 20283 | - addExtractPart(currentSpec, (yyvsp[(2) - (3)].extract).id, (yyvsp[(2) - (3)].extract).order, (yyvsp[(3) - (3)].codeb)); | ||
| 20284 | + addExtractPart(currentSpec, (yyvsp[-1].extract).id, (yyvsp[-1].extract).order, (yyvsp[0].codeb)); | ||
| 20285 | } | ||
| 20286 | +#line 5338 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20287 | break; | ||
| 20288 | |||
| 20289 | case 298: | ||
| 20290 | -#line 2584 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20291 | +#line 2584 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20292 | { | ||
| 20293 | resetLexerState(); | ||
| 20294 | |||
| 20295 | - (yyval.extract).id = (yyvsp[(1) - (1)].text); | ||
| 20296 | + (yyval.extract).id = (yyvsp[0].text); | ||
| 20297 | (yyval.extract).order = -1; | ||
| 20298 | } | ||
| 20299 | +#line 5349 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20300 | break; | ||
| 20301 | |||
| 20302 | case 299: | ||
| 20303 | -#line 2590 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20304 | +#line 2590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20305 | { | ||
| 20306 | - (yyval.extract) = (yyvsp[(2) - (3)].extract); | ||
| 20307 | + (yyval.extract) = (yyvsp[-1].extract); | ||
| 20308 | } | ||
| 20309 | +#line 5357 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20310 | break; | ||
| 20311 | |||
| 20312 | case 301: | ||
| 20313 | -#line 2596 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20314 | +#line 2596 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20315 | { | ||
| 20316 | - (yyval.extract) = (yyvsp[(1) - (3)].extract); | ||
| 20317 | + (yyval.extract) = (yyvsp[-2].extract); | ||
| 20318 | |||
| 20319 | - switch ((yyvsp[(3) - (3)].extract).token) | ||
| 20320 | + switch ((yyvsp[0].extract).token) | ||
| 20321 | { | ||
| 20322 | - case TK_ID: (yyval.extract).id = (yyvsp[(3) - (3)].extract).id; break; | ||
| 20323 | - case TK_ORDER: (yyval.extract).order = (yyvsp[(3) - (3)].extract).order; break; | ||
| 20324 | + case TK_ID: (yyval.extract).id = (yyvsp[0].extract).id; break; | ||
| 20325 | + case TK_ORDER: (yyval.extract).order = (yyvsp[0].extract).order; break; | ||
| 20326 | } | ||
| 20327 | } | ||
| 20328 | +#line 5371 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20329 | break; | ||
| 20330 | |||
| 20331 | case 302: | ||
| 20332 | -#line 2607 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20333 | +#line 2607 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20334 | { | ||
| 20335 | (yyval.extract).token = TK_ID; | ||
| 20336 | |||
| 20337 | - (yyval.extract).id = (yyvsp[(3) - (3)].text); | ||
| 20338 | + (yyval.extract).id = (yyvsp[0].text); | ||
| 20339 | (yyval.extract).order = -1; | ||
| 20340 | } | ||
| 20341 | +#line 5382 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20342 | break; | ||
| 20343 | |||
| 20344 | case 303: | ||
| 20345 | -#line 2613 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20346 | +#line 2613 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20347 | { | ||
| 20348 | (yyval.extract).token = TK_ORDER; | ||
| 20349 | |||
| 20350 | - if ((yyvsp[(3) - (3)].number) < 0) | ||
| 20351 | + if ((yyvsp[0].number) < 0) | ||
| 20352 | yyerror("The 'order' of an %Extract directive must not be negative"); | ||
| 20353 | |||
| 20354 | (yyval.extract).id = NULL; | ||
| 20355 | - (yyval.extract).order = (yyvsp[(3) - (3)].number); | ||
| 20356 | + (yyval.extract).order = (yyvsp[0].number); | ||
| 20357 | } | ||
| 20358 | +#line 5396 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20359 | break; | ||
| 20360 | |||
| 20361 | case 304: | ||
| 20362 | -#line 2624 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20363 | +#line 2624 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20364 | { | ||
| 20365 | /* Deprecated. */ | ||
| 20366 | } | ||
| 20367 | +#line 5404 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20368 | break; | ||
| 20369 | |||
| 20370 | case 307: | ||
| 20371 | -#line 2633 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20372 | +#line 2633 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20373 | { | ||
| 20374 | - (yyval.codeb) = (yyvsp[(1) - (2)].codeb); | ||
| 20375 | + (yyval.codeb) = (yyvsp[-1].codeb); | ||
| 20376 | |||
| 20377 | - append(&(yyval.codeb)->frag, (yyvsp[(2) - (2)].codeb)->frag); | ||
| 20378 | + append(&(yyval.codeb)->frag, (yyvsp[0].codeb)->frag); | ||
| 20379 | |||
| 20380 | - free((yyvsp[(2) - (2)].codeb)->frag); | ||
| 20381 | - free((yyvsp[(2) - (2)].codeb)); | ||
| 20382 | + free((yyvsp[0].codeb)->frag); | ||
| 20383 | + free((yyvsp[0].codeb)); | ||
| 20384 | } | ||
| 20385 | +#line 5417 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20386 | break; | ||
| 20387 | |||
| 20388 | case 308: | ||
| 20389 | -#line 2643 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20390 | +#line 2643 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20391 | { | ||
| 20392 | if (notSkipping()) | ||
| 20393 | { | ||
| 20394 | @@ -5550,71 +5428,79 @@ | ||
| 20395 | NULL | ||
| 20396 | }; | ||
| 20397 | |||
| 20398 | - checkAnnos(&(yyvsp[(4) - (4)].optflags), annos); | ||
| 20399 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 20400 | |||
| 20401 | if (sectionFlags != 0 && (sectionFlags & ~(SECT_IS_PUBLIC | SECT_IS_PROT)) != 0) | ||
| 20402 | yyerror("Class enums must be in the public or protected sections"); | ||
| 20403 | |||
| 20404 | - if (currentSpec->genc && (yyvsp[(2) - (4)].boolean)) | ||
| 20405 | + if (currentSpec->genc && (yyvsp[-2].boolean)) | ||
| 20406 | yyerror("Scoped enums not allowed in a C module"); | ||
| 20407 | |||
| 20408 | currentEnum = newEnum(currentSpec, currentModule, | ||
| 20409 | - currentMappedType, (yyvsp[(3) - (4)].text), &(yyvsp[(4) - (4)].optflags), sectionFlags, (yyvsp[(2) - (4)].boolean)); | ||
| 20410 | + currentMappedType, (yyvsp[-1].text), &(yyvsp[0].optflags), sectionFlags, (yyvsp[-2].boolean)); | ||
| 20411 | } | ||
| 20412 | } | ||
| 20413 | +#line 5444 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20414 | break; | ||
| 20415 | |||
| 20416 | case 310: | ||
| 20417 | -#line 2667 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20418 | +#line 2667 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20419 | { | ||
| 20420 | (yyval.boolean) = FALSE; | ||
| 20421 | } | ||
| 20422 | +#line 5452 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20423 | break; | ||
| 20424 | |||
| 20425 | case 311: | ||
| 20426 | -#line 2670 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20427 | +#line 2670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20428 | { | ||
| 20429 | (yyval.boolean) = TRUE; | ||
| 20430 | } | ||
| 20431 | +#line 5460 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20432 | break; | ||
| 20433 | |||
| 20434 | case 312: | ||
| 20435 | -#line 2673 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20436 | +#line 2673 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20437 | { | ||
| 20438 | (yyval.boolean) = TRUE; | ||
| 20439 | } | ||
| 20440 | +#line 5468 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20441 | break; | ||
| 20442 | |||
| 20443 | case 313: | ||
| 20444 | -#line 2678 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20445 | +#line 2678 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20446 | { | ||
| 20447 | (yyval.text) = NULL; | ||
| 20448 | } | ||
| 20449 | +#line 5476 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20450 | break; | ||
| 20451 | |||
| 20452 | case 314: | ||
| 20453 | -#line 2681 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20454 | +#line 2681 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20455 | { | ||
| 20456 | - (yyval.text) = (yyvsp[(1) - (1)].text); | ||
| 20457 | + (yyval.text) = (yyvsp[0].text); | ||
| 20458 | } | ||
| 20459 | +#line 5484 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20460 | break; | ||
| 20461 | |||
| 20462 | case 315: | ||
| 20463 | -#line 2686 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20464 | +#line 2686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20465 | { | ||
| 20466 | (yyval.text) = NULL; | ||
| 20467 | } | ||
| 20468 | +#line 5492 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20469 | break; | ||
| 20470 | |||
| 20471 | case 316: | ||
| 20472 | -#line 2689 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20473 | +#line 2689 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20474 | { | ||
| 20475 | - (yyval.text) = (yyvsp[(1) - (1)].text); | ||
| 20476 | + (yyval.text) = (yyvsp[0].text); | ||
| 20477 | } | ||
| 20478 | +#line 5500 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20479 | break; | ||
| 20480 | |||
| 20481 | case 323: | ||
| 20482 | -#line 2704 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20483 | +#line 2704 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20484 | { | ||
| 20485 | if (notSkipping()) | ||
| 20486 | { | ||
| 20487 | @@ -5626,15 +5512,15 @@ | ||
| 20488 | |||
| 20489 | enumMemberDef *emd, **tail; | ||
| 20490 | |||
| 20491 | - checkAnnos(&(yyvsp[(3) - (4)].optflags), annos); | ||
| 20492 | + checkAnnos(&(yyvsp[-1].optflags), annos); | ||
| 20493 | |||
| 20494 | /* Note that we don't use the assigned value. */ | ||
| 20495 | emd = sipMalloc(sizeof (enumMemberDef)); | ||
| 20496 | |||
| 20497 | emd->pyname = cacheName(currentSpec, | ||
| 20498 | - getPythonName(currentModule, &(yyvsp[(3) - (4)].optflags), (yyvsp[(1) - (4)].text))); | ||
| 20499 | - emd->cname = (yyvsp[(1) - (4)].text); | ||
| 20500 | - emd->no_typehint = getNoTypeHint(&(yyvsp[(3) - (4)].optflags)); | ||
| 20501 | + getPythonName(currentModule, &(yyvsp[-1].optflags), (yyvsp[-3].text))); | ||
| 20502 | + emd->cname = (yyvsp[-3].text); | ||
| 20503 | + emd->no_typehint = getNoTypeHint(&(yyvsp[-1].optflags)); | ||
| 20504 | emd->ed = currentEnum; | ||
| 20505 | emd->platforms = currentPlatforms; | ||
| 20506 | emd->next = NULL; | ||
| 20507 | @@ -5652,207 +5538,232 @@ | ||
| 20508 | setIsUsedName(emd->pyname); | ||
| 20509 | } | ||
| 20510 | } | ||
| 20511 | +#line 5542 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20512 | break; | ||
| 20513 | |||
| 20514 | case 328: | ||
| 20515 | -#line 2751 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20516 | +#line 2751 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20517 | { | ||
| 20518 | (yyval.valp) = NULL; | ||
| 20519 | } | ||
| 20520 | +#line 5550 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20521 | break; | ||
| 20522 | |||
| 20523 | case 329: | ||
| 20524 | -#line 2754 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20525 | +#line 2754 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20526 | { | ||
| 20527 | - (yyval.valp) = (yyvsp[(2) - (2)].valp); | ||
| 20528 | + (yyval.valp) = (yyvsp[0].valp); | ||
| 20529 | } | ||
| 20530 | +#line 5558 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20531 | break; | ||
| 20532 | |||
| 20533 | case 331: | ||
| 20534 | -#line 2760 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20535 | +#line 2760 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20536 | { | ||
| 20537 | valueDef *vd; | ||
| 20538 | |||
| 20539 | - if ((yyvsp[(1) - (3)].valp) -> vtype == string_value || (yyvsp[(3) - (3)].valp) -> vtype == string_value) | ||
| 20540 | + if ((yyvsp[-2].valp) -> vtype == string_value || (yyvsp[0].valp) -> vtype == string_value) | ||
| 20541 | yyerror("Invalid binary operator for string"); | ||
| 20542 | |||
| 20543 | /* Find the last value in the existing expression. */ | ||
| 20544 | |||
| 20545 | - for (vd = (yyvsp[(1) - (3)].valp); vd -> next != NULL; vd = vd -> next) | ||
| 20546 | + for (vd = (yyvsp[-2].valp); vd -> next != NULL; vd = vd -> next) | ||
| 20547 | ; | ||
| 20548 | |||
| 20549 | - vd -> vbinop = (yyvsp[(2) - (3)].qchar); | ||
| 20550 | - vd -> next = (yyvsp[(3) - (3)].valp); | ||
| 20551 | + vd -> vbinop = (yyvsp[-1].qchar); | ||
| 20552 | + vd -> next = (yyvsp[0].valp); | ||
| 20553 | |||
| 20554 | - (yyval.valp) = (yyvsp[(1) - (3)].valp); | ||
| 20555 | + (yyval.valp) = (yyvsp[-2].valp); | ||
| 20556 | } | ||
| 20557 | +#line 5579 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20558 | break; | ||
| 20559 | |||
| 20560 | case 332: | ||
| 20561 | -#line 2778 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20562 | +#line 2778 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20563 | { | ||
| 20564 | (yyval.qchar) = '-'; | ||
| 20565 | } | ||
| 20566 | +#line 5587 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20567 | break; | ||
| 20568 | |||
| 20569 | case 333: | ||
| 20570 | -#line 2781 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20571 | +#line 2781 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20572 | { | ||
| 20573 | (yyval.qchar) = '+'; | ||
| 20574 | } | ||
| 20575 | +#line 5595 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20576 | break; | ||
| 20577 | |||
| 20578 | case 334: | ||
| 20579 | -#line 2784 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20580 | +#line 2784 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20581 | { | ||
| 20582 | (yyval.qchar) = '*'; | ||
| 20583 | } | ||
| 20584 | +#line 5603 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20585 | break; | ||
| 20586 | |||
| 20587 | case 335: | ||
| 20588 | -#line 2787 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20589 | +#line 2787 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20590 | { | ||
| 20591 | (yyval.qchar) = '/'; | ||
| 20592 | } | ||
| 20593 | +#line 5611 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20594 | break; | ||
| 20595 | |||
| 20596 | case 336: | ||
| 20597 | -#line 2790 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20598 | +#line 2790 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20599 | { | ||
| 20600 | (yyval.qchar) = '&'; | ||
| 20601 | } | ||
| 20602 | +#line 5619 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20603 | break; | ||
| 20604 | |||
| 20605 | case 337: | ||
| 20606 | -#line 2793 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20607 | +#line 2793 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20608 | { | ||
| 20609 | (yyval.qchar) = '|'; | ||
| 20610 | } | ||
| 20611 | +#line 5627 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20612 | break; | ||
| 20613 | |||
| 20614 | case 338: | ||
| 20615 | -#line 2798 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20616 | +#line 2798 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20617 | { | ||
| 20618 | (yyval.qchar) = '\0'; | ||
| 20619 | } | ||
| 20620 | +#line 5635 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20621 | break; | ||
| 20622 | |||
| 20623 | case 339: | ||
| 20624 | -#line 2801 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20625 | +#line 2801 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20626 | { | ||
| 20627 | (yyval.qchar) = '!'; | ||
| 20628 | } | ||
| 20629 | +#line 5643 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20630 | break; | ||
| 20631 | |||
| 20632 | case 340: | ||
| 20633 | -#line 2804 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20634 | +#line 2804 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20635 | { | ||
| 20636 | (yyval.qchar) = '~'; | ||
| 20637 | } | ||
| 20638 | +#line 5651 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20639 | break; | ||
| 20640 | |||
| 20641 | case 341: | ||
| 20642 | -#line 2807 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20643 | +#line 2807 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20644 | { | ||
| 20645 | (yyval.qchar) = '-'; | ||
| 20646 | } | ||
| 20647 | +#line 5659 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20648 | break; | ||
| 20649 | |||
| 20650 | case 342: | ||
| 20651 | -#line 2810 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20652 | +#line 2810 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20653 | { | ||
| 20654 | (yyval.qchar) = '+'; | ||
| 20655 | } | ||
| 20656 | +#line 5667 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20657 | break; | ||
| 20658 | |||
| 20659 | case 343: | ||
| 20660 | -#line 2813 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20661 | +#line 2813 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20662 | { | ||
| 20663 | (yyval.qchar) = '*'; | ||
| 20664 | } | ||
| 20665 | +#line 5675 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20666 | break; | ||
| 20667 | |||
| 20668 | case 344: | ||
| 20669 | -#line 2816 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20670 | +#line 2816 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20671 | { | ||
| 20672 | (yyval.qchar) = '&'; | ||
| 20673 | } | ||
| 20674 | +#line 5683 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20675 | break; | ||
| 20676 | |||
| 20677 | case 345: | ||
| 20678 | -#line 2821 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20679 | +#line 2821 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20680 | { | ||
| 20681 | - if ((yyvsp[(2) - (3)].qchar) != '\0' && (yyvsp[(3) - (3)].value).vtype == string_value) | ||
| 20682 | + if ((yyvsp[-1].qchar) != '\0' && (yyvsp[0].value).vtype == string_value) | ||
| 20683 | yyerror("Invalid unary operator for string"); | ||
| 20684 | |||
| 20685 | /* Convert the value to a simple expression on the heap. */ | ||
| 20686 | (yyval.valp) = sipMalloc(sizeof (valueDef)); | ||
| 20687 | |||
| 20688 | - *(yyval.valp) = (yyvsp[(3) - (3)].value); | ||
| 20689 | - (yyval.valp)->vunop = (yyvsp[(2) - (3)].qchar); | ||
| 20690 | + *(yyval.valp) = (yyvsp[0].value); | ||
| 20691 | + (yyval.valp)->vunop = (yyvsp[-1].qchar); | ||
| 20692 | (yyval.valp)->vbinop = '\0'; | ||
| 20693 | - (yyval.valp)->cast = (yyvsp[(1) - (3)].scpvalp); | ||
| 20694 | + (yyval.valp)->cast = (yyvsp[-2].scpvalp); | ||
| 20695 | (yyval.valp)->next = NULL; | ||
| 20696 | } | ||
| 20697 | +#line 5701 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20698 | break; | ||
| 20699 | |||
| 20700 | case 346: | ||
| 20701 | -#line 2836 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20702 | +#line 2836 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20703 | { | ||
| 20704 | (yyval.scpvalp) = NULL; | ||
| 20705 | } | ||
| 20706 | +#line 5709 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20707 | break; | ||
| 20708 | |||
| 20709 | case 347: | ||
| 20710 | -#line 2839 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20711 | +#line 2839 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20712 | { | ||
| 20713 | - (yyval.scpvalp) = (yyvsp[(2) - (3)].scpvalp); | ||
| 20714 | + (yyval.scpvalp) = (yyvsp[-1].scpvalp); | ||
| 20715 | } | ||
| 20716 | +#line 5717 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20717 | break; | ||
| 20718 | |||
| 20719 | case 348: | ||
| 20720 | -#line 2844 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20721 | +#line 2844 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20722 | { | ||
| 20723 | if (currentSpec->genc) | ||
| 20724 | yyerror("Scoped names are not allowed in a C module"); | ||
| 20725 | |||
| 20726 | - (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[(2) - (2)].scpvalp)); | ||
| 20727 | + (yyval.scpvalp) = scopeScopedName(NULL, (yyvsp[0].scpvalp)); | ||
| 20728 | } | ||
| 20729 | +#line 5728 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20730 | break; | ||
| 20731 | |||
| 20732 | case 351: | ||
| 20733 | -#line 2854 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20734 | +#line 2854 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20735 | { | ||
| 20736 | if (currentSpec->genc) | ||
| 20737 | yyerror("Scoped names are not allowed in a C module"); | ||
| 20738 | |||
| 20739 | - appendScopedName(&(yyvsp[(1) - (3)].scpvalp), (yyvsp[(3) - (3)].scpvalp)); | ||
| 20740 | + appendScopedName(&(yyvsp[-2].scpvalp), (yyvsp[0].scpvalp)); | ||
| 20741 | } | ||
| 20742 | +#line 5739 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20743 | break; | ||
| 20744 | |||
| 20745 | case 352: | ||
| 20746 | -#line 2862 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20747 | +#line 2862 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20748 | { | ||
| 20749 | - (yyval.scpvalp) = text2scopePart((yyvsp[(1) - (1)].text)); | ||
| 20750 | + (yyval.scpvalp) = text2scopePart((yyvsp[0].text)); | ||
| 20751 | } | ||
| 20752 | +#line 5747 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20753 | break; | ||
| 20754 | |||
| 20755 | case 353: | ||
| 20756 | -#line 2867 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20757 | +#line 2867 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20758 | { | ||
| 20759 | (yyval.boolean) = TRUE; | ||
| 20760 | } | ||
| 20761 | +#line 5755 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20762 | break; | ||
| 20763 | |||
| 20764 | case 354: | ||
| 20765 | -#line 2870 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20766 | +#line 2870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20767 | { | ||
| 20768 | (yyval.boolean) = FALSE; | ||
| 20769 | } | ||
| 20770 | +#line 5763 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20771 | break; | ||
| 20772 | |||
| 20773 | case 355: | ||
| 20774 | -#line 2875 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20775 | +#line 2875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20776 | { | ||
| 20777 | /* | ||
| 20778 | * We let the C++ compiler decide if the value is a valid one - no | ||
| 20779 | @@ -5860,93 +5771,103 @@ | ||
| 20780 | */ | ||
| 20781 | |||
| 20782 | (yyval.value).vtype = scoped_value; | ||
| 20783 | - (yyval.value).u.vscp = (yyvsp[(1) - (1)].scpvalp); | ||
| 20784 | + (yyval.value).u.vscp = (yyvsp[0].scpvalp); | ||
| 20785 | } | ||
| 20786 | +#line 5777 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20787 | break; | ||
| 20788 | |||
| 20789 | case 356: | ||
| 20790 | -#line 2884 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20791 | +#line 2884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20792 | { | ||
| 20793 | fcallDef *fcd; | ||
| 20794 | |||
| 20795 | fcd = sipMalloc(sizeof (fcallDef)); | ||
| 20796 | - *fcd = (yyvsp[(3) - (4)].fcall); | ||
| 20797 | - fcd -> type = (yyvsp[(1) - (4)].memArg); | ||
| 20798 | + *fcd = (yyvsp[-1].fcall); | ||
| 20799 | + fcd -> type = (yyvsp[-3].memArg); | ||
| 20800 | |||
| 20801 | (yyval.value).vtype = fcall_value; | ||
| 20802 | (yyval.value).u.fcd = fcd; | ||
| 20803 | } | ||
| 20804 | +#line 5792 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20805 | break; | ||
| 20806 | |||
| 20807 | case 357: | ||
| 20808 | -#line 2894 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20809 | +#line 2894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20810 | { | ||
| 20811 | (yyval.value).vtype = real_value; | ||
| 20812 | - (yyval.value).u.vreal = (yyvsp[(1) - (1)].real); | ||
| 20813 | + (yyval.value).u.vreal = (yyvsp[0].real); | ||
| 20814 | } | ||
| 20815 | +#line 5801 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20816 | break; | ||
| 20817 | |||
| 20818 | case 358: | ||
| 20819 | -#line 2898 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20820 | +#line 2898 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20821 | { | ||
| 20822 | (yyval.value).vtype = numeric_value; | ||
| 20823 | - (yyval.value).u.vnum = (yyvsp[(1) - (1)].number); | ||
| 20824 | + (yyval.value).u.vnum = (yyvsp[0].number); | ||
| 20825 | } | ||
| 20826 | +#line 5810 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20827 | break; | ||
| 20828 | |||
| 20829 | case 359: | ||
| 20830 | -#line 2902 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20831 | +#line 2902 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20832 | { | ||
| 20833 | (yyval.value).vtype = numeric_value; | ||
| 20834 | - (yyval.value).u.vnum = (yyvsp[(1) - (1)].boolean); | ||
| 20835 | + (yyval.value).u.vnum = (yyvsp[0].boolean); | ||
| 20836 | } | ||
| 20837 | +#line 5819 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20838 | break; | ||
| 20839 | |||
| 20840 | case 360: | ||
| 20841 | -#line 2906 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20842 | +#line 2906 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20843 | { | ||
| 20844 | (yyval.value).vtype = numeric_value; | ||
| 20845 | (yyval.value).u.vnum = 0; | ||
| 20846 | } | ||
| 20847 | +#line 5828 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20848 | break; | ||
| 20849 | |||
| 20850 | case 361: | ||
| 20851 | -#line 2910 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20852 | +#line 2910 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20853 | { | ||
| 20854 | (yyval.value).vtype = string_value; | ||
| 20855 | - (yyval.value).u.vstr = (yyvsp[(1) - (1)].text); | ||
| 20856 | + (yyval.value).u.vstr = (yyvsp[0].text); | ||
| 20857 | } | ||
| 20858 | +#line 5837 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20859 | break; | ||
| 20860 | |||
| 20861 | case 362: | ||
| 20862 | -#line 2914 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20863 | +#line 2914 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20864 | { | ||
| 20865 | (yyval.value).vtype = qchar_value; | ||
| 20866 | - (yyval.value).u.vqchar = (yyvsp[(1) - (1)].qchar); | ||
| 20867 | + (yyval.value).u.vqchar = (yyvsp[0].qchar); | ||
| 20868 | } | ||
| 20869 | +#line 5846 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20870 | break; | ||
| 20871 | |||
| 20872 | case 363: | ||
| 20873 | -#line 2920 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20874 | +#line 2920 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20875 | { | ||
| 20876 | /* No values. */ | ||
| 20877 | |||
| 20878 | (yyval.fcall).nrArgs = 0; | ||
| 20879 | } | ||
| 20880 | +#line 5856 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20881 | break; | ||
| 20882 | |||
| 20883 | case 364: | ||
| 20884 | -#line 2925 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20885 | +#line 2925 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20886 | { | ||
| 20887 | /* The single or first expression. */ | ||
| 20888 | |||
| 20889 | - (yyval.fcall).args[0] = (yyvsp[(1) - (1)].valp); | ||
| 20890 | + (yyval.fcall).args[0] = (yyvsp[0].valp); | ||
| 20891 | (yyval.fcall).nrArgs = 1; | ||
| 20892 | } | ||
| 20893 | +#line 5867 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20894 | break; | ||
| 20895 | |||
| 20896 | case 365: | ||
| 20897 | -#line 2931 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20898 | +#line 2931 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20899 | { | ||
| 20900 | /* Check that it wasn't ...(,expression...). */ | ||
| 20901 | |||
| 20902 | @@ -5955,18 +5876,19 @@ | ||
| 20903 | |||
| 20904 | /* Check there is room. */ | ||
| 20905 | |||
| 20906 | - if ((yyvsp[(1) - (3)].fcall).nrArgs == MAX_NR_ARGS) | ||
| 20907 | + if ((yyvsp[-2].fcall).nrArgs == MAX_NR_ARGS) | ||
| 20908 | yyerror("Internal error - increase the value of MAX_NR_ARGS"); | ||
| 20909 | |||
| 20910 | - (yyval.fcall) = (yyvsp[(1) - (3)].fcall); | ||
| 20911 | + (yyval.fcall) = (yyvsp[-2].fcall); | ||
| 20912 | |||
| 20913 | - (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[(3) - (3)].valp); | ||
| 20914 | + (yyval.fcall).args[(yyval.fcall).nrArgs] = (yyvsp[0].valp); | ||
| 20915 | (yyval.fcall).nrArgs++; | ||
| 20916 | } | ||
| 20917 | +#line 5888 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20918 | break; | ||
| 20919 | |||
| 20920 | case 366: | ||
| 20921 | -#line 2949 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20922 | +#line 2949 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20923 | { | ||
| 20924 | if (notSkipping()) | ||
| 20925 | { | ||
| 20926 | @@ -5983,16 +5905,17 @@ | ||
| 20927 | NULL | ||
| 20928 | }; | ||
| 20929 | |||
| 20930 | - checkAnnos(&(yyvsp[(4) - (6)].optflags), annos); | ||
| 20931 | + checkAnnos(&(yyvsp[-2].optflags), annos); | ||
| 20932 | |||
| 20933 | - applyTypeFlags(currentModule, &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags)); | ||
| 20934 | - newTypedef(currentSpec, currentModule, (yyvsp[(3) - (6)].text), &(yyvsp[(2) - (6)].memArg), &(yyvsp[(4) - (6)].optflags), (yyvsp[(6) - (6)].docstr)); | ||
| 20935 | + applyTypeFlags(currentModule, &(yyvsp[-4].memArg), &(yyvsp[-2].optflags)); | ||
| 20936 | + newTypedef(currentSpec, currentModule, (yyvsp[-3].text), &(yyvsp[-4].memArg), &(yyvsp[-2].optflags), (yyvsp[0].docstr)); | ||
| 20937 | } | ||
| 20938 | } | ||
| 20939 | +#line 5915 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20940 | break; | ||
| 20941 | |||
| 20942 | case 367: | ||
| 20943 | -#line 2971 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20944 | +#line 2971 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20945 | { | ||
| 20946 | if (notSkipping()) | ||
| 20947 | { | ||
| 20948 | @@ -6011,40 +5934,42 @@ | ||
| 20949 | signatureDef *sig; | ||
| 20950 | argDef ftype; | ||
| 20951 | |||
| 20952 | - checkAnnos(&(yyvsp[(10) - (12)].optflags), annos); | ||
| 20953 | + checkAnnos(&(yyvsp[-2].optflags), annos); | ||
| 20954 | |||
| 20955 | - applyTypeFlags(currentModule, &(yyvsp[(2) - (12)].memArg), &(yyvsp[(10) - (12)].optflags)); | ||
| 20956 | + applyTypeFlags(currentModule, &(yyvsp[-10].memArg), &(yyvsp[-2].optflags)); | ||
| 20957 | |||
| 20958 | memset(&ftype, 0, sizeof (argDef)); | ||
| 20959 | |||
| 20960 | /* Create the full signature on the heap. */ | ||
| 20961 | sig = sipMalloc(sizeof (signatureDef)); | ||
| 20962 | - *sig = (yyvsp[(8) - (12)].signature); | ||
| 20963 | - sig->result = (yyvsp[(2) - (12)].memArg); | ||
| 20964 | + *sig = (yyvsp[-4].signature); | ||
| 20965 | + sig->result = (yyvsp[-10].memArg); | ||
| 20966 | |||
| 20967 | /* Create the full type. */ | ||
| 20968 | ftype.atype = function_type; | ||
| 20969 | ftype.nrderefs = 1; | ||
| 20970 | ftype.u.sa = sig; | ||
| 20971 | |||
| 20972 | - newTypedef(currentSpec, currentModule, (yyvsp[(5) - (12)].text), &ftype, &(yyvsp[(10) - (12)].optflags), (yyvsp[(12) - (12)].docstr)); | ||
| 20973 | + newTypedef(currentSpec, currentModule, (yyvsp[-7].text), &ftype, &(yyvsp[-2].optflags), (yyvsp[0].docstr)); | ||
| 20974 | } | ||
| 20975 | } | ||
| 20976 | +#line 5957 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20977 | break; | ||
| 20978 | |||
| 20979 | case 368: | ||
| 20980 | -#line 3010 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20981 | +#line 3010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20982 | { | ||
| 20983 | - if (currentSpec -> genc && (yyvsp[(2) - (2)].scpvalp)->next != NULL) | ||
| 20984 | + if (currentSpec -> genc && (yyvsp[0].scpvalp)->next != NULL) | ||
| 20985 | yyerror("Namespaces not allowed in a C module"); | ||
| 20986 | |||
| 20987 | if (notSkipping()) | ||
| 20988 | currentSupers = NULL; | ||
| 20989 | } | ||
| 20990 | +#line 5969 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 20991 | break; | ||
| 20992 | |||
| 20993 | case 369: | ||
| 20994 | -#line 3016 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 20995 | +#line 3016 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 20996 | { | ||
| 20997 | if (notSkipping()) | ||
| 20998 | { | ||
| 20999 | @@ -6074,32 +5999,35 @@ | ||
| 21000 | NULL | ||
| 21001 | }; | ||
| 21002 | |||
| 21003 | - checkAnnos(&(yyvsp[(5) - (5)].optflags), annos); | ||
| 21004 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 21005 | |||
| 21006 | if (currentSpec->genc && currentSupers != NULL) | ||
| 21007 | yyerror("Super-classes not allowed in a C module struct"); | ||
| 21008 | |||
| 21009 | - defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags)); | ||
| 21010 | + defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags)); | ||
| 21011 | sectionFlags = SECT_IS_PUBLIC; | ||
| 21012 | } | ||
| 21013 | } | ||
| 21014 | +#line 6012 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21015 | break; | ||
| 21016 | |||
| 21017 | case 370: | ||
| 21018 | -#line 3053 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21019 | +#line 3053 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21020 | { | ||
| 21021 | if (notSkipping()) | ||
| 21022 | - completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean)); | ||
| 21023 | + completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean)); | ||
| 21024 | } | ||
| 21025 | +#line 6021 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21026 | break; | ||
| 21027 | |||
| 21028 | case 371: | ||
| 21029 | -#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21030 | +#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21031 | {currentIsTemplate = TRUE;} | ||
| 21032 | +#line 6027 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21033 | break; | ||
| 21034 | |||
| 21035 | case 372: | ||
| 21036 | -#line 3059 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21037 | +#line 3059 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21038 | { | ||
| 21039 | if (currentSpec->genc) | ||
| 21040 | yyerror("Class templates not allowed in a C module"); | ||
| 21041 | @@ -6111,12 +6039,12 @@ | ||
| 21042 | /* | ||
| 21043 | * Make sure there is room for the extra class name argument. | ||
| 21044 | */ | ||
| 21045 | - if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) | ||
| 21046 | + if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) | ||
| 21047 | yyerror("Internal error - increase the value of MAX_NR_ARGS"); | ||
| 21048 | |||
| 21049 | tcd = sipMalloc(sizeof (classTmplDef)); | ||
| 21050 | - tcd->sig = (yyvsp[(1) - (3)].signature); | ||
| 21051 | - tcd->cd = (yyvsp[(3) - (3)].klass); | ||
| 21052 | + tcd->sig = (yyvsp[-2].signature); | ||
| 21053 | + tcd->cd = (yyvsp[0].klass); | ||
| 21054 | tcd->next = currentSpec->classtemplates; | ||
| 21055 | |||
| 21056 | currentSpec->classtemplates = tcd; | ||
| 21057 | @@ -6124,17 +6052,19 @@ | ||
| 21058 | |||
| 21059 | currentIsTemplate = FALSE; | ||
| 21060 | } | ||
| 21061 | +#line 6056 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21062 | break; | ||
| 21063 | |||
| 21064 | case 373: | ||
| 21065 | -#line 3085 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21066 | +#line 3085 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21067 | { | ||
| 21068 | - (yyval.signature) = (yyvsp[(3) - (4)].signature); | ||
| 21069 | + (yyval.signature) = (yyvsp[-1].signature); | ||
| 21070 | } | ||
| 21071 | +#line 6064 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21072 | break; | ||
| 21073 | |||
| 21074 | case 374: | ||
| 21075 | -#line 3090 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21076 | +#line 3090 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21077 | { | ||
| 21078 | if (currentSpec->genc) | ||
| 21079 | yyerror("Class definition not allowed in a C module"); | ||
| 21080 | @@ -6142,10 +6072,11 @@ | ||
| 21081 | if (notSkipping()) | ||
| 21082 | currentSupers = NULL; | ||
| 21083 | } | ||
| 21084 | +#line 6076 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21085 | break; | ||
| 21086 | |||
| 21087 | case 375: | ||
| 21088 | -#line 3096 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21089 | +#line 3096 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21090 | { | ||
| 21091 | if (notSkipping()) | ||
| 21092 | { | ||
| 21093 | @@ -6174,30 +6105,32 @@ | ||
| 21094 | NULL | ||
| 21095 | }; | ||
| 21096 | |||
| 21097 | - checkAnnos(&(yyvsp[(5) - (5)].optflags), annos); | ||
| 21098 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 21099 | |||
| 21100 | - defineClass((yyvsp[(2) - (5)].scpvalp), currentSupers, &(yyvsp[(5) - (5)].optflags)); | ||
| 21101 | + defineClass((yyvsp[-3].scpvalp), currentSupers, &(yyvsp[0].optflags)); | ||
| 21102 | sectionFlags = SECT_IS_PRIVATE; | ||
| 21103 | } | ||
| 21104 | } | ||
| 21105 | +#line 6115 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21106 | break; | ||
| 21107 | |||
| 21108 | case 376: | ||
| 21109 | -#line 3129 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21110 | +#line 3129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21111 | { | ||
| 21112 | if (notSkipping()) | ||
| 21113 | - (yyval.klass) = completeClass((yyvsp[(2) - (8)].scpvalp), &(yyvsp[(5) - (8)].optflags), (yyvsp[(7) - (8)].boolean)); | ||
| 21114 | + (yyval.klass) = completeClass((yyvsp[-6].scpvalp), &(yyvsp[-3].optflags), (yyvsp[-1].boolean)); | ||
| 21115 | } | ||
| 21116 | +#line 6124 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21117 | break; | ||
| 21118 | |||
| 21119 | case 381: | ||
| 21120 | -#line 3143 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21121 | +#line 3143 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21122 | { | ||
| 21123 | - if (notSkipping() && (yyvsp[(1) - (2)].token) == TK_PUBLIC) | ||
| 21124 | + if (notSkipping() && (yyvsp[-1].token) == TK_PUBLIC) | ||
| 21125 | { | ||
| 21126 | argDef ad; | ||
| 21127 | classDef *super; | ||
| 21128 | - scopedNameDef *snd = (yyvsp[(2) - (2)].scpvalp); | ||
| 21129 | + scopedNameDef *snd = (yyvsp[0].scpvalp); | ||
| 21130 | |||
| 21131 | /* | ||
| 21132 | * This is a hack to allow typedef'ed classes to be used before | ||
| 21133 | @@ -6242,52 +6175,59 @@ | ||
| 21134 | appendToClassList(¤tSupers, super); | ||
| 21135 | } | ||
| 21136 | } | ||
| 21137 | +#line 6179 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21138 | break; | ||
| 21139 | |||
| 21140 | case 382: | ||
| 21141 | -#line 3195 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21142 | +#line 3195 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21143 | { | ||
| 21144 | (yyval.token) = TK_PUBLIC; | ||
| 21145 | } | ||
| 21146 | +#line 6187 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21147 | break; | ||
| 21148 | |||
| 21149 | case 383: | ||
| 21150 | -#line 3198 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21151 | +#line 3198 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21152 | { | ||
| 21153 | (yyval.token) = TK_PUBLIC; | ||
| 21154 | } | ||
| 21155 | +#line 6195 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21156 | break; | ||
| 21157 | |||
| 21158 | case 384: | ||
| 21159 | -#line 3201 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21160 | +#line 3201 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21161 | { | ||
| 21162 | (yyval.token) = TK_PROTECTED; | ||
| 21163 | } | ||
| 21164 | +#line 6203 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21165 | break; | ||
| 21166 | |||
| 21167 | case 385: | ||
| 21168 | -#line 3204 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21169 | +#line 3204 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21170 | { | ||
| 21171 | (yyval.token) = TK_PRIVATE; | ||
| 21172 | } | ||
| 21173 | +#line 6211 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21174 | break; | ||
| 21175 | |||
| 21176 | case 386: | ||
| 21177 | -#line 3209 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21178 | +#line 3209 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21179 | { | ||
| 21180 | (yyval.boolean) = FALSE; | ||
| 21181 | } | ||
| 21182 | +#line 6219 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21183 | break; | ||
| 21184 | |||
| 21185 | case 387: | ||
| 21186 | -#line 3212 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21187 | +#line 3212 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21188 | { | ||
| 21189 | (yyval.boolean) = TRUE; | ||
| 21190 | } | ||
| 21191 | +#line 6227 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21192 | break; | ||
| 21193 | |||
| 21194 | case 401: | ||
| 21195 | -#line 3232 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21196 | +#line 3232 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21197 | { | ||
| 21198 | if (notSkipping()) | ||
| 21199 | { | ||
| 21200 | @@ -6296,29 +6236,32 @@ | ||
| 21201 | if (scope->docstring != NULL) | ||
| 21202 | yyerror("%Docstring already given for class"); | ||
| 21203 | |||
| 21204 | - scope->docstring = (yyvsp[(1) - (1)].docstr); | ||
| 21205 | + scope->docstring = (yyvsp[0].docstr); | ||
| 21206 | } | ||
| 21207 | } | ||
| 21208 | +#line 6243 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21209 | break; | ||
| 21210 | |||
| 21211 | case 402: | ||
| 21212 | -#line 3243 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21213 | +#line 3243 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21214 | { | ||
| 21215 | if (notSkipping()) | ||
| 21216 | - appendCodeBlock(¤tScope()->cppcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21217 | + appendCodeBlock(¤tScope()->cppcode, (yyvsp[0].codeb)); | ||
| 21218 | } | ||
| 21219 | +#line 6252 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21220 | break; | ||
| 21221 | |||
| 21222 | case 403: | ||
| 21223 | -#line 3247 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21224 | +#line 3247 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21225 | { | ||
| 21226 | if (notSkipping()) | ||
| 21227 | - appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21228 | + appendCodeBlock(¤tScope()->iff->hdrcode, (yyvsp[0].codeb)); | ||
| 21229 | } | ||
| 21230 | +#line 6261 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21231 | break; | ||
| 21232 | |||
| 21233 | case 404: | ||
| 21234 | -#line 3251 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21235 | +#line 3251 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21236 | { | ||
| 21237 | if (notSkipping()) | ||
| 21238 | { | ||
| 21239 | @@ -6327,13 +6270,14 @@ | ||
| 21240 | if (scope->travcode != NULL) | ||
| 21241 | yyerror("%GCTraverseCode already given for class"); | ||
| 21242 | |||
| 21243 | - appendCodeBlock(&scope->travcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21244 | + appendCodeBlock(&scope->travcode, (yyvsp[0].codeb)); | ||
| 21245 | } | ||
| 21246 | } | ||
| 21247 | +#line 6277 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21248 | break; | ||
| 21249 | |||
| 21250 | case 405: | ||
| 21251 | -#line 3262 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21252 | +#line 3262 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21253 | { | ||
| 21254 | if (notSkipping()) | ||
| 21255 | { | ||
| 21256 | @@ -6342,13 +6286,14 @@ | ||
| 21257 | if (scope->clearcode != NULL) | ||
| 21258 | yyerror("%GCClearCode already given for class"); | ||
| 21259 | |||
| 21260 | - appendCodeBlock(&scope->clearcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21261 | + appendCodeBlock(&scope->clearcode, (yyvsp[0].codeb)); | ||
| 21262 | } | ||
| 21263 | } | ||
| 21264 | +#line 6293 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21265 | break; | ||
| 21266 | |||
| 21267 | case 406: | ||
| 21268 | -#line 3273 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21269 | +#line 3273 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21270 | { | ||
| 21271 | if (notSkipping()) | ||
| 21272 | { | ||
| 21273 | @@ -6357,13 +6302,14 @@ | ||
| 21274 | if (scope->getbufcode != NULL) | ||
| 21275 | yyerror("%BIGetBufferCode already given for class"); | ||
| 21276 | |||
| 21277 | - appendCodeBlock(&scope->getbufcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21278 | + appendCodeBlock(&scope->getbufcode, (yyvsp[0].codeb)); | ||
| 21279 | } | ||
| 21280 | } | ||
| 21281 | +#line 6309 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21282 | break; | ||
| 21283 | |||
| 21284 | case 407: | ||
| 21285 | -#line 3284 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21286 | +#line 3284 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21287 | { | ||
| 21288 | if (notSkipping()) | ||
| 21289 | { | ||
| 21290 | @@ -6372,13 +6318,14 @@ | ||
| 21291 | if (scope->releasebufcode != NULL) | ||
| 21292 | yyerror("%BIReleaseBufferCode already given for class"); | ||
| 21293 | |||
| 21294 | - appendCodeBlock(&scope->releasebufcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21295 | + appendCodeBlock(&scope->releasebufcode, (yyvsp[0].codeb)); | ||
| 21296 | } | ||
| 21297 | } | ||
| 21298 | +#line 6325 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21299 | break; | ||
| 21300 | |||
| 21301 | case 408: | ||
| 21302 | -#line 3295 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21303 | +#line 3295 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21304 | { | ||
| 21305 | if (notSkipping()) | ||
| 21306 | { | ||
| 21307 | @@ -6387,13 +6334,14 @@ | ||
| 21308 | if (scope->readbufcode != NULL) | ||
| 21309 | yyerror("%BIGetReadBufferCode already given for class"); | ||
| 21310 | |||
| 21311 | - appendCodeBlock(&scope->readbufcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21312 | + appendCodeBlock(&scope->readbufcode, (yyvsp[0].codeb)); | ||
| 21313 | } | ||
| 21314 | } | ||
| 21315 | +#line 6341 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21316 | break; | ||
| 21317 | |||
| 21318 | case 409: | ||
| 21319 | -#line 3306 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21320 | +#line 3306 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21321 | { | ||
| 21322 | if (notSkipping()) | ||
| 21323 | { | ||
| 21324 | @@ -6402,13 +6350,14 @@ | ||
| 21325 | if (scope->writebufcode != NULL) | ||
| 21326 | yyerror("%BIGetWriteBufferCode already given for class"); | ||
| 21327 | |||
| 21328 | - appendCodeBlock(&scope->writebufcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21329 | + appendCodeBlock(&scope->writebufcode, (yyvsp[0].codeb)); | ||
| 21330 | } | ||
| 21331 | } | ||
| 21332 | +#line 6357 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21333 | break; | ||
| 21334 | |||
| 21335 | case 410: | ||
| 21336 | -#line 3317 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21337 | +#line 3317 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21338 | { | ||
| 21339 | if (notSkipping()) | ||
| 21340 | { | ||
| 21341 | @@ -6417,13 +6366,14 @@ | ||
| 21342 | if (scope->segcountcode != NULL) | ||
| 21343 | yyerror("%BIGetSegCountCode already given for class"); | ||
| 21344 | |||
| 21345 | - appendCodeBlock(&scope->segcountcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21346 | + appendCodeBlock(&scope->segcountcode, (yyvsp[0].codeb)); | ||
| 21347 | } | ||
| 21348 | } | ||
| 21349 | +#line 6373 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21350 | break; | ||
| 21351 | |||
| 21352 | case 411: | ||
| 21353 | -#line 3328 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21354 | +#line 3328 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21355 | { | ||
| 21356 | if (notSkipping()) | ||
| 21357 | { | ||
| 21358 | @@ -6432,13 +6382,14 @@ | ||
| 21359 | if (scope->charbufcode != NULL) | ||
| 21360 | yyerror("%BIGetCharBufferCode already given for class"); | ||
| 21361 | |||
| 21362 | - appendCodeBlock(&scope->charbufcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21363 | + appendCodeBlock(&scope->charbufcode, (yyvsp[0].codeb)); | ||
| 21364 | } | ||
| 21365 | } | ||
| 21366 | +#line 6389 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21367 | break; | ||
| 21368 | |||
| 21369 | case 412: | ||
| 21370 | -#line 3339 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21371 | +#line 3339 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21372 | { | ||
| 21373 | if (notSkipping()) | ||
| 21374 | { | ||
| 21375 | @@ -6447,13 +6398,14 @@ | ||
| 21376 | if (scope->instancecode != NULL) | ||
| 21377 | yyerror("%InstanceCode already given for class"); | ||
| 21378 | |||
| 21379 | - appendCodeBlock(&scope->instancecode, (yyvsp[(1) - (1)].codeb)); | ||
| 21380 | + appendCodeBlock(&scope->instancecode, (yyvsp[0].codeb)); | ||
| 21381 | } | ||
| 21382 | } | ||
| 21383 | +#line 6405 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21384 | break; | ||
| 21385 | |||
| 21386 | case 413: | ||
| 21387 | -#line 3350 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21388 | +#line 3350 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21389 | { | ||
| 21390 | if (notSkipping()) | ||
| 21391 | { | ||
| 21392 | @@ -6462,13 +6414,14 @@ | ||
| 21393 | if (scope->picklecode != NULL) | ||
| 21394 | yyerror("%PickleCode already given for class"); | ||
| 21395 | |||
| 21396 | - appendCodeBlock(&scope->picklecode, (yyvsp[(1) - (1)].codeb)); | ||
| 21397 | + appendCodeBlock(&scope->picklecode, (yyvsp[0].codeb)); | ||
| 21398 | } | ||
| 21399 | } | ||
| 21400 | +#line 6421 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21401 | break; | ||
| 21402 | |||
| 21403 | case 414: | ||
| 21404 | -#line 3361 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21405 | +#line 3361 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21406 | { | ||
| 21407 | if (notSkipping()) | ||
| 21408 | { | ||
| 21409 | @@ -6477,13 +6430,14 @@ | ||
| 21410 | if (scope->finalcode != NULL) | ||
| 21411 | yyerror("%FinalisationCode already given for class"); | ||
| 21412 | |||
| 21413 | - appendCodeBlock(&scope->finalcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21414 | + appendCodeBlock(&scope->finalcode, (yyvsp[0].codeb)); | ||
| 21415 | } | ||
| 21416 | } | ||
| 21417 | +#line 6437 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21418 | break; | ||
| 21419 | |||
| 21420 | case 415: | ||
| 21421 | -#line 3372 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21422 | +#line 3372 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21423 | { | ||
| 21424 | if (notSkipping()) | ||
| 21425 | { | ||
| 21426 | @@ -6492,13 +6446,14 @@ | ||
| 21427 | if (scope->typehintcode != NULL) | ||
| 21428 | yyerror("%TypeHintCode already given for class"); | ||
| 21429 | |||
| 21430 | - appendCodeBlock(&scope->typehintcode, (yyvsp[(1) - (1)].codeb)); | ||
| 21431 | + appendCodeBlock(&scope->typehintcode, (yyvsp[0].codeb)); | ||
| 21432 | } | ||
| 21433 | } | ||
| 21434 | +#line 6453 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21435 | break; | ||
| 21436 | |||
| 21437 | case 419: | ||
| 21438 | -#line 3386 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21439 | +#line 3386 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21440 | { | ||
| 21441 | if (notSkipping()) | ||
| 21442 | { | ||
| 21443 | @@ -6507,13 +6462,14 @@ | ||
| 21444 | if (scope->convtosubcode != NULL) | ||
| 21445 | yyerror("Class has more than one %ConvertToSubClassCode directive"); | ||
| 21446 | |||
| 21447 | - appendCodeBlock(&scope->convtosubcode, (yyvsp[(2) - (2)].codeb)); | ||
| 21448 | + appendCodeBlock(&scope->convtosubcode, (yyvsp[0].codeb)); | ||
| 21449 | } | ||
| 21450 | } | ||
| 21451 | +#line 6469 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21452 | break; | ||
| 21453 | |||
| 21454 | case 420: | ||
| 21455 | -#line 3397 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21456 | +#line 3397 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21457 | { | ||
| 21458 | if (notSkipping()) | ||
| 21459 | { | ||
| 21460 | @@ -6522,13 +6478,14 @@ | ||
| 21461 | if (scope->convtocode != NULL) | ||
| 21462 | yyerror("Class has more than one %ConvertToTypeCode directive"); | ||
| 21463 | |||
| 21464 | - appendCodeBlock(&scope->convtocode, (yyvsp[(2) - (2)].codeb)); | ||
| 21465 | + appendCodeBlock(&scope->convtocode, (yyvsp[0].codeb)); | ||
| 21466 | } | ||
| 21467 | } | ||
| 21468 | +#line 6485 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21469 | break; | ||
| 21470 | |||
| 21471 | case 421: | ||
| 21472 | -#line 3408 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21473 | +#line 3408 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21474 | { | ||
| 21475 | if (notSkipping()) | ||
| 21476 | { | ||
| 21477 | @@ -6537,46 +6494,50 @@ | ||
| 21478 | if (scope->convfromcode != NULL) | ||
| 21479 | yyerror("Class has more than one %ConvertFromTypeCode directive"); | ||
| 21480 | |||
| 21481 | - appendCodeBlock(&scope->convfromcode, (yyvsp[(2) - (2)].codeb)); | ||
| 21482 | + appendCodeBlock(&scope->convfromcode, (yyvsp[0].codeb)); | ||
| 21483 | } | ||
| 21484 | } | ||
| 21485 | +#line 6501 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21486 | break; | ||
| 21487 | |||
| 21488 | case 422: | ||
| 21489 | -#line 3419 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21490 | +#line 3419 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21491 | { | ||
| 21492 | if (currentSpec -> genc) | ||
| 21493 | yyerror("public section not allowed in a C module"); | ||
| 21494 | |||
| 21495 | if (notSkipping()) | ||
| 21496 | - sectionFlags = SECT_IS_PUBLIC | (yyvsp[(2) - (3)].number); | ||
| 21497 | + sectionFlags = SECT_IS_PUBLIC | (yyvsp[-1].number); | ||
| 21498 | } | ||
| 21499 | +#line 6513 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21500 | break; | ||
| 21501 | |||
| 21502 | case 423: | ||
| 21503 | -#line 3426 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21504 | +#line 3426 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21505 | { | ||
| 21506 | if (currentSpec -> genc) | ||
| 21507 | yyerror("protected section not allowed in a C module"); | ||
| 21508 | |||
| 21509 | if (notSkipping()) | ||
| 21510 | - sectionFlags = SECT_IS_PROT | (yyvsp[(2) - (3)].number); | ||
| 21511 | + sectionFlags = SECT_IS_PROT | (yyvsp[-1].number); | ||
| 21512 | } | ||
| 21513 | +#line 6525 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21514 | break; | ||
| 21515 | |||
| 21516 | case 424: | ||
| 21517 | -#line 3433 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21518 | +#line 3433 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21519 | { | ||
| 21520 | if (currentSpec -> genc) | ||
| 21521 | yyerror("private section not allowed in a C module"); | ||
| 21522 | |||
| 21523 | if (notSkipping()) | ||
| 21524 | - sectionFlags = SECT_IS_PRIVATE | (yyvsp[(2) - (3)].number); | ||
| 21525 | + sectionFlags = SECT_IS_PRIVATE | (yyvsp[-1].number); | ||
| 21526 | } | ||
| 21527 | +#line 6537 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21528 | break; | ||
| 21529 | |||
| 21530 | case 425: | ||
| 21531 | -#line 3440 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21532 | +#line 3440 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21533 | { | ||
| 21534 | if (currentSpec -> genc) | ||
| 21535 | yyerror("signals section not allowed in a C module"); | ||
| 21536 | @@ -6584,125 +6545,137 @@ | ||
| 21537 | if (notSkipping()) | ||
| 21538 | sectionFlags = SECT_IS_SIGNAL; | ||
| 21539 | } | ||
| 21540 | +#line 6549 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21541 | break; | ||
| 21542 | |||
| 21543 | case 426: | ||
| 21544 | -#line 3449 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21545 | +#line 3449 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21546 | { | ||
| 21547 | - if ((yyvsp[(2) - (3)].property).name == NULL) | ||
| 21548 | + if ((yyvsp[-1].property).name == NULL) | ||
| 21549 | yyerror("A %Property directive must have a 'name' argument"); | ||
| 21550 | |||
| 21551 | - if ((yyvsp[(2) - (3)].property).get == NULL) | ||
| 21552 | + if ((yyvsp[-1].property).get == NULL) | ||
| 21553 | yyerror("A %Property directive must have a 'get' argument"); | ||
| 21554 | |||
| 21555 | if (notSkipping()) | ||
| 21556 | addProperty(currentSpec, currentModule, currentScope(), | ||
| 21557 | - (yyvsp[(2) - (3)].property).name, (yyvsp[(2) - (3)].property).get, (yyvsp[(2) - (3)].property).set, (yyvsp[(3) - (3)].property).docstring); | ||
| 21558 | + (yyvsp[-1].property).name, (yyvsp[-1].property).get, (yyvsp[-1].property).set, (yyvsp[0].property).docstring); | ||
| 21559 | } | ||
| 21560 | +#line 6565 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21561 | break; | ||
| 21562 | |||
| 21563 | case 427: | ||
| 21564 | -#line 3462 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21565 | +#line 3462 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21566 | { | ||
| 21567 | - (yyval.property) = (yyvsp[(2) - (3)].property); | ||
| 21568 | + (yyval.property) = (yyvsp[-1].property); | ||
| 21569 | } | ||
| 21570 | +#line 6573 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21571 | break; | ||
| 21572 | |||
| 21573 | case 429: | ||
| 21574 | -#line 3468 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21575 | +#line 3468 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21576 | { | ||
| 21577 | - (yyval.property) = (yyvsp[(1) - (3)].property); | ||
| 21578 | + (yyval.property) = (yyvsp[-2].property); | ||
| 21579 | |||
| 21580 | - switch ((yyvsp[(3) - (3)].property).token) | ||
| 21581 | + switch ((yyvsp[0].property).token) | ||
| 21582 | { | ||
| 21583 | - case TK_GET: (yyval.property).get = (yyvsp[(3) - (3)].property).get; break; | ||
| 21584 | - case TK_NAME: (yyval.property).name = (yyvsp[(3) - (3)].property).name; break; | ||
| 21585 | - case TK_SET: (yyval.property).set = (yyvsp[(3) - (3)].property).set; break; | ||
| 21586 | + case TK_GET: (yyval.property).get = (yyvsp[0].property).get; break; | ||
| 21587 | + case TK_NAME: (yyval.property).name = (yyvsp[0].property).name; break; | ||
| 21588 | + case TK_SET: (yyval.property).set = (yyvsp[0].property).set; break; | ||
| 21589 | } | ||
| 21590 | } | ||
| 21591 | +#line 6588 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21592 | break; | ||
| 21593 | |||
| 21594 | case 430: | ||
| 21595 | -#line 3480 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21596 | +#line 3480 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21597 | { | ||
| 21598 | (yyval.property).token = TK_GET; | ||
| 21599 | |||
| 21600 | - (yyval.property).get = (yyvsp[(3) - (3)].text); | ||
| 21601 | + (yyval.property).get = (yyvsp[0].text); | ||
| 21602 | (yyval.property).name = NULL; | ||
| 21603 | (yyval.property).set = NULL; | ||
| 21604 | } | ||
| 21605 | +#line 6600 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21606 | break; | ||
| 21607 | |||
| 21608 | case 431: | ||
| 21609 | -#line 3487 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21610 | +#line 3487 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21611 | { | ||
| 21612 | (yyval.property).token = TK_NAME; | ||
| 21613 | |||
| 21614 | (yyval.property).get = NULL; | ||
| 21615 | - (yyval.property).name = (yyvsp[(3) - (3)].text); | ||
| 21616 | + (yyval.property).name = (yyvsp[0].text); | ||
| 21617 | (yyval.property).set = NULL; | ||
| 21618 | } | ||
| 21619 | +#line 6612 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21620 | break; | ||
| 21621 | |||
| 21622 | case 432: | ||
| 21623 | -#line 3494 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21624 | +#line 3494 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21625 | { | ||
| 21626 | (yyval.property).token = TK_SET; | ||
| 21627 | |||
| 21628 | (yyval.property).get = NULL; | ||
| 21629 | (yyval.property).name = NULL; | ||
| 21630 | - (yyval.property).set = (yyvsp[(3) - (3)].text); | ||
| 21631 | + (yyval.property).set = (yyvsp[0].text); | ||
| 21632 | } | ||
| 21633 | +#line 6624 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21634 | break; | ||
| 21635 | |||
| 21636 | case 433: | ||
| 21637 | -#line 3503 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21638 | +#line 3503 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21639 | { | ||
| 21640 | (yyval.property).token = 0; | ||
| 21641 | (yyval.property).docstring = NULL; | ||
| 21642 | } | ||
| 21643 | +#line 6633 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21644 | break; | ||
| 21645 | |||
| 21646 | case 434: | ||
| 21647 | -#line 3507 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21648 | +#line 3507 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21649 | { | ||
| 21650 | - (yyval.property) = (yyvsp[(2) - (4)].property); | ||
| 21651 | + (yyval.property) = (yyvsp[-2].property); | ||
| 21652 | } | ||
| 21653 | +#line 6641 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21654 | break; | ||
| 21655 | |||
| 21656 | case 436: | ||
| 21657 | -#line 3513 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21658 | +#line 3513 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21659 | { | ||
| 21660 | - (yyval.property) = (yyvsp[(1) - (2)].property); | ||
| 21661 | + (yyval.property) = (yyvsp[-1].property); | ||
| 21662 | |||
| 21663 | - switch ((yyvsp[(2) - (2)].property).token) | ||
| 21664 | + switch ((yyvsp[0].property).token) | ||
| 21665 | { | ||
| 21666 | - case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[(2) - (2)].property).docstring; break; | ||
| 21667 | + case TK_DOCSTRING: (yyval.property).docstring = (yyvsp[0].property).docstring; break; | ||
| 21668 | } | ||
| 21669 | } | ||
| 21670 | +#line 6654 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21671 | break; | ||
| 21672 | |||
| 21673 | case 437: | ||
| 21674 | -#line 3523 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21675 | +#line 3523 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21676 | { | ||
| 21677 | (yyval.property).token = TK_IF; | ||
| 21678 | } | ||
| 21679 | +#line 6662 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21680 | break; | ||
| 21681 | |||
| 21682 | case 438: | ||
| 21683 | -#line 3526 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21684 | +#line 3526 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21685 | { | ||
| 21686 | (yyval.property).token = TK_END; | ||
| 21687 | } | ||
| 21688 | +#line 6670 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21689 | break; | ||
| 21690 | |||
| 21691 | case 439: | ||
| 21692 | -#line 3529 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21693 | +#line 3529 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21694 | { | ||
| 21695 | if (notSkipping()) | ||
| 21696 | { | ||
| 21697 | (yyval.property).token = TK_DOCSTRING; | ||
| 21698 | - (yyval.property).docstring = (yyvsp[(1) - (1)].docstr); | ||
| 21699 | + (yyval.property).docstring = (yyvsp[0].docstr); | ||
| 21700 | } | ||
| 21701 | else | ||
| 21702 | { | ||
| 21703 | @@ -6710,24 +6683,27 @@ | ||
| 21704 | (yyval.property).docstring = NULL; | ||
| 21705 | } | ||
| 21706 | } | ||
| 21707 | +#line 6687 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21708 | break; | ||
| 21709 | |||
| 21710 | case 442: | ||
| 21711 | -#line 3547 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21712 | +#line 3547 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21713 | { | ||
| 21714 | (yyval.number) = 0; | ||
| 21715 | } | ||
| 21716 | +#line 6695 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21717 | break; | ||
| 21718 | |||
| 21719 | case 443: | ||
| 21720 | -#line 3550 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21721 | +#line 3550 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21722 | { | ||
| 21723 | (yyval.number) = SECT_IS_SLOT; | ||
| 21724 | } | ||
| 21725 | +#line 6703 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21726 | break; | ||
| 21727 | |||
| 21728 | case 444: | ||
| 21729 | -#line 3555 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21730 | +#line 3555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21731 | { | ||
| 21732 | /* Note that we allow non-virtual dtors in C modules. */ | ||
| 21733 | |||
| 21734 | @@ -6741,22 +6717,22 @@ | ||
| 21735 | |||
| 21736 | classDef *cd = currentScope(); | ||
| 21737 | |||
| 21738 | - checkAnnos(&(yyvsp[(8) - (12)].optflags), annos); | ||
| 21739 | + checkAnnos(&(yyvsp[-4].optflags), annos); | ||
| 21740 | |||
| 21741 | - if (strcmp(classBaseName(cd),(yyvsp[(3) - (12)].text)) != 0) | ||
| 21742 | + if (strcmp(classBaseName(cd),(yyvsp[-9].text)) != 0) | ||
| 21743 | yyerror("Destructor doesn't have the same name as its class"); | ||
| 21744 | |||
| 21745 | if (isDtor(cd)) | ||
| 21746 | yyerror("Destructor has already been defined"); | ||
| 21747 | |||
| 21748 | - if (currentSpec -> genc && (yyvsp[(10) - (12)].codeb) == NULL) | ||
| 21749 | + if (currentSpec -> genc && (yyvsp[-2].codeb) == NULL) | ||
| 21750 | yyerror("Destructor in C modules must include %MethodCode"); | ||
| 21751 | |||
| 21752 | |||
| 21753 | - appendCodeBlock(&cd->dealloccode, (yyvsp[(10) - (12)].codeb)); /* premethodcode */ | ||
| 21754 | - appendCodeBlock(&cd->dealloccode, (yyvsp[(11) - (12)].codeb)); /* methodcode */ | ||
| 21755 | - appendCodeBlock(&cd->dtorcode, (yyvsp[(12) - (12)].codeb)); | ||
| 21756 | - cd -> dtorexceptions = (yyvsp[(6) - (12)].throwlist); | ||
| 21757 | + appendCodeBlock(&cd->dealloccode, (yyvsp[-2].codeb)); /* premethodcode */ | ||
| 21758 | + appendCodeBlock(&cd->dealloccode, (yyvsp[-1].codeb)); /* methodcode */ | ||
| 21759 | + appendCodeBlock(&cd->dtorcode, (yyvsp[0].codeb)); | ||
| 21760 | + cd -> dtorexceptions = (yyvsp[-6].throwlist); | ||
| 21761 | |||
| 21762 | /* | ||
| 21763 | * Note that we don't apply the protected/public hack to dtors | ||
| 21764 | @@ -6764,9 +6740,9 @@ | ||
| 21765 | */ | ||
| 21766 | cd->classflags |= sectionFlags; | ||
| 21767 | |||
| 21768 | - if ((yyvsp[(7) - (12)].number)) | ||
| 21769 | + if ((yyvsp[-5].number)) | ||
| 21770 | { | ||
| 21771 | - if (!(yyvsp[(1) - (12)].number)) | ||
| 21772 | + if (!(yyvsp[-11].number)) | ||
| 21773 | yyerror("Abstract destructor must be virtual"); | ||
| 21774 | |||
| 21775 | setIsAbstractClass(cd); | ||
| 21776 | @@ -6776,7 +6752,7 @@ | ||
| 21777 | * The class has a shadow if we have a virtual dtor or some | ||
| 21778 | * dtor code. | ||
| 21779 | */ | ||
| 21780 | - if ((yyvsp[(1) - (12)].number) || (yyvsp[(11) - (12)].codeb) != NULL) | ||
| 21781 | + if ((yyvsp[-11].number) || (yyvsp[-1].codeb) != NULL) | ||
| 21782 | { | ||
| 21783 | if (currentSpec -> genc) | ||
| 21784 | yyerror("Virtual destructor or %VirtualCatcherCode not allowed in a C module"); | ||
| 21785 | @@ -6784,21 +6760,23 @@ | ||
| 21786 | setNeedsShadow(cd); | ||
| 21787 | } | ||
| 21788 | |||
| 21789 | - if (getReleaseGIL(&(yyvsp[(8) - (12)].optflags))) | ||
| 21790 | + if (getReleaseGIL(&(yyvsp[-4].optflags))) | ||
| 21791 | setIsReleaseGILDtor(cd); | ||
| 21792 | - else if (getHoldGIL(&(yyvsp[(8) - (12)].optflags))) | ||
| 21793 | + else if (getHoldGIL(&(yyvsp[-4].optflags))) | ||
| 21794 | setIsHoldGILDtor(cd); | ||
| 21795 | } | ||
| 21796 | } | ||
| 21797 | +#line 6770 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21798 | break; | ||
| 21799 | |||
| 21800 | case 445: | ||
| 21801 | -#line 3619 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21802 | +#line 3619 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21803 | {currentCtorIsExplicit = TRUE;} | ||
| 21804 | +#line 6776 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21805 | break; | ||
| 21806 | |||
| 21807 | case 448: | ||
| 21808 | -#line 3623 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21809 | +#line 3623 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21810 | { | ||
| 21811 | /* Note that we allow ctors in C modules. */ | ||
| 21812 | |||
| 21813 | @@ -6821,11 +6799,11 @@ | ||
| 21814 | NULL | ||
| 21815 | }; | ||
| 21816 | |||
| 21817 | - checkAnnos(&(yyvsp[(6) - (11)].optflags), annos); | ||
| 21818 | + checkAnnos(&(yyvsp[-5].optflags), annos); | ||
| 21819 | |||
| 21820 | if (currentSpec -> genc) | ||
| 21821 | { | ||
| 21822 | - if ((yyvsp[(10) - (11)].codeb) == NULL && (yyvsp[(3) - (11)].signature).nrArgs != 0) | ||
| 21823 | + if ((yyvsp[-1].codeb) == NULL && (yyvsp[-8].signature).nrArgs != 0) | ||
| 21824 | yyerror("Constructors with arguments in C modules must include %MethodCode"); | ||
| 21825 | |||
| 21826 | if (currentCtorIsExplicit) | ||
| 21827 | @@ -6835,94 +6813,103 @@ | ||
| 21828 | if ((sectionFlags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) == 0) | ||
| 21829 | yyerror("Constructor must be in the public, private or protected sections"); | ||
| 21830 | |||
| 21831 | - 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), | ||
| 21832 | - currentCtorIsExplicit, (yyvsp[(9) - (11)].docstr), (yyvsp[(10) - (11)].codeb)); | ||
| 21833 | + newCtor(currentModule, (yyvsp[-10].text), sectionFlags, &(yyvsp[-8].signature), &(yyvsp[-5].optflags), (yyvsp[0].codeb), (yyvsp[-6].throwlist), (yyvsp[-4].optsignature), | ||
| 21834 | + currentCtorIsExplicit, (yyvsp[-2].docstr), (yyvsp[-1].codeb)); | ||
| 21835 | } | ||
| 21836 | |||
| 21837 | - free((yyvsp[(1) - (11)].text)); | ||
| 21838 | + free((yyvsp[-10].text)); | ||
| 21839 | |||
| 21840 | currentCtorIsExplicit = FALSE; | ||
| 21841 | } | ||
| 21842 | +#line 6825 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21843 | break; | ||
| 21844 | |||
| 21845 | case 449: | ||
| 21846 | -#line 3669 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21847 | +#line 3669 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21848 | { | ||
| 21849 | (yyval.optsignature) = NULL; | ||
| 21850 | } | ||
| 21851 | +#line 6833 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21852 | break; | ||
| 21853 | |||
| 21854 | case 450: | ||
| 21855 | -#line 3672 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21856 | +#line 3672 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21857 | { | ||
| 21858 | parsingCSignature = TRUE; | ||
| 21859 | } | ||
| 21860 | +#line 6841 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21861 | break; | ||
| 21862 | |||
| 21863 | case 451: | ||
| 21864 | -#line 3674 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21865 | +#line 3674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21866 | { | ||
| 21867 | (yyval.optsignature) = sipMalloc(sizeof (signatureDef)); | ||
| 21868 | |||
| 21869 | - *(yyval.optsignature) = (yyvsp[(4) - (6)].signature); | ||
| 21870 | + *(yyval.optsignature) = (yyvsp[-2].signature); | ||
| 21871 | |||
| 21872 | parsingCSignature = FALSE; | ||
| 21873 | } | ||
| 21874 | +#line 6853 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21875 | break; | ||
| 21876 | |||
| 21877 | case 452: | ||
| 21878 | -#line 3683 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21879 | +#line 3683 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21880 | { | ||
| 21881 | (yyval.optsignature) = NULL; | ||
| 21882 | } | ||
| 21883 | +#line 6861 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21884 | break; | ||
| 21885 | |||
| 21886 | case 453: | ||
| 21887 | -#line 3686 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21888 | +#line 3686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21889 | { | ||
| 21890 | parsingCSignature = TRUE; | ||
| 21891 | } | ||
| 21892 | +#line 6869 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21893 | break; | ||
| 21894 | |||
| 21895 | case 454: | ||
| 21896 | -#line 3688 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21897 | +#line 3688 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21898 | { | ||
| 21899 | (yyval.optsignature) = sipMalloc(sizeof (signatureDef)); | ||
| 21900 | |||
| 21901 | - *(yyval.optsignature) = (yyvsp[(5) - (7)].signature); | ||
| 21902 | - (yyval.optsignature)->result = (yyvsp[(3) - (7)].memArg); | ||
| 21903 | + *(yyval.optsignature) = (yyvsp[-2].signature); | ||
| 21904 | + (yyval.optsignature)->result = (yyvsp[-4].memArg); | ||
| 21905 | |||
| 21906 | parsingCSignature = FALSE; | ||
| 21907 | } | ||
| 21908 | +#line 6882 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21909 | break; | ||
| 21910 | |||
| 21911 | case 455: | ||
| 21912 | -#line 3698 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21913 | +#line 3698 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21914 | { | ||
| 21915 | (yyval.number) = FALSE; | ||
| 21916 | } | ||
| 21917 | +#line 6890 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21918 | break; | ||
| 21919 | |||
| 21920 | case 456: | ||
| 21921 | -#line 3701 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21922 | +#line 3701 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21923 | { | ||
| 21924 | (yyval.number) = TRUE; | ||
| 21925 | } | ||
| 21926 | +#line 6898 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21927 | break; | ||
| 21928 | |||
| 21929 | case 457: | ||
| 21930 | -#line 3706 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21931 | +#line 3706 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21932 | { | ||
| 21933 | if (notSkipping()) | ||
| 21934 | { | ||
| 21935 | - applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(10) - (17)].optflags)); | ||
| 21936 | + applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-7].optflags)); | ||
| 21937 | |||
| 21938 | - (yyvsp[(4) - (17)].signature).result = (yyvsp[(1) - (17)].memArg); | ||
| 21939 | + (yyvsp[-13].signature).result = (yyvsp[-16].memArg); | ||
| 21940 | |||
| 21941 | newFunction(currentSpec, currentModule, currentScope(), NULL, | ||
| 21942 | NULL, sectionFlags, currentIsStatic, currentIsSignal, | ||
| 21943 | - currentIsSlot, currentOverIsVirt, (yyvsp[(2) - (17)].text), &(yyvsp[(4) - (17)].signature), (yyvsp[(6) - (17)].number), (yyvsp[(9) - (17)].number), | ||
| 21944 | - &(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)); | ||
| 21945 | + currentIsSlot, currentOverIsVirt, (yyvsp[-15].text), &(yyvsp[-13].signature), (yyvsp[-11].number), (yyvsp[-8].number), | ||
| 21946 | + &(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)); | ||
| 21947 | } | ||
| 21948 | |||
| 21949 | currentIsStatic = FALSE; | ||
| 21950 | @@ -6930,10 +6917,11 @@ | ||
| 21951 | currentIsSlot = FALSE; | ||
| 21952 | currentOverIsVirt = FALSE; | ||
| 21953 | } | ||
| 21954 | +#line 6921 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21955 | break; | ||
| 21956 | |||
| 21957 | case 458: | ||
| 21958 | -#line 3724 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21959 | +#line 3724 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21960 | { | ||
| 21961 | /* | ||
| 21962 | * It looks like an assignment operator (though we don't bother to | ||
| 21963 | @@ -6954,10 +6942,11 @@ | ||
| 21964 | currentIsSlot = FALSE; | ||
| 21965 | currentOverIsVirt = FALSE; | ||
| 21966 | } | ||
| 21967 | +#line 6946 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 21968 | break; | ||
| 21969 | |||
| 21970 | case 459: | ||
| 21971 | -#line 3744 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 21972 | +#line 3744 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 21973 | { | ||
| 21974 | if (notSkipping()) | ||
| 21975 | { | ||
| 21976 | @@ -6978,23 +6967,23 @@ | ||
| 21977 | ns_scope = NULL; | ||
| 21978 | } | ||
| 21979 | |||
| 21980 | - applyTypeFlags(currentModule, &(yyvsp[(1) - (17)].memArg), &(yyvsp[(11) - (17)].optflags)); | ||
| 21981 | + applyTypeFlags(currentModule, &(yyvsp[-16].memArg), &(yyvsp[-6].optflags)); | ||
| 21982 | |||
| 21983 | /* Handle the unary '+' and '-' operators. */ | ||
| 21984 | - if ((cd != NULL && (yyvsp[(5) - (17)].signature).nrArgs == 0) || (cd == NULL && (yyvsp[(5) - (17)].signature).nrArgs == 1)) | ||
| 21985 | + if ((cd != NULL && (yyvsp[-12].signature).nrArgs == 0) || (cd == NULL && (yyvsp[-12].signature).nrArgs == 1)) | ||
| 21986 | { | ||
| 21987 | - if (strcmp((yyvsp[(3) - (17)].text), "__add__") == 0) | ||
| 21988 | - (yyvsp[(3) - (17)].text) = "__pos__"; | ||
| 21989 | - else if (strcmp((yyvsp[(3) - (17)].text), "__sub__") == 0) | ||
| 21990 | - (yyvsp[(3) - (17)].text) = "__neg__"; | ||
| 21991 | + if (strcmp((yyvsp[-14].text), "__add__") == 0) | ||
| 21992 | + (yyvsp[-14].text) = "__pos__"; | ||
| 21993 | + else if (strcmp((yyvsp[-14].text), "__sub__") == 0) | ||
| 21994 | + (yyvsp[-14].text) = "__neg__"; | ||
| 21995 | } | ||
| 21996 | |||
| 21997 | - (yyvsp[(5) - (17)].signature).result = (yyvsp[(1) - (17)].memArg); | ||
| 21998 | + (yyvsp[-12].signature).result = (yyvsp[-16].memArg); | ||
| 21999 | |||
| 22000 | newFunction(currentSpec, currentModule, cd, ns_scope, NULL, | ||
| 22001 | sectionFlags, currentIsStatic, currentIsSignal, | ||
| 22002 | - currentIsSlot, currentOverIsVirt, (yyvsp[(3) - (17)].text), &(yyvsp[(5) - (17)].signature), (yyvsp[(7) - (17)].number), (yyvsp[(10) - (17)].number), | ||
| 22003 | - &(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)); | ||
| 22004 | + currentIsSlot, currentOverIsVirt, (yyvsp[-14].text), &(yyvsp[-12].signature), (yyvsp[-10].number), (yyvsp[-7].number), | ||
| 22005 | + &(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)); | ||
| 22006 | } | ||
| 22007 | |||
| 22008 | currentIsStatic = FALSE; | ||
| 22009 | @@ -7002,22 +6991,23 @@ | ||
| 22010 | currentIsSlot = FALSE; | ||
| 22011 | currentOverIsVirt = FALSE; | ||
| 22012 | } | ||
| 22013 | +#line 6995 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22014 | break; | ||
| 22015 | |||
| 22016 | case 460: | ||
| 22017 | -#line 3788 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22018 | +#line 3788 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22019 | { | ||
| 22020 | if (notSkipping()) | ||
| 22021 | { | ||
| 22022 | char *sname; | ||
| 22023 | classDef *scope = currentScope(); | ||
| 22024 | |||
| 22025 | - if (scope == NULL || (yyvsp[(4) - (16)].signature).nrArgs != 0) | ||
| 22026 | + if (scope == NULL || (yyvsp[-12].signature).nrArgs != 0) | ||
| 22027 | yyerror("Operator casts must be specified in a class and have no arguments"); | ||
| 22028 | |||
| 22029 | - applyTypeFlags(currentModule, &(yyvsp[(2) - (16)].memArg), &(yyvsp[(10) - (16)].optflags)); | ||
| 22030 | + applyTypeFlags(currentModule, &(yyvsp[-14].memArg), &(yyvsp[-6].optflags)); | ||
| 22031 | |||
| 22032 | - switch ((yyvsp[(2) - (16)].memArg).atype) | ||
| 22033 | + switch ((yyvsp[-14].memArg).atype) | ||
| 22034 | { | ||
| 22035 | case defined_type: | ||
| 22036 | sname = NULL; | ||
| 22037 | @@ -7056,12 +7046,12 @@ | ||
| 22038 | |||
| 22039 | if (sname != NULL) | ||
| 22040 | { | ||
| 22041 | - (yyvsp[(4) - (16)].signature).result = (yyvsp[(2) - (16)].memArg); | ||
| 22042 | + (yyvsp[-12].signature).result = (yyvsp[-14].memArg); | ||
| 22043 | |||
| 22044 | newFunction(currentSpec, currentModule, scope, NULL, NULL, | ||
| 22045 | sectionFlags, currentIsStatic, currentIsSignal, | ||
| 22046 | - currentIsSlot, currentOverIsVirt, sname, &(yyvsp[(4) - (16)].signature), (yyvsp[(6) - (16)].number), | ||
| 22047 | - (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)); | ||
| 22048 | + currentIsSlot, currentOverIsVirt, sname, &(yyvsp[-12].signature), (yyvsp[-10].number), | ||
| 22049 | + (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)); | ||
| 22050 | } | ||
| 22051 | else | ||
| 22052 | { | ||
| 22053 | @@ -7069,11 +7059,11 @@ | ||
| 22054 | |||
| 22055 | /* Check it doesn't already exist. */ | ||
| 22056 | for (al = scope->casts; al != NULL; al = al->next) | ||
| 22057 | - if (compareScopedNames((yyvsp[(2) - (16)].memArg).u.snd, al->arg.u.snd) == 0) | ||
| 22058 | + if (compareScopedNames((yyvsp[-14].memArg).u.snd, al->arg.u.snd) == 0) | ||
| 22059 | yyerror("This operator cast has already been specified in this class"); | ||
| 22060 | |||
| 22061 | al = sipMalloc(sizeof (argList)); | ||
| 22062 | - al->arg = (yyvsp[(2) - (16)].memArg); | ||
| 22063 | + al->arg = (yyvsp[-14].memArg); | ||
| 22064 | al->next = scope->casts; | ||
| 22065 | |||
| 22066 | scope->casts = al; | ||
| 22067 | @@ -7085,260 +7075,303 @@ | ||
| 22068 | currentIsSlot = FALSE; | ||
| 22069 | currentOverIsVirt = FALSE; | ||
| 22070 | } | ||
| 22071 | +#line 7079 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22072 | break; | ||
| 22073 | |||
| 22074 | case 461: | ||
| 22075 | -#line 3869 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22076 | +#line 3869 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22077 | {(yyval.text) = "__add__";} | ||
| 22078 | +#line 7085 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22079 | break; | ||
| 22080 | |||
| 22081 | case 462: | ||
| 22082 | -#line 3870 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22083 | +#line 3870 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22084 | {(yyval.text) = "__sub__";} | ||
| 22085 | +#line 7091 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22086 | break; | ||
| 22087 | |||
| 22088 | case 463: | ||
| 22089 | -#line 3871 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22090 | +#line 3871 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22091 | {(yyval.text) = "__mul__";} | ||
| 22092 | +#line 7097 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22093 | break; | ||
| 22094 | |||
| 22095 | case 464: | ||
| 22096 | -#line 3872 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22097 | +#line 3872 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22098 | {(yyval.text) = "__div__";} | ||
| 22099 | +#line 7103 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22100 | break; | ||
| 22101 | |||
| 22102 | case 465: | ||
| 22103 | -#line 3873 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22104 | +#line 3873 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22105 | {(yyval.text) = "__mod__";} | ||
| 22106 | +#line 7109 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22107 | break; | ||
| 22108 | |||
| 22109 | case 466: | ||
| 22110 | -#line 3874 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22111 | +#line 3874 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22112 | {(yyval.text) = "__and__";} | ||
| 22113 | +#line 7115 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22114 | break; | ||
| 22115 | |||
| 22116 | case 467: | ||
| 22117 | -#line 3875 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22118 | +#line 3875 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22119 | {(yyval.text) = "__or__";} | ||
| 22120 | +#line 7121 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22121 | break; | ||
| 22122 | |||
| 22123 | case 468: | ||
| 22124 | -#line 3876 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22125 | +#line 3876 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22126 | {(yyval.text) = "__xor__";} | ||
| 22127 | +#line 7127 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22128 | break; | ||
| 22129 | |||
| 22130 | case 469: | ||
| 22131 | -#line 3877 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22132 | +#line 3877 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22133 | {(yyval.text) = "__lshift__";} | ||
| 22134 | +#line 7133 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22135 | break; | ||
| 22136 | |||
| 22137 | case 470: | ||
| 22138 | -#line 3878 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22139 | +#line 3878 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22140 | {(yyval.text) = "__rshift__";} | ||
| 22141 | +#line 7139 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22142 | break; | ||
| 22143 | |||
| 22144 | case 471: | ||
| 22145 | -#line 3879 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22146 | +#line 3879 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22147 | {(yyval.text) = "__iadd__";} | ||
| 22148 | +#line 7145 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22149 | break; | ||
| 22150 | |||
| 22151 | case 472: | ||
| 22152 | -#line 3880 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22153 | +#line 3880 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22154 | {(yyval.text) = "__isub__";} | ||
| 22155 | +#line 7151 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22156 | break; | ||
| 22157 | |||
| 22158 | case 473: | ||
| 22159 | -#line 3881 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22160 | +#line 3881 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22161 | {(yyval.text) = "__imul__";} | ||
| 22162 | +#line 7157 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22163 | break; | ||
| 22164 | |||
| 22165 | case 474: | ||
| 22166 | -#line 3882 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22167 | +#line 3882 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22168 | {(yyval.text) = "__idiv__";} | ||
| 22169 | +#line 7163 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22170 | break; | ||
| 22171 | |||
| 22172 | case 475: | ||
| 22173 | -#line 3883 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22174 | +#line 3883 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22175 | {(yyval.text) = "__imod__";} | ||
| 22176 | +#line 7169 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22177 | break; | ||
| 22178 | |||
| 22179 | case 476: | ||
| 22180 | -#line 3884 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22181 | +#line 3884 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22182 | {(yyval.text) = "__iand__";} | ||
| 22183 | +#line 7175 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22184 | break; | ||
| 22185 | |||
| 22186 | case 477: | ||
| 22187 | -#line 3885 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22188 | +#line 3885 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22189 | {(yyval.text) = "__ior__";} | ||
| 22190 | +#line 7181 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22191 | break; | ||
| 22192 | |||
| 22193 | case 478: | ||
| 22194 | -#line 3886 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22195 | +#line 3886 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22196 | {(yyval.text) = "__ixor__";} | ||
| 22197 | +#line 7187 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22198 | break; | ||
| 22199 | |||
| 22200 | case 479: | ||
| 22201 | -#line 3887 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22202 | +#line 3887 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22203 | {(yyval.text) = "__ilshift__";} | ||
| 22204 | +#line 7193 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22205 | break; | ||
| 22206 | |||
| 22207 | case 480: | ||
| 22208 | -#line 3888 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22209 | +#line 3888 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22210 | {(yyval.text) = "__irshift__";} | ||
| 22211 | +#line 7199 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22212 | break; | ||
| 22213 | |||
| 22214 | case 481: | ||
| 22215 | -#line 3889 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22216 | +#line 3889 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22217 | {(yyval.text) = "__invert__";} | ||
| 22218 | +#line 7205 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22219 | break; | ||
| 22220 | |||
| 22221 | case 482: | ||
| 22222 | -#line 3890 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22223 | +#line 3890 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22224 | {(yyval.text) = "__call__";} | ||
| 22225 | +#line 7211 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22226 | break; | ||
| 22227 | |||
| 22228 | case 483: | ||
| 22229 | -#line 3891 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22230 | +#line 3891 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22231 | {(yyval.text) = "__getitem__";} | ||
| 22232 | +#line 7217 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22233 | break; | ||
| 22234 | |||
| 22235 | case 484: | ||
| 22236 | -#line 3892 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22237 | +#line 3892 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22238 | {(yyval.text) = "__lt__";} | ||
| 22239 | +#line 7223 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22240 | break; | ||
| 22241 | |||
| 22242 | case 485: | ||
| 22243 | -#line 3893 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22244 | +#line 3893 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22245 | {(yyval.text) = "__le__";} | ||
| 22246 | +#line 7229 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22247 | break; | ||
| 22248 | |||
| 22249 | case 486: | ||
| 22250 | -#line 3894 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22251 | +#line 3894 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22252 | {(yyval.text) = "__eq__";} | ||
| 22253 | +#line 7235 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22254 | break; | ||
| 22255 | |||
| 22256 | case 487: | ||
| 22257 | -#line 3895 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22258 | +#line 3895 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22259 | {(yyval.text) = "__ne__";} | ||
| 22260 | +#line 7241 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22261 | break; | ||
| 22262 | |||
| 22263 | case 488: | ||
| 22264 | -#line 3896 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22265 | +#line 3896 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22266 | {(yyval.text) = "__gt__";} | ||
| 22267 | +#line 7247 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22268 | break; | ||
| 22269 | |||
| 22270 | case 489: | ||
| 22271 | -#line 3897 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22272 | +#line 3897 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22273 | {(yyval.text) = "__ge__";} | ||
| 22274 | +#line 7253 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22275 | break; | ||
| 22276 | |||
| 22277 | case 490: | ||
| 22278 | -#line 3900 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22279 | +#line 3900 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22280 | { | ||
| 22281 | (yyval.number) = FALSE; | ||
| 22282 | } | ||
| 22283 | +#line 7261 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22284 | break; | ||
| 22285 | |||
| 22286 | case 491: | ||
| 22287 | -#line 3903 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22288 | +#line 3903 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22289 | { | ||
| 22290 | (yyval.number) = TRUE; | ||
| 22291 | } | ||
| 22292 | +#line 7269 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22293 | break; | ||
| 22294 | |||
| 22295 | case 492: | ||
| 22296 | -#line 3908 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22297 | +#line 3908 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22298 | { | ||
| 22299 | (yyval.number) = FALSE; | ||
| 22300 | } | ||
| 22301 | +#line 7277 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22302 | break; | ||
| 22303 | |||
| 22304 | case 493: | ||
| 22305 | -#line 3911 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22306 | +#line 3911 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22307 | { | ||
| 22308 | (yyval.number) = TRUE; | ||
| 22309 | } | ||
| 22310 | +#line 7285 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22311 | break; | ||
| 22312 | |||
| 22313 | case 494: | ||
| 22314 | -#line 3916 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22315 | +#line 3916 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22316 | { | ||
| 22317 | (yyval.number) = 0; | ||
| 22318 | } | ||
| 22319 | +#line 7293 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22320 | break; | ||
| 22321 | |||
| 22322 | case 495: | ||
| 22323 | -#line 3919 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22324 | +#line 3919 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22325 | { | ||
| 22326 | - if ((yyvsp[(2) - (2)].number) != 0) | ||
| 22327 | + if ((yyvsp[0].number) != 0) | ||
| 22328 | yyerror("Abstract virtual function '= 0' expected"); | ||
| 22329 | |||
| 22330 | (yyval.number) = TRUE; | ||
| 22331 | } | ||
| 22332 | +#line 7304 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22333 | break; | ||
| 22334 | |||
| 22335 | case 496: | ||
| 22336 | -#line 3927 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22337 | +#line 3927 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22338 | { | ||
| 22339 | (yyval.optflags).nrFlags = 0; | ||
| 22340 | } | ||
| 22341 | +#line 7312 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22342 | break; | ||
| 22343 | |||
| 22344 | case 497: | ||
| 22345 | -#line 3930 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22346 | +#line 3930 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22347 | { | ||
| 22348 | - (yyval.optflags) = (yyvsp[(2) - (3)].optflags); | ||
| 22349 | + (yyval.optflags) = (yyvsp[-1].optflags); | ||
| 22350 | } | ||
| 22351 | +#line 7320 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22352 | break; | ||
| 22353 | |||
| 22354 | case 498: | ||
| 22355 | -#line 3936 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22356 | +#line 3936 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22357 | { | ||
| 22358 | - (yyval.optflags).flags[0] = (yyvsp[(1) - (1)].flag); | ||
| 22359 | + (yyval.optflags).flags[0] = (yyvsp[0].flag); | ||
| 22360 | (yyval.optflags).nrFlags = 1; | ||
| 22361 | } | ||
| 22362 | +#line 7329 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22363 | break; | ||
| 22364 | |||
| 22365 | case 499: | ||
| 22366 | -#line 3940 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22367 | +#line 3940 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22368 | { | ||
| 22369 | /* Check there is room. */ | ||
| 22370 | |||
| 22371 | - if ((yyvsp[(1) - (3)].optflags).nrFlags == MAX_NR_FLAGS) | ||
| 22372 | + if ((yyvsp[-2].optflags).nrFlags == MAX_NR_FLAGS) | ||
| 22373 | yyerror("Too many optional flags"); | ||
| 22374 | |||
| 22375 | - (yyval.optflags) = (yyvsp[(1) - (3)].optflags); | ||
| 22376 | + (yyval.optflags) = (yyvsp[-2].optflags); | ||
| 22377 | |||
| 22378 | - (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[(3) - (3)].flag); | ||
| 22379 | + (yyval.optflags).flags[(yyval.optflags).nrFlags++] = (yyvsp[0].flag); | ||
| 22380 | } | ||
| 22381 | +#line 7344 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22382 | break; | ||
| 22383 | |||
| 22384 | case 500: | ||
| 22385 | -#line 3952 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22386 | +#line 3952 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22387 | { | ||
| 22388 | (yyval.flag).ftype = bool_flag; | ||
| 22389 | - (yyval.flag).fname = (yyvsp[(1) - (1)].text); | ||
| 22390 | + (yyval.flag).fname = (yyvsp[0].text); | ||
| 22391 | } | ||
| 22392 | +#line 7353 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22393 | break; | ||
| 22394 | |||
| 22395 | case 501: | ||
| 22396 | -#line 3956 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22397 | +#line 3956 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22398 | { | ||
| 22399 | - (yyval.flag) = (yyvsp[(3) - (3)].flag); | ||
| 22400 | - (yyval.flag).fname = (yyvsp[(1) - (3)].text); | ||
| 22401 | + (yyval.flag) = (yyvsp[0].flag); | ||
| 22402 | + (yyval.flag).fname = (yyvsp[-2].text); | ||
| 22403 | } | ||
| 22404 | +#line 7362 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22405 | break; | ||
| 22406 | |||
| 22407 | case 502: | ||
| 22408 | -#line 3962 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22409 | +#line 3962 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22410 | { | ||
| 22411 | - (yyval.flag).ftype = (strchr((yyvsp[(1) - (1)].text), '.') != NULL) ? dotted_name_flag : name_flag; | ||
| 22412 | - (yyval.flag).fvalue.sval = (yyvsp[(1) - (1)].text); | ||
| 22413 | + (yyval.flag).ftype = (strchr((yyvsp[0].text), '.') != NULL) ? dotted_name_flag : name_flag; | ||
| 22414 | + (yyval.flag).fvalue.sval = (yyvsp[0].text); | ||
| 22415 | } | ||
| 22416 | +#line 7371 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22417 | break; | ||
| 22418 | |||
| 22419 | case 503: | ||
| 22420 | -#line 3966 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22421 | +#line 3966 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22422 | { | ||
| 22423 | apiVersionRangeDef *avd; | ||
| 22424 | int from, to; | ||
| 22425 | @@ -7346,106 +7379,117 @@ | ||
| 22426 | (yyval.flag).ftype = api_range_flag; | ||
| 22427 | |||
| 22428 | /* Check that the API is known. */ | ||
| 22429 | - if ((avd = findAPI(currentSpec, (yyvsp[(1) - (5)].text))) == NULL) | ||
| 22430 | + if ((avd = findAPI(currentSpec, (yyvsp[-4].text))) == NULL) | ||
| 22431 | yyerror("unknown API name in API annotation"); | ||
| 22432 | |||
| 22433 | if (inMainModule()) | ||
| 22434 | setIsUsedName(avd->api_name); | ||
| 22435 | |||
| 22436 | /* Unbounded values are represented by 0. */ | ||
| 22437 | - if ((from = (yyvsp[(3) - (5)].number)) < 0) | ||
| 22438 | + if ((from = (yyvsp[-2].number)) < 0) | ||
| 22439 | from = 0; | ||
| 22440 | |||
| 22441 | - if ((to = (yyvsp[(5) - (5)].number)) < 0) | ||
| 22442 | + if ((to = (yyvsp[0].number)) < 0) | ||
| 22443 | to = 0; | ||
| 22444 | |||
| 22445 | (yyval.flag).fvalue.aval = convertAPIRange(currentModule, avd->api_name, | ||
| 22446 | from, to); | ||
| 22447 | } | ||
| 22448 | +#line 7399 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22449 | break; | ||
| 22450 | |||
| 22451 | case 504: | ||
| 22452 | -#line 3989 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22453 | +#line 3989 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22454 | { | ||
| 22455 | (yyval.flag).ftype = string_flag; | ||
| 22456 | - (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[(1) - (1)].text)); | ||
| 22457 | + (yyval.flag).fvalue.sval = convertFeaturedString((yyvsp[0].text)); | ||
| 22458 | } | ||
| 22459 | +#line 7408 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22460 | break; | ||
| 22461 | |||
| 22462 | case 505: | ||
| 22463 | -#line 3993 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22464 | +#line 3993 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22465 | { | ||
| 22466 | (yyval.flag).ftype = integer_flag; | ||
| 22467 | - (yyval.flag).fvalue.ival = (yyvsp[(1) - (1)].number); | ||
| 22468 | + (yyval.flag).fvalue.ival = (yyvsp[0].number); | ||
| 22469 | } | ||
| 22470 | +#line 7417 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22471 | break; | ||
| 22472 | |||
| 22473 | case 506: | ||
| 22474 | -#line 3999 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22475 | +#line 3999 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22476 | { | ||
| 22477 | (yyval.codeb) = NULL; | ||
| 22478 | } | ||
| 22479 | +#line 7425 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22480 | break; | ||
| 22481 | |||
| 22482 | case 507: | ||
| 22483 | -#line 4002 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22484 | +#line 4002 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22485 | { | ||
| 22486 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 22487 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 22488 | } | ||
| 22489 | +#line 7433 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22490 | break; | ||
| 22491 | |||
| 22492 | case 508: | ||
| 22493 | -#line 4007 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22494 | +#line 4007 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22495 | { | ||
| 22496 | (yyval.codeb) = NULL; | ||
| 22497 | } | ||
| 22498 | +#line 7441 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22499 | break; | ||
| 22500 | |||
| 22501 | case 509: | ||
| 22502 | -#line 4010 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22503 | +#line 4010 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22504 | { | ||
| 22505 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 22506 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 22507 | } | ||
| 22508 | +#line 7449 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22509 | break; | ||
| 22510 | |||
| 22511 | case 510: | ||
| 22512 | -#line 4015 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22513 | +#line 4015 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22514 | { | ||
| 22515 | (yyval.codeb) = NULL; | ||
| 22516 | } | ||
| 22517 | +#line 7457 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22518 | break; | ||
| 22519 | |||
| 22520 | case 511: | ||
| 22521 | -#line 4018 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22522 | +#line 4018 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22523 | { | ||
| 22524 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 22525 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 22526 | } | ||
| 22527 | +#line 7465 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22528 | break; | ||
| 22529 | |||
| 22530 | case 512: | ||
| 22531 | -#line 4023 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22532 | +#line 4023 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22533 | { | ||
| 22534 | (yyval.codeb) = NULL; | ||
| 22535 | } | ||
| 22536 | +#line 7473 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22537 | break; | ||
| 22538 | |||
| 22539 | case 513: | ||
| 22540 | -#line 4026 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22541 | +#line 4026 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22542 | { | ||
| 22543 | - (yyval.codeb) = (yyvsp[(2) - (2)].codeb); | ||
| 22544 | + (yyval.codeb) = (yyvsp[0].codeb); | ||
| 22545 | } | ||
| 22546 | +#line 7481 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22547 | break; | ||
| 22548 | |||
| 22549 | case 514: | ||
| 22550 | -#line 4031 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22551 | +#line 4031 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22552 | { | ||
| 22553 | int a, nrrxcon, nrrxdis, nrslotcon, nrslotdis, nrarray, nrarraysize; | ||
| 22554 | |||
| 22555 | nrrxcon = nrrxdis = nrslotcon = nrslotdis = nrarray = nrarraysize = 0; | ||
| 22556 | |||
| 22557 | - for (a = 0; a < (yyvsp[(1) - (1)].signature).nrArgs; ++a) | ||
| 22558 | + for (a = 0; a < (yyvsp[0].signature).nrArgs; ++a) | ||
| 22559 | { | ||
| 22560 | - argDef *ad = &(yyvsp[(1) - (1)].signature).args[a]; | ||
| 22561 | + argDef *ad = &(yyvsp[0].signature).args[a]; | ||
| 22562 | |||
| 22563 | switch (ad -> atype) | ||
| 22564 | { | ||
| 22565 | @@ -7486,104 +7530,111 @@ | ||
| 22566 | if (nrarray != nrarraysize || nrarray > 1) | ||
| 22567 | yyerror("/Array/ and /ArraySize/ must both be given and at most once"); | ||
| 22568 | |||
| 22569 | - (yyval.signature) = (yyvsp[(1) - (1)].signature); | ||
| 22570 | + (yyval.signature) = (yyvsp[0].signature); | ||
| 22571 | } | ||
| 22572 | +#line 7536 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22573 | break; | ||
| 22574 | |||
| 22575 | case 515: | ||
| 22576 | -#line 4083 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22577 | +#line 4083 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22578 | { | ||
| 22579 | /* No arguments. */ | ||
| 22580 | |||
| 22581 | (yyval.signature).nrArgs = 0; | ||
| 22582 | } | ||
| 22583 | +#line 7546 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22584 | break; | ||
| 22585 | |||
| 22586 | case 516: | ||
| 22587 | -#line 4088 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22588 | +#line 4088 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22589 | { | ||
| 22590 | /* The single or first argument. */ | ||
| 22591 | |||
| 22592 | - (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg); | ||
| 22593 | + (yyval.signature).args[0] = (yyvsp[0].memArg); | ||
| 22594 | (yyval.signature).nrArgs = 1; | ||
| 22595 | } | ||
| 22596 | +#line 7557 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22597 | break; | ||
| 22598 | |||
| 22599 | case 517: | ||
| 22600 | -#line 4094 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22601 | +#line 4094 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22602 | { | ||
| 22603 | /* Check that it wasn't ...(,arg...). */ | ||
| 22604 | - if ((yyvsp[(1) - (3)].signature).nrArgs == 0) | ||
| 22605 | + if ((yyvsp[-2].signature).nrArgs == 0) | ||
| 22606 | yyerror("First argument of the list is missing"); | ||
| 22607 | |||
| 22608 | /* | ||
| 22609 | * If this argument has no default value, then the | ||
| 22610 | * previous one mustn't either. | ||
| 22611 | */ | ||
| 22612 | - if ((yyvsp[(3) - (3)].memArg).defval == NULL && (yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].defval != NULL) | ||
| 22613 | + if ((yyvsp[0].memArg).defval == NULL && (yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].defval != NULL) | ||
| 22614 | yyerror("Compulsory argument given after optional argument"); | ||
| 22615 | |||
| 22616 | /* Check there is room. */ | ||
| 22617 | - if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) | ||
| 22618 | + if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) | ||
| 22619 | yyerror("Internal error - increase the value of MAX_NR_ARGS"); | ||
| 22620 | |||
| 22621 | - (yyval.signature) = (yyvsp[(1) - (3)].signature); | ||
| 22622 | + (yyval.signature) = (yyvsp[-2].signature); | ||
| 22623 | |||
| 22624 | - (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg); | ||
| 22625 | + (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg); | ||
| 22626 | (yyval.signature).nrArgs++; | ||
| 22627 | } | ||
| 22628 | +#line 7583 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22629 | break; | ||
| 22630 | |||
| 22631 | case 518: | ||
| 22632 | -#line 4117 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22633 | +#line 4117 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22634 | { | ||
| 22635 | deprecated("SIP_SIGNAL is deprecated\n"); | ||
| 22636 | - checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SIGNAL has no annotations"); | ||
| 22637 | + checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SIGNAL has no annotations"); | ||
| 22638 | |||
| 22639 | (yyval.memArg).atype = signal_type; | ||
| 22640 | (yyval.memArg).argflags = ARG_IS_CONST; | ||
| 22641 | (yyval.memArg).nrderefs = 0; | ||
| 22642 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); | ||
| 22643 | - (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); | ||
| 22644 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); | ||
| 22645 | + (yyval.memArg).defval = (yyvsp[0].valp); | ||
| 22646 | |||
| 22647 | currentSpec -> sigslots = TRUE; | ||
| 22648 | } | ||
| 22649 | +#line 7600 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22650 | break; | ||
| 22651 | |||
| 22652 | case 519: | ||
| 22653 | -#line 4129 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22654 | +#line 4129 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22655 | { | ||
| 22656 | deprecated("SIP_SLOT is deprecated\n"); | ||
| 22657 | - checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_SLOT has no annotations"); | ||
| 22658 | + checkNoAnnos(&(yyvsp[-1].optflags), "SIP_SLOT has no annotations"); | ||
| 22659 | |||
| 22660 | (yyval.memArg).atype = slot_type; | ||
| 22661 | (yyval.memArg).argflags = ARG_IS_CONST; | ||
| 22662 | (yyval.memArg).nrderefs = 0; | ||
| 22663 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); | ||
| 22664 | - (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); | ||
| 22665 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); | ||
| 22666 | + (yyval.memArg).defval = (yyvsp[0].valp); | ||
| 22667 | |||
| 22668 | currentSpec -> sigslots = TRUE; | ||
| 22669 | } | ||
| 22670 | +#line 7617 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22671 | break; | ||
| 22672 | |||
| 22673 | case 520: | ||
| 22674 | -#line 4141 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22675 | +#line 4141 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22676 | { | ||
| 22677 | deprecated("SIP_ANYSLOT is deprecated\n"); | ||
| 22678 | - checkNoAnnos(&(yyvsp[(3) - (4)].optflags), "SIP_ANYSLOT has no annotations"); | ||
| 22679 | + checkNoAnnos(&(yyvsp[-1].optflags), "SIP_ANYSLOT has no annotations"); | ||
| 22680 | |||
| 22681 | (yyval.memArg).atype = anyslot_type; | ||
| 22682 | (yyval.memArg).argflags = ARG_IS_CONST; | ||
| 22683 | (yyval.memArg).nrderefs = 0; | ||
| 22684 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (4)].text)); | ||
| 22685 | - (yyval.memArg).defval = (yyvsp[(4) - (4)].valp); | ||
| 22686 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-2].text)); | ||
| 22687 | + (yyval.memArg).defval = (yyvsp[0].valp); | ||
| 22688 | |||
| 22689 | currentSpec -> sigslots = TRUE; | ||
| 22690 | } | ||
| 22691 | +#line 7634 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22692 | break; | ||
| 22693 | |||
| 22694 | case 521: | ||
| 22695 | -#line 4153 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22696 | +#line 4153 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22697 | { | ||
| 22698 | const char *annos[] = { | ||
| 22699 | "SingleShot", | ||
| 22700 | @@ -7591,120 +7642,130 @@ | ||
| 22701 | }; | ||
| 22702 | |||
| 22703 | deprecated("SIP_RXOBJ_CON is deprecated\n"); | ||
| 22704 | - checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); | ||
| 22705 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 22706 | |||
| 22707 | (yyval.memArg).atype = rxcon_type; | ||
| 22708 | (yyval.memArg).argflags = 0; | ||
| 22709 | (yyval.memArg).nrderefs = 0; | ||
| 22710 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); | ||
| 22711 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 22712 | |||
| 22713 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "SingleShot", bool_flag) != NULL) | ||
| 22714 | + if (getOptFlag(&(yyvsp[0].optflags), "SingleShot", bool_flag) != NULL) | ||
| 22715 | (yyval.memArg).argflags |= ARG_SINGLE_SHOT; | ||
| 22716 | |||
| 22717 | currentSpec -> sigslots = TRUE; | ||
| 22718 | } | ||
| 22719 | +#line 7658 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22720 | break; | ||
| 22721 | |||
| 22722 | case 522: | ||
| 22723 | -#line 4172 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22724 | +#line 4172 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22725 | { | ||
| 22726 | deprecated("SIP_RXOBJ_DIS is deprecated\n"); | ||
| 22727 | - checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_RXOBJ_DIS has no annotations"); | ||
| 22728 | + checkNoAnnos(&(yyvsp[0].optflags), "SIP_RXOBJ_DIS has no annotations"); | ||
| 22729 | |||
| 22730 | (yyval.memArg).atype = rxdis_type; | ||
| 22731 | (yyval.memArg).argflags = 0; | ||
| 22732 | (yyval.memArg).nrderefs = 0; | ||
| 22733 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); | ||
| 22734 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 22735 | |||
| 22736 | currentSpec -> sigslots = TRUE; | ||
| 22737 | } | ||
| 22738 | +#line 7674 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22739 | break; | ||
| 22740 | |||
| 22741 | case 523: | ||
| 22742 | -#line 4183 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22743 | +#line 4183 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22744 | { | ||
| 22745 | deprecated("SIP_SLOT_CON is deprecated\n"); | ||
| 22746 | - checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_CON has no annotations"); | ||
| 22747 | + checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_CON has no annotations"); | ||
| 22748 | |||
| 22749 | (yyval.memArg).atype = slotcon_type; | ||
| 22750 | (yyval.memArg).argflags = ARG_IS_CONST; | ||
| 22751 | (yyval.memArg).nrderefs = 0; | ||
| 22752 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text)); | ||
| 22753 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 22754 | |||
| 22755 | - memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef)); | ||
| 22756 | - (yyvsp[(3) - (6)].signature).result.atype = void_type; | ||
| 22757 | + memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef)); | ||
| 22758 | + (yyvsp[-3].signature).result.atype = void_type; | ||
| 22759 | |||
| 22760 | (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef)); | ||
| 22761 | - *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature); | ||
| 22762 | + *(yyval.memArg).u.sa = (yyvsp[-3].signature); | ||
| 22763 | |||
| 22764 | currentSpec -> sigslots = TRUE; | ||
| 22765 | } | ||
| 22766 | +#line 7696 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22767 | break; | ||
| 22768 | |||
| 22769 | case 524: | ||
| 22770 | -#line 4200 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22771 | +#line 4200 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22772 | { | ||
| 22773 | deprecated("SIP_SLOT_DIS is deprecated\n"); | ||
| 22774 | - checkNoAnnos(&(yyvsp[(6) - (6)].optflags), "SIP_SLOT_DIS has no annotations"); | ||
| 22775 | + checkNoAnnos(&(yyvsp[0].optflags), "SIP_SLOT_DIS has no annotations"); | ||
| 22776 | |||
| 22777 | (yyval.memArg).atype = slotdis_type; | ||
| 22778 | (yyval.memArg).argflags = ARG_IS_CONST; | ||
| 22779 | (yyval.memArg).nrderefs = 0; | ||
| 22780 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(5) - (6)].text)); | ||
| 22781 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 22782 | |||
| 22783 | - memset(&(yyvsp[(3) - (6)].signature).result, 0, sizeof (argDef)); | ||
| 22784 | - (yyvsp[(3) - (6)].signature).result.atype = void_type; | ||
| 22785 | + memset(&(yyvsp[-3].signature).result, 0, sizeof (argDef)); | ||
| 22786 | + (yyvsp[-3].signature).result.atype = void_type; | ||
| 22787 | |||
| 22788 | (yyval.memArg).u.sa = sipMalloc(sizeof (signatureDef)); | ||
| 22789 | - *(yyval.memArg).u.sa = (yyvsp[(3) - (6)].signature); | ||
| 22790 | + *(yyval.memArg).u.sa = (yyvsp[-3].signature); | ||
| 22791 | |||
| 22792 | currentSpec -> sigslots = TRUE; | ||
| 22793 | } | ||
| 22794 | +#line 7718 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22795 | break; | ||
| 22796 | |||
| 22797 | case 525: | ||
| 22798 | -#line 4217 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22799 | +#line 4217 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22800 | { | ||
| 22801 | deprecated("SIP_QOBJECT is deprecated\n"); | ||
| 22802 | - checkNoAnnos(&(yyvsp[(3) - (3)].optflags), "SIP_QOBJECT has no annotations"); | ||
| 22803 | + checkNoAnnos(&(yyvsp[0].optflags), "SIP_QOBJECT has no annotations"); | ||
| 22804 | |||
| 22805 | (yyval.memArg).atype = qobject_type; | ||
| 22806 | (yyval.memArg).argflags = 0; | ||
| 22807 | (yyval.memArg).nrderefs = 0; | ||
| 22808 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); | ||
| 22809 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 22810 | } | ||
| 22811 | +#line 7732 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22812 | break; | ||
| 22813 | |||
| 22814 | case 526: | ||
| 22815 | -#line 4226 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22816 | +#line 4226 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22817 | { | ||
| 22818 | - (yyval.memArg) = (yyvsp[(1) - (2)].memArg); | ||
| 22819 | - (yyval.memArg).defval = (yyvsp[(2) - (2)].valp); | ||
| 22820 | + (yyval.memArg) = (yyvsp[-1].memArg); | ||
| 22821 | + (yyval.memArg).defval = (yyvsp[0].valp); | ||
| 22822 | } | ||
| 22823 | +#line 7741 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22824 | break; | ||
| 22825 | |||
| 22826 | case 527: | ||
| 22827 | -#line 4233 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22828 | +#line 4233 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22829 | {currentIsSignal = TRUE;} | ||
| 22830 | +#line 7747 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22831 | break; | ||
| 22832 | |||
| 22833 | case 529: | ||
| 22834 | -#line 4234 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22835 | +#line 4234 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22836 | {currentIsSlot = TRUE;} | ||
| 22837 | +#line 7753 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22838 | break; | ||
| 22839 | |||
| 22840 | case 532: | ||
| 22841 | -#line 4239 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22842 | +#line 4239 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22843 | {currentIsStatic = TRUE;} | ||
| 22844 | +#line 7759 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22845 | break; | ||
| 22846 | |||
| 22847 | case 537: | ||
| 22848 | -#line 4249 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22849 | +#line 4249 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22850 | {currentOverIsVirt = TRUE;} | ||
| 22851 | +#line 7765 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22852 | break; | ||
| 22853 | |||
| 22854 | case 540: | ||
| 22855 | -#line 4253 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22856 | +#line 4253 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22857 | { | ||
| 22858 | if (notSkipping()) | ||
| 22859 | { | ||
| 22860 | @@ -7719,99 +7780,105 @@ | ||
| 22861 | NULL | ||
| 22862 | }; | ||
| 22863 | |||
| 22864 | - checkAnnos(&(yyvsp[(3) - (8)].optflags), annos); | ||
| 22865 | + checkAnnos(&(yyvsp[-5].optflags), annos); | ||
| 22866 | |||
| 22867 | - if ((yyvsp[(6) - (8)].codeb) != NULL) | ||
| 22868 | + if ((yyvsp[-2].codeb) != NULL) | ||
| 22869 | { | ||
| 22870 | - if ((yyvsp[(4) - (8)].variable).access_code != NULL) | ||
| 22871 | + if ((yyvsp[-4].variable).access_code != NULL) | ||
| 22872 | yyerror("%AccessCode already defined"); | ||
| 22873 | |||
| 22874 | - (yyvsp[(4) - (8)].variable).access_code = (yyvsp[(6) - (8)].codeb); | ||
| 22875 | + (yyvsp[-4].variable).access_code = (yyvsp[-2].codeb); | ||
| 22876 | |||
| 22877 | deprecated("%AccessCode should be used as a sub-directive"); | ||
| 22878 | } | ||
| 22879 | |||
| 22880 | - if ((yyvsp[(7) - (8)].codeb) != NULL) | ||
| 22881 | + if ((yyvsp[-1].codeb) != NULL) | ||
| 22882 | { | ||
| 22883 | - if ((yyvsp[(4) - (8)].variable).get_code != NULL) | ||
| 22884 | + if ((yyvsp[-4].variable).get_code != NULL) | ||
| 22885 | yyerror("%GetCode already defined"); | ||
| 22886 | |||
| 22887 | - (yyvsp[(4) - (8)].variable).get_code = (yyvsp[(7) - (8)].codeb); | ||
| 22888 | + (yyvsp[-4].variable).get_code = (yyvsp[-1].codeb); | ||
| 22889 | |||
| 22890 | deprecated("%GetCode should be used as a sub-directive"); | ||
| 22891 | } | ||
| 22892 | |||
| 22893 | - if ((yyvsp[(8) - (8)].codeb) != NULL) | ||
| 22894 | + if ((yyvsp[0].codeb) != NULL) | ||
| 22895 | { | ||
| 22896 | - if ((yyvsp[(4) - (8)].variable).set_code != NULL) | ||
| 22897 | + if ((yyvsp[-4].variable).set_code != NULL) | ||
| 22898 | yyerror("%SetCode already defined"); | ||
| 22899 | |||
| 22900 | - (yyvsp[(4) - (8)].variable).set_code = (yyvsp[(8) - (8)].codeb); | ||
| 22901 | + (yyvsp[-4].variable).set_code = (yyvsp[0].codeb); | ||
| 22902 | |||
| 22903 | deprecated("%SetCode should be used as a sub-directive"); | ||
| 22904 | } | ||
| 22905 | |||
| 22906 | - newVar(currentSpec, currentModule, (yyvsp[(2) - (8)].text), currentIsStatic, &(yyvsp[(1) - (8)].memArg), | ||
| 22907 | - &(yyvsp[(3) - (8)].optflags), (yyvsp[(4) - (8)].variable).access_code, (yyvsp[(4) - (8)].variable).get_code, (yyvsp[(4) - (8)].variable).set_code, | ||
| 22908 | + newVar(currentSpec, currentModule, (yyvsp[-6].text), currentIsStatic, &(yyvsp[-7].memArg), | ||
| 22909 | + &(yyvsp[-5].optflags), (yyvsp[-4].variable).access_code, (yyvsp[-4].variable).get_code, (yyvsp[-4].variable).set_code, | ||
| 22910 | sectionFlags); | ||
| 22911 | } | ||
| 22912 | |||
| 22913 | currentIsStatic = FALSE; | ||
| 22914 | } | ||
| 22915 | +#line 7823 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22916 | break; | ||
| 22917 | |||
| 22918 | case 541: | ||
| 22919 | -#line 4308 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22920 | +#line 4308 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22921 | { | ||
| 22922 | (yyval.variable).token = 0; | ||
| 22923 | (yyval.variable).access_code = NULL; | ||
| 22924 | (yyval.variable).get_code = NULL; | ||
| 22925 | (yyval.variable).set_code = NULL; | ||
| 22926 | } | ||
| 22927 | +#line 7834 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22928 | break; | ||
| 22929 | |||
| 22930 | case 542: | ||
| 22931 | -#line 4314 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22932 | +#line 4314 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22933 | { | ||
| 22934 | - (yyval.variable) = (yyvsp[(2) - (3)].variable); | ||
| 22935 | + (yyval.variable) = (yyvsp[-1].variable); | ||
| 22936 | } | ||
| 22937 | +#line 7842 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22938 | break; | ||
| 22939 | |||
| 22940 | case 544: | ||
| 22941 | -#line 4320 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22942 | +#line 4320 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22943 | { | ||
| 22944 | - (yyval.variable) = (yyvsp[(1) - (2)].variable); | ||
| 22945 | + (yyval.variable) = (yyvsp[-1].variable); | ||
| 22946 | |||
| 22947 | - switch ((yyvsp[(2) - (2)].variable).token) | ||
| 22948 | + switch ((yyvsp[0].variable).token) | ||
| 22949 | { | ||
| 22950 | - case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[(2) - (2)].variable).access_code; break; | ||
| 22951 | - case TK_GETCODE: (yyval.variable).get_code = (yyvsp[(2) - (2)].variable).get_code; break; | ||
| 22952 | - case TK_SETCODE: (yyval.variable).set_code = (yyvsp[(2) - (2)].variable).set_code; break; | ||
| 22953 | + case TK_ACCESSCODE: (yyval.variable).access_code = (yyvsp[0].variable).access_code; break; | ||
| 22954 | + case TK_GETCODE: (yyval.variable).get_code = (yyvsp[0].variable).get_code; break; | ||
| 22955 | + case TK_SETCODE: (yyval.variable).set_code = (yyvsp[0].variable).set_code; break; | ||
| 22956 | } | ||
| 22957 | } | ||
| 22958 | +#line 7857 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22959 | break; | ||
| 22960 | |||
| 22961 | case 545: | ||
| 22962 | -#line 4332 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22963 | +#line 4332 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22964 | { | ||
| 22965 | (yyval.variable).token = TK_IF; | ||
| 22966 | } | ||
| 22967 | +#line 7865 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22968 | break; | ||
| 22969 | |||
| 22970 | case 546: | ||
| 22971 | -#line 4335 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22972 | +#line 4335 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22973 | { | ||
| 22974 | (yyval.variable).token = TK_END; | ||
| 22975 | } | ||
| 22976 | +#line 7873 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22977 | break; | ||
| 22978 | |||
| 22979 | case 547: | ||
| 22980 | -#line 4338 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 22981 | +#line 4338 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 22982 | { | ||
| 22983 | if (notSkipping()) | ||
| 22984 | { | ||
| 22985 | (yyval.variable).token = TK_ACCESSCODE; | ||
| 22986 | - (yyval.variable).access_code = (yyvsp[(2) - (2)].codeb); | ||
| 22987 | + (yyval.variable).access_code = (yyvsp[0].codeb); | ||
| 22988 | } | ||
| 22989 | else | ||
| 22990 | { | ||
| 22991 | @@ -7822,15 +7889,16 @@ | ||
| 22992 | (yyval.variable).get_code = NULL; | ||
| 22993 | (yyval.variable).set_code = NULL; | ||
| 22994 | } | ||
| 22995 | +#line 7893 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 22996 | break; | ||
| 22997 | |||
| 22998 | case 548: | ||
| 22999 | -#line 4353 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23000 | +#line 4353 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23001 | { | ||
| 23002 | if (notSkipping()) | ||
| 23003 | { | ||
| 23004 | (yyval.variable).token = TK_GETCODE; | ||
| 23005 | - (yyval.variable).get_code = (yyvsp[(2) - (2)].codeb); | ||
| 23006 | + (yyval.variable).get_code = (yyvsp[0].codeb); | ||
| 23007 | } | ||
| 23008 | else | ||
| 23009 | { | ||
| 23010 | @@ -7841,15 +7909,16 @@ | ||
| 23011 | (yyval.variable).access_code = NULL; | ||
| 23012 | (yyval.variable).set_code = NULL; | ||
| 23013 | } | ||
| 23014 | +#line 7913 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23015 | break; | ||
| 23016 | |||
| 23017 | case 549: | ||
| 23018 | -#line 4368 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23019 | +#line 4368 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23020 | { | ||
| 23021 | if (notSkipping()) | ||
| 23022 | { | ||
| 23023 | (yyval.variable).token = TK_SETCODE; | ||
| 23024 | - (yyval.variable).set_code = (yyvsp[(2) - (2)].codeb); | ||
| 23025 | + (yyval.variable).set_code = (yyvsp[0].codeb); | ||
| 23026 | } | ||
| 23027 | else | ||
| 23028 | { | ||
| 23029 | @@ -7860,35 +7929,38 @@ | ||
| 23030 | (yyval.variable).access_code = NULL; | ||
| 23031 | (yyval.variable).get_code = NULL; | ||
| 23032 | } | ||
| 23033 | +#line 7933 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23034 | break; | ||
| 23035 | |||
| 23036 | case 550: | ||
| 23037 | -#line 4385 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23038 | +#line 4385 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23039 | { | ||
| 23040 | - (yyval.memArg) = (yyvsp[(2) - (4)].memArg); | ||
| 23041 | - add_derefs(&(yyval.memArg), &(yyvsp[(3) - (4)].memArg)); | ||
| 23042 | - (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[(4) - (4)].number); | ||
| 23043 | + (yyval.memArg) = (yyvsp[-2].memArg); | ||
| 23044 | + add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg)); | ||
| 23045 | + (yyval.memArg).argflags |= ARG_IS_CONST | (yyvsp[0].number); | ||
| 23046 | } | ||
| 23047 | +#line 7943 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23048 | break; | ||
| 23049 | |||
| 23050 | case 551: | ||
| 23051 | -#line 4390 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23052 | +#line 4390 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23053 | { | ||
| 23054 | - (yyval.memArg) = (yyvsp[(1) - (3)].memArg); | ||
| 23055 | - add_derefs(&(yyval.memArg), &(yyvsp[(2) - (3)].memArg)); | ||
| 23056 | - (yyval.memArg).argflags |= (yyvsp[(3) - (3)].number); | ||
| 23057 | + (yyval.memArg) = (yyvsp[-2].memArg); | ||
| 23058 | + add_derefs(&(yyval.memArg), &(yyvsp[-1].memArg)); | ||
| 23059 | + (yyval.memArg).argflags |= (yyvsp[0].number); | ||
| 23060 | |||
| 23061 | /* PyObject * is a synonym for SIP_PYOBJECT. */ | ||
| 23062 | - 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) | ||
| 23063 | + 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) | ||
| 23064 | { | ||
| 23065 | (yyval.memArg).atype = pyobject_type; | ||
| 23066 | (yyval.memArg).nrderefs = 0; | ||
| 23067 | } | ||
| 23068 | } | ||
| 23069 | +#line 7960 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23070 | break; | ||
| 23071 | |||
| 23072 | case 552: | ||
| 23073 | -#line 4404 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23074 | +#line 4404 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23075 | { | ||
| 23076 | const char *annos[] = { | ||
| 23077 | "AllowNone", | ||
| 23078 | @@ -7919,54 +7991,54 @@ | ||
| 23079 | |||
| 23080 | optFlag *of; | ||
| 23081 | |||
| 23082 | - checkAnnos(&(yyvsp[(3) - (3)].optflags), annos); | ||
| 23083 | + checkAnnos(&(yyvsp[0].optflags), annos); | ||
| 23084 | |||
| 23085 | - (yyval.memArg) = (yyvsp[(1) - (3)].memArg); | ||
| 23086 | - (yyval.memArg).name = cacheName(currentSpec, (yyvsp[(2) - (3)].text)); | ||
| 23087 | + (yyval.memArg) = (yyvsp[-2].memArg); | ||
| 23088 | + (yyval.memArg).name = cacheName(currentSpec, (yyvsp[-1].text)); | ||
| 23089 | |||
| 23090 | - handleKeepReference(&(yyvsp[(3) - (3)].optflags), &(yyval.memArg), currentModule); | ||
| 23091 | + handleKeepReference(&(yyvsp[0].optflags), &(yyval.memArg), currentModule); | ||
| 23092 | |||
| 23093 | - if ((of = getOptFlag(&(yyvsp[(3) - (3)].optflags), "ScopesStripped", opt_integer_flag)) != NULL) | ||
| 23094 | + if ((of = getOptFlag(&(yyvsp[0].optflags), "ScopesStripped", opt_integer_flag)) != NULL) | ||
| 23095 | if (((yyval.memArg).scopes_stripped = of->fvalue.ival) <= 0) | ||
| 23096 | yyerror("/ScopesStripped/ must be greater than 0"); | ||
| 23097 | |||
| 23098 | - if (getAllowNone(&(yyvsp[(3) - (3)].optflags))) | ||
| 23099 | + if (getAllowNone(&(yyvsp[0].optflags))) | ||
| 23100 | (yyval.memArg).argflags |= ARG_ALLOW_NONE; | ||
| 23101 | |||
| 23102 | - if (getDisallowNone(&(yyvsp[(3) - (3)].optflags))) | ||
| 23103 | + if (getDisallowNone(&(yyvsp[0].optflags))) | ||
| 23104 | (yyval.memArg).argflags |= ARG_DISALLOW_NONE; | ||
| 23105 | |||
| 23106 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"GetWrapper",bool_flag) != NULL) | ||
| 23107 | + if (getOptFlag(&(yyvsp[0].optflags),"GetWrapper",bool_flag) != NULL) | ||
| 23108 | (yyval.memArg).argflags |= ARG_GET_WRAPPER; | ||
| 23109 | |||
| 23110 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Array",bool_flag) != NULL) | ||
| 23111 | + if (getOptFlag(&(yyvsp[0].optflags),"Array",bool_flag) != NULL) | ||
| 23112 | (yyval.memArg).argflags |= ARG_ARRAY; | ||
| 23113 | |||
| 23114 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"ArraySize",bool_flag) != NULL) | ||
| 23115 | + if (getOptFlag(&(yyvsp[0].optflags),"ArraySize",bool_flag) != NULL) | ||
| 23116 | (yyval.memArg).argflags |= ARG_ARRAY_SIZE; | ||
| 23117 | |||
| 23118 | - if (getTransfer(&(yyvsp[(3) - (3)].optflags))) | ||
| 23119 | + if (getTransfer(&(yyvsp[0].optflags))) | ||
| 23120 | (yyval.memArg).argflags |= ARG_XFERRED; | ||
| 23121 | |||
| 23122 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferThis",bool_flag) != NULL) | ||
| 23123 | + if (getOptFlag(&(yyvsp[0].optflags),"TransferThis",bool_flag) != NULL) | ||
| 23124 | (yyval.memArg).argflags |= ARG_THIS_XFERRED; | ||
| 23125 | |||
| 23126 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"TransferBack",bool_flag) != NULL) | ||
| 23127 | + if (getOptFlag(&(yyvsp[0].optflags),"TransferBack",bool_flag) != NULL) | ||
| 23128 | (yyval.memArg).argflags |= ARG_XFERRED_BACK; | ||
| 23129 | |||
| 23130 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"In",bool_flag) != NULL) | ||
| 23131 | + if (getOptFlag(&(yyvsp[0].optflags),"In",bool_flag) != NULL) | ||
| 23132 | (yyval.memArg).argflags |= ARG_IN; | ||
| 23133 | |||
| 23134 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Out",bool_flag) != NULL) | ||
| 23135 | + if (getOptFlag(&(yyvsp[0].optflags),"Out",bool_flag) != NULL) | ||
| 23136 | (yyval.memArg).argflags |= ARG_OUT; | ||
| 23137 | |||
| 23138 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "ResultSize", bool_flag) != NULL) | ||
| 23139 | + if (getOptFlag(&(yyvsp[0].optflags), "ResultSize", bool_flag) != NULL) | ||
| 23140 | (yyval.memArg).argflags |= ARG_RESULT_SIZE; | ||
| 23141 | |||
| 23142 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags), "NoCopy", bool_flag) != NULL) | ||
| 23143 | + if (getOptFlag(&(yyvsp[0].optflags), "NoCopy", bool_flag) != NULL) | ||
| 23144 | (yyval.memArg).argflags |= ARG_NO_COPY; | ||
| 23145 | |||
| 23146 | - if (getOptFlag(&(yyvsp[(3) - (3)].optflags),"Constrained",bool_flag) != NULL) | ||
| 23147 | + if (getOptFlag(&(yyvsp[0].optflags),"Constrained",bool_flag) != NULL) | ||
| 23148 | { | ||
| 23149 | (yyval.memArg).argflags |= ARG_CONSTRAINED; | ||
| 23150 | |||
| 23151 | @@ -7994,78 +8066,86 @@ | ||
| 23152 | } | ||
| 23153 | } | ||
| 23154 | |||
| 23155 | - applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[(3) - (3)].optflags)); | ||
| 23156 | - (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[(3) - (3)].optflags)); | ||
| 23157 | + applyTypeFlags(currentModule, &(yyval.memArg), &(yyvsp[0].optflags)); | ||
| 23158 | + (yyval.memArg).typehint_value = getTypeHintValue(&(yyvsp[0].optflags)); | ||
| 23159 | } | ||
| 23160 | +#line 8073 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23161 | break; | ||
| 23162 | |||
| 23163 | case 553: | ||
| 23164 | -#line 4514 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23165 | +#line 4514 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23166 | { | ||
| 23167 | (yyval.number) = 0; | ||
| 23168 | } | ||
| 23169 | +#line 8081 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23170 | break; | ||
| 23171 | |||
| 23172 | case 554: | ||
| 23173 | -#line 4517 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23174 | +#line 4517 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23175 | { | ||
| 23176 | if (currentSpec -> genc) | ||
| 23177 | yyerror("References not allowed in a C module"); | ||
| 23178 | |||
| 23179 | (yyval.number) = ARG_IS_REF; | ||
| 23180 | } | ||
| 23181 | +#line 8092 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23182 | break; | ||
| 23183 | |||
| 23184 | case 555: | ||
| 23185 | -#line 4525 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23186 | +#line 4525 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23187 | { | ||
| 23188 | (yyval.memArg).nrderefs = 0; | ||
| 23189 | } | ||
| 23190 | +#line 8100 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23191 | break; | ||
| 23192 | |||
| 23193 | case 556: | ||
| 23194 | -#line 4528 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23195 | +#line 4528 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23196 | { | ||
| 23197 | - add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (3)].memArg), TRUE); | ||
| 23198 | + add_new_deref(&(yyval.memArg), &(yyvsp[-2].memArg), TRUE); | ||
| 23199 | } | ||
| 23200 | +#line 8108 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23201 | break; | ||
| 23202 | |||
| 23203 | case 557: | ||
| 23204 | -#line 4531 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23205 | +#line 4531 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23206 | { | ||
| 23207 | - add_new_deref(&(yyval.memArg), &(yyvsp[(1) - (2)].memArg), FALSE); | ||
| 23208 | + add_new_deref(&(yyval.memArg), &(yyvsp[-1].memArg), FALSE); | ||
| 23209 | } | ||
| 23210 | +#line 8116 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23211 | break; | ||
| 23212 | |||
| 23213 | case 558: | ||
| 23214 | -#line 4536 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23215 | +#line 4536 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23216 | { | ||
| 23217 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23218 | (yyval.memArg).atype = defined_type; | ||
| 23219 | - (yyval.memArg).u.snd = (yyvsp[(1) - (1)].scpvalp); | ||
| 23220 | + (yyval.memArg).u.snd = (yyvsp[0].scpvalp); | ||
| 23221 | |||
| 23222 | /* Try and resolve typedefs as early as possible. */ | ||
| 23223 | resolveAnyTypedef(currentSpec, &(yyval.memArg)); | ||
| 23224 | } | ||
| 23225 | +#line 8129 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23226 | break; | ||
| 23227 | |||
| 23228 | case 559: | ||
| 23229 | -#line 4544 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23230 | +#line 4544 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23231 | { | ||
| 23232 | templateDef *td; | ||
| 23233 | |||
| 23234 | td = sipMalloc(sizeof(templateDef)); | ||
| 23235 | - td->fqname = (yyvsp[(1) - (4)].scpvalp); | ||
| 23236 | - td->types = (yyvsp[(3) - (4)].signature); | ||
| 23237 | + td->fqname = (yyvsp[-3].scpvalp); | ||
| 23238 | + td->types = (yyvsp[-1].signature); | ||
| 23239 | |||
| 23240 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23241 | (yyval.memArg).atype = template_type; | ||
| 23242 | (yyval.memArg).u.td = td; | ||
| 23243 | } | ||
| 23244 | +#line 8145 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23245 | break; | ||
| 23246 | |||
| 23247 | case 560: | ||
| 23248 | -#line 4555 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23249 | +#line 4555 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23250 | { | ||
| 23251 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23252 | |||
| 23253 | @@ -8073,321 +8153,366 @@ | ||
| 23254 | if (currentSpec -> genc) | ||
| 23255 | { | ||
| 23256 | (yyval.memArg).atype = defined_type; | ||
| 23257 | - (yyval.memArg).u.snd = (yyvsp[(2) - (2)].scpvalp); | ||
| 23258 | + (yyval.memArg).u.snd = (yyvsp[0].scpvalp); | ||
| 23259 | } | ||
| 23260 | else | ||
| 23261 | { | ||
| 23262 | (yyval.memArg).atype = struct_type; | ||
| 23263 | - (yyval.memArg).u.sname = (yyvsp[(2) - (2)].scpvalp); | ||
| 23264 | + (yyval.memArg).u.sname = (yyvsp[0].scpvalp); | ||
| 23265 | } | ||
| 23266 | } | ||
| 23267 | +#line 8165 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23268 | break; | ||
| 23269 | |||
| 23270 | case 561: | ||
| 23271 | -#line 4570 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23272 | +#line 4570 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23273 | { | ||
| 23274 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23275 | (yyval.memArg).atype = ushort_type; | ||
| 23276 | } | ||
| 23277 | +#line 8174 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23278 | break; | ||
| 23279 | |||
| 23280 | case 562: | ||
| 23281 | -#line 4574 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23282 | +#line 4574 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23283 | { | ||
| 23284 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23285 | (yyval.memArg).atype = short_type; | ||
| 23286 | } | ||
| 23287 | +#line 8183 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23288 | break; | ||
| 23289 | |||
| 23290 | case 563: | ||
| 23291 | -#line 4578 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23292 | +#line 4578 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23293 | { | ||
| 23294 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23295 | (yyval.memArg).atype = uint_type; | ||
| 23296 | } | ||
| 23297 | +#line 8192 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23298 | break; | ||
| 23299 | |||
| 23300 | case 564: | ||
| 23301 | -#line 4582 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23302 | +#line 4582 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23303 | { | ||
| 23304 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23305 | (yyval.memArg).atype = uint_type; | ||
| 23306 | } | ||
| 23307 | +#line 8201 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23308 | break; | ||
| 23309 | |||
| 23310 | case 565: | ||
| 23311 | -#line 4586 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23312 | +#line 4586 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23313 | { | ||
| 23314 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23315 | (yyval.memArg).atype = int_type; | ||
| 23316 | } | ||
| 23317 | +#line 8210 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23318 | break; | ||
| 23319 | |||
| 23320 | case 566: | ||
| 23321 | -#line 4590 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23322 | +#line 4590 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23323 | { | ||
| 23324 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23325 | (yyval.memArg).atype = long_type; | ||
| 23326 | } | ||
| 23327 | +#line 8219 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23328 | break; | ||
| 23329 | |||
| 23330 | case 567: | ||
| 23331 | -#line 4594 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23332 | +#line 4594 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23333 | { | ||
| 23334 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23335 | (yyval.memArg).atype = ulong_type; | ||
| 23336 | } | ||
| 23337 | +#line 8228 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23338 | break; | ||
| 23339 | |||
| 23340 | case 568: | ||
| 23341 | -#line 4598 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23342 | +#line 4598 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23343 | { | ||
| 23344 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23345 | (yyval.memArg).atype = longlong_type; | ||
| 23346 | } | ||
| 23347 | +#line 8237 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23348 | break; | ||
| 23349 | |||
| 23350 | case 569: | ||
| 23351 | -#line 4602 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23352 | +#line 4602 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23353 | { | ||
| 23354 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23355 | (yyval.memArg).atype = ulonglong_type; | ||
| 23356 | } | ||
| 23357 | +#line 8246 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23358 | break; | ||
| 23359 | |||
| 23360 | case 570: | ||
| 23361 | -#line 4606 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23362 | +#line 4606 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23363 | { | ||
| 23364 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23365 | (yyval.memArg).atype = float_type; | ||
| 23366 | } | ||
| 23367 | +#line 8255 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23368 | break; | ||
| 23369 | |||
| 23370 | case 571: | ||
| 23371 | -#line 4610 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23372 | +#line 4610 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23373 | { | ||
| 23374 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23375 | (yyval.memArg).atype = double_type; | ||
| 23376 | } | ||
| 23377 | +#line 8264 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23378 | break; | ||
| 23379 | |||
| 23380 | case 572: | ||
| 23381 | -#line 4614 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23382 | +#line 4614 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23383 | { | ||
| 23384 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23385 | (yyval.memArg).atype = bool_type; | ||
| 23386 | } | ||
| 23387 | +#line 8273 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23388 | break; | ||
| 23389 | |||
| 23390 | case 573: | ||
| 23391 | -#line 4618 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23392 | +#line 4618 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23393 | { | ||
| 23394 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23395 | (yyval.memArg).atype = sstring_type; | ||
| 23396 | } | ||
| 23397 | +#line 8282 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23398 | break; | ||
| 23399 | |||
| 23400 | case 574: | ||
| 23401 | -#line 4622 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23402 | +#line 4622 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23403 | { | ||
| 23404 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23405 | (yyval.memArg).atype = ustring_type; | ||
| 23406 | } | ||
| 23407 | +#line 8291 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23408 | break; | ||
| 23409 | |||
| 23410 | case 575: | ||
| 23411 | -#line 4626 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23412 | +#line 4626 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23413 | { | ||
| 23414 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23415 | (yyval.memArg).atype = string_type; | ||
| 23416 | } | ||
| 23417 | +#line 8300 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23418 | break; | ||
| 23419 | |||
| 23420 | case 576: | ||
| 23421 | -#line 4630 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23422 | +#line 4630 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23423 | { | ||
| 23424 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23425 | (yyval.memArg).atype = wstring_type; | ||
| 23426 | } | ||
| 23427 | +#line 8309 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23428 | break; | ||
| 23429 | |||
| 23430 | case 577: | ||
| 23431 | -#line 4634 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23432 | +#line 4634 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23433 | { | ||
| 23434 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23435 | (yyval.memArg).atype = void_type; | ||
| 23436 | } | ||
| 23437 | +#line 8318 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23438 | break; | ||
| 23439 | |||
| 23440 | case 578: | ||
| 23441 | -#line 4638 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23442 | +#line 4638 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23443 | { | ||
| 23444 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23445 | (yyval.memArg).atype = pyobject_type; | ||
| 23446 | } | ||
| 23447 | +#line 8327 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23448 | break; | ||
| 23449 | |||
| 23450 | case 579: | ||
| 23451 | -#line 4642 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23452 | +#line 4642 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23453 | { | ||
| 23454 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23455 | (yyval.memArg).atype = pytuple_type; | ||
| 23456 | } | ||
| 23457 | +#line 8336 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23458 | break; | ||
| 23459 | |||
| 23460 | case 580: | ||
| 23461 | -#line 4646 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23462 | +#line 4646 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23463 | { | ||
| 23464 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23465 | (yyval.memArg).atype = pylist_type; | ||
| 23466 | } | ||
| 23467 | +#line 8345 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23468 | break; | ||
| 23469 | |||
| 23470 | case 581: | ||
| 23471 | -#line 4650 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23472 | +#line 4650 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23473 | { | ||
| 23474 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23475 | (yyval.memArg).atype = pydict_type; | ||
| 23476 | } | ||
| 23477 | +#line 8354 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23478 | break; | ||
| 23479 | |||
| 23480 | case 582: | ||
| 23481 | -#line 4654 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23482 | +#line 4654 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23483 | { | ||
| 23484 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23485 | (yyval.memArg).atype = pycallable_type; | ||
| 23486 | } | ||
| 23487 | +#line 8363 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23488 | break; | ||
| 23489 | |||
| 23490 | case 583: | ||
| 23491 | -#line 4658 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23492 | +#line 4658 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23493 | { | ||
| 23494 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23495 | (yyval.memArg).atype = pyslice_type; | ||
| 23496 | } | ||
| 23497 | +#line 8372 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23498 | break; | ||
| 23499 | |||
| 23500 | case 584: | ||
| 23501 | -#line 4662 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23502 | +#line 4662 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23503 | { | ||
| 23504 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23505 | (yyval.memArg).atype = pytype_type; | ||
| 23506 | } | ||
| 23507 | +#line 8381 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23508 | break; | ||
| 23509 | |||
| 23510 | case 585: | ||
| 23511 | -#line 4666 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23512 | +#line 4666 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23513 | { | ||
| 23514 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23515 | (yyval.memArg).atype = pybuffer_type; | ||
| 23516 | } | ||
| 23517 | +#line 8390 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23518 | break; | ||
| 23519 | |||
| 23520 | case 586: | ||
| 23521 | -#line 4670 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23522 | +#line 4670 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23523 | { | ||
| 23524 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23525 | (yyval.memArg).atype = ssize_type; | ||
| 23526 | } | ||
| 23527 | +#line 8399 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23528 | break; | ||
| 23529 | |||
| 23530 | case 587: | ||
| 23531 | -#line 4674 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23532 | +#line 4674 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23533 | { | ||
| 23534 | memset(&(yyval.memArg), 0, sizeof (argDef)); | ||
| 23535 | (yyval.memArg).atype = ellipsis_type; | ||
| 23536 | } | ||
| 23537 | +#line 8408 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23538 | break; | ||
| 23539 | |||
| 23540 | case 588: | ||
| 23541 | -#line 4680 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23542 | +#line 4680 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23543 | { | ||
| 23544 | /* The single or first type. */ | ||
| 23545 | |||
| 23546 | - (yyval.signature).args[0] = (yyvsp[(1) - (1)].memArg); | ||
| 23547 | + (yyval.signature).args[0] = (yyvsp[0].memArg); | ||
| 23548 | (yyval.signature).nrArgs = 1; | ||
| 23549 | } | ||
| 23550 | +#line 8419 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23551 | break; | ||
| 23552 | |||
| 23553 | case 589: | ||
| 23554 | -#line 4686 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23555 | +#line 4686 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23556 | { | ||
| 23557 | /* Check there is nothing after an ellipsis. */ | ||
| 23558 | - if ((yyvsp[(1) - (3)].signature).args[(yyvsp[(1) - (3)].signature).nrArgs - 1].atype == ellipsis_type) | ||
| 23559 | + if ((yyvsp[-2].signature).args[(yyvsp[-2].signature).nrArgs - 1].atype == ellipsis_type) | ||
| 23560 | yyerror("An ellipsis must be at the end of the argument list"); | ||
| 23561 | |||
| 23562 | /* Check there is room. */ | ||
| 23563 | - if ((yyvsp[(1) - (3)].signature).nrArgs == MAX_NR_ARGS) | ||
| 23564 | + if ((yyvsp[-2].signature).nrArgs == MAX_NR_ARGS) | ||
| 23565 | yyerror("Internal error - increase the value of MAX_NR_ARGS"); | ||
| 23566 | |||
| 23567 | - (yyval.signature) = (yyvsp[(1) - (3)].signature); | ||
| 23568 | + (yyval.signature) = (yyvsp[-2].signature); | ||
| 23569 | |||
| 23570 | - (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[(3) - (3)].memArg); | ||
| 23571 | + (yyval.signature).args[(yyval.signature).nrArgs] = (yyvsp[0].memArg); | ||
| 23572 | (yyval.signature).nrArgs++; | ||
| 23573 | } | ||
| 23574 | +#line 8438 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23575 | break; | ||
| 23576 | |||
| 23577 | case 590: | ||
| 23578 | -#line 4702 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23579 | +#line 4702 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23580 | { | ||
| 23581 | (yyval.throwlist) = NULL; | ||
| 23582 | } | ||
| 23583 | +#line 8446 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23584 | break; | ||
| 23585 | |||
| 23586 | case 591: | ||
| 23587 | -#line 4705 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23588 | +#line 4705 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23589 | { | ||
| 23590 | if (currentSpec->genc) | ||
| 23591 | yyerror("Exceptions not allowed in a C module"); | ||
| 23592 | |||
| 23593 | - (yyval.throwlist) = (yyvsp[(3) - (4)].throwlist); | ||
| 23594 | + (yyval.throwlist) = (yyvsp[-1].throwlist); | ||
| 23595 | } | ||
| 23596 | +#line 8457 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23597 | break; | ||
| 23598 | |||
| 23599 | case 592: | ||
| 23600 | -#line 4713 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23601 | +#line 4713 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23602 | { | ||
| 23603 | /* Empty list so use a blank. */ | ||
| 23604 | |||
| 23605 | (yyval.throwlist) = sipMalloc(sizeof (throwArgs)); | ||
| 23606 | (yyval.throwlist) -> nrArgs = 0; | ||
| 23607 | } | ||
| 23608 | +#line 8468 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23609 | break; | ||
| 23610 | |||
| 23611 | case 593: | ||
| 23612 | -#line 4719 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23613 | +#line 4719 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23614 | { | ||
| 23615 | /* The only or first exception. */ | ||
| 23616 | |||
| 23617 | (yyval.throwlist) = sipMalloc(sizeof (throwArgs)); | ||
| 23618 | (yyval.throwlist) -> nrArgs = 1; | ||
| 23619 | - (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[(1) - (1)].scpvalp), FALSE); | ||
| 23620 | + (yyval.throwlist) -> args[0] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE); | ||
| 23621 | } | ||
| 23622 | +#line 8480 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23623 | break; | ||
| 23624 | |||
| 23625 | case 594: | ||
| 23626 | -#line 4726 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23627 | +#line 4726 "sipgen/metasrc/parser.y" /* yacc.c:1646 */ | ||
| 23628 | { | ||
| 23629 | /* Check that it wasn't ...(,arg...). */ | ||
| 23630 | |||
| 23631 | - if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == 0) | ||
| 23632 | + if ((yyvsp[-2].throwlist) -> nrArgs == 0) | ||
| 23633 | yyerror("First exception of throw specifier is missing"); | ||
| 23634 | |||
| 23635 | /* Check there is room. */ | ||
| 23636 | |||
| 23637 | - if ((yyvsp[(1) - (3)].throwlist) -> nrArgs == MAX_NR_ARGS) | ||
| 23638 | + if ((yyvsp[-2].throwlist) -> nrArgs == MAX_NR_ARGS) | ||
| 23639 | yyerror("Internal error - increase the value of MAX_NR_ARGS"); | ||
| 23640 | |||
| 23641 | - (yyval.throwlist) = (yyvsp[(1) - (3)].throwlist); | ||
| 23642 | - (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[(3) - (3)].scpvalp), FALSE); | ||
| 23643 | + (yyval.throwlist) = (yyvsp[-2].throwlist); | ||
| 23644 | + (yyval.throwlist) -> args[(yyval.throwlist) -> nrArgs++] = findException(currentSpec, (yyvsp[0].scpvalp), FALSE); | ||
| 23645 | } | ||
| 23646 | +#line 8499 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23647 | break; | ||
| 23648 | |||
| 23649 | |||
| 23650 | -/* Line 1267 of yacc.c. */ | ||
| 23651 | -#line 8389 "sip-4.19.12/sipgen/parser.c" | ||
| 23652 | +#line 8503 "sipgen/parser.c" /* yacc.c:1646 */ | ||
| 23653 | default: break; | ||
| 23654 | } | ||
| 23655 | + /* User semantic actions sometimes alter yychar, and that requires | ||
| 23656 | + that yytoken be updated with the new translation. We take the | ||
| 23657 | + approach of translating immediately before every use of yytoken. | ||
| 23658 | + One alternative is translating here after every semantic action, | ||
| 23659 | + but that translation would be missed if the semantic action invokes | ||
| 23660 | + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or | ||
| 23661 | + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an | ||
| 23662 | + incorrect destructor might then be invoked immediately. In the | ||
| 23663 | + case of YYERROR or YYBACKUP, subsequent parser actions might lead | ||
| 23664 | + to an incorrect destructor call or verbose syntax error message | ||
| 23665 | + before the lookahead is translated. */ | ||
| 23666 | YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); | ||
| 23667 | |||
| 23668 | YYPOPSTACK (yylen); | ||
| 23669 | @@ -8396,8 +8521,7 @@ | ||
| 23670 | |||
| 23671 | *++yyvsp = yyval; | ||
| 23672 | |||
| 23673 | - | ||
| 23674 | - /* Now `shift' the result of the reduction. Determine what state | ||
| 23675 | + /* Now 'shift' the result of the reduction. Determine what state | ||
| 23676 | that goes to, based on the state we popped back to and the rule | ||
| 23677 | number reduced by. */ | ||
| 23678 | |||
| 23679 | @@ -8412,10 +8536,14 @@ | ||
| 23680 | goto yynewstate; | ||
| 23681 | |||
| 23682 | |||
| 23683 | -/*------------------------------------. | ||
| 23684 | -| yyerrlab -- here on detecting error | | ||
| 23685 | -`------------------------------------*/ | ||
| 23686 | +/*--------------------------------------. | ||
| 23687 | +| yyerrlab -- here on detecting error. | | ||
| 23688 | +`--------------------------------------*/ | ||
| 23689 | yyerrlab: | ||
| 23690 | + /* Make sure we have latest lookahead translation. See comments at | ||
| 23691 | + user semantic actions for why this is necessary. */ | ||
| 23692 | + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); | ||
| 23693 | + | ||
| 23694 | /* If not already recovering from an error, report this error. */ | ||
| 23695 | if (!yyerrstatus) | ||
| 23696 | { | ||
| 23697 | @@ -8423,37 +8551,36 @@ | ||
| 23698 | #if ! YYERROR_VERBOSE | ||
| 23699 | yyerror (YY_("syntax error")); | ||
| 23700 | #else | ||
| 23701 | +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ | ||
| 23702 | + yyssp, yytoken) | ||
| 23703 | { | ||
| 23704 | - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); | ||
| 23705 | - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) | ||
| 23706 | - { | ||
| 23707 | - YYSIZE_T yyalloc = 2 * yysize; | ||
| 23708 | - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) | ||
| 23709 | - yyalloc = YYSTACK_ALLOC_MAXIMUM; | ||
| 23710 | - if (yymsg != yymsgbuf) | ||
| 23711 | - YYSTACK_FREE (yymsg); | ||
| 23712 | - yymsg = (char *) YYSTACK_ALLOC (yyalloc); | ||
| 23713 | - if (yymsg) | ||
| 23714 | - yymsg_alloc = yyalloc; | ||
| 23715 | - else | ||
| 23716 | - { | ||
| 23717 | - yymsg = yymsgbuf; | ||
| 23718 | - yymsg_alloc = sizeof yymsgbuf; | ||
| 23719 | - } | ||
| 23720 | - } | ||
| 23721 | - | ||
| 23722 | - if (0 < yysize && yysize <= yymsg_alloc) | ||
| 23723 | - { | ||
| 23724 | - (void) yysyntax_error (yymsg, yystate, yychar); | ||
| 23725 | - yyerror (yymsg); | ||
| 23726 | - } | ||
| 23727 | - else | ||
| 23728 | - { | ||
| 23729 | - yyerror (YY_("syntax error")); | ||
| 23730 | - if (yysize != 0) | ||
| 23731 | - goto yyexhaustedlab; | ||
| 23732 | - } | ||
| 23733 | + char const *yymsgp = YY_("syntax error"); | ||
| 23734 | + int yysyntax_error_status; | ||
| 23735 | + yysyntax_error_status = YYSYNTAX_ERROR; | ||
| 23736 | + if (yysyntax_error_status == 0) | ||
| 23737 | + yymsgp = yymsg; | ||
| 23738 | + else if (yysyntax_error_status == 1) | ||
| 23739 | + { | ||
| 23740 | + if (yymsg != yymsgbuf) | ||
| 23741 | + YYSTACK_FREE (yymsg); | ||
| 23742 | + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); | ||
| 23743 | + if (!yymsg) | ||
| 23744 | + { | ||
| 23745 | + yymsg = yymsgbuf; | ||
| 23746 | + yymsg_alloc = sizeof yymsgbuf; | ||
| 23747 | + yysyntax_error_status = 2; | ||
| 23748 | + } | ||
| 23749 | + else | ||
| 23750 | + { | ||
| 23751 | + yysyntax_error_status = YYSYNTAX_ERROR; | ||
| 23752 | + yymsgp = yymsg; | ||
| 23753 | + } | ||
| 23754 | + } | ||
| 23755 | + yyerror (yymsgp); | ||
| 23756 | + if (yysyntax_error_status == 2) | ||
| 23757 | + goto yyexhaustedlab; | ||
| 23758 | } | ||
| 23759 | +# undef YYSYNTAX_ERROR | ||
| 23760 | #endif | ||
| 23761 | } | ||
| 23762 | |||
| 23763 | @@ -8461,24 +8588,24 @@ | ||
| 23764 | |||
| 23765 | if (yyerrstatus == 3) | ||
| 23766 | { | ||
| 23767 | - /* If just tried and failed to reuse look-ahead token after an | ||
| 23768 | - error, discard it. */ | ||
| 23769 | + /* If just tried and failed to reuse lookahead token after an | ||
| 23770 | + error, discard it. */ | ||
| 23771 | |||
| 23772 | if (yychar <= YYEOF) | ||
| 23773 | - { | ||
| 23774 | - /* Return failure if at end of input. */ | ||
| 23775 | - if (yychar == YYEOF) | ||
| 23776 | - YYABORT; | ||
| 23777 | - } | ||
| 23778 | + { | ||
| 23779 | + /* Return failure if at end of input. */ | ||
| 23780 | + if (yychar == YYEOF) | ||
| 23781 | + YYABORT; | ||
| 23782 | + } | ||
| 23783 | else | ||
| 23784 | - { | ||
| 23785 | - yydestruct ("Error: discarding", | ||
| 23786 | - yytoken, &yylval); | ||
| 23787 | - yychar = YYEMPTY; | ||
| 23788 | - } | ||
| 23789 | + { | ||
| 23790 | + yydestruct ("Error: discarding", | ||
| 23791 | + yytoken, &yylval); | ||
| 23792 | + yychar = YYEMPTY; | ||
| 23793 | + } | ||
| 23794 | } | ||
| 23795 | |||
| 23796 | - /* Else will try to reuse look-ahead token after shifting the error | ||
| 23797 | + /* Else will try to reuse lookahead token after shifting the error | ||
| 23798 | token. */ | ||
| 23799 | goto yyerrlab1; | ||
| 23800 | |||
| 23801 | @@ -8494,7 +8621,7 @@ | ||
| 23802 | if (/*CONSTCOND*/ 0) | ||
| 23803 | goto yyerrorlab; | ||
| 23804 | |||
| 23805 | - /* Do not reclaim the symbols of the rule which action triggered | ||
| 23806 | + /* Do not reclaim the symbols of the rule whose action triggered | ||
| 23807 | this YYERROR. */ | ||
| 23808 | YYPOPSTACK (yylen); | ||
| 23809 | yylen = 0; | ||
| 23810 | @@ -8507,38 +8634,37 @@ | ||
| 23811 | | yyerrlab1 -- common code for both syntax error and YYERROR. | | ||
| 23812 | `-------------------------------------------------------------*/ | ||
| 23813 | yyerrlab1: | ||
| 23814 | - yyerrstatus = 3; /* Each real token shifted decrements this. */ | ||
| 23815 | + yyerrstatus = 3; /* Each real token shifted decrements this. */ | ||
| 23816 | |||
| 23817 | for (;;) | ||
| 23818 | { | ||
| 23819 | yyn = yypact[yystate]; | ||
| 23820 | - if (yyn != YYPACT_NINF) | ||
| 23821 | - { | ||
| 23822 | - yyn += YYTERROR; | ||
| 23823 | - if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) | ||
| 23824 | - { | ||
| 23825 | - yyn = yytable[yyn]; | ||
| 23826 | - if (0 < yyn) | ||
| 23827 | - break; | ||
| 23828 | - } | ||
| 23829 | - } | ||
| 23830 | + if (!yypact_value_is_default (yyn)) | ||
| 23831 | + { | ||
| 23832 | + yyn += YYTERROR; | ||
| 23833 | + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) | ||
| 23834 | + { | ||
| 23835 | + yyn = yytable[yyn]; | ||
| 23836 | + if (0 < yyn) | ||
| 23837 | + break; | ||
| 23838 | + } | ||
| 23839 | + } | ||
| 23840 | |||
| 23841 | /* Pop the current state because it cannot handle the error token. */ | ||
| 23842 | if (yyssp == yyss) | ||
| 23843 | - YYABORT; | ||
| 23844 | + YYABORT; | ||
| 23845 | |||
| 23846 | |||
| 23847 | yydestruct ("Error: popping", | ||
| 23848 | - yystos[yystate], yyvsp); | ||
| 23849 | + yystos[yystate], yyvsp); | ||
| 23850 | YYPOPSTACK (1); | ||
| 23851 | yystate = *yyssp; | ||
| 23852 | YY_STACK_PRINT (yyss, yyssp); | ||
| 23853 | } | ||
| 23854 | |||
| 23855 | - if (yyn == YYFINAL) | ||
| 23856 | - YYACCEPT; | ||
| 23857 | - | ||
| 23858 | + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN | ||
| 23859 | *++yyvsp = yylval; | ||
| 23860 | + YY_IGNORE_MAYBE_UNINITIALIZED_END | ||
| 23861 | |||
| 23862 | |||
| 23863 | /* Shift the error token. */ | ||
| 23864 | @@ -8562,7 +8688,7 @@ | ||
| 23865 | yyresult = 1; | ||
| 23866 | goto yyreturn; | ||
| 23867 | |||
| 23868 | -#ifndef yyoverflow | ||
| 23869 | +#if !defined yyoverflow || YYERROR_VERBOSE | ||
| 23870 | /*-------------------------------------------------. | ||
| 23871 | | yyexhaustedlab -- memory exhaustion comes here. | | ||
| 23872 | `-------------------------------------------------*/ | ||
| 23873 | @@ -8573,17 +8699,22 @@ | ||
| 23874 | #endif | ||
| 23875 | |||
| 23876 | yyreturn: | ||
| 23877 | - if (yychar != YYEOF && yychar != YYEMPTY) | ||
| 23878 | - yydestruct ("Cleanup: discarding lookahead", | ||
| 23879 | - yytoken, &yylval); | ||
| 23880 | - /* Do not reclaim the symbols of the rule which action triggered | ||
| 23881 | + if (yychar != YYEMPTY) | ||
| 23882 | + { | ||
| 23883 | + /* Make sure we have latest lookahead translation. See comments at | ||
| 23884 | + user semantic actions for why this is necessary. */ | ||
| 23885 | + yytoken = YYTRANSLATE (yychar); | ||
| 23886 | + yydestruct ("Cleanup: discarding lookahead", | ||
| 23887 | + yytoken, &yylval); | ||
| 23888 | + } | ||
| 23889 | + /* Do not reclaim the symbols of the rule whose action triggered | ||
| 23890 | this YYABORT or YYACCEPT. */ | ||
| 23891 | YYPOPSTACK (yylen); | ||
| 23892 | YY_STACK_PRINT (yyss, yyssp); | ||
| 23893 | while (yyssp != yyss) | ||
| 23894 | { | ||
| 23895 | yydestruct ("Cleanup: popping", | ||
| 23896 | - yystos[*yyssp], yyvsp); | ||
| 23897 | + yystos[*yyssp], yyvsp); | ||
| 23898 | YYPOPSTACK (1); | ||
| 23899 | } | ||
| 23900 | #ifndef yyoverflow | ||
| 23901 | @@ -8594,12 +8725,9 @@ | ||
| 23902 | if (yymsg != yymsgbuf) | ||
| 23903 | YYSTACK_FREE (yymsg); | ||
| 23904 | #endif | ||
| 23905 | - /* Make sure YYID is used. */ | ||
| 23906 | - return YYID (yyresult); | ||
| 23907 | + return yyresult; | ||
| 23908 | } | ||
| 23909 | - | ||
| 23910 | - | ||
| 23911 | -#line 4742 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 23912 | +#line 4742 "sipgen/metasrc/parser.y" /* yacc.c:1906 */ | ||
| 23913 | |||
| 23914 | |||
| 23915 | |||
| 23916 | @@ -13483,4 +13611,3 @@ | ||
| 23917 | if (sd->args[a].atype == ellipsis_type && a < sd->nrArgs - 1) | ||
| 23918 | yyerror("An ellipsis must be at the end of the argument list if /NoArgParser/ is not specified"); | ||
| 23919 | } | ||
| 23920 | - | ||
| 23921 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/parser.h sip/sipgen/parser.h | ||
| 23922 | --- ./sip-4.19.12.orig/sipgen/parser.h 2018-07-05 05:55:19.000000000 -0400 | ||
| 23923 | +++ sip/sipgen/parser.h 2018-09-18 18:12:23.642053256 -0400 | ||
| 23924 | @@ -1,14 +1,13 @@ | ||
| 23925 | -/* A Bison parser, made by GNU Bison 2.3. */ | ||
| 23926 | +/* A Bison parser, made by GNU Bison 3.0.4. */ | ||
| 23927 | |||
| 23928 | -/* Skeleton interface for Bison's Yacc-like parsers in C | ||
| 23929 | +/* Bison interface for Yacc-like parsers in C | ||
| 23930 | |||
| 23931 | - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 | ||
| 23932 | - Free Software Foundation, Inc. | ||
| 23933 | + Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. | ||
| 23934 | |||
| 23935 | - This program is free software; you can redistribute it and/or modify | ||
| 23936 | + This program is free software: you can redistribute it and/or modify | ||
| 23937 | it under the terms of the GNU General Public License as published by | ||
| 23938 | - the Free Software Foundation; either version 2, or (at your option) | ||
| 23939 | - any later version. | ||
| 23940 | + the Free Software Foundation, either version 3 of the License, or | ||
| 23941 | + (at your option) any later version. | ||
| 23942 | |||
| 23943 | This program is distributed in the hope that it will be useful, | ||
| 23944 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 23945 | @@ -16,9 +15,7 @@ | ||
| 23946 | GNU General Public License for more details. | ||
| 23947 | |||
| 23948 | You should have received a copy of the GNU General Public License | ||
| 23949 | - along with this program; if not, write to the Free Software | ||
| 23950 | - Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
| 23951 | - Boston, MA 02110-1301, USA. */ | ||
| 23952 | + along with this program. If not, see <http://www.gnu.org/licenses/>. */ | ||
| 23953 | |||
| 23954 | /* As a special exception, you may create a larger work that contains | ||
| 23955 | part or all of the Bison parser skeleton and distribute that work | ||
| 23956 | @@ -33,162 +30,171 @@ | ||
| 23957 | This special exception was added by the Free Software Foundation in | ||
| 23958 | version 2.2 of Bison. */ | ||
| 23959 | |||
| 23960 | -/* Tokens. */ | ||
| 23961 | +#ifndef YY_YY_SIPGEN_PARSER_H_INCLUDED | ||
| 23962 | +# define YY_YY_SIPGEN_PARSER_H_INCLUDED | ||
| 23963 | +/* Debug traces. */ | ||
| 23964 | +#ifndef YYDEBUG | ||
| 23965 | +# define YYDEBUG 0 | ||
| 23966 | +#endif | ||
| 23967 | +#if YYDEBUG | ||
| 23968 | +extern int yydebug; | ||
| 23969 | +#endif | ||
| 23970 | + | ||
| 23971 | +/* Token type. */ | ||
| 23972 | #ifndef YYTOKENTYPE | ||
| 23973 | # define YYTOKENTYPE | ||
| 23974 | - /* Put the tokens into the symbol table, so that GDB and other debuggers | ||
| 23975 | - know about them. */ | ||
| 23976 | - enum yytokentype { | ||
| 23977 | - TK_API = 258, | ||
| 23978 | - TK_AUTOPYNAME = 259, | ||
| 23979 | - TK_DEFDOCSTRFMT = 260, | ||
| 23980 | - TK_DEFDOCSTRSIG = 261, | ||
| 23981 | - TK_DEFENCODING = 262, | ||
| 23982 | - TK_PLUGIN = 263, | ||
| 23983 | - TK_VIRTERRORHANDLER = 264, | ||
| 23984 | - TK_EXPTYPEHINTCODE = 265, | ||
| 23985 | - TK_TYPEHINTCODE = 266, | ||
| 23986 | - TK_DOCSTRING = 267, | ||
| 23987 | - TK_DOC = 268, | ||
| 23988 | - TK_EXPORTEDDOC = 269, | ||
| 23989 | - TK_EXTRACT = 270, | ||
| 23990 | - TK_MAKEFILE = 271, | ||
| 23991 | - TK_ACCESSCODE = 272, | ||
| 23992 | - TK_GETCODE = 273, | ||
| 23993 | - TK_SETCODE = 274, | ||
| 23994 | - TK_PREINITCODE = 275, | ||
| 23995 | - TK_INITCODE = 276, | ||
| 23996 | - TK_POSTINITCODE = 277, | ||
| 23997 | - TK_FINALCODE = 278, | ||
| 23998 | - TK_UNITCODE = 279, | ||
| 23999 | - TK_UNITPOSTINCLUDECODE = 280, | ||
| 24000 | - TK_MODCODE = 281, | ||
| 24001 | - TK_TYPECODE = 282, | ||
| 24002 | - TK_PREPYCODE = 283, | ||
| 24003 | - TK_COPYING = 284, | ||
| 24004 | - TK_MAPPEDTYPE = 285, | ||
| 24005 | - TK_CODELINE = 286, | ||
| 24006 | - TK_IF = 287, | ||
| 24007 | - TK_END = 288, | ||
| 24008 | - TK_NAME_VALUE = 289, | ||
| 24009 | - TK_PATH_VALUE = 290, | ||
| 24010 | - TK_STRING_VALUE = 291, | ||
| 24011 | - TK_VIRTUALCATCHERCODE = 292, | ||
| 24012 | - TK_TRAVERSECODE = 293, | ||
| 24013 | - TK_CLEARCODE = 294, | ||
| 24014 | - TK_GETBUFFERCODE = 295, | ||
| 24015 | - TK_RELEASEBUFFERCODE = 296, | ||
| 24016 | - TK_READBUFFERCODE = 297, | ||
| 24017 | - TK_WRITEBUFFERCODE = 298, | ||
| 24018 | - TK_SEGCOUNTCODE = 299, | ||
| 24019 | - TK_CHARBUFFERCODE = 300, | ||
| 24020 | - TK_PICKLECODE = 301, | ||
| 24021 | - TK_VIRTUALCALLCODE = 302, | ||
| 24022 | - TK_METHODCODE = 303, | ||
| 24023 | - TK_PREMETHODCODE = 304, | ||
| 24024 | - TK_INSTANCECODE = 305, | ||
| 24025 | - TK_FROMTYPE = 306, | ||
| 24026 | - TK_TOTYPE = 307, | ||
| 24027 | - TK_TOSUBCLASS = 308, | ||
| 24028 | - TK_INCLUDE = 309, | ||
| 24029 | - TK_OPTINCLUDE = 310, | ||
| 24030 | - TK_IMPORT = 311, | ||
| 24031 | - TK_EXPHEADERCODE = 312, | ||
| 24032 | - TK_MODHEADERCODE = 313, | ||
| 24033 | - TK_TYPEHEADERCODE = 314, | ||
| 24034 | - TK_MODULE = 315, | ||
| 24035 | - TK_CMODULE = 316, | ||
| 24036 | - TK_CONSMODULE = 317, | ||
| 24037 | - TK_COMPOMODULE = 318, | ||
| 24038 | - TK_CLASS = 319, | ||
| 24039 | - TK_STRUCT = 320, | ||
| 24040 | - TK_PUBLIC = 321, | ||
| 24041 | - TK_PROTECTED = 322, | ||
| 24042 | - TK_PRIVATE = 323, | ||
| 24043 | - TK_SIGNALS = 324, | ||
| 24044 | - TK_SIGNAL_METHOD = 325, | ||
| 24045 | - TK_SLOTS = 326, | ||
| 24046 | - TK_SLOT_METHOD = 327, | ||
| 24047 | - TK_BOOL = 328, | ||
| 24048 | - TK_SHORT = 329, | ||
| 24049 | - TK_INT = 330, | ||
| 24050 | - TK_LONG = 331, | ||
| 24051 | - TK_FLOAT = 332, | ||
| 24052 | - TK_DOUBLE = 333, | ||
| 24053 | - TK_CHAR = 334, | ||
| 24054 | - TK_WCHAR_T = 335, | ||
| 24055 | - TK_VOID = 336, | ||
| 24056 | - TK_PYOBJECT = 337, | ||
| 24057 | - TK_PYTUPLE = 338, | ||
| 24058 | - TK_PYLIST = 339, | ||
| 24059 | - TK_PYDICT = 340, | ||
| 24060 | - TK_PYCALLABLE = 341, | ||
| 24061 | - TK_PYSLICE = 342, | ||
| 24062 | - TK_PYTYPE = 343, | ||
| 24063 | - TK_PYBUFFER = 344, | ||
| 24064 | - TK_VIRTUAL = 345, | ||
| 24065 | - TK_ENUM = 346, | ||
| 24066 | - TK_SIGNED = 347, | ||
| 24067 | - TK_UNSIGNED = 348, | ||
| 24068 | - TK_SCOPE = 349, | ||
| 24069 | - TK_LOGICAL_OR = 350, | ||
| 24070 | - TK_CONST = 351, | ||
| 24071 | - TK_STATIC = 352, | ||
| 24072 | - TK_SIPSIGNAL = 353, | ||
| 24073 | - TK_SIPSLOT = 354, | ||
| 24074 | - TK_SIPANYSLOT = 355, | ||
| 24075 | - TK_SIPRXCON = 356, | ||
| 24076 | - TK_SIPRXDIS = 357, | ||
| 24077 | - TK_SIPSLOTCON = 358, | ||
| 24078 | - TK_SIPSLOTDIS = 359, | ||
| 24079 | - TK_SIPSSIZET = 360, | ||
| 24080 | - TK_NUMBER_VALUE = 361, | ||
| 24081 | - TK_REAL_VALUE = 362, | ||
| 24082 | - TK_TYPEDEF = 363, | ||
| 24083 | - TK_NAMESPACE = 364, | ||
| 24084 | - TK_TIMELINE = 365, | ||
| 24085 | - TK_PLATFORMS = 366, | ||
| 24086 | - TK_FEATURE = 367, | ||
| 24087 | - TK_LICENSE = 368, | ||
| 24088 | - TK_QCHAR_VALUE = 369, | ||
| 24089 | - TK_TRUE_VALUE = 370, | ||
| 24090 | - TK_FALSE_VALUE = 371, | ||
| 24091 | - TK_NULL_VALUE = 372, | ||
| 24092 | - TK_OPERATOR = 373, | ||
| 24093 | - TK_THROW = 374, | ||
| 24094 | - TK_QOBJECT = 375, | ||
| 24095 | - TK_EXCEPTION = 376, | ||
| 24096 | - TK_RAISECODE = 377, | ||
| 24097 | - TK_VIRTERRORCODE = 378, | ||
| 24098 | - TK_EXPLICIT = 379, | ||
| 24099 | - TK_TEMPLATE = 380, | ||
| 24100 | - TK_FINAL = 381, | ||
| 24101 | - TK_ELLIPSIS = 382, | ||
| 24102 | - TK_DEFMETATYPE = 383, | ||
| 24103 | - TK_DEFSUPERTYPE = 384, | ||
| 24104 | - TK_PROPERTY = 385, | ||
| 24105 | - TK_HIDE_NS = 386, | ||
| 24106 | - TK_FORMAT = 387, | ||
| 24107 | - TK_GET = 388, | ||
| 24108 | - TK_ID = 389, | ||
| 24109 | - TK_KWARGS = 390, | ||
| 24110 | - TK_LANGUAGE = 391, | ||
| 24111 | - TK_LICENSEE = 392, | ||
| 24112 | - TK_NAME = 393, | ||
| 24113 | - TK_OPTIONAL = 394, | ||
| 24114 | - TK_ORDER = 395, | ||
| 24115 | - TK_REMOVELEADING = 396, | ||
| 24116 | - TK_SET = 397, | ||
| 24117 | - TK_SIGNATURE = 398, | ||
| 24118 | - TK_TIMESTAMP = 399, | ||
| 24119 | - TK_TYPE = 400, | ||
| 24120 | - TK_USEARGNAMES = 401, | ||
| 24121 | - TK_USELIMITEDAPI = 402, | ||
| 24122 | - TK_ALLRAISEPYEXC = 403, | ||
| 24123 | - TK_CALLSUPERINIT = 404, | ||
| 24124 | - TK_DEFERRORHANDLER = 405, | ||
| 24125 | - TK_VERSION = 406 | ||
| 24126 | - }; | ||
| 24127 | + enum yytokentype | ||
| 24128 | + { | ||
| 24129 | + TK_API = 258, | ||
| 24130 | + TK_AUTOPYNAME = 259, | ||
| 24131 | + TK_DEFDOCSTRFMT = 260, | ||
| 24132 | + TK_DEFDOCSTRSIG = 261, | ||
| 24133 | + TK_DEFENCODING = 262, | ||
| 24134 | + TK_PLUGIN = 263, | ||
| 24135 | + TK_VIRTERRORHANDLER = 264, | ||
| 24136 | + TK_EXPTYPEHINTCODE = 265, | ||
| 24137 | + TK_TYPEHINTCODE = 266, | ||
| 24138 | + TK_DOCSTRING = 267, | ||
| 24139 | + TK_DOC = 268, | ||
| 24140 | + TK_EXPORTEDDOC = 269, | ||
| 24141 | + TK_EXTRACT = 270, | ||
| 24142 | + TK_MAKEFILE = 271, | ||
| 24143 | + TK_ACCESSCODE = 272, | ||
| 24144 | + TK_GETCODE = 273, | ||
| 24145 | + TK_SETCODE = 274, | ||
| 24146 | + TK_PREINITCODE = 275, | ||
| 24147 | + TK_INITCODE = 276, | ||
| 24148 | + TK_POSTINITCODE = 277, | ||
| 24149 | + TK_FINALCODE = 278, | ||
| 24150 | + TK_UNITCODE = 279, | ||
| 24151 | + TK_UNITPOSTINCLUDECODE = 280, | ||
| 24152 | + TK_MODCODE = 281, | ||
| 24153 | + TK_TYPECODE = 282, | ||
| 24154 | + TK_PREPYCODE = 283, | ||
| 24155 | + TK_COPYING = 284, | ||
| 24156 | + TK_MAPPEDTYPE = 285, | ||
| 24157 | + TK_CODELINE = 286, | ||
| 24158 | + TK_IF = 287, | ||
| 24159 | + TK_END = 288, | ||
| 24160 | + TK_NAME_VALUE = 289, | ||
| 24161 | + TK_PATH_VALUE = 290, | ||
| 24162 | + TK_STRING_VALUE = 291, | ||
| 24163 | + TK_VIRTUALCATCHERCODE = 292, | ||
| 24164 | + TK_TRAVERSECODE = 293, | ||
| 24165 | + TK_CLEARCODE = 294, | ||
| 24166 | + TK_GETBUFFERCODE = 295, | ||
| 24167 | + TK_RELEASEBUFFERCODE = 296, | ||
| 24168 | + TK_READBUFFERCODE = 297, | ||
| 24169 | + TK_WRITEBUFFERCODE = 298, | ||
| 24170 | + TK_SEGCOUNTCODE = 299, | ||
| 24171 | + TK_CHARBUFFERCODE = 300, | ||
| 24172 | + TK_PICKLECODE = 301, | ||
| 24173 | + TK_VIRTUALCALLCODE = 302, | ||
| 24174 | + TK_METHODCODE = 303, | ||
| 24175 | + TK_PREMETHODCODE = 304, | ||
| 24176 | + TK_INSTANCECODE = 305, | ||
| 24177 | + TK_FROMTYPE = 306, | ||
| 24178 | + TK_TOTYPE = 307, | ||
| 24179 | + TK_TOSUBCLASS = 308, | ||
| 24180 | + TK_INCLUDE = 309, | ||
| 24181 | + TK_OPTINCLUDE = 310, | ||
| 24182 | + TK_IMPORT = 311, | ||
| 24183 | + TK_EXPHEADERCODE = 312, | ||
| 24184 | + TK_MODHEADERCODE = 313, | ||
| 24185 | + TK_TYPEHEADERCODE = 314, | ||
| 24186 | + TK_MODULE = 315, | ||
| 24187 | + TK_CMODULE = 316, | ||
| 24188 | + TK_CONSMODULE = 317, | ||
| 24189 | + TK_COMPOMODULE = 318, | ||
| 24190 | + TK_CLASS = 319, | ||
| 24191 | + TK_STRUCT = 320, | ||
| 24192 | + TK_PUBLIC = 321, | ||
| 24193 | + TK_PROTECTED = 322, | ||
| 24194 | + TK_PRIVATE = 323, | ||
| 24195 | + TK_SIGNALS = 324, | ||
| 24196 | + TK_SIGNAL_METHOD = 325, | ||
| 24197 | + TK_SLOTS = 326, | ||
| 24198 | + TK_SLOT_METHOD = 327, | ||
| 24199 | + TK_BOOL = 328, | ||
| 24200 | + TK_SHORT = 329, | ||
| 24201 | + TK_INT = 330, | ||
| 24202 | + TK_LONG = 331, | ||
| 24203 | + TK_FLOAT = 332, | ||
| 24204 | + TK_DOUBLE = 333, | ||
| 24205 | + TK_CHAR = 334, | ||
| 24206 | + TK_WCHAR_T = 335, | ||
| 24207 | + TK_VOID = 336, | ||
| 24208 | + TK_PYOBJECT = 337, | ||
| 24209 | + TK_PYTUPLE = 338, | ||
| 24210 | + TK_PYLIST = 339, | ||
| 24211 | + TK_PYDICT = 340, | ||
| 24212 | + TK_PYCALLABLE = 341, | ||
| 24213 | + TK_PYSLICE = 342, | ||
| 24214 | + TK_PYTYPE = 343, | ||
| 24215 | + TK_PYBUFFER = 344, | ||
| 24216 | + TK_VIRTUAL = 345, | ||
| 24217 | + TK_ENUM = 346, | ||
| 24218 | + TK_SIGNED = 347, | ||
| 24219 | + TK_UNSIGNED = 348, | ||
| 24220 | + TK_SCOPE = 349, | ||
| 24221 | + TK_LOGICAL_OR = 350, | ||
| 24222 | + TK_CONST = 351, | ||
| 24223 | + TK_STATIC = 352, | ||
| 24224 | + TK_SIPSIGNAL = 353, | ||
| 24225 | + TK_SIPSLOT = 354, | ||
| 24226 | + TK_SIPANYSLOT = 355, | ||
| 24227 | + TK_SIPRXCON = 356, | ||
| 24228 | + TK_SIPRXDIS = 357, | ||
| 24229 | + TK_SIPSLOTCON = 358, | ||
| 24230 | + TK_SIPSLOTDIS = 359, | ||
| 24231 | + TK_SIPSSIZET = 360, | ||
| 24232 | + TK_NUMBER_VALUE = 361, | ||
| 24233 | + TK_REAL_VALUE = 362, | ||
| 24234 | + TK_TYPEDEF = 363, | ||
| 24235 | + TK_NAMESPACE = 364, | ||
| 24236 | + TK_TIMELINE = 365, | ||
| 24237 | + TK_PLATFORMS = 366, | ||
| 24238 | + TK_FEATURE = 367, | ||
| 24239 | + TK_LICENSE = 368, | ||
| 24240 | + TK_QCHAR_VALUE = 369, | ||
| 24241 | + TK_TRUE_VALUE = 370, | ||
| 24242 | + TK_FALSE_VALUE = 371, | ||
| 24243 | + TK_NULL_VALUE = 372, | ||
| 24244 | + TK_OPERATOR = 373, | ||
| 24245 | + TK_THROW = 374, | ||
| 24246 | + TK_QOBJECT = 375, | ||
| 24247 | + TK_EXCEPTION = 376, | ||
| 24248 | + TK_RAISECODE = 377, | ||
| 24249 | + TK_VIRTERRORCODE = 378, | ||
| 24250 | + TK_EXPLICIT = 379, | ||
| 24251 | + TK_TEMPLATE = 380, | ||
| 24252 | + TK_FINAL = 381, | ||
| 24253 | + TK_ELLIPSIS = 382, | ||
| 24254 | + TK_DEFMETATYPE = 383, | ||
| 24255 | + TK_DEFSUPERTYPE = 384, | ||
| 24256 | + TK_PROPERTY = 385, | ||
| 24257 | + TK_HIDE_NS = 386, | ||
| 24258 | + TK_FORMAT = 387, | ||
| 24259 | + TK_GET = 388, | ||
| 24260 | + TK_ID = 389, | ||
| 24261 | + TK_KWARGS = 390, | ||
| 24262 | + TK_LANGUAGE = 391, | ||
| 24263 | + TK_LICENSEE = 392, | ||
| 24264 | + TK_NAME = 393, | ||
| 24265 | + TK_OPTIONAL = 394, | ||
| 24266 | + TK_ORDER = 395, | ||
| 24267 | + TK_REMOVELEADING = 396, | ||
| 24268 | + TK_SET = 397, | ||
| 24269 | + TK_SIGNATURE = 398, | ||
| 24270 | + TK_TIMESTAMP = 399, | ||
| 24271 | + TK_TYPE = 400, | ||
| 24272 | + TK_USEARGNAMES = 401, | ||
| 24273 | + TK_USELIMITEDAPI = 402, | ||
| 24274 | + TK_ALLRAISEPYEXC = 403, | ||
| 24275 | + TK_CALLSUPERINIT = 404, | ||
| 24276 | + TK_DEFERRORHANDLER = 405, | ||
| 24277 | + TK_VERSION = 406 | ||
| 24278 | + }; | ||
| 24279 | #endif | ||
| 24280 | /* Tokens. */ | ||
| 24281 | #define TK_API 258 | ||
| 24282 | @@ -341,13 +347,13 @@ | ||
| 24283 | #define TK_DEFERRORHANDLER 405 | ||
| 24284 | #define TK_VERSION 406 | ||
| 24285 | |||
| 24286 | - | ||
| 24287 | - | ||
| 24288 | - | ||
| 24289 | +/* Value type. */ | ||
| 24290 | #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED | ||
| 24291 | -typedef union YYSTYPE | ||
| 24292 | -#line 203 "sip-4.19.12/sipgen/metasrc/parser.y" | ||
| 24293 | + | ||
| 24294 | +union YYSTYPE | ||
| 24295 | { | ||
| 24296 | +#line 203 "sipgen/metasrc/parser.y" /* yacc.c:1909 */ | ||
| 24297 | + | ||
| 24298 | char qchar; | ||
| 24299 | char *text; | ||
| 24300 | long number; | ||
| 24301 | @@ -390,14 +396,18 @@ | ||
| 24302 | variableCfg variable; | ||
| 24303 | vehCfg veh; | ||
| 24304 | int token; | ||
| 24305 | -} | ||
| 24306 | -/* Line 1529 of yacc.c. */ | ||
| 24307 | -#line 396 "sip-4.19.12/sipgen/parser.h" | ||
| 24308 | - YYSTYPE; | ||
| 24309 | -# define yystype YYSTYPE /* obsolescent; will be withdrawn */ | ||
| 24310 | -# define YYSTYPE_IS_DECLARED 1 | ||
| 24311 | + | ||
| 24312 | +#line 401 "sipgen/parser.h" /* yacc.c:1909 */ | ||
| 24313 | +}; | ||
| 24314 | + | ||
| 24315 | +typedef union YYSTYPE YYSTYPE; | ||
| 24316 | # define YYSTYPE_IS_TRIVIAL 1 | ||
| 24317 | +# define YYSTYPE_IS_DECLARED 1 | ||
| 24318 | #endif | ||
| 24319 | |||
| 24320 | + | ||
| 24321 | extern YYSTYPE yylval; | ||
| 24322 | |||
| 24323 | +int yyparse (void); | ||
| 24324 | + | ||
| 24325 | +#endif /* !YY_YY_SIPGEN_PARSER_H_INCLUDED */ | ||
| 24326 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h sip/sipgen/sip.h | ||
| 24327 | --- ./sip-4.19.12.orig/sipgen/sip.h 2018-07-05 05:55:19.000000000 -0400 | ||
| 24328 | +++ sip/sipgen/sip.h 2018-09-18 18:12:23.643053242 -0400 | ||
| 24329 | @@ -27,8 +27,8 @@ | ||
| 24330 | /* | ||
| 24331 | * Define the SIP version number. | ||
| 24332 | */ | ||
| 24333 | -#define SIP_VERSION 0x04130c | ||
| 24334 | -#define SIP_VERSION_STR "4.19.12" | ||
| 24335 | +#define SIP_VERSION 0x04ffff | ||
| 24336 | +#define SIP_VERSION_STR "4.255.255" | ||
| 24337 | |||
| 24338 | |||
| 24339 | #ifdef TRUE | ||
| 24340 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/sip.h.in sip/sipgen/sip.h.in | ||
| 24341 | --- ./sip-4.19.12.orig/sipgen/sip.h.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 24342 | +++ sip/sipgen/sip.h.in 2018-09-24 13:12:20.674276069 -0400 | ||
| 24343 | @@ -0,0 +1,1653 @@ | ||
| 24344 | +/* | ||
| 24345 | + * The main header file for SIP. | ||
| 24346 | + * | ||
| 24347 | + * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 24348 | + * | ||
| 24349 | + * This file is part of SIP. | ||
| 24350 | + * | ||
| 24351 | + * This copy of SIP is licensed for use under the terms of the SIP License | ||
| 24352 | + * Agreement. See the file LICENSE for more details. | ||
| 24353 | + * | ||
| 24354 | + * This copy of SIP may also used under the terms of the GNU General Public | ||
| 24355 | + * License v2 or v3 as published by the Free Software Foundation which can be | ||
| 24356 | + * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. | ||
| 24357 | + * | ||
| 24358 | + * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 24359 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 24360 | + */ | ||
| 24361 | + | ||
| 24362 | + | ||
| 24363 | +#ifndef SIP_H | ||
| 24364 | +#define SIP_H | ||
| 24365 | + | ||
| 24366 | +#include <stdio.h> | ||
| 24367 | +#include <sys/types.h> | ||
| 24368 | + | ||
| 24369 | + | ||
| 24370 | +/* | ||
| 24371 | + * Define the SIP version number. | ||
| 24372 | + */ | ||
| 24373 | +#define SIP_VERSION 0x@RM_HEXVERSION@ | ||
| 24374 | +#define SIP_VERSION_STR "@RM_RELEASE@" | ||
| 24375 | + | ||
| 24376 | + | ||
| 24377 | +#ifdef TRUE | ||
| 24378 | +#undef TRUE | ||
| 24379 | +#endif | ||
| 24380 | + | ||
| 24381 | +#ifdef FALSE | ||
| 24382 | +#undef FALSE | ||
| 24383 | +#endif | ||
| 24384 | + | ||
| 24385 | +#define TRUE 1 | ||
| 24386 | +#define FALSE 0 | ||
| 24387 | + | ||
| 24388 | + | ||
| 24389 | +/* Some convenient compiler extensions. */ | ||
| 24390 | + | ||
| 24391 | +#if defined(__GNUC__) | ||
| 24392 | +#define SIP_NORETURN __attribute__((__noreturn__)) | ||
| 24393 | +#define SIP_UNUSED __attribute__((__unused__)) | ||
| 24394 | +#elif defined(_MSC_VER) | ||
| 24395 | +#define SIP_NORETURN __declspec(noreturn) | ||
| 24396 | +#endif | ||
| 24397 | + | ||
| 24398 | +#if !defined(SIP_NORETURN) | ||
| 24399 | +#define SIP_NORETURN | ||
| 24400 | +#endif | ||
| 24401 | +#if !defined(SIP_UNUSED) | ||
| 24402 | +#define SIP_UNUSED | ||
| 24403 | +#endif | ||
| 24404 | + | ||
| 24405 | + | ||
| 24406 | +#define DEFAULT_OFILE_EXT ".o" /* Default object file extension. */ | ||
| 24407 | + | ||
| 24408 | +#define MAX_NR_ARGS 20 /* Max. nr. args. to a function or template. */ | ||
| 24409 | +#define MAX_NR_DEREFS 5 /* Max. nr. type derefences. */ | ||
| 24410 | + | ||
| 24411 | + | ||
| 24412 | +/* For convenience. */ | ||
| 24413 | + | ||
| 24414 | +#define classBaseName(cd) scopedNameTail((cd)->iff->fqcname) | ||
| 24415 | +#define classFQCName(cd) ((cd)->iff->fqcname) | ||
| 24416 | + | ||
| 24417 | +/* Return the Python scope corresponding to a C/C++ scope. */ | ||
| 24418 | +#define pyScope(c) ((c) != NULL && isHiddenNamespace(c) ? NULL : (c)) | ||
| 24419 | + | ||
| 24420 | + | ||
| 24421 | +/* Handle module flags. */ | ||
| 24422 | + | ||
| 24423 | +#define MOD_HAS_DELAYED_DTORS 0x0001 /* It has a class with a delayed dtor. */ | ||
| 24424 | +#define MOD_IS_CONSOLIDATED 0x0002 /* It is a consolidated module. */ | ||
| 24425 | +#define MOD_IS_COMPOSITE 0x0004 /* It is a composite module. */ | ||
| 24426 | +#define MOD_IS_TRANSFORMED 0x0008 /* It's types have been transformed. */ | ||
| 24427 | +#define MOD_USE_ARG_NAMES 0x0010 /* Use real argument names. */ | ||
| 24428 | +#define MOD_USE_LIMITED_API 0x0020 /* Use the limited API. */ | ||
| 24429 | +#define MOD_ALL_RAISE_PY_EXC 0x0040 /* All callable raise a Python exception. */ | ||
| 24430 | +#define MOD_SUPER_INIT_NO 0x0080 /* Don't call super().__init__(). */ | ||
| 24431 | +#define MOD_SUPER_INIT_YES 0x0100 /* Call super().__init__(). */ | ||
| 24432 | +#define MOD_SUPER_INIT_UNDEF 0x0000 /* Calling super().__init__() is undefined. */ | ||
| 24433 | +#define MOD_SUPER_INIT_MASK 0x0180 /* The mask for the above flags. */ | ||
| 24434 | +#define MOD_SETTING_IMPORTS 0x0200 /* Imports are being set. */ | ||
| 24435 | + | ||
| 24436 | +#define hasDelayedDtors(m) ((m)->modflags & MOD_HAS_DELAYED_DTORS) | ||
| 24437 | +#define setHasDelayedDtors(m) ((m)->modflags |= MOD_HAS_DELAYED_DTORS) | ||
| 24438 | +#define isConsolidated(m) ((m)->modflags & MOD_IS_CONSOLIDATED) | ||
| 24439 | +#define setIsConsolidated(m) ((m)->modflags |= MOD_IS_CONSOLIDATED) | ||
| 24440 | +#define isComposite(m) ((m)->modflags & MOD_IS_COMPOSITE) | ||
| 24441 | +#define setIsComposite(m) ((m)->modflags |= MOD_IS_COMPOSITE) | ||
| 24442 | +#define isContainer(m) ((m)->modflags & (MOD_IS_CONSOLIDATED | MOD_IS_COMPOSITE)) | ||
| 24443 | +#define setIsTransformed(m) ((m)->modflags |= MOD_IS_TRANSFORMED) | ||
| 24444 | +#define isTransformed(m) ((m)->modflags & MOD_IS_TRANSFORMED) | ||
| 24445 | +#define setUseArgNames(m) ((m)->modflags |= MOD_USE_ARG_NAMES) | ||
| 24446 | +#define useArgNames(m) ((m)->modflags & MOD_USE_ARG_NAMES) | ||
| 24447 | +#define setUseLimitedAPI(m) ((m)->modflags |= MOD_USE_LIMITED_API) | ||
| 24448 | +#define useLimitedAPI(m) ((m)->modflags & MOD_USE_LIMITED_API) | ||
| 24449 | +#define setAllRaisePyException(m) ((m)->modflags |= MOD_ALL_RAISE_PY_EXC) | ||
| 24450 | +#define allRaisePyException(m) ((m)->modflags & MOD_ALL_RAISE_PY_EXC) | ||
| 24451 | +#define setCallSuperInitNo(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_NO) | ||
| 24452 | +#define setCallSuperInitYes(m) ((m)->modflags = ((m)->modflags & ~MOD_SUPER_INIT_MASK) | MOD_SUPER_INIT_YES) | ||
| 24453 | +#define isCallSuperInitYes(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_YES) | ||
| 24454 | +#define isCallSuperInitUndefined(m) (((m)->modflags & MOD_SUPER_INIT_MASK) == MOD_SUPER_INIT_UNDEF) | ||
| 24455 | +#define settingImports(m) ((m)->modflags & MOD_SETTING_IMPORTS) | ||
| 24456 | +#define setSettingImports(m) ((m)->modflags |= MOD_SETTING_IMPORTS) | ||
| 24457 | +#define resetSettingImports(m) ((m)->modflags &= ~MOD_SETTING_IMPORTS) | ||
| 24458 | + | ||
| 24459 | + | ||
| 24460 | +/* Handle section flags. */ | ||
| 24461 | + | ||
| 24462 | +#define SECT_IS_PUBLIC 0x01 /* It is public. */ | ||
| 24463 | +#define SECT_IS_PROT 0x02 /* It is protected. */ | ||
| 24464 | +#define SECT_IS_PRIVATE 0x04 /* It is private. */ | ||
| 24465 | +#define SECT_IS_SLOT 0x08 /* It is a slot. */ | ||
| 24466 | +#define SECT_IS_SIGNAL 0x10 /* It is a signal. */ | ||
| 24467 | +#define SECT_MASK 0x1f /* The mask of all flags. */ | ||
| 24468 | + | ||
| 24469 | + | ||
| 24470 | +/* Handle class flags. These are combined with the section flags. */ | ||
| 24471 | + | ||
| 24472 | +#define CLASS_HAS_SIGSLOTS 0x00000200 /* It has signals or slots. */ | ||
| 24473 | +#define CLASS_IS_ABSTRACT 0x00000400 /* It is an abstract class. */ | ||
| 24474 | +#define CLASS_HAS_SHADOW 0x00000800 /* It is has a shadow class. */ | ||
| 24475 | +#define CLASS_IS_OPAQUE 0x00001000 /* It is opaque. */ | ||
| 24476 | +#define CLASS_HAS_VAR_HANDLERS 0x00002000 /* It has variable handlers. */ | ||
| 24477 | +#define CLASS_DTOR_RELEASE_GIL 0x00004000 /* The dtor releases the GIL. */ | ||
| 24478 | +#define CLASS_IS_PROTECTED 0x00008000 /* It is protected. */ | ||
| 24479 | +#define CLASS_IS_PROTECTED_SAV 0x00010000 /* It is protected (saved). */ | ||
| 24480 | +#define CLASS_IS_INCOMPLETE 0x00020000 /* The specification is incomplete. */ | ||
| 24481 | +#define CLASS_CAN_CREATE 0x00040000 /* It has usable ctors. */ | ||
| 24482 | +#define CLASS_IS_EXTERNAL 0x00080000 /* It is external. */ | ||
| 24483 | +#define CLASS_IS_DELAYED_DTOR 0x00100000 /* The dtor is delayed. */ | ||
| 24484 | +#define CLASS_NO_DEFAULT_CTORS 0x00200000 /* Don't create default ctors. */ | ||
| 24485 | +#define CLASS_QOBJECT_SUB 0x00400000 /* It is derived from QObject. */ | ||
| 24486 | +#define CLASS_DTOR_HOLD_GIL 0x00800000 /* The dtor holds the GIL. */ | ||
| 24487 | +#define CLASS_ASSIGN_HELPER 0x01000000 /* Generate an assignment helper. */ | ||
| 24488 | +#define CLASS_NO_QMETAOBJECT 0x02000000 /* It has no QMetaObject. */ | ||
| 24489 | +#define CLASS_IS_TEMPLATE 0x04000000 /* It is a template class. */ | ||
| 24490 | +#define CLASS_IS_DEPRECATED 0x08000000 /* It is deprecated. */ | ||
| 24491 | +#define CLASS_CANNOT_COPY 0x10000000 /* It cannot be copied. */ | ||
| 24492 | +#define CLASS_CANNOT_ASSIGN 0x20000000 /* It cannot be assigned. */ | ||
| 24493 | +#define CLASS_ALLOW_NONE 0x40000000 /* The class will handle None. */ | ||
| 24494 | +#define CLASS_HAS_NONLAZY 0x80000000 /* The class has non-lazy methods. */ | ||
| 24495 | + | ||
| 24496 | +#define hasSigSlots(cd) ((cd)->classflags & CLASS_HAS_SIGSLOTS) | ||
| 24497 | +#define setHasSigSlots(cd) ((cd)->classflags |= CLASS_HAS_SIGSLOTS) | ||
| 24498 | +#define isAbstractClass(cd) ((cd)->classflags & CLASS_IS_ABSTRACT) | ||
| 24499 | +#define setIsAbstractClass(cd) ((cd)->classflags |= CLASS_IS_ABSTRACT) | ||
| 24500 | +#define hasShadow(cd) ((cd)->classflags & CLASS_HAS_SHADOW) | ||
| 24501 | +#define setHasShadow(cd) ((cd)->classflags |= CLASS_HAS_SHADOW) | ||
| 24502 | +#define resetHasShadow(cd) ((cd)->classflags &= ~CLASS_HAS_SHADOW) | ||
| 24503 | +#define isOpaque(cd) ((cd)->classflags & CLASS_IS_OPAQUE) | ||
| 24504 | +#define setIsOpaque(cd) ((cd)->classflags |= CLASS_IS_OPAQUE) | ||
| 24505 | +#define hasVarHandlers(cd) ((cd)->classflags & CLASS_HAS_VAR_HANDLERS) | ||
| 24506 | +#define setHasVarHandlers(cd) ((cd)->classflags |= CLASS_HAS_VAR_HANDLERS) | ||
| 24507 | +#define isProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED) | ||
| 24508 | +#define setIsProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED) | ||
| 24509 | +#define resetIsProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED) | ||
| 24510 | +#define wasProtectedClass(cd) ((cd)->classflags & CLASS_IS_PROTECTED_SAV) | ||
| 24511 | +#define setWasProtectedClass(cd) ((cd)->classflags |= CLASS_IS_PROTECTED_SAV) | ||
| 24512 | +#define resetWasProtectedClass(cd) ((cd)->classflags &= ~CLASS_IS_PROTECTED_SAV) | ||
| 24513 | +#define isReleaseGILDtor(cd) ((cd)->classflags & CLASS_DTOR_RELEASE_GIL) | ||
| 24514 | +#define setIsReleaseGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_RELEASE_GIL) | ||
| 24515 | +#define isIncomplete(cd) ((cd)->classflags & CLASS_IS_INCOMPLETE) | ||
| 24516 | +#define setIsIncomplete(cd) ((cd)->classflags |= CLASS_IS_INCOMPLETE) | ||
| 24517 | +#define canCreate(cd) ((cd)->classflags & CLASS_CAN_CREATE) | ||
| 24518 | +#define setCanCreate(cd) ((cd)->classflags |= CLASS_CAN_CREATE) | ||
| 24519 | +#define resetCanCreate(cd) ((cd)->classflags &= ~CLASS_CAN_CREATE) | ||
| 24520 | +#define isExternal(cd) ((cd)->classflags & CLASS_IS_EXTERNAL) | ||
| 24521 | +#define setIsExternal(cd) ((cd)->classflags |= CLASS_IS_EXTERNAL) | ||
| 24522 | +#define isDelayedDtor(cd) ((cd)->classflags & CLASS_IS_DELAYED_DTOR) | ||
| 24523 | +#define setIsDelayedDtor(cd) ((cd)->classflags |= CLASS_IS_DELAYED_DTOR) | ||
| 24524 | +#define noDefaultCtors(cd) ((cd)->classflags & CLASS_NO_DEFAULT_CTORS) | ||
| 24525 | +#define setNoDefaultCtors(cd) ((cd)->classflags |= CLASS_NO_DEFAULT_CTORS) | ||
| 24526 | +#define isQObjectSubClass(cd) ((cd)->classflags & CLASS_QOBJECT_SUB) | ||
| 24527 | +#define setIsQObjectSubClass(cd) ((cd)->classflags |= CLASS_QOBJECT_SUB) | ||
| 24528 | +#define isHoldGILDtor(cd) ((cd)->classflags & CLASS_DTOR_HOLD_GIL) | ||
| 24529 | +#define setIsHoldGILDtor(cd) ((cd)->classflags |= CLASS_DTOR_HOLD_GIL) | ||
| 24530 | +#define assignmentHelper(cd) ((cd)->classflags & CLASS_ASSIGN_HELPER) | ||
| 24531 | +#define setAssignmentHelper(cd) ((cd)->classflags |= CLASS_ASSIGN_HELPER) | ||
| 24532 | +#define noPyQtQMetaObject(cd) ((cd)->classflags & CLASS_NO_QMETAOBJECT) | ||
| 24533 | +#define setPyQtNoQMetaObject(cd) ((cd)->classflags |= CLASS_NO_QMETAOBJECT) | ||
| 24534 | +#define isTemplateClass(cd) ((cd)->classflags & CLASS_IS_TEMPLATE) | ||
| 24535 | +#define setIsTemplateClass(cd) ((cd)->classflags |= CLASS_IS_TEMPLATE) | ||
| 24536 | +#define resetIsTemplateClass(cd) ((cd)->classflags &= ~CLASS_IS_TEMPLATE) | ||
| 24537 | +#define isDeprecatedClass(cd) ((cd)->classflags & CLASS_IS_DEPRECATED) | ||
| 24538 | +#define setIsDeprecatedClass(cd) ((cd)->classflags |= CLASS_IS_DEPRECATED) | ||
| 24539 | +#define cannotCopy(cd) ((cd)->classflags & CLASS_CANNOT_COPY) | ||
| 24540 | +#define setCannotCopy(cd) ((cd)->classflags |= CLASS_CANNOT_COPY) | ||
| 24541 | +#define cannotAssign(cd) ((cd)->classflags & CLASS_CANNOT_ASSIGN) | ||
| 24542 | +#define setCannotAssign(cd) ((cd)->classflags |= CLASS_CANNOT_ASSIGN) | ||
| 24543 | +#define classHandlesNone(cd) ((cd)->classflags & CLASS_ALLOW_NONE) | ||
| 24544 | +#define setClassHandlesNone(cd) ((cd)->classflags |= CLASS_ALLOW_NONE) | ||
| 24545 | +#define hasNonlazyMethod(cd) ((cd)->classflags & CLASS_HAS_NONLAZY) | ||
| 24546 | +#define setHasNonlazyMethod(cd) ((cd)->classflags |= CLASS_HAS_NONLAZY) | ||
| 24547 | + | ||
| 24548 | +#define isPublicDtor(cd) ((cd)->classflags & SECT_IS_PUBLIC) | ||
| 24549 | +#define setIsPublicDtor(cd) ((cd)->classflags |= SECT_IS_PUBLIC) | ||
| 24550 | +#define isProtectedDtor(cd) ((cd)->classflags & SECT_IS_PROT) | ||
| 24551 | +#define isPrivateDtor(cd) ((cd)->classflags & SECT_IS_PRIVATE) | ||
| 24552 | + | ||
| 24553 | +#define isDtor(cd) ((cd)->classflags & (SECT_IS_PUBLIC | SECT_IS_PROT | SECT_IS_PRIVATE)) | ||
| 24554 | + | ||
| 24555 | + | ||
| 24556 | +/* Handle the second group of class flags. */ | ||
| 24557 | + | ||
| 24558 | +#define CLASS2_TMPL_ARG 0x01 /* The class is a template argument. */ | ||
| 24559 | +#define CLASS2_MIXIN 0x02 /* The class is a mixin. */ | ||
| 24560 | +#define CLASS2_EXPORT_DERIVED 0x04 /* Export the derived class declaration. */ | ||
| 24561 | +#define CLASS2_HIDDEN_NS 0x08 /* The namespace is hidden. */ | ||
| 24562 | +#define CLASS2_USE_TMPL_NAME 0x10 /* Use the template name. */ | ||
| 24563 | +#define CLASS2_NEEDS_SHADOW 0x20 /* The class needs a shadow class. */ | ||
| 24564 | + | ||
| 24565 | +#define isTemplateArg(cd) ((cd)->classflags2 & CLASS2_TMPL_ARG) | ||
| 24566 | +#define setTemplateArg(cd) ((cd)->classflags2 |= CLASS2_TMPL_ARG) | ||
| 24567 | +#define resetTemplateArg(cd) ((cd)->classflags2 &= ~CLASS2_TMPL_ARG) | ||
| 24568 | +#define isMixin(cd) ((cd)->classflags2 & CLASS2_MIXIN) | ||
| 24569 | +#define setMixin(cd) ((cd)->classflags2 |= CLASS2_MIXIN) | ||
| 24570 | +#define isExportDerived(cd) ((cd)->classflags2 & CLASS2_EXPORT_DERIVED) | ||
| 24571 | +#define setExportDerived(cd) ((cd)->classflags2 |= CLASS2_EXPORT_DERIVED) | ||
| 24572 | +#define isHiddenNamespace(cd) ((cd)->classflags2 & CLASS2_HIDDEN_NS) | ||
| 24573 | +#define setHiddenNamespace(cd) ((cd)->classflags2 |= CLASS2_HIDDEN_NS) | ||
| 24574 | +#define useTemplateName(cd) ((cd)->classflags2 & CLASS2_USE_TMPL_NAME) | ||
| 24575 | +#define setUseTemplateName(cd) ((cd)->classflags2 |= CLASS2_USE_TMPL_NAME) | ||
| 24576 | +#define needsShadow(cd) ((cd)->classflags & CLASS2_NEEDS_SHADOW) | ||
| 24577 | +#define setNeedsShadow(cd) ((cd)->classflags |= CLASS2_NEEDS_SHADOW) | ||
| 24578 | + | ||
| 24579 | + | ||
| 24580 | +/* Handle ctor flags. These are combined with the section flags. */ | ||
| 24581 | + | ||
| 24582 | +#define CTOR_RELEASE_GIL 0x00000100 /* The ctor releases the GIL. */ | ||
| 24583 | +#define CTOR_EXPLICIT 0x00000200 /* The ctor is explicit. */ | ||
| 24584 | +#define CTOR_CAST 0x00000400 /* The ctor is a cast. */ | ||
| 24585 | +#define CTOR_HOLD_GIL 0x00000800 /* The ctor holds the GIL. */ | ||
| 24586 | +#define CTOR_XFERRED 0x00001000 /* Ownership is transferred. */ | ||
| 24587 | +#define CTOR_IS_DEPRECATED 0x00002000 /* The ctor is deprecated. */ | ||
| 24588 | +#define CTOR_RAISES_PY_EXC 0x00004000 /* It raises a Python exception. */ | ||
| 24589 | + | ||
| 24590 | +#define isPublicCtor(c) ((c)->ctorflags & SECT_IS_PUBLIC) | ||
| 24591 | +#define setIsPublicCtor(c) ((c)->ctorflags |= SECT_IS_PUBLIC) | ||
| 24592 | +#define isProtectedCtor(c) ((c)->ctorflags & SECT_IS_PROT) | ||
| 24593 | +#define setIsProtectedCtor(c) ((c)->ctorflags |= SECT_IS_PROT) | ||
| 24594 | +#define isPrivateCtor(c) ((c)->ctorflags & SECT_IS_PRIVATE) | ||
| 24595 | +#define setIsPrivateCtor(c) ((c)->ctorflags |= SECT_IS_PRIVATE) | ||
| 24596 | + | ||
| 24597 | +#define isReleaseGILCtor(c) ((c)->ctorflags & CTOR_RELEASE_GIL) | ||
| 24598 | +#define setIsReleaseGILCtor(c) ((c)->ctorflags |= CTOR_RELEASE_GIL) | ||
| 24599 | +#define isExplicitCtor(c) ((c)->ctorflags & CTOR_EXPLICIT) | ||
| 24600 | +#define setIsExplicitCtor(c) ((c)->ctorflags |= CTOR_EXPLICIT) | ||
| 24601 | +#define isCastCtor(c) ((c)->ctorflags & CTOR_CAST) | ||
| 24602 | +#define isHoldGILCtor(c) ((c)->ctorflags & CTOR_HOLD_GIL) | ||
| 24603 | +#define setIsHoldGILCtor(c) ((c)->ctorflags |= CTOR_HOLD_GIL) | ||
| 24604 | +#define isResultTransferredCtor(c) ((c)->ctorflags & CTOR_XFERRED) | ||
| 24605 | +#define setIsResultTransferredCtor(c) ((c)->ctorflags |= CTOR_XFERRED) | ||
| 24606 | +#define isDeprecatedCtor(c) ((c)->ctorflags & CTOR_IS_DEPRECATED) | ||
| 24607 | +#define setIsDeprecatedCtor(c) ((c)->ctorflags |= CTOR_IS_DEPRECATED) | ||
| 24608 | +#define raisesPyExceptionCtor(c) ((c)->ctorflags & CTOR_RAISES_PY_EXC) | ||
| 24609 | +#define setRaisesPyExceptionCtor(c) ((c)->ctorflags |= CTOR_RAISES_PY_EXC) | ||
| 24610 | + | ||
| 24611 | + | ||
| 24612 | +/* Handle member flags. */ | ||
| 24613 | + | ||
| 24614 | +#define MEMBR_NUMERIC 0x0001 /* It is a numeric slot. */ | ||
| 24615 | +#define MEMBR_SEQUENCE 0x0002 /* It is a sequnce slot. */ | ||
| 24616 | +#define MEMBR_NO_ARG_PARSER 0x0004 /* Don't generate an argument parser. */ | ||
| 24617 | +#define MEMBR_NOT_VERSIONED 0x0008 /* There is an unversioned overload. */ | ||
| 24618 | +#define MEMBR_KEYWORD_ARGS 0x0010 /* It allows keyword arguments. */ | ||
| 24619 | +#define MEMBR_HAS_PROTECTED 0x0011 /* It has a protected overload. */ | ||
| 24620 | + | ||
| 24621 | +#define isNumeric(m) ((m)->memberflags & MEMBR_NUMERIC) | ||
| 24622 | +#define setIsNumeric(m) ((m)->memberflags |= MEMBR_NUMERIC) | ||
| 24623 | +#define isSequence(m) ((m)->memberflags & MEMBR_SEQUENCE) | ||
| 24624 | +#define setIsSequence(m) ((m)->memberflags |= MEMBR_SEQUENCE) | ||
| 24625 | +#define noArgParser(m) ((m)->memberflags & MEMBR_NO_ARG_PARSER) | ||
| 24626 | +#define setNoArgParser(m) ((m)->memberflags |= MEMBR_NO_ARG_PARSER) | ||
| 24627 | +#define notVersioned(m) ((m)->memberflags & MEMBR_NOT_VERSIONED) | ||
| 24628 | +#define setNotVersioned(m) ((m)->memberflags |= MEMBR_NOT_VERSIONED) | ||
| 24629 | +#define useKeywordArgs(m) ((m)->memberflags & MEMBR_KEYWORD_ARGS) | ||
| 24630 | +#define setUseKeywordArgs(m) ((m)->memberflags |= MEMBR_KEYWORD_ARGS) | ||
| 24631 | +#define hasProtected(m) ((m)->memberflags & MEMBR_HAS_PROTECTED) | ||
| 24632 | +#define setHasProtected(m) ((m)->memberflags |= MEMBR_HAS_PROTECTED) | ||
| 24633 | + | ||
| 24634 | + | ||
| 24635 | +/* Handle enum flags. These are combined with the section flags. */ | ||
| 24636 | + | ||
| 24637 | +#define ENUM_WAS_PROT 0x00000100 /* It was defined as protected. */ | ||
| 24638 | +#define ENUM_NO_SCOPE 0x00000200 /* Omit the member scopes. */ | ||
| 24639 | +#define ENUM_NEEDS_ENUM 0x00000400 /* The module needs it. */ | ||
| 24640 | +#define ENUM_SCOPED 0x00000800 /* A C++0x11 scoped enum. */ | ||
| 24641 | + | ||
| 24642 | +#define isProtectedEnum(e) ((e)->enumflags & SECT_IS_PROT) | ||
| 24643 | +#define setIsProtectedEnum(e) ((e)->enumflags |= SECT_IS_PROT) | ||
| 24644 | +#define resetIsProtectedEnum(e) ((e)->enumflags &= ~SECT_IS_PROT) | ||
| 24645 | + | ||
| 24646 | +#define wasProtectedEnum(e) ((e)->enumflags & ENUM_WAS_PROT) | ||
| 24647 | +#define setWasProtectedEnum(e) ((e)->enumflags |= ENUM_WAS_PROT) | ||
| 24648 | +#define resetWasProtectedEnum(e) ((e)->enumflags &= ~ENUM_WAS_PROT) | ||
| 24649 | +#define isNoScope(e) ((e)->enumflags & ENUM_NO_SCOPE) | ||
| 24650 | +#define setIsNoScope(e) ((e)->enumflags |= ENUM_NO_SCOPE) | ||
| 24651 | +#define needsEnum(e) ((e)->enumflags & ENUM_NEEDS_ENUM) | ||
| 24652 | +#define setNeedsEnum(e) ((e)->enumflags |= ENUM_NEEDS_ENUM) | ||
| 24653 | +#define isScopedEnum(e) ((e)->enumflags & ENUM_SCOPED) | ||
| 24654 | +#define setIsScopedEnum(e) ((e)->enumflags |= ENUM_SCOPED) | ||
| 24655 | + | ||
| 24656 | + | ||
| 24657 | +/* Handle hierarchy flags. */ | ||
| 24658 | + | ||
| 24659 | +#define HIER_IS_DUPLICATE 0x0001 /* It is a super class duplicate. */ | ||
| 24660 | +#define HIER_HAS_DUPLICATE 0x0002 /* It has a super class duplicate. */ | ||
| 24661 | +#define HIER_BEING_SET 0x0004 /* The MRO is being set. */ | ||
| 24662 | + | ||
| 24663 | +#define isDuplicateSuper(m) ((m)->mroflags & HIER_IS_DUPLICATE) | ||
| 24664 | +#define setIsDuplicateSuper(m) ((m)->mroflags |= HIER_IS_DUPLICATE) | ||
| 24665 | +#define hasDuplicateSuper(m) ((m)->mroflags & HIER_HAS_DUPLICATE) | ||
| 24666 | +#define setHasDuplicateSuper(m) ((m)->mroflags |= HIER_HAS_DUPLICATE) | ||
| 24667 | +#define hierBeingSet(m) ((m)->mroflags & HIER_BEING_SET) | ||
| 24668 | +#define setHierBeingSet(m) ((m)->mroflags |= HIER_BEING_SET) | ||
| 24669 | +#define resetHierBeingSet(m) ((m)->mroflags &= ~HIER_BEING_SET) | ||
| 24670 | + | ||
| 24671 | + | ||
| 24672 | +/* Handle overload flags. These are combined with the section flags. */ | ||
| 24673 | + | ||
| 24674 | +#define OVER_IS_VIRTUAL 0x00000100 /* It is virtual. */ | ||
| 24675 | +#define OVER_IS_ABSTRACT 0x00000200 /* It is abstract. */ | ||
| 24676 | +#define OVER_IS_CONST 0x00000400 /* It is a const function. */ | ||
| 24677 | +#define OVER_IS_STATIC 0x00000800 /* It is a static function. */ | ||
| 24678 | +#define OVER_IS_AUTOGEN 0x00001000 /* It is auto-generated. */ | ||
| 24679 | +#define OVER_IS_NEW_THREAD 0x00002000 /* It is in a new thread. */ | ||
| 24680 | +#define OVER_IS_FACTORY 0x00004000 /* It is a factory method. */ | ||
| 24681 | +#define OVER_XFERRED_BACK 0x00008000 /* Ownership is transferred back. */ | ||
| 24682 | +#define OVER_XFERRED 0x00010000 /* Ownership is transferred. */ | ||
| 24683 | +#define OVER_IS_VIRTUAL_REIMP 0x00020000 /* It is a re-implementation of a virtual. */ | ||
| 24684 | +#define OVER_DONT_DEREF_SELF 0x00040000 /* For comparison operators, don't dereference self. */ | ||
| 24685 | +#define OVER_HOLD_GIL 0x00080000 /* The function holds the GIL. */ | ||
| 24686 | +#define OVER_RELEASE_GIL 0x00100000 /* The function releases the GIL. */ | ||
| 24687 | +#define OVER_THIS_XFERRED 0x00200000 /* Ownership of this is transferred. */ | ||
| 24688 | +#define OVER_IS_GLOBAL 0x00400000 /* It is a global operator. */ | ||
| 24689 | +#define OVER_IS_COMPLEMENTARY 0x00800000 /* It is a complementary operator. */ | ||
| 24690 | +#define OVER_IS_DEPRECATED 0x01000000 /* It is deprecated. */ | ||
| 24691 | +#define OVER_REALLY_PROT 0x02000000 /* It really is protected. */ | ||
| 24692 | +#define OVER_IS_DELATTR 0x04000000 /* It is __delattr__. */ | ||
| 24693 | +#define OVER_RAISES_PY_EXC 0x08000000 /* It raises a Python exception. */ | ||
| 24694 | +#define OVER_NO_ERROR_HANDLER 0x10000000 /* It doesn't use a virtual error handler. */ | ||
| 24695 | +#define OVER_ABORT_ON_EXC 0x20000000 /* It aborts on an exception. */ | ||
| 24696 | +#define OVER_IS_FINAL 0x40000000 /* It is a final method. */ | ||
| 24697 | + | ||
| 24698 | +#define isPublic(o) ((o)->overflags & SECT_IS_PUBLIC) | ||
| 24699 | +#define setIsPublic(o) ((o)->overflags |= SECT_IS_PUBLIC) | ||
| 24700 | +#define isProtected(o) ((o)->overflags & SECT_IS_PROT) | ||
| 24701 | +#define setIsProtected(o) ((o)->overflags |= SECT_IS_PROT) | ||
| 24702 | +#define isPrivate(o) ((o)->overflags & SECT_IS_PRIVATE) | ||
| 24703 | +#define setIsPrivate(o) ((o)->overflags |= SECT_IS_PRIVATE) | ||
| 24704 | +#define isSlot(o) ((o)->overflags & SECT_IS_SLOT) | ||
| 24705 | +#define setIsSlot(o) ((o)->overflags |= SECT_IS_SLOT) | ||
| 24706 | +#define resetIsSlot(o) ((o)->overflags &= ~SECT_IS_SLOT) | ||
| 24707 | +#define isSignal(o) ((o)->overflags & SECT_IS_SIGNAL) | ||
| 24708 | +#define setIsSignal(o) ((o)->overflags |= SECT_IS_SIGNAL) | ||
| 24709 | +#define resetIsSignal(o) ((o)->overflags &= ~SECT_IS_SIGNAL) | ||
| 24710 | + | ||
| 24711 | +#define isVirtual(o) ((o)->overflags & OVER_IS_VIRTUAL) | ||
| 24712 | +#define setIsVirtual(o) ((o)->overflags |= OVER_IS_VIRTUAL) | ||
| 24713 | +#define resetIsVirtual(o) ((o)->overflags &= ~OVER_IS_VIRTUAL) | ||
| 24714 | +#define isAbstract(o) ((o)->overflags & OVER_IS_ABSTRACT) | ||
| 24715 | +#define setIsAbstract(o) ((o)->overflags |= OVER_IS_ABSTRACT) | ||
| 24716 | +#define isConst(o) ((o)->overflags & OVER_IS_CONST) | ||
| 24717 | +#define setIsConst(o) ((o)->overflags |= OVER_IS_CONST) | ||
| 24718 | +#define isStatic(o) ((o)->overflags & OVER_IS_STATIC) | ||
| 24719 | +#define setIsStatic(o) ((o)->overflags |= OVER_IS_STATIC) | ||
| 24720 | +#define isAutoGen(o) ((o)->overflags & OVER_IS_AUTOGEN) | ||
| 24721 | +#define setIsAutoGen(o) ((o)->overflags |= OVER_IS_AUTOGEN) | ||
| 24722 | +#define resetIsAutoGen(o) ((o)->overflags &= ~OVER_IS_AUTOGEN) | ||
| 24723 | +#define isNewThread(o) ((o)->overflags & OVER_IS_NEW_THREAD) | ||
| 24724 | +#define setIsNewThread(o) ((o)->overflags |= OVER_IS_NEW_THREAD) | ||
| 24725 | +#define isFactory(o) ((o)->overflags & OVER_IS_FACTORY) | ||
| 24726 | +#define setIsFactory(o) ((o)->overflags |= OVER_IS_FACTORY) | ||
| 24727 | +#define isResultTransferredBack(o) ((o)->overflags & OVER_XFERRED_BACK) | ||
| 24728 | +#define setIsResultTransferredBack(o) ((o)->overflags |= OVER_XFERRED_BACK) | ||
| 24729 | +#define isResultTransferred(o) ((o)->overflags & OVER_XFERRED) | ||
| 24730 | +#define setIsResultTransferred(o) ((o)->overflags |= OVER_XFERRED) | ||
| 24731 | +#define isVirtualReimp(o) ((o)->overflags & OVER_IS_VIRTUAL_REIMP) | ||
| 24732 | +#define setIsVirtualReimp(o) ((o)->overflags |= OVER_IS_VIRTUAL_REIMP) | ||
| 24733 | +#define dontDerefSelf(o) ((o)->overflags & OVER_DONT_DEREF_SELF) | ||
| 24734 | +#define setDontDerefSelf(o) ((o)->overflags |= OVER_DONT_DEREF_SELF) | ||
| 24735 | +#define isHoldGIL(o) ((o)->overflags & OVER_HOLD_GIL) | ||
| 24736 | +#define setIsHoldGIL(o) ((o)->overflags |= OVER_HOLD_GIL) | ||
| 24737 | +#define isReleaseGIL(o) ((o)->overflags & OVER_RELEASE_GIL) | ||
| 24738 | +#define setIsReleaseGIL(o) ((o)->overflags |= OVER_RELEASE_GIL) | ||
| 24739 | +#define isThisTransferredMeth(o) ((o)->overflags & OVER_THIS_XFERRED) | ||
| 24740 | +#define setIsThisTransferredMeth(o) ((o)->overflags |= OVER_THIS_XFERRED) | ||
| 24741 | +#define isGlobal(o) ((o)->overflags & OVER_IS_GLOBAL) | ||
| 24742 | +#define setIsGlobal(o) ((o)->overflags |= OVER_IS_GLOBAL) | ||
| 24743 | +#define isComplementary(o) ((o)->overflags & OVER_IS_COMPLEMENTARY) | ||
| 24744 | +#define setIsComplementary(o) ((o)->overflags |= OVER_IS_COMPLEMENTARY) | ||
| 24745 | +#define isDeprecated(o) ((o)->overflags & OVER_IS_DEPRECATED) | ||
| 24746 | +#define setIsDeprecated(o) ((o)->overflags |= OVER_IS_DEPRECATED) | ||
| 24747 | +#define isReallyProtected(o) ((o)->overflags & OVER_REALLY_PROT) | ||
| 24748 | +#define setIsReallyProtected(o) ((o)->overflags |= OVER_REALLY_PROT) | ||
| 24749 | +#define isDelattr(o) ((o)->overflags & OVER_IS_DELATTR) | ||
| 24750 | +#define setIsDelattr(o) ((o)->overflags |= OVER_IS_DELATTR) | ||
| 24751 | +#define raisesPyException(o) ((o)->overflags & OVER_RAISES_PY_EXC) | ||
| 24752 | +#define setRaisesPyException(o) ((o)->overflags |= OVER_RAISES_PY_EXC) | ||
| 24753 | +#define noErrorHandler(o) ((o)->overflags & OVER_NO_ERROR_HANDLER) | ||
| 24754 | +#define setNoErrorHandler(o) ((o)->overflags |= OVER_NO_ERROR_HANDLER) | ||
| 24755 | +#define abortOnException(o) ((o)->overflags & OVER_ABORT_ON_EXC) | ||
| 24756 | +#define setAbortOnException(o) ((o)->overflags |= OVER_ABORT_ON_EXC) | ||
| 24757 | +#define isFinal(o) ((o)->overflags & OVER_IS_FINAL) | ||
| 24758 | +#define setIsFinal(o) ((o)->overflags |= OVER_IS_FINAL) | ||
| 24759 | + | ||
| 24760 | + | ||
| 24761 | +/* Handle variable flags. */ | ||
| 24762 | + | ||
| 24763 | +#define VAR_IS_STATIC 0x01 /* It is a static variable. */ | ||
| 24764 | +#define VAR_NEEDS_HANDLER 0x02 /* The variable needs a handler. */ | ||
| 24765 | +#define VAR_NO_SETTER 0x04 /* The variable has no setter. */ | ||
| 24766 | + | ||
| 24767 | +#define isStaticVar(v) ((v)->varflags & VAR_IS_STATIC) | ||
| 24768 | +#define setIsStaticVar(v) ((v)->varflags |= VAR_IS_STATIC) | ||
| 24769 | +#define needsHandler(v) ((v)->varflags & VAR_NEEDS_HANDLER) | ||
| 24770 | +#define setNeedsHandler(v) ((v)->varflags |= VAR_NEEDS_HANDLER) | ||
| 24771 | +#define noSetter(v) ((v)->varflags & VAR_NO_SETTER) | ||
| 24772 | +#define setNoSetter(v) ((v)->varflags |= VAR_NO_SETTER) | ||
| 24773 | + | ||
| 24774 | + | ||
| 24775 | +/* Handle argument flags. */ | ||
| 24776 | + | ||
| 24777 | +#define ARG_IS_REF 0x00000001 /* It is a reference. */ | ||
| 24778 | +#define ARG_IS_CONST 0x00000002 /* It is a const. */ | ||
| 24779 | +#define ARG_XFERRED 0x00000004 /* Ownership is transferred. */ | ||
| 24780 | +#define ARG_THIS_XFERRED 0x00000008 /* Ownership of this is transferred. */ | ||
| 24781 | +#define ARG_XFERRED_BACK 0x00000010 /* Ownership is transferred back. */ | ||
| 24782 | +#define ARG_ARRAY 0x00000020 /* Used as an array. */ | ||
| 24783 | +#define ARG_ARRAY_SIZE 0x00000040 /* Used as an array size. */ | ||
| 24784 | +#define ARG_ALLOW_NONE 0x00000080 /* Allow None as a value. */ | ||
| 24785 | +#define ARG_GET_WRAPPER 0x00000100 /* Get the wrapper object. */ | ||
| 24786 | +#define ARG_IN 0x00000200 /* It passes an argument. */ | ||
| 24787 | +#define ARG_OUT 0x00000400 /* It returns a result. */ | ||
| 24788 | +#define ARG_CONSTRAINED 0x00000800 /* Suppress type conversion. */ | ||
| 24789 | +#define ARG_SINGLE_SHOT 0x00001000 /* The slot is only ever fired once. */ | ||
| 24790 | +#define ARG_RESULT_SIZE 0x00002000 /* It defines the result size. */ | ||
| 24791 | +#define ARG_KEEP_REF 0x00004000 /* Keep a reference. */ | ||
| 24792 | +#define ARG_NO_COPY 0x00008000 /* Disable copying of const refs. */ | ||
| 24793 | +#define ARG_DISALLOW_NONE 0x00010000 /* Disallow None as a value. */ | ||
| 24794 | + | ||
| 24795 | +#define isReference(a) ((a)->argflags & ARG_IS_REF) | ||
| 24796 | +#define setIsReference(a) ((a)->argflags |= ARG_IS_REF) | ||
| 24797 | +#define resetIsReference(a) ((a)->argflags &= ~ARG_IS_REF) | ||
| 24798 | +#define isConstArg(a) ((a)->argflags & ARG_IS_CONST) | ||
| 24799 | +#define setIsConstArg(a) ((a)->argflags |= ARG_IS_CONST) | ||
| 24800 | +#define resetIsConstArg(a) ((a)->argflags &= ~ARG_IS_CONST) | ||
| 24801 | +#define isTransferred(a) ((a)->argflags & ARG_XFERRED) | ||
| 24802 | +#define setIsTransferred(a) ((a)->argflags |= ARG_XFERRED) | ||
| 24803 | +#define isThisTransferred(a) ((a)->argflags & ARG_THIS_XFERRED) | ||
| 24804 | +#define setIsThisTransferred(a) ((a)->argflags |= ARG_THIS_XFERRED) | ||
| 24805 | +#define isTransferredBack(a) ((a)->argflags & ARG_XFERRED_BACK) | ||
| 24806 | +#define setIsTransferredBack(a) ((a)->argflags |= ARG_XFERRED_BACK) | ||
| 24807 | +#define isArray(a) ((a)->argflags & ARG_ARRAY) | ||
| 24808 | +#define setArray(a) ((a)->argflags |= ARG_ARRAY) | ||
| 24809 | +#define isArraySize(a) ((a)->argflags & ARG_ARRAY_SIZE) | ||
| 24810 | +#define setArraySize(a) ((a)->argflags |= ARG_ARRAY_SIZE) | ||
| 24811 | +#define isAllowNone(a) ((a)->argflags & ARG_ALLOW_NONE) | ||
| 24812 | +#define setAllowNone(a) ((a)->argflags |= ARG_ALLOW_NONE) | ||
| 24813 | +#define isGetWrapper(a) ((a)->argflags & ARG_GET_WRAPPER) | ||
| 24814 | +#define setGetWrapper(a) ((a)->argflags |= ARG_GET_WRAPPER) | ||
| 24815 | +#define isInArg(a) ((a)->argflags & ARG_IN) | ||
| 24816 | +#define setIsInArg(a) ((a)->argflags |= ARG_IN) | ||
| 24817 | +#define isOutArg(a) ((a)->argflags & ARG_OUT) | ||
| 24818 | +#define setIsOutArg(a) ((a)->argflags |= ARG_OUT) | ||
| 24819 | +#define isConstrained(a) ((a)->argflags & ARG_CONSTRAINED) | ||
| 24820 | +#define setIsConstrained(a) ((a)->argflags |= ARG_CONSTRAINED) | ||
| 24821 | +#define resetIsConstrained(a) ((a)->argflags &= ~ARG_CONSTRAINED) | ||
| 24822 | +#define isSingleShot(a) ((a)->argflags & ARG_SINGLE_SHOT) | ||
| 24823 | +#define isResultSize(a) ((a)->argflags & ARG_RESULT_SIZE) | ||
| 24824 | +#define setResultSize(a) ((a)->argflags |= ARG_RESULT_SIZE) | ||
| 24825 | +#define keepReference(a) ((a)->argflags & ARG_KEEP_REF) | ||
| 24826 | +#define setKeepReference(a) ((a)->argflags |= ARG_KEEP_REF) | ||
| 24827 | +#define noCopy(a) ((a)->argflags & ARG_NO_COPY) | ||
| 24828 | +#define setNoCopy(a) ((a)->argflags |= ARG_NO_COPY) | ||
| 24829 | +#define isDisallowNone(a) ((a)->argflags & ARG_DISALLOW_NONE) | ||
| 24830 | +#define setDisallowNone(a) ((a)->argflags |= ARG_DISALLOW_NONE) | ||
| 24831 | + | ||
| 24832 | + | ||
| 24833 | +/* Handle name flags. */ | ||
| 24834 | + | ||
| 24835 | +#define NAME_IS_USED 0x01 /* It is used in the main module. */ | ||
| 24836 | +#define NAME_IS_SUBSTR 0x02 /* It is a substring of another. */ | ||
| 24837 | + | ||
| 24838 | +#define isUsedName(n) ((n)->nameflags & NAME_IS_USED) | ||
| 24839 | +#define setIsUsedName(n) ((n)->nameflags |= NAME_IS_USED) | ||
| 24840 | +#define resetIsUsedName(n) ((n)->nameflags &= ~NAME_IS_USED) | ||
| 24841 | +#define isSubstring(n) ((n)->nameflags & NAME_IS_SUBSTR) | ||
| 24842 | +#define setIsSubstring(n) ((n)->nameflags |= NAME_IS_SUBSTR) | ||
| 24843 | + | ||
| 24844 | + | ||
| 24845 | +/* Handle virtual handler flags. */ | ||
| 24846 | + | ||
| 24847 | +#define VH_TRANSFERS 0x01 /* It transfers ownership of the result. */ | ||
| 24848 | +#define VH_ABORT_ON_EXC 0x02 /* It aborts on an exception. */ | ||
| 24849 | + | ||
| 24850 | +#define isTransferVH(vh) ((vh)->vhflags & VH_TRANSFERS) | ||
| 24851 | +#define setIsTransferVH(vh) ((vh)->vhflags |= VH_TRANSFERS) | ||
| 24852 | +#define abortOnExceptionVH(vh) ((vh)->vhflags & VH_ABORT_ON_EXC) | ||
| 24853 | +#define setAbortOnExceptionVH(vh) ((vh)->vhflags |= VH_ABORT_ON_EXC) | ||
| 24854 | + | ||
| 24855 | + | ||
| 24856 | +/* Handle mapped type flags. */ | ||
| 24857 | + | ||
| 24858 | +#define MT_NO_RELEASE 0x01 /* Do not generate a release function. */ | ||
| 24859 | +#define MT_ALLOW_NONE 0x02 /* The mapped type will handle None. */ | ||
| 24860 | + | ||
| 24861 | +#define noRelease(mt) ((mt)->mtflags & MT_NO_RELEASE) | ||
| 24862 | +#define setNoRelease(mt) ((mt)->mtflags |= MT_NO_RELEASE) | ||
| 24863 | +#define handlesNone(mt) ((mt)->mtflags & MT_ALLOW_NONE) | ||
| 24864 | +#define setHandlesNone(mt) ((mt)->mtflags |= MT_ALLOW_NONE) | ||
| 24865 | + | ||
| 24866 | + | ||
| 24867 | +/* Handle typedef flags. */ | ||
| 24868 | + | ||
| 24869 | +#define TD_NO_TYPE_NAME 0x01 /* Do not use the typedef name. */ | ||
| 24870 | + | ||
| 24871 | +#define noTypeName(td) ((td)->tdflags & TD_NO_TYPE_NAME) | ||
| 24872 | +#define setNoTypeName(td) ((td)->tdflags |= TD_NO_TYPE_NAME) | ||
| 24873 | + | ||
| 24874 | + | ||
| 24875 | +/* Warning categories. */ | ||
| 24876 | +typedef enum { | ||
| 24877 | + ParserWarning, | ||
| 24878 | + DeprecationWarning | ||
| 24879 | +} Warning; | ||
| 24880 | + | ||
| 24881 | + | ||
| 24882 | +/* Docstring formatting. */ | ||
| 24883 | +typedef enum { | ||
| 24884 | + raw, | ||
| 24885 | + deindented | ||
| 24886 | +} Format; | ||
| 24887 | + | ||
| 24888 | + | ||
| 24889 | +/* Docstring signature positioning. */ | ||
| 24890 | +typedef enum { | ||
| 24891 | + discarded, | ||
| 24892 | + prepended, | ||
| 24893 | + appended | ||
| 24894 | +} Signature; | ||
| 24895 | + | ||
| 24896 | + | ||
| 24897 | +/* Levels of keyword argument support. */ | ||
| 24898 | +typedef enum { | ||
| 24899 | + NoKwArgs = 0, | ||
| 24900 | + AllKwArgs, | ||
| 24901 | + OptionalKwArgs | ||
| 24902 | +} KwArgs; | ||
| 24903 | + | ||
| 24904 | + | ||
| 24905 | +/* Slot types. */ | ||
| 24906 | +typedef enum { | ||
| 24907 | + str_slot, | ||
| 24908 | + int_slot, | ||
| 24909 | + long_slot, | ||
| 24910 | + float_slot, | ||
| 24911 | + len_slot, | ||
| 24912 | + contains_slot, | ||
| 24913 | + add_slot, | ||
| 24914 | + concat_slot, | ||
| 24915 | + sub_slot, | ||
| 24916 | + mul_slot, | ||
| 24917 | + repeat_slot, | ||
| 24918 | + div_slot, | ||
| 24919 | + mod_slot, | ||
| 24920 | + floordiv_slot, | ||
| 24921 | + truediv_slot, | ||
| 24922 | + and_slot, | ||
| 24923 | + or_slot, | ||
| 24924 | + xor_slot, | ||
| 24925 | + lshift_slot, | ||
| 24926 | + rshift_slot, | ||
| 24927 | + iadd_slot, | ||
| 24928 | + iconcat_slot, | ||
| 24929 | + isub_slot, | ||
| 24930 | + imul_slot, | ||
| 24931 | + irepeat_slot, | ||
| 24932 | + idiv_slot, | ||
| 24933 | + imod_slot, | ||
| 24934 | + ifloordiv_slot, | ||
| 24935 | + itruediv_slot, | ||
| 24936 | + iand_slot, | ||
| 24937 | + ior_slot, | ||
| 24938 | + ixor_slot, | ||
| 24939 | + ilshift_slot, | ||
| 24940 | + irshift_slot, | ||
| 24941 | + invert_slot, | ||
| 24942 | + call_slot, | ||
| 24943 | + getitem_slot, | ||
| 24944 | + setitem_slot, | ||
| 24945 | + delitem_slot, | ||
| 24946 | + lt_slot, | ||
| 24947 | + le_slot, | ||
| 24948 | + eq_slot, | ||
| 24949 | + ne_slot, | ||
| 24950 | + gt_slot, | ||
| 24951 | + ge_slot, | ||
| 24952 | + cmp_slot, | ||
| 24953 | + bool_slot, | ||
| 24954 | + neg_slot, | ||
| 24955 | + pos_slot, | ||
| 24956 | + abs_slot, | ||
| 24957 | + repr_slot, | ||
| 24958 | + hash_slot, | ||
| 24959 | + index_slot, | ||
| 24960 | + iter_slot, | ||
| 24961 | + next_slot, | ||
| 24962 | + setattr_slot, | ||
| 24963 | + delattr_slot, /* This is local to the parser. */ | ||
| 24964 | + matmul_slot, | ||
| 24965 | + imatmul_slot, | ||
| 24966 | + await_slot, | ||
| 24967 | + aiter_slot, | ||
| 24968 | + anext_slot, | ||
| 24969 | + no_slot | ||
| 24970 | +} slotType; | ||
| 24971 | + | ||
| 24972 | + | ||
| 24973 | +/* | ||
| 24974 | + * Argument types. Always add new ones at the end because the numeric values | ||
| 24975 | + * can appear in generated code. | ||
| 24976 | + */ | ||
| 24977 | +typedef enum { | ||
| 24978 | + no_type, | ||
| 24979 | + defined_type, | ||
| 24980 | + class_type, | ||
| 24981 | + struct_type, | ||
| 24982 | + void_type, | ||
| 24983 | + enum_type, | ||
| 24984 | + template_type, | ||
| 24985 | + signal_type, | ||
| 24986 | + slot_type, | ||
| 24987 | + rxcon_type, | ||
| 24988 | + rxdis_type, | ||
| 24989 | + slotcon_type, | ||
| 24990 | + slotdis_type, | ||
| 24991 | + ustring_type, | ||
| 24992 | + string_type, | ||
| 24993 | + short_type, | ||
| 24994 | + ushort_type, | ||
| 24995 | + cint_type, | ||
| 24996 | + int_type, | ||
| 24997 | + uint_type, | ||
| 24998 | + long_type, | ||
| 24999 | + ulong_type, | ||
| 25000 | + float_type, | ||
| 25001 | + cfloat_type, | ||
| 25002 | + double_type, | ||
| 25003 | + cdouble_type, | ||
| 25004 | + bool_type, | ||
| 25005 | + mapped_type, | ||
| 25006 | + pyobject_type, | ||
| 25007 | + pytuple_type, | ||
| 25008 | + pylist_type, | ||
| 25009 | + pydict_type, | ||
| 25010 | + pycallable_type, | ||
| 25011 | + pyslice_type, | ||
| 25012 | + qobject_type, | ||
| 25013 | + function_type, | ||
| 25014 | + pytype_type, | ||
| 25015 | + ellipsis_type, | ||
| 25016 | + longlong_type, | ||
| 25017 | + ulonglong_type, | ||
| 25018 | + anyslot_type, | ||
| 25019 | + cbool_type, | ||
| 25020 | + sstring_type, | ||
| 25021 | + wstring_type, | ||
| 25022 | + fake_void_type, | ||
| 25023 | + ssize_type, | ||
| 25024 | + ascii_string_type, | ||
| 25025 | + latin1_string_type, | ||
| 25026 | + utf8_string_type, | ||
| 25027 | + byte_type, | ||
| 25028 | + sbyte_type, | ||
| 25029 | + ubyte_type, | ||
| 25030 | + capsule_type, | ||
| 25031 | + pybuffer_type | ||
| 25032 | +} argType; | ||
| 25033 | + | ||
| 25034 | + | ||
| 25035 | +/* Value types. */ | ||
| 25036 | +typedef enum { | ||
| 25037 | + qchar_value, | ||
| 25038 | + string_value, | ||
| 25039 | + numeric_value, | ||
| 25040 | + real_value, | ||
| 25041 | + scoped_value, | ||
| 25042 | + fcall_value | ||
| 25043 | +} valueType; | ||
| 25044 | + | ||
| 25045 | + | ||
| 25046 | +/* Version types. */ | ||
| 25047 | +typedef enum { | ||
| 25048 | + time_qualifier, | ||
| 25049 | + platform_qualifier, | ||
| 25050 | + feature_qualifier | ||
| 25051 | +} qualType; | ||
| 25052 | + | ||
| 25053 | + | ||
| 25054 | +/* Interface file types. */ | ||
| 25055 | +typedef enum { | ||
| 25056 | + exception_iface, | ||
| 25057 | + mappedtype_iface, | ||
| 25058 | + namespace_iface, | ||
| 25059 | + class_iface | ||
| 25060 | +} ifaceFileType; | ||
| 25061 | + | ||
| 25062 | + | ||
| 25063 | +/* Type hint parse status. */ | ||
| 25064 | +typedef enum { | ||
| 25065 | + needs_parsing, | ||
| 25066 | + being_parsed, | ||
| 25067 | + parsed | ||
| 25068 | +} typeHintParseStatus; | ||
| 25069 | + | ||
| 25070 | + | ||
| 25071 | +/* Type hint node type. */ | ||
| 25072 | +typedef enum { | ||
| 25073 | + typing_node, | ||
| 25074 | + class_node, | ||
| 25075 | + enum_node, | ||
| 25076 | + brackets_node, | ||
| 25077 | + other_node | ||
| 25078 | +} typeHintNodeType; | ||
| 25079 | + | ||
| 25080 | + | ||
| 25081 | +/* A location in a .sip source file. */ | ||
| 25082 | +typedef struct { | ||
| 25083 | + int linenr; /* The line number. */ | ||
| 25084 | + const char *name; /* The filename. */ | ||
| 25085 | +} sourceLocation; | ||
| 25086 | + | ||
| 25087 | + | ||
| 25088 | +/* A software license. */ | ||
| 25089 | +typedef struct { | ||
| 25090 | + const char *type; /* The license type. */ | ||
| 25091 | + const char *licensee; /* The licensee. */ | ||
| 25092 | + const char *timestamp; /* The timestamp. */ | ||
| 25093 | + const char *sig; /* The signature. */ | ||
| 25094 | +} licenseDef; | ||
| 25095 | + | ||
| 25096 | + | ||
| 25097 | +/* A version qualifier. */ | ||
| 25098 | +typedef struct _qualDef { | ||
| 25099 | + const char *name; /* The qualifier name. */ | ||
| 25100 | + qualType qtype; /* The qualifier type. */ | ||
| 25101 | + struct _moduleDef *module; /* The defining module. */ | ||
| 25102 | + int line; /* Timeline if it is a time. */ | ||
| 25103 | + int order; /* Order if it is a time. */ | ||
| 25104 | + int default_enabled; /* Enabled by default. */ | ||
| 25105 | + struct _qualDef *next; /* Next in the list. */ | ||
| 25106 | +} qualDef; | ||
| 25107 | + | ||
| 25108 | + | ||
| 25109 | +/* A platform. */ | ||
| 25110 | +typedef struct _platformDef { | ||
| 25111 | + struct _qualDef *qualifier; /* The platform qualifier. */ | ||
| 25112 | + struct _platformDef *next; /* Next in the list. */ | ||
| 25113 | +} platformDef; | ||
| 25114 | + | ||
| 25115 | + | ||
| 25116 | +/* A scoped name. */ | ||
| 25117 | +typedef struct _scopedNameDef { | ||
| 25118 | + char *name; /* The name. */ | ||
| 25119 | + struct _scopedNameDef *next; /* Next in the scope list. */ | ||
| 25120 | +} scopedNameDef; | ||
| 25121 | + | ||
| 25122 | + | ||
| 25123 | +/* A name. */ | ||
| 25124 | +typedef struct _nameDef { | ||
| 25125 | + int nameflags; /* The name flags. */ | ||
| 25126 | + const char *text; /* The text of the name. */ | ||
| 25127 | + size_t len; /* The length of the name. */ | ||
| 25128 | + size_t offset; /* The offset in the string pool. */ | ||
| 25129 | + struct _nameDef *next; /* Next in the list. */ | ||
| 25130 | +} nameDef; | ||
| 25131 | + | ||
| 25132 | + | ||
| 25133 | +/* A literal code block. */ | ||
| 25134 | +typedef struct _codeBlock { | ||
| 25135 | + char *frag; /* The code itself. */ | ||
| 25136 | + const char *filename; /* The original file. */ | ||
| 25137 | + int linenr; /* The line in the file. */ | ||
| 25138 | +} codeBlock; | ||
| 25139 | + | ||
| 25140 | + | ||
| 25141 | +/* A list of literal code blocks. */ | ||
| 25142 | +typedef struct _codeBlockList { | ||
| 25143 | + codeBlock *block; /* The code block. */ | ||
| 25144 | + struct _codeBlockList *next; /* The next in the list. */ | ||
| 25145 | +} codeBlockList; | ||
| 25146 | + | ||
| 25147 | + | ||
| 25148 | +/* The arguments to a throw specifier. */ | ||
| 25149 | +typedef struct _throwArgs { | ||
| 25150 | + int nrArgs; /* The number of arguments. */ | ||
| 25151 | + struct _exceptionDef *args[MAX_NR_ARGS]; /* The arguments. */ | ||
| 25152 | +} throwArgs; | ||
| 25153 | + | ||
| 25154 | + | ||
| 25155 | +/* An exception. */ | ||
| 25156 | +typedef struct _exceptionDef { | ||
| 25157 | + int exceptionnr; /* The exception number. */ | ||
| 25158 | + int needed; /* The module needs it. */ | ||
| 25159 | + struct _ifaceFileDef *iff; /* The interface file. */ | ||
| 25160 | + const char *pyname; /* The exception Python name. */ | ||
| 25161 | + struct _classDef *cd; /* The exception class. */ | ||
| 25162 | + char *bibase; /* The builtin base exception. */ | ||
| 25163 | + struct _exceptionDef *base; /* The defined base exception. */ | ||
| 25164 | + codeBlockList *raisecode; /* Raise exception code. */ | ||
| 25165 | + struct _exceptionDef *next; /* The next in the list. */ | ||
| 25166 | +} exceptionDef; | ||
| 25167 | + | ||
| 25168 | + | ||
| 25169 | +/* A value. */ | ||
| 25170 | +typedef struct _valueDef { | ||
| 25171 | + valueType vtype; /* The type. */ | ||
| 25172 | + char vunop; /* Any unary operator. */ | ||
| 25173 | + char vbinop; /* Any binary operator. */ | ||
| 25174 | + scopedNameDef *cast; /* Any cast. */ | ||
| 25175 | + union { | ||
| 25176 | + char vqchar; /* Quoted character value. */ | ||
| 25177 | + long vnum; /* Numeric value. */ | ||
| 25178 | + double vreal; /* Real value. */ | ||
| 25179 | + char *vstr; /* String value. */ | ||
| 25180 | + scopedNameDef *vscp; /* Scoped value. */ | ||
| 25181 | + struct _fcallDef *fcd; /* Function call. */ | ||
| 25182 | + } u; | ||
| 25183 | + struct _valueDef *next; /* Next in the expression. */ | ||
| 25184 | +} valueDef; | ||
| 25185 | + | ||
| 25186 | + | ||
| 25187 | +/* A member function argument (or result). */ | ||
| 25188 | +typedef struct { | ||
| 25189 | + argType atype; /* The type. */ | ||
| 25190 | + nameDef *name; /* The name. */ | ||
| 25191 | + const char *doctype; /* The documented type. */ | ||
| 25192 | + struct _typeHintDef *typehint_in; /* The PEP 484 input type hint. */ | ||
| 25193 | + struct _typeHintDef *typehint_out; /* The PEP 484 output type hint. */ | ||
| 25194 | + const char *typehint_value; /* The type hint value. */ | ||
| 25195 | + int argflags; /* The argument flags. */ | ||
| 25196 | + int nrderefs; /* Nr. of dereferences. */ | ||
| 25197 | + int derefs[MAX_NR_DEREFS]; /* The const for each dereference. */ | ||
| 25198 | + valueDef *defval; /* The default value. */ | ||
| 25199 | + int scopes_stripped; /* Nr. of scopes to be stripped. */ | ||
| 25200 | + int key; /* The optional /KeepReference/ key. */ | ||
| 25201 | + struct _typedefDef *original_type; /* The original type if typedef'd. */ | ||
| 25202 | + union { | ||
| 25203 | + struct _signatureDef *sa; /* If it is a function. */ | ||
| 25204 | + struct _templateDef *td; /* If it is a template. */ | ||
| 25205 | + struct _scopedNameDef *snd; /* If it is a defined type. */ | ||
| 25206 | + struct _classDef *cd; /* If it is a class. */ | ||
| 25207 | + struct _enumDef *ed; /* If it is an enum. */ | ||
| 25208 | + struct _scopedNameDef *sname; /* If it is a struct. */ | ||
| 25209 | + struct _mappedTypeDef *mtd; /* If it is a mapped type. */ | ||
| 25210 | + struct _scopedNameDef *cap; /* If it is a capsule. */ | ||
| 25211 | + } u; | ||
| 25212 | +} argDef; | ||
| 25213 | + | ||
| 25214 | + | ||
| 25215 | +/* An entry in a linked argument list. */ | ||
| 25216 | +typedef struct _argList { | ||
| 25217 | + argDef arg; /* The argument itself. */ | ||
| 25218 | + struct _argList *next; /* Next in the list. */ | ||
| 25219 | +} argList; | ||
| 25220 | + | ||
| 25221 | + | ||
| 25222 | +/* A function call. */ | ||
| 25223 | +typedef struct _fcallDef { | ||
| 25224 | + argDef type; /* The type. */ | ||
| 25225 | + int nrArgs; /* The number of arguments. */ | ||
| 25226 | + struct _valueDef *args[MAX_NR_ARGS]; /* The arguments. */ | ||
| 25227 | +} fcallDef; | ||
| 25228 | + | ||
| 25229 | + | ||
| 25230 | +/* An API version range definition. */ | ||
| 25231 | +typedef struct _apiVersionRangeDef { | ||
| 25232 | + nameDef *api_name; /* The API name. */ | ||
| 25233 | + int from; /* The lower bound. */ | ||
| 25234 | + int to; /* The upper bound. */ | ||
| 25235 | + int index; /* The range index. */ | ||
| 25236 | + struct _apiVersionRangeDef *next; /* The next in the list. */ | ||
| 25237 | +} apiVersionRangeDef; | ||
| 25238 | + | ||
| 25239 | + | ||
| 25240 | +/* A virtual error handler. */ | ||
| 25241 | +typedef struct _virtErrorHandler { | ||
| 25242 | + const char *name; /* The name of the handler. */ | ||
| 25243 | + codeBlockList *code; /* The handler code. */ | ||
| 25244 | + struct _moduleDef *mod; /* The defining module. */ | ||
| 25245 | + int index; /* The index within the module. */ | ||
| 25246 | + struct _virtErrorHandler *next; /* The next in the list. */ | ||
| 25247 | +} virtErrorHandler; | ||
| 25248 | + | ||
| 25249 | + | ||
| 25250 | +/* A parsed PEP 484 compliant type hint. */ | ||
| 25251 | +typedef struct _typeHintDef { | ||
| 25252 | + typeHintParseStatus status; /* The state of the type hint parse. */ | ||
| 25253 | + char *raw_hint; /* The raw hint. */ | ||
| 25254 | + struct _typeHintNodeDef *root; /* The root of parsed nodes. */ | ||
| 25255 | +} typeHintDef; | ||
| 25256 | + | ||
| 25257 | + | ||
| 25258 | +/* A node of a parsed type hint. */ | ||
| 25259 | +typedef struct _typeHintNodeDef { | ||
| 25260 | + typeHintNodeType type; /* The type of the node. */ | ||
| 25261 | + union { | ||
| 25262 | + const char *name; /* For typing objects and others. */ | ||
| 25263 | + struct _classDef *cd; /* For class nodes. */ | ||
| 25264 | + struct _enumDef *ed; /* For enum nodes. */ | ||
| 25265 | + } u; | ||
| 25266 | + struct _typeHintNodeDef *children; /* The list of children. */ | ||
| 25267 | + struct _typeHintNodeDef *next; /* The next sibling. */ | ||
| 25268 | +} typeHintNodeDef; | ||
| 25269 | + | ||
| 25270 | + | ||
| 25271 | +/* An explicit docstring. */ | ||
| 25272 | +typedef struct _docstringDef { | ||
| 25273 | + Signature signature; /* How the signature should be positioned. */ | ||
| 25274 | + char *text; /* The text of the docstring. */ | ||
| 25275 | +} docstringDef; | ||
| 25276 | + | ||
| 25277 | + | ||
| 25278 | +/* A module definition. */ | ||
| 25279 | +typedef struct _moduleDef { | ||
| 25280 | + nameDef *fullname; /* The full module name. */ | ||
| 25281 | + const char *name; /* The module base name. */ | ||
| 25282 | + docstringDef *docstring; /* The docstring. */ | ||
| 25283 | + apiVersionRangeDef *api_versions; /* The defined APIs. */ | ||
| 25284 | + apiVersionRangeDef *api_ranges; /* The list of API version ranges. */ | ||
| 25285 | + int modflags; /* The module flags. */ | ||
| 25286 | + KwArgs kwargs; /* The style of keyword argument support. */ | ||
| 25287 | + struct _memberDef *othfuncs; /* List of other functions. */ | ||
| 25288 | + struct _overDef *overs; /* Global overloads. */ | ||
| 25289 | + Format defdocstringfmt; /* The default docstring format. */ | ||
| 25290 | + Signature defdocstringsig; /* The default docstring signature. */ | ||
| 25291 | + argType encoding; /* The default string encoding. */ | ||
| 25292 | + nameDef *defmetatype; /* The optional default meta-type. */ | ||
| 25293 | + nameDef *defsupertype; /* The optional default super-type. */ | ||
| 25294 | + struct _exceptionDef *defexception; /* The default exception. */ | ||
| 25295 | + codeBlockList *hdrcode; /* Header code. */ | ||
| 25296 | + codeBlockList *cppcode; /* Global C++ code. */ | ||
| 25297 | + codeBlockList *copying; /* Software license. */ | ||
| 25298 | + codeBlockList *preinitcode; /* Pre-initialisation code. */ | ||
| 25299 | + codeBlockList *initcode; /* Initialisation code. */ | ||
| 25300 | + codeBlockList *postinitcode; /* Post-initialisation code. */ | ||
| 25301 | + codeBlockList *unitcode; /* Compilation unit code. */ | ||
| 25302 | + codeBlockList *unitpostinccode; /* Compilation unit post-include code. */ | ||
| 25303 | + codeBlockList *typehintcode; /* Type hint code. */ | ||
| 25304 | + const char *virt_error_handler; /* The virtual error handler. */ | ||
| 25305 | + int parts; /* The number of parts generated. */ | ||
| 25306 | + const char *file; /* The filename. */ | ||
| 25307 | + qualDef *qualifiers; /* The list of qualifiers. */ | ||
| 25308 | + argDef *needed_types; /* The array of needed types. */ | ||
| 25309 | + int nr_needed_types; /* The number of needed types. */ | ||
| 25310 | + int nrtimelines; /* The nr. of timelines. */ | ||
| 25311 | + int nrexceptions; /* The nr. of exceptions. */ | ||
| 25312 | + int nrtypedefs; /* The nr. of typedefs. */ | ||
| 25313 | + int nrvirterrorhandlers; /* The nr. of virtual error handlers. */ | ||
| 25314 | + int next_key; /* The next key to allocate. */ | ||
| 25315 | + licenseDef *license; /* The software license. */ | ||
| 25316 | + struct _classDef *proxies; /* The list of proxy classes. */ | ||
| 25317 | + struct _moduleDef *container; /* The container module, if any. */ | ||
| 25318 | + struct _ifaceFileList *used; /* Interface files used. */ | ||
| 25319 | + struct _moduleListDef *allimports; /* The list of all imports. */ | ||
| 25320 | + struct _moduleListDef *imports; /* The list of direct imports. */ | ||
| 25321 | + struct _autoPyNameDef *autopyname; /* The Python naming rules. */ | ||
| 25322 | + struct _moduleDef *next; /* Next in the list. */ | ||
| 25323 | +} moduleDef; | ||
| 25324 | + | ||
| 25325 | + | ||
| 25326 | +/* An entry in a linked module list. */ | ||
| 25327 | +typedef struct _moduleListDef { | ||
| 25328 | + moduleDef *module; /* The module itself. */ | ||
| 25329 | + struct _moduleListDef *next; /* The next in the list. */ | ||
| 25330 | +} moduleListDef; | ||
| 25331 | + | ||
| 25332 | + | ||
| 25333 | +/* An interface file definition. */ | ||
| 25334 | +typedef struct _ifaceFileDef { | ||
| 25335 | + nameDef *name; /* The name. */ | ||
| 25336 | + int needed; /* The main module needs it. */ | ||
| 25337 | + apiVersionRangeDef *api_range; /* The optional API version range. */ | ||
| 25338 | + struct _ifaceFileDef *first_alt; /* The first alternate API. */ | ||
| 25339 | + struct _ifaceFileDef *next_alt; /* The next alternate API. */ | ||
| 25340 | + ifaceFileType type; /* Interface file type. */ | ||
| 25341 | + int ifacenr; /* The index into the types table. */ | ||
| 25342 | + scopedNameDef *fqcname; /* The fully qualified C++ name. */ | ||
| 25343 | + moduleDef *module; /* The owning module. */ | ||
| 25344 | + codeBlockList *hdrcode; /* Header code. */ | ||
| 25345 | + const char *file_extension; /* The optional file extension. */ | ||
| 25346 | + struct _ifaceFileList *used; /* Interface files used. */ | ||
| 25347 | + platformDef *platforms; /* The platforms. */ | ||
| 25348 | + struct _ifaceFileDef *next; /* Next in the list. */ | ||
| 25349 | +} ifaceFileDef; | ||
| 25350 | + | ||
| 25351 | + | ||
| 25352 | +/* An entry in a linked interface file list. */ | ||
| 25353 | + | ||
| 25354 | +typedef struct _ifaceFileList { | ||
| 25355 | + ifaceFileDef *iff; /* The interface file itself. */ | ||
| 25356 | + struct _ifaceFileList *next; /* Next in the list. */ | ||
| 25357 | +} ifaceFileList; | ||
| 25358 | + | ||
| 25359 | + | ||
| 25360 | +/* A mapped type. */ | ||
| 25361 | +typedef struct _mappedTypeDef { | ||
| 25362 | + int mtflags; /* The mapped type flags. */ | ||
| 25363 | + argDef type; /* The type being mapped. */ | ||
| 25364 | + nameDef *pyname; /* The Python name. */ | ||
| 25365 | + nameDef *cname; /* The C/C++ name. */ | ||
| 25366 | + const char *doctype; /* The documented type. */ | ||
| 25367 | + typeHintDef *typehint_in; /* The PEP 484 input type hint. */ | ||
| 25368 | + typeHintDef *typehint_out; /* The PEP 484 output type hint. */ | ||
| 25369 | + const char *typehint_value; /* The type hint value. */ | ||
| 25370 | + ifaceFileDef *iff; /* The interface file. */ | ||
| 25371 | + struct _memberDef *members; /* The static member functions. */ | ||
| 25372 | + struct _overDef *overs; /* The static overloads. */ | ||
| 25373 | + codeBlockList *instancecode; /* Create instance code. */ | ||
| 25374 | + codeBlockList *typecode; /* Type code. */ | ||
| 25375 | + codeBlockList *convfromcode; /* Convert from C++ code. */ | ||
| 25376 | + codeBlockList *convtocode; /* Convert to C++ code. */ | ||
| 25377 | + struct _mappedTypeDef *real; /* The original definition. */ | ||
| 25378 | + struct _mappedTypeDef *next; /* Next in the list. */ | ||
| 25379 | +} mappedTypeDef; | ||
| 25380 | + | ||
| 25381 | + | ||
| 25382 | +/* A function signature. */ | ||
| 25383 | +typedef struct _signatureDef { | ||
| 25384 | + argDef result; /* The result. */ | ||
| 25385 | + int nrArgs; /* The number of arguments. */ | ||
| 25386 | + argDef args[MAX_NR_ARGS]; /* The arguments. */ | ||
| 25387 | +} signatureDef; | ||
| 25388 | + | ||
| 25389 | + | ||
| 25390 | +/* A list of function signatures. */ | ||
| 25391 | +typedef struct _signatureList { | ||
| 25392 | + struct _signatureDef *sd; /* The signature. */ | ||
| 25393 | + struct _signatureList *next; /* Next in the list. */ | ||
| 25394 | +} signatureList; | ||
| 25395 | + | ||
| 25396 | + | ||
| 25397 | +/* A template type. */ | ||
| 25398 | +typedef struct _templateDef { | ||
| 25399 | + scopedNameDef *fqname; /* The name. */ | ||
| 25400 | + signatureDef types; /* The types. */ | ||
| 25401 | +} templateDef; | ||
| 25402 | + | ||
| 25403 | + | ||
| 25404 | +/* A list of virtual handlers. */ | ||
| 25405 | +typedef struct _virtHandlerDef { | ||
| 25406 | + int virthandlernr; /* The nr. of the virtual handler. */ | ||
| 25407 | + int vhflags; /* The virtual handler flags. */ | ||
| 25408 | + signatureDef *pysig; /* The Python signature. */ | ||
| 25409 | + signatureDef *cppsig; /* The C++ signature. */ | ||
| 25410 | + codeBlockList *virtcode; /* Virtual handler code. */ | ||
| 25411 | + virtErrorHandler *veh; /* The virtual error handler. */ | ||
| 25412 | + struct _virtHandlerDef *next; /* Next in the list. */ | ||
| 25413 | +} virtHandlerDef; | ||
| 25414 | + | ||
| 25415 | + | ||
| 25416 | +/* A typedef definition. */ | ||
| 25417 | +typedef struct _typedefDef { | ||
| 25418 | + int tdflags; /* The typedef flags. */ | ||
| 25419 | + scopedNameDef *fqname; /* The fully qualified name. */ | ||
| 25420 | + struct _classDef *ecd; /* The enclosing class. */ | ||
| 25421 | + moduleDef *module; /* The owning module. */ | ||
| 25422 | + argDef type; /* The actual type. */ | ||
| 25423 | + platformDef *platforms; /* The platforms. */ | ||
| 25424 | + struct _typedefDef *next; /* Next in the list. */ | ||
| 25425 | +} typedefDef; | ||
| 25426 | + | ||
| 25427 | + | ||
| 25428 | +/* A variable definition. */ | ||
| 25429 | +typedef struct _varDef { | ||
| 25430 | + scopedNameDef *fqcname; /* The fully qualified C/C++ name. */ | ||
| 25431 | + nameDef *pyname; /* The variable Python name. */ | ||
| 25432 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25433 | + struct _classDef *ecd; /* The enclosing class. */ | ||
| 25434 | + moduleDef *module; /* The owning module. */ | ||
| 25435 | + int varflags; /* The variable flags. */ | ||
| 25436 | + argDef type; /* The actual type. */ | ||
| 25437 | + codeBlockList *accessfunc; /* The access function. */ | ||
| 25438 | + codeBlockList *getcode; /* The get code. */ | ||
| 25439 | + codeBlockList *setcode; /* The set code. */ | ||
| 25440 | + platformDef *platforms; /* The platforms. */ | ||
| 25441 | + struct _varDef *next; /* Next in the list. */ | ||
| 25442 | +} varDef; | ||
| 25443 | + | ||
| 25444 | + | ||
| 25445 | +/* A property definition. */ | ||
| 25446 | +typedef struct _propertyDef { | ||
| 25447 | + nameDef *name; /* The property name. */ | ||
| 25448 | + docstringDef *docstring; /* The docstring. */ | ||
| 25449 | + const char *get; /* The name of the getter method. */ | ||
| 25450 | + const char *set; /* The name of the setter method. */ | ||
| 25451 | + platformDef *platforms; /* The platforms. */ | ||
| 25452 | + struct _propertyDef *next; /* Next in the list. */ | ||
| 25453 | +} propertyDef; | ||
| 25454 | + | ||
| 25455 | + | ||
| 25456 | +/* An overloaded member function definition. */ | ||
| 25457 | +typedef struct _overDef { | ||
| 25458 | + sourceLocation sloc; /* The source location. */ | ||
| 25459 | + char *cppname; /* The C++ name. */ | ||
| 25460 | + docstringDef *docstring; /* The docstring. */ | ||
| 25461 | + int overflags; /* The overload flags. */ | ||
| 25462 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25463 | + int pyqt_signal_hack; /* The PyQt signal hack. */ | ||
| 25464 | + KwArgs kwargs; /* The keyword argument support. */ | ||
| 25465 | + struct _memberDef *common; /* Common parts. */ | ||
| 25466 | + apiVersionRangeDef *api_range; /* The optional API version range. */ | ||
| 25467 | + signatureDef pysig; /* The Python signature. */ | ||
| 25468 | + signatureDef *cppsig; /* The C++ signature. */ | ||
| 25469 | + throwArgs *exceptions; /* The exceptions. */ | ||
| 25470 | + codeBlockList *methodcode; /* Method code. */ | ||
| 25471 | + codeBlockList *premethodcode; /* Code to insert before the method code. */ | ||
| 25472 | + codeBlockList *virtcallcode; /* Virtual call code. */ | ||
| 25473 | + codeBlockList *virtcode; /* Virtual handler code. */ | ||
| 25474 | + char *prehook; /* The pre-hook name. */ | ||
| 25475 | + char *posthook; /* The post-hook name. */ | ||
| 25476 | + const char *virt_error_handler; /* The virtual error handler. */ | ||
| 25477 | + platformDef *platforms; /* The platforms. */ | ||
| 25478 | + struct _overDef *next; /* Next in the list. */ | ||
| 25479 | +} overDef; | ||
| 25480 | + | ||
| 25481 | + | ||
| 25482 | +/* An overloaded constructor definition. */ | ||
| 25483 | +typedef struct _ctorDef { | ||
| 25484 | + docstringDef *docstring; /* The docstring. */ | ||
| 25485 | + int ctorflags; /* The ctor flags. */ | ||
| 25486 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25487 | + KwArgs kwargs; /* The keyword argument support. */ | ||
| 25488 | + apiVersionRangeDef *api_range; /* The optional API version range. */ | ||
| 25489 | + signatureDef pysig; /* The Python signature. */ | ||
| 25490 | + signatureDef *cppsig; /* The C++ signature, NULL if /NoDerived/. */ | ||
| 25491 | + throwArgs *exceptions; /* The exceptions. */ | ||
| 25492 | + codeBlockList *methodcode; /* Method code. */ | ||
| 25493 | + codeBlockList *premethodcode; /* Code to insert before the method code. */ | ||
| 25494 | + char *prehook; /* The pre-hook name. */ | ||
| 25495 | + char *posthook; /* The post-hook name. */ | ||
| 25496 | + platformDef *platforms; /* The platforms. */ | ||
| 25497 | + struct _ctorDef *next; /* Next in the list. */ | ||
| 25498 | +} ctorDef; | ||
| 25499 | + | ||
| 25500 | + | ||
| 25501 | +/* An enumerated type member definition. */ | ||
| 25502 | +typedef struct _enumMemberDef { | ||
| 25503 | + nameDef *pyname; /* The Python name. */ | ||
| 25504 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25505 | + char *cname; /* The C/C++ name. */ | ||
| 25506 | + struct _enumDef *ed; /* The enclosing enum. */ | ||
| 25507 | + platformDef *platforms; /* The platforms. */ | ||
| 25508 | + struct _enumMemberDef *next; /* Next in the list. */ | ||
| 25509 | +} enumMemberDef; | ||
| 25510 | + | ||
| 25511 | + | ||
| 25512 | +/* An enumerated type definition. */ | ||
| 25513 | +typedef struct _enumDef { | ||
| 25514 | + int enumflags; /* The enum flags. */ | ||
| 25515 | + scopedNameDef *fqcname; /* The C/C++ name (may be NULL). */ | ||
| 25516 | + nameDef *cname; /* The C/C++ name (may be NULL). */ | ||
| 25517 | + nameDef *pyname; /* The Python name (may be NULL). */ | ||
| 25518 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25519 | + struct _enumDef *first_alt; /* The first alternate API. */ | ||
| 25520 | + struct _enumDef *next_alt; /* The next alternate API. */ | ||
| 25521 | + int enumnr; /* The enum number. */ | ||
| 25522 | + int enum_idx; /* The enum index within the module. */ | ||
| 25523 | + struct _classDef *ecd; /* The enclosing class, if any. */ | ||
| 25524 | + struct _mappedTypeDef *emtd; /* The enclosing mapped type, if any. */ | ||
| 25525 | + moduleDef *module; /* The owning module. */ | ||
| 25526 | + enumMemberDef *members; /* The list of members. */ | ||
| 25527 | + struct _memberDef *slots; /* The list of slots. */ | ||
| 25528 | + struct _overDef *overs; /* The list of slot overloads. */ | ||
| 25529 | + platformDef *platforms; /* The platforms. */ | ||
| 25530 | + struct _enumDef *next; /* Next in the list. */ | ||
| 25531 | +} enumDef; | ||
| 25532 | + | ||
| 25533 | + | ||
| 25534 | +/* An member function definition. */ | ||
| 25535 | +typedef struct _memberDef { | ||
| 25536 | + nameDef *pyname; /* The Python name. */ | ||
| 25537 | + int memberflags; /* The member flags. */ | ||
| 25538 | + int membernr; /* The index in the method table. */ | ||
| 25539 | + slotType slot; /* The slot type. */ | ||
| 25540 | + moduleDef *module; /* The owning module. */ | ||
| 25541 | + struct _ifaceFileDef *ns_scope; /* The scope if it has been moved. */ | ||
| 25542 | + struct _memberDef *next; /* Next in the list. */ | ||
| 25543 | +} memberDef; | ||
| 25544 | + | ||
| 25545 | + | ||
| 25546 | +/* A list of visible member functions. */ | ||
| 25547 | +typedef struct _visibleList { | ||
| 25548 | + memberDef *m; /* The member definition. */ | ||
| 25549 | + struct _classDef *cd; /* The class. */ | ||
| 25550 | + struct _visibleList *next; /* Next in the list. */ | ||
| 25551 | +} visibleList; | ||
| 25552 | + | ||
| 25553 | + | ||
| 25554 | +/* An entry in a linked class list. */ | ||
| 25555 | +typedef struct _classList { | ||
| 25556 | + struct _classDef *cd; /* The class itself. */ | ||
| 25557 | + struct _classList *next; /* Next in the list. */ | ||
| 25558 | +} classList; | ||
| 25559 | + | ||
| 25560 | + | ||
| 25561 | +/* A virtual overload definition. */ | ||
| 25562 | +typedef struct _virtOverDef { | ||
| 25563 | + overDef *od; /* The overload. */ | ||
| 25564 | + virtHandlerDef *virthandler; /* The virtual handler. */ | ||
| 25565 | + struct _virtOverDef *next; /* Next in the list. */ | ||
| 25566 | +} virtOverDef; | ||
| 25567 | + | ||
| 25568 | + | ||
| 25569 | +/* A class that appears in a class's hierarchy. */ | ||
| 25570 | +typedef struct _mroDef { | ||
| 25571 | + struct _classDef *cd; /* The class. */ | ||
| 25572 | + int mroflags; /* The hierarchy flags. */ | ||
| 25573 | + struct _mroDef *next; /* The next in the list. */ | ||
| 25574 | +} mroDef; | ||
| 25575 | + | ||
| 25576 | + | ||
| 25577 | +/* A class definition. */ | ||
| 25578 | +typedef struct _classDef { | ||
| 25579 | + docstringDef *docstring; /* The class docstring. */ | ||
| 25580 | + unsigned classflags; /* The class flags. */ | ||
| 25581 | + unsigned classflags2; /* The class flags, part 2. */ | ||
| 25582 | + int pyqt_flags; /* The PyQt specific flags. */ | ||
| 25583 | + const char *pyqt_interface; /* The Qt interface name. */ | ||
| 25584 | + nameDef *pyname; /* The Python name. */ | ||
| 25585 | + int no_typehint; /* The type hint will be suppressed. */ | ||
| 25586 | + ifaceFileDef *iff; /* The interface file. */ | ||
| 25587 | + struct _classDef *ecd; /* The enclosing scope. */ | ||
| 25588 | + struct _classDef *real; /* The real class if this is a proxy or extender. */ | ||
| 25589 | + classList *supers; /* The parent classes. */ | ||
| 25590 | + mroDef *mro; /* The super-class hierarchy. */ | ||
| 25591 | + nameDef *metatype; /* The meta-type. */ | ||
| 25592 | + nameDef *supertype; /* The super-type. */ | ||
| 25593 | + templateDef *td; /* The instantiated template. */ | ||
| 25594 | + ctorDef *ctors; /* The constructors. */ | ||
| 25595 | + ctorDef *defctor; /* The default ctor. */ | ||
| 25596 | + codeBlockList *dealloccode; /* Handwritten dealloc code. */ | ||
| 25597 | + codeBlockList *dtorcode; /* Handwritten dtor code. */ | ||
| 25598 | + throwArgs *dtorexceptions; /* The dtor exceptions. */ | ||
| 25599 | + memberDef *members; /* The member functions. */ | ||
| 25600 | + overDef *overs; /* The overloads. */ | ||
| 25601 | + argList *casts; /* The operator casts. */ | ||
| 25602 | + virtOverDef *vmembers; /* The virtual members. */ | ||
| 25603 | + visibleList *visible; /* The visible members. */ | ||
| 25604 | + codeBlockList *cppcode; /* Class C++ code. */ | ||
| 25605 | + codeBlockList *convtosubcode; /* Convert to sub C++ code. */ | ||
| 25606 | + struct _classDef *subbase; /* Sub-class base class. */ | ||
| 25607 | + codeBlockList *instancecode; /* Create instance code. */ | ||
| 25608 | + codeBlockList *convtocode; /* Convert to C++ code. */ | ||
| 25609 | + codeBlockList *convfromcode; /* Convert from C++ code. */ | ||
| 25610 | + codeBlockList *travcode; /* Traverse code. */ | ||
| 25611 | + codeBlockList *clearcode; /* Clear code. */ | ||
| 25612 | + codeBlockList *getbufcode; /* Get buffer code (Python v3). */ | ||
| 25613 | + codeBlockList *releasebufcode; /* Release buffer code (Python v3). */ | ||
| 25614 | + codeBlockList *readbufcode; /* Read buffer code (Python v2). */ | ||
| 25615 | + codeBlockList *writebufcode; /* Write buffer code (Python v2). */ | ||
| 25616 | + codeBlockList *segcountcode; /* Segment count code (Python v2). */ | ||
| 25617 | + codeBlockList *charbufcode; /* Character buffer code (Python v2). */ | ||
| 25618 | + codeBlockList *picklecode; /* Pickle code. */ | ||
| 25619 | + codeBlockList *finalcode; /* Finalisation code. */ | ||
| 25620 | + codeBlockList *typehintcode; /* Type hint code. */ | ||
| 25621 | + propertyDef *properties; /* The properties. */ | ||
| 25622 | + const char *virt_error_handler; /* The virtual error handler. */ | ||
| 25623 | + typeHintDef *typehint_in; /* The PEP 484 input type hint. */ | ||
| 25624 | + typeHintDef *typehint_out; /* The PEP 484 output type hint. */ | ||
| 25625 | + const char *typehint_value; /* The type hint value. */ | ||
| 25626 | + struct _classDef *next; /* Next in the list. */ | ||
| 25627 | +} classDef; | ||
| 25628 | + | ||
| 25629 | + | ||
| 25630 | +/* A class template definition. */ | ||
| 25631 | +typedef struct _classTmplDef { | ||
| 25632 | + signatureDef sig; /* The template arguments. */ | ||
| 25633 | + classDef *cd; /* The class itself. */ | ||
| 25634 | + struct _classTmplDef *next; /* The next in the list. */ | ||
| 25635 | +} classTmplDef; | ||
| 25636 | + | ||
| 25637 | + | ||
| 25638 | +/* A mapped type template definition. */ | ||
| 25639 | +typedef struct _mappedTypeTmplDef { | ||
| 25640 | + signatureDef sig; /* The template arguments. */ | ||
| 25641 | + mappedTypeDef *mt; /* The mapped type itself. */ | ||
| 25642 | + struct _mappedTypeTmplDef *next; /* The next in the list. */ | ||
| 25643 | +} mappedTypeTmplDef; | ||
| 25644 | + | ||
| 25645 | + | ||
| 25646 | +/* The extracts for an identifier. */ | ||
| 25647 | +typedef struct _extractDef { | ||
| 25648 | + const char *id; /* The identifier. */ | ||
| 25649 | + struct _extractPartDef *parts; /* The ordered list of parts. */ | ||
| 25650 | + struct _extractDef *next; /* The next in the list. */ | ||
| 25651 | +} extractDef; | ||
| 25652 | + | ||
| 25653 | + | ||
| 25654 | +/* Part of an extract for an identifier. */ | ||
| 25655 | +typedef struct _extractPartDef { | ||
| 25656 | + int order; /* The order of the part. */ | ||
| 25657 | + codeBlock *part; /* The part itself. */ | ||
| 25658 | + struct _extractPartDef *next; /* The next in the list. */ | ||
| 25659 | +} extractPartDef; | ||
| 25660 | + | ||
| 25661 | + | ||
| 25662 | +/* A rule for automatic Python naming. */ | ||
| 25663 | +typedef struct _autoPyNameDef { | ||
| 25664 | + const char *remove_leading; /* Leading string to remove. */ | ||
| 25665 | + struct _autoPyNameDef *next; /* The next in the list. */ | ||
| 25666 | +} autoPyNameDef; | ||
| 25667 | + | ||
| 25668 | + | ||
| 25669 | +/* The parse tree corresponding to the specification file. */ | ||
| 25670 | +typedef struct { | ||
| 25671 | + moduleDef *module; /* The module being generated. */ | ||
| 25672 | + moduleDef *modules; /* The list of modules. */ | ||
| 25673 | + nameDef *namecache; /* The name cache. */ | ||
| 25674 | + ifaceFileDef *ifacefiles; /* The list of interface files. */ | ||
| 25675 | + classDef *classes; /* The list of classes. */ | ||
| 25676 | + classTmplDef *classtemplates; /* The list of class templates. */ | ||
| 25677 | + exceptionDef *exceptions; /* The list of exceptions. */ | ||
| 25678 | + mappedTypeDef *mappedtypes; /* The mapped types. */ | ||
| 25679 | + mappedTypeTmplDef *mappedtypetemplates; /* The list of mapped type templates. */ | ||
| 25680 | + enumDef *enums; /* List of enums. */ | ||
| 25681 | + varDef *vars; /* List of variables. */ | ||
| 25682 | + typedefDef *typedefs; /* List of typedefs. */ | ||
| 25683 | + int nrvirthandlers; /* The number of virtual handlers. */ | ||
| 25684 | + virtHandlerDef *virthandlers; /* The virtual handlers. */ | ||
| 25685 | + virtErrorHandler *errorhandlers; /* The list of virtual error handlers. */ | ||
| 25686 | + codeBlockList *exphdrcode; /* Exported header code. */ | ||
| 25687 | + codeBlockList *exptypehintcode; /* Exported type hint code. */ | ||
| 25688 | + codeBlockList *docs; /* Documentation. */ | ||
| 25689 | + classDef *qobject_cd; /* QObject class, NULL if none. */ | ||
| 25690 | + int sigslots; /* Set if signals or slots are used. */ | ||
| 25691 | + int genc; /* Set if we are generating C code. */ | ||
| 25692 | + struct _stringList *plugins; /* The list of plugins. */ | ||
| 25693 | + struct _extractDef *extracts; /* The list of extracts. */ | ||
| 25694 | +} sipSpec; | ||
| 25695 | + | ||
| 25696 | + | ||
| 25697 | +/* A list of strings. */ | ||
| 25698 | +typedef struct _stringList { | ||
| 25699 | + const char *s; /* The string. */ | ||
| 25700 | + struct _stringList *next; /* The next in the list. */ | ||
| 25701 | +} stringList; | ||
| 25702 | + | ||
| 25703 | + | ||
| 25704 | +/* File specific context information for the parser. */ | ||
| 25705 | +typedef struct _parserContext { | ||
| 25706 | + const char *filename; /* The %Import or %Include filename. */ | ||
| 25707 | + int ifdepth; /* The depth of nested if's. */ | ||
| 25708 | + moduleDef *prevmod; /* The previous module. */ | ||
| 25709 | +} parserContext; | ||
| 25710 | + | ||
| 25711 | + | ||
| 25712 | +extern char *sipVersion; /* The version of SIP. */ | ||
| 25713 | +extern stringList *includeDirList; /* The include directory list for SIP files. */ | ||
| 25714 | + | ||
| 25715 | + | ||
| 25716 | +void parse(sipSpec *, FILE *, char *, int, stringList *, stringList *, | ||
| 25717 | + stringList *, KwArgs, int); | ||
| 25718 | +void parserEOF(const char *,parserContext *); | ||
| 25719 | +void transform(sipSpec *, int); | ||
| 25720 | +void generateCode(sipSpec *, char *, char *, char *, const char *, int, int, | ||
| 25721 | + int, int, stringList *needed_qualifiers, stringList *, const char *, | ||
| 25722 | + int, int, const char *); | ||
| 25723 | +void generateExtracts(sipSpec *pt, const stringList *extracts); | ||
| 25724 | +void addExtractPart(sipSpec *pt, const char *id, int order, codeBlock *part); | ||
| 25725 | +void generateAPI(sipSpec *pt, moduleDef *mod, const char *apiFile); | ||
| 25726 | +void generateXML(sipSpec *pt, moduleDef *mod, const char *xmlFile); | ||
| 25727 | +void generateTypeHints(sipSpec *pt, moduleDef *mod, const char *pyiFile); | ||
| 25728 | +void generateExpression(valueDef *vd, int in_str, FILE *fp); | ||
| 25729 | +void warning(Warning w, const char *fmt, ...); | ||
| 25730 | +void deprecated(const char *msg); | ||
| 25731 | +SIP_NORETURN void fatal(const char *fmt,...); | ||
| 25732 | +void fatalScopedName(scopedNameDef *); | ||
| 25733 | +void fatalStart(); | ||
| 25734 | +void getSourceLocation(sourceLocation *slp); | ||
| 25735 | +int setInputFile(FILE *open_fp, parserContext *pc, int optional); | ||
| 25736 | +void resetLexerState(); | ||
| 25737 | +void *sipMalloc(size_t n); | ||
| 25738 | +void *sipCalloc(size_t nr, size_t n); | ||
| 25739 | +char *sipStrdup(const char *); | ||
| 25740 | +char *concat(const char *, ...); | ||
| 25741 | +void append(char **, const char *); | ||
| 25742 | +void appendToIfaceFileList(ifaceFileList **ifflp, ifaceFileDef *iff); | ||
| 25743 | +int selectedQualifier(stringList *needed_qualifiers, qualDef *qd); | ||
| 25744 | +int excludedFeature(stringList *,qualDef *); | ||
| 25745 | +int sameSignature(signatureDef *,signatureDef *,int); | ||
| 25746 | +int sameTemplateSignature(signatureDef *tmpl_sd, signatureDef *args_sd, | ||
| 25747 | + int deep); | ||
| 25748 | +int compareScopedNames(scopedNameDef *snd1, scopedNameDef *snd2); | ||
| 25749 | +int sameBaseType(argDef *,argDef *); | ||
| 25750 | +char *scopedNameTail(scopedNameDef *); | ||
| 25751 | +scopedNameDef *copyScopedName(scopedNameDef *); | ||
| 25752 | +void appendScopedName(scopedNameDef **,scopedNameDef *); | ||
| 25753 | +void freeScopedName(scopedNameDef *); | ||
| 25754 | +void appendToClassList(classList **,classDef *); | ||
| 25755 | +void appendCodeBlockList(codeBlockList **headp, codeBlockList *cbl); | ||
| 25756 | +void prcode(FILE *fp, const char *fmt, ...); | ||
| 25757 | +void prCopying(FILE *fp, moduleDef *mod, const char *comment); | ||
| 25758 | +void prOverloadName(FILE *fp, overDef *od); | ||
| 25759 | +void prOverloadDecl(FILE *fp, ifaceFileDef *scope, overDef *od, int defval); | ||
| 25760 | +void prDefaultValue(argDef *ad, int in_str, FILE *fp); | ||
| 25761 | +void prScopedPythonName(FILE *fp, classDef *scope, const char *pyname); | ||
| 25762 | +void searchTypedefs(sipSpec *pt, scopedNameDef *snd, argDef *ad); | ||
| 25763 | +int isZeroArgSlot(memberDef *md); | ||
| 25764 | +int isIntReturnSlot(memberDef *md); | ||
| 25765 | +int isSSizeReturnSlot(memberDef *md); | ||
| 25766 | +int isLongReturnSlot(memberDef *md); | ||
| 25767 | +int isVoidReturnSlot(memberDef *md); | ||
| 25768 | +int isNumberSlot(memberDef *md); | ||
| 25769 | +int isInplaceNumberSlot(memberDef *md); | ||
| 25770 | +int isRichCompareSlot(memberDef *md); | ||
| 25771 | +mappedTypeDef *allocMappedType(sipSpec *pt, argDef *type); | ||
| 25772 | +void appendString(stringList **headp, const char *s); | ||
| 25773 | +void appendTypeStrings(scopedNameDef *ename, signatureDef *patt, signatureDef *src, signatureDef *known, scopedNameDef **names, scopedNameDef **values); | ||
| 25774 | +codeBlockList *templateCode(sipSpec *pt, ifaceFileList **used, | ||
| 25775 | + codeBlockList *ocbl, scopedNameDef *names, scopedNameDef *values); | ||
| 25776 | +ifaceFileDef *findIfaceFile(sipSpec *pt, moduleDef *mod, | ||
| 25777 | + scopedNameDef *fqname, ifaceFileType iftype, | ||
| 25778 | + apiVersionRangeDef *api_range, argDef *ad); | ||
| 25779 | +int pluginPyQt4(sipSpec *pt); | ||
| 25780 | +int pluginPyQt5(sipSpec *pt); | ||
| 25781 | +SIP_NORETURN void yyerror(char *); | ||
| 25782 | +void yywarning(char *); | ||
| 25783 | +int yylex(); | ||
| 25784 | +nameDef *cacheName(sipSpec *pt, const char *name); | ||
| 25785 | +scopedNameDef *encodedTemplateName(templateDef *td); | ||
| 25786 | +apiVersionRangeDef *findAPI(sipSpec *pt, const char *name); | ||
| 25787 | +memberDef *findMethod(classDef *cd, const char *name); | ||
| 25788 | +typeHintDef *newTypeHint(char *raw_hint); | ||
| 25789 | +int isPyKeyword(const char *word); | ||
| 25790 | +void getDefaultImplementation(sipSpec *pt, argType atype, classDef **cdp, | ||
| 25791 | + mappedTypeDef **mtdp); | ||
| 25792 | +char *templateString(const char *src, scopedNameDef *names, | ||
| 25793 | + scopedNameDef *values); | ||
| 25794 | +int inDefaultAPI(sipSpec *pt, apiVersionRangeDef *range); | ||
| 25795 | +int hasImplicitOverloads(signatureDef *sd); | ||
| 25796 | +void dsCtor(sipSpec *pt, classDef *cd, ctorDef *ct, int sec, FILE *fp); | ||
| 25797 | +void dsOverload(sipSpec *pt, overDef *od, int is_method, int sec, FILE *fp); | ||
| 25798 | +scopedNameDef *getFQCNameOfType(argDef *ad); | ||
| 25799 | +scopedNameDef *removeGlobalScope(scopedNameDef *snd); | ||
| 25800 | +void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, | ||
| 25801 | + ifaceFileList *defined, int pep484, int rest, FILE *fp); | ||
| 25802 | +void restPyClass(classDef *cd, int as_ref, FILE *fp); | ||
| 25803 | +void restPyEnum(enumDef *ed, int as_ref, FILE *fp); | ||
| 25804 | + | ||
| 25805 | + | ||
| 25806 | +/* These are only here because bison publically references them. */ | ||
| 25807 | + | ||
| 25808 | +/* Represent a set of option flags. */ | ||
| 25809 | + | ||
| 25810 | +#define MAX_NR_FLAGS 5 | ||
| 25811 | + | ||
| 25812 | +typedef enum { | ||
| 25813 | + bool_flag, | ||
| 25814 | + string_flag, | ||
| 25815 | + name_flag, | ||
| 25816 | + opt_name_flag, | ||
| 25817 | + dotted_name_flag, | ||
| 25818 | + integer_flag, | ||
| 25819 | + opt_integer_flag, | ||
| 25820 | + api_range_flag | ||
| 25821 | +} flagType; | ||
| 25822 | + | ||
| 25823 | +typedef struct { | ||
| 25824 | + const char *fname; /* The flag name. */ | ||
| 25825 | + flagType ftype; /* The flag type. */ | ||
| 25826 | + union { /* The flag value. */ | ||
| 25827 | + char *sval; /* A string value. */ | ||
| 25828 | + long ival; /* An integer value. */ | ||
| 25829 | + apiVersionRangeDef *aval; /* An API range value. */ | ||
| 25830 | + } fvalue; | ||
| 25831 | +} optFlag; | ||
| 25832 | + | ||
| 25833 | +typedef struct { | ||
| 25834 | + int nrFlags; /* The number of flags. */ | ||
| 25835 | + optFlag flags[MAX_NR_FLAGS]; /* Each flag. */ | ||
| 25836 | +} optFlags; | ||
| 25837 | + | ||
| 25838 | + | ||
| 25839 | +/* These represent the configuration of different directives. */ | ||
| 25840 | + | ||
| 25841 | +/* %API */ | ||
| 25842 | +typedef struct _apiCfg { | ||
| 25843 | + int token; | ||
| 25844 | + const char *name; | ||
| 25845 | + int version; | ||
| 25846 | +} apiCfg; | ||
| 25847 | + | ||
| 25848 | +/* %AutoPyName */ | ||
| 25849 | +typedef struct _autoPyNameCfg { | ||
| 25850 | + int token; | ||
| 25851 | + const char *remove_leading; | ||
| 25852 | +} autoPyNameCfg; | ||
| 25853 | + | ||
| 25854 | +/* %CompositeModule */ | ||
| 25855 | +typedef struct _compModuleCfg { | ||
| 25856 | + int token; | ||
| 25857 | + const char *name; | ||
| 25858 | + docstringDef *docstring; | ||
| 25859 | +} compModuleCfg; | ||
| 25860 | + | ||
| 25861 | +/* %ConsolidatedModule */ | ||
| 25862 | +typedef struct _consModuleCfg { | ||
| 25863 | + int token; | ||
| 25864 | + const char *name; | ||
| 25865 | + docstringDef *docstring; | ||
| 25866 | +} consModuleCfg; | ||
| 25867 | + | ||
| 25868 | +/* %DefaultDocstringFormat */ | ||
| 25869 | +typedef struct _defDocstringFmtCfg { | ||
| 25870 | + int token; | ||
| 25871 | + const char *name; | ||
| 25872 | +} defDocstringFmtCfg; | ||
| 25873 | + | ||
| 25874 | +/* %DefaultDocstringSignature */ | ||
| 25875 | +typedef struct _defDocstringSigCfg { | ||
| 25876 | + int token; | ||
| 25877 | + const char *name; | ||
| 25878 | +} defDocstringSigCfg; | ||
| 25879 | + | ||
| 25880 | +/* %DefaultEncoding */ | ||
| 25881 | +typedef struct _defEncodingCfg { | ||
| 25882 | + int token; | ||
| 25883 | + const char *name; | ||
| 25884 | +} defEncodingCfg; | ||
| 25885 | + | ||
| 25886 | +/* %DefaultMetatype */ | ||
| 25887 | +typedef struct _defMetatypeCfg { | ||
| 25888 | + int token; | ||
| 25889 | + const char *name; | ||
| 25890 | +} defMetatypeCfg; | ||
| 25891 | + | ||
| 25892 | +/* %DefaultSupertype */ | ||
| 25893 | +typedef struct _defSupertypeCfg { | ||
| 25894 | + int token; | ||
| 25895 | + const char *name; | ||
| 25896 | +} defSupertypeCfg; | ||
| 25897 | + | ||
| 25898 | +/* %Docstring */ | ||
| 25899 | +typedef struct _docstringCfg { | ||
| 25900 | + int token; | ||
| 25901 | + Format format; | ||
| 25902 | + Signature signature; | ||
| 25903 | +} docstringCfg; | ||
| 25904 | + | ||
| 25905 | +/* %Exception */ | ||
| 25906 | +typedef struct _exceptionCfg { | ||
| 25907 | + int token; | ||
| 25908 | + codeBlock *type_header_code; | ||
| 25909 | + codeBlock *raise_code; | ||
| 25910 | +} exceptionCfg; | ||
| 25911 | + | ||
| 25912 | +/* %Extract */ | ||
| 25913 | +typedef struct _extractCfg { | ||
| 25914 | + int token; | ||
| 25915 | + const char *id; | ||
| 25916 | + int order; | ||
| 25917 | +} extractCfg; | ||
| 25918 | + | ||
| 25919 | +/* %Feature */ | ||
| 25920 | +typedef struct _featureCfg { | ||
| 25921 | + int token; | ||
| 25922 | + const char *name; | ||
| 25923 | +} featureCfg; | ||
| 25924 | + | ||
| 25925 | +/* %HiddenNamespace */ | ||
| 25926 | +typedef struct _hiddenNsCfg { | ||
| 25927 | + int token; | ||
| 25928 | + scopedNameDef *name; | ||
| 25929 | +} hiddenNsCfg; | ||
| 25930 | + | ||
| 25931 | +/* %Import */ | ||
| 25932 | +typedef struct _importCfg { | ||
| 25933 | + int token; | ||
| 25934 | + const char *name; | ||
| 25935 | +} importCfg; | ||
| 25936 | + | ||
| 25937 | +/* %Include */ | ||
| 25938 | +typedef struct _includeCfg { | ||
| 25939 | + int token; | ||
| 25940 | + const char *name; | ||
| 25941 | + int optional; | ||
| 25942 | +} includeCfg; | ||
| 25943 | + | ||
| 25944 | +/* %License */ | ||
| 25945 | +typedef struct _licenseCfg { | ||
| 25946 | + int token; | ||
| 25947 | + const char *type; | ||
| 25948 | + const char *licensee; | ||
| 25949 | + const char *signature; | ||
| 25950 | + const char *timestamp; | ||
| 25951 | +} licenseCfg; | ||
| 25952 | + | ||
| 25953 | +/* %Module and its sub-directives. */ | ||
| 25954 | +typedef struct _moduleCfg { | ||
| 25955 | + int token; | ||
| 25956 | + int c_module; | ||
| 25957 | + KwArgs kwargs; | ||
| 25958 | + const char *name; | ||
| 25959 | + int use_arg_names; | ||
| 25960 | + int use_limited_api; | ||
| 25961 | + int all_raise_py_exc; | ||
| 25962 | + int call_super_init; | ||
| 25963 | + const char *def_error_handler; | ||
| 25964 | + docstringDef *docstring; | ||
| 25965 | +} moduleCfg; | ||
| 25966 | + | ||
| 25967 | +/* %Plugin */ | ||
| 25968 | +typedef struct _pluginCfg { | ||
| 25969 | + int token; | ||
| 25970 | + const char *name; | ||
| 25971 | +} pluginCfg; | ||
| 25972 | + | ||
| 25973 | +/* %Property */ | ||
| 25974 | +typedef struct _propertyCfg { | ||
| 25975 | + int token; | ||
| 25976 | + const char *get; | ||
| 25977 | + const char *name; | ||
| 25978 | + const char *set; | ||
| 25979 | + docstringDef *docstring; | ||
| 25980 | +} propertyCfg; | ||
| 25981 | + | ||
| 25982 | +/* Variable sub-directives. */ | ||
| 25983 | +typedef struct _variableCfg { | ||
| 25984 | + int token; | ||
| 25985 | + codeBlock *access_code; | ||
| 25986 | + codeBlock *get_code; | ||
| 25987 | + codeBlock *set_code; | ||
| 25988 | +} variableCfg; | ||
| 25989 | + | ||
| 25990 | +/* %VirtualErrorHandler */ | ||
| 25991 | +typedef struct _vehCfg { | ||
| 25992 | + int token; | ||
| 25993 | + const char *name; | ||
| 25994 | +} vehCfg; | ||
| 25995 | + | ||
| 25996 | +#endif | ||
| 25997 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/transform.c sip/sipgen/transform.c | ||
| 25998 | --- ./sip-4.19.12.orig/sipgen/transform.c 2018-07-05 05:54:58.000000000 -0400 | ||
| 25999 | +++ sip/sipgen/transform.c 2018-09-24 13:12:20.694275757 -0400 | ||
| 26000 | @@ -89,7 +89,8 @@ | ||
| 26001 | static classDef *findAltClassImplementation(sipSpec *pt, mappedTypeDef *mtd); | ||
| 26002 | static ifaceFileDef *getIfaceFile(argDef *ad); | ||
| 26003 | static ifaceFileDef *getIfaceFileForEnum(enumDef *ed); | ||
| 26004 | -static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type); | ||
| 26005 | +static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, | ||
| 26006 | + mappedTypeTmplDef *mtt, argDef *type); | ||
| 26007 | static classDef *getProxy(moduleDef *mod, classDef *cd); | ||
| 26008 | static int generatingCodeForModule(sipSpec *pt, moduleDef *mod); | ||
| 26009 | static void checkAssignmentHelper(sipSpec *pt, classDef *cd); | ||
| 26010 | @@ -3040,9 +3041,7 @@ | ||
| 26011 | for (mtt = pt->mappedtypetemplates; mtt != NULL; mtt = mtt->next) | ||
| 26012 | 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)) | ||
| 26013 | { | ||
| 26014 | - type->u.mtd = instantiateMappedTypeTemplate(pt, mod, mtt, type); | ||
| 26015 | - type->atype = mapped_type; | ||
| 26016 | - | ||
| 26017 | + instantiateMappedTypeTemplate(pt, mod, mtt, type); | ||
| 26018 | break; | ||
| 26019 | } | ||
| 26020 | } | ||
| 26021 | @@ -3144,9 +3143,10 @@ | ||
| 26022 | |||
| 26023 | |||
| 26024 | /* | ||
| 26025 | - * Instantiate a mapped type template and return it. | ||
| 26026 | + * Instantiate a mapped type template. | ||
| 26027 | */ | ||
| 26028 | -static mappedTypeDef *instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, mappedTypeTmplDef *mtt, argDef *type) | ||
| 26029 | +static void instantiateMappedTypeTemplate(sipSpec *pt, moduleDef *mod, | ||
| 26030 | + mappedTypeTmplDef *mtt, argDef *type) | ||
| 26031 | { | ||
| 26032 | scopedNameDef *type_names, *type_values; | ||
| 26033 | mappedTypeDef *mtd; | ||
| 26034 | @@ -3201,7 +3201,13 @@ | ||
| 26035 | |||
| 26036 | mtd = copyTemplateType(mtd, type); | ||
| 26037 | |||
| 26038 | - return mtd; | ||
| 26039 | + /* Replace the template with the mapped type. */ | ||
| 26040 | + type->atype = mapped_type; | ||
| 26041 | + type->typehint_in = mtd->typehint_in; | ||
| 26042 | + type->typehint_out = mtd->typehint_out; | ||
| 26043 | + type->typehint_value = mtd->typehint_value; | ||
| 26044 | + | ||
| 26045 | + type->u.mtd = mtd; | ||
| 26046 | } | ||
| 26047 | |||
| 26048 | |||
| 26049 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sipgen/type_hints.c sip/sipgen/type_hints.c | ||
| 26050 | --- ./sip-4.19.12.orig/sipgen/type_hints.c 2018-07-05 05:54:58.000000000 -0400 | ||
| 26051 | +++ sip/sipgen/type_hints.c 2018-09-24 13:12:20.695275742 -0400 | ||
| 26052 | @@ -57,10 +57,8 @@ | ||
| 26053 | ifaceFileList *defined, KwArgs kwargs, int pep484, FILE *fp); | ||
| 26054 | static void pyiType(sipSpec *pt, moduleDef *mod, argDef *ad, int out, int sec, | ||
| 26055 | ifaceFileList *defined, int pep484, FILE *fp); | ||
| 26056 | -static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, | ||
| 26057 | - ifaceFileList *defined, int pep484, FILE *fp); | ||
| 26058 | static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod, | ||
| 26059 | - ifaceFileList *defined, int pep484, FILE *fp); | ||
| 26060 | + ifaceFileList *defined, int pep484, int rest, FILE *fp); | ||
| 26061 | static void prIndent(int indent, FILE *fp); | ||
| 26062 | static int separate(int first, int indent, FILE *fp); | ||
| 26063 | static void prClassRef(classDef *cd, moduleDef *mod, ifaceFileList *defined, | ||
| 26064 | @@ -956,7 +954,7 @@ | ||
| 26065 | |||
| 26066 | if (thd != NULL) | ||
| 26067 | { | ||
| 26068 | - pyiTypeHint(pt, thd, mod, out, defined, pep484, fp); | ||
| 26069 | + pyiTypeHint(pt, thd, mod, out, defined, pep484, FALSE, fp); | ||
| 26070 | return; | ||
| 26071 | } | ||
| 26072 | |||
| 26073 | @@ -1415,13 +1413,13 @@ | ||
| 26074 | /* | ||
| 26075 | * Generate a type hint from a /TypeHint/ annotation. | ||
| 26076 | */ | ||
| 26077 | -static void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, | ||
| 26078 | - ifaceFileList *defined, int pep484, FILE *fp) | ||
| 26079 | +void pyiTypeHint(sipSpec *pt, typeHintDef *thd, moduleDef *mod, int out, | ||
| 26080 | + ifaceFileList *defined, int pep484, int rest, FILE *fp) | ||
| 26081 | { | ||
| 26082 | parseTypeHint(pt, thd, out); | ||
| 26083 | |||
| 26084 | if (thd->root != NULL) | ||
| 26085 | - pyiTypeHintNode(thd->root, mod, defined, pep484, fp); | ||
| 26086 | + pyiTypeHintNode(thd->root, mod, defined, pep484, rest, fp); | ||
| 26087 | else | ||
| 26088 | maybeAnyObject(thd->raw_hint, pep484, fp); | ||
| 26089 | } | ||
| 26090 | @@ -1431,7 +1429,7 @@ | ||
| 26091 | * Generate a single node of a type hint. | ||
| 26092 | */ | ||
| 26093 | static void pyiTypeHintNode(typeHintNodeDef *node, moduleDef *mod, | ||
| 26094 | - ifaceFileList *defined, int pep484, FILE *fp) | ||
| 26095 | + ifaceFileList *defined, int pep484, int rest, FILE *fp) | ||
| 26096 | { | ||
| 26097 | switch (node->type) | ||
| 26098 | { | ||
| 26099 | @@ -1452,7 +1450,7 @@ | ||
| 26100 | |||
| 26101 | need_comma = TRUE; | ||
| 26102 | |||
| 26103 | - pyiTypeHintNode(thnd, mod, defined, pep484, fp); | ||
| 26104 | + pyiTypeHintNode(thnd, mod, defined, pep484, rest, fp); | ||
| 26105 | } | ||
| 26106 | |||
| 26107 | fprintf(fp, "]"); | ||
| 26108 | @@ -1461,11 +1459,19 @@ | ||
| 26109 | break; | ||
| 26110 | |||
| 26111 | case class_node: | ||
| 26112 | - prClassRef(node->u.cd, mod, defined, pep484, fp); | ||
| 26113 | + if (rest) | ||
| 26114 | + restPyClass(node->u.cd, TRUE, fp); | ||
| 26115 | + else | ||
| 26116 | + prClassRef(node->u.cd, mod, defined, pep484, fp); | ||
| 26117 | + | ||
| 26118 | break; | ||
| 26119 | |||
| 26120 | case enum_node: | ||
| 26121 | - prEnumRef(node->u.ed, mod, defined, pep484, fp); | ||
| 26122 | + if (rest) | ||
| 26123 | + restPyEnum(node->u.ed, TRUE, fp); | ||
| 26124 | + else | ||
| 26125 | + prEnumRef(node->u.ed, mod, defined, pep484, fp); | ||
| 26126 | + | ||
| 26127 | break; | ||
| 26128 | |||
| 26129 | case brackets_node: | ||
| 26130 | @@ -1702,7 +1708,7 @@ | ||
| 26131 | |||
| 26132 | |||
| 26133 | /* | ||
| 26134 | - * Flatten an unions in a list of nodes. | ||
| 26135 | + * Flatten any unions in a list of nodes. | ||
| 26136 | */ | ||
| 26137 | static typeHintNodeDef *flatten_unions(typeHintNodeDef *nodes) | ||
| 26138 | { | ||
| 26139 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h sip/siplib/sip.h | ||
| 26140 | --- ./sip-4.19.12.orig/siplib/sip.h 2018-07-05 05:55:19.000000000 -0400 | ||
| 26141 | +++ sip/siplib/sip.h 2018-09-18 18:12:23.643053242 -0400 | ||
| 26142 | @@ -54,8 +54,8 @@ | ||
| 26143 | /* | ||
| 26144 | * Define the SIP version number. | ||
| 26145 | */ | ||
| 26146 | -#define SIP_VERSION 0x04130c | ||
| 26147 | -#define SIP_VERSION_STR "4.19.12" | ||
| 26148 | +#define SIP_VERSION 0x04ffff | ||
| 26149 | +#define SIP_VERSION_STR "4.255.255" | ||
| 26150 | |||
| 26151 | |||
| 26152 | /* | ||
| 26153 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/sip.h.in sip/siplib/sip.h.in | ||
| 26154 | --- ./sip-4.19.12.orig/siplib/sip.h.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 26155 | +++ sip/siplib/sip.h.in 2018-09-18 17:52:23.290543826 -0400 | ||
| 26156 | @@ -0,0 +1,2169 @@ | ||
| 26157 | +/* | ||
| 26158 | + * The SIP module interface. | ||
| 26159 | + * | ||
| 26160 | + * Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com> | ||
| 26161 | + * | ||
| 26162 | + * This file is part of SIP. | ||
| 26163 | + * | ||
| 26164 | + * This copy of SIP is licensed for use under the terms of the SIP License | ||
| 26165 | + * Agreement. See the file LICENSE for more details. | ||
| 26166 | + * | ||
| 26167 | + * This copy of SIP may also used under the terms of the GNU General Public | ||
| 26168 | + * License v2 or v3 as published by the Free Software Foundation which can be | ||
| 26169 | + * found in the files LICENSE-GPL2 and LICENSE-GPL3 included in this package. | ||
| 26170 | + * | ||
| 26171 | + * SIP is supplied WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 26172 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
| 26173 | + */ | ||
| 26174 | + | ||
| 26175 | + | ||
| 26176 | +#ifndef _SIP_H | ||
| 26177 | +#define _SIP_H | ||
| 26178 | + | ||
| 26179 | + | ||
| 26180 | +/* | ||
| 26181 | + * This gets round a problem with Qt's moc and Python v2.3. Strictly speaking | ||
| 26182 | + * it's a Qt problem but later versions of Python include a fix for it so we | ||
| 26183 | + * might as well too. | ||
| 26184 | + */ | ||
| 26185 | +#undef slots | ||
| 26186 | + | ||
| 26187 | + | ||
| 26188 | +#include <Python.h> | ||
| 26189 | + | ||
| 26190 | +/* | ||
| 26191 | + * There is a mis-feature somewhere with the Borland compiler. This works | ||
| 26192 | + * around it. | ||
| 26193 | + */ | ||
| 26194 | +#if defined(__BORLANDC__) | ||
| 26195 | +#include <rpc.h> | ||
| 26196 | +#endif | ||
| 26197 | + | ||
| 26198 | + | ||
| 26199 | +#ifdef __cplusplus | ||
| 26200 | +extern "C" { | ||
| 26201 | +#endif | ||
| 26202 | + | ||
| 26203 | + | ||
| 26204 | +/* Sanity check on the Python version. */ | ||
| 26205 | +#if PY_VERSION_HEX < 0x02030000 | ||
| 26206 | +#error "This version of SIP requires Python v2.3 or later" | ||
| 26207 | +#endif | ||
| 26208 | + | ||
| 26209 | + | ||
| 26210 | +/* | ||
| 26211 | + * Define the SIP version number. | ||
| 26212 | + */ | ||
| 26213 | +#define SIP_VERSION 0x@RM_HEXVERSION@ | ||
| 26214 | +#define SIP_VERSION_STR "@RM_RELEASE@" | ||
| 26215 | + | ||
| 26216 | + | ||
| 26217 | +/* | ||
| 26218 | + * Define the current API version number. SIP must handle modules with the | ||
| 26219 | + * same major number and with the same or earlier minor number. Whenever | ||
| 26220 | + * members are added to non-embedded data structures they must be appended and | ||
| 26221 | + * the minor number incremented. Whenever data structure members are removed | ||
| 26222 | + * or their offset changed then the major number must be incremented and the | ||
| 26223 | + * minor number set * to 0. | ||
| 26224 | + * | ||
| 26225 | + * History: | ||
| 26226 | + * | ||
| 26227 | + * 12.5 Replaced the sipConvertFromSliceObject() macro with | ||
| 26228 | + * sip_api_convert_from_slice_object() in the public API. | ||
| 26229 | + * | ||
| 26230 | + * 12.4 Added sip_api_instance_destroyed_ex() to the private API. | ||
| 26231 | + * | ||
| 26232 | + * 12.3 Added SIP_TYPE_SCOPED_ENUM to the sipTypeDef flags. | ||
| 26233 | + * Added sip_api_convert_to_enum() to the public API. | ||
| 26234 | + * Added sip_api_convert_to_bool() to the public API. | ||
| 26235 | + * Added sip_api_long_as_char(), sip_api_long_as_signed_char(), | ||
| 26236 | + * sip_api_long_as_unsigned_char(), sip_api_long_as_short(), | ||
| 26237 | + * sip_api_long_as_unsigned_short(), sip_api_long_as_int(), | ||
| 26238 | + * sip_api_long_as_unsigned_int(), sip_api_long_as_long(), | ||
| 26239 | + * sip_api_long_as_unsigned_long(), sip_api_long_as_long_long(), | ||
| 26240 | + * sip_api_long_as_unsigned_long_long() to the public API. | ||
| 26241 | + * Deprecated sip_api_can_convert_to_enum(). | ||
| 26242 | + * | ||
| 26243 | + * 12.2 Added sip_api_print_object() to the public API. | ||
| 26244 | + * Renamed sip_api_common_dtor() to sip_api_instance_destroyed() and added | ||
| 26245 | + * it to the public API. | ||
| 26246 | + * Added sipEventType and sip_api_register_event_handler() to the public | ||
| 26247 | + * API. | ||
| 26248 | + * | ||
| 26249 | + * 12.1 Added sip_api_enable_gc() to the public API. | ||
| 26250 | + * | ||
| 26251 | + * 12.0 Added SIP_TYPE_LIMITED_API to the sipTypeDef flags. | ||
| 26252 | + * Added sip_api_py_type_dict() and sip_api_py_type_name() to the public | ||
| 26253 | + * API. | ||
| 26254 | + * Added sip_api_set_new_user_type_handler() to the public API. | ||
| 26255 | + * Added sip_api_is_user_type() to the public API. | ||
| 26256 | + * Added sip_api_set_type_user_data() and sip_api_get_type_user_data() to | ||
| 26257 | + * the public API. | ||
| 26258 | + * Added sip_api_set_user_object() and sip_api_get_user_object() to the | ||
| 26259 | + * public API. | ||
| 26260 | + * Added sip_api_get_method() and sip_api_from_method() to the public API. | ||
| 26261 | + * Added sip_api_get_c_function() to the public API. | ||
| 26262 | + * Added sip_api_get_date() and sip_api_from_date() to the public API. | ||
| 26263 | + * Added sip_api_get_datetime() and sip_api_from_datetime() to the public | ||
| 26264 | + * API. | ||
| 26265 | + * Added sip_api_get_time() and sip_api_from_time() to the public API. | ||
| 26266 | + * Added sip_api_get_frame() to the public API. | ||
| 26267 | + * Added sip_api_check_plugin_for_type() to the public API. | ||
| 26268 | + * Added sip_api_unicode_new(), sip_api_unicode_write() and | ||
| 26269 | + * sip_api_unicode_data() to the public API. | ||
| 26270 | + * Added sip_api_get_buffer_info() and sip_api_relese_buffer_info() to the | ||
| 26271 | + * public API. | ||
| 26272 | + * Added sip_api_call_procedure_method() to the public API. | ||
| 26273 | + * Added sip_api_is_owned_by_python() to the private API. | ||
| 26274 | + * Added sip_api_is_derived_class() to the private API. | ||
| 26275 | + * Removed the im_version member from sipImportedModuleDef. | ||
| 26276 | + * Removed the im_module member from sipImportedModuleDef. | ||
| 26277 | + * Removed the em_version member from sipExportedModuleDef. | ||
| 26278 | + * Removed the em_virthandlers member from sipExportedModuleDef. | ||
| 26279 | + * Re-ordered the API functions. | ||
| 26280 | + * | ||
| 26281 | + * 11.3 Added sip_api_get_interpreter() to the public API. | ||
| 26282 | + * | ||
| 26283 | + * 11.2 Added sip_api_get_reference() to the private API. | ||
| 26284 | + * | ||
| 26285 | + * 11.1 Added sip_api_invoke_slot_ex(). | ||
| 26286 | + * | ||
| 26287 | + * 11.0 Added the pyqt5QtSignal and pyqt5ClassTypeDef structures. | ||
| 26288 | + * Removed qt_interface from pyqt4ClassTypeDef. | ||
| 26289 | + * Added hack to pyqt4QtSignal. | ||
| 26290 | + * | ||
| 26291 | + * 10.1 Added ctd_final to sipClassTypeDef. | ||
| 26292 | + * Added ctd_init_mixin to sipClassTypeDef. | ||
| 26293 | + * Added sip_api_get_mixin_address() to the public API. | ||
| 26294 | + * Added sip_api_convert_from_new_pytype() to the public API. | ||
| 26295 | + * Added sip_api_convert_to_array() to the public API. | ||
| 26296 | + * Added sip_api_convert_to_typed_array() to the public API. | ||
| 26297 | + * Added sip_api_register_proxy_resolver() to the public API. | ||
| 26298 | + * Added sip_api_init_mixin() to the private API. | ||
| 26299 | + * Added qt_interface to pyqt4ClassTypeDef. | ||
| 26300 | + * | ||
| 26301 | + * 10.0 Added sip_api_set_destroy_on_exit(). | ||
| 26302 | + * Added sip_api_enable_autoconversion(). | ||
| 26303 | + * Removed sip_api_call_error_handler_old(). | ||
| 26304 | + * Removed sip_api_start_thread(). | ||
| 26305 | + * | ||
| 26306 | + * 9.2 Added sip_gilstate_t and SIP_RELEASE_GIL to the public API. | ||
| 26307 | + * Renamed sip_api_call_error_handler() to | ||
| 26308 | + * sip_api_call_error_handler_old(). | ||
| 26309 | + * Added the new sip_api_call_error_handler() to the private API. | ||
| 26310 | + * | ||
| 26311 | + * 9.1 Added the capsule type. | ||
| 26312 | + * Added the 'z' format character to sip_api_build_result(). | ||
| 26313 | + * Added the 'z', '!' and '$' format characters to | ||
| 26314 | + * sip_api_parse_result_ex(). | ||
| 26315 | + * | ||
| 26316 | + * 9.0 Changed the sipVariableGetterFunc signature. | ||
| 26317 | + * Added sip_api_parse_result_ex() to the private API. | ||
| 26318 | + * Added sip_api_call_error_handler() to the private API. | ||
| 26319 | + * Added em_virterrorhandlers to sipExportedModuleDef. | ||
| 26320 | + * Re-ordered the API functions. | ||
| 26321 | + * | ||
| 26322 | + * 8.1 Revised the sipVariableDef structure. | ||
| 26323 | + * sip_api_get_address() is now part of the public API. | ||
| 26324 | + * | ||
| 26325 | + * 8.0 Changed the size of the sipSimpleWrapper structure. | ||
| 26326 | + * Added sip_api_get_address(). | ||
| 26327 | + * | ||
| 26328 | + * 7.1 Added the 'H' format character to sip_api_parse_result(). | ||
| 26329 | + * Deprecated the 'D' format character of sip_api_parse_result(). | ||
| 26330 | + * | ||
| 26331 | + * 7.0 Added sip_api_parse_kwd_args(). | ||
| 26332 | + * Added sipErrorState, sip_api_add_exception(). | ||
| 26333 | + * The type initialisation function is now passed a dictionary of keyword | ||
| 26334 | + * arguments. | ||
| 26335 | + * All argument parsers now update a set of error messages rather than an | ||
| 26336 | + * argument count. | ||
| 26337 | + * The signatures of sip_api_no_function() and sip_api_no_method() have | ||
| 26338 | + * changed. | ||
| 26339 | + * Added ctd_docstring to sipClassTypeDef. | ||
| 26340 | + * Added vf_docstring to sipVersionedFunctionDef. | ||
| 26341 | + * | ||
| 26342 | + * 6.0 Added the sipContainerDef structure to define the contents of a class | ||
| 26343 | + * or mapped type. Restructured sipClassDef and sipMappedTypeDef | ||
| 26344 | + * accordingly. | ||
| 26345 | + * Added the 'r' format character to sip_api_parse_args(). | ||
| 26346 | + * Added the 'r' format character to sip_api_call_method() and | ||
| 26347 | + * sip_api_build_result(). | ||
| 26348 | + * Added the assignment, array and copy allocation helpers. | ||
| 26349 | + * | ||
| 26350 | + * 5.0 Added sip_api_is_api_enabled(). | ||
| 26351 | + * Renamed the td_version_nr member of sipTypeDef to be int and where -1 | ||
| 26352 | + * indicates it is not versioned. | ||
| 26353 | + * Added the em_versions member to sipExportedModuleDef. | ||
| 26354 | + * Added the em_versioned_functions member to sipExportedModuleDef. | ||
| 26355 | + * | ||
| 26356 | + * 4.0 Much refactoring. | ||
| 26357 | + * | ||
| 26358 | + * 3.8 Added sip_api_register_qt_metatype() and sip_api_deprecated(). | ||
| 26359 | + * Added qt_register_meta_type() to the Qt support API. | ||
| 26360 | + * The C/C++ names of enums and types are now always defined in the | ||
| 26361 | + * relevant structures and don't default to the Python name. | ||
| 26362 | + * Added the 'XE' format characters to sip_api_parse_args(). | ||
| 26363 | + * | ||
| 26364 | + * 3.7 Added sip_api_convert_from_const_void_ptr(), | ||
| 26365 | + * sip_api_convert_from_void_ptr_and_size() and | ||
| 26366 | + * sip_api_convert_from_const_void_ptr_and_size(). | ||
| 26367 | + * Added the 'g' and 'G' format characters (to replace the now deprecated | ||
| 26368 | + * 'a' and 'A' format characters) to sip_api_build_result(), | ||
| 26369 | + * sip_api_call_method() and sip_api_parse_result(). | ||
| 26370 | + * Added the 'k' and 'K' format characters (to replace the now deprecated | ||
| 26371 | + * 'a' and 'A' format characters) to sip_api_parse_args(). | ||
| 26372 | + * Added sip_api_invoke_slot(). | ||
| 26373 | + * Added sip_api_parse_type(). | ||
| 26374 | + * Added sip_api_is_exact_wrapped_type(). | ||
| 26375 | + * Added the td_assign and td_qt fields to the sipTypeDef structure. | ||
| 26376 | + * Added the mt_assign field to the sipMappedType structure. | ||
| 26377 | + * | ||
| 26378 | + * 3.6 Added the 'g' format character to sip_api_parse_args(). | ||
| 26379 | + * | ||
| 26380 | + * 3.5 Added the td_pickle field to the sipTypeDef structure. | ||
| 26381 | + * Added sip_api_transfer_break(). | ||
| 26382 | + * | ||
| 26383 | + * 3.4 Added qt_find_connection() to the Qt support API. | ||
| 26384 | + * Added sip_api_string_as_char(), sip_api_unicode_as_wchar(), | ||
| 26385 | + * sip_api_unicode_as_wstring(), sip_api_find_class(), | ||
| 26386 | + * sip_api_find_named_enum() and sip_api_parse_signature(). | ||
| 26387 | + * Added the 'A', 'w' and 'x' format characters to sip_api_parse_args(), | ||
| 26388 | + * sip_api_parse_result(), sip_api_build_result() and | ||
| 26389 | + * sip_api_call_method(). | ||
| 26390 | + * | ||
| 26391 | + * 3.3 Added sip_api_register_int_types(). | ||
| 26392 | + * | ||
| 26393 | + * 3.2 Added sip_api_export_symbol() and sip_api_import_symbol(). | ||
| 26394 | + * | ||
| 26395 | + * 3.1 Added sip_api_add_mapped_type_instance(). | ||
| 26396 | + * | ||
| 26397 | + * 3.0 Moved the Qt support out of the sip module and into PyQt. This is | ||
| 26398 | + * such a dramatic change that there is no point in attempting to maintain | ||
| 26399 | + * backwards compatibility. | ||
| 26400 | + * | ||
| 26401 | + * 2.0 Added the td_flags field to the sipTypeDef structure. | ||
| 26402 | + * Added the first_child, sibling_next, sibling_prev and parent fields to | ||
| 26403 | + * the sipWrapper structure. | ||
| 26404 | + * Added the td_traverse and td_clear fields to the sipTypeDef structure. | ||
| 26405 | + * Added the em_api_minor field to the sipExportedModuleDef structure. | ||
| 26406 | + * Added sip_api_bad_operator_arg(). | ||
| 26407 | + * Added sip_api_wrapper_check(). | ||
| 26408 | + * | ||
| 26409 | + * 1.1 Added support for __pos__ and __abs__. | ||
| 26410 | + * | ||
| 26411 | + * 1.0 Removed all deprecated parts of the API. | ||
| 26412 | + * Removed the td_proxy field from the sipTypeDef structure. | ||
| 26413 | + * Removed the create proxy function from the 'q' and 'y' format | ||
| 26414 | + * characters to sip_api_parse_args(). | ||
| 26415 | + * Removed sip_api_emit_to_slot(). | ||
| 26416 | + * Reworked the enum related structures. | ||
| 26417 | + * | ||
| 26418 | + * 0.2 Added the 'H' format character to sip_api_parse_args(). | ||
| 26419 | + * | ||
| 26420 | + * 0.1 Added sip_api_add_class_instance(). | ||
| 26421 | + * Added the 't' format character to sip_api_parse_args(). | ||
| 26422 | + * Deprecated the 'J' and 'K' format characters to sip_api_parse_result(). | ||
| 26423 | + * | ||
| 26424 | + * 0.0 Original version. | ||
| 26425 | + */ | ||
| 26426 | +#define SIP_API_MAJOR_NR 12 | ||
| 26427 | +#define SIP_API_MINOR_NR 5 | ||
| 26428 | + | ||
| 26429 | + | ||
| 26430 | +/* | ||
| 26431 | + * Qt includes this typedef and its meta-object system explicitly converts | ||
| 26432 | + * types to uint. If these correspond to signal arguments then that conversion | ||
| 26433 | + * is exposed. Therefore SIP generates code that uses it. This definition is | ||
| 26434 | + * for the cases that SIP is generating non-Qt related bindings with compilers | ||
| 26435 | + * that don't include it themselves (i.e. MSVC). | ||
| 26436 | + */ | ||
| 26437 | +typedef unsigned int uint; | ||
| 26438 | + | ||
| 26439 | + | ||
| 26440 | +/* Some Python compatibility stuff. */ | ||
| 26441 | +#if PY_VERSION_HEX >= 0x02050000 | ||
| 26442 | + | ||
| 26443 | +#define SIP_SSIZE_T Py_ssize_t | ||
| 26444 | +#define SIP_SSIZE_T_FORMAT "%zd" | ||
| 26445 | + | ||
| 26446 | +#define SIP_MLNAME_CAST(s) (s) | ||
| 26447 | +#define SIP_MLDOC_CAST(s) (s) | ||
| 26448 | +#define SIP_TPNAME_CAST(s) (s) | ||
| 26449 | + | ||
| 26450 | +#else | ||
| 26451 | + | ||
| 26452 | +#define SIP_SSIZE_T int | ||
| 26453 | +#define SIP_SSIZE_T_FORMAT "%d" | ||
| 26454 | + | ||
| 26455 | +#define SIP_MLNAME_CAST(s) ((char *)(s)) | ||
| 26456 | +#define SIP_MLDOC_CAST(s) ((char *)(s)) | ||
| 26457 | +#define SIP_TPNAME_CAST(s) ((char *)(s)) | ||
| 26458 | + | ||
| 26459 | +#endif | ||
| 26460 | + | ||
| 26461 | +#if PY_MAJOR_VERSION >= 3 | ||
| 26462 | + | ||
| 26463 | +#define SIPLong_Check PyLong_Check | ||
| 26464 | +#define SIPLong_FromLong PyLong_FromLong | ||
| 26465 | +#define SIPLong_AsLong PyLong_AsLong | ||
| 26466 | + | ||
| 26467 | +#define SIPBytes_Check PyBytes_Check | ||
| 26468 | +#define SIPBytes_FromString PyBytes_FromString | ||
| 26469 | +#define SIPBytes_FromStringAndSize PyBytes_FromStringAndSize | ||
| 26470 | +#define SIPBytes_AsString PyBytes_AsString | ||
| 26471 | +#define SIPBytes_Size PyBytes_Size | ||
| 26472 | +#define SIPBytes_AS_STRING PyBytes_AS_STRING | ||
| 26473 | +#define SIPBytes_GET_SIZE PyBytes_GET_SIZE | ||
| 26474 | + | ||
| 26475 | +#if PY_MINOR_VERSION >= 1 | ||
| 26476 | +#define SIP_USE_PYCAPSULE | ||
| 26477 | +#endif | ||
| 26478 | + | ||
| 26479 | +#if PY_MINOR_VERSION < 2 | ||
| 26480 | +#define SIP_SUPPORT_PYCOBJECT | ||
| 26481 | +#endif | ||
| 26482 | + | ||
| 26483 | +#else | ||
| 26484 | + | ||
| 26485 | +#define SIPLong_Check PyInt_Check | ||
| 26486 | +#define SIPLong_FromLong PyInt_FromLong | ||
| 26487 | +#define SIPLong_AsLong PyInt_AsLong | ||
| 26488 | + | ||
| 26489 | +#define SIPBytes_Check PyString_Check | ||
| 26490 | +#define SIPBytes_FromString PyString_FromString | ||
| 26491 | +#define SIPBytes_FromStringAndSize PyString_FromStringAndSize | ||
| 26492 | +#define SIPBytes_AsString PyString_AsString | ||
| 26493 | +#define SIPBytes_Size PyString_Size | ||
| 26494 | +#define SIPBytes_AS_STRING PyString_AS_STRING | ||
| 26495 | +#define SIPBytes_GET_SIZE PyString_GET_SIZE | ||
| 26496 | + | ||
| 26497 | +#if PY_MINOR_VERSION >= 7 | ||
| 26498 | +#define SIP_USE_PYCAPSULE | ||
| 26499 | +#endif | ||
| 26500 | + | ||
| 26501 | +#define SIP_SUPPORT_PYCOBJECT | ||
| 26502 | + | ||
| 26503 | +#endif | ||
| 26504 | + | ||
| 26505 | +#if !defined(Py_REFCNT) | ||
| 26506 | +#define Py_REFCNT(ob) (((PyObject*)(ob))->ob_refcnt) | ||
| 26507 | +#endif | ||
| 26508 | + | ||
| 26509 | +#if !defined(Py_TYPE) | ||
| 26510 | +#define Py_TYPE(ob) (((PyObject*)(ob))->ob_type) | ||
| 26511 | +#endif | ||
| 26512 | + | ||
| 26513 | +#if !defined(PyVarObject_HEAD_INIT) | ||
| 26514 | +#define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size, | ||
| 26515 | +#endif | ||
| 26516 | + | ||
| 26517 | + | ||
| 26518 | +#if defined(SIP_USE_PYCAPSULE) | ||
| 26519 | +#define SIPCapsule_FromVoidPtr(p, n) PyCapsule_New((p), (n), NULL) | ||
| 26520 | +#define SIPCapsule_AsVoidPtr(p, n) PyCapsule_GetPointer((p), (n)) | ||
| 26521 | +#else | ||
| 26522 | +#define SIPCapsule_FromVoidPtr(p, n) sipConvertFromVoidPtr((p)) | ||
| 26523 | +#define SIPCapsule_AsVoidPtr(p, n) sipConvertToVoidPtr((p)) | ||
| 26524 | +#endif | ||
| 26525 | + | ||
| 26526 | + | ||
| 26527 | +/* | ||
| 26528 | + * The mask that can be passed to sipTrace(). | ||
| 26529 | + */ | ||
| 26530 | +#define SIP_TRACE_CATCHERS 0x0001 | ||
| 26531 | +#define SIP_TRACE_CTORS 0x0002 | ||
| 26532 | +#define SIP_TRACE_DTORS 0x0004 | ||
| 26533 | +#define SIP_TRACE_INITS 0x0008 | ||
| 26534 | +#define SIP_TRACE_DEALLOCS 0x0010 | ||
| 26535 | +#define SIP_TRACE_METHODS 0x0020 | ||
| 26536 | + | ||
| 26537 | + | ||
| 26538 | +/* | ||
| 26539 | + * Hide some thread dependent stuff. | ||
| 26540 | + */ | ||
| 26541 | +#ifdef WITH_THREAD | ||
| 26542 | +typedef PyGILState_STATE sip_gilstate_t; | ||
| 26543 | +#define SIP_RELEASE_GIL(gs) PyGILState_Release(gs); | ||
| 26544 | +#define SIP_BLOCK_THREADS {PyGILState_STATE sipGIL = PyGILState_Ensure(); | ||
| 26545 | +#define SIP_UNBLOCK_THREADS PyGILState_Release(sipGIL);} | ||
| 26546 | +#else | ||
| 26547 | +typedef int sip_gilstate_t; | ||
| 26548 | +#define SIP_RELEASE_GIL(gs) | ||
| 26549 | +#define SIP_BLOCK_THREADS | ||
| 26550 | +#define SIP_UNBLOCK_THREADS | ||
| 26551 | +#endif | ||
| 26552 | + | ||
| 26553 | + | ||
| 26554 | +/* | ||
| 26555 | + * Forward declarations of types. | ||
| 26556 | + */ | ||
| 26557 | +struct _sipBufferDef; | ||
| 26558 | +typedef struct _sipBufferDef sipBufferDef; | ||
| 26559 | + | ||
| 26560 | +struct _sipBufferInfoDef; | ||
| 26561 | +typedef struct _sipBufferInfoDef sipBufferInfoDef; | ||
| 26562 | + | ||
| 26563 | +struct _sipCFunctionDef; | ||
| 26564 | +typedef struct _sipCFunctionDef sipCFunctionDef; | ||
| 26565 | + | ||
| 26566 | +struct _sipDateDef; | ||
| 26567 | +typedef struct _sipDateDef sipDateDef; | ||
| 26568 | + | ||
| 26569 | +struct _sipEnumTypeObject; | ||
| 26570 | +typedef struct _sipEnumTypeObject sipEnumTypeObject; | ||
| 26571 | + | ||
| 26572 | +struct _sipMethodDef; | ||
| 26573 | +typedef struct _sipMethodDef sipMethodDef; | ||
| 26574 | + | ||
| 26575 | +struct _sipSimpleWrapper; | ||
| 26576 | +typedef struct _sipSimpleWrapper sipSimpleWrapper; | ||
| 26577 | + | ||
| 26578 | +struct _sipTimeDef; | ||
| 26579 | +typedef struct _sipTimeDef sipTimeDef; | ||
| 26580 | + | ||
| 26581 | +struct _sipTypeDef; | ||
| 26582 | +typedef struct _sipTypeDef sipTypeDef; | ||
| 26583 | + | ||
| 26584 | +struct _sipWrapperType; | ||
| 26585 | +typedef struct _sipWrapperType sipWrapperType; | ||
| 26586 | + | ||
| 26587 | +struct _sipWrapper; | ||
| 26588 | +typedef struct _sipWrapper sipWrapper; | ||
| 26589 | + | ||
| 26590 | + | ||
| 26591 | +/* | ||
| 26592 | + * The different events a handler can be registered for. | ||
| 26593 | + */ | ||
| 26594 | +typedef enum | ||
| 26595 | +{ | ||
| 26596 | + sipEventWrappedInstance, /* After wrapping a C/C++ instance. */ | ||
| 26597 | + sipEventCollectingWrapper, /* When garbage collecting a wrapper object. */ | ||
| 26598 | + sipEventNrEvents | ||
| 26599 | +} sipEventType; | ||
| 26600 | + | ||
| 26601 | +/* | ||
| 26602 | + * The event handlers. | ||
| 26603 | + */ | ||
| 26604 | +typedef void (*sipWrappedInstanceEventHandler)(void *sipCpp); | ||
| 26605 | +typedef void (*sipCollectingWrapperEventHandler)(sipSimpleWrapper *sipSelf); | ||
| 26606 | + | ||
| 26607 | + | ||
| 26608 | +/* | ||
| 26609 | + * The operation an access function is being asked to perform. | ||
| 26610 | + */ | ||
| 26611 | +typedef enum | ||
| 26612 | +{ | ||
| 26613 | + UnguardedPointer, /* Return the unguarded pointer. */ | ||
| 26614 | + GuardedPointer, /* Return the guarded pointer, ie. 0 if it has gone. */ | ||
| 26615 | + ReleaseGuard /* Release the guard, if any. */ | ||
| 26616 | +} AccessFuncOp; | ||
| 26617 | + | ||
| 26618 | + | ||
| 26619 | +/* | ||
| 26620 | + * Some convenient function pointers. | ||
| 26621 | + */ | ||
| 26622 | +typedef void *(*sipInitFunc)(sipSimpleWrapper *, PyObject *, PyObject *, | ||
| 26623 | + PyObject **, PyObject **, PyObject **); | ||
| 26624 | +typedef int (*sipFinalFunc)(PyObject *, void *, PyObject *, PyObject **); | ||
| 26625 | +typedef void *(*sipAccessFunc)(sipSimpleWrapper *, AccessFuncOp); | ||
| 26626 | +typedef int (*sipTraverseFunc)(void *, visitproc, void *); | ||
| 26627 | +typedef int (*sipClearFunc)(void *); | ||
| 26628 | +#if PY_MAJOR_VERSION >= 3 | ||
| 26629 | +typedef int (*sipGetBufferFuncLimited)(PyObject *, void *, sipBufferDef *); | ||
| 26630 | +typedef void (*sipReleaseBufferFuncLimited)(PyObject *, void *); | ||
| 26631 | +#if !defined(Py_LIMITED_API) | ||
| 26632 | +typedef int (*sipGetBufferFunc)(PyObject *, void *, Py_buffer *, int); | ||
| 26633 | +typedef void (*sipReleaseBufferFunc)(PyObject *, void *, Py_buffer *); | ||
| 26634 | +#endif | ||
| 26635 | +#else | ||
| 26636 | +typedef SIP_SSIZE_T (*sipBufferFunc)(PyObject *, void *, SIP_SSIZE_T, void **); | ||
| 26637 | +typedef SIP_SSIZE_T (*sipSegCountFunc)(PyObject *, void *, SIP_SSIZE_T *); | ||
| 26638 | +#endif | ||
| 26639 | +typedef void (*sipDeallocFunc)(sipSimpleWrapper *); | ||
| 26640 | +typedef void *(*sipCastFunc)(void *, const sipTypeDef *); | ||
| 26641 | +typedef const sipTypeDef *(*sipSubClassConvertFunc)(void **); | ||
| 26642 | +typedef int (*sipConvertToFunc)(PyObject *, void **, int *, PyObject *); | ||
| 26643 | +typedef PyObject *(*sipConvertFromFunc)(void *, PyObject *); | ||
| 26644 | +typedef void (*sipVirtErrorHandlerFunc)(sipSimpleWrapper *, sip_gilstate_t); | ||
| 26645 | +typedef int (*sipVirtHandlerFunc)(sip_gilstate_t, sipVirtErrorHandlerFunc, | ||
| 26646 | + sipSimpleWrapper *, PyObject *, ...); | ||
| 26647 | +typedef void (*sipAssignFunc)(void *, SIP_SSIZE_T, void *); | ||
| 26648 | +typedef void *(*sipArrayFunc)(SIP_SSIZE_T); | ||
| 26649 | +typedef void *(*sipCopyFunc)(const void *, SIP_SSIZE_T); | ||
| 26650 | +typedef void (*sipReleaseFunc)(void *, int); | ||
| 26651 | +typedef PyObject *(*sipPickleFunc)(void *); | ||
| 26652 | +typedef int (*sipAttrGetterFunc)(const sipTypeDef *, PyObject *); | ||
| 26653 | +typedef PyObject *(*sipVariableGetterFunc)(void *, PyObject *, PyObject *); | ||
| 26654 | +typedef int (*sipVariableSetterFunc)(void *, PyObject *, PyObject *); | ||
| 26655 | +typedef void *(*sipProxyResolverFunc)(void *); | ||
| 26656 | +typedef int (*sipNewUserTypeFunc)(sipWrapperType *); | ||
| 26657 | + | ||
| 26658 | + | ||
| 26659 | +#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000 | ||
| 26660 | +/* | ||
| 26661 | + * The meta-type of a wrapper type. | ||
| 26662 | + */ | ||
| 26663 | +struct _sipWrapperType { | ||
| 26664 | + /* | ||
| 26665 | + * The super-metatype. This must be first in the structure so that it can | ||
| 26666 | + * be cast to a PyTypeObject *. | ||
| 26667 | + */ | ||
| 26668 | + PyHeapTypeObject super; | ||
| 26669 | + | ||
| 26670 | + /* Set if the type is a user implemented Python sub-class. */ | ||
| 26671 | + unsigned wt_user_type : 1; | ||
| 26672 | + | ||
| 26673 | + /* Set if the type's dictionary contains all lazy attributes. */ | ||
| 26674 | + unsigned wt_dict_complete : 1; | ||
| 26675 | + | ||
| 26676 | + /* Unused and available for future use. */ | ||
| 26677 | + unsigned wt_unused : 30; | ||
| 26678 | + | ||
| 26679 | + /* The generated type structure. */ | ||
| 26680 | + sipTypeDef *wt_td; | ||
| 26681 | + | ||
| 26682 | + /* The list of init extenders. */ | ||
| 26683 | + struct _sipInitExtenderDef *wt_iextend; | ||
| 26684 | + | ||
| 26685 | + /* The handler called whenever a new user type has been created. */ | ||
| 26686 | + sipNewUserTypeFunc wt_new_user_type_handler; | ||
| 26687 | + | ||
| 26688 | + /* | ||
| 26689 | + * For the user to use. Note that any data structure will leak if the | ||
| 26690 | + * type is garbage collected. | ||
| 26691 | + */ | ||
| 26692 | + void *wt_user_data; | ||
| 26693 | +}; | ||
| 26694 | + | ||
| 26695 | + | ||
| 26696 | +/* | ||
| 26697 | + * The type of a simple C/C++ wrapper object. | ||
| 26698 | + */ | ||
| 26699 | +struct _sipSimpleWrapper { | ||
| 26700 | + PyObject_HEAD | ||
| 26701 | + | ||
| 26702 | + /* | ||
| 26703 | + * The data, initially a pointer to the C/C++ object, as interpreted by the | ||
| 26704 | + * access function. | ||
| 26705 | + */ | ||
| 26706 | + void *data; | ||
| 26707 | + | ||
| 26708 | + /* The optional access function. */ | ||
| 26709 | + sipAccessFunc access_func; | ||
| 26710 | + | ||
| 26711 | + /* Object flags. */ | ||
| 26712 | + unsigned sw_flags; | ||
| 26713 | + | ||
| 26714 | + /* The optional dictionary of extra references keyed by argument number. */ | ||
| 26715 | + PyObject *extra_refs; | ||
| 26716 | + | ||
| 26717 | + /* For the user to use. */ | ||
| 26718 | + PyObject *user; | ||
| 26719 | + | ||
| 26720 | + /* The instance dictionary. */ | ||
| 26721 | + PyObject *dict; | ||
| 26722 | + | ||
| 26723 | + /* The main instance if this is a mixin. */ | ||
| 26724 | + PyObject *mixin_main; | ||
| 26725 | + | ||
| 26726 | + /* Next object at this address. */ | ||
| 26727 | + struct _sipSimpleWrapper *next; | ||
| 26728 | +}; | ||
| 26729 | + | ||
| 26730 | + | ||
| 26731 | +/* | ||
| 26732 | + * The type of a C/C++ wrapper object that supports parent/child relationships. | ||
| 26733 | + */ | ||
| 26734 | +struct _sipWrapper { | ||
| 26735 | + /* The super-type. */ | ||
| 26736 | + sipSimpleWrapper super; | ||
| 26737 | + | ||
| 26738 | + /* First child object. */ | ||
| 26739 | + struct _sipWrapper *first_child; | ||
| 26740 | + | ||
| 26741 | + /* Next sibling. */ | ||
| 26742 | + struct _sipWrapper *sibling_next; | ||
| 26743 | + | ||
| 26744 | + /* Previous sibling. */ | ||
| 26745 | + struct _sipWrapper *sibling_prev; | ||
| 26746 | + | ||
| 26747 | + /* Owning object. */ | ||
| 26748 | + struct _sipWrapper *parent; | ||
| 26749 | +}; | ||
| 26750 | + | ||
| 26751 | + | ||
| 26752 | +/* | ||
| 26753 | + * The meta-type of an enum type. (This is exposed only to support the | ||
| 26754 | + * deprecated sipConvertFromNamedEnum() macro.) | ||
| 26755 | + */ | ||
| 26756 | +struct _sipEnumTypeObject { | ||
| 26757 | + /* | ||
| 26758 | + * The super-metatype. This must be first in the structure so that it can | ||
| 26759 | + * be cast to a PyTypeObject *. | ||
| 26760 | + */ | ||
| 26761 | + PyHeapTypeObject super; | ||
| 26762 | + | ||
| 26763 | + /* The generated type structure. */ | ||
| 26764 | + struct _sipTypeDef *type; | ||
| 26765 | +}; | ||
| 26766 | +#endif | ||
| 26767 | + | ||
| 26768 | + | ||
| 26769 | +/* | ||
| 26770 | + * The information describing an encoded type ID. | ||
| 26771 | + */ | ||
| 26772 | +typedef struct _sipEncodedTypeDef { | ||
| 26773 | + /* The type number. */ | ||
| 26774 | + unsigned sc_type : 16; | ||
| 26775 | + | ||
| 26776 | + /* The module number (255 for this one). */ | ||
| 26777 | + unsigned sc_module : 8; | ||
| 26778 | + | ||
| 26779 | + /* A context specific flag. */ | ||
| 26780 | + unsigned sc_flag : 1; | ||
| 26781 | +} sipEncodedTypeDef; | ||
| 26782 | + | ||
| 26783 | + | ||
| 26784 | +/* | ||
| 26785 | + * The information describing an enum member. | ||
| 26786 | + */ | ||
| 26787 | +typedef struct _sipEnumMemberDef { | ||
| 26788 | + /* The member name. */ | ||
| 26789 | + const char *em_name; | ||
| 26790 | + | ||
| 26791 | + /* The member value. */ | ||
| 26792 | + int em_val; | ||
| 26793 | + | ||
| 26794 | + /* The member enum, -ve if anonymous. */ | ||
| 26795 | + int em_enum; | ||
| 26796 | +} sipEnumMemberDef; | ||
| 26797 | + | ||
| 26798 | + | ||
| 26799 | +/* | ||
| 26800 | + * The information describing static instances. | ||
| 26801 | + */ | ||
| 26802 | +typedef struct _sipInstancesDef { | ||
| 26803 | + /* The types. */ | ||
| 26804 | + struct _sipTypeInstanceDef *id_type; | ||
| 26805 | + | ||
| 26806 | + /* The void *. */ | ||
| 26807 | + struct _sipVoidPtrInstanceDef *id_voidp; | ||
| 26808 | + | ||
| 26809 | + /* The chars. */ | ||
| 26810 | + struct _sipCharInstanceDef *id_char; | ||
| 26811 | + | ||
| 26812 | + /* The strings. */ | ||
| 26813 | + struct _sipStringInstanceDef *id_string; | ||
| 26814 | + | ||
| 26815 | + /* The ints. */ | ||
| 26816 | + struct _sipIntInstanceDef *id_int; | ||
| 26817 | + | ||
| 26818 | + /* The longs. */ | ||
| 26819 | + struct _sipLongInstanceDef *id_long; | ||
| 26820 | + | ||
| 26821 | + /* The unsigned longs. */ | ||
| 26822 | + struct _sipUnsignedLongInstanceDef *id_ulong; | ||
| 26823 | + | ||
| 26824 | + /* The long longs. */ | ||
| 26825 | + struct _sipLongLongInstanceDef *id_llong; | ||
| 26826 | + | ||
| 26827 | + /* The unsigned long longs. */ | ||
| 26828 | + struct _sipUnsignedLongLongInstanceDef *id_ullong; | ||
| 26829 | + | ||
| 26830 | + /* The doubles. */ | ||
| 26831 | + struct _sipDoubleInstanceDef *id_double; | ||
| 26832 | +} sipInstancesDef; | ||
| 26833 | + | ||
| 26834 | + | ||
| 26835 | +/* | ||
| 26836 | + * The information describing a type initialiser extender. | ||
| 26837 | + */ | ||
| 26838 | +typedef struct _sipInitExtenderDef { | ||
| 26839 | + /* The API version range index. */ | ||
| 26840 | + int ie_api_range; | ||
| 26841 | + | ||
| 26842 | + /* The extender function. */ | ||
| 26843 | + sipInitFunc ie_extender; | ||
| 26844 | + | ||
| 26845 | + /* The class being extended. */ | ||
| 26846 | + sipEncodedTypeDef ie_class; | ||
| 26847 | + | ||
| 26848 | + /* The next extender for this class. */ | ||
| 26849 | + struct _sipInitExtenderDef *ie_next; | ||
| 26850 | +} sipInitExtenderDef; | ||
| 26851 | + | ||
| 26852 | + | ||
| 26853 | +/* | ||
| 26854 | + * The information describing a sub-class convertor. | ||
| 26855 | + */ | ||
| 26856 | +typedef struct _sipSubClassConvertorDef { | ||
| 26857 | + /* The convertor. */ | ||
| 26858 | + sipSubClassConvertFunc scc_convertor; | ||
| 26859 | + | ||
| 26860 | + /* The encoded base type. */ | ||
| 26861 | + sipEncodedTypeDef scc_base; | ||
| 26862 | + | ||
| 26863 | + /* The base type. */ | ||
| 26864 | + struct _sipTypeDef *scc_basetype; | ||
| 26865 | +} sipSubClassConvertorDef; | ||
| 26866 | + | ||
| 26867 | + | ||
| 26868 | +/* | ||
| 26869 | + * The structure populated by %BIGetBufferCode when the limited API is enabled. | ||
| 26870 | + */ | ||
| 26871 | +struct _sipBufferDef { | ||
| 26872 | + /* The address of the buffer. */ | ||
| 26873 | + void *bd_buffer; | ||
| 26874 | + | ||
| 26875 | + /* The length of the buffer. */ | ||
| 26876 | + SIP_SSIZE_T bd_length; | ||
| 26877 | + | ||
| 26878 | + /* Set if the buffer is read-only. */ | ||
| 26879 | + int bd_readonly; | ||
| 26880 | +}; | ||
| 26881 | + | ||
| 26882 | + | ||
| 26883 | +/* | ||
| 26884 | + * The structure describing a Python buffer. | ||
| 26885 | + */ | ||
| 26886 | +struct _sipBufferInfoDef { | ||
| 26887 | + /* This is internal to sip. */ | ||
| 26888 | + void *bi_internal; | ||
| 26889 | + | ||
| 26890 | + /* The address of the buffer. */ | ||
| 26891 | + void *bi_buf; | ||
| 26892 | + | ||
| 26893 | + /* A reference to the object implementing the buffer interface. */ | ||
| 26894 | + PyObject *bi_obj; | ||
| 26895 | + | ||
| 26896 | + /* The length of the buffer in bytes. */ | ||
| 26897 | + SIP_SSIZE_T bi_len; | ||
| 26898 | + | ||
| 26899 | + /* The number of dimensions. */ | ||
| 26900 | + int bi_ndim; | ||
| 26901 | + | ||
| 26902 | + /* The format of each element of the buffer. */ | ||
| 26903 | + char *bi_format; | ||
| 26904 | +}; | ||
| 26905 | + | ||
| 26906 | + | ||
| 26907 | +/* | ||
| 26908 | + * The structure describing a Python C function. | ||
| 26909 | + */ | ||
| 26910 | +struct _sipCFunctionDef { | ||
| 26911 | + /* The C function. */ | ||
| 26912 | + PyMethodDef *cf_function; | ||
| 26913 | + | ||
| 26914 | + /* The optional bound object. */ | ||
| 26915 | + PyObject *cf_self; | ||
| 26916 | +}; | ||
| 26917 | + | ||
| 26918 | + | ||
| 26919 | +/* | ||
| 26920 | + * The structure describing a Python method. | ||
| 26921 | + */ | ||
| 26922 | +struct _sipMethodDef { | ||
| 26923 | + /* The function that implements the method. */ | ||
| 26924 | + PyObject *pm_function; | ||
| 26925 | + | ||
| 26926 | + /* The bound object. */ | ||
| 26927 | + PyObject *pm_self; | ||
| 26928 | + | ||
| 26929 | +#if PY_MAJOR_VERSION < 3 | ||
| 26930 | + /* The class. */ | ||
| 26931 | + PyObject *pm_class; | ||
| 26932 | +#endif | ||
| 26933 | +}; | ||
| 26934 | + | ||
| 26935 | + | ||
| 26936 | +/* | ||
| 26937 | + * The structure describing a Python date. | ||
| 26938 | + */ | ||
| 26939 | +struct _sipDateDef { | ||
| 26940 | + /* The year. */ | ||
| 26941 | + int pd_year; | ||
| 26942 | + | ||
| 26943 | + /* The month (1-12). */ | ||
| 26944 | + int pd_month; | ||
| 26945 | + | ||
| 26946 | + /* The day (1-31). */ | ||
| 26947 | + int pd_day; | ||
| 26948 | +}; | ||
| 26949 | + | ||
| 26950 | + | ||
| 26951 | +/* | ||
| 26952 | + * The structure describing a Python time. | ||
| 26953 | + */ | ||
| 26954 | +struct _sipTimeDef { | ||
| 26955 | + /* The hour (0-23). */ | ||
| 26956 | + int pt_hour; | ||
| 26957 | + | ||
| 26958 | + /* The minute (0-59). */ | ||
| 26959 | + int pt_minute; | ||
| 26960 | + | ||
| 26961 | + /* The second (0-59). */ | ||
| 26962 | + int pt_second; | ||
| 26963 | + | ||
| 26964 | + /* The microsecond (0-999999). */ | ||
| 26965 | + int pt_microsecond; | ||
| 26966 | +}; | ||
| 26967 | + | ||
| 26968 | + | ||
| 26969 | +/* | ||
| 26970 | + * The different error states of handwritten code. | ||
| 26971 | + */ | ||
| 26972 | +typedef enum { | ||
| 26973 | + sipErrorNone, /* There is no error. */ | ||
| 26974 | + sipErrorFail, /* The error is a failure. */ | ||
| 26975 | + sipErrorContinue /* It may not apply if a later operation succeeds. */ | ||
| 26976 | +} sipErrorState; | ||
| 26977 | + | ||
| 26978 | + | ||
| 26979 | +/* | ||
| 26980 | + * The different Python slot types. New slots must be added to the end, | ||
| 26981 | + * otherwise the major version of the internal ABI must be changed. | ||
| 26982 | + */ | ||
| 26983 | +typedef enum { | ||
| 26984 | + str_slot, /* __str__ */ | ||
| 26985 | + int_slot, /* __int__ */ | ||
| 26986 | +#if PY_MAJOR_VERSION < 3 | ||
| 26987 | + long_slot, /* __long__ */ | ||
| 26988 | +#endif | ||
| 26989 | + float_slot, /* __float__ */ | ||
| 26990 | + len_slot, /* __len__ */ | ||
| 26991 | + contains_slot, /* __contains__ */ | ||
| 26992 | + add_slot, /* __add__ for number */ | ||
| 26993 | + concat_slot, /* __add__ for sequence types */ | ||
| 26994 | + sub_slot, /* __sub__ */ | ||
| 26995 | + mul_slot, /* __mul__ for number types */ | ||
| 26996 | + repeat_slot, /* __mul__ for sequence types */ | ||
| 26997 | + div_slot, /* __div__ */ | ||
| 26998 | + mod_slot, /* __mod__ */ | ||
| 26999 | + floordiv_slot, /* __floordiv__ */ | ||
| 27000 | + truediv_slot, /* __truediv__ */ | ||
| 27001 | + and_slot, /* __and__ */ | ||
| 27002 | + or_slot, /* __or__ */ | ||
| 27003 | + xor_slot, /* __xor__ */ | ||
| 27004 | + lshift_slot, /* __lshift__ */ | ||
| 27005 | + rshift_slot, /* __rshift__ */ | ||
| 27006 | + iadd_slot, /* __iadd__ for number types */ | ||
| 27007 | + iconcat_slot, /* __iadd__ for sequence types */ | ||
| 27008 | + isub_slot, /* __isub__ */ | ||
| 27009 | + imul_slot, /* __imul__ for number types */ | ||
| 27010 | + irepeat_slot, /* __imul__ for sequence types */ | ||
| 27011 | + idiv_slot, /* __idiv__ */ | ||
| 27012 | + imod_slot, /* __imod__ */ | ||
| 27013 | + ifloordiv_slot, /* __ifloordiv__ */ | ||
| 27014 | + itruediv_slot, /* __itruediv__ */ | ||
| 27015 | + iand_slot, /* __iand__ */ | ||
| 27016 | + ior_slot, /* __ior__ */ | ||
| 27017 | + ixor_slot, /* __ixor__ */ | ||
| 27018 | + ilshift_slot, /* __ilshift__ */ | ||
| 27019 | + irshift_slot, /* __irshift__ */ | ||
| 27020 | + invert_slot, /* __invert__ */ | ||
| 27021 | + call_slot, /* __call__ */ | ||
| 27022 | + getitem_slot, /* __getitem__ */ | ||
| 27023 | + setitem_slot, /* __setitem__ */ | ||
| 27024 | + delitem_slot, /* __delitem__ */ | ||
| 27025 | + lt_slot, /* __lt__ */ | ||
| 27026 | + le_slot, /* __le__ */ | ||
| 27027 | + eq_slot, /* __eq__ */ | ||
| 27028 | + ne_slot, /* __ne__ */ | ||
| 27029 | + gt_slot, /* __gt__ */ | ||
| 27030 | + ge_slot, /* __ge__ */ | ||
| 27031 | +#if PY_MAJOR_VERSION < 3 | ||
| 27032 | + cmp_slot, /* __cmp__ */ | ||
| 27033 | +#endif | ||
| 27034 | + bool_slot, /* __bool__, __nonzero__ */ | ||
| 27035 | + neg_slot, /* __neg__ */ | ||
| 27036 | + repr_slot, /* __repr__ */ | ||
| 27037 | + hash_slot, /* __hash__ */ | ||
| 27038 | + pos_slot, /* __pos__ */ | ||
| 27039 | + abs_slot, /* __abs__ */ | ||
| 27040 | +#if PY_VERSION_HEX >= 0x02050000 | ||
| 27041 | + index_slot, /* __index__ */ | ||
| 27042 | +#endif | ||
| 27043 | + iter_slot, /* __iter__ */ | ||
| 27044 | + next_slot, /* __next__ */ | ||
| 27045 | + setattr_slot, /* __setattr__, __delattr__ */ | ||
| 27046 | + matmul_slot, /* __matmul__ (for Python v3.5 and later) */ | ||
| 27047 | + imatmul_slot, /* __imatmul__ (for Python v3.5 and later) */ | ||
| 27048 | + await_slot, /* __await__ (for Python v3.5 and later) */ | ||
| 27049 | + aiter_slot, /* __aiter__ (for Python v3.5 and later) */ | ||
| 27050 | + anext_slot, /* __anext__ (for Python v3.5 and later) */ | ||
| 27051 | +} sipPySlotType; | ||
| 27052 | + | ||
| 27053 | + | ||
| 27054 | +/* | ||
| 27055 | + * The information describing a Python slot function. | ||
| 27056 | + */ | ||
| 27057 | +typedef struct _sipPySlotDef { | ||
| 27058 | + /* The function. */ | ||
| 27059 | + void *psd_func; | ||
| 27060 | + | ||
| 27061 | + /* The type. */ | ||
| 27062 | + sipPySlotType psd_type; | ||
| 27063 | +} sipPySlotDef; | ||
| 27064 | + | ||
| 27065 | + | ||
| 27066 | +/* | ||
| 27067 | + * The information describing a Python slot extender. | ||
| 27068 | + */ | ||
| 27069 | +typedef struct _sipPySlotExtenderDef { | ||
| 27070 | + /* The function. */ | ||
| 27071 | + void *pse_func; | ||
| 27072 | + | ||
| 27073 | + /* The type. */ | ||
| 27074 | + sipPySlotType pse_type; | ||
| 27075 | + | ||
| 27076 | + /* The encoded class. */ | ||
| 27077 | + sipEncodedTypeDef pse_class; | ||
| 27078 | +} sipPySlotExtenderDef; | ||
| 27079 | + | ||
| 27080 | + | ||
| 27081 | +/* | ||
| 27082 | + * The information describing a typedef. | ||
| 27083 | + */ | ||
| 27084 | +typedef struct _sipTypedefDef { | ||
| 27085 | + /* The typedef name. */ | ||
| 27086 | + const char *tdd_name; | ||
| 27087 | + | ||
| 27088 | + /* The typedef value. */ | ||
| 27089 | + const char *tdd_type_name; | ||
| 27090 | +} sipTypedefDef; | ||
| 27091 | + | ||
| 27092 | + | ||
| 27093 | +/* | ||
| 27094 | + * The information describing a variable or property. | ||
| 27095 | + */ | ||
| 27096 | + | ||
| 27097 | +typedef enum | ||
| 27098 | +{ | ||
| 27099 | + PropertyVariable, /* A property. */ | ||
| 27100 | + InstanceVariable, /* An instance variable. */ | ||
| 27101 | + ClassVariable /* A class (i.e. static) variable. */ | ||
| 27102 | +} sipVariableType; | ||
| 27103 | + | ||
| 27104 | +typedef struct _sipVariableDef { | ||
| 27105 | + /* The type of variable. */ | ||
| 27106 | + sipVariableType vd_type; | ||
| 27107 | + | ||
| 27108 | + /* The name. */ | ||
| 27109 | + const char *vd_name; | ||
| 27110 | + | ||
| 27111 | + /* | ||
| 27112 | + * The getter. If this is a variable (rather than a property) then the | ||
| 27113 | + * actual type is sipVariableGetterFunc. | ||
| 27114 | + */ | ||
| 27115 | + PyMethodDef *vd_getter; | ||
| 27116 | + | ||
| 27117 | + /* | ||
| 27118 | + * The setter. If this is a variable (rather than a property) then the | ||
| 27119 | + * actual type is sipVariableSetterFunc. It is NULL if the property cannot | ||
| 27120 | + * be set or the variable is const. | ||
| 27121 | + */ | ||
| 27122 | + PyMethodDef *vd_setter; | ||
| 27123 | + | ||
| 27124 | + /* The property deleter. */ | ||
| 27125 | + PyMethodDef *vd_deleter; | ||
| 27126 | + | ||
| 27127 | + /* The docstring. */ | ||
| 27128 | + const char *vd_docstring; | ||
| 27129 | +} sipVariableDef; | ||
| 27130 | + | ||
| 27131 | + | ||
| 27132 | +/* | ||
| 27133 | + * The information describing a type, either a C++ class (or C struct), a C++ | ||
| 27134 | + * namespace, a mapped type or a named enum. | ||
| 27135 | + */ | ||
| 27136 | +struct _sipTypeDef { | ||
| 27137 | + /* The version range index, -1 if the type isn't versioned. */ | ||
| 27138 | + int td_version; | ||
| 27139 | + | ||
| 27140 | + /* The next version of this type. */ | ||
| 27141 | + struct _sipTypeDef *td_next_version; | ||
| 27142 | + | ||
| 27143 | + /* | ||
| 27144 | + * The module, 0 if the type hasn't been initialised. | ||
| 27145 | + */ | ||
| 27146 | + struct _sipExportedModuleDef *td_module; | ||
| 27147 | + | ||
| 27148 | + /* Type flags, see the sipType*() macros. */ | ||
| 27149 | + int td_flags; | ||
| 27150 | + | ||
| 27151 | + /* The C/C++ name of the type. */ | ||
| 27152 | + int td_cname; | ||
| 27153 | + | ||
| 27154 | + /* | ||
| 27155 | + * The Python type object. This needs to be a union until we remove the | ||
| 27156 | + * deprecated sipClass_* macros. | ||
| 27157 | + */ | ||
| 27158 | + union { | ||
| 27159 | + PyTypeObject *td_py_type; | ||
| 27160 | + sipWrapperType *td_wrapper_type; | ||
| 27161 | + } u; | ||
| 27162 | + | ||
| 27163 | + /* Any additional fixed data generated by a plugin. */ | ||
| 27164 | + void *td_plugin_data; | ||
| 27165 | +}; | ||
| 27166 | + | ||
| 27167 | + | ||
| 27168 | +/* | ||
| 27169 | + * The information describing a container (ie. a class, namespace or a mapped | ||
| 27170 | + * type). | ||
| 27171 | + */ | ||
| 27172 | +typedef struct _sipContainerDef { | ||
| 27173 | + /* | ||
| 27174 | + * The Python name of the type, -1 if this is a namespace extender (in the | ||
| 27175 | + * context of a class) or doesn't require a namespace (in the context of a | ||
| 27176 | + * mapped type). */ | ||
| 27177 | + int cod_name; | ||
| 27178 | + | ||
| 27179 | + /* | ||
| 27180 | + * The scoping type or the namespace this is extending if it is a namespace | ||
| 27181 | + * extender. | ||
| 27182 | + */ | ||
| 27183 | + sipEncodedTypeDef cod_scope; | ||
| 27184 | + | ||
| 27185 | + /* The number of lazy methods. */ | ||
| 27186 | + int cod_nrmethods; | ||
| 27187 | + | ||
| 27188 | + /* The table of lazy methods. */ | ||
| 27189 | + PyMethodDef *cod_methods; | ||
| 27190 | + | ||
| 27191 | + /* The number of lazy enum members. */ | ||
| 27192 | + int cod_nrenummembers; | ||
| 27193 | + | ||
| 27194 | + /* The table of lazy enum members. */ | ||
| 27195 | + sipEnumMemberDef *cod_enummembers; | ||
| 27196 | + | ||
| 27197 | + /* The number of variables. */ | ||
| 27198 | + int cod_nrvariables; | ||
| 27199 | + | ||
| 27200 | + /* The table of variables. */ | ||
| 27201 | + sipVariableDef *cod_variables; | ||
| 27202 | + | ||
| 27203 | + /* The static instances. */ | ||
| 27204 | + sipInstancesDef cod_instances; | ||
| 27205 | +} sipContainerDef; | ||
| 27206 | + | ||
| 27207 | + | ||
| 27208 | +/* | ||
| 27209 | + * The information describing a C++ class (or C struct) or a C++ namespace. | ||
| 27210 | + */ | ||
| 27211 | +typedef struct _sipClassTypeDef { | ||
| 27212 | + /* The base type information. */ | ||
| 27213 | + sipTypeDef ctd_base; | ||
| 27214 | + | ||
| 27215 | + /* The container information. */ | ||
| 27216 | + sipContainerDef ctd_container; | ||
| 27217 | + | ||
| 27218 | + /* The docstring. */ | ||
| 27219 | + const char *ctd_docstring; | ||
| 27220 | + | ||
| 27221 | + /* | ||
| 27222 | + * The meta-type name, -1 to use the meta-type of the first super-type | ||
| 27223 | + * (normally sipWrapperType). | ||
| 27224 | + */ | ||
| 27225 | + int ctd_metatype; | ||
| 27226 | + | ||
| 27227 | + /* The super-type name, -1 to use sipWrapper. */ | ||
| 27228 | + int ctd_supertype; | ||
| 27229 | + | ||
| 27230 | + /* The super-types. */ | ||
| 27231 | + sipEncodedTypeDef *ctd_supers; | ||
| 27232 | + | ||
| 27233 | + /* The table of Python slots. */ | ||
| 27234 | + sipPySlotDef *ctd_pyslots; | ||
| 27235 | + | ||
| 27236 | + /* The initialisation function. */ | ||
| 27237 | + sipInitFunc ctd_init; | ||
| 27238 | + | ||
| 27239 | + /* The traverse function. */ | ||
| 27240 | + sipTraverseFunc ctd_traverse; | ||
| 27241 | + | ||
| 27242 | + /* The clear function. */ | ||
| 27243 | + sipClearFunc ctd_clear; | ||
| 27244 | + | ||
| 27245 | +#if PY_MAJOR_VERSION >= 3 | ||
| 27246 | + /* The get buffer function. */ | ||
| 27247 | +#if defined(Py_LIMITED_API) | ||
| 27248 | + sipGetBufferFuncLimited ctd_getbuffer; | ||
| 27249 | +#else | ||
| 27250 | + sipGetBufferFunc ctd_getbuffer; | ||
| 27251 | +#endif | ||
| 27252 | + | ||
| 27253 | + /* The release buffer function. */ | ||
| 27254 | +#if defined(Py_LIMITED_API) | ||
| 27255 | + sipReleaseBufferFuncLimited ctd_releasebuffer; | ||
| 27256 | +#else | ||
| 27257 | + sipReleaseBufferFunc ctd_releasebuffer; | ||
| 27258 | +#endif | ||
| 27259 | +#else | ||
| 27260 | + /* The read buffer function. */ | ||
| 27261 | + sipBufferFunc ctd_readbuffer; | ||
| 27262 | + | ||
| 27263 | + /* The write buffer function. */ | ||
| 27264 | + sipBufferFunc ctd_writebuffer; | ||
| 27265 | + | ||
| 27266 | + /* The segment count function. */ | ||
| 27267 | + sipSegCountFunc ctd_segcount; | ||
| 27268 | + | ||
| 27269 | + /* The char buffer function. */ | ||
| 27270 | + sipBufferFunc ctd_charbuffer; | ||
| 27271 | +#endif | ||
| 27272 | + | ||
| 27273 | + /* The deallocation function. */ | ||
| 27274 | + sipDeallocFunc ctd_dealloc; | ||
| 27275 | + | ||
| 27276 | + /* The optional assignment function. */ | ||
| 27277 | + sipAssignFunc ctd_assign; | ||
| 27278 | + | ||
| 27279 | + /* The optional array allocation function. */ | ||
| 27280 | + sipArrayFunc ctd_array; | ||
| 27281 | + | ||
| 27282 | + /* The optional copy function. */ | ||
| 27283 | + sipCopyFunc ctd_copy; | ||
| 27284 | + | ||
| 27285 | + /* The release function, 0 if a C struct. */ | ||
| 27286 | + sipReleaseFunc ctd_release; | ||
| 27287 | + | ||
| 27288 | + /* The cast function, 0 if a C struct. */ | ||
| 27289 | + sipCastFunc ctd_cast; | ||
| 27290 | + | ||
| 27291 | + /* The optional convert to function. */ | ||
| 27292 | + sipConvertToFunc ctd_cto; | ||
| 27293 | + | ||
| 27294 | + /* The optional convert from function. */ | ||
| 27295 | + sipConvertFromFunc ctd_cfrom; | ||
| 27296 | + | ||
| 27297 | + /* The next namespace extender. */ | ||
| 27298 | + struct _sipClassTypeDef *ctd_nsextender; | ||
| 27299 | + | ||
| 27300 | + /* The pickle function. */ | ||
| 27301 | + sipPickleFunc ctd_pickle; | ||
| 27302 | + | ||
| 27303 | + /* The finalisation function. */ | ||
| 27304 | + sipFinalFunc ctd_final; | ||
| 27305 | + | ||
| 27306 | + /* The mixin initialisation function. */ | ||
| 27307 | + initproc ctd_init_mixin; | ||
| 27308 | +} sipClassTypeDef; | ||
| 27309 | + | ||
| 27310 | + | ||
| 27311 | +/* | ||
| 27312 | + * The information describing a mapped type. | ||
| 27313 | + */ | ||
| 27314 | +typedef struct _sipMappedTypeDef { | ||
| 27315 | + /* The base type information. */ | ||
| 27316 | + sipTypeDef mtd_base; | ||
| 27317 | + | ||
| 27318 | + /* The container information. */ | ||
| 27319 | + sipContainerDef mtd_container; | ||
| 27320 | + | ||
| 27321 | + /* The optional assignment function. */ | ||
| 27322 | + sipAssignFunc mtd_assign; | ||
| 27323 | + | ||
| 27324 | + /* The optional array allocation function. */ | ||
| 27325 | + sipArrayFunc mtd_array; | ||
| 27326 | + | ||
| 27327 | + /* The optional copy function. */ | ||
| 27328 | + sipCopyFunc mtd_copy; | ||
| 27329 | + | ||
| 27330 | + /* The optional release function. */ | ||
| 27331 | + sipReleaseFunc mtd_release; | ||
| 27332 | + | ||
| 27333 | + /* The convert to function. */ | ||
| 27334 | + sipConvertToFunc mtd_cto; | ||
| 27335 | + | ||
| 27336 | + /* The convert from function. */ | ||
| 27337 | + sipConvertFromFunc mtd_cfrom; | ||
| 27338 | +} sipMappedTypeDef; | ||
| 27339 | + | ||
| 27340 | + | ||
| 27341 | +/* | ||
| 27342 | + * The information describing a named enum. | ||
| 27343 | + */ | ||
| 27344 | +typedef struct _sipEnumTypeDef { | ||
| 27345 | + /* The base type information. */ | ||
| 27346 | + sipTypeDef etd_base; | ||
| 27347 | + | ||
| 27348 | + /* The Python name of the enum. */ | ||
| 27349 | + int etd_name; | ||
| 27350 | + | ||
| 27351 | + /* The scoping type, -1 if it is defined at the module level. */ | ||
| 27352 | + int etd_scope; | ||
| 27353 | + | ||
| 27354 | + /* The Python slots. */ | ||
| 27355 | + struct _sipPySlotDef *etd_pyslots; | ||
| 27356 | +} sipEnumTypeDef; | ||
| 27357 | + | ||
| 27358 | + | ||
| 27359 | +/* | ||
| 27360 | + * The information describing an external type. | ||
| 27361 | + */ | ||
| 27362 | +typedef struct _sipExternalTypeDef { | ||
| 27363 | + /* The index into the type table. */ | ||
| 27364 | + int et_nr; | ||
| 27365 | + | ||
| 27366 | + /* The name of the type. */ | ||
| 27367 | + const char *et_name; | ||
| 27368 | +} sipExternalTypeDef; | ||
| 27369 | + | ||
| 27370 | + | ||
| 27371 | +/* | ||
| 27372 | + * The information describing a mapped class. This (and anything that uses it) | ||
| 27373 | + * is deprecated. | ||
| 27374 | + */ | ||
| 27375 | +typedef sipTypeDef sipMappedType; | ||
| 27376 | + | ||
| 27377 | + | ||
| 27378 | +/* | ||
| 27379 | + * Defines an entry in the module specific list of delayed dtor calls. | ||
| 27380 | + */ | ||
| 27381 | +typedef struct _sipDelayedDtor { | ||
| 27382 | + /* The C/C++ instance. */ | ||
| 27383 | + void *dd_ptr; | ||
| 27384 | + | ||
| 27385 | + /* The class name. */ | ||
| 27386 | + const char *dd_name; | ||
| 27387 | + | ||
| 27388 | + /* Non-zero if dd_ptr is a derived class instance. */ | ||
| 27389 | + int dd_isderived; | ||
| 27390 | + | ||
| 27391 | + /* Next in the list. */ | ||
| 27392 | + struct _sipDelayedDtor *dd_next; | ||
| 27393 | +} sipDelayedDtor; | ||
| 27394 | + | ||
| 27395 | + | ||
| 27396 | +/* | ||
| 27397 | + * Defines an entry in the table of global functions all of whose overloads | ||
| 27398 | + * are versioned (so their names can't be automatically added to the module | ||
| 27399 | + * dictionary). | ||
| 27400 | + */ | ||
| 27401 | +typedef struct _sipVersionedFunctionDef { | ||
| 27402 | + /* The name, -1 marks the end of the table. */ | ||
| 27403 | + int vf_name; | ||
| 27404 | + | ||
| 27405 | + /* The function itself. */ | ||
| 27406 | + PyCFunction vf_function; | ||
| 27407 | + | ||
| 27408 | + /* The METH_* flags. */ | ||
| 27409 | + int vf_flags; | ||
| 27410 | + | ||
| 27411 | + /* The docstring. */ | ||
| 27412 | + const char *vf_docstring; | ||
| 27413 | + | ||
| 27414 | + /* The API version range index. */ | ||
| 27415 | + int vf_api_range; | ||
| 27416 | +} sipVersionedFunctionDef; | ||
| 27417 | + | ||
| 27418 | + | ||
| 27419 | +/* | ||
| 27420 | + * Defines a virtual error handler. | ||
| 27421 | + */ | ||
| 27422 | +typedef struct _sipVirtErrorHandlerDef { | ||
| 27423 | + /* The name of the handler. */ | ||
| 27424 | + const char *veh_name; | ||
| 27425 | + | ||
| 27426 | + /* The handler function. */ | ||
| 27427 | + sipVirtErrorHandlerFunc veh_handler; | ||
| 27428 | +} sipVirtErrorHandlerDef; | ||
| 27429 | + | ||
| 27430 | + | ||
| 27431 | +/* | ||
| 27432 | + * Defines a type imported from another module. | ||
| 27433 | + */ | ||
| 27434 | +typedef union _sipImportedTypeDef { | ||
| 27435 | + /* The type name before the module is imported. */ | ||
| 27436 | + const char *it_name; | ||
| 27437 | + | ||
| 27438 | + /* The type after the module is imported. */ | ||
| 27439 | + sipTypeDef *it_td; | ||
| 27440 | +} sipImportedTypeDef; | ||
| 27441 | + | ||
| 27442 | + | ||
| 27443 | +/* | ||
| 27444 | + * Defines a virtual error handler imported from another module. | ||
| 27445 | + */ | ||
| 27446 | +typedef union _sipImportedVirtErrorHandlerDef { | ||
| 27447 | + /* The handler name before the module is imported. */ | ||
| 27448 | + const char *iveh_name; | ||
| 27449 | + | ||
| 27450 | + /* The handler after the module is imported. */ | ||
| 27451 | + sipVirtErrorHandlerFunc iveh_handler; | ||
| 27452 | +} sipImportedVirtErrorHandlerDef; | ||
| 27453 | + | ||
| 27454 | + | ||
| 27455 | +/* | ||
| 27456 | + * Defines an exception imported from another module. | ||
| 27457 | + */ | ||
| 27458 | +typedef union _sipImportedExceptionDef { | ||
| 27459 | + /* The exception name before the module is imported. */ | ||
| 27460 | + const char *iexc_name; | ||
| 27461 | + | ||
| 27462 | + /* The exception object after the module is imported. */ | ||
| 27463 | + PyObject *iexc_object; | ||
| 27464 | +} sipImportedExceptionDef; | ||
| 27465 | + | ||
| 27466 | + | ||
| 27467 | +/* | ||
| 27468 | + * The information describing an imported module. | ||
| 27469 | + */ | ||
| 27470 | +typedef struct _sipImportedModuleDef { | ||
| 27471 | + /* The module name. */ | ||
| 27472 | + const char *im_name; | ||
| 27473 | + | ||
| 27474 | + /* The types imported from the module. */ | ||
| 27475 | + sipImportedTypeDef *im_imported_types; | ||
| 27476 | + | ||
| 27477 | + /* The virtual error handlers imported from the module. */ | ||
| 27478 | + sipImportedVirtErrorHandlerDef *im_imported_veh; | ||
| 27479 | + | ||
| 27480 | + /* The exceptions imported from the module. */ | ||
| 27481 | + sipImportedExceptionDef *im_imported_exceptions; | ||
| 27482 | +} sipImportedModuleDef; | ||
| 27483 | + | ||
| 27484 | + | ||
| 27485 | +/* | ||
| 27486 | + * The main client module structure. | ||
| 27487 | + */ | ||
| 27488 | +typedef struct _sipExportedModuleDef { | ||
| 27489 | + /* The next in the list. */ | ||
| 27490 | + struct _sipExportedModuleDef *em_next; | ||
| 27491 | + | ||
| 27492 | + /* The SIP API minor version number. */ | ||
| 27493 | + unsigned em_api_minor; | ||
| 27494 | + | ||
| 27495 | + /* The module name. */ | ||
| 27496 | + int em_name; | ||
| 27497 | + | ||
| 27498 | + /* The module name as an object. */ | ||
| 27499 | + PyObject *em_nameobj; | ||
| 27500 | + | ||
| 27501 | + /* The string pool. */ | ||
| 27502 | + const char *em_strings; | ||
| 27503 | + | ||
| 27504 | + /* The imported modules. */ | ||
| 27505 | + sipImportedModuleDef *em_imports; | ||
| 27506 | + | ||
| 27507 | + /* The optional Qt support API. */ | ||
| 27508 | + struct _sipQtAPI *em_qt_api; | ||
| 27509 | + | ||
| 27510 | + /* The number of types. */ | ||
| 27511 | + int em_nrtypes; | ||
| 27512 | + | ||
| 27513 | + /* The table of types. */ | ||
| 27514 | + sipTypeDef **em_types; | ||
| 27515 | + | ||
| 27516 | + /* The table of external types. */ | ||
| 27517 | + sipExternalTypeDef *em_external; | ||
| 27518 | + | ||
| 27519 | + /* The number of members in global enums. */ | ||
| 27520 | + int em_nrenummembers; | ||
| 27521 | + | ||
| 27522 | + /* The table of members in global enums. */ | ||
| 27523 | + sipEnumMemberDef *em_enummembers; | ||
| 27524 | + | ||
| 27525 | + /* The number of typedefs. */ | ||
| 27526 | + int em_nrtypedefs; | ||
| 27527 | + | ||
| 27528 | + /* The table of typedefs. */ | ||
| 27529 | + sipTypedefDef *em_typedefs; | ||
| 27530 | + | ||
| 27531 | + /* The table of virtual error handlers. */ | ||
| 27532 | + sipVirtErrorHandlerDef *em_virterrorhandlers; | ||
| 27533 | + | ||
| 27534 | + /* The sub-class convertors. */ | ||
| 27535 | + sipSubClassConvertorDef *em_convertors; | ||
| 27536 | + | ||
| 27537 | + /* The static instances. */ | ||
| 27538 | + sipInstancesDef em_instances; | ||
| 27539 | + | ||
| 27540 | + /* The license. */ | ||
| 27541 | + struct _sipLicenseDef *em_license; | ||
| 27542 | + | ||
| 27543 | + /* The table of exception types. */ | ||
| 27544 | + PyObject **em_exceptions; | ||
| 27545 | + | ||
| 27546 | + /* The table of Python slot extenders. */ | ||
| 27547 | + sipPySlotExtenderDef *em_slotextend; | ||
| 27548 | + | ||
| 27549 | + /* The table of initialiser extenders. */ | ||
| 27550 | + sipInitExtenderDef *em_initextend; | ||
| 27551 | + | ||
| 27552 | + /* The delayed dtor handler. */ | ||
| 27553 | + void (*em_delayeddtors)(const sipDelayedDtor *); | ||
| 27554 | + | ||
| 27555 | + /* The list of delayed dtors. */ | ||
| 27556 | + sipDelayedDtor *em_ddlist; | ||
| 27557 | + | ||
| 27558 | + /* | ||
| 27559 | + * The array of API version definitions. Each definition takes up 3 | ||
| 27560 | + * elements. If the third element of a 3-tuple is negative then the first | ||
| 27561 | + * two elements define an API and its default version. All such | ||
| 27562 | + * definitions will appear at the end of the array. If the first element | ||
| 27563 | + * of a 3-tuple is negative then that is the last element of the array. | ||
| 27564 | + */ | ||
| 27565 | + int *em_versions; | ||
| 27566 | + | ||
| 27567 | + /* The optional table of versioned functions. */ | ||
| 27568 | + sipVersionedFunctionDef *em_versioned_functions; | ||
| 27569 | +} sipExportedModuleDef; | ||
| 27570 | + | ||
| 27571 | + | ||
| 27572 | +/* | ||
| 27573 | + * The information describing a license to be added to a dictionary. | ||
| 27574 | + */ | ||
| 27575 | +typedef struct _sipLicenseDef { | ||
| 27576 | + /* The type of license. */ | ||
| 27577 | + const char *lc_type; | ||
| 27578 | + | ||
| 27579 | + /* The licensee. */ | ||
| 27580 | + const char *lc_licensee; | ||
| 27581 | + | ||
| 27582 | + /* The timestamp. */ | ||
| 27583 | + const char *lc_timestamp; | ||
| 27584 | + | ||
| 27585 | + /* The signature. */ | ||
| 27586 | + const char *lc_signature; | ||
| 27587 | +} sipLicenseDef; | ||
| 27588 | + | ||
| 27589 | + | ||
| 27590 | +/* | ||
| 27591 | + * The information describing a void pointer instance to be added to a | ||
| 27592 | + * dictionary. | ||
| 27593 | + */ | ||
| 27594 | +typedef struct _sipVoidPtrInstanceDef { | ||
| 27595 | + /* The void pointer name. */ | ||
| 27596 | + const char *vi_name; | ||
| 27597 | + | ||
| 27598 | + /* The void pointer value. */ | ||
| 27599 | + void *vi_val; | ||
| 27600 | +} sipVoidPtrInstanceDef; | ||
| 27601 | + | ||
| 27602 | + | ||
| 27603 | +/* | ||
| 27604 | + * The information describing a char instance to be added to a dictionary. | ||
| 27605 | + */ | ||
| 27606 | +typedef struct _sipCharInstanceDef { | ||
| 27607 | + /* The char name. */ | ||
| 27608 | + const char *ci_name; | ||
| 27609 | + | ||
| 27610 | + /* The char value. */ | ||
| 27611 | + char ci_val; | ||
| 27612 | + | ||
| 27613 | + /* The encoding used, either 'A', 'L', '8' or 'N'. */ | ||
| 27614 | + char ci_encoding; | ||
| 27615 | +} sipCharInstanceDef; | ||
| 27616 | + | ||
| 27617 | + | ||
| 27618 | +/* | ||
| 27619 | + * The information describing a string instance to be added to a dictionary. | ||
| 27620 | + * This is also used as a hack to add (or fix) other types rather than add a | ||
| 27621 | + * new table type and so requiring a new major version of the API. | ||
| 27622 | + */ | ||
| 27623 | +typedef struct _sipStringInstanceDef { | ||
| 27624 | + /* The string name. */ | ||
| 27625 | + const char *si_name; | ||
| 27626 | + | ||
| 27627 | + /* The string value. */ | ||
| 27628 | + const char *si_val; | ||
| 27629 | + | ||
| 27630 | + /* | ||
| 27631 | + * The encoding used, either 'A', 'L', '8' or 'N'. 'w' and 'W' are also | ||
| 27632 | + * used to support the fix for wchar_t. | ||
| 27633 | + */ | ||
| 27634 | + char si_encoding; | ||
| 27635 | +} sipStringInstanceDef; | ||
| 27636 | + | ||
| 27637 | + | ||
| 27638 | +/* | ||
| 27639 | + * The information describing an int instance to be added to a dictionary. | ||
| 27640 | + */ | ||
| 27641 | +typedef struct _sipIntInstanceDef { | ||
| 27642 | + /* The int name. */ | ||
| 27643 | + const char *ii_name; | ||
| 27644 | + | ||
| 27645 | + /* The int value. */ | ||
| 27646 | + int ii_val; | ||
| 27647 | +} sipIntInstanceDef; | ||
| 27648 | + | ||
| 27649 | + | ||
| 27650 | +/* | ||
| 27651 | + * The information describing a long instance to be added to a dictionary. | ||
| 27652 | + */ | ||
| 27653 | +typedef struct _sipLongInstanceDef { | ||
| 27654 | + /* The long name. */ | ||
| 27655 | + const char *li_name; | ||
| 27656 | + | ||
| 27657 | + /* The long value. */ | ||
| 27658 | + long li_val; | ||
| 27659 | +} sipLongInstanceDef; | ||
| 27660 | + | ||
| 27661 | + | ||
| 27662 | +/* | ||
| 27663 | + * The information describing an unsigned long instance to be added to a | ||
| 27664 | + * dictionary. | ||
| 27665 | + */ | ||
| 27666 | +typedef struct _sipUnsignedLongInstanceDef { | ||
| 27667 | + /* The unsigned long name. */ | ||
| 27668 | + const char *uli_name; | ||
| 27669 | + | ||
| 27670 | + /* The unsigned long value. */ | ||
| 27671 | + unsigned long uli_val; | ||
| 27672 | +} sipUnsignedLongInstanceDef; | ||
| 27673 | + | ||
| 27674 | + | ||
| 27675 | +/* | ||
| 27676 | + * The information describing a long long instance to be added to a dictionary. | ||
| 27677 | + */ | ||
| 27678 | +typedef struct _sipLongLongInstanceDef { | ||
| 27679 | + /* The long long name. */ | ||
| 27680 | + const char *lli_name; | ||
| 27681 | + | ||
| 27682 | + /* The long long value. */ | ||
| 27683 | +#if defined(HAVE_LONG_LONG) | ||
| 27684 | + PY_LONG_LONG lli_val; | ||
| 27685 | +#else | ||
| 27686 | + long lli_val; | ||
| 27687 | +#endif | ||
| 27688 | +} sipLongLongInstanceDef; | ||
| 27689 | + | ||
| 27690 | + | ||
| 27691 | +/* | ||
| 27692 | + * The information describing an unsigned long long instance to be added to a | ||
| 27693 | + * dictionary. | ||
| 27694 | + */ | ||
| 27695 | +typedef struct _sipUnsignedLongLongInstanceDef { | ||
| 27696 | + /* The unsigned long long name. */ | ||
| 27697 | + const char *ulli_name; | ||
| 27698 | + | ||
| 27699 | + /* The unsigned long long value. */ | ||
| 27700 | +#if defined(HAVE_LONG_LONG) | ||
| 27701 | + unsigned PY_LONG_LONG ulli_val; | ||
| 27702 | +#else | ||
| 27703 | + unsigned long ulli_val; | ||
| 27704 | +#endif | ||
| 27705 | +} sipUnsignedLongLongInstanceDef; | ||
| 27706 | + | ||
| 27707 | + | ||
| 27708 | +/* | ||
| 27709 | + * The information describing a double instance to be added to a dictionary. | ||
| 27710 | + */ | ||
| 27711 | +typedef struct _sipDoubleInstanceDef { | ||
| 27712 | + /* The double name. */ | ||
| 27713 | + const char *di_name; | ||
| 27714 | + | ||
| 27715 | + /* The double value. */ | ||
| 27716 | + double di_val; | ||
| 27717 | +} sipDoubleInstanceDef; | ||
| 27718 | + | ||
| 27719 | + | ||
| 27720 | +/* | ||
| 27721 | + * The information describing a class or enum instance to be added to a | ||
| 27722 | + * dictionary. | ||
| 27723 | + */ | ||
| 27724 | +typedef struct _sipTypeInstanceDef { | ||
| 27725 | + /* The type instance name. */ | ||
| 27726 | + const char *ti_name; | ||
| 27727 | + | ||
| 27728 | + /* The actual instance. */ | ||
| 27729 | + void *ti_ptr; | ||
| 27730 | + | ||
| 27731 | + /* A pointer to the generated type. */ | ||
| 27732 | + struct _sipTypeDef **ti_type; | ||
| 27733 | + | ||
| 27734 | + /* The wrapping flags. */ | ||
| 27735 | + int ti_flags; | ||
| 27736 | +} sipTypeInstanceDef; | ||
| 27737 | + | ||
| 27738 | + | ||
| 27739 | +/* | ||
| 27740 | + * Define a mapping between a wrapped type identified by a string and the | ||
| 27741 | + * corresponding Python type. This is deprecated. | ||
| 27742 | + */ | ||
| 27743 | +typedef struct _sipStringTypeClassMap { | ||
| 27744 | + /* The type as a string. */ | ||
| 27745 | + const char *typeString; | ||
| 27746 | + | ||
| 27747 | + /* A pointer to the Python type. */ | ||
| 27748 | + struct _sipWrapperType **pyType; | ||
| 27749 | +} sipStringTypeClassMap; | ||
| 27750 | + | ||
| 27751 | + | ||
| 27752 | +/* | ||
| 27753 | + * Define a mapping between a wrapped type identified by an integer and the | ||
| 27754 | + * corresponding Python type. This is deprecated. | ||
| 27755 | + */ | ||
| 27756 | +typedef struct _sipIntTypeClassMap { | ||
| 27757 | + /* The type as an integer. */ | ||
| 27758 | + int typeInt; | ||
| 27759 | + | ||
| 27760 | + /* A pointer to the Python type. */ | ||
| 27761 | + struct _sipWrapperType **pyType; | ||
| 27762 | +} sipIntTypeClassMap; | ||
| 27763 | + | ||
| 27764 | + | ||
| 27765 | +/* | ||
| 27766 | + * A Python method's component parts. This allows us to re-create the method | ||
| 27767 | + * without changing the reference counts of the components. | ||
| 27768 | + */ | ||
| 27769 | +typedef struct _sipPyMethod { | ||
| 27770 | + /* The function. */ | ||
| 27771 | + PyObject *mfunc; | ||
| 27772 | + | ||
| 27773 | + /* Self if it is a bound method. */ | ||
| 27774 | + PyObject *mself; | ||
| 27775 | + | ||
| 27776 | +#if PY_MAJOR_VERSION < 3 | ||
| 27777 | + /* The class. */ | ||
| 27778 | + PyObject *mclass; | ||
| 27779 | +#endif | ||
| 27780 | +} sipPyMethod; | ||
| 27781 | + | ||
| 27782 | + | ||
| 27783 | +/* | ||
| 27784 | + * A slot (in the Qt, rather than Python, sense). | ||
| 27785 | + */ | ||
| 27786 | +typedef struct _sipSlot { | ||
| 27787 | + /* Name if a Qt or Python signal. */ | ||
| 27788 | + char *name; | ||
| 27789 | + | ||
| 27790 | + /* Signal or Qt slot object. */ | ||
| 27791 | + PyObject *pyobj; | ||
| 27792 | + | ||
| 27793 | + /* Python slot method, pyobj is NULL. */ | ||
| 27794 | + sipPyMethod meth; | ||
| 27795 | + | ||
| 27796 | + /* A weak reference to the slot, Py_True if pyobj has an extra reference. */ | ||
| 27797 | + PyObject *weakSlot; | ||
| 27798 | +} sipSlot; | ||
| 27799 | + | ||
| 27800 | + | ||
| 27801 | +/* | ||
| 27802 | + * The API exported by the SIP module, ie. pointers to all the data and | ||
| 27803 | + * functions that can be used by generated code. | ||
| 27804 | + */ | ||
| 27805 | +typedef struct _sipAPIDef { | ||
| 27806 | + /* | ||
| 27807 | + * This must be the first entry and it's signature must not change so that | ||
| 27808 | + * version number mismatches can be detected and reported. | ||
| 27809 | + */ | ||
| 27810 | + int (*api_export_module)(sipExportedModuleDef *client, unsigned api_major, | ||
| 27811 | + unsigned api_minor, void *unused); | ||
| 27812 | + | ||
| 27813 | + /* | ||
| 27814 | + * The following are part of the public API. | ||
| 27815 | + */ | ||
| 27816 | + PyTypeObject *api_simplewrapper_type; | ||
| 27817 | + PyTypeObject *api_wrapper_type; | ||
| 27818 | + PyTypeObject *api_wrappertype_type; | ||
| 27819 | + PyTypeObject *api_voidptr_type; | ||
| 27820 | + | ||
| 27821 | + void (*api_bad_catcher_result)(PyObject *method); | ||
| 27822 | + void (*api_bad_length_for_slice)(SIP_SSIZE_T seqlen, SIP_SSIZE_T slicelen); | ||
| 27823 | + PyObject *(*api_build_result)(int *isErr, const char *fmt, ...); | ||
| 27824 | + PyObject *(*api_call_method)(int *isErr, PyObject *method, const char *fmt, | ||
| 27825 | + ...); | ||
| 27826 | + void (*api_call_procedure_method)(sip_gilstate_t, sipVirtErrorHandlerFunc, | ||
| 27827 | + sipSimpleWrapper *, PyObject *, const char *, ...); | ||
| 27828 | + PyObject *(*api_connect_rx)(PyObject *txObj, const char *sig, | ||
| 27829 | + PyObject *rxObj, const char *slot, int type); | ||
| 27830 | + SIP_SSIZE_T (*api_convert_from_sequence_index)(SIP_SSIZE_T idx, | ||
| 27831 | + SIP_SSIZE_T len); | ||
| 27832 | + int (*api_can_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, | ||
| 27833 | + int flags); | ||
| 27834 | + void *(*api_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, | ||
| 27835 | + PyObject *transferObj, int flags, int *statep, int *iserrp); | ||
| 27836 | + void *(*api_force_convert_to_type)(PyObject *pyObj, const sipTypeDef *td, | ||
| 27837 | + PyObject *transferObj, int flags, int *statep, int *iserrp); | ||
| 27838 | + | ||
| 27839 | + /* | ||
| 27840 | + * The following are deprecated parts of the public API. | ||
| 27841 | + */ | ||
| 27842 | + int (*api_can_convert_to_enum)(PyObject *pyObj, const sipTypeDef *td); | ||
| 27843 | + | ||
| 27844 | + /* | ||
| 27845 | + * The following are part of the public API. | ||
| 27846 | + */ | ||
| 27847 | + void (*api_release_type)(void *cpp, const sipTypeDef *td, int state); | ||
| 27848 | + PyObject *(*api_convert_from_type)(void *cpp, const sipTypeDef *td, | ||
| 27849 | + PyObject *transferObj); | ||
| 27850 | + PyObject *(*api_convert_from_new_type)(void *cpp, const sipTypeDef *td, | ||
| 27851 | + PyObject *transferObj); | ||
| 27852 | + PyObject *(*api_convert_from_enum)(int eval, const sipTypeDef *td); | ||
| 27853 | + int (*api_get_state)(PyObject *transferObj); | ||
| 27854 | + PyObject *(*api_disconnect_rx)(PyObject *txObj, const char *sig, | ||
| 27855 | + PyObject *rxObj, const char *slot); | ||
| 27856 | + void (*api_free)(void *mem); | ||
| 27857 | + PyObject *(*api_get_pyobject)(void *cppPtr, const sipTypeDef *td); | ||
| 27858 | + void *(*api_malloc)(size_t nbytes); | ||
| 27859 | + int (*api_parse_result)(int *isErr, PyObject *method, PyObject *res, | ||
| 27860 | + const char *fmt, ...); | ||
| 27861 | + void (*api_trace)(unsigned mask, const char *fmt, ...); | ||
| 27862 | + void (*api_transfer_back)(PyObject *self); | ||
| 27863 | + void (*api_transfer_to)(PyObject *self, PyObject *owner); | ||
| 27864 | + void (*api_transfer_break)(PyObject *self); | ||
| 27865 | + unsigned long (*api_long_as_unsigned_long)(PyObject *o); | ||
| 27866 | + PyObject *(*api_convert_from_void_ptr)(void *val); | ||
| 27867 | + PyObject *(*api_convert_from_const_void_ptr)(const void *val); | ||
| 27868 | + PyObject *(*api_convert_from_void_ptr_and_size)(void *val, | ||
| 27869 | + SIP_SSIZE_T size); | ||
| 27870 | + PyObject *(*api_convert_from_const_void_ptr_and_size)(const void *val, | ||
| 27871 | + SIP_SSIZE_T size); | ||
| 27872 | + void *(*api_convert_to_void_ptr)(PyObject *obj); | ||
| 27873 | + int (*api_export_symbol)(const char *name, void *sym); | ||
| 27874 | + void *(*api_import_symbol)(const char *name); | ||
| 27875 | + const sipTypeDef *(*api_find_type)(const char *type); | ||
| 27876 | + int (*api_register_py_type)(PyTypeObject *type); | ||
| 27877 | + const sipTypeDef *(*api_type_from_py_type_object)(PyTypeObject *py_type); | ||
| 27878 | + const sipTypeDef *(*api_type_scope)(const sipTypeDef *td); | ||
| 27879 | + const char *(*api_resolve_typedef)(const char *name); | ||
| 27880 | + int (*api_register_attribute_getter)(const sipTypeDef *td, | ||
| 27881 | + sipAttrGetterFunc getter); | ||
| 27882 | + int (*api_is_api_enabled)(const char *name, int from, int to); | ||
| 27883 | + sipErrorState (*api_bad_callable_arg)(int arg_nr, PyObject *arg); | ||
| 27884 | + void *(*api_get_address)(struct _sipSimpleWrapper *w); | ||
| 27885 | + void (*api_set_destroy_on_exit)(int); | ||
| 27886 | + int (*api_enable_autoconversion)(const sipTypeDef *td, int enable); | ||
| 27887 | + void *(*api_get_mixin_address)(struct _sipSimpleWrapper *w, | ||
| 27888 | + const sipTypeDef *td); | ||
| 27889 | + PyObject *(*api_convert_from_new_pytype)(void *cpp, PyTypeObject *py_type, | ||
| 27890 | + sipWrapper *owner, sipSimpleWrapper **selfp, const char *fmt, ...); | ||
| 27891 | + PyObject *(*api_convert_to_typed_array)(void *data, const sipTypeDef *td, | ||
| 27892 | + const char *format, size_t stride, SIP_SSIZE_T len, int flags); | ||
| 27893 | + PyObject *(*api_convert_to_array)(void *data, const char *format, | ||
| 27894 | + SIP_SSIZE_T len, int flags); | ||
| 27895 | + int (*api_register_proxy_resolver)(const sipTypeDef *td, | ||
| 27896 | + sipProxyResolverFunc resolver); | ||
| 27897 | + PyInterpreterState *(*api_get_interpreter)(); | ||
| 27898 | + sipNewUserTypeFunc (*api_set_new_user_type_handler)(const sipTypeDef *, | ||
| 27899 | + sipNewUserTypeFunc); | ||
| 27900 | + void (*api_set_type_user_data)(sipWrapperType *, void *); | ||
| 27901 | + void *(*api_get_type_user_data)(const sipWrapperType *); | ||
| 27902 | + PyObject *(*api_py_type_dict)(const PyTypeObject *); | ||
| 27903 | + const char *(*api_py_type_name)(const PyTypeObject *); | ||
| 27904 | + int (*api_get_method)(PyObject *, sipMethodDef *); | ||
| 27905 | + PyObject *(*api_from_method)(const sipMethodDef *); | ||
| 27906 | + int (*api_get_c_function)(PyObject *, sipCFunctionDef *); | ||
| 27907 | + int (*api_get_date)(PyObject *, sipDateDef *); | ||
| 27908 | + PyObject *(*api_from_date)(const sipDateDef *); | ||
| 27909 | + int (*api_get_datetime)(PyObject *, sipDateDef *, sipTimeDef *); | ||
| 27910 | + PyObject *(*api_from_datetime)(const sipDateDef *, const sipTimeDef *); | ||
| 27911 | + int (*api_get_time)(PyObject *, sipTimeDef *); | ||
| 27912 | + PyObject *(*api_from_time)(const sipTimeDef *); | ||
| 27913 | + int (*api_is_user_type)(const sipWrapperType *); | ||
| 27914 | + struct _frame *(*api_get_frame)(int); | ||
| 27915 | + int (*api_check_plugin_for_type)(const sipTypeDef *, const char *); | ||
| 27916 | + PyObject *(*api_unicode_new)(SIP_SSIZE_T, unsigned, int *, void **); | ||
| 27917 | + void (*api_unicode_write)(int, void *, int, unsigned); | ||
| 27918 | + void *(*api_unicode_data)(PyObject *, int *, SIP_SSIZE_T *); | ||
| 27919 | + int (*api_get_buffer_info)(PyObject *, sipBufferInfoDef *); | ||
| 27920 | + void (*api_release_buffer_info)(sipBufferInfoDef *); | ||
| 27921 | + PyObject *(*api_get_user_object)(const sipSimpleWrapper *); | ||
| 27922 | + void (*api_set_user_object)(sipSimpleWrapper *, PyObject *); | ||
| 27923 | + | ||
| 27924 | + /* | ||
| 27925 | + * The following are not part of the public API. | ||
| 27926 | + */ | ||
| 27927 | + int (*api_init_module)(sipExportedModuleDef *client, PyObject *mod_dict); | ||
| 27928 | + int (*api_parse_args)(PyObject **parseErrp, PyObject *sipArgs, | ||
| 27929 | + const char *fmt, ...); | ||
| 27930 | + int (*api_parse_pair)(PyObject **parseErrp, PyObject *arg0, PyObject *arg1, | ||
| 27931 | + const char *fmt, ...); | ||
| 27932 | + | ||
| 27933 | + /* | ||
| 27934 | + * The following are part of the public API. | ||
| 27935 | + */ | ||
| 27936 | + void (*api_instance_destroyed)(sipSimpleWrapper *sipSelf); | ||
| 27937 | + | ||
| 27938 | + /* | ||
| 27939 | + * The following are not part of the public API. | ||
| 27940 | + */ | ||
| 27941 | + void (*api_no_function)(PyObject *parseErr, const char *func, | ||
| 27942 | + const char *doc); | ||
| 27943 | + void (*api_no_method)(PyObject *parseErr, const char *scope, | ||
| 27944 | + const char *method, const char *doc); | ||
| 27945 | + void (*api_abstract_method)(const char *classname, const char *method); | ||
| 27946 | + void (*api_bad_class)(const char *classname); | ||
| 27947 | + void *(*api_get_cpp_ptr)(sipSimpleWrapper *w, const sipTypeDef *td); | ||
| 27948 | + void *(*api_get_complex_cpp_ptr)(sipSimpleWrapper *w); | ||
| 27949 | + PyObject *(*api_is_py_method)(sip_gilstate_t *gil, char *pymc, | ||
| 27950 | + sipSimpleWrapper *sipSelf, const char *cname, const char *mname); | ||
| 27951 | + void (*api_call_hook)(const char *hookname); | ||
| 27952 | + void (*api_end_thread)(void); | ||
| 27953 | + void (*api_raise_unknown_exception)(void); | ||
| 27954 | + void (*api_raise_type_exception)(const sipTypeDef *td, void *ptr); | ||
| 27955 | + int (*api_add_type_instance)(PyObject *dict, const char *name, | ||
| 27956 | + void *cppPtr, const sipTypeDef *td); | ||
| 27957 | + void (*api_bad_operator_arg)(PyObject *self, PyObject *arg, | ||
| 27958 | + sipPySlotType st); | ||
| 27959 | + PyObject *(*api_pyslot_extend)(sipExportedModuleDef *mod, sipPySlotType st, | ||
| 27960 | + const sipTypeDef *type, PyObject *arg0, PyObject *arg1); | ||
| 27961 | + void (*api_add_delayed_dtor)(sipSimpleWrapper *w); | ||
| 27962 | + char (*api_bytes_as_char)(PyObject *obj); | ||
| 27963 | + const char *(*api_bytes_as_string)(PyObject *obj); | ||
| 27964 | + char (*api_string_as_ascii_char)(PyObject *obj); | ||
| 27965 | + const char *(*api_string_as_ascii_string)(PyObject **obj); | ||
| 27966 | + char (*api_string_as_latin1_char)(PyObject *obj); | ||
| 27967 | + const char *(*api_string_as_latin1_string)(PyObject **obj); | ||
| 27968 | + char (*api_string_as_utf8_char)(PyObject *obj); | ||
| 27969 | + const char *(*api_string_as_utf8_string)(PyObject **obj); | ||
| 27970 | +#if defined(HAVE_WCHAR_H) | ||
| 27971 | + wchar_t (*api_unicode_as_wchar)(PyObject *obj); | ||
| 27972 | + wchar_t *(*api_unicode_as_wstring)(PyObject *obj); | ||
| 27973 | +#else | ||
| 27974 | + int (*api_unicode_as_wchar)(PyObject *obj); | ||
| 27975 | + int *(*api_unicode_as_wstring)(PyObject *obj); | ||
| 27976 | +#endif | ||
| 27977 | + int (*api_deprecated)(const char *classname, const char *method); | ||
| 27978 | + void (*api_keep_reference)(PyObject *self, int key, PyObject *obj); | ||
| 27979 | + int (*api_parse_kwd_args)(PyObject **parseErrp, PyObject *sipArgs, | ||
| 27980 | + PyObject *sipKwdArgs, const char **kwdlist, PyObject **unused, | ||
| 27981 | + const char *fmt, ...); | ||
| 27982 | + void (*api_add_exception)(sipErrorState es, PyObject **parseErrp); | ||
| 27983 | + int (*api_parse_result_ex)(sip_gilstate_t, sipVirtErrorHandlerFunc, | ||
| 27984 | + sipSimpleWrapper *, PyObject *method, PyObject *res, | ||
| 27985 | + const char *fmt, ...); | ||
| 27986 | + void (*api_call_error_handler)(sipVirtErrorHandlerFunc, | ||
| 27987 | + sipSimpleWrapper *, sip_gilstate_t); | ||
| 27988 | + int (*api_init_mixin)(PyObject *self, PyObject *args, PyObject *kwds, | ||
| 27989 | + const sipClassTypeDef *ctd); | ||
| 27990 | + PyObject *(*api_get_reference)(PyObject *self, int key); | ||
| 27991 | + int (*api_is_owned_by_python)(sipSimpleWrapper *); | ||
| 27992 | + int (*api_is_derived_class)(sipSimpleWrapper *); | ||
| 27993 | + | ||
| 27994 | + /* | ||
| 27995 | + * The following may be used by Qt support code but no other handwritten | ||
| 27996 | + * code. | ||
| 27997 | + */ | ||
| 27998 | + void (*api_free_sipslot)(sipSlot *slot); | ||
| 27999 | + int (*api_same_slot)(const sipSlot *sp, PyObject *rxObj, const char *slot); | ||
| 28000 | + void *(*api_convert_rx)(sipWrapper *txSelf, const char *sigargs, | ||
| 28001 | + PyObject *rxObj, const char *slot, const char **memberp, | ||
| 28002 | + int flags); | ||
| 28003 | + PyObject *(*api_invoke_slot)(const sipSlot *slot, PyObject *sigargs); | ||
| 28004 | + PyObject *(*api_invoke_slot_ex)(const sipSlot *slot, PyObject *sigargs, | ||
| 28005 | + int check_receiver); | ||
| 28006 | + int (*api_save_slot)(sipSlot *sp, PyObject *rxObj, const char *slot); | ||
| 28007 | + void (*api_clear_any_slot_reference)(sipSlot *slot); | ||
| 28008 | + int (*api_visit_slot)(sipSlot *slot, visitproc visit, void *arg); | ||
| 28009 | + | ||
| 28010 | + /* | ||
| 28011 | + * The following are deprecated parts of the public API. | ||
| 28012 | + */ | ||
| 28013 | + PyTypeObject *(*api_find_named_enum)(const char *type); | ||
| 28014 | + const sipMappedType *(*api_find_mapped_type)(const char *type); | ||
| 28015 | + sipWrapperType *(*api_find_class)(const char *type); | ||
| 28016 | + sipWrapperType *(*api_map_int_to_class)(int typeInt, | ||
| 28017 | + const sipIntTypeClassMap *map, int maplen); | ||
| 28018 | + sipWrapperType *(*api_map_string_to_class)(const char *typeString, | ||
| 28019 | + const sipStringTypeClassMap *map, int maplen); | ||
| 28020 | + | ||
| 28021 | + /* | ||
| 28022 | + * The following are part of the public API. | ||
| 28023 | + */ | ||
| 28024 | + int (*api_enable_gc)(int enable); | ||
| 28025 | + void (*api_print_object)(PyObject *o); | ||
| 28026 | + int (*api_register_event_handler)(sipEventType type, const sipTypeDef *td, | ||
| 28027 | + void *handler); | ||
| 28028 | + int (*api_convert_to_enum)(PyObject *obj, const sipTypeDef *td); | ||
| 28029 | + int (*api_convert_to_bool)(PyObject *obj); | ||
| 28030 | + int (*api_enable_overflow_checking)(int enable); | ||
| 28031 | + char (*api_long_as_char)(PyObject *o); | ||
| 28032 | + signed char (*api_long_as_signed_char)(PyObject *o); | ||
| 28033 | + unsigned char (*api_long_as_unsigned_char)(PyObject *o); | ||
| 28034 | + short (*api_long_as_short)(PyObject *o); | ||
| 28035 | + unsigned short (*api_long_as_unsigned_short)(PyObject *o); | ||
| 28036 | + int (*api_long_as_int)(PyObject *o); | ||
| 28037 | + unsigned int (*api_long_as_unsigned_int)(PyObject *o); | ||
| 28038 | + long (*api_long_as_long)(PyObject *o); | ||
| 28039 | +#if defined(HAVE_LONG_LONG) | ||
| 28040 | + PY_LONG_LONG (*api_long_as_long_long)(PyObject *o); | ||
| 28041 | + unsigned PY_LONG_LONG (*api_long_as_unsigned_long_long)(PyObject *o); | ||
| 28042 | +#else | ||
| 28043 | + void *api_long_as_long_long; | ||
| 28044 | + void *api_long_as_unsigned_long_long; | ||
| 28045 | +#endif | ||
| 28046 | + | ||
| 28047 | + /* | ||
| 28048 | + * The following are not part of the public API. | ||
| 28049 | + */ | ||
| 28050 | + void (*api_instance_destroyed_ex)(sipSimpleWrapper **sipSelfp); | ||
| 28051 | + | ||
| 28052 | + /* | ||
| 28053 | + * The following are part of the public API. | ||
| 28054 | + */ | ||
| 28055 | + int (*api_convert_from_slice_object)(PyObject *slice, SIP_SSIZE_T length, | ||
| 28056 | + SIP_SSIZE_T *start, SIP_SSIZE_T *stop, SIP_SSIZE_T *step, | ||
| 28057 | + SIP_SSIZE_T *slicelength); | ||
| 28058 | +} sipAPIDef; | ||
| 28059 | + | ||
| 28060 | + | ||
| 28061 | +/* | ||
| 28062 | + * The API implementing the optional Qt support. | ||
| 28063 | + */ | ||
| 28064 | +typedef struct _sipQtAPI { | ||
| 28065 | + sipTypeDef **qt_qobject; | ||
| 28066 | + void *(*qt_create_universal_signal)(void *, const char **); | ||
| 28067 | + void *(*qt_find_universal_signal)(void *, const char **); | ||
| 28068 | + void *(*qt_create_universal_slot)(struct _sipWrapper *, const char *, | ||
| 28069 | + PyObject *, const char *, const char **, int); | ||
| 28070 | + void (*qt_destroy_universal_slot)(void *); | ||
| 28071 | + void *(*qt_find_slot)(void *, const char *, PyObject *, const char *, | ||
| 28072 | + const char **); | ||
| 28073 | + int (*qt_connect)(void *, const char *, void *, const char *, int); | ||
| 28074 | + int (*qt_disconnect)(void *, const char *, void *, const char *); | ||
| 28075 | + int (*qt_same_name)(const char *, const char *); | ||
| 28076 | + sipSlot *(*qt_find_sipslot)(void *, void **); | ||
| 28077 | + int (*qt_emit_signal)(PyObject *, const char *, PyObject *); | ||
| 28078 | + int (*qt_connect_py_signal)(PyObject *, const char *, PyObject *, | ||
| 28079 | + const char *); | ||
| 28080 | + void (*qt_disconnect_py_signal)(PyObject *, const char *, PyObject *, | ||
| 28081 | + const char *); | ||
| 28082 | +} sipQtAPI; | ||
| 28083 | + | ||
| 28084 | + | ||
| 28085 | +/* | ||
| 28086 | + * These are flags that can be passed to sipCanConvertToType(), | ||
| 28087 | + * sipConvertToType() and sipForceConvertToType(). | ||
| 28088 | + */ | ||
| 28089 | +#define SIP_NOT_NONE 0x01 /* Disallow None. */ | ||
| 28090 | +#define SIP_NO_CONVERTORS 0x02 /* Disable any type convertors. */ | ||
| 28091 | + | ||
| 28092 | + | ||
| 28093 | +/* | ||
| 28094 | + * These are flags that can be passed to sipConvertToArray(). These are held | ||
| 28095 | + * in sw_flags. | ||
| 28096 | + */ | ||
| 28097 | +#define SIP_READ_ONLY 0x01 /* The array is read-only. */ | ||
| 28098 | +#define SIP_OWNS_MEMORY 0x02 /* The array owns its memory. */ | ||
| 28099 | + | ||
| 28100 | + | ||
| 28101 | +/* | ||
| 28102 | + * These are the state flags returned by %ConvertToTypeCode. Note that the | ||
| 28103 | + * values share the same "flagspace" as the contents of sw_flags. | ||
| 28104 | + */ | ||
| 28105 | +#define SIP_TEMPORARY 0x01 /* A temporary instance. */ | ||
| 28106 | +#define SIP_DERIVED_CLASS 0x02 /* The instance is derived. */ | ||
| 28107 | + | ||
| 28108 | + | ||
| 28109 | +/* | ||
| 28110 | + * These flags are specific to the Qt support API. | ||
| 28111 | + */ | ||
| 28112 | +#define SIP_SINGLE_SHOT 0x01 /* The connection is single shot. */ | ||
| 28113 | + | ||
| 28114 | + | ||
| 28115 | +/* | ||
| 28116 | + * Useful macros, not part of the public API. | ||
| 28117 | + */ | ||
| 28118 | + | ||
| 28119 | +/* These are held in sw_flags. */ | ||
| 28120 | +#define SIP_INDIRECT 0x0004 /* If there is a level of indirection. */ | ||
| 28121 | +#define SIP_ACCFUNC 0x0008 /* If there is an access function. */ | ||
| 28122 | +#define SIP_NOT_IN_MAP 0x0010 /* If Python object is not in the map. */ | ||
| 28123 | + | ||
| 28124 | +#if !defined(Py_LIMITED_API) || PY_VERSION_HEX < 0x03020000 | ||
| 28125 | +#define SIP_PY_OWNED 0x0020 /* If owned by Python. */ | ||
| 28126 | +#define SIP_SHARE_MAP 0x0040 /* If the map slot might be occupied. */ | ||
| 28127 | +#define SIP_CPP_HAS_REF 0x0080 /* If C/C++ has a reference. */ | ||
| 28128 | +#define SIP_POSSIBLE_PROXY 0x0100 /* If there might be a proxy slot. */ | ||
| 28129 | +#define SIP_ALIAS 0x0200 /* If it is an alias. */ | ||
| 28130 | +#define SIP_CREATED 0x0400 /* If the C/C++ object has been created. */ | ||
| 28131 | + | ||
| 28132 | +#define sipIsDerived(sw) ((sw)->sw_flags & SIP_DERIVED_CLASS) | ||
| 28133 | +#define sipIsIndirect(sw) ((sw)->sw_flags & SIP_INDIRECT) | ||
| 28134 | +#define sipIsAccessFunc(sw) ((sw)->sw_flags & SIP_ACCFUNC) | ||
| 28135 | +#define sipNotInMap(sw) ((sw)->sw_flags & SIP_NOT_IN_MAP) | ||
| 28136 | +#define sipSetNotInMap(sw) ((sw)->sw_flags |= SIP_NOT_IN_MAP) | ||
| 28137 | +#define sipIsPyOwned(sw) ((sw)->sw_flags & SIP_PY_OWNED) | ||
| 28138 | +#define sipSetPyOwned(sw) ((sw)->sw_flags |= SIP_PY_OWNED) | ||
| 28139 | +#define sipResetPyOwned(sw) ((sw)->sw_flags &= ~SIP_PY_OWNED) | ||
| 28140 | +#define sipCppHasRef(sw) ((sw)->sw_flags & SIP_CPP_HAS_REF) | ||
| 28141 | +#define sipSetCppHasRef(sw) ((sw)->sw_flags |= SIP_CPP_HAS_REF) | ||
| 28142 | +#define sipResetCppHasRef(sw) ((sw)->sw_flags &= ~SIP_CPP_HAS_REF) | ||
| 28143 | +#define sipPossibleProxy(sw) ((sw)->sw_flags & SIP_POSSIBLE_PROXY) | ||
| 28144 | +#define sipSetPossibleProxy(sw) ((sw)->sw_flags |= SIP_POSSIBLE_PROXY) | ||
| 28145 | +#define sipIsAlias(sw) ((sw)->sw_flags & SIP_ALIAS) | ||
| 28146 | +#define sipWasCreated(sw) ((sw)->sw_flags & SIP_CREATED) | ||
| 28147 | +#endif | ||
| 28148 | + | ||
| 28149 | +#define SIP_TYPE_TYPE_MASK 0x0007 /* The type type mask. */ | ||
| 28150 | +#define SIP_TYPE_CLASS 0x0000 /* If the type is a C++ class. */ | ||
| 28151 | +#define SIP_TYPE_NAMESPACE 0x0001 /* If the type is a C++ namespace. */ | ||
| 28152 | +#define SIP_TYPE_MAPPED 0x0002 /* If the type is a mapped type. */ | ||
| 28153 | +#define SIP_TYPE_ENUM 0x0003 /* If the type is a named enum. */ | ||
| 28154 | +#define SIP_TYPE_SCOPED_ENUM 0x0004 /* If the type is a scoped enum. */ | ||
| 28155 | +#define SIP_TYPE_ABSTRACT 0x0008 /* If the type is abstract. */ | ||
| 28156 | +#define SIP_TYPE_SCC 0x0010 /* If the type is subject to sub-class convertors. */ | ||
| 28157 | +#define SIP_TYPE_ALLOW_NONE 0x0020 /* If the type can handle None. */ | ||
| 28158 | +#define SIP_TYPE_STUB 0x0040 /* If the type is a stub. */ | ||
| 28159 | +#define SIP_TYPE_NONLAZY 0x0080 /* If the type has a non-lazy method. */ | ||
| 28160 | +#define SIP_TYPE_SUPER_INIT 0x0100 /* If the instance's super init should be called. */ | ||
| 28161 | +#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. */ | ||
| 28162 | + | ||
| 28163 | + | ||
| 28164 | +/* | ||
| 28165 | + * The following are part of the public API. | ||
| 28166 | + */ | ||
| 28167 | +#define sipTypeIsClass(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_CLASS) | ||
| 28168 | +#define sipTypeIsNamespace(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_NAMESPACE) | ||
| 28169 | +#define sipTypeIsMapped(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_MAPPED) | ||
| 28170 | +#define sipTypeIsEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_ENUM) | ||
| 28171 | +#define sipTypeIsScopedEnum(td) (((td)->td_flags & SIP_TYPE_TYPE_MASK) == SIP_TYPE_SCOPED_ENUM) | ||
| 28172 | +#define sipTypeAsPyTypeObject(td) ((td)->u.td_py_type) | ||
| 28173 | +#define sipTypeName(td) sipNameFromPool((td)->td_module, (td)->td_cname) | ||
| 28174 | +#define sipTypePluginData(td) ((td)->td_plugin_data) | ||
| 28175 | + | ||
| 28176 | + | ||
| 28177 | +/* | ||
| 28178 | + * Note that this was never actually documented as being part of the public | ||
| 28179 | + * API. It is now deprecated. sipIsUserType() should be used instead. | ||
| 28180 | + */ | ||
| 28181 | +#define sipIsExactWrappedType(wt) (sipTypeAsPyTypeObject((wt)->wt_td) == (PyTypeObject *)(wt)) | ||
| 28182 | + | ||
| 28183 | + | ||
| 28184 | +/* | ||
| 28185 | + * The following are deprecated parts of the public API. | ||
| 28186 | + */ | ||
| 28187 | +#define sipClassName(w) PyString_FromString(Py_TYPE(w)->tp_name) | ||
| 28188 | + | ||
| 28189 | + | ||
| 28190 | +/* | ||
| 28191 | + * The following are not part of the public API. | ||
| 28192 | + */ | ||
| 28193 | +#define sipTypeIsAbstract(td) ((td)->td_flags & SIP_TYPE_ABSTRACT) | ||
| 28194 | +#define sipTypeHasSCC(td) ((td)->td_flags & SIP_TYPE_SCC) | ||
| 28195 | +#define sipTypeAllowNone(td) ((td)->td_flags & SIP_TYPE_ALLOW_NONE) | ||
| 28196 | +#define sipTypeIsStub(td) ((td)->td_flags & SIP_TYPE_STUB) | ||
| 28197 | +#define sipTypeSetStub(td) ((td)->td_flags |= SIP_TYPE_STUB) | ||
| 28198 | +#define sipTypeHasNonlazyMethod(td) ((td)->td_flags & SIP_TYPE_NONLAZY) | ||
| 28199 | +#define sipTypeCallSuperInit(td) ((td)->td_flags & SIP_TYPE_SUPER_INIT) | ||
| 28200 | +#define sipTypeUseLimitedAPI(td) ((td)->td_flags & SIP_TYPE_LIMITED_API) | ||
| 28201 | + | ||
| 28202 | +/* | ||
| 28203 | + * Get various names from the string pool for various data types. | ||
| 28204 | + */ | ||
| 28205 | +#define sipNameFromPool(em, mr) (&((em)->em_strings)[(mr)]) | ||
| 28206 | +#define sipNameOfModule(em) sipNameFromPool((em), (em)->em_name) | ||
| 28207 | +#define sipPyNameOfContainer(cod, td) sipNameFromPool((td)->td_module, (cod)->cod_name) | ||
| 28208 | +#define sipPyNameOfEnum(etd) sipNameFromPool((etd)->etd_base.td_module, (etd)->etd_name) | ||
| 28209 | + | ||
| 28210 | + | ||
| 28211 | +/* | ||
| 28212 | + * The following are PyQt4-specific extensions. In SIP v5 they will be pushed | ||
| 28213 | + * out to a plugin supplied by PyQt4. | ||
| 28214 | + */ | ||
| 28215 | + | ||
| 28216 | +/* | ||
| 28217 | + * The description of a Qt signal for PyQt4. | ||
| 28218 | + */ | ||
| 28219 | +typedef struct _pyqt4QtSignal { | ||
| 28220 | + /* The C++ name and signature of the signal. */ | ||
| 28221 | + const char *signature; | ||
| 28222 | + | ||
| 28223 | + /* The optional docstring. */ | ||
| 28224 | + const char *docstring; | ||
| 28225 | + | ||
| 28226 | + /* | ||
| 28227 | + * If the signal is an overload of regular methods then this points to the | ||
| 28228 | + * code that implements those methods. | ||
| 28229 | + */ | ||
| 28230 | + PyMethodDef *non_signals; | ||
| 28231 | + | ||
| 28232 | + /* | ||
| 28233 | + * The hack to apply when built against Qt5: | ||
| 28234 | + * | ||
| 28235 | + * 0 - no hack | ||
| 28236 | + * 1 - add an optional None | ||
| 28237 | + * 2 - add an optional [] | ||
| 28238 | + * 3 - add an optional False | ||
| 28239 | + */ | ||
| 28240 | + int hack; | ||
| 28241 | +} pyqt4QtSignal; | ||
| 28242 | + | ||
| 28243 | + | ||
| 28244 | +/* | ||
| 28245 | + * This is the PyQt4-specific extension to the generated class type structure. | ||
| 28246 | + */ | ||
| 28247 | +typedef struct _pyqt4ClassPluginDef { | ||
| 28248 | + /* A pointer to the QObject sub-class's staticMetaObject class variable. */ | ||
| 28249 | + const void *static_metaobject; | ||
| 28250 | + | ||
| 28251 | + /* | ||
| 28252 | + * A set of flags. At the moment only bit 0 is used to say if the type is | ||
| 28253 | + * derived from QFlags. | ||
| 28254 | + */ | ||
| 28255 | + unsigned flags; | ||
| 28256 | + | ||
| 28257 | + /* | ||
| 28258 | + * The table of signals emitted by the type. These are grouped by signal | ||
| 28259 | + * name. | ||
| 28260 | + */ | ||
| 28261 | + const pyqt4QtSignal *qt_signals; | ||
| 28262 | +} pyqt4ClassPluginDef; | ||
| 28263 | + | ||
| 28264 | + | ||
| 28265 | +/* | ||
| 28266 | + * The following are PyQt5-specific extensions. In SIP v5 they will be pushed | ||
| 28267 | + * out to a plugin supplied by PyQt5. | ||
| 28268 | + */ | ||
| 28269 | + | ||
| 28270 | +/* | ||
| 28271 | + * The description of a Qt signal for PyQt5. | ||
| 28272 | + */ | ||
| 28273 | +typedef int (*pyqt5EmitFunc)(void *, PyObject *); | ||
| 28274 | + | ||
| 28275 | +typedef struct _pyqt5QtSignal { | ||
| 28276 | + /* The normalised C++ name and signature of the signal. */ | ||
| 28277 | + const char *signature; | ||
| 28278 | + | ||
| 28279 | + /* The optional docstring. */ | ||
| 28280 | + const char *docstring; | ||
| 28281 | + | ||
| 28282 | + /* | ||
| 28283 | + * If the signal is an overload of regular methods then this points to the | ||
| 28284 | + * code that implements those methods. | ||
| 28285 | + */ | ||
| 28286 | + PyMethodDef *non_signals; | ||
| 28287 | + | ||
| 28288 | + /* | ||
| 28289 | + * If the signal has optional arguments then this function will implement | ||
| 28290 | + * emit() for the signal. | ||
| 28291 | + */ | ||
| 28292 | + pyqt5EmitFunc emitter; | ||
| 28293 | +} pyqt5QtSignal; | ||
| 28294 | + | ||
| 28295 | + | ||
| 28296 | +/* | ||
| 28297 | + * This is the PyQt5-specific extension to the generated class type structure. | ||
| 28298 | + */ | ||
| 28299 | +typedef struct _pyqt5ClassPluginDef { | ||
| 28300 | + /* A pointer to the QObject sub-class's staticMetaObject class variable. */ | ||
| 28301 | + const void *static_metaobject; | ||
| 28302 | + | ||
| 28303 | + /* | ||
| 28304 | + * A set of flags. At the moment only bit 0 is used to say if the type is | ||
| 28305 | + * derived from QFlags. | ||
| 28306 | + */ | ||
| 28307 | + unsigned flags; | ||
| 28308 | + | ||
| 28309 | + /* | ||
| 28310 | + * The table of signals emitted by the type. These are grouped by signal | ||
| 28311 | + * name. | ||
| 28312 | + */ | ||
| 28313 | + const pyqt5QtSignal *qt_signals; | ||
| 28314 | + | ||
| 28315 | + /* The name of the interface that the class defines. */ | ||
| 28316 | + const char *qt_interface; | ||
| 28317 | +} pyqt5ClassPluginDef; | ||
| 28318 | + | ||
| 28319 | + | ||
| 28320 | +#ifdef __cplusplus | ||
| 28321 | +} | ||
| 28322 | +#endif | ||
| 28323 | + | ||
| 28324 | + | ||
| 28325 | +#endif | ||
| 28326 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/siplib/siplib.c sip/siplib/siplib.c | ||
| 28327 | --- ./sip-4.19.12.orig/siplib/siplib.c 2018-07-05 05:54:58.000000000 -0400 | ||
| 28328 | +++ sip/siplib/siplib.c 2018-09-18 18:00:57.928047976 -0400 | ||
| 28329 | @@ -39,13 +39,22 @@ | ||
| 28330 | |||
| 28331 | |||
| 28332 | /* | ||
| 28333 | - * The qualified name of the sip module. The qualified name should be defined | ||
| 28334 | - * in the compiler invocation when creating a package-specific copy. | ||
| 28335 | + * The qualified and base names of the sip module. These should be defined in | ||
| 28336 | + * the compiler invocation when creating a package-specific copy. | ||
| 28337 | */ | ||
| 28338 | #if !defined(SIP_MODULE_NAME) | ||
| 28339 | -#define SIP_MODULE_NAME "sip" | ||
| 28340 | +#define SIP_MODULE_NAME sip | ||
| 28341 | +#endif | ||
| 28342 | + | ||
| 28343 | +#if !defined(SIP_MODULE_BASENAME) | ||
| 28344 | +#define SIP_MODULE_BASENAME sip | ||
| 28345 | #endif | ||
| 28346 | |||
| 28347 | +#define STRINGIFY_EX(s) #s | ||
| 28348 | +#define STRINGIFY(s) STRINGIFY_EX(s) | ||
| 28349 | + | ||
| 28350 | +#define SIP_MODULE_NAME_STR STRINGIFY(SIP_MODULE_NAME) | ||
| 28351 | +#define SIP_MODULE_BASENAME_STR STRINGIFY(SIP_MODULE_BASENAME) | ||
| 28352 | |||
| 28353 | /* | ||
| 28354 | * The Python metatype for a C++ wrapper type. We inherit everything from the | ||
| 28355 | @@ -1023,19 +1032,24 @@ | ||
| 28356 | * The Python module initialisation function. | ||
| 28357 | */ | ||
| 28358 | #if PY_MAJOR_VERSION >= 3 | ||
| 28359 | -#define SIP_MODULE_ENTRY PyInit_sip | ||
| 28360 | +#define SIP_MODULE_ENTRY_PREFIX PyInit_ | ||
| 28361 | #define SIP_MODULE_TYPE PyObject * | ||
| 28362 | #define SIP_MODULE_DISCARD(m) Py_DECREF(m) | ||
| 28363 | #define SIP_FATAL(s) return NULL | ||
| 28364 | #define SIP_MODULE_RETURN(m) return (m) | ||
| 28365 | #else | ||
| 28366 | -#define SIP_MODULE_ENTRY initsip | ||
| 28367 | +#define SIP_MODULE_ENTRY_PREFIX init | ||
| 28368 | #define SIP_MODULE_TYPE void | ||
| 28369 | #define SIP_MODULE_DISCARD(m) | ||
| 28370 | #define SIP_FATAL(s) Py_FatalError(s) | ||
| 28371 | #define SIP_MODULE_RETURN(m) | ||
| 28372 | #endif | ||
| 28373 | |||
| 28374 | +#define CONCAT_EX(PREFIX, NAME) PREFIX ## NAME | ||
| 28375 | +#define CONCAT(PREFIX, NAME) CONCAT_EX(PREFIX, NAME) | ||
| 28376 | + | ||
| 28377 | +#define SIP_MODULE_ENTRY CONCAT(SIP_MODULE_ENTRY_PREFIX, SIP_MODULE_BASENAME) | ||
| 28378 | + | ||
| 28379 | #if defined(SIP_STATIC_MODULE) | ||
| 28380 | SIP_MODULE_TYPE SIP_MODULE_ENTRY(void) | ||
| 28381 | #else | ||
| 28382 | @@ -1069,7 +1083,7 @@ | ||
| 28383 | #if PY_MAJOR_VERSION >= 3 | ||
| 28384 | static PyModuleDef module_def = { | ||
| 28385 | PyModuleDef_HEAD_INIT, | ||
| 28386 | - SIP_MODULE_NAME, /* m_name */ | ||
| 28387 | + SIP_MODULE_NAME_STR, /* m_name */ | ||
| 28388 | NULL, /* m_doc */ | ||
| 28389 | -1, /* m_size */ | ||
| 28390 | methods, /* m_methods */ | ||
| 28391 | @@ -1099,13 +1113,13 @@ | ||
| 28392 | sipWrapperType_Type.tp_base = &PyType_Type; | ||
| 28393 | |||
| 28394 | if (PyType_Ready(&sipWrapperType_Type) < 0) | ||
| 28395 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrappertype type"); | ||
| 28396 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrappertype type"); | ||
| 28397 | |||
| 28398 | if (PyType_Ready((PyTypeObject *)&sipSimpleWrapper_Type) < 0) | ||
| 28399 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.simplewrapper type"); | ||
| 28400 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.simplewrapper type"); | ||
| 28401 | |||
| 28402 | if (sip_api_register_py_type((PyTypeObject *)&sipSimpleWrapper_Type) < 0) | ||
| 28403 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to register sip.simplewrapper type"); | ||
| 28404 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to register sip.simplewrapper type"); | ||
| 28405 | |||
| 28406 | #if defined(STACKLESS) | ||
| 28407 | sipWrapper_Type.super.tp_base = (PyTypeObject *)&sipSimpleWrapper_Type; | ||
| 28408 | @@ -1116,33 +1130,33 @@ | ||
| 28409 | #endif | ||
| 28410 | |||
| 28411 | if (PyType_Ready((PyTypeObject *)&sipWrapper_Type) < 0) | ||
| 28412 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.wrapper type"); | ||
| 28413 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.wrapper type"); | ||
| 28414 | |||
| 28415 | if (PyType_Ready(&sipMethodDescr_Type) < 0) | ||
| 28416 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.methoddescriptor type"); | ||
| 28417 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.methoddescriptor type"); | ||
| 28418 | |||
| 28419 | if (PyType_Ready(&sipVariableDescr_Type) < 0) | ||
| 28420 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.variabledescriptor type"); | ||
| 28421 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.variabledescriptor type"); | ||
| 28422 | |||
| 28423 | sipEnumType_Type.tp_base = &PyType_Type; | ||
| 28424 | |||
| 28425 | if (PyType_Ready(&sipEnumType_Type) < 0) | ||
| 28426 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.enumtype type"); | ||
| 28427 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.enumtype type"); | ||
| 28428 | |||
| 28429 | if (PyType_Ready(&sipVoidPtr_Type) < 0) | ||
| 28430 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.voidptr type"); | ||
| 28431 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.voidptr type"); | ||
| 28432 | |||
| 28433 | if (PyType_Ready(&sipArray_Type) < 0) | ||
| 28434 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip.array type"); | ||
| 28435 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip.array type"); | ||
| 28436 | |||
| 28437 | #if PY_MAJOR_VERSION >= 3 | ||
| 28438 | mod = PyModule_Create(&module_def); | ||
| 28439 | #else | ||
| 28440 | - mod = Py_InitModule(SIP_MODULE_NAME, methods); | ||
| 28441 | + mod = Py_InitModule(SIP_MODULE_NAME_STR, methods); | ||
| 28442 | #endif | ||
| 28443 | |||
| 28444 | if (mod == NULL) | ||
| 28445 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to initialise sip module"); | ||
| 28446 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to initialise sip module"); | ||
| 28447 | |||
| 28448 | mod_dict = PyModule_GetDict(mod); | ||
| 28449 | |||
| 28450 | @@ -1153,12 +1167,12 @@ | ||
| 28451 | if (type_unpickler == NULL || enum_unpickler == NULL) | ||
| 28452 | { | ||
| 28453 | SIP_MODULE_DISCARD(mod); | ||
| 28454 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to get pickle helpers"); | ||
| 28455 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to get pickle helpers"); | ||
| 28456 | } | ||
| 28457 | |||
| 28458 | /* Publish the SIP API. */ | ||
| 28459 | #if defined(SIP_USE_PYCAPSULE) | ||
| 28460 | - obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME "._C_API", NULL); | ||
| 28461 | + obj = PyCapsule_New((void *)&sip_api, SIP_MODULE_NAME_STR "._C_API", NULL); | ||
| 28462 | #else | ||
| 28463 | obj = PyCObject_FromVoidPtr((void *)&sip_api, NULL); | ||
| 28464 | #endif | ||
| 28465 | @@ -1166,7 +1180,7 @@ | ||
| 28466 | if (obj == NULL) | ||
| 28467 | { | ||
| 28468 | SIP_MODULE_DISCARD(mod); | ||
| 28469 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to create _C_API object"); | ||
| 28470 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create _C_API object"); | ||
| 28471 | } | ||
| 28472 | |||
| 28473 | rc = PyDict_SetItemString(mod_dict, "_C_API", obj); | ||
| 28474 | @@ -1175,20 +1189,20 @@ | ||
| 28475 | if (rc < 0) | ||
| 28476 | { | ||
| 28477 | SIP_MODULE_DISCARD(mod); | ||
| 28478 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to add _C_API object to module dictionary"); | ||
| 28479 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to add _C_API object to module dictionary"); | ||
| 28480 | } | ||
| 28481 | |||
| 28482 | /* These will always be needed. */ | ||
| 28483 | if (objectify("__init__", &init_name) < 0) | ||
| 28484 | { | ||
| 28485 | SIP_MODULE_DISCARD(mod); | ||
| 28486 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to objectify '__init__'"); | ||
| 28487 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to objectify '__init__'"); | ||
| 28488 | } | ||
| 28489 | |||
| 28490 | if ((empty_tuple = PyTuple_New(0)) == NULL) | ||
| 28491 | { | ||
| 28492 | SIP_MODULE_DISCARD(mod); | ||
| 28493 | - SIP_FATAL(SIP_MODULE_NAME ": Failed to create empty tuple"); | ||
| 28494 | + SIP_FATAL(SIP_MODULE_NAME_STR ": Failed to create empty tuple"); | ||
| 28495 | } | ||
| 28496 | |||
| 28497 | /* Add the SIP version number, but don't worry about errors. */ | ||
| 28498 | @@ -1248,7 +1262,7 @@ | ||
| 28499 | * Also install the package-specific module at the top level for backwards | ||
| 28500 | * compatibility. | ||
| 28501 | */ | ||
| 28502 | - if (strcmp(SIP_MODULE_NAME, "sip") != 0) | ||
| 28503 | + if (strcmp(SIP_MODULE_NAME_STR, "sip") != 0 && strcmp(SIP_MODULE_BASENAME_STR, "sip") == 0) | ||
| 28504 | { | ||
| 28505 | PyObject *modules = PySys_GetObject("modules"); | ||
| 28506 | |||
| 28507 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/command_line.rst sip/sphinx/command_line.rst | ||
| 28508 | --- ./sip-4.19.12.orig/sphinx/command_line.rst 2018-07-05 05:54:58.000000000 -0400 | ||
| 28509 | +++ sip/sphinx/command_line.rst 2018-09-18 18:00:57.928047976 -0400 | ||
| 28510 | @@ -115,10 +115,9 @@ | ||
| 28511 | |||
| 28512 | .. versionadded:: 4.19.9 | ||
| 28513 | |||
| 28514 | - The qualified name of the private copy of the :mod:`sip` module. It should | ||
| 28515 | - be of the form ``package.sip``. See also the | ||
| 28516 | - :option:`--sip-module <configure.py --sip-module>` option of the | ||
| 28517 | - installation script. | ||
| 28518 | + The fully qualified name of the private copy of the :mod:`sip` module. | ||
| 28519 | + See also the :option:`--sip-module <configure.py --sip-module>` option of | ||
| 28520 | + the installation script. | ||
| 28521 | |||
| 28522 | .. cmdoption:: -o | ||
| 28523 | |||
| 28524 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py sip/sphinx/conf.py | ||
| 28525 | --- ./sip-4.19.12.orig/sphinx/conf.py 2018-07-05 05:55:19.000000000 -0400 | ||
| 28526 | +++ sip/sphinx/conf.py 1969-12-31 19:00:00.000000000 -0500 | ||
| 28527 | @@ -1,139 +0,0 @@ | ||
| 28528 | -# -*- coding: utf-8 -*- | ||
| 28529 | -# | ||
| 28530 | -# SIP documentation build configuration file, created by | ||
| 28531 | -# sphinx-quickstart on Sat May 30 14:28:55 2009. | ||
| 28532 | -# | ||
| 28533 | -# This file is execfile()d with the current directory set to its containing dir. | ||
| 28534 | -# | ||
| 28535 | -# Note that not all possible configuration values are present in this | ||
| 28536 | -# autogenerated file. | ||
| 28537 | -# | ||
| 28538 | -# All configuration values have a default; values that are commented out | ||
| 28539 | -# serve to show the default. | ||
| 28540 | - | ||
| 28541 | -import datetime | ||
| 28542 | -import os | ||
| 28543 | -import sys | ||
| 28544 | - | ||
| 28545 | -# If extensions (or modules to document with autodoc) are in another directory, | ||
| 28546 | -# add these directories to sys.path here. If the directory is relative to the | ||
| 28547 | -# documentation root, use os.path.abspath to make it absolute, like shown here. | ||
| 28548 | -#sys.path.append(os.path.abspath('.')) | ||
| 28549 | - | ||
| 28550 | -# -- General configuration ----------------------------------------------------- | ||
| 28551 | - | ||
| 28552 | -# Add any Sphinx extension module names here, as strings. They can be extensions | ||
| 28553 | -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | ||
| 28554 | -#extensions = [] | ||
| 28555 | - | ||
| 28556 | -# Add any paths that contain templates here, relative to this directory. | ||
| 28557 | -templates_path = ['templates'] | ||
| 28558 | - | ||
| 28559 | -# The suffix of source filenames. | ||
| 28560 | -source_suffix = '.rst' | ||
| 28561 | - | ||
| 28562 | -# The encoding of source files. | ||
| 28563 | -#source_encoding = 'utf-8' | ||
| 28564 | - | ||
| 28565 | -# The master toctree document. | ||
| 28566 | -master_doc = 'index' | ||
| 28567 | - | ||
| 28568 | -# General information about the project. | ||
| 28569 | -project = 'SIP' | ||
| 28570 | -copyright = '{0} Riverbank Computing Limited'.format( | ||
| 28571 | - datetime.date.today().year) | ||
| 28572 | - | ||
| 28573 | -# The version info for the project you're documenting, acts as replacement for | ||
| 28574 | -# |version| and |release|, also used in various other places throughout the | ||
| 28575 | -# built documents. | ||
| 28576 | -# | ||
| 28577 | -# The short X.Y version. | ||
| 28578 | -version = '4.19.12' | ||
| 28579 | -# The full version, including alpha/beta/rc tags. | ||
| 28580 | -release = '4.19.12' | ||
| 28581 | - | ||
| 28582 | -# The language for content autogenerated by Sphinx. Refer to documentation | ||
| 28583 | -# for a list of supported languages. | ||
| 28584 | -#language = None | ||
| 28585 | - | ||
| 28586 | -# There are two options for replacing |today|: either, you set today to some | ||
| 28587 | -# non-false value, then it is used: | ||
| 28588 | -#today = '' | ||
| 28589 | -# Else, today_fmt is used as the format for a strftime call. | ||
| 28590 | -#today_fmt = '%B %d, %Y' | ||
| 28591 | - | ||
| 28592 | -# List of patterns, relative to source directory, that match files and | ||
| 28593 | -# directories to ignore when looking for source files. | ||
| 28594 | -exclude_patterns = ['html'] | ||
| 28595 | - | ||
| 28596 | -# The reST default role (used for this markup: `text`) to use for all documents. | ||
| 28597 | -#default_role = None | ||
| 28598 | - | ||
| 28599 | -# If true, '()' will be appended to :func: etc. cross-reference text. | ||
| 28600 | -#add_function_parentheses = True | ||
| 28601 | - | ||
| 28602 | -# If true, the current module name will be prepended to all description | ||
| 28603 | -# unit titles (such as .. function::). | ||
| 28604 | -#add_module_names = True | ||
| 28605 | - | ||
| 28606 | -# If true, sectionauthor and moduleauthor directives will be shown in the | ||
| 28607 | -# output. They are ignored by default. | ||
| 28608 | -#show_authors = False | ||
| 28609 | - | ||
| 28610 | -# The name of the Pygments (syntax highlighting) style to use. | ||
| 28611 | -pygments_style = 'sphinx' | ||
| 28612 | - | ||
| 28613 | -# A list of ignored prefixes for module index sorting. | ||
| 28614 | -#modindex_common_prefix = [] | ||
| 28615 | - | ||
| 28616 | - | ||
| 28617 | -# -- Options for HTML output --------------------------------------------------- | ||
| 28618 | - | ||
| 28619 | -# The theme to use for HTML and HTML Help pages. | ||
| 28620 | -html_theme = 'riverbank' | ||
| 28621 | - | ||
| 28622 | -# Add any paths that contain custom themes here, relative to this directory. | ||
| 28623 | -html_theme_path = ['.'] | ||
| 28624 | - | ||
| 28625 | -# The name for this set of Sphinx documents. If None, it defaults to | ||
| 28626 | -# "<project> v<release> documentation". | ||
| 28627 | -html_title = "%s v%s Reference Guide" % (project, release) | ||
| 28628 | - | ||
| 28629 | -# Output file base name for HTML help builder. | ||
| 28630 | -htmlhelp_basename = 'SIPdoc' | ||
| 28631 | - | ||
| 28632 | - | ||
| 28633 | -# -- Project-specific extensions ----------------------------------------------- | ||
| 28634 | - | ||
| 28635 | -def setup(app): | ||
| 28636 | - """ Define roles specific to SIP. """ | ||
| 28637 | - | ||
| 28638 | - app.add_description_unit('argument-annotation', 'aanno', | ||
| 28639 | - indextemplate='single: %s (argument annotation)') | ||
| 28640 | - | ||
| 28641 | - app.add_description_unit('class-annotation', 'canno', | ||
| 28642 | - indextemplate='single: %s (class annotation)') | ||
| 28643 | - | ||
| 28644 | - app.add_description_unit('enum-annotation', 'eanno', | ||
| 28645 | - indextemplate='single: %s (enum annotation)') | ||
| 28646 | - | ||
| 28647 | - app.add_description_unit('exception-annotation', 'xanno', | ||
| 28648 | - indextemplate='single: %s (exception annotation)') | ||
| 28649 | - | ||
| 28650 | - app.add_description_unit('function-annotation', 'fanno', | ||
| 28651 | - indextemplate='single: %s (function annotation)') | ||
| 28652 | - | ||
| 28653 | - app.add_description_unit('mapped-type-annotation', 'manno', | ||
| 28654 | - indextemplate='single: %s (mapped type annotation)') | ||
| 28655 | - | ||
| 28656 | - app.add_description_unit('typedef-annotation', 'tanno', | ||
| 28657 | - indextemplate='single: %s (typedef annotation)') | ||
| 28658 | - | ||
| 28659 | - app.add_description_unit('variable-annotation', 'vanno', | ||
| 28660 | - indextemplate='single: %s (variable annotation)') | ||
| 28661 | - | ||
| 28662 | - app.add_description_unit('directive', 'directive', | ||
| 28663 | - indextemplate='single: %s (directive)') | ||
| 28664 | - | ||
| 28665 | - app.add_description_unit('sip-type', 'stype', | ||
| 28666 | - indextemplate='single: %s (SIP type)') | ||
| 28667 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/conf.py.in sip/sphinx/conf.py.in | ||
| 28668 | --- ./sip-4.19.12.orig/sphinx/conf.py.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 28669 | +++ sip/sphinx/conf.py.in 2018-09-18 17:52:23.310543535 -0400 | ||
| 28670 | @@ -0,0 +1,139 @@ | ||
| 28671 | +# -*- coding: utf-8 -*- | ||
| 28672 | +# | ||
| 28673 | +# SIP documentation build configuration file, created by | ||
| 28674 | +# sphinx-quickstart on Sat May 30 14:28:55 2009. | ||
| 28675 | +# | ||
| 28676 | +# This file is execfile()d with the current directory set to its containing dir. | ||
| 28677 | +# | ||
| 28678 | +# Note that not all possible configuration values are present in this | ||
| 28679 | +# autogenerated file. | ||
| 28680 | +# | ||
| 28681 | +# All configuration values have a default; values that are commented out | ||
| 28682 | +# serve to show the default. | ||
| 28683 | + | ||
| 28684 | +import datetime | ||
| 28685 | +import os | ||
| 28686 | +import sys | ||
| 28687 | + | ||
| 28688 | +# If extensions (or modules to document with autodoc) are in another directory, | ||
| 28689 | +# add these directories to sys.path here. If the directory is relative to the | ||
| 28690 | +# documentation root, use os.path.abspath to make it absolute, like shown here. | ||
| 28691 | +#sys.path.append(os.path.abspath('.')) | ||
| 28692 | + | ||
| 28693 | +# -- General configuration ----------------------------------------------------- | ||
| 28694 | + | ||
| 28695 | +# Add any Sphinx extension module names here, as strings. They can be extensions | ||
| 28696 | +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. | ||
| 28697 | +#extensions = [] | ||
| 28698 | + | ||
| 28699 | +# Add any paths that contain templates here, relative to this directory. | ||
| 28700 | +templates_path = ['templates'] | ||
| 28701 | + | ||
| 28702 | +# The suffix of source filenames. | ||
| 28703 | +source_suffix = '.rst' | ||
| 28704 | + | ||
| 28705 | +# The encoding of source files. | ||
| 28706 | +#source_encoding = 'utf-8' | ||
| 28707 | + | ||
| 28708 | +# The master toctree document. | ||
| 28709 | +master_doc = 'index' | ||
| 28710 | + | ||
| 28711 | +# General information about the project. | ||
| 28712 | +project = 'SIP' | ||
| 28713 | +copyright = '{0} Riverbank Computing Limited'.format( | ||
| 28714 | + datetime.date.today().year) | ||
| 28715 | + | ||
| 28716 | +# The version info for the project you're documenting, acts as replacement for | ||
| 28717 | +# |version| and |release|, also used in various other places throughout the | ||
| 28718 | +# built documents. | ||
| 28719 | +# | ||
| 28720 | +# The short X.Y version. | ||
| 28721 | +version = '@RM_VERSION@' | ||
| 28722 | +# The full version, including alpha/beta/rc tags. | ||
| 28723 | +release = '@RM_RELEASE@' | ||
| 28724 | + | ||
| 28725 | +# The language for content autogenerated by Sphinx. Refer to documentation | ||
| 28726 | +# for a list of supported languages. | ||
| 28727 | +#language = None | ||
| 28728 | + | ||
| 28729 | +# There are two options for replacing |today|: either, you set today to some | ||
| 28730 | +# non-false value, then it is used: | ||
| 28731 | +#today = '' | ||
| 28732 | +# Else, today_fmt is used as the format for a strftime call. | ||
| 28733 | +#today_fmt = '%B %d, %Y' | ||
| 28734 | + | ||
| 28735 | +# List of patterns, relative to source directory, that match files and | ||
| 28736 | +# directories to ignore when looking for source files. | ||
| 28737 | +exclude_patterns = ['html'] | ||
| 28738 | + | ||
| 28739 | +# The reST default role (used for this markup: `text`) to use for all documents. | ||
| 28740 | +#default_role = None | ||
| 28741 | + | ||
| 28742 | +# If true, '()' will be appended to :func: etc. cross-reference text. | ||
| 28743 | +#add_function_parentheses = True | ||
| 28744 | + | ||
| 28745 | +# If true, the current module name will be prepended to all description | ||
| 28746 | +# unit titles (such as .. function::). | ||
| 28747 | +#add_module_names = True | ||
| 28748 | + | ||
| 28749 | +# If true, sectionauthor and moduleauthor directives will be shown in the | ||
| 28750 | +# output. They are ignored by default. | ||
| 28751 | +#show_authors = False | ||
| 28752 | + | ||
| 28753 | +# The name of the Pygments (syntax highlighting) style to use. | ||
| 28754 | +pygments_style = 'sphinx' | ||
| 28755 | + | ||
| 28756 | +# A list of ignored prefixes for module index sorting. | ||
| 28757 | +#modindex_common_prefix = [] | ||
| 28758 | + | ||
| 28759 | + | ||
| 28760 | +# -- Options for HTML output --------------------------------------------------- | ||
| 28761 | + | ||
| 28762 | +# The theme to use for HTML and HTML Help pages. | ||
| 28763 | +html_theme = 'riverbank' | ||
| 28764 | + | ||
| 28765 | +# Add any paths that contain custom themes here, relative to this directory. | ||
| 28766 | +html_theme_path = ['.'] | ||
| 28767 | + | ||
| 28768 | +# The name for this set of Sphinx documents. If None, it defaults to | ||
| 28769 | +# "<project> v<release> documentation". | ||
| 28770 | +html_title = "%s v%s Reference Guide" % (project, release) | ||
| 28771 | + | ||
| 28772 | +# Output file base name for HTML help builder. | ||
| 28773 | +htmlhelp_basename = 'SIPdoc' | ||
| 28774 | + | ||
| 28775 | + | ||
| 28776 | +# -- Project-specific extensions ----------------------------------------------- | ||
| 28777 | + | ||
| 28778 | +def setup(app): | ||
| 28779 | + """ Define roles specific to SIP. """ | ||
| 28780 | + | ||
| 28781 | + app.add_description_unit('argument-annotation', 'aanno', | ||
| 28782 | + indextemplate='single: %s (argument annotation)') | ||
| 28783 | + | ||
| 28784 | + app.add_description_unit('class-annotation', 'canno', | ||
| 28785 | + indextemplate='single: %s (class annotation)') | ||
| 28786 | + | ||
| 28787 | + app.add_description_unit('enum-annotation', 'eanno', | ||
| 28788 | + indextemplate='single: %s (enum annotation)') | ||
| 28789 | + | ||
| 28790 | + app.add_description_unit('exception-annotation', 'xanno', | ||
| 28791 | + indextemplate='single: %s (exception annotation)') | ||
| 28792 | + | ||
| 28793 | + app.add_description_unit('function-annotation', 'fanno', | ||
| 28794 | + indextemplate='single: %s (function annotation)') | ||
| 28795 | + | ||
| 28796 | + app.add_description_unit('mapped-type-annotation', 'manno', | ||
| 28797 | + indextemplate='single: %s (mapped type annotation)') | ||
| 28798 | + | ||
| 28799 | + app.add_description_unit('typedef-annotation', 'tanno', | ||
| 28800 | + indextemplate='single: %s (typedef annotation)') | ||
| 28801 | + | ||
| 28802 | + app.add_description_unit('variable-annotation', 'vanno', | ||
| 28803 | + indextemplate='single: %s (variable annotation)') | ||
| 28804 | + | ||
| 28805 | + app.add_description_unit('directive', 'directive', | ||
| 28806 | + indextemplate='single: %s (directive)') | ||
| 28807 | + | ||
| 28808 | + app.add_description_unit('sip-type', 'stype', | ||
| 28809 | + indextemplate='single: %s (SIP type)') | ||
| 28810 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/installation.rst sip/sphinx/installation.rst | ||
| 28811 | --- ./sip-4.19.12.orig/sphinx/installation.rst 2018-07-05 05:54:58.000000000 -0400 | ||
| 28812 | +++ sip/sphinx/installation.rst 2018-09-18 18:00:57.928047976 -0400 | ||
| 28813 | @@ -160,11 +160,10 @@ | ||
| 28814 | |||
| 28815 | .. cmdoption:: --sip-module <NAME> | ||
| 28816 | |||
| 28817 | - The :mod:`sip` module will be created with the name ``<NAME>`` rather than | ||
| 28818 | - the default ``sip``. ``<NAME>`` should be of the form ``package.sip``. | ||
| 28819 | - See :ref:`ref-private-sip` for how to use this to create a private copy of | ||
| 28820 | - the :mod:`sip` module. Also see the :option:`-n <sip -n>` option of the | ||
| 28821 | - code generator. | ||
| 28822 | + The :mod:`sip` module will be created with the fully qualified name | ||
| 28823 | + ``<NAME>`` rather than the default ``sip``. See :ref:`ref-private-sip` for | ||
| 28824 | + how to use this to create a private copy of the :mod:`sip` module. Also | ||
| 28825 | + see the :option:`-n <sip -n>` option of the code generator. | ||
| 28826 | |||
| 28827 | .. cmdoption:: --sysroot <DIR> | ||
| 28828 | |||
| 28829 | @@ -264,7 +263,7 @@ | ||
| 28830 | To get around this problem you can build a private copy of the :mod:`sip` | ||
| 28831 | module that installed as part of your package. To do this you use the | ||
| 28832 | :option:`--sip-module <configure.py --sip-module>` option to specify the fully | ||
| 28833 | -qualified package name of your private copy. You can also use the | ||
| 28834 | +qualified name of your private copy. You can also use the | ||
| 28835 | :option:`--no-tools <configure.py --no-tools>` option to specify that nothing | ||
| 28836 | else but the :mod:`sip` module is installed. | ||
| 28837 | |||
| 28838 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst sip/sphinx/introduction.rst | ||
| 28839 | --- ./sip-4.19.12.orig/sphinx/introduction.rst 2018-07-05 05:55:19.000000000 -0400 | ||
| 28840 | +++ sip/sphinx/introduction.rst 1969-12-31 19:00:00.000000000 -0500 | ||
| 28841 | @@ -1,193 +0,0 @@ | ||
| 28842 | -Introduction | ||
| 28843 | -============ | ||
| 28844 | - | ||
| 28845 | -This is the reference guide for SIP 4.19.12. SIP is a tool for | ||
| 28846 | -automatically generating `Python <https://www.python.org>`__ bindings for C and | ||
| 28847 | -C++ libraries. SIP was originally developed in 1998 for | ||
| 28848 | -`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python | ||
| 28849 | -bindings for the Qt GUI toolkit - but is suitable for generating bindings for | ||
| 28850 | -any C or C++ library. | ||
| 28851 | - | ||
| 28852 | -This version of SIP generates bindings for Python v2.3 or later, including | ||
| 28853 | -Python v3. | ||
| 28854 | - | ||
| 28855 | -There are many other similar tools available. One of the original such tools | ||
| 28856 | -is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it | ||
| 28857 | -started out as a small SWIG. Unlike SWIG, SIP is specifically designed for | ||
| 28858 | -bringing together Python and C/C++ and goes to great lengths to make the | ||
| 28859 | -integration as tight as possible. | ||
| 28860 | - | ||
| 28861 | -The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here | ||
| 28862 | -you will always find the latest stable version and the latest version of this | ||
| 28863 | -documentation. | ||
| 28864 | - | ||
| 28865 | -SIP can also be downloaded from the | ||
| 28866 | -`Mercurial <https://www.mercurial-scm.org>`__ repository at | ||
| 28867 | -https://www.riverbankcomputing.com/hg/sip. | ||
| 28868 | - | ||
| 28869 | - | ||
| 28870 | -License | ||
| 28871 | -------- | ||
| 28872 | - | ||
| 28873 | -SIP is licensed under similar terms as Python itself. SIP is also licensed | ||
| 28874 | -under the GPL (both v2 and v3). It is your choice as to which license you | ||
| 28875 | -use. If you choose the GPL then any bindings you create must be distributed | ||
| 28876 | -under the terms of the GPL. | ||
| 28877 | - | ||
| 28878 | - | ||
| 28879 | -Features | ||
| 28880 | --------- | ||
| 28881 | - | ||
| 28882 | -SIP, and the bindings it produces, have the following features: | ||
| 28883 | - | ||
| 28884 | -- bindings are fast to load and minimise memory consumption especially when | ||
| 28885 | - only a small sub-set of a large library is being used | ||
| 28886 | - | ||
| 28887 | -- automatic conversion between standard Python and C/C++ data types | ||
| 28888 | - | ||
| 28889 | -- overloading of functions and methods with different argument signatures | ||
| 28890 | - | ||
| 28891 | -- support for Python's keyword argument syntax | ||
| 28892 | - | ||
| 28893 | -- support for both explicitly specified and automatically generated docstrings | ||
| 28894 | - | ||
| 28895 | -- access to a C++ class's protected methods | ||
| 28896 | - | ||
| 28897 | -- the ability to define a Python class that is a sub-class of a C++ class, | ||
| 28898 | - including abstract C++ classes | ||
| 28899 | - | ||
| 28900 | -- Python sub-classes can implement the :meth:`__dtor__` method which will be | ||
| 28901 | - called from the C++ class's virtual destructor | ||
| 28902 | - | ||
| 28903 | -- support for ordinary C++ functions, class methods, static class methods, | ||
| 28904 | - virtual class methods and abstract class methods | ||
| 28905 | - | ||
| 28906 | -- the ability to re-implement C++ virtual and abstract methods in Python | ||
| 28907 | - | ||
| 28908 | -- support for global and class variables | ||
| 28909 | - | ||
| 28910 | -- support for global and class operators | ||
| 28911 | - | ||
| 28912 | -- support for C++ namespaces | ||
| 28913 | - | ||
| 28914 | -- support for C++ templates | ||
| 28915 | - | ||
| 28916 | -- support for C++ exceptions and wrapping them as Python exceptions | ||
| 28917 | - | ||
| 28918 | -- the automatic generation of complementary rich comparison slots | ||
| 28919 | - | ||
| 28920 | -- support for deprecation warnings | ||
| 28921 | - | ||
| 28922 | -- the ability to define mappings between C++ classes and similar Python data | ||
| 28923 | - types that are automatically invoked | ||
| 28924 | - | ||
| 28925 | -- the ability to automatically exploit any available run time type information | ||
| 28926 | - to ensure that the class of a Python instance object matches the class of the | ||
| 28927 | - corresponding C++ instance | ||
| 28928 | - | ||
| 28929 | -- the ability to change the type and meta-type of the Python object used to | ||
| 28930 | - wrap a C/C++ data type | ||
| 28931 | - | ||
| 28932 | -- full support of the Python global interpreter lock, including the ability to | ||
| 28933 | - specify that a C++ function of method may block, therefore allowing the lock | ||
| 28934 | - to be released and other Python threads to run | ||
| 28935 | - | ||
| 28936 | -- support for consolidated modules where the generated wrapper code for a | ||
| 28937 | - number of related modules may be included in a single, possibly private, | ||
| 28938 | - module | ||
| 28939 | - | ||
| 28940 | -- support for the concept of ownership of a C++ instance (i.e. what part of the | ||
| 28941 | - code is responsible for calling the instance's destructor) and how the | ||
| 28942 | - ownership may change during the execution of an application | ||
| 28943 | - | ||
| 28944 | -- the ability to generate bindings for a C++ class library that itself is built | ||
| 28945 | - on another C++ class library which also has had bindings generated so that | ||
| 28946 | - the different bindings integrate and share code properly | ||
| 28947 | - | ||
| 28948 | -- a sophisticated versioning system that allows the full lifetime of a C++ | ||
| 28949 | - class library, including any platform specific or optional features, to be | ||
| 28950 | - described in a single set of specification files | ||
| 28951 | - | ||
| 28952 | -- support for the automatic generation of PEP 484 type hint stub files | ||
| 28953 | - | ||
| 28954 | -- the ability to include documentation in the specification files which can be | ||
| 28955 | - extracted and subsequently processed by external tools | ||
| 28956 | - | ||
| 28957 | -- the ability to include copyright notices and licensing information in the | ||
| 28958 | - specification files that is automatically included in all generated source | ||
| 28959 | - code | ||
| 28960 | - | ||
| 28961 | -- a build system, written in Python, that you can extend to configure, compile | ||
| 28962 | - and install your own bindings without worrying about platform specific issues | ||
| 28963 | - | ||
| 28964 | -- support for building your extensions using distutils | ||
| 28965 | - | ||
| 28966 | -- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X, | ||
| 28967 | - Android and iOS. | ||
| 28968 | - | ||
| 28969 | - | ||
| 28970 | -SIP Components | ||
| 28971 | --------------- | ||
| 28972 | - | ||
| 28973 | -SIP comprises a number of different components. | ||
| 28974 | - | ||
| 28975 | -- The SIP code generator (:program:`sip`). This processes :file:`.sip` | ||
| 28976 | - specification files and generates C or C++ bindings. It is covered in detail | ||
| 28977 | - in :ref:`ref-using`. | ||
| 28978 | - | ||
| 28979 | -- The SIP header file (:file:`sip.h`). This contains definitions and data | ||
| 28980 | - structures needed by the generated C and C++ code. | ||
| 28981 | - | ||
| 28982 | -- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python | ||
| 28983 | - extension module that is imported automatically by SIP generated bindings and | ||
| 28984 | - provides them with some common utility functions. Historically the module | ||
| 28985 | - was installed in the Python installation's ``site-packages`` directory where | ||
| 28986 | - it was imported by any extension module that needed it, for example | ||
| 28987 | - :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies | ||
| 28988 | - between otherwise unrelated packages. The preferred approach is for each | ||
| 28989 | - package to include it's own private copy of the module that is installed in | ||
| 28990 | - the root directory of the package as described in :ref:`ref-private-sip`. | ||
| 28991 | - See also :ref:`ref-python-api`. | ||
| 28992 | - | ||
| 28993 | -- The SIP build system (:file:`sipconfig.py`). This is a pure Python module | ||
| 28994 | - that is created when SIP is configured and encapsulates all the necessary | ||
| 28995 | - information about your system including relevant directory names, compiler | ||
| 28996 | - and linker flags, and version numbers. It also includes several Python | ||
| 28997 | - classes and functions which help you write configuration scripts for your own | ||
| 28998 | - bindings. It is covered in detail in :ref:`ref-build-system`. | ||
| 28999 | - | ||
| 29000 | -- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils | ||
| 29001 | - extension that can be used to build your extension modules using distutils | ||
| 29002 | - and is an alternative to writing configuration scripts with the SIP build | ||
| 29003 | - system. This can be as simple as adding your .sip files to the list of files | ||
| 29004 | - needed to build the extension module. It is covered in detail in | ||
| 29005 | - :ref:`ref-distutils`. | ||
| 29006 | - | ||
| 29007 | - | ||
| 29008 | -Preparing for SIP v5 | ||
| 29009 | --------------------- | ||
| 29010 | - | ||
| 29011 | -The syntax of a SIP specification file will change in SIP v5. The command line | ||
| 29012 | -options to the SIP code generator will also change. In order to help users | ||
| 29013 | -manage the transition the following approach will be adopted. | ||
| 29014 | - | ||
| 29015 | -- Where possible, all incompatible changes will be first implemented in SIP v4. | ||
| 29016 | - | ||
| 29017 | -- When an incompatible change is implemented, the old syntax will be deprecated | ||
| 29018 | - (with a warning message) but will be supported for the lifetime of v4. | ||
| 29019 | - | ||
| 29020 | -- The use of the :option:`--sip-module <configure.py --sip-module>` option to | ||
| 29021 | - build a private copy of the SIP module will be compulsory. | ||
| 29022 | - | ||
| 29023 | - | ||
| 29024 | -Qt Support | ||
| 29025 | ----------- | ||
| 29026 | - | ||
| 29027 | -SIP has specific support for the creation of bindings for the Qt application | ||
| 29028 | -toolkit from The Qt Company.. | ||
| 29029 | - | ||
| 29030 | -The SIP code generator understands the signal/slot type safe callback mechanism | ||
| 29031 | -that Qt uses to connect objects together. This allows applications to define | ||
| 29032 | -new Python signals, and allows any Python callable object to be used as a slot. | ||
| 29033 | - | ||
| 29034 | -SIP itself does not require Qt to be installed. | ||
| 29035 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/sphinx/introduction.rst.in sip/sphinx/introduction.rst.in | ||
| 29036 | --- ./sip-4.19.12.orig/sphinx/introduction.rst.in 1969-12-31 19:00:00.000000000 -0500 | ||
| 29037 | +++ sip/sphinx/introduction.rst.in 2018-09-18 17:52:23.312543505 -0400 | ||
| 29038 | @@ -0,0 +1,193 @@ | ||
| 29039 | +Introduction | ||
| 29040 | +============ | ||
| 29041 | + | ||
| 29042 | +This is the reference guide for SIP @RM_RELEASE@. SIP is a tool for | ||
| 29043 | +automatically generating `Python <https://www.python.org>`__ bindings for C and | ||
| 29044 | +C++ libraries. SIP was originally developed in 1998 for | ||
| 29045 | +`PyQt <https://www.riverbankcomputing.com/software/pyqt>`__ - the Python | ||
| 29046 | +bindings for the Qt GUI toolkit - but is suitable for generating bindings for | ||
| 29047 | +any C or C++ library. | ||
| 29048 | + | ||
| 29049 | +This version of SIP generates bindings for Python v2.3 or later, including | ||
| 29050 | +Python v3. | ||
| 29051 | + | ||
| 29052 | +There are many other similar tools available. One of the original such tools | ||
| 29053 | +is `SWIG <http://www.swig.org>`__ and, in fact, SIP is so called because it | ||
| 29054 | +started out as a small SWIG. Unlike SWIG, SIP is specifically designed for | ||
| 29055 | +bringing together Python and C/C++ and goes to great lengths to make the | ||
| 29056 | +integration as tight as possible. | ||
| 29057 | + | ||
| 29058 | +The homepage for SIP is https://www.riverbankcomputing.com/software/sip. Here | ||
| 29059 | +you will always find the latest stable version and the latest version of this | ||
| 29060 | +documentation. | ||
| 29061 | + | ||
| 29062 | +SIP can also be downloaded from the | ||
| 29063 | +`Mercurial <https://www.mercurial-scm.org>`__ repository at | ||
| 29064 | +https://www.riverbankcomputing.com/hg/sip. | ||
| 29065 | + | ||
| 29066 | + | ||
| 29067 | +License | ||
| 29068 | +------- | ||
| 29069 | + | ||
| 29070 | +SIP is licensed under similar terms as Python itself. SIP is also licensed | ||
| 29071 | +under the GPL (both v2 and v3). It is your choice as to which license you | ||
| 29072 | +use. If you choose the GPL then any bindings you create must be distributed | ||
| 29073 | +under the terms of the GPL. | ||
| 29074 | + | ||
| 29075 | + | ||
| 29076 | +Features | ||
| 29077 | +-------- | ||
| 29078 | + | ||
| 29079 | +SIP, and the bindings it produces, have the following features: | ||
| 29080 | + | ||
| 29081 | +- bindings are fast to load and minimise memory consumption especially when | ||
| 29082 | + only a small sub-set of a large library is being used | ||
| 29083 | + | ||
| 29084 | +- automatic conversion between standard Python and C/C++ data types | ||
| 29085 | + | ||
| 29086 | +- overloading of functions and methods with different argument signatures | ||
| 29087 | + | ||
| 29088 | +- support for Python's keyword argument syntax | ||
| 29089 | + | ||
| 29090 | +- support for both explicitly specified and automatically generated docstrings | ||
| 29091 | + | ||
| 29092 | +- access to a C++ class's protected methods | ||
| 29093 | + | ||
| 29094 | +- the ability to define a Python class that is a sub-class of a C++ class, | ||
| 29095 | + including abstract C++ classes | ||
| 29096 | + | ||
| 29097 | +- Python sub-classes can implement the :meth:`__dtor__` method which will be | ||
| 29098 | + called from the C++ class's virtual destructor | ||
| 29099 | + | ||
| 29100 | +- support for ordinary C++ functions, class methods, static class methods, | ||
| 29101 | + virtual class methods and abstract class methods | ||
| 29102 | + | ||
| 29103 | +- the ability to re-implement C++ virtual and abstract methods in Python | ||
| 29104 | + | ||
| 29105 | +- support for global and class variables | ||
| 29106 | + | ||
| 29107 | +- support for global and class operators | ||
| 29108 | + | ||
| 29109 | +- support for C++ namespaces | ||
| 29110 | + | ||
| 29111 | +- support for C++ templates | ||
| 29112 | + | ||
| 29113 | +- support for C++ exceptions and wrapping them as Python exceptions | ||
| 29114 | + | ||
| 29115 | +- the automatic generation of complementary rich comparison slots | ||
| 29116 | + | ||
| 29117 | +- support for deprecation warnings | ||
| 29118 | + | ||
| 29119 | +- the ability to define mappings between C++ classes and similar Python data | ||
| 29120 | + types that are automatically invoked | ||
| 29121 | + | ||
| 29122 | +- the ability to automatically exploit any available run time type information | ||
| 29123 | + to ensure that the class of a Python instance object matches the class of the | ||
| 29124 | + corresponding C++ instance | ||
| 29125 | + | ||
| 29126 | +- the ability to change the type and meta-type of the Python object used to | ||
| 29127 | + wrap a C/C++ data type | ||
| 29128 | + | ||
| 29129 | +- full support of the Python global interpreter lock, including the ability to | ||
| 29130 | + specify that a C++ function of method may block, therefore allowing the lock | ||
| 29131 | + to be released and other Python threads to run | ||
| 29132 | + | ||
| 29133 | +- support for consolidated modules where the generated wrapper code for a | ||
| 29134 | + number of related modules may be included in a single, possibly private, | ||
| 29135 | + module | ||
| 29136 | + | ||
| 29137 | +- support for the concept of ownership of a C++ instance (i.e. what part of the | ||
| 29138 | + code is responsible for calling the instance's destructor) and how the | ||
| 29139 | + ownership may change during the execution of an application | ||
| 29140 | + | ||
| 29141 | +- the ability to generate bindings for a C++ class library that itself is built | ||
| 29142 | + on another C++ class library which also has had bindings generated so that | ||
| 29143 | + the different bindings integrate and share code properly | ||
| 29144 | + | ||
| 29145 | +- a sophisticated versioning system that allows the full lifetime of a C++ | ||
| 29146 | + class library, including any platform specific or optional features, to be | ||
| 29147 | + described in a single set of specification files | ||
| 29148 | + | ||
| 29149 | +- support for the automatic generation of PEP 484 type hint stub files | ||
| 29150 | + | ||
| 29151 | +- the ability to include documentation in the specification files which can be | ||
| 29152 | + extracted and subsequently processed by external tools | ||
| 29153 | + | ||
| 29154 | +- the ability to include copyright notices and licensing information in the | ||
| 29155 | + specification files that is automatically included in all generated source | ||
| 29156 | + code | ||
| 29157 | + | ||
| 29158 | +- a build system, written in Python, that you can extend to configure, compile | ||
| 29159 | + and install your own bindings without worrying about platform specific issues | ||
| 29160 | + | ||
| 29161 | +- support for building your extensions using distutils | ||
| 29162 | + | ||
| 29163 | +- SIP, and the bindings it produces, runs under UNIX, Linux, Windows, MacOS/X, | ||
| 29164 | + Android and iOS. | ||
| 29165 | + | ||
| 29166 | + | ||
| 29167 | +SIP Components | ||
| 29168 | +-------------- | ||
| 29169 | + | ||
| 29170 | +SIP comprises a number of different components. | ||
| 29171 | + | ||
| 29172 | +- The SIP code generator (:program:`sip`). This processes :file:`.sip` | ||
| 29173 | + specification files and generates C or C++ bindings. It is covered in detail | ||
| 29174 | + in :ref:`ref-using`. | ||
| 29175 | + | ||
| 29176 | +- The SIP header file (:file:`sip.h`). This contains definitions and data | ||
| 29177 | + structures needed by the generated C and C++ code. | ||
| 29178 | + | ||
| 29179 | +- The SIP module (:file:`sip.so` or :file:`sip.pyd`). This is a Python | ||
| 29180 | + extension module that is imported automatically by SIP generated bindings and | ||
| 29181 | + provides them with some common utility functions. Historically the module | ||
| 29182 | + was installed in the Python installation's ``site-packages`` directory where | ||
| 29183 | + it was imported by any extension module that needed it, for example | ||
| 29184 | + :mod:`PyQt4` and :mod:`PyQt5`. However this approach introduces dependencies | ||
| 29185 | + between otherwise unrelated packages. The preferred approach is for each | ||
| 29186 | + package to include it's own private copy of the module that is installed in | ||
| 29187 | + the root directory of the package as described in :ref:`ref-private-sip`. | ||
| 29188 | + See also :ref:`ref-python-api`. | ||
| 29189 | + | ||
| 29190 | +- The SIP build system (:file:`sipconfig.py`). This is a pure Python module | ||
| 29191 | + that is created when SIP is configured and encapsulates all the necessary | ||
| 29192 | + information about your system including relevant directory names, compiler | ||
| 29193 | + and linker flags, and version numbers. It also includes several Python | ||
| 29194 | + classes and functions which help you write configuration scripts for your own | ||
| 29195 | + bindings. It is covered in detail in :ref:`ref-build-system`. | ||
| 29196 | + | ||
| 29197 | +- The SIP distutils extension (:file:`sipdistutils.py`). This is a distutils | ||
| 29198 | + extension that can be used to build your extension modules using distutils | ||
| 29199 | + and is an alternative to writing configuration scripts with the SIP build | ||
| 29200 | + system. This can be as simple as adding your .sip files to the list of files | ||
| 29201 | + needed to build the extension module. It is covered in detail in | ||
| 29202 | + :ref:`ref-distutils`. | ||
| 29203 | + | ||
| 29204 | + | ||
| 29205 | +Preparing for SIP v5 | ||
| 29206 | +-------------------- | ||
| 29207 | + | ||
| 29208 | +The syntax of a SIP specification file will change in SIP v5. The command line | ||
| 29209 | +options to the SIP code generator will also change. In order to help users | ||
| 29210 | +manage the transition the following approach will be adopted. | ||
| 29211 | + | ||
| 29212 | +- Where possible, all incompatible changes will be first implemented in SIP v4. | ||
| 29213 | + | ||
| 29214 | +- When an incompatible change is implemented, the old syntax will be deprecated | ||
| 29215 | + (with a warning message) but will be supported for the lifetime of v4. | ||
| 29216 | + | ||
| 29217 | +- The use of the :option:`--sip-module <configure.py --sip-module>` option to | ||
| 29218 | + build a private copy of the SIP module will be compulsory. | ||
| 29219 | + | ||
| 29220 | + | ||
| 29221 | +Qt Support | ||
| 29222 | +---------- | ||
| 29223 | + | ||
| 29224 | +SIP has specific support for the creation of bindings for the Qt application | ||
| 29225 | +toolkit from The Qt Company.. | ||
| 29226 | + | ||
| 29227 | +The SIP code generator understands the signal/slot type safe callback mechanism | ||
| 29228 | +that Qt uses to connect objects together. This allows applications to define | ||
| 29229 | +new Python signals, and allows any Python callable object to be used as a slot. | ||
| 29230 | + | ||
| 29231 | +SIP itself does not require Qt to be installed. | ||
| 29232 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/mk.sh sip/test/int_convertors/mk.sh | ||
| 29233 | --- ./sip-4.19.12.orig/test/int_convertors/mk.sh 1969-12-31 19:00:00.000000000 -0500 | ||
| 29234 | +++ sip/test/int_convertors/mk.sh 2018-09-18 17:52:23.314543476 -0400 | ||
| 29235 | @@ -0,0 +1,23 @@ | ||
| 29236 | +PYTHON=3.6 | ||
| 29237 | +PYTHON_ARCH="$PYTHON"m | ||
| 29238 | +#PYTHON=2.7 | ||
| 29239 | +#PYTHON_ARCH=$PYTHON | ||
| 29240 | + | ||
| 29241 | +QT=5.9.2 | ||
| 29242 | +QT_SHORT=5.9.2 | ||
| 29243 | + | ||
| 29244 | +PYROOT=/Library/Frameworks/Python.framework/Versions/$PYTHON | ||
| 29245 | + | ||
| 29246 | +QTROOT=$HOME/bob/Qt$QT/$QT_SHORT/clang_64 | ||
| 29247 | + | ||
| 29248 | +# Run sip. | ||
| 29249 | +$PYROOT/bin/sip -c . -j 1 test.sip | ||
| 29250 | +#$PYROOT/bin/sip -c . -j 1 -t Qt_5_9_1 -t WS_MACX -I $PYROOT/share/sip/PyQt5 test.sip | ||
| 29251 | + | ||
| 29252 | +# Compile C++. | ||
| 29253 | +c++ -c -pipe -fPIC -Os -w -I. -I$PYROOT/include/python"$PYTHON_ARCH" -o siptestpart0.o siptestpart0.cpp | ||
| 29254 | +#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 | ||
| 29255 | + | ||
| 29256 | +# Link C++. | ||
| 29257 | +c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o | ||
| 29258 | +#c++ -headerpad_max_install_names -bundle -undefined dynamic_lookup -o test.so siptestpart0.o -F$QTROOT/lib -framework QtCore | ||
| 29259 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/run_test.py sip/test/int_convertors/run_test.py | ||
| 29260 | --- ./sip-4.19.12.orig/test/int_convertors/run_test.py 1969-12-31 19:00:00.000000000 -0500 | ||
| 29261 | +++ sip/test/int_convertors/run_test.py 2018-09-18 17:52:23.315543462 -0400 | ||
| 29262 | @@ -0,0 +1,1845 @@ | ||
| 29263 | +import sys | ||
| 29264 | +import unittest | ||
| 29265 | + | ||
| 29266 | +from sip import enableoverflowchecking | ||
| 29267 | + | ||
| 29268 | +from test import Test | ||
| 29269 | + | ||
| 29270 | + | ||
| 29271 | +# The exception raised by a virtual re-implementation. | ||
| 29272 | +_exc = None | ||
| 29273 | + | ||
| 29274 | +# The saved exception hook. | ||
| 29275 | +_old_hook = None | ||
| 29276 | + | ||
| 29277 | + | ||
| 29278 | +def _hook(xtype, xvalue, xtb): | ||
| 29279 | + """ The replacement exceptionhook. """ | ||
| 29280 | + | ||
| 29281 | + global _exc | ||
| 29282 | + | ||
| 29283 | + # Save the exception for later. | ||
| 29284 | + _exc = xvalue | ||
| 29285 | + | ||
| 29286 | + | ||
| 29287 | +def install_hook(): | ||
| 29288 | + """ Install an exception hook that will remember exceptions raised by | ||
| 29289 | + virtual re-implementations. | ||
| 29290 | + """ | ||
| 29291 | + | ||
| 29292 | + global _exc, _old_hook | ||
| 29293 | + | ||
| 29294 | + # Clear the saved exception. | ||
| 29295 | + _exc = None | ||
| 29296 | + | ||
| 29297 | + # Save the old hook and install the new one. | ||
| 29298 | + _old_hook = sys.excepthook | ||
| 29299 | + sys.excepthook = _hook | ||
| 29300 | + | ||
| 29301 | + | ||
| 29302 | +def uninstall_hook(): | ||
| 29303 | + """ Restore the original exception hook and re-raise any exception raised | ||
| 29304 | + by a virtual re-implementation. | ||
| 29305 | + """ | ||
| 29306 | + | ||
| 29307 | + sys.excepthook = _old_hook | ||
| 29308 | + | ||
| 29309 | + if _exc is not None: | ||
| 29310 | + raise _exc | ||
| 29311 | + | ||
| 29312 | + | ||
| 29313 | +class InvalidFixture(Test): | ||
| 29314 | + """ A fixture for testing invalid values. """ | ||
| 29315 | + | ||
| 29316 | + def scoped_virt(self): | ||
| 29317 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29318 | + | ||
| 29319 | + return 10 | ||
| 29320 | + | ||
| 29321 | + def named_virt(self): | ||
| 29322 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29323 | + | ||
| 29324 | + return '0' | ||
| 29325 | + | ||
| 29326 | + def bool_virt(self): | ||
| 29327 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29328 | + | ||
| 29329 | + return '0' | ||
| 29330 | + | ||
| 29331 | + def char_virt(self): | ||
| 29332 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29333 | + | ||
| 29334 | + return '0' | ||
| 29335 | + | ||
| 29336 | + def signed_char_virt(self): | ||
| 29337 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29338 | + | ||
| 29339 | + return '0' | ||
| 29340 | + | ||
| 29341 | + def short_virt(self): | ||
| 29342 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29343 | + | ||
| 29344 | + return '0' | ||
| 29345 | + | ||
| 29346 | + def int_virt(self): | ||
| 29347 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29348 | + | ||
| 29349 | + return '0' | ||
| 29350 | + | ||
| 29351 | + def long_virt(self): | ||
| 29352 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29353 | + | ||
| 29354 | + return '0' | ||
| 29355 | + | ||
| 29356 | + def long_long_virt(self): | ||
| 29357 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29358 | + | ||
| 29359 | + return '0' | ||
| 29360 | + | ||
| 29361 | + def unsigned_char_virt(self): | ||
| 29362 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29363 | + | ||
| 29364 | + return '0' | ||
| 29365 | + | ||
| 29366 | + def unsigned_short_virt(self): | ||
| 29367 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29368 | + | ||
| 29369 | + return '0' | ||
| 29370 | + | ||
| 29371 | + def unsigned_int_virt(self): | ||
| 29372 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29373 | + | ||
| 29374 | + return '0' | ||
| 29375 | + | ||
| 29376 | + def unsigned_long_virt(self): | ||
| 29377 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29378 | + | ||
| 29379 | + return '0' | ||
| 29380 | + | ||
| 29381 | + def unsigned_long_long_virt(self): | ||
| 29382 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29383 | + | ||
| 29384 | + return '0' | ||
| 29385 | + | ||
| 29386 | + | ||
| 29387 | +class ScopedEnumFixture(Test): | ||
| 29388 | + """ A fixture for testing scoped enum values. """ | ||
| 29389 | + | ||
| 29390 | + def scoped_virt(self): | ||
| 29391 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29392 | + | ||
| 29393 | + return Test.Scoped.scoped | ||
| 29394 | + | ||
| 29395 | + | ||
| 29396 | +class NamedEnumFixture(Test): | ||
| 29397 | + """ A fixture for testing named enum values. """ | ||
| 29398 | + | ||
| 29399 | + def __init__(self, value): | ||
| 29400 | + """ Initialise the object. """ | ||
| 29401 | + | ||
| 29402 | + super().__init__() | ||
| 29403 | + | ||
| 29404 | + self._value = value | ||
| 29405 | + | ||
| 29406 | + def named_virt(self): | ||
| 29407 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29408 | + | ||
| 29409 | + return self._value | ||
| 29410 | + | ||
| 29411 | + | ||
| 29412 | +class BoolFixture(Test): | ||
| 29413 | + """ A fixture for testing valid boolean values. """ | ||
| 29414 | + | ||
| 29415 | + def __init__(self, value): | ||
| 29416 | + """ Initialise the object. """ | ||
| 29417 | + | ||
| 29418 | + super().__init__() | ||
| 29419 | + | ||
| 29420 | + self._value = value | ||
| 29421 | + | ||
| 29422 | + def bool_virt(self): | ||
| 29423 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29424 | + | ||
| 29425 | + return self._value | ||
| 29426 | + | ||
| 29427 | + | ||
| 29428 | +class LimitsFixture(Test): | ||
| 29429 | + """ The base test fixture for those implementing a range of values. """ | ||
| 29430 | + | ||
| 29431 | + def __init__(self, limits): | ||
| 29432 | + """ Initialise the object. """ | ||
| 29433 | + | ||
| 29434 | + super().__init__() | ||
| 29435 | + | ||
| 29436 | + self.limits = limits | ||
| 29437 | + | ||
| 29438 | + | ||
| 29439 | +class ValidLowerFixture(LimitsFixture): | ||
| 29440 | + """ A fixture for testing the lower bound of non-overflowing signed values. | ||
| 29441 | + """ | ||
| 29442 | + | ||
| 29443 | + def char_virt(self): | ||
| 29444 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29445 | + | ||
| 29446 | + return self.limits.CHAR_LOWER | ||
| 29447 | + | ||
| 29448 | + def signed_char_virt(self): | ||
| 29449 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29450 | + | ||
| 29451 | + return self.limits.SIGNED_CHAR_LOWER | ||
| 29452 | + | ||
| 29453 | + def short_virt(self): | ||
| 29454 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29455 | + | ||
| 29456 | + return self.limits.SHORT_LOWER | ||
| 29457 | + | ||
| 29458 | + def int_virt(self): | ||
| 29459 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29460 | + | ||
| 29461 | + return self.limits.INT_LOWER | ||
| 29462 | + | ||
| 29463 | + def long_virt(self): | ||
| 29464 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29465 | + | ||
| 29466 | + return self.limits.LONG_LOWER | ||
| 29467 | + | ||
| 29468 | + def long_long_virt(self): | ||
| 29469 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29470 | + | ||
| 29471 | + return self.limits.LONG_LONG_LOWER | ||
| 29472 | + | ||
| 29473 | + | ||
| 29474 | +class ValidUpperFixture(LimitsFixture): | ||
| 29475 | + """ A fixture for testing the upper bound of non-overflowing values. | ||
| 29476 | + """ | ||
| 29477 | + | ||
| 29478 | + def char_virt(self): | ||
| 29479 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29480 | + | ||
| 29481 | + return self.limits.CHAR_UPPER | ||
| 29482 | + | ||
| 29483 | + def signed_char_virt(self): | ||
| 29484 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29485 | + | ||
| 29486 | + return self.limits.SIGNED_CHAR_UPPER | ||
| 29487 | + | ||
| 29488 | + def short_virt(self): | ||
| 29489 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29490 | + | ||
| 29491 | + return self.limits.SHORT_UPPER | ||
| 29492 | + | ||
| 29493 | + def int_virt(self): | ||
| 29494 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29495 | + | ||
| 29496 | + return self.limits.INT_UPPER | ||
| 29497 | + | ||
| 29498 | + def long_virt(self): | ||
| 29499 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29500 | + | ||
| 29501 | + return self.limits.LONG_UPPER | ||
| 29502 | + | ||
| 29503 | + def long_long_virt(self): | ||
| 29504 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29505 | + | ||
| 29506 | + return self.limits.LONG_LONG_UPPER | ||
| 29507 | + | ||
| 29508 | + def unsigned_char_virt(self): | ||
| 29509 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29510 | + | ||
| 29511 | + return self.limits.UNSIGNED_CHAR_UPPER | ||
| 29512 | + | ||
| 29513 | + def unsigned_short_virt(self): | ||
| 29514 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29515 | + | ||
| 29516 | + return self.limits.UNSIGNED_SHORT_UPPER | ||
| 29517 | + | ||
| 29518 | + def unsigned_int_virt(self): | ||
| 29519 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29520 | + | ||
| 29521 | + return self.limits.UNSIGNED_INT_UPPER | ||
| 29522 | + | ||
| 29523 | + def unsigned_long_virt(self): | ||
| 29524 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29525 | + | ||
| 29526 | + return self.limits.UNSIGNED_LONG_UPPER | ||
| 29527 | + | ||
| 29528 | + def unsigned_long_long_virt(self): | ||
| 29529 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29530 | + | ||
| 29531 | + return self.limits.UNSIGNED_LONG_LONG_UPPER | ||
| 29532 | + | ||
| 29533 | + | ||
| 29534 | +class OverflowLowerFixture(LimitsFixture): | ||
| 29535 | + """ A fixture for testing the lower bound of overflowing signed values. """ | ||
| 29536 | + | ||
| 29537 | + def char_virt(self): | ||
| 29538 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29539 | + | ||
| 29540 | + return self.limits.CHAR_LOWER - 1 | ||
| 29541 | + | ||
| 29542 | + def signed_char_virt(self): | ||
| 29543 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29544 | + | ||
| 29545 | + return self.limits.SIGNED_CHAR_LOWER - 1 | ||
| 29546 | + | ||
| 29547 | + def short_virt(self): | ||
| 29548 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29549 | + | ||
| 29550 | + return self.limits.SHORT_LOWER - 1 | ||
| 29551 | + | ||
| 29552 | + def int_virt(self): | ||
| 29553 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29554 | + | ||
| 29555 | + return self.limits.INT_LOWER - 1 | ||
| 29556 | + | ||
| 29557 | + def long_virt(self): | ||
| 29558 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29559 | + | ||
| 29560 | + return self.limits.LONG_LOWER - 1 | ||
| 29561 | + | ||
| 29562 | + def long_long_virt(self): | ||
| 29563 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29564 | + | ||
| 29565 | + return self.limits.LONG_LONG_LOWER - 1 | ||
| 29566 | + | ||
| 29567 | + | ||
| 29568 | +class OverflowUpperFixture(LimitsFixture): | ||
| 29569 | + """ A fixture for testing the upper bound of overflowing values. """ | ||
| 29570 | + | ||
| 29571 | + def char_virt(self): | ||
| 29572 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29573 | + | ||
| 29574 | + return self.limits.CHAR_UPPER + 1 | ||
| 29575 | + | ||
| 29576 | + def signed_char_virt(self): | ||
| 29577 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29578 | + | ||
| 29579 | + return self.limits.SIGNED_CHAR_UPPER + 1 | ||
| 29580 | + | ||
| 29581 | + def short_virt(self): | ||
| 29582 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29583 | + | ||
| 29584 | + return self.limits.SHORT_UPPER + 1 | ||
| 29585 | + | ||
| 29586 | + def int_virt(self): | ||
| 29587 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29588 | + | ||
| 29589 | + return self.limits.INT_UPPER + 1 | ||
| 29590 | + | ||
| 29591 | + def long_virt(self): | ||
| 29592 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29593 | + | ||
| 29594 | + return self.limits.LONG_UPPER + 1 | ||
| 29595 | + | ||
| 29596 | + def long_long_virt(self): | ||
| 29597 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29598 | + | ||
| 29599 | + return self.limits.LONG_LONG_UPPER + 1 | ||
| 29600 | + | ||
| 29601 | + def unsigned_char_virt(self): | ||
| 29602 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29603 | + | ||
| 29604 | + return self.limits.UNSIGNED_CHAR_UPPER + 1 | ||
| 29605 | + | ||
| 29606 | + def unsigned_short_virt(self): | ||
| 29607 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29608 | + | ||
| 29609 | + return self.limits.UNSIGNED_SHORT_UPPER + 1 | ||
| 29610 | + | ||
| 29611 | + def unsigned_int_virt(self): | ||
| 29612 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29613 | + | ||
| 29614 | + return self.limits.UNSIGNED_INT_UPPER + 1 | ||
| 29615 | + | ||
| 29616 | + def unsigned_long_virt(self): | ||
| 29617 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29618 | + | ||
| 29619 | + return self.limits.UNSIGNED_LONG_UPPER + 1 | ||
| 29620 | + | ||
| 29621 | + def unsigned_long_long_virt(self): | ||
| 29622 | + """ Re-implemented to return the fixture-specific value. """ | ||
| 29623 | + | ||
| 29624 | + return self.limits.UNSIGNED_LONG_LONG_UPPER + 1 | ||
| 29625 | + | ||
| 29626 | + | ||
| 29627 | +class TestScopedEnumConvertors(unittest.TestCase): | ||
| 29628 | + """ This tests the scoped enum convertors with valid values. """ | ||
| 29629 | + | ||
| 29630 | + def setUp(self): | ||
| 29631 | + """ Set up a test. """ | ||
| 29632 | + | ||
| 29633 | + self.fixture = ScopedEnumFixture() | ||
| 29634 | + | ||
| 29635 | + def tearDown(self): | ||
| 29636 | + """ Tidy up after a test. """ | ||
| 29637 | + | ||
| 29638 | + del self.fixture | ||
| 29639 | + | ||
| 29640 | + def test_scoped_get_member(self): | ||
| 29641 | + """ scoped enum virtual result with a member value. """ | ||
| 29642 | + | ||
| 29643 | + self.assertIs(self.fixture.scoped_get(), Test.Scoped.scoped) | ||
| 29644 | + | ||
| 29645 | + def test_scoped_set_member(self): | ||
| 29646 | + """ scoped enum function argument with a member value. """ | ||
| 29647 | + | ||
| 29648 | + self.fixture.scoped_set(Test.Scoped.scoped) | ||
| 29649 | + | ||
| 29650 | + def test_scoped_var_member(self): | ||
| 29651 | + """ scoped enum instance variable with a member value. """ | ||
| 29652 | + | ||
| 29653 | + self.fixture.scoped_var = Test.Scoped.scoped | ||
| 29654 | + | ||
| 29655 | + | ||
| 29656 | +class TestNamedEnumConvertors(unittest.TestCase): | ||
| 29657 | + """ This tests the named enum convertors with valid values. """ | ||
| 29658 | + | ||
| 29659 | + def setUp(self): | ||
| 29660 | + """ Set up a test. """ | ||
| 29661 | + | ||
| 29662 | + self.member_fixture = NamedEnumFixture(Test.named) | ||
| 29663 | + self.int_fixture = NamedEnumFixture(0) | ||
| 29664 | + | ||
| 29665 | + def tearDown(self): | ||
| 29666 | + """ Tidy up after a test. """ | ||
| 29667 | + | ||
| 29668 | + del self.member_fixture | ||
| 29669 | + del self.int_fixture | ||
| 29670 | + | ||
| 29671 | + def test_named_get_member(self): | ||
| 29672 | + """ named enum virtual result with a member value. """ | ||
| 29673 | + | ||
| 29674 | + self.assertEqual(self.member_fixture.named_get(), Test.named) | ||
| 29675 | + | ||
| 29676 | + def test_named_set_member(self): | ||
| 29677 | + """ named enum function argument with a member value. """ | ||
| 29678 | + | ||
| 29679 | + self.member_fixture.named_set(Test.named) | ||
| 29680 | + | ||
| 29681 | + def test_named_var_member(self): | ||
| 29682 | + """ named enum instance variable with a member value. """ | ||
| 29683 | + | ||
| 29684 | + self.member_fixture.named_var = Test.named | ||
| 29685 | + | ||
| 29686 | + def test_named_overload_set(self): | ||
| 29687 | + """ overloaded named enum function argument. """ | ||
| 29688 | + | ||
| 29689 | + self.member_fixture.named_overload_set(Test.named) | ||
| 29690 | + self.assertIs(self.member_fixture.named_overload, True) | ||
| 29691 | + | ||
| 29692 | + def test_named_get_int(self): | ||
| 29693 | + """ named enum virtual result with an integer value. """ | ||
| 29694 | + | ||
| 29695 | + self.assertEqual(self.int_fixture.named_get(), 0) | ||
| 29696 | + | ||
| 29697 | + def test_named_set_int(self): | ||
| 29698 | + """ named enum function argument with an integer value. """ | ||
| 29699 | + | ||
| 29700 | + self.int_fixture.named_set(0) | ||
| 29701 | + | ||
| 29702 | + def test_named_var_int(self): | ||
| 29703 | + """ named enum instance variable with an integer value. """ | ||
| 29704 | + | ||
| 29705 | + self.int_fixture.named_var = 0 | ||
| 29706 | + | ||
| 29707 | + | ||
| 29708 | +class TestBoolConvertors(unittest.TestCase): | ||
| 29709 | + """ This tests the bool convertors with valid values. """ | ||
| 29710 | + | ||
| 29711 | + def setUp(self): | ||
| 29712 | + """ Set up a test. """ | ||
| 29713 | + | ||
| 29714 | + self.true_fixture = BoolFixture(True) | ||
| 29715 | + self.false_fixture = BoolFixture(False) | ||
| 29716 | + self.nonzero_fixture = BoolFixture(-1) | ||
| 29717 | + self.zero_fixture = BoolFixture(0) | ||
| 29718 | + | ||
| 29719 | + def tearDown(self): | ||
| 29720 | + """ Tidy up after a test. """ | ||
| 29721 | + | ||
| 29722 | + del self.true_fixture | ||
| 29723 | + del self.false_fixture | ||
| 29724 | + del self.nonzero_fixture | ||
| 29725 | + del self.zero_fixture | ||
| 29726 | + | ||
| 29727 | + def test_bool_get_true(self): | ||
| 29728 | + """ bool virtual result with a True value. """ | ||
| 29729 | + | ||
| 29730 | + self.assertIs(self.true_fixture.bool_get(), True) | ||
| 29731 | + | ||
| 29732 | + def test_bool_set_true(self): | ||
| 29733 | + """ bool function argument with a True value. """ | ||
| 29734 | + | ||
| 29735 | + self.true_fixture.bool_set(True) | ||
| 29736 | + | ||
| 29737 | + def test_bool_var_true(self): | ||
| 29738 | + """ bool instance variable with a True value. """ | ||
| 29739 | + | ||
| 29740 | + self.true_fixture.bool_var = True | ||
| 29741 | + | ||
| 29742 | + def test_bool_get_false(self): | ||
| 29743 | + """ bool virtual result with a True value. """ | ||
| 29744 | + | ||
| 29745 | + self.assertIs(self.false_fixture.bool_get(), False) | ||
| 29746 | + | ||
| 29747 | + def test_bool_set_false(self): | ||
| 29748 | + """ bool function argument with a False value. """ | ||
| 29749 | + | ||
| 29750 | + self.false_fixture.bool_set(False) | ||
| 29751 | + | ||
| 29752 | + def test_bool_var_false(self): | ||
| 29753 | + """ bool instance variable with a False value. """ | ||
| 29754 | + | ||
| 29755 | + self.false_fixture.bool_var = False | ||
| 29756 | + | ||
| 29757 | + def test_bool_get_nonzero(self): | ||
| 29758 | + """ bool virtual result with a non-zero value. """ | ||
| 29759 | + | ||
| 29760 | + self.assertIs(self.nonzero_fixture.bool_get(), True) | ||
| 29761 | + | ||
| 29762 | + def test_bool_set_nonzero(self): | ||
| 29763 | + """ bool function argument with a non-zero value. """ | ||
| 29764 | + | ||
| 29765 | + self.nonzero_fixture.bool_set(-1) | ||
| 29766 | + | ||
| 29767 | + def test_bool_var_nonzero(self): | ||
| 29768 | + """ bool instance variable with a non-zero value. """ | ||
| 29769 | + | ||
| 29770 | + self.nonzero_fixture.bool_var = -1 | ||
| 29771 | + | ||
| 29772 | + def test_bool_get_zero(self): | ||
| 29773 | + """ bool virtual result with a zero value. """ | ||
| 29774 | + | ||
| 29775 | + self.assertIs(self.zero_fixture.bool_get(), False) | ||
| 29776 | + | ||
| 29777 | + def test_bool_set_zero(self): | ||
| 29778 | + """ bool function argument with a zero value. """ | ||
| 29779 | + | ||
| 29780 | + self.zero_fixture.bool_set(0) | ||
| 29781 | + | ||
| 29782 | + def test_bool_var_zero(self): | ||
| 29783 | + """ bool instance variable with a zero value. """ | ||
| 29784 | + | ||
| 29785 | + self.zero_fixture.bool_var = 0 | ||
| 29786 | + | ||
| 29787 | + | ||
| 29788 | +class TestIntConvertors(unittest.TestCase): | ||
| 29789 | + """ This tests the integer convertors with valid values. """ | ||
| 29790 | + | ||
| 29791 | + @classmethod | ||
| 29792 | + def setUpClass(cls): | ||
| 29793 | + """ Set up a test case. """ | ||
| 29794 | + | ||
| 29795 | + # Compute the various test values based on the native sizes. | ||
| 29796 | + cls.CHAR_LOWER = Test.char_lower() | ||
| 29797 | + cls.CHAR_UPPER = Test.char_upper() | ||
| 29798 | + cls.SIGNED_CHAR_LOWER, cls.SIGNED_CHAR_UPPER = cls._signed_bounds( | ||
| 29799 | + Test.signed_char_sizeof()) | ||
| 29800 | + cls.SHORT_LOWER, cls.SHORT_UPPER = cls._signed_bounds( | ||
| 29801 | + Test.short_sizeof()) | ||
| 29802 | + cls.INT_LOWER, cls.INT_UPPER = cls._signed_bounds(Test.int_sizeof()) | ||
| 29803 | + cls.LONG_LOWER, cls.LONG_UPPER = cls._signed_bounds(Test.long_sizeof()) | ||
| 29804 | + cls.LONG_LONG_LOWER, cls.LONG_LONG_UPPER = cls._signed_bounds( | ||
| 29805 | + Test.long_long_sizeof()) | ||
| 29806 | + cls.UNSIGNED_CHAR_UPPER = cls._unsigned_upper_bound( | ||
| 29807 | + Test.unsigned_char_sizeof()) | ||
| 29808 | + cls.UNSIGNED_SHORT_UPPER = cls._unsigned_upper_bound( | ||
| 29809 | + Test.unsigned_short_sizeof()) | ||
| 29810 | + cls.UNSIGNED_INT_UPPER = cls._unsigned_upper_bound( | ||
| 29811 | + Test.unsigned_int_sizeof()) | ||
| 29812 | + cls.UNSIGNED_LONG_UPPER = cls._unsigned_upper_bound( | ||
| 29813 | + Test.unsigned_long_sizeof()) | ||
| 29814 | + cls.UNSIGNED_LONG_LONG_UPPER = cls._unsigned_upper_bound( | ||
| 29815 | + Test.unsigned_long_long_sizeof()) | ||
| 29816 | + | ||
| 29817 | + @staticmethod | ||
| 29818 | + def _signed_bounds(nrbytes): | ||
| 29819 | + """ Return the range of values for a number of bytes representing a | ||
| 29820 | + signed value. | ||
| 29821 | + """ | ||
| 29822 | + | ||
| 29823 | + v = 1 << ((nrbytes * 8) - 1) | ||
| 29824 | + | ||
| 29825 | + return -v, v - 1 | ||
| 29826 | + | ||
| 29827 | + @staticmethod | ||
| 29828 | + def _unsigned_upper_bound(nrbytes): | ||
| 29829 | + """ Return the upper bound for a number of bytes representing an | ||
| 29830 | + unsigned value. | ||
| 29831 | + """ | ||
| 29832 | + | ||
| 29833 | + return (1 << (nrbytes * 8)) - 1 | ||
| 29834 | + | ||
| 29835 | + | ||
| 29836 | +class TestInvalidValues(TestIntConvertors): | ||
| 29837 | + """ This tests the integer, boolean and enum convertors with invalid | ||
| 29838 | + values. | ||
| 29839 | + """ | ||
| 29840 | + | ||
| 29841 | + def setUp(self): | ||
| 29842 | + """ Set up a test. """ | ||
| 29843 | + | ||
| 29844 | + self.fixture = InvalidFixture() | ||
| 29845 | + | ||
| 29846 | + def tearDown(self): | ||
| 29847 | + """ Tidy up after a test. """ | ||
| 29848 | + | ||
| 29849 | + del self.fixture | ||
| 29850 | + | ||
| 29851 | + def test_scoped_get(self): | ||
| 29852 | + """ scoped enum virtual result. """ | ||
| 29853 | + | ||
| 29854 | + with self.assertRaises(TypeError): | ||
| 29855 | + install_hook() | ||
| 29856 | + self.fixture.scoped_get() | ||
| 29857 | + uninstall_hook() | ||
| 29858 | + | ||
| 29859 | + def test_scoped_set(self): | ||
| 29860 | + """ scoped enum function argument. """ | ||
| 29861 | + | ||
| 29862 | + with self.assertRaises(TypeError): | ||
| 29863 | + self.fixture.scoped_set(10) | ||
| 29864 | + | ||
| 29865 | + def test_scoped_var(self): | ||
| 29866 | + """ scoped enum instance variable. """ | ||
| 29867 | + | ||
| 29868 | + with self.assertRaises(TypeError): | ||
| 29869 | + self.fixture.scoped_var = 10 | ||
| 29870 | + | ||
| 29871 | + def test_named_get(self): | ||
| 29872 | + """ named enum virtual result. """ | ||
| 29873 | + | ||
| 29874 | + with self.assertRaises(TypeError): | ||
| 29875 | + install_hook() | ||
| 29876 | + self.fixture.named_get() | ||
| 29877 | + uninstall_hook() | ||
| 29878 | + | ||
| 29879 | + def test_named_set(self): | ||
| 29880 | + """ named enum function argument. """ | ||
| 29881 | + | ||
| 29882 | + with self.assertRaises(TypeError): | ||
| 29883 | + self.fixture.named_set('0') | ||
| 29884 | + | ||
| 29885 | + def test_named_var(self): | ||
| 29886 | + """ named enum instance variable. """ | ||
| 29887 | + | ||
| 29888 | + with self.assertRaises(TypeError): | ||
| 29889 | + self.fixture.named_var = '0' | ||
| 29890 | + | ||
| 29891 | + def test_bool_get(self): | ||
| 29892 | + """ bool virtual result. """ | ||
| 29893 | + | ||
| 29894 | + with self.assertRaises(TypeError): | ||
| 29895 | + install_hook() | ||
| 29896 | + self.fixture.bool_get() | ||
| 29897 | + uninstall_hook() | ||
| 29898 | + | ||
| 29899 | + def test_bool_set(self): | ||
| 29900 | + """ bool function argument. """ | ||
| 29901 | + | ||
| 29902 | + with self.assertRaises(TypeError): | ||
| 29903 | + self.fixture.bool_set('0') | ||
| 29904 | + | ||
| 29905 | + def test_bool_var(self): | ||
| 29906 | + """ bool instance variable. """ | ||
| 29907 | + | ||
| 29908 | + with self.assertRaises(TypeError): | ||
| 29909 | + self.fixture.bool_var = '0' | ||
| 29910 | + | ||
| 29911 | + def test_char_get(self): | ||
| 29912 | + """ char virtual result. """ | ||
| 29913 | + | ||
| 29914 | + with self.assertRaises(TypeError): | ||
| 29915 | + install_hook() | ||
| 29916 | + self.fixture.char_get() | ||
| 29917 | + uninstall_hook() | ||
| 29918 | + | ||
| 29919 | + def test_char_set(self): | ||
| 29920 | + """ char function argument. """ | ||
| 29921 | + | ||
| 29922 | + with self.assertRaises(TypeError): | ||
| 29923 | + self.fixture.char_set('0') | ||
| 29924 | + | ||
| 29925 | + def test_char_var(self): | ||
| 29926 | + """ char instance variable. """ | ||
| 29927 | + | ||
| 29928 | + with self.assertRaises(TypeError): | ||
| 29929 | + self.fixture.char_var = '0' | ||
| 29930 | + | ||
| 29931 | + def test_signed_char_get(self): | ||
| 29932 | + """ signed char virtual result. """ | ||
| 29933 | + | ||
| 29934 | + with self.assertRaises(TypeError): | ||
| 29935 | + install_hook() | ||
| 29936 | + self.fixture.signed_char_get() | ||
| 29937 | + uninstall_hook() | ||
| 29938 | + | ||
| 29939 | + def test_signed_char_set(self): | ||
| 29940 | + """ signed char function argument. """ | ||
| 29941 | + | ||
| 29942 | + with self.assertRaises(TypeError): | ||
| 29943 | + self.fixture.signed_char_set('0') | ||
| 29944 | + | ||
| 29945 | + def test_signed_char_var(self): | ||
| 29946 | + """ signed char instance variable. """ | ||
| 29947 | + | ||
| 29948 | + with self.assertRaises(TypeError): | ||
| 29949 | + self.fixture.signed_char_var = '0' | ||
| 29950 | + | ||
| 29951 | + def test_short_get(self): | ||
| 29952 | + """ short virtual result. """ | ||
| 29953 | + | ||
| 29954 | + with self.assertRaises(TypeError): | ||
| 29955 | + install_hook() | ||
| 29956 | + self.fixture.short_get() | ||
| 29957 | + uninstall_hook() | ||
| 29958 | + | ||
| 29959 | + def test_short_set(self): | ||
| 29960 | + """ short function argument. """ | ||
| 29961 | + | ||
| 29962 | + with self.assertRaises(TypeError): | ||
| 29963 | + self.fixture.short_set('0') | ||
| 29964 | + | ||
| 29965 | + def test_short_var(self): | ||
| 29966 | + """ short instance variable. """ | ||
| 29967 | + | ||
| 29968 | + with self.assertRaises(TypeError): | ||
| 29969 | + self.fixture.short_var = '0' | ||
| 29970 | + | ||
| 29971 | + def test_int_get(self): | ||
| 29972 | + """ int virtual result. """ | ||
| 29973 | + | ||
| 29974 | + with self.assertRaises(TypeError): | ||
| 29975 | + install_hook() | ||
| 29976 | + self.fixture.int_get() | ||
| 29977 | + uninstall_hook() | ||
| 29978 | + | ||
| 29979 | + def test_int_set(self): | ||
| 29980 | + """ int function argument. """ | ||
| 29981 | + | ||
| 29982 | + with self.assertRaises(TypeError): | ||
| 29983 | + self.fixture.int_set('0') | ||
| 29984 | + | ||
| 29985 | + def test_int_var(self): | ||
| 29986 | + """ int instance variable. """ | ||
| 29987 | + | ||
| 29988 | + with self.assertRaises(TypeError): | ||
| 29989 | + self.fixture.int_var = '0' | ||
| 29990 | + | ||
| 29991 | + def test_long_get(self): | ||
| 29992 | + """ long virtual result. """ | ||
| 29993 | + | ||
| 29994 | + with self.assertRaises(TypeError): | ||
| 29995 | + install_hook() | ||
| 29996 | + self.fixture.long_get() | ||
| 29997 | + uninstall_hook() | ||
| 29998 | + | ||
| 29999 | + def test_long_set(self): | ||
| 30000 | + """ long function argument. """ | ||
| 30001 | + | ||
| 30002 | + with self.assertRaises(TypeError): | ||
| 30003 | + self.fixture.long_set('0') | ||
| 30004 | + | ||
| 30005 | + def test_long_var(self): | ||
| 30006 | + """ long instance variable. """ | ||
| 30007 | + | ||
| 30008 | + with self.assertRaises(TypeError): | ||
| 30009 | + self.fixture.long_var = '0' | ||
| 30010 | + | ||
| 30011 | + def test_long_long_get(self): | ||
| 30012 | + """ long long virtual result. """ | ||
| 30013 | + | ||
| 30014 | + with self.assertRaises(TypeError): | ||
| 30015 | + install_hook() | ||
| 30016 | + self.fixture.long_long_get() | ||
| 30017 | + uninstall_hook() | ||
| 30018 | + | ||
| 30019 | + def test_long_long_set(self): | ||
| 30020 | + """ long long function argument. """ | ||
| 30021 | + | ||
| 30022 | + with self.assertRaises(TypeError): | ||
| 30023 | + self.fixture.long_long_set('0') | ||
| 30024 | + | ||
| 30025 | + def test_long_long_var(self): | ||
| 30026 | + """ long long instance variable. """ | ||
| 30027 | + | ||
| 30028 | + with self.assertRaises(TypeError): | ||
| 30029 | + self.fixture.long_long_var = '0' | ||
| 30030 | + | ||
| 30031 | + def test_unsigned_char_get(self): | ||
| 30032 | + """ unsigned char virtual result. """ | ||
| 30033 | + | ||
| 30034 | + with self.assertRaises(TypeError): | ||
| 30035 | + install_hook() | ||
| 30036 | + self.fixture.unsigned_char_get() | ||
| 30037 | + uninstall_hook() | ||
| 30038 | + | ||
| 30039 | + def test_unsigned_char_set(self): | ||
| 30040 | + """ unsigned char function argument. """ | ||
| 30041 | + | ||
| 30042 | + with self.assertRaises(TypeError): | ||
| 30043 | + self.fixture.unsigned_char_set('0') | ||
| 30044 | + | ||
| 30045 | + def test_unsigned_char_var(self): | ||
| 30046 | + """ unsigned char instance variable. """ | ||
| 30047 | + | ||
| 30048 | + with self.assertRaises(TypeError): | ||
| 30049 | + self.fixture.unsigned_char_var = '0' | ||
| 30050 | + | ||
| 30051 | + def test_unsigned_short_get(self): | ||
| 30052 | + """ unsigned short virtual result. """ | ||
| 30053 | + | ||
| 30054 | + with self.assertRaises(TypeError): | ||
| 30055 | + install_hook() | ||
| 30056 | + self.fixture.unsigned_short_get() | ||
| 30057 | + uninstall_hook() | ||
| 30058 | + | ||
| 30059 | + def test_unsigned_short_set(self): | ||
| 30060 | + """ unsigned short function argument. """ | ||
| 30061 | + | ||
| 30062 | + with self.assertRaises(TypeError): | ||
| 30063 | + self.fixture.unsigned_short_set('0') | ||
| 30064 | + | ||
| 30065 | + def test_unsigned_short_var(self): | ||
| 30066 | + """ unsigned short instance variable. """ | ||
| 30067 | + | ||
| 30068 | + with self.assertRaises(TypeError): | ||
| 30069 | + self.fixture.unsigned_short_var = '0' | ||
| 30070 | + | ||
| 30071 | + def test_unsigned_int_get(self): | ||
| 30072 | + """ unsigned int virtual result. """ | ||
| 30073 | + | ||
| 30074 | + with self.assertRaises(TypeError): | ||
| 30075 | + install_hook() | ||
| 30076 | + self.fixture.unsigned_int_get() | ||
| 30077 | + uninstall_hook() | ||
| 30078 | + | ||
| 30079 | + def test_unsigned_int_set(self): | ||
| 30080 | + """ unsigned int function argument. """ | ||
| 30081 | + | ||
| 30082 | + with self.assertRaises(TypeError): | ||
| 30083 | + self.fixture.unsigned_int_set('0') | ||
| 30084 | + | ||
| 30085 | + def test_unsigned_int_var(self): | ||
| 30086 | + """ unsigned int instance variable. """ | ||
| 30087 | + | ||
| 30088 | + with self.assertRaises(TypeError): | ||
| 30089 | + self.fixture.unsigned_int_var = '0' | ||
| 30090 | + | ||
| 30091 | + def test_unsigned_long_get(self): | ||
| 30092 | + """ unsigned long virtual result. """ | ||
| 30093 | + | ||
| 30094 | + with self.assertRaises(TypeError): | ||
| 30095 | + install_hook() | ||
| 30096 | + self.fixture.unsigned_long_get() | ||
| 30097 | + uninstall_hook() | ||
| 30098 | + | ||
| 30099 | + def test_unsigned_long_set(self): | ||
| 30100 | + """ unsigned long function argument. """ | ||
| 30101 | + | ||
| 30102 | + with self.assertRaises(TypeError): | ||
| 30103 | + self.fixture.unsigned_long_set('0') | ||
| 30104 | + | ||
| 30105 | + def test_unsigned_long_var(self): | ||
| 30106 | + """ unsigned long instance variable. """ | ||
| 30107 | + | ||
| 30108 | + with self.assertRaises(TypeError): | ||
| 30109 | + self.fixture.unsigned_long_var = '0' | ||
| 30110 | + | ||
| 30111 | + def test_unsigned_long_long_get(self): | ||
| 30112 | + """ unsigned long long virtual result. """ | ||
| 30113 | + | ||
| 30114 | + with self.assertRaises(TypeError): | ||
| 30115 | + install_hook() | ||
| 30116 | + self.fixture.unsigned_long_long_get() | ||
| 30117 | + uninstall_hook() | ||
| 30118 | + | ||
| 30119 | + def test_unsigned_long_long_set(self): | ||
| 30120 | + """ unsigned long long function argument. """ | ||
| 30121 | + | ||
| 30122 | + with self.assertRaises(TypeError): | ||
| 30123 | + self.fixture.unsigned_long_long_set('0') | ||
| 30124 | + | ||
| 30125 | + def test_unsigned_long_long_var(self): | ||
| 30126 | + """ unsigned long long instance variable. """ | ||
| 30127 | + | ||
| 30128 | + with self.assertRaises(TypeError): | ||
| 30129 | + self.fixture.unsigned_long_long_var = '0' | ||
| 30130 | + | ||
| 30131 | + | ||
| 30132 | +class TestValidValues(TestIntConvertors): | ||
| 30133 | + """ This tests the integer convertors with valid values. """ | ||
| 30134 | + | ||
| 30135 | + def setUp(self): | ||
| 30136 | + """ Set up a test. """ | ||
| 30137 | + | ||
| 30138 | + self.lower_fixture = ValidLowerFixture(self) | ||
| 30139 | + self.upper_fixture = ValidUpperFixture(self) | ||
| 30140 | + | ||
| 30141 | + def tearDown(self): | ||
| 30142 | + """ Tidy up after a test. """ | ||
| 30143 | + | ||
| 30144 | + del self.lower_fixture | ||
| 30145 | + del self.upper_fixture | ||
| 30146 | + | ||
| 30147 | + def test_char_get_lower(self): | ||
| 30148 | + """ char virtual result lower bound. """ | ||
| 30149 | + | ||
| 30150 | + self.assertEqual(self.lower_fixture.char_get(), self.CHAR_LOWER) | ||
| 30151 | + | ||
| 30152 | + def test_char_get_upper(self): | ||
| 30153 | + """ char virtual result upper bound. """ | ||
| 30154 | + | ||
| 30155 | + self.assertEqual(self.upper_fixture.char_get(), self.CHAR_UPPER) | ||
| 30156 | + | ||
| 30157 | + def test_char_set_lower(self): | ||
| 30158 | + """ char function argument lower bound. """ | ||
| 30159 | + | ||
| 30160 | + self.lower_fixture.char_set(self.CHAR_LOWER) | ||
| 30161 | + | ||
| 30162 | + def test_char_set_upper(self): | ||
| 30163 | + """ char function argument upper bound. """ | ||
| 30164 | + | ||
| 30165 | + self.upper_fixture.char_set(self.CHAR_UPPER) | ||
| 30166 | + | ||
| 30167 | + def test_char_var_lower(self): | ||
| 30168 | + """ char instance variable lower bound. """ | ||
| 30169 | + | ||
| 30170 | + self.lower_fixture.char_var = self.CHAR_LOWER | ||
| 30171 | + | ||
| 30172 | + def test_char_var_upper(self): | ||
| 30173 | + """ char instance variable upper bound. """ | ||
| 30174 | + | ||
| 30175 | + self.upper_fixture.char_var = self.CHAR_UPPER | ||
| 30176 | + | ||
| 30177 | + def test_signed_char_get_lower(self): | ||
| 30178 | + """ signed char virtual result lower bound. """ | ||
| 30179 | + | ||
| 30180 | + self.assertEqual(self.lower_fixture.signed_char_get(), | ||
| 30181 | + self.SIGNED_CHAR_LOWER) | ||
| 30182 | + | ||
| 30183 | + def test_signed_char_get_upper(self): | ||
| 30184 | + """ signed char virtual result upper bound. """ | ||
| 30185 | + | ||
| 30186 | + self.assertEqual(self.upper_fixture.signed_char_get(), | ||
| 30187 | + self.SIGNED_CHAR_UPPER) | ||
| 30188 | + | ||
| 30189 | + def test_signed_char_set_lower(self): | ||
| 30190 | + """ signed char function argument lower bound. """ | ||
| 30191 | + | ||
| 30192 | + self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER) | ||
| 30193 | + | ||
| 30194 | + def test_signed_char_set_upper(self): | ||
| 30195 | + """ signed char function argument upper bound. """ | ||
| 30196 | + | ||
| 30197 | + self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER) | ||
| 30198 | + | ||
| 30199 | + def test_signed_char_var_lower(self): | ||
| 30200 | + """ signed char instance variable lower bound. """ | ||
| 30201 | + | ||
| 30202 | + self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER | ||
| 30203 | + | ||
| 30204 | + def test_signed_char_var_upper(self): | ||
| 30205 | + """ signed char instance variable upper bound. """ | ||
| 30206 | + | ||
| 30207 | + self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER | ||
| 30208 | + | ||
| 30209 | + def test_short_get_lower(self): | ||
| 30210 | + """ short virtual result lower bound. """ | ||
| 30211 | + | ||
| 30212 | + self.assertEqual(self.lower_fixture.short_get(), self.SHORT_LOWER) | ||
| 30213 | + | ||
| 30214 | + def test_short_get_upper(self): | ||
| 30215 | + """ short virtual result upper bound. """ | ||
| 30216 | + | ||
| 30217 | + self.assertEqual(self.upper_fixture.short_get(), self.SHORT_UPPER) | ||
| 30218 | + | ||
| 30219 | + def test_short_set_lower(self): | ||
| 30220 | + """ short function argument lower bound. """ | ||
| 30221 | + | ||
| 30222 | + self.lower_fixture.short_set(self.SHORT_LOWER) | ||
| 30223 | + | ||
| 30224 | + def test_short_set_upper(self): | ||
| 30225 | + """ short function argument upper bound. """ | ||
| 30226 | + | ||
| 30227 | + self.upper_fixture.short_set(self.SHORT_UPPER) | ||
| 30228 | + | ||
| 30229 | + def test_short_var_lower(self): | ||
| 30230 | + """ short instance variable lower bound. """ | ||
| 30231 | + | ||
| 30232 | + self.lower_fixture.short_var = self.SHORT_LOWER | ||
| 30233 | + | ||
| 30234 | + def test_short_var_upper(self): | ||
| 30235 | + """ short instance variable upper bound. """ | ||
| 30236 | + | ||
| 30237 | + self.upper_fixture.short_var = self.SHORT_UPPER | ||
| 30238 | + | ||
| 30239 | + def test_int_get_lower(self): | ||
| 30240 | + """ int virtual result lower bound. """ | ||
| 30241 | + | ||
| 30242 | + self.assertEqual(self.lower_fixture.int_get(), self.INT_LOWER) | ||
| 30243 | + | ||
| 30244 | + def test_int_get_upper(self): | ||
| 30245 | + """ int virtual result upper bound. """ | ||
| 30246 | + | ||
| 30247 | + self.assertEqual(self.upper_fixture.int_get(), self.INT_UPPER) | ||
| 30248 | + | ||
| 30249 | + def test_int_set_lower(self): | ||
| 30250 | + """ int function argument lower bound. """ | ||
| 30251 | + | ||
| 30252 | + self.lower_fixture.int_set(self.INT_LOWER) | ||
| 30253 | + | ||
| 30254 | + def test_int_set_upper(self): | ||
| 30255 | + """ int function argument upper bound. """ | ||
| 30256 | + | ||
| 30257 | + self.upper_fixture.int_set(self.INT_UPPER) | ||
| 30258 | + | ||
| 30259 | + def test_int_var_lower(self): | ||
| 30260 | + """ int instance variable lower bound. """ | ||
| 30261 | + | ||
| 30262 | + self.lower_fixture.int_var = self.INT_LOWER | ||
| 30263 | + | ||
| 30264 | + def test_int_var_upper(self): | ||
| 30265 | + """ int instance variable upper bound. """ | ||
| 30266 | + | ||
| 30267 | + self.upper_fixture.int_var = self.INT_UPPER | ||
| 30268 | + | ||
| 30269 | + def test_long_get_lower(self): | ||
| 30270 | + """ long virtual result lower bound. """ | ||
| 30271 | + | ||
| 30272 | + self.assertEqual(self.lower_fixture.long_get(), self.LONG_LOWER) | ||
| 30273 | + | ||
| 30274 | + def test_long_get_upper(self): | ||
| 30275 | + """ long virtual result upper bound. """ | ||
| 30276 | + | ||
| 30277 | + self.assertEqual(self.upper_fixture.long_get(), self.LONG_UPPER) | ||
| 30278 | + | ||
| 30279 | + def test_long_set_lower(self): | ||
| 30280 | + """ long function argument lower bound. """ | ||
| 30281 | + | ||
| 30282 | + self.lower_fixture.long_set(self.LONG_LOWER) | ||
| 30283 | + | ||
| 30284 | + def test_long_set_upper(self): | ||
| 30285 | + """ long function argument upper bound. """ | ||
| 30286 | + | ||
| 30287 | + self.upper_fixture.long_set(self.LONG_UPPER) | ||
| 30288 | + | ||
| 30289 | + def test_long_var_lower(self): | ||
| 30290 | + """ long instance variable lower bound. """ | ||
| 30291 | + | ||
| 30292 | + self.lower_fixture.long_var = self.LONG_LOWER | ||
| 30293 | + | ||
| 30294 | + def test_long_var_upper(self): | ||
| 30295 | + """ long instance variable upper bound. """ | ||
| 30296 | + | ||
| 30297 | + self.upper_fixture.long_var = self.LONG_UPPER | ||
| 30298 | + | ||
| 30299 | + def test_long_long_get_lower(self): | ||
| 30300 | + """ long long virtual result lower bound. """ | ||
| 30301 | + | ||
| 30302 | + self.assertEqual(self.lower_fixture.long_long_get(), | ||
| 30303 | + self.LONG_LONG_LOWER) | ||
| 30304 | + | ||
| 30305 | + def test_long_long_get_upper(self): | ||
| 30306 | + """ long long virtual result upper bound. """ | ||
| 30307 | + | ||
| 30308 | + self.assertEqual(self.upper_fixture.long_long_get(), | ||
| 30309 | + self.LONG_LONG_UPPER) | ||
| 30310 | + | ||
| 30311 | + def test_long_long_set_lower(self): | ||
| 30312 | + """ long long function argument lower bound. """ | ||
| 30313 | + | ||
| 30314 | + self.lower_fixture.long_long_set(self.LONG_LONG_LOWER) | ||
| 30315 | + | ||
| 30316 | + def test_long_long_set_upper(self): | ||
| 30317 | + """ long long function argument upper bound. """ | ||
| 30318 | + | ||
| 30319 | + self.upper_fixture.long_long_set(self.LONG_LONG_UPPER) | ||
| 30320 | + | ||
| 30321 | + def test_long_long_var_lower(self): | ||
| 30322 | + """ long long instance variable lower bound. """ | ||
| 30323 | + | ||
| 30324 | + self.lower_fixture.long_long_var = self.LONG_LONG_LOWER | ||
| 30325 | + | ||
| 30326 | + def test_long_long_var_upper(self): | ||
| 30327 | + """ long long instance variable upper bound. """ | ||
| 30328 | + | ||
| 30329 | + self.upper_fixture.long_long_var = self.LONG_LONG_UPPER | ||
| 30330 | + | ||
| 30331 | + def test_unsigned_char_get_upper(self): | ||
| 30332 | + """ unsigned char virtual result upper bound. """ | ||
| 30333 | + | ||
| 30334 | + self.assertEqual(self.upper_fixture.unsigned_char_get(), | ||
| 30335 | + self.UNSIGNED_CHAR_UPPER) | ||
| 30336 | + | ||
| 30337 | + def test_unsigned_char_set_upper(self): | ||
| 30338 | + """ unsigned char function argument upper bound. """ | ||
| 30339 | + | ||
| 30340 | + self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER) | ||
| 30341 | + | ||
| 30342 | + def test_unsigned_char_var_upper(self): | ||
| 30343 | + """ unsigned char instance variable upper bound. """ | ||
| 30344 | + | ||
| 30345 | + self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER | ||
| 30346 | + | ||
| 30347 | + def test_unsigned_short_get_upper(self): | ||
| 30348 | + """ unsigned short virtual result upper bound. """ | ||
| 30349 | + | ||
| 30350 | + self.assertEqual(self.upper_fixture.unsigned_short_get(), | ||
| 30351 | + self.UNSIGNED_SHORT_UPPER) | ||
| 30352 | + | ||
| 30353 | + def test_unsigned_short_set_upper(self): | ||
| 30354 | + """ unsigned short function argument upper bound. """ | ||
| 30355 | + | ||
| 30356 | + self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER) | ||
| 30357 | + | ||
| 30358 | + def test_unsigned_short_var_upper(self): | ||
| 30359 | + """ unsigned short instance variable upper bound. """ | ||
| 30360 | + | ||
| 30361 | + self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER | ||
| 30362 | + | ||
| 30363 | + def test_unsigned_int_get_upper(self): | ||
| 30364 | + """ unsigned int virtual result upper bound. """ | ||
| 30365 | + | ||
| 30366 | + self.assertEqual(self.upper_fixture.unsigned_int_get(), | ||
| 30367 | + self.UNSIGNED_INT_UPPER) | ||
| 30368 | + | ||
| 30369 | + def test_unsigned_int_set_upper(self): | ||
| 30370 | + """ unsigned int function argument upper bound. """ | ||
| 30371 | + | ||
| 30372 | + self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER) | ||
| 30373 | + | ||
| 30374 | + def test_unsigned_int_var_upper(self): | ||
| 30375 | + """ unsigned int instance variable upper bound. """ | ||
| 30376 | + | ||
| 30377 | + self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER | ||
| 30378 | + | ||
| 30379 | + def test_unsigned_long_get_upper(self): | ||
| 30380 | + """ unsigned long virtual result upper bound. """ | ||
| 30381 | + | ||
| 30382 | + self.assertEqual(self.upper_fixture.unsigned_long_get(), | ||
| 30383 | + self.UNSIGNED_LONG_UPPER) | ||
| 30384 | + | ||
| 30385 | + def test_unsigned_long_set_upper(self): | ||
| 30386 | + """ unsigned long function argument upper bound. """ | ||
| 30387 | + | ||
| 30388 | + self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER) | ||
| 30389 | + | ||
| 30390 | + def test_unsigned_long_var_upper(self): | ||
| 30391 | + """ unsigned long instance variable upper bound. """ | ||
| 30392 | + | ||
| 30393 | + self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER | ||
| 30394 | + | ||
| 30395 | + def test_unsigned_long_long_get_upper(self): | ||
| 30396 | + """ unsigned long long virtual result upper bound. """ | ||
| 30397 | + | ||
| 30398 | + self.assertEqual(self.upper_fixture.unsigned_long_long_get(), | ||
| 30399 | + self.UNSIGNED_LONG_LONG_UPPER) | ||
| 30400 | + | ||
| 30401 | + def test_unsigned_long_long_set_upper(self): | ||
| 30402 | + """ unsigned long long function argument upper bound. """ | ||
| 30403 | + | ||
| 30404 | + self.upper_fixture.unsigned_long_long_set( | ||
| 30405 | + self.UNSIGNED_LONG_LONG_UPPER) | ||
| 30406 | + | ||
| 30407 | + def test_unsigned_long_long_var_upper(self): | ||
| 30408 | + """ unsigned long long instance variable upper bound. """ | ||
| 30409 | + | ||
| 30410 | + self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER | ||
| 30411 | + | ||
| 30412 | + | ||
| 30413 | +class TestNoOverflowChecking(TestIntConvertors): | ||
| 30414 | + """ This tests the integer convertors with overflowing values with overflow | ||
| 30415 | + checking disabled. | ||
| 30416 | + """ | ||
| 30417 | + | ||
| 30418 | + @staticmethod | ||
| 30419 | + def _long_long_is_long(): | ||
| 30420 | + """ Return True if (unsigned) long long is the same size as (unsigned) | ||
| 30421 | + long. | ||
| 30422 | + """ | ||
| 30423 | + | ||
| 30424 | + return Test.long_long_sizeof() == Test.long_sizeof() | ||
| 30425 | + | ||
| 30426 | + def setUp(self): | ||
| 30427 | + """ Set up a test. """ | ||
| 30428 | + | ||
| 30429 | + self.lower_fixture = OverflowLowerFixture(self) | ||
| 30430 | + self.upper_fixture = OverflowUpperFixture(self) | ||
| 30431 | + | ||
| 30432 | + self.was_enabled = enableoverflowchecking(False) | ||
| 30433 | + | ||
| 30434 | + def tearDown(self): | ||
| 30435 | + """ Tidy up after a test. """ | ||
| 30436 | + | ||
| 30437 | + enableoverflowchecking(self.was_enabled) | ||
| 30438 | + | ||
| 30439 | + del self.lower_fixture | ||
| 30440 | + del self.upper_fixture | ||
| 30441 | + | ||
| 30442 | + def test_char_get_lower(self): | ||
| 30443 | + """ char virtual result lower bound. """ | ||
| 30444 | + | ||
| 30445 | + install_hook() | ||
| 30446 | + self.lower_fixture.char_get() | ||
| 30447 | + uninstall_hook() | ||
| 30448 | + | ||
| 30449 | + def test_char_get_upper(self): | ||
| 30450 | + """ char virtual result upper bound. """ | ||
| 30451 | + | ||
| 30452 | + install_hook() | ||
| 30453 | + self.upper_fixture.char_get() | ||
| 30454 | + uninstall_hook() | ||
| 30455 | + | ||
| 30456 | + def test_char_set_lower(self): | ||
| 30457 | + """ char function argument lower bound. """ | ||
| 30458 | + | ||
| 30459 | + self.lower_fixture.char_set(self.CHAR_LOWER - 1) | ||
| 30460 | + | ||
| 30461 | + def test_char_set_upper(self): | ||
| 30462 | + """ char function argument upper bound. """ | ||
| 30463 | + | ||
| 30464 | + self.upper_fixture.char_set(self.CHAR_UPPER + 1) | ||
| 30465 | + | ||
| 30466 | + def test_char_var_lower(self): | ||
| 30467 | + """ char instance variable lower bound. """ | ||
| 30468 | + | ||
| 30469 | + self.lower_fixture.char_var = self.CHAR_LOWER - 1 | ||
| 30470 | + | ||
| 30471 | + def test_char_var_upper(self): | ||
| 30472 | + """ char instance variable upper bound. """ | ||
| 30473 | + | ||
| 30474 | + self.upper_fixture.char_var = self.CHAR_UPPER + 1 | ||
| 30475 | + | ||
| 30476 | + def test_signed_char_get_lower(self): | ||
| 30477 | + """ signed char virtual result lower bound. """ | ||
| 30478 | + | ||
| 30479 | + install_hook() | ||
| 30480 | + self.lower_fixture.signed_char_get() | ||
| 30481 | + uninstall_hook() | ||
| 30482 | + | ||
| 30483 | + def test_signed_char_get_upper(self): | ||
| 30484 | + """ signed char virtual result upper bound. """ | ||
| 30485 | + | ||
| 30486 | + install_hook() | ||
| 30487 | + self.upper_fixture.signed_char_get() | ||
| 30488 | + uninstall_hook() | ||
| 30489 | + | ||
| 30490 | + def test_signed_char_set_lower(self): | ||
| 30491 | + """ signed char function argument lower bound. """ | ||
| 30492 | + | ||
| 30493 | + self.lower_fixture.signed_char_set(self.SIGNED_CHAR_LOWER - 1) | ||
| 30494 | + | ||
| 30495 | + def test_signed_char_set_upper(self): | ||
| 30496 | + """ signed char function argument upper bound. """ | ||
| 30497 | + | ||
| 30498 | + self.upper_fixture.signed_char_set(self.SIGNED_CHAR_UPPER + 1) | ||
| 30499 | + | ||
| 30500 | + def test_signed_char_var_lower(self): | ||
| 30501 | + """ signed char instance variable lower bound. """ | ||
| 30502 | + | ||
| 30503 | + self.lower_fixture.signed_char_var = self.SIGNED_CHAR_LOWER - 1 | ||
| 30504 | + | ||
| 30505 | + def test_signed_char_var_upper(self): | ||
| 30506 | + """ signed char instance variable upper bound. """ | ||
| 30507 | + | ||
| 30508 | + self.upper_fixture.signed_char_var = self.SIGNED_CHAR_UPPER + 1 | ||
| 30509 | + | ||
| 30510 | + def test_short_get_lower(self): | ||
| 30511 | + """ short virtual result lower bound. """ | ||
| 30512 | + | ||
| 30513 | + install_hook() | ||
| 30514 | + self.lower_fixture.short_get() | ||
| 30515 | + uninstall_hook() | ||
| 30516 | + | ||
| 30517 | + def test_short_get_upper(self): | ||
| 30518 | + """ short virtual result upper bound. """ | ||
| 30519 | + | ||
| 30520 | + install_hook() | ||
| 30521 | + self.upper_fixture.short_get() | ||
| 30522 | + uninstall_hook() | ||
| 30523 | + | ||
| 30524 | + def test_short_set_lower(self): | ||
| 30525 | + """ short function argument lower bound. """ | ||
| 30526 | + | ||
| 30527 | + self.lower_fixture.short_set(self.SHORT_LOWER - 1) | ||
| 30528 | + | ||
| 30529 | + def test_short_set_upper(self): | ||
| 30530 | + """ short function argument upper bound. """ | ||
| 30531 | + | ||
| 30532 | + self.upper_fixture.short_set(self.SHORT_UPPER + 1) | ||
| 30533 | + | ||
| 30534 | + def test_short_var_lower(self): | ||
| 30535 | + """ short instance variable lower bound. """ | ||
| 30536 | + | ||
| 30537 | + self.lower_fixture.short_var = self.SHORT_LOWER - 1 | ||
| 30538 | + | ||
| 30539 | + def test_short_var_upper(self): | ||
| 30540 | + """ short instance variable upper bound. """ | ||
| 30541 | + | ||
| 30542 | + self.upper_fixture.short_var = self.SHORT_UPPER + 1 | ||
| 30543 | + | ||
| 30544 | + def test_int_get_lower(self): | ||
| 30545 | + """ int virtual result lower bound. """ | ||
| 30546 | + | ||
| 30547 | + install_hook() | ||
| 30548 | + self.lower_fixture.int_get() | ||
| 30549 | + uninstall_hook() | ||
| 30550 | + | ||
| 30551 | + def test_int_get_upper(self): | ||
| 30552 | + """ int virtual result upper bound. """ | ||
| 30553 | + | ||
| 30554 | + install_hook() | ||
| 30555 | + self.upper_fixture.int_get() | ||
| 30556 | + uninstall_hook() | ||
| 30557 | + | ||
| 30558 | + def test_int_set_lower(self): | ||
| 30559 | + """ int function argument lower bound. """ | ||
| 30560 | + | ||
| 30561 | + self.lower_fixture.int_set(self.INT_LOWER - 1) | ||
| 30562 | + | ||
| 30563 | + def test_int_set_upper(self): | ||
| 30564 | + """ int function argument upper bound. """ | ||
| 30565 | + | ||
| 30566 | + self.upper_fixture.int_set(self.INT_UPPER + 1) | ||
| 30567 | + | ||
| 30568 | + def test_int_var_lower(self): | ||
| 30569 | + """ int instance variable lower bound. """ | ||
| 30570 | + | ||
| 30571 | + self.lower_fixture.int_var = self.INT_LOWER - 1 | ||
| 30572 | + | ||
| 30573 | + def test_int_var_upper(self): | ||
| 30574 | + """ int instance variable upper bound. """ | ||
| 30575 | + | ||
| 30576 | + self.upper_fixture.int_var = self.INT_UPPER + 1 | ||
| 30577 | + | ||
| 30578 | + def test_long_get_lower(self): | ||
| 30579 | + """ long virtual result lower bound. """ | ||
| 30580 | + | ||
| 30581 | + install_hook() | ||
| 30582 | + self.lower_fixture.long_get() | ||
| 30583 | + | ||
| 30584 | + if self._long_long_is_long(): | ||
| 30585 | + # To maintain compatibility with older versions of SIP this | ||
| 30586 | + # overflows even with overflow checking disabled. | ||
| 30587 | + with self.assertRaises(OverflowError): | ||
| 30588 | + uninstall_hook() | ||
| 30589 | + else: | ||
| 30590 | + uninstall_hook() | ||
| 30591 | + | ||
| 30592 | + def test_long_get_upper(self): | ||
| 30593 | + """ long virtual result upper bound. """ | ||
| 30594 | + | ||
| 30595 | + install_hook() | ||
| 30596 | + self.upper_fixture.long_get() | ||
| 30597 | + | ||
| 30598 | + if self._long_long_is_long(): | ||
| 30599 | + # To maintain compatibility with older versions of SIP this | ||
| 30600 | + # overflows even with overflow checking disabled. | ||
| 30601 | + with self.assertRaises(OverflowError): | ||
| 30602 | + uninstall_hook() | ||
| 30603 | + else: | ||
| 30604 | + uninstall_hook() | ||
| 30605 | + | ||
| 30606 | + def test_long_set_lower(self): | ||
| 30607 | + """ long function argument lower bound. """ | ||
| 30608 | + | ||
| 30609 | + if self._long_long_is_long(): | ||
| 30610 | + # To maintain compatibility with older versions of SIP this | ||
| 30611 | + # overflows even with overflow checking disabled. | ||
| 30612 | + with self.assertRaises(OverflowError): | ||
| 30613 | + self.lower_fixture.long_set(self.LONG_LOWER - 1) | ||
| 30614 | + else: | ||
| 30615 | + self.lower_fixture.long_set(self.LONG_LOWER - 1) | ||
| 30616 | + | ||
| 30617 | + def test_long_set_upper(self): | ||
| 30618 | + """ long function argument upper bound. """ | ||
| 30619 | + | ||
| 30620 | + if self._long_long_is_long(): | ||
| 30621 | + # To maintain compatibility with older versions of SIP this | ||
| 30622 | + # overflows even with overflow checking disabled. | ||
| 30623 | + with self.assertRaises(OverflowError): | ||
| 30624 | + self.upper_fixture.long_set(self.LONG_UPPER + 1) | ||
| 30625 | + else: | ||
| 30626 | + self.upper_fixture.long_set(self.LONG_UPPER + 1) | ||
| 30627 | + | ||
| 30628 | + def test_long_var_lower(self): | ||
| 30629 | + """ long instance variable lower bound. """ | ||
| 30630 | + | ||
| 30631 | + if self._long_long_is_long(): | ||
| 30632 | + # To maintain compatibility with older versions of SIP this | ||
| 30633 | + # overflows even with overflow checking disabled. | ||
| 30634 | + with self.assertRaises(OverflowError): | ||
| 30635 | + self.lower_fixture.long_var = self.LONG_LOWER - 1 | ||
| 30636 | + else: | ||
| 30637 | + self.lower_fixture.long_var = self.LONG_LOWER - 1 | ||
| 30638 | + | ||
| 30639 | + def test_long_var_upper(self): | ||
| 30640 | + """ long instance variable upper bound. """ | ||
| 30641 | + | ||
| 30642 | + if self._long_long_is_long(): | ||
| 30643 | + # To maintain compatibility with older versions of SIP this | ||
| 30644 | + # overflows even with overflow checking disabled. | ||
| 30645 | + with self.assertRaises(OverflowError): | ||
| 30646 | + self.upper_fixture.long_var = self.LONG_UPPER + 1 | ||
| 30647 | + else: | ||
| 30648 | + self.upper_fixture.long_var = self.LONG_UPPER + 1 | ||
| 30649 | + | ||
| 30650 | + def test_long_long_get_lower(self): | ||
| 30651 | + """ long long virtual result lower bound. """ | ||
| 30652 | + | ||
| 30653 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30654 | + # even with overflow checking disabled. | ||
| 30655 | + with self.assertRaises(OverflowError): | ||
| 30656 | + install_hook() | ||
| 30657 | + self.lower_fixture.long_long_get() | ||
| 30658 | + uninstall_hook() | ||
| 30659 | + | ||
| 30660 | + def test_long_long_get_upper(self): | ||
| 30661 | + """ long long virtual result upper bound. """ | ||
| 30662 | + | ||
| 30663 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30664 | + # even with overflow checking disabled. | ||
| 30665 | + with self.assertRaises(OverflowError): | ||
| 30666 | + install_hook() | ||
| 30667 | + self.upper_fixture.long_long_get() | ||
| 30668 | + uninstall_hook() | ||
| 30669 | + | ||
| 30670 | + def test_long_long_set_lower(self): | ||
| 30671 | + """ long long function argument lower bound. """ | ||
| 30672 | + | ||
| 30673 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30674 | + # even with overflow checking disabled. | ||
| 30675 | + with self.assertRaises(OverflowError): | ||
| 30676 | + self.lower_fixture.long_long_set(self.LONG_LONG_LOWER - 1) | ||
| 30677 | + | ||
| 30678 | + def test_long_long_set_upper(self): | ||
| 30679 | + """ long long function argument upper bound. """ | ||
| 30680 | + | ||
| 30681 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30682 | + # even with overflow checking disabled. | ||
| 30683 | + with self.assertRaises(OverflowError): | ||
| 30684 | + self.upper_fixture.long_long_set(self.LONG_LONG_UPPER + 1) | ||
| 30685 | + | ||
| 30686 | + def test_long_long_var_lower(self): | ||
| 30687 | + """ long long instance variable lower bound. """ | ||
| 30688 | + | ||
| 30689 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30690 | + # even with overflow checking disabled. | ||
| 30691 | + with self.assertRaises(OverflowError): | ||
| 30692 | + self.lower_fixture.long_long_var = self.LONG_LONG_LOWER - 1 | ||
| 30693 | + | ||
| 30694 | + def test_long_long_var_upper(self): | ||
| 30695 | + """ long long instance variable upper bound. """ | ||
| 30696 | + | ||
| 30697 | + # To maintain compatibility with older versions of SIP this overflows | ||
| 30698 | + # even with overflow checking disabled. | ||
| 30699 | + with self.assertRaises(OverflowError): | ||
| 30700 | + self.upper_fixture.long_long_var = self.LONG_LONG_UPPER + 1 | ||
| 30701 | + | ||
| 30702 | + def test_unsigned_char_get_upper(self): | ||
| 30703 | + """ unsigned char virtual result upper bound. """ | ||
| 30704 | + | ||
| 30705 | + install_hook() | ||
| 30706 | + self.upper_fixture.unsigned_char_get() | ||
| 30707 | + uninstall_hook() | ||
| 30708 | + | ||
| 30709 | + def test_unsigned_char_set_upper(self): | ||
| 30710 | + """ unsigned char function argument upper bound. """ | ||
| 30711 | + | ||
| 30712 | + self.upper_fixture.unsigned_char_set(self.UNSIGNED_CHAR_UPPER + 1) | ||
| 30713 | + | ||
| 30714 | + def test_unsigned_char_var_upper(self): | ||
| 30715 | + """ unsigned char instance variable upper bound. """ | ||
| 30716 | + | ||
| 30717 | + self.upper_fixture.unsigned_char_var = self.UNSIGNED_CHAR_UPPER + 1 | ||
| 30718 | + | ||
| 30719 | + def test_unsigned_short_get_upper(self): | ||
| 30720 | + """ unsigned short virtual result upper bound. """ | ||
| 30721 | + | ||
| 30722 | + install_hook() | ||
| 30723 | + self.upper_fixture.unsigned_short_get() | ||
| 30724 | + uninstall_hook() | ||
| 30725 | + | ||
| 30726 | + def test_unsigned_short_set_upper(self): | ||
| 30727 | + """ unsigned short function argument upper bound. """ | ||
| 30728 | + | ||
| 30729 | + self.upper_fixture.unsigned_short_set(self.UNSIGNED_SHORT_UPPER + 1) | ||
| 30730 | + | ||
| 30731 | + def test_unsigned_short_var_upper(self): | ||
| 30732 | + """ unsigned short instance variable upper bound. """ | ||
| 30733 | + | ||
| 30734 | + self.upper_fixture.unsigned_short_var = self.UNSIGNED_SHORT_UPPER + 1 | ||
| 30735 | + | ||
| 30736 | + def test_unsigned_int_get_upper(self): | ||
| 30737 | + """ unsigned int virtual result upper bound. """ | ||
| 30738 | + | ||
| 30739 | + install_hook() | ||
| 30740 | + self.upper_fixture.unsigned_int_get() | ||
| 30741 | + uninstall_hook() | ||
| 30742 | + | ||
| 30743 | + def test_unsigned_int_set_upper(self): | ||
| 30744 | + """ unsigned int function argument upper bound. """ | ||
| 30745 | + | ||
| 30746 | + self.upper_fixture.unsigned_int_set(self.UNSIGNED_INT_UPPER + 1) | ||
| 30747 | + | ||
| 30748 | + def test_unsigned_int_var_upper(self): | ||
| 30749 | + """ unsigned int instance variable upper bound. """ | ||
| 30750 | + | ||
| 30751 | + self.upper_fixture.unsigned_int_var = self.UNSIGNED_INT_UPPER + 1 | ||
| 30752 | + | ||
| 30753 | + def test_unsigned_long_get_upper(self): | ||
| 30754 | + """ unsigned long virtual result upper bound. """ | ||
| 30755 | + | ||
| 30756 | + install_hook() | ||
| 30757 | + self.upper_fixture.unsigned_long_get() | ||
| 30758 | + uninstall_hook() | ||
| 30759 | + | ||
| 30760 | + def test_unsigned_long_set_upper(self): | ||
| 30761 | + """ unsigned long function argument upper bound. """ | ||
| 30762 | + | ||
| 30763 | + self.upper_fixture.unsigned_long_set(self.UNSIGNED_LONG_UPPER + 1) | ||
| 30764 | + | ||
| 30765 | + def test_unsigned_long_var_upper(self): | ||
| 30766 | + """ unsigned long instance variable upper bound. """ | ||
| 30767 | + | ||
| 30768 | + self.upper_fixture.unsigned_long_var = self.UNSIGNED_LONG_UPPER + 1 | ||
| 30769 | + | ||
| 30770 | + def test_unsigned_long_long_get_upper(self): | ||
| 30771 | + """ unsigned long long virtual result upper bound. """ | ||
| 30772 | + | ||
| 30773 | + install_hook() | ||
| 30774 | + self.upper_fixture.unsigned_long_long_get() | ||
| 30775 | + uninstall_hook() | ||
| 30776 | + | ||
| 30777 | + def test_unsigned_long_long_set_upper(self): | ||
| 30778 | + """ unsigned long long function argument upper bound. """ | ||
| 30779 | + | ||
| 30780 | + self.upper_fixture.unsigned_long_long_set( | ||
| 30781 | + self.UNSIGNED_LONG_LONG_UPPER + 1) | ||
| 30782 | + | ||
| 30783 | + def test_unsigned_long_long_var_upper(self): | ||
| 30784 | + """ unsigned long long instance variable upper bound. """ | ||
| 30785 | + | ||
| 30786 | + self.upper_fixture.unsigned_long_long_var = self.UNSIGNED_LONG_LONG_UPPER + 1 | ||
| 30787 | + | ||
| 30788 | + | ||
| 30789 | +class TestOverflowChecking(TestNoOverflowChecking): | ||
| 30790 | + """ This tests the integer convertors with overflowing values with overflow | ||
| 30791 | + checking enabled. | ||
| 30792 | + """ | ||
| 30793 | + | ||
| 30794 | + def setUp(self): | ||
| 30795 | + """ Set up a test. """ | ||
| 30796 | + | ||
| 30797 | + super().setUp() | ||
| 30798 | + | ||
| 30799 | + enableoverflowchecking(True) | ||
| 30800 | + | ||
| 30801 | + def test_char_get_lower(self): | ||
| 30802 | + """ char virtual result lower bound. """ | ||
| 30803 | + | ||
| 30804 | + with self.assertRaises(OverflowError): | ||
| 30805 | + super().test_char_get_lower() | ||
| 30806 | + | ||
| 30807 | + def test_char_get_upper(self): | ||
| 30808 | + """ char virtual result upper bound. """ | ||
| 30809 | + | ||
| 30810 | + with self.assertRaises(OverflowError): | ||
| 30811 | + super().test_char_get_upper() | ||
| 30812 | + | ||
| 30813 | + def test_char_set_lower(self): | ||
| 30814 | + """ char function argument lower bound. """ | ||
| 30815 | + | ||
| 30816 | + with self.assertRaises(OverflowError): | ||
| 30817 | + super().test_char_set_lower() | ||
| 30818 | + | ||
| 30819 | + def test_char_set_upper(self): | ||
| 30820 | + """ char function argument upper bound. """ | ||
| 30821 | + | ||
| 30822 | + with self.assertRaises(OverflowError): | ||
| 30823 | + super().test_char_set_upper() | ||
| 30824 | + | ||
| 30825 | + def test_char_var_lower(self): | ||
| 30826 | + """ char instance variable lower bound. """ | ||
| 30827 | + | ||
| 30828 | + with self.assertRaises(OverflowError): | ||
| 30829 | + super().test_char_var_lower() | ||
| 30830 | + | ||
| 30831 | + def test_char_var_upper(self): | ||
| 30832 | + """ char instance variable upper bound. """ | ||
| 30833 | + | ||
| 30834 | + with self.assertRaises(OverflowError): | ||
| 30835 | + super().test_char_var_upper() | ||
| 30836 | + | ||
| 30837 | + def test_signed_char_get_lower(self): | ||
| 30838 | + """ signed char virtual result lower bound. """ | ||
| 30839 | + | ||
| 30840 | + with self.assertRaises(OverflowError): | ||
| 30841 | + super().test_signed_char_get_lower() | ||
| 30842 | + | ||
| 30843 | + def test_signed_char_get_upper(self): | ||
| 30844 | + """ signed char virtual result upper bound. """ | ||
| 30845 | + | ||
| 30846 | + with self.assertRaises(OverflowError): | ||
| 30847 | + super().test_signed_char_get_upper() | ||
| 30848 | + | ||
| 30849 | + def test_signed_char_set_lower(self): | ||
| 30850 | + """ signed char function argument lower bound. """ | ||
| 30851 | + | ||
| 30852 | + with self.assertRaises(OverflowError): | ||
| 30853 | + super().test_signed_char_set_lower() | ||
| 30854 | + | ||
| 30855 | + def test_signed_char_set_upper(self): | ||
| 30856 | + """ signed char function argument upper bound. """ | ||
| 30857 | + | ||
| 30858 | + with self.assertRaises(OverflowError): | ||
| 30859 | + super().test_signed_char_set_upper() | ||
| 30860 | + | ||
| 30861 | + def test_signed_char_var_lower(self): | ||
| 30862 | + """ signed char instance variable lower bound. """ | ||
| 30863 | + | ||
| 30864 | + with self.assertRaises(OverflowError): | ||
| 30865 | + super().test_signed_char_var_lower() | ||
| 30866 | + | ||
| 30867 | + def test_signed_char_var_upper(self): | ||
| 30868 | + """ signed char instance variable upper bound. """ | ||
| 30869 | + | ||
| 30870 | + with self.assertRaises(OverflowError): | ||
| 30871 | + super().test_signed_char_var_upper() | ||
| 30872 | + | ||
| 30873 | + def test_short_get_lower(self): | ||
| 30874 | + """ short virtual result lower bound. """ | ||
| 30875 | + | ||
| 30876 | + with self.assertRaises(OverflowError): | ||
| 30877 | + super().test_short_get_lower() | ||
| 30878 | + | ||
| 30879 | + def test_short_get_upper(self): | ||
| 30880 | + """ short virtual result upper bound. """ | ||
| 30881 | + | ||
| 30882 | + with self.assertRaises(OverflowError): | ||
| 30883 | + super().test_short_get_upper() | ||
| 30884 | + | ||
| 30885 | + def test_short_set_lower(self): | ||
| 30886 | + """ short function argument lower bound. """ | ||
| 30887 | + | ||
| 30888 | + with self.assertRaises(OverflowError): | ||
| 30889 | + super().test_short_set_lower() | ||
| 30890 | + | ||
| 30891 | + def test_short_set_upper(self): | ||
| 30892 | + """ short function argument upper bound. """ | ||
| 30893 | + | ||
| 30894 | + with self.assertRaises(OverflowError): | ||
| 30895 | + super().test_short_set_upper() | ||
| 30896 | + | ||
| 30897 | + def test_short_var_lower(self): | ||
| 30898 | + """ short instance variable lower bound. """ | ||
| 30899 | + | ||
| 30900 | + with self.assertRaises(OverflowError): | ||
| 30901 | + super().test_short_var_lower() | ||
| 30902 | + | ||
| 30903 | + def test_short_var_upper(self): | ||
| 30904 | + """ short instance variable upper bound. """ | ||
| 30905 | + | ||
| 30906 | + with self.assertRaises(OverflowError): | ||
| 30907 | + super().test_short_var_upper() | ||
| 30908 | + | ||
| 30909 | + def test_int_get_lower(self): | ||
| 30910 | + """ int virtual result lower bound. """ | ||
| 30911 | + | ||
| 30912 | + with self.assertRaises(OverflowError): | ||
| 30913 | + super().test_int_get_lower() | ||
| 30914 | + | ||
| 30915 | + def test_int_get_upper(self): | ||
| 30916 | + """ int virtual result upper bound. """ | ||
| 30917 | + | ||
| 30918 | + with self.assertRaises(OverflowError): | ||
| 30919 | + super().test_int_get_upper() | ||
| 30920 | + | ||
| 30921 | + def test_int_set_lower(self): | ||
| 30922 | + """ int function argument lower bound. """ | ||
| 30923 | + | ||
| 30924 | + with self.assertRaises(OverflowError): | ||
| 30925 | + super().test_int_set_lower() | ||
| 30926 | + | ||
| 30927 | + def test_int_set_upper(self): | ||
| 30928 | + """ int function argument upper bound. """ | ||
| 30929 | + | ||
| 30930 | + with self.assertRaises(OverflowError): | ||
| 30931 | + super().test_int_set_upper() | ||
| 30932 | + | ||
| 30933 | + def test_int_var_lower(self): | ||
| 30934 | + """ int instance variable lower bound. """ | ||
| 30935 | + | ||
| 30936 | + with self.assertRaises(OverflowError): | ||
| 30937 | + super().test_int_var_lower() | ||
| 30938 | + | ||
| 30939 | + def test_int_var_upper(self): | ||
| 30940 | + """ int instance variable upper bound. """ | ||
| 30941 | + | ||
| 30942 | + with self.assertRaises(OverflowError): | ||
| 30943 | + super().test_int_var_upper() | ||
| 30944 | + | ||
| 30945 | + def test_long_get_lower(self): | ||
| 30946 | + """ long virtual result lower bound. """ | ||
| 30947 | + | ||
| 30948 | + with self.assertRaises(OverflowError): | ||
| 30949 | + install_hook() | ||
| 30950 | + self.lower_fixture.long_get() | ||
| 30951 | + uninstall_hook() | ||
| 30952 | + | ||
| 30953 | + def test_long_get_upper(self): | ||
| 30954 | + """ long virtual result upper bound. """ | ||
| 30955 | + | ||
| 30956 | + with self.assertRaises(OverflowError): | ||
| 30957 | + install_hook() | ||
| 30958 | + self.upper_fixture.long_get() | ||
| 30959 | + uninstall_hook() | ||
| 30960 | + | ||
| 30961 | + def test_long_set_lower(self): | ||
| 30962 | + """ long function argument lower bound. """ | ||
| 30963 | + | ||
| 30964 | + with self.assertRaises(OverflowError): | ||
| 30965 | + self.lower_fixture.long_set(self.LONG_LOWER - 1) | ||
| 30966 | + | ||
| 30967 | + def test_long_set_upper(self): | ||
| 30968 | + """ long function argument upper bound. """ | ||
| 30969 | + | ||
| 30970 | + with self.assertRaises(OverflowError): | ||
| 30971 | + self.upper_fixture.long_set(self.LONG_UPPER + 1) | ||
| 30972 | + | ||
| 30973 | + def test_long_var_lower(self): | ||
| 30974 | + """ long instance variable lower bound. """ | ||
| 30975 | + | ||
| 30976 | + with self.assertRaises(OverflowError): | ||
| 30977 | + self.lower_fixture.long_var = self.LONG_LOWER - 1 | ||
| 30978 | + | ||
| 30979 | + def test_long_var_upper(self): | ||
| 30980 | + """ long instance variable upper bound. """ | ||
| 30981 | + | ||
| 30982 | + with self.assertRaises(OverflowError): | ||
| 30983 | + self.upper_fixture.long_var = self.LONG_UPPER + 1 | ||
| 30984 | + | ||
| 30985 | + def test_long_long_get_lower(self): | ||
| 30986 | + """ long long virtual result lower bound. """ | ||
| 30987 | + | ||
| 30988 | + super().test_long_long_get_lower() | ||
| 30989 | + | ||
| 30990 | + def test_long_long_get_upper(self): | ||
| 30991 | + """ long long virtual result upper bound. """ | ||
| 30992 | + | ||
| 30993 | + super().test_long_long_get_upper() | ||
| 30994 | + | ||
| 30995 | + def test_long_long_set_lower(self): | ||
| 30996 | + """ long long function argument lower bound. """ | ||
| 30997 | + | ||
| 30998 | + super().test_long_long_set_lower() | ||
| 30999 | + | ||
| 31000 | + def test_long_long_set_upper(self): | ||
| 31001 | + """ long long function argument upper bound. """ | ||
| 31002 | + | ||
| 31003 | + super().test_long_long_set_upper() | ||
| 31004 | + | ||
| 31005 | + def test_long_long_var_lower(self): | ||
| 31006 | + """ long long instance variable lower bound. """ | ||
| 31007 | + | ||
| 31008 | + super().test_long_long_var_lower() | ||
| 31009 | + | ||
| 31010 | + def test_long_long_var_upper(self): | ||
| 31011 | + """ long long instance variable upper bound. """ | ||
| 31012 | + | ||
| 31013 | + super().test_long_long_var_upper() | ||
| 31014 | + | ||
| 31015 | + def test_unsigned_char_get_upper(self): | ||
| 31016 | + """ unsigned char virtual result upper bound. """ | ||
| 31017 | + | ||
| 31018 | + with self.assertRaises(OverflowError): | ||
| 31019 | + super().test_unsigned_char_get_upper() | ||
| 31020 | + | ||
| 31021 | + def test_unsigned_char_set_upper(self): | ||
| 31022 | + """ unsigned char function argument upper bound. """ | ||
| 31023 | + | ||
| 31024 | + with self.assertRaises(OverflowError): | ||
| 31025 | + super().test_unsigned_char_set_upper() | ||
| 31026 | + | ||
| 31027 | + def test_unsigned_char_var_upper(self): | ||
| 31028 | + """ unsigned char instance variable upper bound. """ | ||
| 31029 | + | ||
| 31030 | + with self.assertRaises(OverflowError): | ||
| 31031 | + super().test_unsigned_char_var_upper() | ||
| 31032 | + | ||
| 31033 | + def test_unsigned_short_get_upper(self): | ||
| 31034 | + """ unsigned short virtual result upper bound. """ | ||
| 31035 | + | ||
| 31036 | + with self.assertRaises(OverflowError): | ||
| 31037 | + super().test_unsigned_short_get_upper() | ||
| 31038 | + | ||
| 31039 | + def test_unsigned_short_set_upper(self): | ||
| 31040 | + """ unsigned short function argument upper bound. """ | ||
| 31041 | + | ||
| 31042 | + with self.assertRaises(OverflowError): | ||
| 31043 | + super().test_unsigned_short_set_upper() | ||
| 31044 | + | ||
| 31045 | + def test_unsigned_short_var_upper(self): | ||
| 31046 | + """ unsigned short instance variable upper bound. """ | ||
| 31047 | + | ||
| 31048 | + with self.assertRaises(OverflowError): | ||
| 31049 | + super().test_unsigned_short_var_upper() | ||
| 31050 | + | ||
| 31051 | + def test_unsigned_int_get_upper(self): | ||
| 31052 | + """ unsigned int virtual result upper bound. """ | ||
| 31053 | + | ||
| 31054 | + with self.assertRaises(OverflowError): | ||
| 31055 | + super().test_unsigned_int_get_upper() | ||
| 31056 | + | ||
| 31057 | + def test_unsigned_int_set_upper(self): | ||
| 31058 | + """ unsigned int function argument upper bound. """ | ||
| 31059 | + | ||
| 31060 | + with self.assertRaises(OverflowError): | ||
| 31061 | + super().test_unsigned_int_set_upper() | ||
| 31062 | + | ||
| 31063 | + def test_unsigned_int_var_upper(self): | ||
| 31064 | + """ unsigned int instance variable upper bound. """ | ||
| 31065 | + | ||
| 31066 | + with self.assertRaises(OverflowError): | ||
| 31067 | + super().test_unsigned_int_var_upper() | ||
| 31068 | + | ||
| 31069 | + def test_unsigned_long_get_upper(self): | ||
| 31070 | + """ unsigned long virtual result upper bound. """ | ||
| 31071 | + | ||
| 31072 | + with self.assertRaises(OverflowError): | ||
| 31073 | + super().test_unsigned_long_get_upper() | ||
| 31074 | + | ||
| 31075 | + def test_unsigned_long_set_upper(self): | ||
| 31076 | + """ unsigned long function argument upper bound. """ | ||
| 31077 | + | ||
| 31078 | + with self.assertRaises(OverflowError): | ||
| 31079 | + super().test_unsigned_long_set_upper() | ||
| 31080 | + | ||
| 31081 | + def test_unsigned_long_var_upper(self): | ||
| 31082 | + """ unsigned long instance variable upper bound. """ | ||
| 31083 | + | ||
| 31084 | + with self.assertRaises(OverflowError): | ||
| 31085 | + super().test_unsigned_long_var_upper() | ||
| 31086 | + | ||
| 31087 | + def test_unsigned_long_long_get_upper(self): | ||
| 31088 | + """ unsigned long long virtual result upper bound. """ | ||
| 31089 | + | ||
| 31090 | + with self.assertRaises(OverflowError): | ||
| 31091 | + super().test_unsigned_long_long_get_upper() | ||
| 31092 | + | ||
| 31093 | + def test_unsigned_long_long_set_upper(self): | ||
| 31094 | + """ unsigned long long function argument upper bound. """ | ||
| 31095 | + | ||
| 31096 | + with self.assertRaises(OverflowError): | ||
| 31097 | + super().test_unsigned_long_long_set_upper() | ||
| 31098 | + | ||
| 31099 | + def test_unsigned_long_long_var_upper(self): | ||
| 31100 | + """ unsigned long long instance variable upper bound. """ | ||
| 31101 | + | ||
| 31102 | + with self.assertRaises(OverflowError): | ||
| 31103 | + super().test_unsigned_long_long_var_upper() | ||
| 31104 | + | ||
| 31105 | + | ||
| 31106 | +if __name__ == '__main__': | ||
| 31107 | + unittest.main() | ||
| 31108 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.h sip/test/int_convertors/test.h | ||
| 31109 | --- ./sip-4.19.12.orig/test/int_convertors/test.h 1969-12-31 19:00:00.000000000 -0500 | ||
| 31110 | +++ sip/test/int_convertors/test.h 2018-09-18 17:52:23.315543462 -0400 | ||
| 31111 | @@ -0,0 +1,110 @@ | ||
| 31112 | +#if !defined(_TEST_H) | ||
| 31113 | +#define _TEST_H | ||
| 31114 | + | ||
| 31115 | +#include <limits.h> | ||
| 31116 | + | ||
| 31117 | + | ||
| 31118 | +class Test | ||
| 31119 | +{ | ||
| 31120 | +public: | ||
| 31121 | + enum class Scoped { | ||
| 31122 | + scoped = 10 | ||
| 31123 | + }; | ||
| 31124 | + Scoped scoped_get() {return scoped_virt();} | ||
| 31125 | + virtual Scoped scoped_virt() {return Scoped::scoped;} | ||
| 31126 | + static void scoped_set(Scoped) {} | ||
| 31127 | + Scoped scoped_var; | ||
| 31128 | + | ||
| 31129 | + enum Named { | ||
| 31130 | + named = 10 | ||
| 31131 | + }; | ||
| 31132 | + Named named_get() {return named_virt();} | ||
| 31133 | + virtual Named named_virt() {return named;} | ||
| 31134 | + static void named_set(Named) {} | ||
| 31135 | + Named named_var; | ||
| 31136 | + | ||
| 31137 | + enum Named2 { | ||
| 31138 | + named2 = 10 | ||
| 31139 | + }; | ||
| 31140 | + void named_overload_set(Named2) {named_overload = false;} | ||
| 31141 | + void named_overload_set(Named) {named_overload = true;} | ||
| 31142 | + bool named_overload; | ||
| 31143 | + | ||
| 31144 | + bool bool_get() {return bool_virt();} | ||
| 31145 | + virtual bool bool_virt() {return false;} | ||
| 31146 | + static void bool_set(bool) {} | ||
| 31147 | + bool bool_var; | ||
| 31148 | + | ||
| 31149 | + static int char_lower() {return CHAR_MIN;} | ||
| 31150 | + static int char_upper() {return CHAR_MAX;} | ||
| 31151 | + char char_get() {return char_virt();} | ||
| 31152 | + virtual char char_virt() {return 0;} | ||
| 31153 | + static void char_set(char) {} | ||
| 31154 | + char char_var; | ||
| 31155 | + | ||
| 31156 | + static unsigned signed_char_sizeof() {return sizeof (signed char);} | ||
| 31157 | + signed char signed_char_get() {return signed_char_virt();} | ||
| 31158 | + virtual signed char signed_char_virt() {return 0;} | ||
| 31159 | + static void signed_char_set(signed char) {} | ||
| 31160 | + signed char signed_char_var; | ||
| 31161 | + | ||
| 31162 | + static unsigned short_sizeof() {return sizeof (short);} | ||
| 31163 | + short short_get() {return short_virt();} | ||
| 31164 | + virtual short short_virt() {return 0;} | ||
| 31165 | + static void short_set(short) {} | ||
| 31166 | + short short_var; | ||
| 31167 | + | ||
| 31168 | + static unsigned int_sizeof() {return sizeof (int);} | ||
| 31169 | + int int_get() {return int_virt();} | ||
| 31170 | + virtual int int_virt() {return 0;} | ||
| 31171 | + static void int_set(int) {} | ||
| 31172 | + int int_var; | ||
| 31173 | + | ||
| 31174 | + static unsigned long_sizeof() {return sizeof (long);} | ||
| 31175 | + long long_get() {return long_virt();} | ||
| 31176 | + virtual long long_virt() {return 0;} | ||
| 31177 | + static void long_set(long) {} | ||
| 31178 | + long long_var; | ||
| 31179 | + | ||
| 31180 | + static unsigned long_long_sizeof() {return sizeof (long long);} | ||
| 31181 | + long long long_long_get() {return long_long_virt();} | ||
| 31182 | + virtual long long long_long_virt() {return 0;} | ||
| 31183 | + static void long_long_set(long long) {} | ||
| 31184 | + long long long_long_var; | ||
| 31185 | + | ||
| 31186 | + static unsigned unsigned_char_sizeof() {return sizeof (unsigned char);} | ||
| 31187 | + unsigned char unsigned_char_get() {return unsigned_char_virt();} | ||
| 31188 | + virtual unsigned char unsigned_char_virt() {return 0;} | ||
| 31189 | + static void unsigned_char_set(unsigned char) {} | ||
| 31190 | + unsigned char unsigned_char_var; | ||
| 31191 | + | ||
| 31192 | + static unsigned unsigned_short_sizeof() {return sizeof (unsigned short);} | ||
| 31193 | + unsigned short unsigned_short_get() {return unsigned_short_virt();} | ||
| 31194 | + virtual unsigned short unsigned_short_virt() {return 0;} | ||
| 31195 | + static void unsigned_short_set(unsigned short) {} | ||
| 31196 | + unsigned short unsigned_short_var; | ||
| 31197 | + | ||
| 31198 | + static unsigned unsigned_int_sizeof() {return sizeof (unsigned int);} | ||
| 31199 | + unsigned int unsigned_int_get() {return unsigned_int_virt();} | ||
| 31200 | + virtual unsigned int unsigned_int_virt() {return 0;} | ||
| 31201 | + static void unsigned_int_set(unsigned int) {} | ||
| 31202 | + unsigned int unsigned_int_var; | ||
| 31203 | + | ||
| 31204 | + static unsigned unsigned_long_sizeof() {return sizeof (unsigned long);} | ||
| 31205 | + unsigned long unsigned_long_get() {return unsigned_long_virt();} | ||
| 31206 | + virtual unsigned long unsigned_long_virt() {return 0;} | ||
| 31207 | + static void unsigned_long_set(unsigned long) {} | ||
| 31208 | + unsigned long unsigned_long_var; | ||
| 31209 | + | ||
| 31210 | + static unsigned unsigned_long_long_sizeof() { | ||
| 31211 | + return sizeof (unsigned long long); | ||
| 31212 | + } | ||
| 31213 | + unsigned long long unsigned_long_long_get() { | ||
| 31214 | + return unsigned_long_long_virt(); | ||
| 31215 | + } | ||
| 31216 | + virtual unsigned long long unsigned_long_long_virt() {return 0;} | ||
| 31217 | + static void unsigned_long_long_set(unsigned long long) {} | ||
| 31218 | + unsigned long long unsigned_long_long_var; | ||
| 31219 | +}; | ||
| 31220 | + | ||
| 31221 | +#endif | ||
| 31222 | diff -Nurd '--exclude=doc' '--exclude=.hg*' ./sip-4.19.12.orig/test/int_convertors/test.sip sip/test/int_convertors/test.sip | ||
| 31223 | --- ./sip-4.19.12.orig/test/int_convertors/test.sip 1969-12-31 19:00:00.000000000 -0500 | ||
| 31224 | +++ sip/test/int_convertors/test.sip 2018-09-18 17:52:23.315543462 -0400 | ||
| 31225 | @@ -0,0 +1,106 @@ | ||
| 31226 | +%Module(name=test) | ||
| 31227 | + | ||
| 31228 | +//%Import QtCore/QtCoremod.sip | ||
| 31229 | + | ||
| 31230 | +class Test | ||
| 31231 | +{ | ||
| 31232 | +%TypeHeaderCode | ||
| 31233 | +#include "test.h" | ||
| 31234 | +%End | ||
| 31235 | + | ||
| 31236 | +public: | ||
| 31237 | + enum class Scoped { | ||
| 31238 | + scoped | ||
| 31239 | + }; | ||
| 31240 | + Scoped scoped_get(); | ||
| 31241 | + virtual Scoped scoped_virt(); | ||
| 31242 | + static void scoped_set(Scoped); | ||
| 31243 | + Scoped scoped_var; | ||
| 31244 | + | ||
| 31245 | + enum Named { | ||
| 31246 | + named | ||
| 31247 | + }; | ||
| 31248 | + Named named_get(); | ||
| 31249 | + virtual Named named_virt(); | ||
| 31250 | + static void named_set(Named); | ||
| 31251 | + Named named_var; | ||
| 31252 | + | ||
| 31253 | + enum Named2 { | ||
| 31254 | + named2 = 10 | ||
| 31255 | + }; | ||
| 31256 | + void named_overload_set(Named2); | ||
| 31257 | + void named_overload_set(Named); | ||
| 31258 | + bool named_overload; | ||
| 31259 | + | ||
| 31260 | + bool bool_get(); | ||
| 31261 | + virtual bool bool_virt(); | ||
| 31262 | + static void bool_set(bool); | ||
| 31263 | + bool bool_var; | ||
| 31264 | + | ||
| 31265 | + static int char_lower(); | ||
| 31266 | + static int char_upper(); | ||
| 31267 | + char char_get() /PyInt/; | ||
| 31268 | + virtual char char_virt() /PyInt/; | ||
| 31269 | + static void char_set(char /PyInt/); | ||
| 31270 | + char char_var /PyInt/; | ||
| 31271 | + | ||
| 31272 | + static unsigned signed_char_sizeof(); | ||
| 31273 | + signed char signed_char_get() /PyInt/; | ||
| 31274 | + virtual signed char signed_char_virt() /PyInt/; | ||
| 31275 | + static void signed_char_set(signed char /PyInt/); | ||
| 31276 | + signed char signed_char_var /PyInt/; | ||
| 31277 | + | ||
| 31278 | + static unsigned short_sizeof(); | ||
| 31279 | + short short_get(); | ||
| 31280 | + virtual short short_virt(); | ||
| 31281 | + static void short_set(short); | ||
| 31282 | + short short_var; | ||
| 31283 | + | ||
| 31284 | + static unsigned int_sizeof(); | ||
| 31285 | + int int_get(); | ||
| 31286 | + virtual int int_virt(); | ||
| 31287 | + static void int_set(int); | ||
| 31288 | + int int_var; | ||
| 31289 | + | ||
| 31290 | + static unsigned long_sizeof(); | ||
| 31291 | + long long_get(); | ||
| 31292 | + virtual long long_virt(); | ||
| 31293 | + static void long_set(long); | ||
| 31294 | + long long_var; | ||
| 31295 | + | ||
| 31296 | + static unsigned long_long_sizeof(); | ||
| 31297 | + long long long_long_get(); | ||
| 31298 | + virtual long long long_long_virt(); | ||
| 31299 | + static void long_long_set(long long); | ||
| 31300 | + long long long_long_var; | ||
| 31301 | + | ||
| 31302 | + static unsigned unsigned_char_sizeof(); | ||
| 31303 | + unsigned char unsigned_char_get() /PyInt/; | ||
| 31304 | + virtual unsigned char unsigned_char_virt() /PyInt/; | ||
| 31305 | + static void unsigned_char_set(unsigned char /PyInt/); | ||
| 31306 | + unsigned char unsigned_char_var /PyInt/; | ||
| 31307 | + | ||
| 31308 | + static unsigned unsigned_short_sizeof(); | ||
| 31309 | + unsigned short unsigned_short_get(); | ||
| 31310 | + virtual unsigned short unsigned_short_virt(); | ||
| 31311 | + static void unsigned_short_set(unsigned short); | ||
| 31312 | + unsigned short unsigned_short_var; | ||
| 31313 | + | ||
| 31314 | + static unsigned unsigned_int_sizeof(); | ||
| 31315 | + unsigned int unsigned_int_get(); | ||
| 31316 | + virtual unsigned int unsigned_int_virt(); | ||
| 31317 | + static void unsigned_int_set(unsigned int); | ||
| 31318 | + unsigned int unsigned_int_var; | ||
| 31319 | + | ||
| 31320 | + static unsigned unsigned_long_sizeof(); | ||
| 31321 | + unsigned long unsigned_long_get(); | ||
| 31322 | + virtual unsigned long unsigned_long_virt(); | ||
| 31323 | + static void unsigned_long_set(unsigned long); | ||
| 31324 | + unsigned long unsigned_long_var; | ||
| 31325 | + | ||
| 31326 | + static unsigned unsigned_long_long_sizeof(); | ||
| 31327 | + unsigned long long unsigned_long_long_get(); | ||
| 31328 | + virtual unsigned long long unsigned_long_long_virt(); | ||
| 31329 | + static void unsigned_long_long_set(unsigned long long); | ||
| 31330 | + unsigned long long unsigned_long_long_var; | ||
| 31331 | +}; | ||
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" | |||
| 9 | inherit python-dir pythonnative | 9 | inherit python-dir pythonnative |
| 10 | 10 | ||
| 11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz \ | 11 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz \ |
| 12 | file://sip.patch \ | ||
| 13 | " | 12 | " |
| 14 | SRC_URI[md5sum] = "e28b0790dfe4962ce6bbd7c4772f40c9" | 13 | SRC_URI[md5sum] = "9124cb8978742685747a5415179a9890" |
| 15 | SRC_URI[sha256sum] = "24617fc31b983df075500ecac0e99d2fb48bf63ba82d4a17518659e571923822" | 14 | SRC_URI[sha256sum] = "e353a7056599bf5fbd5d3ff9842a6ab2ea3cf4e0304a0f925ec5862907c0d15e" |
| 16 | 15 | ||
| 17 | BBCLASSEXTEND = "native" | 16 | BBCLASSEXTEND = "native" |
| 18 | 17 | ||
