annotate PC/python33gen.py @ 79063:2bdc8c8ea42e

Issue #15977: Fix memory leak in Modules/_ssl.c when the function _set_npn_protocols() is called multiple times
author Christian Heimes <christian@cheimes.de>
date Thu, 20 Sep 2012 12:42:54 +0200
parents 3f14119e4af7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
68136
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
1 # Generate python33stub.def out of python3.def
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
2 # The regular import library cannot be used,
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
3 # since it doesn't provide the right symbols for
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
4 # data forwarding
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
5 out = open("python33stub.def", "w")
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
6 out.write('LIBRARY "python33"\n')
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
7 out.write('EXPORTS\n')
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
8
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
9 inp = open("python3.def")
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
10 line = inp.readline()
77653
3f14119e4af7 Issue #11626: Add _SizeT functions to stable ABI.
Martin v. Löwis <martin@v.loewis.de>
parents: 68258
diff changeset
11 while line.strip().startswith(';'):
3f14119e4af7 Issue #11626: Add _SizeT functions to stable ABI.
Martin v. Löwis <martin@v.loewis.de>
parents: 68258
diff changeset
12 line = inp.readline()
3f14119e4af7 Issue #11626: Add _SizeT functions to stable ABI.
Martin v. Löwis <martin@v.loewis.de>
parents: 68258
diff changeset
13 line = inp.readline() # LIBRARY
68136
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
14 assert line.strip()=='EXPORTS'
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
15
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
16 for line in inp:
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
17 # SYM1=python33.SYM2[ DATA]
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
18 head, tail = line.split('.')
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
19 if 'DATA' in tail:
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
20 symbol, tail = tail.split(' ')
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
21 else:
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
22 symbol = tail.strip()
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
23 out.write(symbol+'\n')
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
24
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
25 inp.close()
eb5ed3da6862 More eol-style's
Antoine Pitrou <solipsis@pitrou.net>
parents: 68071
diff changeset
26 out.close()