diff options
author | Philip Balister <philip@balister.org> | 2018-10-04 12:43:22 -0400 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2018-10-04 16:07:55 -0700 |
commit | 0597b5c0bac2eac2849a0ced741de0b1f1b39b01 (patch) | |
tree | b3230791c77454e8792b85b52eb8a9c9c1b42826 /meta-oe/recipes-devtools/sip/files/sip.patch | |
parent | f7b8505c448237eeabd7b6b5a8a1bef8d2b3a85b (diff) | |
download | meta-openembedded-0597b5c0bac2eac2849a0ced741de0b1f1b39b01.tar.gz |
sip: Update to 4.19.13.
* Deleted patch is in new version.
Signed-off-by: Philip Balister <philip@balister.org>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-devtools/sip/files/sip.patch')
-rw-r--r-- | meta-oe/recipes-devtools/sip/files/sip.patch | 31331 |
1 files changed, 0 insertions, 31331 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 c126beee7..000000000 --- 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 | +}; | ||